From 0fe10b533514a73915abd534493bffb6c5df016a Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期四, 24 七月 2025 14:13:24 +0800
Subject: [PATCH] 安灯管理

---
 src/views/tms/modules/GoodsShelvesForm.vue |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/src/views/tms/modules/GoodsShelvesForm.vue b/src/views/tms/modules/GoodsShelvesForm.vue
index 3ef07b7..1cb9cb7 100644
--- a/src/views/tms/modules/GoodsShelvesForm.vue
+++ b/src/views/tms/modules/GoodsShelvesForm.vue
@@ -38,9 +38,14 @@
               <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 :disabled="true" :value="locationCode"  placeholder="璇疯緭鍏ュ簱浣嶅彿"  ></a-input>
+              <a-input v-model="model.locationCode"  placeholder="璇疯緭鍏ュ簱浣嶅彿"  ></a-input>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -84,9 +89,12 @@
           storey: '',
           arrange: '',
           columnNumber: '',
+          cellsNum:'',
           locationCode: '',
           remark: ''
         },
+        autoLocationCode: '', // 鑷姩鎷兼帴鐨勫簱浣嶅彿
+        userEditedLocationCode: false,
         labelCol: {
           xs: { span: 24 },
           sm: { span: 5 },
@@ -108,6 +116,7 @@
            ],
           shelfNumber: [
               { required: true, message: '璇疯緭鍏ヨ揣鏋跺彿!'},
+              { validator: this.validateShelfNumber },
           ],
           shelfName: [
               { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'},
@@ -116,8 +125,10 @@
         url: {
           add: "/tms/goodsShelves/add",
           edit: "/tms/goodsShelves/edit",
-          queryById: "/tms/goodsShelves/queryById"
-        }
+          queryById: "/tms/goodsShelves/queryById",
+          checkShelfNum:"/tms/goodsShelves/checkShelfNum"
+        },
+        warehouseId:''
       }
     },
     computed: {
@@ -125,10 +136,10 @@
         return this.disabled
       },
       //鎷兼帴搴撲綅鍙�
-      locationCode() {
-        const { shelfNumber, storey, arrange, columnNumber } = this.model;
-        if (shelfNumber || storey || arrange || columnNumber) {
-          return `${shelfNumber}${storey}${arrange}${columnNumber}`;
+      autoGeneratedLocationCode() {
+        const { shelfNumber, storey, arrange, columnNumber, cellsNum } = this.model;
+        if (shelfNumber || storey || arrange || columnNumber || cellsNum) {
+          return `${shelfNumber}${storey}${arrange}${columnNumber}${cellsNum}`;
         }
         return '';
       }
@@ -150,6 +161,7 @@
       edit (record) {
         this.model = Object.assign({}, record);
         this.visible = true;
+        this.warehouseId = record.warehouseId
       },
       submitForm () {
         const that = this;
@@ -180,12 +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: {
-      'model.shelfNumber': 'updateLocationCode',
-      'model.storey': 'updateLocationCode',
-      'model.arrange': 'updateLocationCode',
-      'model.columnNumber': 'updateLocationCode'
+      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