From 673b5a596f611099eaacc310f6e7def0e022daca Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期三, 29 四月 2026 11:00:55 +0800
Subject: [PATCH] 添加盘点模板和胶箱台账功能

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue |  135 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 111 insertions(+), 24 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue"
index 13c29f0..b2c56a0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue"
@@ -1,18 +1,71 @@
 <template>
-  <vol-box v-model="show" title="绌烘墭鍑哄簱" :width="800" :height="600">
+  <vol-box v-model="show" title="绌烘墭鍑哄簱" :width="800" :height="1200">
     <template #content>
       <el-form ref="form" :model="form" label-width="90px">
-        <el-form-item label="鍑哄簱鏁伴噺">
-          <el-input type="text" v-model="this.form.remark"></el-input>
+        <el-form-item label="鍑哄簱鍖哄煙:">
+          <el-select v-model="locationType" placeholder="璇烽�夋嫨鍑哄簱鍖哄煙">
+            <el-option 
+              v-for="item in locationTypes" 
+              :key="item.locationType" 
+              :label="item.locationTypeDesc.toString()"
+              :value="item.locationType">
+            </el-option>
+          </el-select>
         </el-form-item>
       </el-form>
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-form-item label="鍑哄簱鏁伴噺:">
+          <el-input-number 
+            v-model="num" 
+            :min="1" 
+            :max="999" 
+            :controls="true" 
+            placeholder="璇烽�夋嫨鍑哄簱鏁伴噺"
+            style="width: 100%;">
+          </el-input-number>
+        </el-form-item>
+      </el-form>
+
+      <!-- ===================== 鏂板锛氫緵搴斿晢缂栫爜锛堝疄鏃舵悳绱笅鎷夛級 ===================== -->
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-form-item label="渚涘簲鍟嗙紪鐮�:">
+          <el-select
+            v-model="supplierCode"
+            filterable
+            remote
+            reserve-keyword
+            placeholder="璇疯緭鍏�/閫夋嫨渚涘簲鍟嗙紪鐮�"
+            :remote-method="remoteSearchSupplier"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in supplierList"
+              :key="item"
+              :label="item"
+              :value="item"
+            />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <!-- ======================================================================== -->
+
     </template>
     <template #footer>
       <div>
-        <el-button type="danger" size="small" plain @click="submit">
+        <el-button 
+          type="danger" 
+          size="small" 
+          plain 
+          @click="submit"
+          :loading="isSubmitting"
+          :disabled="isSubmitting">
           <i class="el-icon-check">纭</i>
         </el-button>
-        <el-button size="small" type="primary" plain @click="() => { this.show = false }">
+        <el-button 
+          size="small" 
+          type="primary" 
+          plain 
+          @click="() => { this.show = false }">
           <i class="el-icon-close">鍏抽棴</i>
         </el-button>
       </div>
@@ -28,41 +81,75 @@
   },
   data() {
     return {
-      form: {
-        remark: ''
-      },
-      palletCode: '',
-      show: false
+      num: 1,
+      show: false,
+      locationTypes: [],
+      locationType: "",
+      isSubmitting: false,
+      // ================= 鏂板 =================
+      supplierCode: '',       // 渚涘簲鍟嗙紪鐮佺粦瀹�
+      supplierList: []        // 涓嬫媺鍒楄〃
+      // =======================================
     }
   },
   methods: {
-    open(palletCode) {
+    open() {
       this.show = true
-      this.palletCode = palletCode
+      this.getData();
     },
     submit() {
+      if (!this.locationType) {
+        this.$message.warning('璇烽�夋嫨鍑哄簱鍖哄煙');
+        return;
+      }
+      
+      this.isSubmitting = true;
+      
       this.$emit('parentCall', ($vue) => {
-        console.log(this.form.remark, this.palletCode)
-        if (
-          !this.palletCode ||
-          this.palletCode == ''
-        ) {
-          this.$message.error('鍙傛暟閿欒')
-          return
-        }
-        this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${this.palletCode}&remark=${this.form.remark}`, {}, '鏁版嵁澶勭悊涓�...')
+        // ===================== 鏀归�犳帴鍙o細甯︿笂 supplierCode =====================
+        this.http.post(
+          `/api/Task/PalletOutboundTask?num=${this.num}&locationType=${this.locationType}&SupplierCode=${this.supplierCode || ''}`, 
+          {}, '鏁版嵁澶勭悊涓�...')
+        // ====================================================================
           .then((x) => {
             if (!x.status) {
               this.$message.error(x.message)
             } else {
-              console.log(x);
               this.show = false
-              this.$Message.success(this.palletCode + '鍑哄簱鎴愬姛')
+              this.$Message.success(x.message)
               $vue.refresh();
             }
           })
+          .catch((error) => {
+            this.$message.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
+            console.error('鎻愪氦澶辫触:', error);
+          })
+          .finally(() => {
+            this.isSubmitting = false;
+          });
       })
+    },
+    getData() {
+      this.http.post("api/LocationInfo/GetLocationTypes", null, "鏌ヨ涓�")
+        .then((x) => {
+          this.locationTypes = x.data;
+        })
+    },
+
+    remoteSearchSupplier(keyword) {
+      if (!keyword) {
+        this.supplierList = [];
+        return;
+      }
+      // 璋冪敤鍚庣瀹炴椂鎼滅储鎺ュ彛
+      this.http.get(`/api/Task/SearchSupplierCode?keyword=${keyword}`)
+        .then(res => {
+          if (res.status) {
+            this.supplierList = res.data || [];
+          }
+        })
     }
+
   }
 }
-</script>
+</script>
\ No newline at end of file

--
Gitblit v1.9.3