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