From 24fc98301c0b38a76b7d5aa704fe79a2e385e584 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 14:20:41 +0800
Subject: [PATCH] feat: 1、物品分发部门查询 2、分发新增数量校验

---
 admin-web/src/views/departmentitem/itemdis/distribution/edit.vue |   98 ++++++++++++++++++++++++++++++------------------
 1 files changed, 61 insertions(+), 37 deletions(-)

diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
index 1a44026..d94d5c4 100644
--- a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
+++ b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
@@ -118,12 +118,12 @@
             </el-col>
           </el-row>
           <el-row class="card3" v-for="(mItem, mIndex) in goodsItem.models" :key="mIndex">
-            <el-col style="padding: 10px 0" :span="10">
+            <el-col style="padding: 15px 0" :span="10">
               <el-form-item label="瑙勬牸鍨嬪彿:" style="margin-bottom: 0">
                 {{ getGoodsModelsName(mItem.baseGoodsModelsId) }}
               </el-form-item>
             </el-col>
-            <el-col style="padding: 10px 0" :span="4">
+            <el-col style="padding: 15px 0" :span="4">
               <el-form-item label="鍓╀綑鏁伴噺:" style="margin-bottom: 0" label-width="80">
                 {{ mItem.worehouseCount }}
               </el-form-item>
@@ -135,9 +135,12 @@
                   <template slot-scope="{$index,row}">
                     <el-form-item
                         :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.goodsNum`"
+                        :rules="[
+                          {validator: checkCounts,type: 1, userList: mItem.procureModelUserList,worehouseCount: mItem.worehouseCount, trigger: ['blur', 'change']}
+                        ]"
                         label-width="0"
                     >
-                      <el-input v-model="row.goodsNum" style="width: 100%"></el-input>
+                      <el-input v-model.number="row.goodsNum" style="width: 100%"></el-input>
                     </el-form-item>
                   </template>
                 </el-table-column>
@@ -145,6 +148,7 @@
                   <template slot-scope="{$index,row}">
                     <el-form-item
                         :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.nowUserName`"
+                        :rules="[{required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉濮撳悕', trigger: ['blur', 'change']}]"
                         label-width="0"
                     >
                       <el-input v-model="row.nowUserName" style="width: 100%"></el-input>
@@ -154,7 +158,8 @@
                 <el-table-column prop="nowUserPhone" label="鑱旂郴鐢佃瘽" align="center">
                   <template slot-scope="{$index,row}">
                     <el-form-item
-                        :prop="`transferGoods.${goodsIndex}.models.${mIndex}].procureModelUserList.${$index}.nowUserPhone`"
+                        :prop="`transferGoods.${goodsIndex}.models.${mIndex}.procureModelUserList.${$index}.nowUserPhone`"
+                        :rules="[{required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: ['blur', 'change']}]"
                         label-width="0"
                     >
                       <el-input v-model="row.nowUserPhone" style="width: 100%"></el-input>
@@ -180,12 +185,15 @@
               </el-table>
             </el-col>
             <!--BC绫诲晢鍝� -->
-            <el-col style="padding: 10px 0" :span="10" v-else>
+            <el-col style="padding: 15px 0" :span="10" v-else>
               <el-form-item
                   label="鍒嗗彂鏁伴噺:"
                   :prop="`transferGoods.${goodsIndex}.models.${mIndex}.counts`"
+                  :rules="[
+                    {validator: checkCounts, type: 2,worehouseCount: mItem.worehouseCount, trigger: ['blur', 'change']}
+                  ]"
                   style="margin-bottom: 0" label-width="80">
-                <el-input v-model.number="goodsItem.models[mIndex].counts" style="width: 160px;"></el-input>
+                <el-input v-model.number="mItem.counts" style="width: 160px;"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -258,23 +266,35 @@
       }
       callback();
     };
-    // 鏁伴噺鏍¢獙
-    var checkCounts = (rule, value, callback) => {
-      console.log(value);
-      if (!value) {
-        return callback(new Error('璇疯緭鍏�'));
-      }
-      if (!Number.isInteger(value)) {
-        this.$message.warning('璇疯緭鍏ユ暟瀛楀��');
-        return callback(new Error('璇疯緭鍏ユ暟瀛楀��'));
-      }
-      if (value == 0) {
-        this.$message.warning('鏁板瓧鍊间笉鑳戒负0');
-        return callback(new Error('鏁板瓧鍊间笉鑳戒负0'));
-      }
-      callback();
-    };
     return {
+      checkCounts: (rule, value, callback) => {
+        if (!value) {
+          return callback(new Error('璇疯緭鍏ュ垎鍙戞暟閲�'));
+        }
+        if (!Number.isInteger(value)) {
+          // this.$message.warning('璇疯緭鍏ユ暟瀛楀��');
+          return callback(new Error('璇疯緭鍏ユ暟瀛楀��'));
+        }
+        if (value < 1) {
+          // this.$message.warning('鏁板瓧鍊间笉鑳戒负0');
+          return callback(new Error('鏁板瓧鍊煎繀椤诲ぇ浜�0'));
+        }
+        if (value > rule.worehouseCount) {
+          // this.$message.warning('鍒嗗彂鏁伴噺涓嶈兘澶т簬鍓╀綑鏁伴噺');
+          return callback(new Error('鍒嗗彂鏁伴噺涓嶈兘澶т簬鍓╀綑鏁伴噺'));
+        }
+        if(rule.type===1){
+          let sum = 0
+          rule.userList.map(item=>{
+            sum+=(item.goodsNum||0)
+          })
+          if (sum > rule.worehouseCount) {
+            // this.$message.warning('鍒嗗彂鏁伴噺鎬诲拰涓嶈兘澶т簬鍓╀綑鏁伴噺');
+            return callback(new Error('鍒嗗彂鏁伴噺鎬诲拰涓嶈兘澶т簬鍓╀綑鏁伴噺'));
+          }
+        }
+        callback();
+      },
       loading: false,
       buyTypeOptions: [
         {
@@ -329,21 +349,25 @@
         baseCategoryIds: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
         baseGoodsTemplateId: [{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}],
         modelsIds: [{required: true, message: '璇烽�夋嫨', trigger: 'change'}],
-        transferGoods:{
-          models:{
-            counts: [
-              { required: true, message: '璇疯緭鍏�', trigger: 'change' },
-              { type: 'number', message: '鏁伴噺蹇呴』涓烘暣鏁�' },
-            ],
-            procureModelUserList:{
-              goodsNum: [ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-              nowUserName: [ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-              nowUserPhone: [ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
-            }
+        transferGoods: [
+          {
+            models: [
+              {
+                counts: [
+                  {required: true, message: '璇疯緭鍏�', trigger: 'change'},
+                  {type: 'number', message: '鏁伴噺蹇呴』涓烘暣鏁�'},
+                ],
+                procureModelUserList: [
+                  {
+                    goodsNum: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+                    nowUserName: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+                    nowUserPhone: [{required: true, message: '璇疯緭鍏�', trigger: 'blur'}],
+                  }
+                ]
+              }
+            ]
           }
-        }
-
-
+        ]
       },
 
       uploadSettings: {
@@ -399,7 +423,7 @@
 
     // 鑾峰彇鍏ュ簱浠撳簱鍒楄〃
     getdeptmentList() {
-      departmentListAll({agencyId: this.userInfo.tenantId})
+      departmentListAll({tenantId: this.userInfo.tenantId})
           .then((res) => {
             this.departmentOptions = res;
             if (!this.setting.id && res.length) {

--
Gitblit v1.9.1