From 266e4bf654c55ce2f7e9271048e4625f1b8b49f6 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期一, 29 十二月 2025 14:36:08 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WIDESEA_WMSClient/src/extension/inbound/allocateinboundOrder.js |  275 ++++++++++++-------------------------------------------
 1 files changed, 60 insertions(+), 215 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/allocateinboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/allocateinboundOrder.js"
index 38f5145..3a6458b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/allocateinboundOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/allocateinboundOrder.js"
@@ -3,12 +3,13 @@
 import http from '@/api/http.js'
 import { h,createVNode, render,reactive,ref  } from 'vue';
 import { ElDialog , ElForm, ElFormItem, ElInput, ElButton, ElMessage ,ElSelect ,ElOption } from 'element-plus'; // 寮曞叆ElMessage锛岃В鍐虫彁绀烘棤鍙嶅簲
-
+import gridBody from '../inbound/extend/Pallet.vue'
+import gridHeader from './extend/EmptyTrayInbound.vue'
 let extension = {
     components: {
       //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-      gridHeader: '',
-      gridBody: '',
+      gridHeader: gridHeader,
+      gridBody: gridBody,
       gridFooter: '',
       //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
       modelHeader: '',
@@ -17,32 +18,32 @@
     },
     tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
     buttons: { view: [
-       {
-        name: '缁勭洏',
-        type: 'primary',
-        value: '缁勭洏',
-        onClick: function () { // 淇1锛氱Щ闄ゆ棤鐢╮ow鍙傛暟锛屽姞鏃ュ織璋冭瘯
-          console.log('缁勭洏鎸夐挳琚偣鍑伙紝寮�濮嬫牎楠�');
-          const selectedRows = this.$refs.table.getSelected();
+      //  {
+      //   name: '缁勭洏',
+      //   type: 'primary',
+      //   value: '缁勭洏',
+      //   onClick: function () { // 淇1锛氱Щ闄ゆ棤鐢╮ow鍙傛暟锛屽姞鏃ュ織璋冭瘯
+      //     console.log('缁勭洏鎸夐挳琚偣鍑伙紝寮�濮嬫牎楠�');
+      //     const selectedRows = this.$refs.table.getSelected();
 
-          // 鏍¢獙1锛氭槸鍚﹂�変腑琛�
-          if (selectedRows.length === 0) {
-            console.log('鏍¢獙涓嶉�氳繃锛氭湭閫変腑浠讳綍鍗曟嵁');
-            ElMessage.warning('璇烽�夋嫨涓�鏉″崟鎹�');
-            return;
-          }
-          // 鏍¢獙2锛氭槸鍚﹂�変腑鍗曡
-          if (selectedRows.length > 1) {
-            console.log('鏍¢獙涓嶉�氳繃锛氶�変腑澶氳鍗曟嵁');
-            ElMessage.warning('鍙兘閫夋嫨涓�鏉″崟鎹�');
-            return;
-          }
+      //     // 鏍¢獙1锛氭槸鍚﹂�変腑琛�
+      //     if (selectedRows.length === 0) {
+      //       console.log('鏍¢獙涓嶉�氳繃锛氭湭閫変腑浠讳綍鍗曟嵁');
+      //       ElMessage.warning('璇烽�夋嫨涓�鏉″崟鎹�');
+      //       return;
+      //     }
+      //     // 鏍¢獙2锛氭槸鍚﹂�変腑鍗曡
+      //     if (selectedRows.length > 1) {
+      //       console.log('鏍¢獙涓嶉�氳繃锛氶�変腑澶氳鍗曟嵁');
+      //       ElMessage.warning('鍙兘閫夋嫨涓�鏉″崟鎹�');
+      //       return;
+      //     }
 
-          const targetRow = selectedRows[0];
+      //     const targetRow = selectedRows[0];
      
-          this.$emit('openPalletDialog', targetRow.orderNo);
-        }
-      },
+      //     this.$emit('openPalletDialog', targetRow.orderNo);
+      //   }
+      // },
       {
                 name: '鎾ら攢缁勭洏',
                 type: 'primary',
@@ -54,7 +55,8 @@
 
                     // 鍝嶅簲寮忚〃鍗曟暟鎹細鎵樼洏鍙凤紙蹇呭~锛�
                     const formData = reactive({
-                        palletCode: '' // 鎵樼洏鍙疯緭鍏ユ
+                        palletCode: '', // 鎵樼洏鍙疯緭鍏ユ
+                        barcode:''
                     });
 
                     // 鎻愪氦琛ㄥ崟鐨勭粺涓�閫昏緫
@@ -71,7 +73,7 @@
                         // 鍙戣捣鎾ら攢缁勭洏璇锋眰
                         try {
                             //console.log('鍙戣捣鎾ら攢缁勭洏璇锋眰锛屾墭鐩樺彿锛�', formData.palletCode.trim());
-                            const response = await http.post('/api/InboundOrder/UndoPalletGroup?palletCode='+formData.palletCode.trim());
+                            const response = await http.post('/api/InboundOrder/UndoPalletGroup?palletCode='+formData.palletCode.trim()+'&barcode='+formData.barcode.trim());
                               
 
                             const { status, message, data } = response;
@@ -155,6 +157,23 @@
                                     }
                                 })
                             ]),
