From bdea6f89251e2e11a92d38e41a64edf53b2cb95d Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 16:22:25 +0800
Subject: [PATCH] feat: 1、物品分发使用人修改,使用记录

---
 admin-web/src/views/stock/transfer/transferApplication/edit.vue |   69 +++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 31 deletions(-)

diff --git a/admin-web/src/views/stock/transfer/transferApplication/edit.vue b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
index a990b13..2921487 100644
--- a/admin-web/src/views/stock/transfer/transferApplication/edit.vue
+++ b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
@@ -56,14 +56,10 @@
               <el-form-item
                 label="鐗╁搧鍚嶇О"
                 :prop="`transferGoods[${goodsIndex}].baseGoodsTemplateId`"
-                :rules="{
-                  required: true,
-                  message: '璇烽�夋嫨',
-                  trigger: 'change',
-                }"
+                :rules="rules.baseGoodsTemplateId"
               >
                 <el-select
-                  :value="goodsItem.baseGoodsTemplateId"
+                  v-model="goodsItem.baseGoodsTemplateId"
                   placeholder="璇峰厛鎷╃墿鍝佸垎绫�"
                   filterable
                   :disabled="!goodsItem.baseCategoryId"
@@ -174,8 +170,8 @@
 </template>
 <script>
 import { transferAdd } from '@/api/stock/transfer';
-import { getCategorySelectTree, getTree, goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant';
-import { getParentTenant,queryWarehouseGoods } from '@/api/stock/transfer';
+import { getCategorySelectTree, goodsModel, warehouseSelectNumber } from '@/api/baseSetting/finsystenant';
+import { getParentTenant, queryWarehouseGoods } from '@/api/stock/transfer';
 import MyButton from '@/components/myButton/myButton';
 import winMd from '@/components/win/win-md';
 import upload from '@/components/upload/index';
@@ -191,6 +187,18 @@
     },
   },
   data() {
+    // 鑷畾涔夋牎楠�
+    // 鐗╁搧閲嶅鏍¢獙
+    var checkGoodsTemplateId = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('璇烽�夋嫨'));
+      }
+      let temp = this.formData.transferGoods.filter((v) => v.baseGoodsTemplateId == value);
+      if (!temp || temp.length != 1) {
+        return callback(new Error('宸查�夎繃姝ょ墿鍝�'));
+      }
+      callback();
+    };
     return {
       loading: false,
       agencyOptions: [], // 璋冩嫧鏈烘瀯
@@ -219,11 +227,11 @@
         unit: null, //鍗曚綅
       },
       rules: {
-        warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        outAgencyId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
         createTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
 
         baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        baseGoodsTemplateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
         modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
         counts: [
           { required: true, message: '璇疯緭鍏�', trigger: 'change' },
@@ -256,14 +264,18 @@
       this.getgoodsTemplate();
       this.getgoodsModel();
       this.getCategoryTree();
-      this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
     },
 
     // 鑾峰彇涓婄骇鏈烘瀯
     handegetParentTenant() {
       getParentTenant().then((res) => {
-        this.agencyOptions = [res];
-        this.formData.outAgencyId = res.id;
+        if (res.id != this.userInfo.tenantId) {
+          this.agencyOptions = [res];
+          this.formData.outAgencyId = res.id;
+          this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
+        } else {
+          this.$message.warning('鏃犱笂绾ф満鏋�');
+        }
       });
     },
 
@@ -340,13 +352,6 @@
 
     // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨
     goodsTemplateChange(e, index) {
-      let temp = this.formData.transferGoods.find(v=>v.baseGoodsTemplateId==e)
-      if(temp) {
-        this.$message.warning('宸查�夎繃姝ょ墿鍝�')
-        return
-      }else{
-        this.formData.transferGoods[index].baseGoodsTemplateId = e
-      }
       this.formData.transferGoods[index].modelsOptions = [];
       this.formData.transferGoods[index].modelsIds = [];
       this.formData.transferGoods[index].models = [];
@@ -357,15 +362,22 @@
     },
 
     // 瑙勬牸鍨嬪彿閫夋嫨
-    modelChange(e, index) {
+    async modelChange(e, index) {
       let arr = [...this.formData.transferGoods[index].models];
       let str = JSON.stringify(arr);
-      e.forEach((item) => {
+      for (let item of e) {
         if (str.indexOf(item) == -1) {
           let temp = this.goodsModelAll.find((v) => v.id == item);
-          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit });
+          let num = await warehouseSelectNumber({
+            baseGoodsModelsId: item,
+            warehouseType: 0,
+            states: 1,
+            buyType: 1,
+            agencyId: this.formData.outAgencyId,
+          });
+          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit, worehouseCount: num });
         }
-      });
+      }
       this.formData.transferGoods[index].models = arr;
     },
 
@@ -395,9 +407,9 @@
     countsChange(e, goodsIndex, index) {
       const curItem = this.formData.transferGoods[goodsIndex].models[index];
       const worehouseCount = curItem.worehouseCount;
-      if(e==0) {
+      if (e == 0) {
         this.$message.warning('鏁伴噺涓嶈兘涓�0');
-        curItem.counts = null
+        curItem.counts = null;
       }
       if (e > worehouseCount) {
         this.$message.warning('鏁伴噺瓒呰繃鐜版湁搴撳瓨');
@@ -427,11 +439,6 @@
     },
 
     close() {
-      this.formData = {
-        warehouseId: '', // 璋冩嫧浠撳簱id
-        procureTime: '', // 璋冩嫧鏃堕棿
-        transferGoods: [],
-      };
       this.$emit('close');
     },
   },

--
Gitblit v1.9.1