Dcat Admin表格规格筛选器默认选中

Dcat Admin框架不支持表格规格筛选器的默认选中,所以这边实现的思路使用过JS实现默认选中,通过获取url中的参数,如果筛选字段不存在则通过js获取相应节点,进行默认选中。

<?php

namespace App\Admin\Controllers;

use App\Admin\Repositories\Selector;
use App\Common\Enums\CategoryEnum;
use Dcat\Admin\Admin;
use Dcat\Admin\Grid;

class SelectorController extends AdminController
{
    /**
     * Make a grid builder.
     * @return Grid
     */
    protected function grid() {

        // 设置默认选中
        $params = request()->get('_selector');
        $isType = $params['type'] ?? -1;
        $isCate = $params['cate'] ?? -1;

        Admin::script(
            <<<JS
                var isType = $isType
                var isCate = $isCate

                setSelect()
                function setSelect() {
                    if (isCate == -1) {
                        $('.grid-selector .wrap:nth-child(1) li:first a:first').addClass('active')
                    }

                    if (isType == -1) {
                        $('.grid-selector .wrap:nth-child(2) li:first a:first').addClass('active')
                    }
                }
            JS
        );

        return Grid::make(new Selector(), function (Grid $grid) {

            if (request()->get('_view_') !== 'list') {
                // 设置自定义视图
                $grid->view('admin.rank.download');
            }

            $grid->paginate(50);
            $grid->column('url', '图片')->image('', 100);

            $grid->selector(function (Grid\Tools\Selector $selector) {
                $selector->selectOne('cate', '分类', [0 => '小米', 1 => '华为', 7 => 'OPPO', 30 =>'VIVO']);
                $selector->selectOne('type', '日期', [0 => '今天', 1 => '昨天', 7 => '近一周', 30 =>'近一月']);
            });

            // 禁掉筛选按钮
            $grid->disableFilterButton();

            // 禁用操作按钮
            $grid->disableActions();

            // 设置边线
            $grid->withBorder();

            // 设置复选框
            $grid->disableRowSelector();

            $grid->disableCreateButton();
            $grid->disableRefreshButton();
        });
    }

}

备注:如果有多个筛选项,则通过修改.wrap:nth-child(1) 中的值,依次设置默认选中的字段,如果筛选项过多可以将上面JS封装下,不用每个分类都写一遍。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值