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: {