From fa8231eeae1b6a3908a41c5bb9269d26a45b62ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Thu, 16 Jun 2022 14:26:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/xm/core/xmMenu/XmMenuAdd.vue | 10 +++- src/views/xm/core/xmMenu/XmMenuEdit.vue | 58 +++++++++++++----- .../xm/core/xmQuestion/XmQuestionAdd.vue | 19 +++++- .../xm/core/xmQuestion/XmQuestionEdit.vue | 24 ++++++-- src/views/xm/core/xmTask/XmTaskAdd.vue | 9 ++- src/views/xm/core/xmTask/XmTaskEdit.vue | 59 ++++++++++++++----- 6 files changed, 137 insertions(+), 42 deletions(-) diff --git a/src/views/xm/core/xmMenu/XmMenuAdd.vue b/src/views/xm/core/xmMenu/XmMenuAdd.vue index dad8be26..6b1bbb1a 100644 --- a/src/views/xm/core/xmMenu/XmMenuAdd.vue +++ b/src/views/xm/core/xmMenu/XmMenuAdd.vue @@ -154,13 +154,17 @@ //{ required: true, message: '需求编号不能为空', trigger: 'blur' } ], menuName: [ - { required: true, message: '需求名称不能为空', trigger: 'blur' } + { required: true, message: '需求名称不能为空', trigger: 'change' }, + { min: 2, max: 250, message: '长度在 2 到 250 个字符', trigger: 'change' },//长度 ], seqNo: [ - { required: true, message: '序号不能为空', trigger: 'blur' } + { required: true, message: '序号不能为空', trigger: 'change' } ], mmUserid: [ - { required: true, message: '负责人不能为空', trigger: 'blur' } + { required: true, message: '负责人不能为空', trigger: 'change' } + ], + remark: [ + { max: 1000, message: '长度在 0 到 1000 个字符', trigger: 'change' },//长度 ], }, //新增界面数据 项目需求表 diff --git a/src/views/xm/core/xmMenu/XmMenuEdit.vue b/src/views/xm/core/xmMenu/XmMenuEdit.vue index 314ede35..6f0d8e9a 100644 --- a/src/views/xm/core/xmMenu/XmMenuEdit.vue +++ b/src/views/xm/core/xmMenu/XmMenuEdit.vue @@ -294,13 +294,17 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue'; //{ required: true, message: '需求编号不能为空', trigger: 'blur' } ], menuName: [ - { required: true, message: '需求名称不能为空', trigger: 'blur' } + { required: true, message: '需求名称不能为空', trigger: 'change' }, + { min: 2, max: 250, message: '长度在 2 到 250 个字符', trigger: 'change' },//长度 ], seqNo: [ - { required: true, message: '序号不能为空', trigger: 'blur' } + { required: true, message: '序号不能为空', trigger: 'change' } ], mmUserid: [ - { required: true, message: '负责人不能为空', trigger: 'blur' } + { required: true, message: '负责人不能为空', trigger: 'change' } + ], + remark: [ + { max: 1000, message: '长度在 0 到 1000 个字符', trigger: 'change' },//长度 ], }, //新增界面数据 项目需求表 @@ -446,20 +450,44 @@ import XmMenuExchangeMng from '../xmMenuExchange/XmMenuExchangeMng.vue'; } } - editXmMenuSomeFields(params).then(res=>{ - var tips = res.data.tips; - if(tips.isOk){ - Object.assign(row,params) - Object.assign(this.editFormBak,row) - this.$emit("edit-fields",params); - if(fieldName==='remark'||fieldName==='link'){ + var func=(params)=>{ + editXmMenuSomeFields(params).then(res=>{ + var tips = res.data.tips; + if(tips.isOk){ + Object.assign(row,params) + Object.assign(this.editFormBak,row) + this.$emit("edit-fields",params); + if(fieldName==='remark'||fieldName==='link'){ + this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) + } + }else{ + Object.assign(this.editForm,this.editFormBak) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) } - }else{ - Object.assign(this.editForm,this.editFormBak) - this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) - } - }) + }) + } + + if(fieldName=='remark'){ + this.$refs.editForm.validateField('remark',err=>{ + if(err){ + this.$notify({position:'bottom-left',showClose:true,message: err,type: 'error'}) + return; + }else{ + func(params) + } + }) + }else if(fieldName=='menuName'){ + this.$refs.editForm.validateField('menuName',err=>{ + if(err){ + this.$notify({position:'bottom-left',showClose:true,message: err,type: 'error'}) + return; + }else{ + func(params) + } + }) + }else{ + func(params) + } }, onAddSubMenu(menu){ diff --git a/src/views/xm/core/xmQuestion/XmQuestionAdd.vue b/src/views/xm/core/xmQuestion/XmQuestionAdd.vue index e749abe2..516213e1 100644 --- a/src/views/xm/core/xmQuestion/XmQuestionAdd.vue +++ b/src/views/xm/core/xmQuestion/XmQuestionAdd.vue @@ -237,14 +237,25 @@ load:{ list: false, edit: false, del: false, add: false },//查询中... addFormRules: { name: [ - {required: true, message: '缺陷标题不可为空', trigger: 'blur' } + {required: true, message: '缺陷标题不可为空', trigger: 'change' }, + { min: 2, max: 250, message: '长度在 2 到 250 个字符', trigger: 'change' },//长度 ], askUsername: [ - {required: true, message: '提出人不可为空', trigger: 'blur' } + {required: true, message: '提出人不可为空', trigger: 'change' } ], handlerUsername: [ - {required: true, message: '请指派给一个人', trigger: 'blur' } + {required: true, message: '请指派给一个人', trigger: 'change' } ], + description: [ + { min: 0, max: 250, message: '缺陷描述长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + opStep: [ + { min: 0, max: 250, message: '测试步骤长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + expectResult: [ + { min: 0, max: 250, message: '预期结果长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + }, //新增界面数据 xm_question addForm: { @@ -310,6 +321,8 @@ this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); }).catch( err => this.load.add=false); }); + }else{ + this.$notify({position:'bottom-left',showClose:true,message: "表单验证不通过", type: 'error' }); } }); }, diff --git a/src/views/xm/core/xmQuestion/XmQuestionEdit.vue b/src/views/xm/core/xmQuestion/XmQuestionEdit.vue index 8badf8fc..913ce499 100644 --- a/src/views/xm/core/xmQuestion/XmQuestionEdit.vue +++ b/src/views/xm/core/xmQuestion/XmQuestionEdit.vue @@ -282,16 +282,30 @@ bugReason:[], },//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]} load:{ list: false, edit: false, del: false, add: false },//查询中... - editFormRules: { + editFormRules: { name: [ - {required: true, message: '缺陷标题不可为空', trigger: 'blur' } + {required: true, message: '缺陷标题不可为空', trigger: 'change' }, + { min: 2, max: 250, message: '长度在 2 到 250 个字符', trigger: 'change' },//长度 ], askUsername: [ - {required: true, message: '提出人不可为空', trigger: 'blur' } + {required: true, message: '提出人不可为空', trigger: 'change' } ], handlerUsername: [ - {required: true, message: '请指派给一个人', trigger: 'blur' } + {required: true, message: '请指派给一个人', trigger: 'change' } ], + description: [ + { min: 0, max: 250, message: '缺陷描述长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + opStep: [ + { min: 0, max: 250, message: '测试步骤长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + expectResult: [ + { min: 0, max: 250, message: '预期结果长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + remarks: [ + { min: 0, max: 250, message: '处理意见长度在 0 到 1000 个字符', trigger: 'change' },//长度 + ], + }, //新增界面数据 xm_question editForm: { @@ -362,6 +376,8 @@ this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); }).catch( err => this.load.edit=false); }); + }else{ + this.$notify({position:'bottom-left',showClose:true,message: "表单验证不通过", type: 'error' }); } }); }, diff --git a/src/views/xm/core/xmTask/XmTaskAdd.vue b/src/views/xm/core/xmTask/XmTaskAdd.vue index 0fa46e9f..f4cfa026 100644 --- a/src/views/xm/core/xmTask/XmTaskAdd.vue +++ b/src/views/xm/core/xmTask/XmTaskAdd.vue @@ -306,9 +306,14 @@ xmTaskSettleSchemel:[], },//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]} load:{ list: false, edit: false, del: false, add: false },//查询中... - addFormRules: { + addFormRules: { name: [ - { required: true, message: '任务名称不能为空', trigger: 'change' } + { required: true, message: '任务名称不能为空', trigger: 'change' }, + { min: 2, max: 150, message: '长度在 2 到 150 个字符', trigger: 'change' },//长度 + + ], + description: [ + { max: 1000, message: '长度在 0 到 1000 个字符', trigger: 'change' },//长度 ], taskState: [ { required: true, message: '请选择任务状态', trigger: 'change' } diff --git a/src/views/xm/core/xmTask/XmTaskEdit.vue b/src/views/xm/core/xmTask/XmTaskEdit.vue index 5b510264..c76f596e 100644 --- a/src/views/xm/core/xmTask/XmTaskEdit.vue +++ b/src/views/xm/core/xmTask/XmTaskEdit.vue @@ -346,10 +346,15 @@ load:{ list: false, edit: false, del: false, add: false },//查询中... editFormRules: { name: [ - { required: true, message: '任务名称不能为空', trigger: 'blur' } + { required: true, message: '任务名称不能为空', trigger: 'change' }, + { min: 2, max: 150, message: '长度在 2 到 150 个字符', trigger: 'change' },//长度 + + ], + description: [ + { max: 1000, message: '长度在 0 到 1000 个字符', trigger: 'change' },//长度 ], taskState: [ - { required: true, message: '请选择任务状态', trigger: 'blur' } + { required: true, message: '请选择任务状态', trigger: 'change' } ], // execuser:[{ // validator: validateExec, trigger: 'blur' @@ -577,6 +582,20 @@ }, editXmTaskSomeFields(row,fieldName,$event){ + var that=this; + var func=(params)=>{ + editXmTaskSomeFields(params).then(res=>{ + var tips = res.data.tips; + if(tips.isOk){ + this.$emit('edit-fields',params) + Object.assign(row,params) + this.editFormBak=Object.assign({},row) + }else{ + Object.assign(this.editForm,this.editFormBak) + this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) + } + }) + } var params={ids:[row.id]}; if(fieldName==='menuId'){ if($event){ @@ -622,19 +641,29 @@ }else{ params[fieldName]=$event } - - editXmTaskSomeFields(params).then(res=>{ - var tips = res.data.tips; - if(tips.isOk){ - this.$emit('edit-fields',params) - Object.assign(row,params) - this.editFormBak=Object.assign({},row) - }else{ - ; - Object.assign(this.editForm,this.editFormBak) - this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) - } - }) + + + if(fieldName=='description'){ + this.$refs.editForm.validateField('description',err=>{ + if(err){ + this.$notify({position:'bottom-left',showClose:true,message: err,type: 'error'}) + return; + }else{ + func(params) + } + }) + }else if(fieldName=='name'){ + this.$refs.editForm.validateField('name',err=>{ + if(err){ + this.$notify({position:'bottom-left',showClose:true,message: err,type: 'error'}) + return; + }else{ + func(params) + } + }) + }else{ + func(params) + } }, },//end method components: {