From 1bf69048deb74e4b5385c147326aec0125147be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E8=99=B9=E7=9D=BF?= <297504645@qq.com> Date: Thu, 23 Nov 2023 17:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=B8=9C=E9=98=B3=E4=B8=BB=E5=AD=90?= =?UTF-8?q?=E8=A1=A8=E3=80=91=E6=96=B0=E5=A2=9E=E7=BC=96=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=AD=90=E8=A1=A8=E8=A1=A8=E5=8D=95=E9=AA=8C=E8=AF=81-?= =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/addEditFromApiPop/index.vue | 88 +++++++++++++++++-- .../src/components/currenTableFlex/index.vue | 7 +- .../src/components/umyTable/index.vue | 2 +- 3 files changed, 89 insertions(+), 8 deletions(-) diff --git a/WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue index 6a14856b2..77381f44a 100644 --- a/WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue +++ b/WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue @@ -130,12 +130,13 @@ class="currenTableFlex" :flexTableData="flexTableData" :flexTableColumns="flexTableColumns" + :border="true" > @@ -215,8 +216,9 @@ export default { detailPopShow:false,//子表信息弹窗 flexTableData:null,//子表table flexTableData_stag:null,//子表table暂存数据 - // flexTableColumns:null,//子表table列 - flexTableColumns: null, + detailFormRules: {},//子表表单验证 + flexTableColumns:null,//子表table列 + showDetailRulesTipper:false,//子表规则提示是否正在显示(处理提示重复叠加问题) } }, mounted(){ @@ -272,13 +274,23 @@ export default { }) } - // 表单验证格式化 + // 主表-表单验证格式化 this.formRules={} _dtoList.forEach(item=>{ if(item.isRequired){ this.formRules[item.prop] = [{ required: true, trigger: "blur", message: "不可为空" }] } }) + + // 子表-表单验证格式化 + // todo:detailFormRules从配置文件格式化 + this.detailFormRules = { + itemCode:[{ required: true, trigger: "blur", message: "不可为空" }], + rawQty:[ + { required: true, trigger: "blur", message: "不可为空" }, + { valid:(val)=>{return this.numberOverControl(val,1,20)}, trigger: "blur", message: "必须大于0,且小于等于20" } + ] + } }, // 判断是否存在子表 isHaveDetail(){ @@ -296,8 +308,72 @@ export default { this.detailPopShow = false this.$emit("closeDetailPop") }, + // 数字值处理 + numberOverControl(value,min,max){ + let val = Number(value) + if(min && max){ return val >= min && val <= max } + if(min && !max){ return val >= min } + if(!min && max){ return val <= max } + }, // 子表确定 sureDetailHandle(){ + let _hasNoVaild = false + // 检验规则判断处理 + for(let i=0;i{ + vaild_zh[item.prop] = item.label + }) + // 全部提示整合 + let _tipper = "所有列检验规则:
" + for(var i in this.detailFormRules){ + this.detailFormRules[i].forEach(item=>{ + _tipper += `【${vaild_zh[i]}】列${item.message};
`; + }) + } + _tipper += '请按照要求填写' + if(!this.showDetailRulesTipper){ + this.showDetailRulesTipper = _tipper + this.$message({ + dangerouslyUseHTMLString: true, + message: _tipper, + type: 'error', + showClose:true, + onClose:(()=>{ + this.showDetailRulesTipper = null + }) + }) + } + return + } this.flexTableData_stag = JSON.parse(JSON.stringify(this.flexTableData)) this.detailPopShow = false this.$emit("sureDetailPop") @@ -309,9 +385,9 @@ export default { this.submitForm(valid,this.formData,this.handleType,this.formItemData,this.formRules) return } - this.formData.details = this.flexTableData - this.Loading.addEditApiLoading = true if (valid) { + this.formData.details = this.flexTableData + this.Loading.addEditApiLoading = true // 新增 if(this.handleType == 'add'){ ApiTypePost( diff --git a/WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue index 1cd5760d0..618933d73 100644 --- a/WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue +++ b/WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue @@ -278,7 +278,12 @@ methods: { //添加行 flexOpenAddNew() { - let _oneRow = Object.assign({}, this.flexTableData[0]) + // 则从表头中取值,设置默认参数为null + let _oneRow = {} + this.flexTableColumns.forEach(item=>{ + _oneRow[item.prop] = null + }) + // _oneRow = Object.assign({}, this.flexTableData[0]) for(let key in _oneRow){ _oneRow[key] = null } diff --git a/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue index 397654c27..e3b606c3b 100644 --- a/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue +++ b/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue @@ -250,7 +250,7 @@ export default { // table是否有border tableBorder: { type: Boolean, - default: false, + default: true, }, // 是否为第一个浮动,如果是,则item中的fixed无效(应用场景:主列表,因为用户排序不定元素为第一项) firstFixed: {