Browse Source

视频分类

moshaorui 6 months ago
parent
commit
a5b987da82

+ 3 - 3
app/Admin/Controllers/BaseProductParameterController.php

@@ -35,9 +35,9 @@ class BaseProductParameterController extends AdminController
             $grid->column('enabled')->switch();
             $grid->column('created_at');
             $grid->column('updated_at')->sortable();
-            $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
-            });
+//            $grid->filter(function (Grid\Filter $filter) {
+//                $filter->equal('id');
+//            });
             $grid->disableViewButton();
             $grid->showQuickEditButton();
             $grid->enableDialogCreate();

+ 72 - 0
app/Admin/Controllers/BaseVideoCategoryController.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Admin\Repositories\BaseProductCategory;
+use App\Admin\Repositories\BaseVideoCategory;
+use Dcat\Admin\Form;
+use Dcat\Admin\Grid;
+use Dcat\Admin\Show;
+use Dcat\Admin\Http\Controllers\AdminController;
+use Dcat\Admin\Layout\Content;
+use Dcat\Admin\Admin;
+
+class BaseVideoCategoryController extends AdminController
+{
+    /**
+     * page index
+     */
+    public function index(Content $content)
+    {
+        return $content
+            ->header('Video Category')
+            ->description('all')
+            ->breadcrumb(['text'=>'Video Category','url'=>''])
+            ->body($this->grid());
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        return Grid::make(new BaseVideoCategory(), function (Grid $grid) {
+            $grid->column('id')->sortable();
+            $grid->column('name')->tree(true,true);
+            $grid->column('parent_id');
+            $grid->column('order')->orderable();
+            $grid->column('enabled')->switch();
+            $grid->column('created_at');
+            $grid->column('updated_at')->sortable();
+            $grid->quickSearch('name');
+            //按钮
+            $grid->disableViewButton();
+            $grid->showQuickEditButton();
+            $grid->enableDialogCreate();
+            $grid->disableEditButton();
+        });
+    }
+
+
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        return Form::make(new BaseVideoCategory(), function (Form $form) {
+            $form->display('id');
+            $form->text('name');
+            $form->select('parent_id', trans('Parent'))
+                ->options(BaseVideoCategory::selectOptions())
+                ->saving(function ($v) {
+                    return (int) $v;
+                });
+            $form->switch('enabled')->default(1);
+        });
+    }
+}

+ 23 - 0
app/Admin/Repositories/BaseVideoCategory.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Admin\Repositories;
+
+use App\Models\BaseVideoCategory as Model;
+use Dcat\Admin\Repositories\EloquentRepository;
+
+class BaseVideoCategory extends EloquentRepository
+{
+    /**
+     * Model.
+     *
+     * @var string
+     */
+    protected $eloquentClass = Model::class;
+
+    // 调用模型方法
+    public static function selectOptions(\Closure $closure = null)
+    {
+        $selectOptions =  Model::class::selectOptions($closure);
+        return $selectOptions;
+    }
+}

+ 2 - 0
app/Admin/routes.php

@@ -21,4 +21,6 @@ Route::group([
     $router->resource('product-category', 'BaseProductCategoryController');
     //参数
     $router->resource('product-parameter', 'BaseProductParameterController');
+    //视频分类
+    $router->resource('video-category', 'BaseVideoCategoryController');
 });

+ 25 - 0
app/Models/BaseVideoCategory.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Models;
+
+use Dcat\Admin\Traits\HasDateTimeFormatter;
+
+use Dcat\Admin\Traits\ModelTree;
+use Illuminate\Database\Eloquent\Model;
+use Spatie\EloquentSortable\Sortable;
+
+class BaseVideoCategory extends Model implements Sortable
+{
+    use HasDateTimeFormatter,
+        ModelTree {
+        ModelTree::boot as treeBoot;
+    }
+    protected $table = 'base_video_category';
+    //名称
+    protected $titleColumn = 'name';
+    //排序
+    protected $orderColumn = 'order';
+    //父级
+    protected $parentColumn = 'parent_id';
+
+}

+ 254 - 0
dcat_admin_ide_helper.php

