From e3cf5d32f26c65cb04839b76762a2ec6603d5540 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 24 七月 2025 15:28:07 +0800
Subject: [PATCH] 库位货架管理完善表单校验及问题处理

---
 src/views/tms/modules/GoodsShelvesForm.vue |   64 +++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/src/views/tms/modules/GoodsShelvesForm.vue b/src/views/tms/modules/GoodsShelvesForm.vue
index 1cb9cb7..11c5ade 100644
--- a/src/views/tms/modules/GoodsShelvesForm.vue
+++ b/src/views/tms/modules/GoodsShelvesForm.vue
@@ -20,7 +20,7 @@
           </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-input v-model="model.shelfName" placeholder="璇疯緭鍏ヨ揣鏋跺悕绉�" :disabled="shelfNameDisabled"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
@@ -95,6 +95,8 @@
         },
         autoLocationCode: '', // 鑷姩鎷兼帴鐨勫簱浣嶅彿
         userEditedLocationCode: false,
+        shelfNameDisabled: false, // 鎺у埗璐ф灦鍚嶇О鏄惁绂佺敤
+        lastEchoedShelfName: '', // 淇濆瓨涓婃鍥炴樉鐨勮揣鏋跺悕绉�
         labelCol: {
           xs: { span: 24 },
           sm: { span: 5 },
@@ -105,28 +107,33 @@
         },
         confirmLoading: false,
         validatorRules: {
-           warehouseId: [
-              { required: true, message: '璇疯緭鍏ヤ粨搴撶紪鍙�!'},
-           ],
-           locationCode: [
-              { required: true, message: '璇疯緭鍏ュ簱浣嶅彿!'},
-           ],
-           storey: [
-              { required: true, message: '璇疯緭鍏ュ眰鏁�!'},
-           ],
           shelfNumber: [
-              { required: true, message: '璇疯緭鍏ヨ揣鏋跺彿!'},
-              { validator: this.validateShelfNumber },
+            { required: true, message: '璇疯緭鍏ヨ揣鏋剁紪鍙�!'},
+            { validator: this.validateShelfName }
           ],
           shelfName: [
-              { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'},
+            { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'},
           ],
+          storey: [
+            { required: true, message: '璇疯緭鍏ュ眰鏁�!'},
+          ],
+          arrange: [
+            { required: true, message: '璇疯緭鍏ユ帓鏁�!'},
+          ],
+          columnNumber: [
+            { required: true, message: '璇疯緭鍏ュ垪鏁�!'},
+          ],
+          cellsNum: [
+            { required: true, message: '璇疯緭鍏ユ牸鏁�!'},
+            { validator: this.validateDuplicate }
+          ]
         },
         url: {
           add: "/tms/goodsShelves/add",
           edit: "/tms/goodsShelves/edit",
           queryById: "/tms/goodsShelves/queryById",
-          checkShelfNum:"/tms/goodsShelves/checkShelfNum"
+          checkShelfName:"/tms/goodsShelves/checkShelfName",
+          checkDuplicate:"/tms/goodsShelves/checkDuplicate"
         },
         warehouseId:''
       }
@@ -156,11 +163,15 @@
         this.modelDefault.warehouseId = treeSelected.key
         this.modelDefault.warehouseNum = treeSelected.entity.warehouseId
         this.modelDefault.warehouseName = treeSelected.entity.warehouseName
+        this.modelDefault.cellsNum = '1' //鏍兼暟璁剧疆榛樿鍊�1
         this.edit(this.modelDefault);
       },
       edit (record) {
         this.model = Object.assign({}, record);
         this.visible = true;
+        this.shelfNameDisabled = false
+        // 閲嶇疆鍥炴樉鏍囪
+        this.lastEchoedShelfName = ''
         this.warehouseId = record.warehouseId
       },
       submitForm () {
@@ -193,19 +204,38 @@
         })
       },
       //楠岃瘉 璐ф灦鍙�
-    validateShelfNumber(rule, value, callback) {
+    validateShelfName(rule, value, callback) {
       var params = {
         warehouseId: this.warehouseId,
         shelfNumber: value,
       };
-      getAction(this.url.checkShelfNum,params).then((res) => {
+      getAction(this.url.checkShelfName,params).then((res) => {
         if (res.success) {
+          this.shelfNameDisabled = false
+          // 鍙湁鍦ㄦ牎楠岄�氳繃涓斿綋鍓嶈揣鏋跺悕绉版槸涔嬪墠鍥炴樉鐨勫�兼椂鎵嶆竻绌�
+          // 杩欓�氬父鍙戠敓鍦ㄧ敤鎴蜂慨鏀逛簡宸插瓨鍦ㄧ殑璐ф灦缂栧彿涓轰笉瀛樺湪鐨勭紪鍙锋椂
+          if (this.model.shelfName === this.lastEchoedShelfName) {
+            this.model.shelfName = ''
+          }
           callback();
         } else {
-          callback("璐ф灦缂栧彿宸插瓨鍦�!");
+          //瀛樺湪璇ヨ揣鏋跺彿锛岀洿鎺ュ皢缁撴灉鍥炴樉鍒拌揣鏋跺悕绉板瓧娈靛苟绂佺敤璇ュ瓧娈�
+          this.model.shelfName = res.result;
+          this.lastEchoedShelfName = res.result; // 淇濆瓨鍥炴樉鐨勫��
+          this.shelfNameDisabled = true;
+          callback();
         }
       })
     },
+    validateDuplicate(rule, value, callback) {
+      getAction(this.url.checkDuplicate, this.model).then(res => {
+        if (res.success) {
+          callback();
+        } else {
+          callback(res.message);
+        }
+      })
+    }
     },
     watch: {
       autoGeneratedLocationCode(newVal) {

--
Gitblit v1.9.3