Browse Source

菜单修改

moshaorui 4 months ago
parent
commit
0f612b58ae

+ 1 - 1
.env.dev

@@ -7,7 +7,7 @@ APP_DEBUG=true
 #后台网站根域名,暂时未用到
 APP_URL=http://localhost
 #是否https
-ADMIN_HTTPS=true
+ADMIN_HTTPS=false
 
 #后台网站主域名,不含http://www.
 TOP_DOMAIN=mietubl.com.cn

+ 17 - 0
app/Distributor/Controllers/ApiController.php

@@ -4,6 +4,7 @@ namespace App\Distributor\Controllers;
 
 use App\Distributor\Repositories\DistProduct;
 use App\Distributor\Repositories\DistProductCategory;
+use App\Distributor\Repositories\DistVideo;
 use App\Distributor\Repositories\DistVideoCategory;
 use App\Distributor\Repositories\SitePages;
 use App\Distributor\Repositories\SitePagesTag;
@@ -43,6 +44,7 @@ class ApiController extends Controller
         }
     }
 
+
     public function landingPages(Request $request)
     {
         $q = $request->get('q');
@@ -57,6 +59,21 @@ class ApiController extends Controller
         }
     }
 
+    public function videos(Request $request)
+    {
+        $q = $request->get('q');
+        if ($q != null) {
+            // 模糊搜索
+            $obj = new DistVideo();
+            return $obj->model()->where('title', 'like', "%$q%")->where('dist_id', getDistributorId())->paginate(null, ['id', 'title as text']);
+        } else {
+            // 获取最新的N个
+            $selectOptionsNew =  DistVideo::selectOptionsNew(30);
+            return $this->changeOptions($selectOptionsNew);
+        }
+    }
+
+
 
 
     public function tag(Request $request)

+ 11 - 7
app/Distributor/Controllers/SiteMenuController.php

@@ -6,6 +6,7 @@ namespace App\Distributor\Controllers;
 use App\Distributor\Actions\MenuShow;
 use App\Distributor\Repositories\DistProduct;
 use App\Distributor\Repositories\DistProductCategory;
+use App\Distributor\Repositories\DistVideoCategory;
 use App\Distributor\Repositories\SiteMenu;
 use App\Distributor\Repositories\SitePages;
 use App\Distributor\Repositories\SitePagesTag;
@@ -53,12 +54,6 @@ class SiteMenuController extends AdminDistController
             $tree->maxDepth(2);
             //标题显示
             $tree->branch(function ($branch) {
-//                $arr[] = $branch['title'];
-//                if ($branch['uri']) {
-//                   // $arr[] = SiteMenu::generateUri($branch['menu_type'], $branch['menu_config'],false);
-//                    $arr[] =  $branch['uri'];
-//                }
-//                return implode(' - ', $arr);
                 return $branch['title'];
             });
             //是否显示操作
