<?php
namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Model\qw\QwDepartment;
use App\Model\qw\QwCategory;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Content;
use Encore\Admin\Controllers\ModelForm;
use Illuminate\Http\Request;

class QwCategoryController extends Controller
{
    use ModelForm;
    public function index()
    {
        return Admin::content(function (Content $content) {
            $content->header('问答知识类别');
            $content->description('列表');
            $content->body($this->grid());
        });
    }

    public function create()
    {
        return Admin::content(function (Content $content) {
            $content->header('问答知识类别');
            $content->description('新增');
            $content->body($this->form());
        });
    }

    public function edit($id)
    {
        return Admin::content(function (Content $content) use ($id) {
            $content->header('问答知识类别');
            $content->description('列表');
            $content->body($this->form($id)->edit($id));
        });
    }

    protected function form($id = '')
    {
        return Admin::form(QwCategory::class , function (Form $form) use ($id) {
            $form->display( 'id'            , 'id');
            $form->select( 'department_id'  , '所属部门')->options(
                QwDepartment::all()->pluck('department_name' , 'id')
            )->load('pid', 'll');    // 选中传入接口一个q参数,加载到第二级;
            //$form->select('pid' , '知识类别');

            $form->select('pid' , '知识类别')->options(function ($id) {
                return QwCategory::where('pid',$id)->pluck('category_name', 'id');
            });

            $form->text( 'category_name'    , '分类名称');
            $form->select( 'status'         , '状态')->options([1 => '显示' , 2 => '隐藏']);
        });
    }

    // Grid
    protected function grid()
    {
        return Admin::grid(QwCategory::class, function (Grid $grid) {
            $grid->id('编号')->sortable();
            $grid->model()->orderBy('id','asc');
            $grid->department_desc('部门名称');
            $grid->pid_text('知识类别');
            $grid->category_name('业务分类');
            $grid->status('状态')->display(function ($status) {
                if( 1 == $status) {
                    return '显示';
                }
                if( 2 == $status) {
                    return '隐藏';
                }
            });
            $grid->createtime('创建时间')->display(function ($create_time) {
                return date('Y-m-d H:i:s' , $create_time);
            });
            $grid->updatetime('更新时间')->display(function ($create_time) {
                return date('Y-m-d H:i:s' , $create_time);
            });

            // 禁用导出数据按钮
            $grid->actions(function ($actions) {
                $actions->disableView();
                //$actions->disableEdit();
            });

            $grid->filter(function($filter){

                // 去掉默认的id过滤器
                $filter->disableIdFilter();

                // 在这里添加字段过滤器
                //$filter->equal('uid' , '用户ID');
            });
        });
    }


    public function show(request $request)
    {
        $projectId = $request->get('q');
        return QwCategory::where('department_id' , $projectId)->where('pid' , 0)->get(
            [
                'id', 'category_name as text'
            ]
        );
    }


    public function ll(request $request)
    {
        $projectId = $request->get('q');
        return QwCategory::where('department_id' , $projectId)->get(
            [
                'id', 'category_name as text'
            ]
        );
    }

}