From d88884b7072dff4269626c600ef11f9bb42dd9e3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期六, 15 十一月 2025 17:04:28 +0800
Subject: [PATCH] 1

---
 项目代码/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js |  155 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 120 insertions(+), 35 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js"
index 13b07b2..51aa666 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js"
@@ -1,8 +1,8 @@
 
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 import http from '@/api/http.js'
-import { h,createVNode, render,reactive  } from 'vue';
-import { ElDialog , ElForm, ElFormItem, ElInput, ElButton, ElMessage } from 'element-plus'; // 寮曞叆ElMessage锛岃В鍐虫彁绀烘棤鍙嶅簲
+import { h,createVNode, render,reactive,ref  } from 'vue';
+import { ElDialog , ElForm, ElFormItem, ElInput, ElButton, ElMessage ,ElSelect ,ElOption } from 'element-plus'; // 寮曞叆ElMessage锛岃В鍐虫彁绀烘棤鍙嶅簲
 
 let extension = {
     components: {
@@ -96,20 +96,98 @@
   name: '绌烘墭鐩樺叆搴�',
   type: 'primary',
   value: '绌烘墭鐩樺叆搴�',
+  
   onClick: function () {
     const mountNode = document.createElement('div');
     document.body.appendChild(mountNode);
 
-    // 鍝嶅簲寮忚〃鍗曟暟鎹細鏂欑鐮佹敼涓哄彲閫夊~锛堝垵濮嬬┖瀛楃涓诧級
+    // 鍝嶅簲寮忚〃鍗曟暟鎹細鏂欑鐮侊紙蹇呭~锛屾壂鐮佹灙/鎵嬪姩杈撳叆锛�
     const formData = reactive({ 
-      boxCode: '' // 鏂欑鐮侊紙string绫诲瀷锛屽彲绌猴級
+      boxCode: '',
+      warehouseCode:''
     });
 
+    const warehouses = ref([]);
+    const isLoadingWarehouses = ref(false);
+
+    const getWarehouseList = async () => {
+      isLoadingWarehouses.value = true;
+      try {
+        const { data, status } = await http.post('/api/Warehouse/GetWarehouseTypes'); 
+        if (status && Array.isArray(data)) {
+          // 鏍煎紡鍖栦粨搴撻�夐」锛氶�傞厤ElSelect鐨刲abel-value鏍煎紡
+          warehouses.value = data.map(item => ({
+            label: item.warehouseTypeDesc,
+            value: item.warehouseType  
+          }));
+        } else {
+          ElMessage.error('鑾峰彇浠撳簱鍒楄〃澶辫触');
+          warehouses.value = [];
+        }
+      } catch (err) {
+        ElMessage.error('浠撳簱鏁版嵁璇锋眰寮傚父锛岃绋嶅悗閲嶈瘯');
+        warehouses.value = [];
+      } finally {
+        isLoadingWarehouses.value = false;
+      }
+    };
+
+    // 鎻愪氦琛ㄥ崟鐨勭粺涓�閫昏緫锛堜緵鍥炶溅瑙﹀彂鍜屾寜閽偣鍑诲叡鐢級
+    const submitForm = async () => {
+      const formRef = vnode.component.refs.batchInForm;
+      try {
+        // 鎵ц琛ㄥ崟鏍¢獙锛堟枡绠辩爜蹇呭~锛�
+        await formRef.validate();
+      } catch (err) {
+        ElMessage.warning('璇疯緭鍏ユ湁鏁堢殑鏂欑鐮�');
+        return;
+      }
+
+      
+      http.post('/api/InboundOrder/EmptyMaterielGroup', {
+        palletCode: formData.boxCode.trim(),
+        warehouseCode:formData.warehouseCode
+      }).then(({ data, status, message }) => {
+        if (status) {
+          ElMessage.success(`鍏ュ簱鎴愬姛锛屾枡绠辩爜锛�${formData.boxCode.trim()}`);
+          this.refresh(); 
+          formData.boxCode = ''; 
+          
+          setTimeout(() => {
+            const inputRef = vnode.component.refs.boxCodeInput;
+            inputRef?.focus();
+          }, 100);
+        } else {
+          ElMessage.error(message || data?.message || '鍏ュ簱澶辫触');
+          selectBoxCodeInput();
+        }
+      }).catch(() => {
+        ElMessage.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
+        selectBoxCodeInput();
+      });
+    };
+
+    const selectBoxCodeInput = () => {
+      setTimeout(() => {
+        const inputRef = vnode.component.refs.boxCodeInput;
+        if (inputRef) {
+          const targetInput = inputRef.$el?.querySelector('input') || inputRef;
+          targetInput?.focus(); 
+          targetInput?.select(); 
+        }
+  }, 100);
+}
     const vnode = createVNode(ElDialog, {
       title: '绌烘墭鐩樺叆搴�',
       width: '400px',
       modelValue: true,
       appendToBody: true,
+      
+      onOpened: async () => {
+        await getWarehouseList();
+        const inputRef = vnode.component.refs.boxCodeInput;
+        inputRef?.focus();
+      },
       'onUpdate:modelValue': (isVisible) => {
         if (!isVisible) {
           render(null, mountNode);
@@ -120,25 +198,54 @@
       default: () => h(ElForm, {
         model: formData,
         rules: {
-          // 鏂欑鐮佹牎楠岋細浠呬繚鐣欏瓧绗︿覆绫诲瀷锛岀Щ闄ゅ繀濉姹傦紙绌哄�煎彲閫氳繃锛�
           boxCode: [
-            { required: true, message: '璇疯緭鍏ユ枡绠辩爜', trigger: 'blur' },
-            { type: 'string', message: '鏂欑鐮佸繀椤讳负瀛楃涓�', trigger: 'blur' }
+            { required: true, message: '璇疯緭鍏ユ枡绠辩爜', trigger: ['blur', 'enter'] }
+          ],
+          warehouseCode:[
+            { required: true, message: '璇烽�夋嫨浠撳簱', trigger: ['change', 'blur'] }
           ]
         },
         ref: 'batchInForm'
       }, [
-        // 鏂欑鐮佽緭鍏ラ」锛堝彲閫夊~锛�
-        h(ElFormItem, { label: '鏂欑鐮�', prop: 'boxCode',required:true }, [
+        //浠撳簱鏁版嵁
+        h(ElFormItem, { label: '浠撳簱', prop: 'warehouseCode', required: true }, [
+          h(ElSelect, {
+            modelValue: formData.warehouseCode,
+            'onUpdate:modelValue': (val) => {
+              formData.warehouseCode = val;
+            },
+            placeholder: '璇烽�夋嫨鍏ュ簱浠撳簱',
+            filterable: true, // 鏀寔鎼滅储浠撳簱
+            loading: isLoadingWarehouses.value, // 鍔犺浇鐘舵��
+            style: { width: '100%' }
+          }, [
+            // 娓叉煋浠撳簱涓嬫媺閫夐」
+            warehouses.value.map(item => h(ElOption, {
+              label: item.label,
+              value: item.value
+            }))
+          ])
+        ]),
+        // 鏂欑鐮佽緭鍏ラ」锛堟敮鎸佽仛鐒︺�佸洖杞︽彁浜わ級
+        h(ElFormItem, { label: '鏂欑鐮�', prop: 'boxCode', required: true }, [
           h(ElInput, {
             type: 'text',
             modelValue: formData.boxCode,
             'onUpdate:modelValue': (val) => {
               formData.boxCode = val;
+            },
+            ref: 'boxCodeInput', 
+            placeholder: '鎵爜杈撳叆鎴栨墜鍔ㄨ緭鍏ユ枡绠辩爜',
+            // 鐩戝惉鍥炶溅浜嬩欢锛堟壂鐮佹灙榛樿浼氬彂閫佸洖杞︼級
+            onKeydown: (e) => {
+              if (e.key === 'Enter') {
+                e.preventDefault(); 
+                submitForm(); 
+              }
             }
           })
         ]),
-        // 搴曢儴鎸夐挳鍖猴紙淇濇寔涓嶅彉锛�
+        // 搴曢儴鎸夐挳鍖�
         h('div', { style: { textAlign: 'right', marginTop: '16px' } }, [
           h(ElButton, {
             type: 'text',
@@ -150,30 +257,7 @@
           }, '鍙栨秷'),
           h(ElButton, {
             type: 'primary',
-            onClick: async () => {
-              const formRef = vnode.component.refs.batchInForm;
-              try {
-                await formRef.validate(); // 绌哄�煎彲閫氳繃鏍¢獙
-              } catch (err) {
-                return;
-              }
-
-              // 鍏ュ簱鎺ュ彛鎻愪氦锛氭枡绠辩爜涓虹┖鏃朵紶閫掔┖瀛楃涓诧紝鍚庣闇�鏀寔璇ュ瓧娈靛彲閫�
-              http.post('/api/InboundOrder/EmptyMaterielGroup', {
-                palletCode: formData.boxCode // 鍙┖锛氱敤鎴疯緭鍏ユ垨绌哄瓧绗︿覆
-              }).then(({ data, status, message }) => {
-                if (status) {
-                  ElMessage.success(`鍏ュ簱鎴愬姛${formData.boxCode ? '锛屾枡绠辩爜锛�' + formData.boxCode : ''}`);
-                  this.refresh();
-                  render(null, mountNode);
-                  document.body.removeChild(mountNode);
-                } else {
-                  ElMessage.error(message || data?.message || '鍏ュ簱澶辫触');
-                }
-              }).catch(() => {
-                ElMessage.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
-              });
-            }
+            onClick: submitForm 
           }, '纭畾')
         ])
       ])
@@ -183,12 +267,13 @@
     render(vnode, mountNode);
   }
 }
-    ], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+    ], box: [], detail: [] }, 
     methods: {
        //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
       onInit() {  
       },
       onInited() {
+        
         //妗嗘灦鍒濆鍖栭厤缃悗
         //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
         //this.detailOptions.columns.forEach(column=>{ });

--
Gitblit v1.9.3