From a3e7d831f0551c6ca095e6c515405f75802deded Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期六, 29 十一月 2025 09:54:37 +0800
Subject: [PATCH] 提交
---
项目代码/WIDESEA_WMSClient/src/extension/inbound/inboundOrder.js | 302 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 265 insertions(+), 37 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 e28f59c..b3b0c40 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: {
@@ -44,6 +44,140 @@
}
},
{
+ name: '鎾ら攢缁勭洏',
+ type: 'primary',
+ value: '鎾ら攢缁勭洏',
+ onClick: function () {
+ console.log('鎾ら攢缁勭洏鎸夐挳琚偣鍑�');
+ const mountNode = document.createElement('div');
+ document.body.appendChild(mountNode);
+
+ // 鍝嶅簲寮忚〃鍗曟暟鎹細鎵樼洏鍙凤紙蹇呭~锛�
+ const formData = reactive({
+ palletCode: '' // 鎵樼洏鍙疯緭鍏ユ
+ });
+
+ // 鎻愪氦琛ㄥ崟鐨勭粺涓�閫昏緫
+ const submitForm = async () => {
+ const formRef = vnode.component.refs.cancelPalletForm;
+ try {
+ // 鎵ц琛ㄥ崟鏍¢獙锛堟墭鐩樺彿蹇呭~锛�
+ await formRef.validate();
+ } catch (err) {
+ ElMessage.warning('璇疯緭鍏ユ湁鏁堢殑鎵樼洏鍙�');
+ return;
+ }
+
+ // 鍙戣捣鎾ら攢缁勭洏璇锋眰
+ try {
+ //console.log('鍙戣捣鎾ら攢缁勭洏璇锋眰锛屾墭鐩樺彿锛�', formData.palletCode.trim());
+ const response = await http.post('/api/InboundOrder/UndoPalletGroup?palletCode='+formData.palletCode.trim());
+
+
+ const { status, message, data } = response;
+ if (status) {
+ ElMessage.success(`鎾ら攢缁勭洏鎴愬姛锛屾墭鐩樺彿锛�${formData.palletCode.trim()}`);
+ this.refresh(); // 鎴愬姛鍚庡埛鏂板垪琛�
+ // 鍏抽棴瀵硅瘽妗�
+ render(null, mountNode);
+ document.body.removeChild(mountNode);
+ } else {
+ console.log('鎾ら攢缁勭洏澶辫触锛屽悗绔彁绀猴細', message);
+ ElMessage.error(message || data?.message || '鎾ら攢缁勭洏澶辫触');
+ selectPalletCodeInput(); // 閫変腑杈撳叆妗嗘柟渚块噸鏂拌緭鍏�
+ }
+ } catch (error) {
+ console.error('鎾ら攢缁勭洏璇锋眰寮傚父锛�', error);
+ ElMessage.error('缃戠粶寮傚父鎴栨帴鍙i敊璇紝璇风◢鍚庨噸璇�');
+ selectPalletCodeInput();
+ }
+ };
+
+ // 閫変腑杈撳叆妗嗘枃鏈紙鏂逛究閲嶆柊杈撳叆锛�
+ const selectPalletCodeInput = () => {
+ setTimeout(() => {
+ const inputRef = vnode.component.refs.palletCodeInput;
+ if (inputRef) {
+ const targetInput = inputRef.$el?.querySelector('input') || inputRef;
+ targetInput?.focus();
+ targetInput?.select();
+ }
+ }, 100);
+ };
+
+ // 鍒涘缓瀵硅瘽妗哣Node
+ const vnode = createVNode(ElDialog, {
+ title: '鎾ら攢缁勭洏',
+ width: '400px',
+ modelValue: true,
+ appendToBody: true,
+ onOpened: () => {
+ // 瀵硅瘽妗嗘墦寮�鍚庤嚜鍔ㄨ仛鐒﹁緭鍏ユ
+ setTimeout(() => {
+ const inputRef = vnode.component.refs.palletCodeInput;
+ inputRef?.focus();
+ }, 100);
+ },
+ 'onUpdate:modelValue': (isVisible) => {
+ if (!isVisible) {
+ render(null, mountNode);
+ document.body.removeChild(mountNode);
+ }
+ }
+ }, {
+ default: () => h(ElForm, {
+ model: formData,
+ rules: {
+ palletCode: [
+ { required: true, message: '璇疯緭鍏ユ墭鐩樺彿', trigger: ['blur', 'enter'] },
+ { min: 1, max: 50, message: '鎵樼洏鍙烽暱搴︿笉鑳借秴杩�50涓瓧绗�', trigger: ['blur', 'input'] }
+ ]
+ },
+ ref: 'cancelPalletForm'
+ }, [
+ // 鎵樼洏鍙疯緭鍏ラ」
+ h(ElFormItem, { label: '鎵樼洏鍙�', prop: 'palletCode', required: true }, [
+ h(ElInput, {
+ type: 'text',
+ modelValue: formData.palletCode,
+ 'onUpdate:modelValue': (val) => {
+ formData.palletCode = val;
+ },
+ ref: 'palletCodeInput',
+ placeholder: '鎵爜杈撳叆鎴栨墜鍔ㄨ緭鍏ユ墭鐩樺彿',
+ maxLength: 50,
+ // 鐩戝惉鍥炶溅浜嬩欢锛堟壂鐮佹灙榛樿浼氬彂閫佸洖杞︼級
+ 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.bind(this) // 缁戝畾this涓婁笅鏂�
+ }, '纭鎾ら攢')
+ ])
+ ])
+ });
+
+ vnode.appContext = this.$.appContext;
+ render(vnode, mountNode);
+ }
+ },
+ {
name: '鍒嗘壒鍏ュ簱',
type: 'primary',
value: '鍒嗘壒鍏ュ簱',
@@ -72,8 +206,9 @@
try {
console.log('鍙戣捣鍒嗘壒鍏ュ簱璇锋眰锛屽弬鏁帮細', { inboundOrderNos});
- const response = await http.post('/api/InboundOrder/BatchInbound', {
- inboundOrderNos: inboundOrderNos,
+ const response = await http.post('/api/InboundOrder/BatchOrderFeedbackToMes', {
+ orderNos: inboundOrderNos,
+ inout:1
});
const { status, message, data } = response;
@@ -95,20 +230,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/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;
+ 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);
@@ -119,25 +332,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',
@@ -149,30 +391,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
}, '纭畾')
])
])
@@ -182,12 +401,13 @@
render(vnode, mountNode);
}
}
- ], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ ], box: [], detail: [] },
methods: {
//涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
onInit() {
},
onInited() {
+
//妗嗘灦鍒濆鍖栭厤缃悗
//濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
//this.detailOptions.columns.forEach(column=>{ });
@@ -195,6 +415,14 @@
searchBefore(param) {
//鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
//杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ // this.searchFormFields.orderType=[0]
+ let wheres = [{
+ 'name': 'orderType',
+ 'value': '0',
+ 'displayType': 'text'}];
+
+
+ param.wheres.push(...wheres);
return true;
},
searchAfter(result) {
--
Gitblit v1.9.3