+                            h(ElFormItem,{label: '鏉$爜', prop: 'barcode'},[
+                              h(ElInput, {
+                                type: 'text',
+                                modelValue: formData.barcode,
+                                'onUpdate:modelValue': (val) => {
+                                    formData.barcode = val;
+                                },
+                                placeholder: '鍙�夛紝鎵爜杈撳叆鎴栨墜鍔ㄨ緭鍏ユ潯鐮�',
+                                maxLength: 50,
+                                onKeydown: (e) => {
+                                    if (e.key === 'Enter') {
+                                        e.preventDefault();
+                                        submitForm();
+                                    }
+                                  }
+                              })
+                            ]),
                             // 搴曢儴鎸夐挳鍖�
                             h('div', { style: { textAlign: 'right', marginTop: '16px' } }, [
                                 h(ElButton, {
@@ -225,196 +244,22 @@
       ElMessage.error('缃戠粶寮傚父鎴栨帴鍙i敊璇紝璇风◢鍚庨噸璇�');
     }
   }
-},
-     {
-  name: '绌烘墭鐩樺叆搴�',
-  type: 'primary',
-  value: '绌烘墭鐩樺叆搴�',
-  
-  onClick: function () {
-    const mountNode = document.createElement('div');
-    document.body.appendChild(mountNode);
-
-    const boxCodeReg = /^[A-Z]\d{9}$/;
-    // 鍝嶅簲寮忚〃鍗曟暟鎹細鏂欑鐮侊紙蹇呭~锛屾壂鐮佹灙/鎵嬪姩杈撳叆锛�
-    const formData = reactive({ 
-      boxCode: '',
-      warehouseCode:''
-    });
-
-    const warehouses = ref([]);
-    const isLoadingWarehouses = ref(false);
-
-    const getWarehouseList = async () => {
-      isLoadingWarehouses.value = true;
-      try {
-        const { data, status } = await http.post('/api/LocationInfo/GetLocationTypes'); 
-        if (status && Array.isArray(data)) {
-          // 鏍煎紡鍖栦粨搴撻�夐」锛氶�傞厤ElSelect鐨刲abel-value鏍煎紡
-          warehouses.value = data.map(item => ({
-            label: item.locationTypeDesc,
-            value: item.locationType  
-          }));
-        } else {
-          ElMessage.error('鑾峰彇鍖哄煙鍒楄〃澶辫触');
-          warehouses.value = [];
-        }
-      } catch (err) {
-        ElMessage.error('鍖哄煙鏁版嵁璇锋眰寮傚父锛岃绋嶅悗閲嶈瘯');
-        warehouses.value = [];
-      } finally {
-        isLoadingWarehouses.value = false;
-      }
-    };
-
-    // 鎻愪氦琛ㄥ崟鐨勭粺涓�閫昏緫锛堜緵鍥炶溅瑙﹀彂鍜屾寜閽偣鍑诲叡鐢級
-    const submitForm = async () => {
-      const formRef = vnode.component.refs.batchInForm;
-
-      if (!boxCodeReg.test(formData.boxCode.trim())) {
-        ElMessage.warning('鏂欑鐮佹牸寮忛敊璇�');
-        selectBoxCodeInput();
-        return;
-      }
-      
-      try {
-        // 鎵ц琛ㄥ崟鏍¢獙锛堟枡绠辩爜蹇呭~锛�
-        await formRef.validate();
-      } catch (err) {
-        const errorMsg = err?.[0]?.message || '璇疯緭鍏ユ湁鏁堢殑鏂欑鐮�';
-        ElMessage.warning(errorMsg);
-        selectBoxCodeInput();
-        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);
-          document.body.removeChild(mountNode);
-        }
-      }
-    }, {
-      default: () => h(ElForm, {
-        model: formData,
-        rules: {
-          boxCode: [
-            { required: true, message: '璇疯緭鍏ユ枡绠辩爜', trigger: ['blur', 'change'] },
-            { pattern: boxCodeReg, message: '鏂欑鐮佹牸寮忛敊璇�', trigger: ['blur', 'change'] }
-          ],
-          warehouseCode:[
-            { required: true, message: '璇烽�夋嫨鍖哄煙', trigger: ['change', 'blur'] }
-          ]
-        },
-        ref: 'batchInForm'
-      }, [
-        //浠撳簱鏁版嵁
-        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',
-            onClick: () => {
-              render(null, mountNode);
-              document.body.removeChild(mountNode);
-              ElMessage.info('鍙栨秷鍏ュ簱浠诲姟');
-            }
-          }, '鍙栨秷'),
-          h(ElButton, {
-            type: 'primary',
-            onClick: submitForm 
-          }, '纭畾')
-        ])
-      ])
-    });
-
-    vnode.appContext = this.$.appContext;
-    render(vnode, mountNode);
-  }
-}
-    ], box: [], detail: [] }, 
+},], box: [], detail: [] }, 
     methods: {
        //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
       onInit() {  
+        var GroupPalletBtn = this.buttons.find(x => x.value == "GroupPallet");
+        if (GroupPalletBtn != null) {
+          GroupPalletBtn.onClick = () => {
+               this.$refs.gridBody.open();
+            }
+        }
+        var EmptyTrayInboundBtn = this.buttons.find(x => x.value == "EmptyTrayInbound");
+        if (EmptyTrayInboundBtn != null) {
+          EmptyTrayInboundBtn.onClick = () => {
+               this.$refs.gridHeader.open();
+            }
+        }
       },
       onInited() {
         

--
Gitblit v1.9.3