研究hyperf-plus/ui 表格的新增删除和修改以及自定义操作

首先是新增操作,新增的话需要一个填写表单的地方

$grid->dialogForm($this->form()->isDialog()->labelWidth('auto')->className('p-15'), '700px', ['添加账户', '编辑账户']);

这段代码是在表格里绑定自己创建的表单,分析一下
dialogForm,意思是在表格里绑定表单,第一个参数传一个表单对象,第二个参数传表单宽度,第三个参数传表单的标题。
下面上表单代码

public function form(): Form
    {
    //首先把你需要操作的模型new一下,然后传入生成表单的类里
        $form = new Form(new $userModel());
        //首先是创建上传头像的组件,item绑定字段名和显示名称,component绑定组件,
        //Upload::make是生成一个上传文件的组件,avatar是指定上传文件的类型,
        //path是指定存储路径,uniqueName是指定存储的文件名称不重复。
        userTable = "admin_users";
        $form->item('avatar', '头像')->component(Upload::make()->avatar()->path('avatar')->uniqueName());
        //item是快速生成字段,而row则是自定义布局。columm新增一栏,rowItem设置字段名和显示名称
        //serveCreationRules 设置新建数据的规则,required必填,unique:table_name在表内不重复
        //serveUpdateRules 设置更新数据的表单规则,Input::make()创建input组件对象
        //showWordLimit() 是否显示字数限制,maxlength(20)字段最大输入长度20
        $form->row(function (Row $row, Form $form) use ($userTable) {
            $row->column(8, $form->rowItem('username', '用户名')
                ->serveCreationRules(['required', "unique:{$userTable}"])
                ->serveUpdateRules(['required', "unique:{$userTable},username,{{id}}"])
                ->component(Input::make())->required());
            $row->column(8, $form->rowItem('name', '名称')->component(Input::make()->showWordLimit()->maxlength(20))->required());
        });
        //这里是生成密码input栏 confirmed比较和确认密码字段是否一致,ignoreEmpty不清楚,看注释是
        //If Null Dont Return ,应该是为空就忽略的意思。showPassword 是否显示切换密码图标
        $form->row(function (Row $row, Form $form) {
            $row->column(8, $form->rowItem('password', '密码')->serveCreationRules(['required', 'string', 'confirmed'])->serveUpdateRules(['confirmed'])->ignoreEmpty()
                ->component(function () {
                    return Input::make()->password()->showPassword();
                }));
                //copyValue 从字段里复制
            $row->column(8, $form->rowItem('password_confirmation', '确认密码')
                ->copyValue('password')->ignoreEmpty()
                ->component(function () {
                    return Input::make()->password()->showPassword();
                }));
        });
        //在新增/更新数据前的处理操作,这里是加密了密码
         $form->saving(function (Form $form) {
            if ($form->password) {
                $form->password = password_hash($form->password, PASSWORD_DEFAULT);
            }
        });
                //在删除数据前的处理操作
        $form->deleting(function (Form $form, $id) {
            if (Auth(config('admin.auth.guard', 'jwt'))->user()->getId() == $id || $id == 1) {
                return UI::responseError('删除失败');
            }
        });
    }

ok,这个配置好了,你点击新增和编辑按钮就会弹出表单让你填了。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue项目中使用存储地址为`./node_modules/gc-starter-ui-plus/packages/assets/icons`下的SVG图标,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了`gc-starter-ui-plus`这个包。你可以在项目的`package.json`文件中查看依赖项,确认是否已经添加了该包。 2. 在你的Vue组件中,可以通过引入SVG图标的方式来使用它们。你可以在`src`目录下的`components`文件夹中创建一个新的组件,例如`Icon.vue`。 3. 在`Icon.vue`组件中,你可以使用`import`语句引入SVG图标。例如,如果你想使用`./node_modules/gc-starter-ui-plus/packages/assets/icons`下的`example.svg`图标,你可以这样写: ```javascript import ExampleIcon from 'gc-starter-ui-plus/packages/assets/icons/example.svg'; ``` 4. 然后,你可以在`Icon.vue`组件的模板中使用这个图标。例如,你可以将它作为一个`<svg>`元素的`src`属性的值: ```html <template> <div> <svg> <use :xlink:href="ExampleIcon"></use> </svg> </div> </template> ``` 这样,你就可以在Vue项目中使用存储地址为`./node_modules/gc-starter-ui-plus/packages/assets/icons`下的SVG图标了。请注意,具体的路径和文件名可能会根据你的项目和图标的实际情况有所不同,所以请根据实际情况进行调整。 #### 引用[.reference_title] - *1* *3* [小白初学vue-element-admin-master及其所有有关环境配置和依赖安装2021-08-13](https://blog.csdn.net/weixin_42343376/article/details/119675474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue-element-admin学习总结(一)](https://blog.csdn.net/yupyuping/article/details/115008096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值