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