0
点赞
收藏
分享

微信扫一扫

dcat 批量操作弹窗及参数传递

成义随笔 2023-02-15 阅读 29


dcat 批量操作弹窗及参数传递_php

创建表单

<?php


namespace App\Admin\Form;

use App\Models\Good;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;

class EditGoodsMatchForm extends Form
{

use LazyWidget;

public function form()
{
$this->select('goods_id', '修改商品')->options(Good::pluck('goods_name', 'id'));
$this->hidden('ids')->attribute('id', 'batchsp-id'); //批量选择的行的id通过隐藏元素 提交时一并传递过去
}

public function handle($input)
{
//获取表单传递过来的值
return $this->response()->success('成功');
}


}

行批量操作

<?php


namespace App\Admin\BatchAction;


use App\Admin\Form\EditGoodsMatchForm;
use Dcat\Admin\Grid\BatchAction;
use Dcat\Admin\Widgets\Modal;

class EditGoodsMatch extends BatchAction
{
public $title = '修改匹配数据';


public function render()
{
$form = EditGoodsMatchForm::make();
$modal = Modal::make()
->lg()
->title($this->title)
->body($form)
->button($this->title);
$modal->onShow($this->getModalScript());
return $modal;

}


protected function getModalScript()
{
// 弹窗显示后往隐藏的id表单中写入批量选中的行ID
return <<<JS
// 获取选中的ID数组
var key = {$this->getSelectedKeysScript()}
//batchsp-id 与 之前弹窗隐藏的绑定的id一致
$('#batchsp-id').val(key);
JS;
}

}

控制器操作

$grid->batchActions([
new EditGoodsMatch(),
]);


举报

相关推荐

0 条评论