From 33f721fc0a4bc40679bff4983aeb5d7edb821705 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期四, 24 七月 2025 10:12:08 +0800
Subject: [PATCH] 仓库增加格数及对应功能修改,库存子表不管到把的唯一编码存储刀具编码

---
 src/views/tms/modules/GoodsShelvesForm.vue |  106 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 85 insertions(+), 21 deletions(-)

diff --git a/src/views/tms/modules/GoodsShelvesForm.vue b/src/views/tms/modules/GoodsShelvesForm.vue
index 68bd152..1cb9cb7 100644
--- a/src/views/tms/modules/GoodsShelvesForm.vue
+++ b/src/views/tms/modules/GoodsShelvesForm.vue
@@ -14,8 +14,13 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
-            <a-form-model-item label="搴撲綅鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationCode">
-              <a-input v-model="model.locationCode" placeholder="璇疯緭鍏ュ簱浣嶅彿"  ></a-input>
+            <a-form-model-item label="璐ф灦缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shelfNumber">
+              <a-input v-model="model.shelfNumber" placeholder="璇疯緭鍏ヨ揣鏋剁紪鍙�"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="璐ф灦鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shelfName">
+              <a-input v-model="model.shelfName" placeholder="璇疯緭鍏ヨ揣鏋跺悕绉�"  ></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
@@ -33,18 +38,18 @@
               <a-input v-model="model.columnNumber" placeholder="璇疯緭鍏ュ垪鏁�"  ></a-input>
             </a-form-model-item>
           </a-col>
+           <a-col :span="12">
+            <a-form-model-item label="鏍兼暟" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cellsNum">
+              <a-input v-model="model.cellsNum" placeholder="璇疯緭鍏ユ牸鏁�"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="搴撲綅鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input v-model="model.locationCode"  placeholder="璇疯緭鍏ュ簱浣嶅彿"  ></a-input>
+            </a-form-model-item>
+          </a-col>
         </a-row>
         <a-row>
-          <a-col :span="12">
-            <a-form-model-item label="璐ф灦缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shelfNumber">
-              <a-input v-model="model.shelfNumber" placeholder="璇疯緭鍏ヨ揣鏋剁紪鍙�"  ></a-input>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-model-item label="璐ф灦鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shelfName">
-              <a-input v-model="model.shelfName" placeholder="璇疯緭鍏ヨ揣鏋跺悕绉�"  ></a-input>
-            </a-form-model-item>
-          </a-col>
           <a-col :span="12">
             <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
               <a-textarea v-model="model.remark" rows="4" placeholder="璇疯緭鍏ュ娉�" />
@@ -76,7 +81,20 @@
     data () {
       return {
         model:{
-         },
+          warehouseId: '',
+          warehouseNum: '',
+          warehouseName: '',
+          shelfNumber: '',
+          shelfName: '',
+          storey: '',
+          arrange: '',
+          columnNumber: '',
+          cellsNum:'',
+          locationCode: '',
+          remark: ''
+        },
+        autoLocationCode: '', // 鑷姩鎷兼帴鐨勫簱浣嶅彿
+        userEditedLocationCode: false,
         labelCol: {
           xs: { span: 24 },
           sm: { span: 5 },
@@ -96,30 +114,44 @@
            storey: [
               { required: true, message: '璇疯緭鍏ュ眰鏁�!'},
            ],
-           arrange: [
-              { required: true, message: '璇疯緭鍏ユ帓鏁�!'},
-           ],
-           columnNumber: [
-              { required: true, message: '璇疯緭鍏ュ垪鏁�!'},
-           ],
+          shelfNumber: [
+              { required: true, message: '璇疯緭鍏ヨ揣鏋跺彿!'},
+              { validator: this.validateShelfNumber },
+          ],
+          shelfName: [
+              { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'},
+          ],
         },
         url: {
           add: "/tms/goodsShelves/add",
           edit: "/tms/goodsShelves/edit",
-          queryById: "/tms/goodsShelves/queryById"
-        }
+          queryById: "/tms/goodsShelves/queryById",
+          checkShelfNum:"/tms/goodsShelves/checkShelfNum"
+        },
+        warehouseId:''
       }
     },
     computed: {
       formDisabled(){
         return this.disabled
       },
+      //鎷兼帴搴撲綅鍙�
+      autoGeneratedLocationCode() {
+        const { shelfNumber, storey, arrange, columnNumber, cellsNum } = this.model;
+        if (shelfNumber || storey || arrange || columnNumber || cellsNum) {
+          return `${shelfNumber}${storey}${arrange}${columnNumber}${cellsNum}`;
+        }
+        return '';
+      }
     },
     created () {
        //澶囦唤model鍘熷鍊�
       this.modelDefault = JSON.parse(JSON.stringify(this.model));
     },
     methods: {
+      updateLocationCode() {
+        this.model.locationCode = this.locationCode;
+      },
       add (treeSelected) {
         this.modelDefault.warehouseId = treeSelected.key
         this.modelDefault.warehouseNum = treeSelected.entity.warehouseId
@@ -129,6 +161,7 @@
       edit (record) {
         this.model = Object.assign({}, record);
         this.visible = true;
+        this.warehouseId = record.warehouseId
       },
       submitForm () {
         const that = this;
@@ -159,6 +192,37 @@
 
         })
       },
+      //楠岃瘉 璐ф灦鍙�
+    validateShelfNumber(rule, value, callback) {
+      var params = {
+        warehouseId: this.warehouseId,
+        shelfNumber: value,
+      };
+      getAction(this.url.checkShelfNum,params).then((res) => {
+        if (res.success) {
+          callback();
+        } else {
+          callback("璐ф灦缂栧彿宸插瓨鍦�!");
+        }
+      })
+    },
+    },
+    watch: {
+      autoGeneratedLocationCode(newVal) {
+        // 鍙湁褰撶敤鎴锋病鏈夋墜鍔ㄨ緭鍏ユ椂鎵嶈嚜鍔ㄥ~鍏�
+        if (!this.userEditedLocationCode) {
+          this.model.locationCode = newVal;
+        }
+        this.autoLocationCode = newVal;
+      },
+      'model.locationCode'(newVal) {
+        // 濡傛灉鐢ㄦ埛鎵嬪姩杈撳叆锛屽垯鏍囪涓哄凡缂栬緫
+        if (newVal !== this.autoLocationCode) {
+          this.userEditedLocationCode = true;
+        } else {
+          this.userEditedLocationCode = false;
+        }
+      }
     }
   }
 </script>
\ No newline at end of file

--
Gitblit v1.9.3