From 115fcb76642644a59d56ea4a88ce9906c0db3efb Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期六, 02 十二月 2023 17:44:53 +0800 Subject: [PATCH] feat: 部门物品管理 报废、退回新增时数量校验 --- admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue | 28 +++++++++++++++++----------- admin-web/src/views/departmentitem/itemret/returnNote/edit.vue | 14 ++++++++++++-- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue index 28a1bf7..c7afe42 100644 --- a/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue +++ b/admin-web/src/views/departmentitem/itemret/returnNote/edit.vue @@ -149,6 +149,7 @@ ]" > <el-input + clearable type="number" v-model.number="row.counts" ></el-input> @@ -471,14 +472,23 @@ this.$refs['ruleForm'].validate((valid) => { if (valid) { let params = JSON.parse(JSON.stringify(this.formData)) - params.goods.map((g, gid) => { + params.goods.map(g => { delete g.goodsOptions let arr = [] g.models.map(m => { - arr = arr.concat(m) + m.map(item=>{ + if(item.counts&&item.counts>0){ + arr.push(item) + } + }) }) g.models = arr }) + params.goods = params.goods.filter(g=>g.models.length>0) + if(params.goods.length===0){ + this.$message.error('璇疯嚦灏戝~鍐欎竴涓��鍥炵墿鍝�'); + return; + } if (this.loading) return this.loading = true returnAdd(params) diff --git a/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue b/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue index 69d67af..7370b1f 100644 --- a/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue +++ b/admin-web/src/views/departmentitem/itemscr/scrapping/edit.vue @@ -149,6 +149,7 @@ ]" > <el-input + clearable type="number" v-model.number="row.counts" ></el-input> @@ -161,10 +162,10 @@ label-width="0" :prop="`goods.${goodsIndex}.models.${mIndex}.scrappedCode`" :rules="[ - {validator: checkReason,scrappedCode:row.scrappedCode, trigger: ['blur', 'change']} + {validator: checkReason,counts:row.counts,scrappedCode:row.scrappedCode, trigger: ['blur', 'change']} ]" > - <el-select v-model="row.scrappedCode" placeholder="璇烽�夋嫨"> + <el-select v-model="row.scrappedCode" clearable placeholder="璇烽�夋嫨"> <el-option v-for="item in scrapReasonOptions" :key="item.dict_code" @@ -254,15 +255,11 @@ return { checkCounts: (rule, value, callback) => { if (!rule.counts) { - return callback(new Error('璇疯緭鍏ユ姤搴熸暟閲�')); + return callback(); } if (!Number.isInteger(rule.counts)) { // this.$message.warning('璇疯緭鍏ユ暟瀛楀��'); return callback(new Error('璇疯緭鍏ユ暟瀛楀��')); - } - if (rule.counts < 1) { - // this.$message.warning('鏁板瓧鍊间笉鑳戒负0'); - return callback(new Error('鏁板瓧鍊煎繀椤诲ぇ浜�0')); } if (rule.counts > rule.userUseCount) { // this.$message.warning('鍒嗗彂鏁伴噺涓嶈兘澶т簬鍓╀綑鏁伴噺'); @@ -271,7 +268,7 @@ callback(); }, checkReason: (rule, value, callback) => { - if (!rule.scrappedCode) { + if (rule.counts && !rule.scrappedCode) { return callback(new Error('璇烽�夋嫨鎶ュ簾鍘熷洜')); } callback(); @@ -504,15 +501,24 @@ this.$refs['ruleForm'].validate((valid) => { if (valid) { let params = JSON.parse(JSON.stringify(this.formData)) - params.goods.map((g, gid) => { + params.goods.map(g => { delete g.goodsOptions let arr = [] g.models.map(m => { - arr = arr.concat(m) + m.map(item=>{ + if(item.counts&&item.counts>0){ + arr.push(item) + } + }) }) g.models = arr }) - if(this.loading) return + params.goods = params.goods.filter(g=>g.models.length>0) + if(params.goods.length===0){ + this.$message.error('璇疯嚦灏戝~鍐欎竴涓姤搴熺墿鍝�'); + return; + } + if (this.loading) return this.loading = true scrappedAdd(params) .then((res) => { -- Gitblit v1.9.1