@@ -0,0 +1,254 @@
+<?php
+
+/**
+ * A helper file for Dcat Admin, to provide autocomplete information to your IDE
+ *
+ * This file should not be included in your code, only analyzed by your IDE!
+ *
+ * @author jqh <841324345@qq.com>
+ */
+namespace Dcat\Admin {
+    use Illuminate\Support\Collection;
+
+    /**
+     * @property Grid\Column|Collection id
+     * @property Grid\Column|Collection name
+     * @property Grid\Column|Collection type
+     * @property Grid\Column|Collection version
+     * @property Grid\Column|Collection detail
+     * @property Grid\Column|Collection created_at
+     * @property Grid\Column|Collection updated_at
+     * @property Grid\Column|Collection is_enabled
+     * @property Grid\Column|Collection parent_id
+     * @property Grid\Column|Collection order
+     * @property Grid\Column|Collection icon
+     * @property Grid\Column|Collection uri
+     * @property Grid\Column|Collection extension
+     * @property Grid\Column|Collection permission_id
+     * @property Grid\Column|Collection menu_id
+     * @property Grid\Column|Collection slug
+     * @property Grid\Column|Collection http_method
+     * @property Grid\Column|Collection http_path
+     * @property Grid\Column|Collection role_id
+     * @property Grid\Column|Collection user_id
+     * @property Grid\Column|Collection value
+     * @property Grid\Column|Collection username
+     * @property Grid\Column|Collection password
+     * @property Grid\Column|Collection avatar
+     * @property Grid\Column|Collection remember_token
+     * @property Grid\Column|Collection body
+     * @property Grid\Column|Collection keywords
+     * @property Grid\Column|Collection sku
+     * @property Grid\Column|Collection category_id
+     * @property Grid\Column|Collection issuance_date
+     * @property Grid\Column|Collection enabled
+     * @property Grid\Column|Collection content
+     * @property Grid\Column|Collection parameters
+     * @property Grid\Column|Collection parameter_id
+     * @property Grid\Column|Collection image_url
+     * @property Grid\Column|Collection product_id
+     * @property Grid\Column|Collection remark
+     * @property Grid\Column|Collection uuid
+     * @property Grid\Column|Collection connection
+     * @property Grid\Column|Collection queue
+     * @property Grid\Column|Collection payload
+     * @property Grid\Column|Collection exception
+     * @property Grid\Column|Collection failed_at
+     * @property Grid\Column|Collection email
+     * @property Grid\Column|Collection token
+     * @property Grid\Column|Collection tokenable_type
+     * @property Grid\Column|Collection tokenable_id
+     * @property Grid\Column|Collection abilities
+     * @property Grid\Column|Collection last_used_at
+     * @property Grid\Column|Collection expires_at
+     * @property Grid\Column|Collection email_verified_at
+     *
+     * @method Grid\Column|Collection id(string $label = null)
+     * @method Grid\Column|Collection name(string $label = null)
+     * @method Grid\Column|Collection type(string $label = null)
+     * @method Grid\Column|Collection version(string $label = null)
+     * @method Grid\Column|Collection detail(string $label = null)
+     * @method Grid\Column|Collection created_at(string $label = null)
+     * @method Grid\Column|Collection updated_at(string $label = null)
+     * @method Grid\Column|Collection is_enabled(string $label = null)
+     * @method Grid\Column|Collection parent_id(string $label = null)
+     * @method Grid\Column|Collection order(string $label = null)
+     * @method Grid\Column|Collection icon(string $label = null)
+     * @method Grid\Column|Collection uri(string $label = null)
+     * @method Grid\Column|Collection extension(string $label = null)
+     * @method Grid\Column|Collection permission_id(string $label = null)
+     * @method Grid\Column|Collection menu_id(string $label = null)
+     * @method Grid\Column|Collection slug(string $label = null)
+     * @method Grid\Column|Collection http_method(string $label = null)
+     * @method Grid\Column|Collection http_path(string $label = null)
+     * @method Grid\Column|Collection role_id(string $label = null)
+     * @method Grid\Column|Collection user_id(string $label = null)
+     * @method Grid\Column|Collection value(string $label = null)
+     * @method Grid\Column|Collection username(string $label = null)
+     * @method Grid\Column|Collection password(string $label = null)
+     * @method Grid\Column|Collection avatar(string $label = null)
+     * @method Grid\Column|Collection remember_token(string $label = null)
+     * @method Grid\Column|Collection body(string $label = null)
+     * @method Grid\Column|Collection keywords(string $label = null)
+     * @method Grid\Column|Collection sku(string $label = null)
+     * @method Grid\Column|Collection category_id(string $label = null)
+     * @method Grid\Column|Collection issuance_date(string $label = null)
+     * @method Grid\Column|Collection enabled(string $label = null)
+     * @method Grid\Column|Collection content(string $label = null)
+     * @method Grid\Column|Collection parameters(string $label = null)
+     * @method Grid\Column|Collection parameter_id(string $label = null)
+     * @method Grid\Column|Collection image_url(string $label = null)
+     * @method Grid\Column|Collection product_id(string $label = null)
+     * @method Grid\Column|Collection remark(string $label = null)
+     * @method Grid\Column|Collection uuid(string $label = null)
+     * @method Grid\Column|Collection connection(string $label = null)
+     * @method Grid\Column|Collection queue(string $label = null)
+     * @method Grid\Column|Collection payload(string $label = null)
+     * @method Grid\Column|Collection exception(string $label = null)
+     * @method Grid\Column|Collection failed_at(string $label = null)
+     * @method Grid\Column|Collection email(string $label = null)
+     * @method Grid\Column|Collection token(string $label = null)
+     * @method Grid\Column|Collection tokenable_type(string $label = null)
+     * @method Grid\Column|Collection tokenable_id(string $label = null)
+     * @method Grid\Column|Collection abilities(string $label = null)
+     * @method Grid\Column|Collection last_used_at(string $label = null)
+     * @method Grid\Column|Collection expires_at(string $label = null)
+     * @method Grid\Column|Collection email_verified_at(string $label = null)
+     */
+    class Grid {}
+
+    class MiniGrid extends Grid {}
+
+    /**
+     * @property Show\Field|Collection id
+     * @property Show\Field|Collection name
+     * @property Show\Field|Collection type
+     * @property Show\Field|Collection version
+     * @property Show\Field|Collection detail
+     * @property Show\Field|Collection created_at
+     * @property Show\Field|Collection updated_at
+     * @property Show\Field|Collection is_enabled
+     * @property Show\Field|Collection parent_id
+     * @property Show\Field|Collection order
+     * @property Show\Field|Collection icon
+     * @property Show\Field|Collection uri
+     * @property Show\Field|Collection extension
+     * @property Show\Field|Collection permission_id
+     * @property Show\Field|Collection menu_id
+     * @property Show\Field|Collection slug
+     * @property Show\Field|Collection http_method
+     * @property Show\Field|Collection http_path
+     * @property Show\Field|Collection role_id
+     * @property Show\Field|Collection user_id
+     * @property Show\Field|Collection value
+     * @property Show\Field|Collection username
+     * @property Show\Field|Collection password
+     * @property Show\Field|Collection avatar
+     * @property Show\Field|Collection remember_token
+     * @property Show\Field|Collection body
+     * @property Show\Field|Collection keywords
+     * @property Show\Field|Collection sku
+     * @property Show\Field|Collection category_id
+     * @property Show\Field|Collection issuance_date
+     * @property Show\Field|Collection enabled
+     * @property Show\Field|Collection content
+     * @property Show\Field|Collection parameters
+     * @property Show\Field|Collection parameter_id
+     * @property Show\Field|Collection image_url
+     * @property Show\Field|Collection product_id
+     * @property Show\Field|Collection remark
+     * @property Show\Field|Collection uuid
+     * @property Show\Field|Collection connection
+     * @property Show\Field|Collection queue
+     * @property Show\Field|Collection payload
+     * @property Show\Field|Collection exception
+     * @property Show\Field|Collection failed_at
+     * @property Show\Field|Collection email
+     * @property Show\Field|Collection token
+     * @property Show\Field|Collection tokenable_type
+     * @property Show\Field|Collection tokenable_id
+     * @property Show\Field|Collection abilities
+     * @property Show\Field|Collection last_used_at
+     * @property Show\Field|Collection expires_at
+     * @property Show\Field|Collection email_verified_at
+     *
+     * @method Show\Field|Collection id(string $label = null)
+     * @method Show\Field|Collection name(string $label = null)
+     * @method Show\Field|Collection type(string $label = null)
+     * @method Show\Field|Collection version(string $label = null)
+     * @method Show\Field|Collection detail(string $label = null)
+     * @method Show\Field|Collection created_at(string $label = null)
+     * @method Show\Field|Collection updated_at(string $label = null)
+     * @method Show\Field|Collection is_enabled(string $label = null)
+     * @method Show\Field|Collection parent_id(string $label = null)
+     * @method Show\Field|Collection order(string $label = null)
+     * @method Show\Field|Collection icon(string $label = null)
+     * @method Show\Field|Collection uri(string $label = null)
+     * @method Show\Field|Collection extension(string $label = null)
+     * @method Show\Field|Collection permission_id(string $label = null)
+     * @method Show\Field|Collection menu_id(string $label = null)
+     * @method Show\Field|Collection slug(string $label = null)
+     * @method Show\Field|Collection http_method(string $label = null)
+     * @method Show\Field|Collection http_path(string $label = null)
+     * @method Show\Field|Collection role_id(string $label = null)
+     * @method Show\Field|Collection user_id(string $label = null)
+     * @method Show\Field|Collection value(string $label = null)
+     * @method Show\Field|Collection username(string $label = null)
+     * @method Show\Field|Collection password(string $label = null)
+     * @method Show\Field|Collection avatar(string $label = null)
+     * @method Show\Field|Collection remember_token(string $label = null)
+     * @method Show\Field|Collection body(string $label = null)
+     * @method Show\Field|Collection keywords(string $label = null)
+     * @method Show\Field|Collection sku(string $label = null)
+     * @method Show\Field|Collection category_id(string $label = null)
+     * @method Show\Field|Collection issuance_date(string $label = null)
+     * @method Show\Field|Collection enabled(string $label = null)
+     * @method Show\Field|Collection content(string $label = null)
+     * @method Show\Field|Collection parameters(string $label = null)
+     * @method Show\Field|Collection parameter_id(string $label = null)
+     * @method Show\Field|Collection image_url(string $label = null)
+     * @method Show\Field|Collection product_id(string $label = null)
+     * @method Show\Field|Collection remark(string $label = null)
+     * @method Show\Field|Collection uuid(string $label = null)
+     * @method Show\Field|Collection connection(string $label = null)
+     * @method Show\Field|Collection queue(string $label = null)
+     * @method Show\Field|Collection payload(string $label = null)
+     * @method Show\Field|Collection exception(string $label = null)
+     * @method Show\Field|Collection failed_at(string $label = null)
+     * @method Show\Field|Collection email(string $label = null)
+     * @method Show\Field|Collection token(string $label = null)
+     * @method Show\Field|Collection tokenable_type(string $label = null)
+     * @method Show\Field|Collection tokenable_id(string $label = null)
+     * @method Show\Field|Collection abilities(string $label = null)
+     * @method Show\Field|Collection last_used_at(string $label = null)
+     * @method Show\Field|Collection expires_at(string $label = null)
+     * @method Show\Field|Collection email_verified_at(string $label = null)
+     */
+    class Show {}
+
+    /**
+     * @method \Dcat\Admin\Form\Extend\Distpicker\Form\Distpicker distpicker(...$params)
+     * @method \Dcat\Admin\Form\Extend\Diyforms\Form\DiyForm diyForm(...$params)
+     */
+    class Form {}
+
+}
+
+namespace Dcat\Admin\Grid {
+    /**
+     * @method $this distpicker(...$params)
+     */
+    class Column {}
+
+    /**
+     * @method \Dcat\Admin\Form\Extend\Distpicker\Filter\DistpickerFilter distpicker(...$params)
+     */
+    class Filter {}
+}
+
+namespace Dcat\Admin\Show {
+    /**
+     * @method $this diyForm(...$params)
+     */
+    class Field {}
+}

+ 15 - 0
lang/en/base-video-category.php

@@ -0,0 +1,15 @@
+<?php 
+return [
+    'labels' => [
+        'BaseVideoCategory' => 'BaseVideoCategory',
+        'base-video-category' => 'BaseVideoCategory',
+    ],
+    'fields' => [
+        'name' => 'name',
+        'parent_id' => 'parent_id',
+        'order' => 'order',
+        'enabled' => 'enabled',
+    ],
+    'options' => [
+    ],
+];