<?php
namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Model\qw\Qw;
use App\Model\qw\QwCategory;
use App\Model\qw\QwDepartment;
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;
use Encore\Admin\Show;

class QwController 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(Qw::class, function (Form $form) use ($id) {
            $form->display( 'id'            , 'id');
            $form->select('category_id' , '业务分类')->options(QwCategory::where('pid' , '<>' , 0)->pluck('category_name' , 'id'));
            $form->text( 'question'         , '问题');
            $form->text( 'answer'           , '回答');
            $form->select( 'is_have_question_select' , '是否有子问题选项')->options([1 => '是' , 2 => '否']);
            $form->select( 'is_hot'         , '是否热门问题')->options([1 => '是' , 2 => '否']);
            $form->select( 'status'         , '状态')->options([1 => '显示' , 2 => '隐藏']);
        });
    }

    // Grid
    protected function grid()
    {
        return Admin::grid(Qw::class, function (Grid $grid) {
            $grid->id('编号')->sortable();
            $grid->model()->orderBy('id','asc');
            $grid->category_desc('业务分类');
            $grid->question('问题');
            $grid->answer('回答');
            $grid->is_have_question_select('是否有子问答选项')->display(function ($is_have_question_select) {
                if( 1 == $is_have_question_select) {
                    return '是';
                }
                if( 2 == $is_have_question_select) {
                    return '否';
                }
            });
            $grid->is_hot('是否热门问题')->display(function ($is_hot) {
                if( 1 == $is_hot) {
                    return '是';
                }
                if( 2 == $is_hot) {
                    return '否';
                }
            });
            $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)->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'
            ]
        );
    }

}