From ca881f5c16de3e6e63c4bd07f65d362cbac18c20 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期二, 18 十一月 2025 11:32:35 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js |  267 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 264 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
index 52c18aa..2e9ea3c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
@@ -1,8 +1,8 @@
 
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 import http from '@/api/http.js'
-import { defineAsyncComponent } from "vue";
-import { 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';
 
 import gridBody from './extend/outOrderDetail.vue'
 let extension = {
@@ -18,7 +18,7 @@
     },
     tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
     buttons: { view: [
-       {
+       /* {
         name: '鍑哄簱',
         type: 'primary',
         value: '鍑哄簱',
@@ -42,7 +42,261 @@
             createDate: selectedRows[0].createDate || new Date().toLocaleDateString()  // 鍑哄簱鏃ユ湡
           });
         }
+      }, */
+      {
+  name: '绌烘墭鐩樺嚭搴�',
+  type: 'primary',
+  value: '绌烘墭鐩樺嚭搴�',
+  onClick: function () {
+    
+   
+    const platformOptions = Array.from({ length: 1 }, (_, i) => {
+      const num = 1;
+      return { label: `绔欏彴${num}`, value: `1-2` };
+    });
+
+    const quantityOptions = Array.from({ length: 6 }, (_, i) => ({
+      label: (i + 1).toString(), 
+      value: i + 1 
+    }));
+
+    const warehouseOptions = 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鏍煎紡
+          warehouseOptions.value = data.map(item => ({
+            label: item.locationTypeDesc,
+            value: item.locationType  
+          }));
+        } else {
+          ElMessage.error('鑾峰彇鍖哄煙鍒楄〃澶辫触');
+          warehouseOptions.value = [];
+        }
+      } catch (err) {
+        ElMessage.error('鍖哄煙鏁版嵁璇锋眰寮傚父锛岃绋嶅悗閲嶈瘯');
+        warehouseOptions.value = [];
+      } finally {
+        isLoadingWarehouses.value = false;
       }
+    };
+
+    const mountNode = document.createElement('div');
+    document.body.appendChild(mountNode);
+
+    
+    const formData = reactive({
+      warehouseCode:'',
+      palletCode: '',
+      selectedPlatform: platformOptions[0].value,
+      quantity:1 
+    });
+
+    const vnode = createVNode(ElDialog, {
+      title: '绌烘墭鐩樺嚭搴�',
+      width: '500px', 
+      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);
+        }
+      },
+      style: {
+        padding: '20px 0', 
+        borderRadius: '8px' 
+      }
+    }, {
+      default: () => h(ElForm, {
+        model: formData,
+        rules: {
+          warehouseCode:[
+            { required: true, message: '璇烽�夋嫨鍖哄煙', trigger: ['change', 'blur'] }
+          ],
+          palletCode: [
+            { type: 'string', message: '鏂欑鍙峰繀椤讳负瀛楃涓�', trigger: 'blur' }
+          ],
+          selectedPlatform: [
+            { required: true, message: '璇烽�夋嫨鍑哄簱绔欏彴', trigger: 'change' }
+          ],
+          quantity:[
+            { required: true, message: '璇烽�夋嫨绌虹鏁伴噺', trigger: 'change'}
+          ]                       
+        },
+        ref: 'batchOutForm',
+        labelWidth: '100px', 
+        style: {
+          padding: '0 30px', 
+        }
+       }, 
+       [
+      //   h(ElFormItem, {
+      //     label: '浠撳簱鍖哄煙',
+      //     prop: 'warehouseCode',
+      //     style: {
+      //       marginBottom: '24px' 
+      //     }
+      //   }, [
+      //     h(ElSelect, {
+      //       placeholder: '璇烽�夋嫨浠撳簱鍖哄煙',
+      //       modelValue: formData.warehouseCode,
+      //       'onUpdate:modelValue': (val) => {
+      //         formData.warehouseCode = val;
+      //       },
+      //       style: {
+      //         width: '100%',
+      //         height: '40px', 
+      //         borderRadius: '4px',
+      //         borderColor: '#dcdfe6'
+      //       }
+      //     }, warehouseOptions.value.map(platform => 
+      //       h(ElOption, { label: platform.label, value: platform.value })
+      //     ))
+      //   ]),
+        h(ElFormItem, {
+          label: '鍑哄簱绔欏彴',
+          prop: 'selectedPlatform',
+          style: {
+            marginBottom: '24px' 
+          }
+        }, [
+          h(ElSelect, {
+            placeholder: '璇烽�夋嫨鍑哄簱绔欏彴',
+            modelValue: formData.selectedPlatform,
+            'onUpdate:modelValue': (val) => {
+              formData.selectedPlatform = val;
+            },
+            style: {
+              width: '100%',
+              height: '40px', 
+              borderRadius: '4px',
+              borderColor: '#dcdfe6'
+            }
+          }, platformOptions.map(platform => 
+            h(ElOption, { label: platform.label, value: platform.value })
+          ))
+        ]),
+      //   h(ElFormItem,{
+      //     label:'鍑哄簱鏁伴噺',
+      //     prop:'quantity',
+      //     style:{
+      //       marginBottom:'24px'
+      //     }
+      //   },[h(ElSelect,{
+      //     placeholder:'璇烽�夋嫨绌虹鏁伴噺',
+      //     modelValue:formData.quantity,
+      //     'onUpdate:modelValue':(val)=>{
+      //       formData.quantity=val;
+      //     },
+      //     style:{
+      //       width:'100%',
+      //       height:'40px',
+      //       borderRadius:'4px',
+      //       borderColor:'#dcdfe6'
+      //     },
+      //     filterable:false
+      //   },
+      //   quantityOptions.map(option=>
+      //     h(ElOption,{
+      //       label:option.label,
+      //       value:option.value
+      //     })
+      //   )
+      // )]),                                 
+        h(ElFormItem, {
+          label: '鏂欑鍙�',
+          prop: 'palletCode',
+          style: {
+            marginBottom: '16px' 
+          }
+        }, [
+          h(ElInput, {
+            type: 'text',
+            placeholder: '鍙�夎緭鍏ユ枡绠卞彿锛屼笉濉垯鑷姩鍒嗛厤绌烘枡绠�',
+            modelValue: formData.palletCode,
+            'onUpdate:modelValue': (val) => {
+              formData.palletCode = val;
+            },
+            style: {
+              width: '100%',
+              height: '40px', 
+              borderRadius: '4px',
+              borderColor: '#dcdfe6'
+            },
+            attrs: {
+              placeholderStyle: 'color: #909399;' 
+            }
+          })
+        ]),
+        
+        h('div', {
+          style: {
+            textAlign: 'right',
+            marginTop: '8px',
+            paddingRight: '4px' 
+          }
+        }, [
+          h(ElButton, {
+            type: 'text',
+            onClick: () => {
+              render(null, mountNode);
+              document.body.removeChild(mountNode);
+              ElMessage.info('鍙栨秷鍑哄簱鎿嶄綔');
+            },
+            style: {
+              marginRight: '8px',
+              color: '#606266' 
+            }
+          }, '鍙栨秷'),
+          h(ElButton, {
+            type: 'primary',
+            onClick: async () => {
+              const formRef = vnode.component.refs.batchOutForm;
+              try {
+                await formRef.validate();
+              } catch (err) {
+                return;
+              }
+
+              http.post('/api/Task/PalletOutboundTask?palletCode='+formData.palletCode+'&endStation='+formData.selectedPlatform, {
+                
+              }).then(({ data, status, message }) => {
+                if (status) {
+
+                  ElMessage.success(`鍑哄簱鎴愬姛`);
+                  this.refresh();
+                  render(null, mountNode);
+                  document.body.removeChild(mountNode);
+                } else {
+                  ElMessage.error(message || data?.message || '鍑哄簱澶辫触');
+                }
+              }).catch(() => {
+                ElMessage.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
+              });
+            },
+            style: {
+              borderRadius: '4px',
+              padding: '8px 20px' 
+            }
+          }, '纭畾')
+        ])
+      ])
+    });
+
+    vnode.appContext = this.$.appContext;
+    render(vnode, mountNode);
+  }
+}
     ], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
     methods: {
        //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
@@ -60,6 +314,13 @@
               );
           },
           click: (row) => {
+            const table = this.$refs.table.$refs.table;
+            if(table){
+              table.clearSelection();
+              table.toggleRowSelection(row,true);
+            }
+              const rowId =row.id;
+              console.log(rowId);
               this.$refs.gridBody.open(row);
           }
       });

--
Gitblit v1.9.3