Browse Source

feat: 优化剧集分类

xiansin 2 years ago
parent
commit
eeda4568cc

+ 22 - 38
server/app/Admin/Controllers/Episode/EpisodesCategoryController.php

xqd xqd xqd
@@ -19,39 +19,22 @@ class EpisodesCategoryController extends AdminController
     protected function grid()
     {
         return Grid::make(new EpisodesCategory(), function (Grid $grid) {
+            $grid->model()->orderByDesc('sort');
             $grid->column('id')->sortable();
             $grid->column('name');
-            $grid->column('pid','父分类')->display(function () {
-                /* @var EpisodesCategory $this*/
-                return $this->parent ?$this->parent->name : '';
-            });
-            $grid->column('created_at');
+            $grid->column('level')->using(config('global.cat_level'));
+//            $grid->column('pid','父分类')->display(function () {
+//                /* @var EpisodesCategory $this*/
+//                return $this->parent ?$this->parent->name : '';
+//            });
+            $grid->column('sort')->editable();
+            //$grid->column('created_at');
 
             $grid->disableRowSelector();
             $grid->disableViewButton();
         });
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new EpisodesCategory(), function (Show $show) {
-            $show->field('id');
-            $show->field('name');
-            $show->field('pid');
-            $show->field('path');
-            $show->field('sort');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
-    }
-
     /**
      * Make a form builder.
      *
@@ -60,13 +43,21 @@ class EpisodesCategoryController extends AdminController
     protected function form()
     {
         return Form::make(new EpisodesCategory(), function (Form $form) {
-            $categoryModel = app(\App\Models\EpisodesCategory::class);
-            $options = $categoryModel::select(['id','name'])->where('pid',0)->get()->toArray();
-            array_unshift($options,['id' => 0, 'name' => '一级分类']);
-            $options = array_column($options,'name','id');
+
             $form->display('id');
-            $form->select('pid')->options($options);
-            $form->text('name');
+            $form->radio('level')
+                ->when(2, function (Form $form){
+                    $options = EpisodesCategory::select(['id','name'])
+                        ->where('pid',0)
+                        ->get()
+                        ->pluck('name', 'id');
+                    $form->select('pid')->options($options);
+                })
+                ->options(config('global.cat_level'))
+                ->default(1);
+
+            $form->text('name')->required();
+            $form->number('sort');
 
             $form->disableViewButton();
             $form->disableDeleteButton();
@@ -76,11 +67,4 @@ class EpisodesCategoryController extends AdminController
             $form->disableCreatingCheck();
         });
     }
-
-    public function options(Request $request)
-    {
-        $q = $request->get('q');
-        $categoryModel = app(\App\Models\EpisodesCategory::class);
-        return $categoryModel->where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
-    }
 }

+ 1 - 0
server/app/Models/EpisodesCategory.php

xqd
@@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\Model;
  *
  * @property int $id
  * @property string $name 名称
+ * @property int $level 分类等级
  * @property int $pid 父id
  * @property string|null $path 路径
  * @property int $sort 排序越大越靠前

+ 5 - 0
server/config/global.php

xqd
@@ -19,4 +19,9 @@ return [
     'open_sign' => ['关闭签到', '开启签到'],
     // 消费类型
     'consume_type' => [1 => '充值', 2 => '消费', 3 => '签到'],
+    // 分类
+    'cat_level' => [
+        1 => '一级分类',
+        2 => '二级分类',
+    ],
 ];

+ 2 - 1
server/resources/lang/zh/episodes-category.php

xqd
@@ -7,9 +7,10 @@ return [
     ],
     'fields' => [
         'name' => '名称',
+        'level' => '分类等级',
         'pid' => '父分类',
         'path' => '路径',
-        'sort' => '排序越大越靠前',
+        'sort' => '排序',
     ],
     'options' => [
     ],