Dcat Admin 中想要使用开关(Switch)字段,可以使用 SwitchField 类来创建开关字段

 第一步

$grid->column('m_status', '状态')->switch();

第二步

   $form->switch('column')->
            customFormat(function ($value) {
                // 将开启状态的值映射为 10,关闭状态的值映射为 20
                $modifiedValue = $value ? 10 : 20;
                return $modifiedValue;
            })
                ->saving(function ($value) {
                    // 对开关字段的值进行修改和处理
                    return $value;
                });

第三步,文件目录

bagak >vendor >dcat > laravel admin > src >Grid ) Displayers >SwitchDisplay.php

    public function display(string $color = '', $refresh = false)
    {
        if ($color instanceof \Closure) {
            $color->call($this->row, $this);
        } else {
            $this->color($color);
        }

        $column = $this->column->getName();
        $checked = $this->value == 20 ? 'checked' : '';
        $color = $this->color ?: Admin::color()->primary();
        $url = $this->url();

        return Admin::view(
            'admin::grid.displayer.switch',
            compact('column', 'color', 'refresh', 'checked', 'url')
        );
    }

第四步:文件目录

vendor->dcat->laravel-admin->resources->vlews->gnd->displayer->switch.bladephp

    swt.off('change').on('change', function (e) {
        var that = $(this),
            url = that.data('url'),
            reload = that.data('reload'),
            checked = that.is(':checked'),
            name = that.attr('name'),
            data = {},
            value = checked ? 20 : 10;

        if (name.indexOf('.') === -1) {
            data[name] = value;
        } else {
            name = name.split('.');

            data[name[0]] = {};
            data[name[0]][name[1]] = value;
        }

        Dcat.NP.start();
        console.log(data);
        $.put({
            url: url,
            data: data,
            success: function (d) {
                Dcat.NP.done();
                var msg = d.data.message || d.message;

                if (d.status) {
                    Dcat.success(msg);
                    reload && Dcat.reload();
                } else {
                    Dcat.error(msg);
                }
            }
        });
    });

第五步 文件目录

vendor >laravel-admin ->dcat->Form->Feld->src->SwitchField.php

     */
    protected function prepareInputValue($value)
    {
        return $value == 20 ? 20 : 10;
    }

    public function render()
    {
        if (empty($this->attributes['data-size'])) {
            $this->small();
        }
        if (empty($this->attributes['data-color'])) {
            $this->primary();
        }

        $this->attribute('name', $this->getElementName());
        $this->attribute('value', 20);
        $this->attribute('type', 'checkbox');
        $this->attribute('data-plugin', $this->getFormElementId() . 'switchery');

        return parent::render();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值