您现在的位置是:亿华云 > 人工智能
JeecgBoot的前端Form升级为FormModel用法
亿华云2025-10-04 03:25:34【人工智能】6人已围观
简介FormModel 表单 (支持 v-model 绑定)(Ant Design of Vue 版本:1.5.0+)新版form特性1、支持双向绑定2、无需v-decorator这个反人类属性设置3、f
FormModel 表单 (支持 v-model 绑定)(Ant Design of Vue 版本:1.5.0+)
新版form特性
1、前端支持双向绑定
2、升级无需v-decorator这个反人类属性设置
3、用法form用法跟目前主流框架(element ui iview风格形成统一,前端不在另类)
4、亿华云表单赋值无需手动设置,升级双向绑定自动赋值
新老form用法对比
标签规则升级
校验规则区别
表单赋值区别
表单提交区别
角色管理老版form代码
~~~ <template> <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk" @cancel="handleCancel" cancelText="关闭" wrapClassName="ant-modal-cust-warp" style="top:5%;height: 85%;overflow-y: hidden"> <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="角色名称"> <a-input placeholder="请输入角色名称" v-decorator="[ roleName,用法 validatorRules.roleName]" /> </a-form-item> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="角色编码"> <a-input placeholder="请输入角色编码" :disabled="roleDisabled" v-decorator="[ roleCode, validatorRules.roleCode]" /> </a-form-item> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="描述"> <a-textarea :rows="5" placeholder="..." v-decorator="[ description, validatorRules.description ]" /> </a-form-item> </a-form> </a-spin> </a-modal> </template> <script> import pick from lodash.pick import { addRole,editRole,duplicateCheck } from @/api/api export default { name: "RoleModal", data () { return { title:"操作", visible: false, roleDisabled: false, model: { }, labelCol: { xs: { span: 24 }, sm: { span: 5 }, }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 }, }, confirmLoading: false, form: this.$form.createForm(this), validatorRules:{ roleName:{ rules: [ { required: true, message: 请输入角色名称! }, { min: 2, max: 30, message: 长度在 2 到 30 个字符, trigger: blur } ]}, roleCode:{ rules: [ { required: true, message: 请输入角色名称!}, { min: 0, max: 64, message: 长度不超过 64 个字符, trigger: blur }, { validator: this.validateRoleCode} ]}, description:{ rules: [ { min: 0, max: 126, message: 长度不超过 126 个字符, trigger: blur } ]} }, } }, created () { }, methods: { add () { this.edit({ }); }, edit (record) { this.form.resetFields(); this.model = Object.assign({ }, record); this.visible = true; //编辑页面禁止修改角色编码 if(this.model.id){ this.roleDisabled = true; }else{ this.roleDisabled = false; } this.$nextTick(() => { this.form.setFieldsValue(pick(this.model,roleName, description,roleCode)) }); }, close () { this.$emit(close); this.visible = false; }, handleOk () { const that = this; // 触发表单验证 this.form.validateFields((err, values) => { if (!err) { that.confirmLoading = true; values.roleName = (values.roleName || ).trim() values.roleCode = (values.roleCode || ).trim() let formData = Object.assign(this.model, values); let obj; console.log(formData) if(!this.model.id){ obj=addRole(formData); }else{ obj=editRole(formData); } obj.then((res)=>{ if(res.success){ that.$message.success(res.message); that.$emit(ok); }else{ that.$message.warning(res.message); } }).finally(() => { that.confirmLoading = false; that.close(); }) } }) }, handleCancel () { this.close() }, validateRoleCode(rule, value, callback){ if(/[\u4E00-\u9FA5]/g.test(value)){ callback("角色编码不可输入汉字!"); }else{ var params = { tableName: "sys_role", fieldName: "role_code", fieldVal: value, dataId: this.model.id, }; duplicateCheck(params).then((res)=>{ if(res.success){ callback(); }else{ callback(res.message); } }); } } } } </script> <style scoped> </style> ~~~角色管理新版from代码
~~~ <template> <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk" @cancel="handleCancel" cancelText="关闭" wrapClassName="ant-modal-cust-warp" style="top:5%;height: 85%;overflow-y: hidden"> <a-spin :spinning="confirmLoading"> <a-form-model ref="form" v-bind="layout" :model="model" :rules="validatorRules"> <a-form-model-item label="角色编码" required prop="roleCode"> <a-input v-model="model.roleCode" :disabled="roleDisabled" placeholder="请输入角色编码"/> </a-form-model-item> <a-form-model-item label="角色名称" required prop="roleName"> <a-input v-model="model.roleName" placeholder="请输入角色名称"/> </a-form-model-item> <a-form-model-item label="描述" prop="description"> <a-textarea :rows="5" v-model="model.description" placeholder="请输入角色描述"/> </a-form-model-item> </a-form-model> </a-spin> </a-modal> </template> <script> import { addRole,editRole,duplicateCheck } from @/api/api export default { name: "RoleModal", data () { return { title:"操作", visible: false, roleDisabled: false, model: { }, layout: { labelCol: { span: 3 }, wrapperCol: { span: 14 }, }, confirmLoading: false, validatorRules:{ roleName: [ { required: true, message: 请输入角色名称! }, { min: 2, max: 30, message: 长度在 2 到 30 个字符, trigger: blur } ], roleCode: [ { required: true, message: 请输入角色名称!}, { min: 0, max: 64, message: 长度不超过 64 个字符, trigger: blur }, { validator: this.validateRoleCode} ], description: [ { min: 0, max: 126, message: 长度不超过 126 个字符, trigger: blur } ] }, } }, created () { }, methods: { add () { this.edit({ }); }, edit (record) { this.model = Object.assign({ }, record); this.visible = true; //编辑页面禁止修改角色编码 if(this.model.id){ this.roleDisabled = true; }else{ this.roleDisabled = false; } }, close () { this.$emit(close); this.visible = false; }, handleOk () { const that = this; // 触发表单验证 this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = true; let obj; if(!this.model.id){ obj=addRole(this.model); }else{ obj=editRole(this.model); } obj.then((res)=>{ if(res.success){ that.$message.success(res.message); that.$emit(ok); }else{ that.$message.warning(res.message); } }).finally(() => { that.confirmLoading = false; that.close(); }) }else{ return false; } }) }, handleCancel () { this.close() }, validateRoleCode(rule, value, callback){ if(/[\u4E00-\u9FA5]/g.test(value)){ callback("角色编码不可输入汉字!"); }else{ let params = { tableName: "sys_role", fieldName: "role_code", fieldVal: value, dataId: this.model.id, }; duplicateCheck(params).then((res)=>{ if(res.success){ callback(); }else{ callback(res.message); } }); } } } } </script> <style scoped> </style> ~~~【编辑推荐】
Windows10这功能已如同残废!教你如何彻底关闭它 C++和C++程序员谁先完蛋?前端 2021年值得关注的亿华云计算人工智能趋势 RAID磁盘阵列到底适不适合你?一文读懂 Windows 10是绝唱!升级微软新系统开始换版本号了云南idc服务商很赞哦!(67616)
站长推荐
比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
2021年域名预定要怎么去预定?有什么新方法?
2020还能入手四数字域名吗?四数字域名该怎么投资?
.co域名建站好吗?
域名不仅仅是一个简单的网站。对于有长远眼光的公司来说,在运营网站之前确定一个优秀的域名对有长远眼光的公司来说是非常重要的。这对今后的市场营销、产品营销和企业品牌建设都具有十分重要的意义。优秀的域名是企业在市场竞争中获得持久优势的利器。
再见,Eclipse...
想做网站,是自己注册域名好还是从别人手上买域名好?
从甲方到乙方,如何做好混沌工程的行业化落地