@@ -115,6 +110,9 @@ class SiteMenuController extends AdminDistController
                         })->when(1, function (Form $form) use ($menuConfig,$thisObject) {
                             //文章标签
                             $form->select('pages_tag')->options('api/tag')->value($thisObject->getArrayValue('pages_tag',$menuConfig));
+                        })->when(2, function (Form $form) use ($menuConfig,$thisObject) {
+                            //视频
+                            $form->select('video_category')->options(DistVideoCategory::selectOptions())->value($thisObject->getArrayValue('video_category',$menuConfig));
                         });
                 })
                 ->when(2, function (Form $form) use ($menuConfig,$thisObject) {
@@ -136,7 +134,11 @@ class SiteMenuController extends AdminDistController
                 ->when(4, function (Form $form) use ($menuConfig,$thisObject) {
                     $form->select('landing_page',admin_trans_label('landing_page'))->options('api/landing-pages')
                         ->value($thisObject->getArrayValue('landing_page',$menuConfig));
+                })->when(5, function (Form $form) use ($menuConfig,$thisObject) {
+                    $form->select('videos',admin_trans_label('videos'))->options('api/videos')
+                        ->value($thisObject->getArrayValue('videos',$menuConfig));
                 });
+
             //显示
             $form->switch('show')->default(1);
             //隐藏字段
@@ -145,7 +147,7 @@ class SiteMenuController extends AdminDistController
             $form->hidden('uri');
             $form->hidden('dist_id'); // 隐藏dist_id字段,用于保存
             //以下字段不保存
-            $form->ignore(['collections_type','product_category','pages_tag','product','pages','url','landing_page']);
+            $form->ignore(['collections_type','product_category','pages_tag','product','pages','url','landing_page','videos','video_category']);
             //保存事件
             $form->submitted(function (Form $form) use ($thisObject) {
                 $result = $thisObject->convertMenuConfig($form);
@@ -163,11 +165,13 @@ class SiteMenuController extends AdminDistController
         $menuConfig = [
             'collections_type' => $form->input('collections_type'),
             'product_category' => $form->input('product_category'),
+            'video_category' => $form->input('video_category'),
             'pages_tag' => $form->input('pages_tag'),
             'product' => $form->input('product'),
             'pages' => $form->input('pages'),
             'url' => $form->input('url'),
             'landing_page' => $form->input('landing_page'),
+            'videos' => $form->input('videos'),
         ];
         $menuType = $form->input('menu_type');
         $uri = SiteMenu::generateUri($menuType,$menuConfig);

+ 8 - 0
app/Distributor/Repositories/DistVideo.php

@@ -22,4 +22,12 @@ class DistVideo extends EloquentRepository
     {
         return Model::find($id); // 查找并返回相应的记录
     }
+
+    /*
+     * 查找最新的N个文章
+     */
+    public static function selectOptionsNew($limit=30)
+    {
+        return Model::where('dist_id', getDistributorId())->orderBy('created_at', 'desc')->limit($limit)->pluck('title', 'id');
+    }
 }

+ 1 - 0
app/Distributor/routes.php

@@ -61,6 +61,7 @@ Route::group([
     $router->get('api/landing-pages', 'ApiController@landingPages');
     $router->get('api/tag', 'ApiController@tag');
     $router->get('api/generate-slug', 'ApiController@generateSlug');
+    $router->get('api/videos', 'ApiController@videos');
     // 定义切换语言的路由
     $router->get('language-switch','LanguageController@index');
     // 不需要登录的路由

+ 13 - 1
app/Models/SiteMenu.php

@@ -2,6 +2,7 @@
 
 namespace App\Models;
 
+
 use Carbon\Carbon;
 use Dcat\Admin\Traits\HasDateTimeFormatter;
 
@@ -81,12 +82,17 @@ class SiteMenu extends Model
                     //产品分类
                     $slug = $isId ? $row->id : $row->slug;
                     $uri = $row ? config('dictionary.site_url.product_category').'/'.$slug : "/";
-                } else {
+                } else if ($menuConfig['collections_type'] == 1) {
                     $sitePagesTag = new SitePagesTag();
                     $row = $sitePagesTag->where('dist_id', $distId)->where('id', $menuConfig['pages_tag'])->first();
                     $slug = $isId ? $row->id : $row->slug;
                     //文章标签
                     $uri = $row ? config('dictionary.site_url.tags').'/'.$slug : "/";
+                } else if ($menuConfig['collections_type'] == 2) {
+                    $distProductCategory = new DistVideoCategory();
+                    $row = $distProductCategory->where('dist_id', $distId)->where('id', $menuConfig['video_category'])->first();
+                    $slug = $isId ? $row->id : $row->slug;
+                    $uri = $row ? config('dictionary.site_url.video_category').'/'.$slug : "/";
                 }
                 break;
             case 2: //选择产品
@@ -107,6 +113,12 @@ class SiteMenu extends Model
                 $slug = $isId ? $row->id : $row->slug;
                 $uri = $row ? config('dictionary.site_url.pages').'/'.$slug : "/";
                 break;
+            case 5: //视频
+                $distVideo = new DistVideo();
+                $row = $distVideo->where('dist_id', $distId)->where('id', $menuConfig['videos'])->first();
+                $slug = $isId ? $row->id : $row->slug;
+                $uri = $row ? config('dictionary.site_url.video').'/'.$slug : "/";
+                break;
             case 10: //url
                 $uri = $menuConfig['url'];
                 break;

+ 2 - 0
config/dictionary.php

@@ -50,12 +50,14 @@ return [
         '2' => 'products',
         '3' => 'pages',
         '4' => 'landing_page',
+        '5' => 'videos',
         '10' => 'url',
     ],
 
     'collections_type' => [
         '0' => 'product_category',
         '1' => 'pages_tag',
+        '2' => 'video_category',
     ],
     //文章状态
     'pages_status' => [

+ 2 - 0
lang/en/global.php

@@ -168,6 +168,8 @@ return [
         'landing_page' => 'Landing Page',
         'video_help' => 'Help',
         'distributor_code' => 'Distributor Code',
+        'videos' => 'Videos',
+        'video_category' => 'Video Category',
     ],
     'options' => [
         //

+ 3 - 0
lang/zh_CN/global.php

@@ -96,6 +96,7 @@ return [
         'target_type'           => '类型',
         'target_ids'            => '接收用户',
         'message_title'         => '消息标题',
+        'video_category' => '视频分类',
     ],
     'labels' => [
         'list'         => '列表',
@@ -170,6 +171,8 @@ return [
         'attribute'       => '属性',
         'landing_page' => '独立页',
         'video_help'   => '帮助',
+        'videos'         => '视频',
+        'video_category' => '视频分类',
     ],
     'options' => [
         //