VideoTempController.php 4.21 KB
<?php

namespace App\Admin\Controllers;

use App\Admin\Repositories\VideoTemp;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;

class VideoTempController extends AdminController
{
    protected $title = '视频模板';
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        return Grid::make(new VideoTemp(), function (Grid $grid) {
            // 设置自定义视图
            $grid->view('admin.grid.custom');

            $grid->setActionClass(Grid\Displayers\Actions::class);

//            $grid->column('id',__('ID'))->sortable();
//            $grid->column('title');
//            $grid->column('type');
//            $grid->column('bg_type');
//            $grid->column('bg_url');
//            $grid->column('bg_music');
//            $grid->column('state');
//            $grid->column('sn');
//            $grid->column('top');
//            $grid->column('left');
//            $grid->column('font_size');
//            $grid->column('created_at');
//            $grid->column('updated_at')->sortable();
//
//            $grid->filter(function (Grid\Filter $filter) {
//                $filter->equal('id');
//
//            });
        });
    }

    /**
     * Make a show builder.
     *
     * @param mixed $id
     *
     * @return Show
     */
    protected function detail($id)
    {
        return Show::make($id, new VideoTemp(), function (Show $show) {
            $show->field('id');
            $show->field('title');
            $show->field('type');
            $show->field('bg_type');
            $show->field('bg_url');
            $show->field('bg_music');
            $show->field('state');
            $show->field('sn');
            $show->field('top');
            $show->field('left');
            $show->field('font_size');
            $show->field('created_at');
            $show->field('updated_at');
        });
    }

    /**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        return Form::make(new VideoTemp(), function (Form $form) {
            $form->display('id');
            $form->block(8, function (Form\BlockForm $form) {
                // 设置标题
                $form->title('基本设置');
                // 显示底部提交按钮
                $form->showFooter();
                // 设置字段宽度
                $form->width(8, 3);
                $form->column(12, function (Form\BlockForm $form) {
                    $form->text('title');
                    $form->radio('type')->options(['视频', '图文音频'])->default(0);
                    $form->radio('bg_type')
                        ->options([1=>'视频', 2=>'图片'])
                        ->when(1,function (Form\BlockForm $form){
                            $form->file('bg_url')
                                ->accept('mp4')
                                ->autoUpload()
                                ->uniqueName()
                                ->addElementClass('bg_url');
                        })
                        ->when(2,function (Form\BlockForm $form){
                            $form->multipleImage('bg_url')
                                ->limit(5)
                                ->uniqueName()
                                ->addElementClass('multi_bg_url');
                        })
                        ->default(1);
                    $form->radio('bg_music')
                        ->options(['无', '有'])
                        ->when(1,function (Form\BlockForm $form){
                            $form->text('bgm_url');
                        })
                        ->default(0);
                    $form->number('top');
                    $form->number('left');
                    $form->number('font_size');
                    $form->number('sn');
                    $form->radio('state')->options(['不显示', '显示'])->default(0);

                });
            });

            $form->block(4, function (Form\BlockForm $form) {
                $form->html(view('admin.form.phone'));
            });

            $form->display('created_at');
            $form->display('updated_at');
        });
    }
}