JeecgBoot的前端Form升级为FormModel用法(支持 v-model 绑定)
生活随笔
收集整理的這篇文章主要介紹了
JeecgBoot的前端Form升级为FormModel用法(支持 v-model 绑定)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
FormModel 表單 (支持 v-model 綁定)(Ant Design of Vue 版本:1.5.0+)
新版form特性
- 1、支持雙向綁定
- 2、無(wú)需v-decorator這個(gè)反人類(lèi)屬性設(shè)置
- 3、form用法跟目前主流框架(element ui iview風(fēng)格形成統(tǒng)一,不在另類(lèi))
- 4、表單賦值無(wú)需手動(dòng)設(shè)置,雙向綁定自動(dòng)賦值
新老form用法對(duì)比
標(biāo)簽規(guī)則升級(jí)
校驗(yàn)規(guī)則區(qū)別
表單賦值區(qū)別
表單提交區(qū)別
角色管理老版form代碼
~~~ <template><a-modal:title="title":width="800":visible="visible":confirmLoading="confirmLoading"@ok="handleOk"@cancel="handleCancel"cancelText="關(guān)閉"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="角色名稱(chēng)"><a-input placeholder="請(qǐng)輸入角色名稱(chēng)" v-decorator="[ 'roleName', validatorRules.roleName]" /></a-form-item><a-form-item:labelCol="labelCol":wrapperCol="wrapperCol"label="角色編碼"><a-input placeholder="請(qǐng)輸入角色編碼" :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: '請(qǐng)輸入角色名稱(chēng)!' },{ min: 2, max: 30, message: '長(zhǎng)度在 2 到 30 個(gè)字符', trigger: 'blur' }]},roleCode:{rules: [{ required: true, message: '請(qǐng)輸入角色名稱(chēng)!'},{ min: 0, max: 64, message: '長(zhǎng)度不超過(guò) 64 個(gè)字符', trigger: 'blur' },{ validator: this.validateRoleCode}]},description:{rules: [{ min: 0, max: 126, message: '長(zhǎng)度不超過(guò) 126 個(gè)字符', trigger: 'blur' }]}},}},created () {},methods: {add () {this.edit({});},edit (record) {this.form.resetFields();this.model = Object.assign({}, record);this.visible = true;//編輯頁(yè)面禁止修改角色編碼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;// 觸發(fā)表單驗(yàn)證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="關(guān)閉"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="請(qǐng)輸入角色編碼"/></a-form-model-item><a-form-model-item label="角色名稱(chēng)" required prop="roleName"><a-input v-model="model.roleName" placeholder="請(qǐng)輸入角色名稱(chēng)"/></a-form-model-item><a-form-model-item label="描述" prop="description"><a-textarea :rows="5" v-model="model.description" placeholder="請(qǐng)輸入角色描述"/></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: '請(qǐng)輸入角色名稱(chēng)!' },{ min: 2, max: 30, message: '長(zhǎng)度在 2 到 30 個(gè)字符', trigger: 'blur' }],roleCode: [{ required: true, message: '請(qǐng)輸入角色名稱(chēng)!'},{ min: 0, max: 64, message: '長(zhǎng)度不超過(guò) 64 個(gè)字符', trigger: 'blur' },{ validator: this.validateRoleCode}],description: [{ min: 0, max: 126, message: '長(zhǎng)度不超過(guò) 126 個(gè)字符', trigger: 'blur' }]},}},created () {},methods: {add () {this.edit({});},edit (record) {this.model = Object.assign({}, record);this.visible = true;//編輯頁(yè)面禁止修改角色編碼if(this.model.id){this.roleDisabled = true;}else{this.roleDisabled = false;}},close () {this.$emit('close');this.visible = false;},handleOk () {const that = this;// 觸發(fā)表單驗(yàn)證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> ~~~更多用法參考官方文檔
官方FormModel用法
總結(jié)
以上是生活随笔為你收集整理的JeecgBoot的前端Form升级为FormModel用法(支持 v-model 绑定)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java课程设计基于ssm的微信小程序
- 下一篇: 百度十亿级流量的搜索前端,是怎么做架构升