行操作

对当前数据行进行自定义操作,默认有编辑 删除

定义行操作

  1. $grid->actions(function (Grid\Actions $actions) {
  2. $actions->getRow();//获取当前行的对象,注意是对象不是数组
  3. });

操作栏

操作栏的属性设置

隐藏操作栏

$grid->hideActions();

最小宽度

$grid->actionWidth(180);

操作栏固定

$grid->actionFixed('right');// left | right

操作栏对齐方式

$grid->actionAlign('right');//left  right  center

操作栏名称

$grid->actionLabel('操作');

获取当前行的下标

 $actions->getKey();

获取当前行的对象

注意是对象不是数组

$actions->getRow();
//获取ID
$actions->getRow()->id;

隐藏详情操作

当前版本暂无详情功能

$actions->hideViewAction()

隐藏编辑操作

$actions->hideEditAction()

隐藏删除操作

$actions->hideDeleteAction()

编辑/删除操作

基于el-button实现

$actions->editAction()->disabled(true);//获取编辑操作实例,并置属性
$actions->deleteAction()->message("确定要删除吗,删除不可恢复?");//获取删除操作实例

添加自定义操作

$actions->add(ActionButton::make("操作名称"));

操作组件

系统默认提供了一个自定义操作组件

ActionButton

可用于vue路由导航,异步请求,连接跳转,dialog 操作

创建操作

ActionButton::make("ActionName")
    ->order(3) //排序 越大越靠前
    ->icon("icon-class-name")//图标
    ->message("确认操作提示信息")
    ->tooltip("气泡提示")//无message时生效
    ->handler("route")
    ->uri("WeChat/manage/{app_id}")//路径,{xxx}会被自动替换成当前行的对应值,支持 ?x=x 参数 
    ->dialog(function($dialog){//返回dialog实例

    })

按钮排序
越大越靠前

ActionButton::make("ActionName")->order(3);

设置图片class

ActionButton::make("ActionName")->icon("icon-class-name");

设置操作确认提示信息

ActionButton::make("ActionName")->message("确认操作提示信息");

设置按钮气泡提示信息

ActionButton::make("ActionName")->tooltip("气泡提示");

设置操作事件类型

ActionButton::HANDLER_REQUEST //异步请求
ActionButton::HANDLER_ROUTE //vue路由跳转
ActionButton::HANDLER_LINK //href跳转
ActionButton::make("ActionName")->handler(ActionButton::HANDLER_REQUEST);

设置操作uri

关键词替换,{xxx} xxx会被替换grid字段的值

ActionButton::make("ActionName")->uri("WeChat/manage/{app_id}");

异步请求示例

$url = route("r_name",["p1"=>"v1"]);
ActionButton::make("ActionName")->uri($url);

弹出对话框

ActionButton::make("ActionName")->dialog(function(Dialog $dialog){

});

Dialog代码示例

$actions->add(ActionButton::make("发货")->order(4)->dialog(function (Dialog $dialog) use ($actions) {
    $dialog->title("订单发货")->showClose(false)->width('500px');
    $dialog->slot(function (Content $content) use ($actions) {
        $baseForm = new BaseForm();
        $baseForm->action(route("order-express"));
        $baseForm->emit("closeDialog");
        $baseForm->emit("tableReload");
        $baseForm->addValue("order_no", $actions->getRow()->order_no);
        $baseForm->item("express_company", "物流公司")->required();
        $baseForm->item("express_no", "物流单号")->required();
        $content->row($baseForm);
    });
}));

{info} 这里的Dialog展示的是一个基础表单,当然你可以展示任意 页面类型组件