| | |
| | | name: "å
³éåæ®", |
| | | icon: '', |
| | | class: '', |
| | | value: ' ', |
| | | value: 'CloseOrder', |
| | | type: 'warning', |
| | | onClick: function () { |
| | | } |
| | |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [ |
| | | // { |
| | | // name: 'ç»ç', |
| | | // type: 'primary', |
| | | // value: 'ç»ç', |
| | | // onClick: function () { // ä¿®å¤1ï¼ç§»é¤æ ç¨rowåæ°ï¼å æ¥å¿è°è¯ |
| | | // 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; |
| | | // } |
| | | |
| | | // const targetRow = selectedRows[0]; |
| | | |
| | | // this.$emit('openPalletDialog', targetRow.orderNo); |
| | | // } |
| | | // }, |
| | | { |
| | | 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/CancelPalletGroup', { |
| | | 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('ç½ç»å¼å¸¸ææ¥å£é误ï¼è¯·ç¨åéè¯'); |
| | | selectPalletCodeInput(); |
| | | } |
| | | }; |
| | | |
| | | // éä¸è¾å
¥æ¡ææ¬ï¼æ¹ä¾¿éæ°è¾å
¥ï¼ |
| | | const selectPalletCodeInput = () => { |
| | | setTimeout(() => { |
| | | const inputRef = vnode.component.refs.palletCodeInput; |
| | | if (inputRef) { |
| | | const targetInput = inputRef.$el?.querySelector('input') || inputRef; |
| | | targetInput?.focus(); |
| | | targetInput?.select(); |
| | | } |
| | | }, 100); |
| | | }; |
| | | |
| | | // åå»ºå¯¹è¯æ¡VNode |
| | | 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: '空æçå
¥åº', |
| | | |
| | | onClick: function () { |
| | | const mountNode = document.createElement('div'); |
| | | document.body.appendChild(mountNode); |
| | | |
| | | // ååºå¼è¡¨åæ°æ®ï¼æç®±ç ï¼å¿
å¡«ï¼æ«ç æª/æå¨è¾å
¥ï¼ |
| | | 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çlabel-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); |
| | | document.body.removeChild(mountNode); |
| | | } |
| | | } |
| | | }, { |
| | | default: () => h(ElForm, { |
| | | model: formData, |
| | | rules: { |
| | | boxCode: [ |
| | | { required: true, message: '请è¾å
¥æç®±ç ', trigger: ['blur', 'enter'] } |
| | | ], |
| | | 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: [] }, |
| | | buttons: { view: [], box: [], detail: [] }, |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | |
| | | }, |
| | | |
| | | onInited() { |
| | | |
| | | let BatchOrderFeedbackToMesBtn = this.buttons.find(x => x.value == 'BatchOrderFeedbackToMes'); |
| | | if (BatchOrderFeedbackToMesBtn) { |
| | | const _this = this; |
| | | BatchOrderFeedbackToMesBtn.onClick = function () { |
| | | let selectedRows = _this.$refs.table.getSelected(); |
| | | |
| | | // æ ¡éªæ¯å¦æé䏿°æ® |
| | | if (!selectedRows || selectedRows.length === 0) { |
| | | return _this.$Message.warning('请å
éæ©éè¦å¤ççåæ®'); |
| | | } |
| | | if (selectedRows.length > 1) { |
| | | return _this.$Message.warning('è¯·éæ©ä¸æ¡æ°æ®'); |
| | | } |
| | | |
| | | _this.http |
| | | .post(`api/MesFeedback/OutboundFeedback?orderNo=${selectedRows[0].orderNo}`, {}, "æ°æ®å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | _this.$Message.success('åæ¹åºåºåè°å®æ'); |
| | | _this.refresh(); |
| | | } else { |
| | | return _this.$Message.error('åæ¹åºåºåè°å¤±è´¥'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | |
| | | }); |
| | | }; |
| | | } |
| | | |
| | | var CloseOrderBtn = this.buttons.find( |
| | | (x) => x.value == "CloseOrder" |
| | | ); |
| | | if (CloseOrderBtn != null) { |
| | | CloseOrderBtn.onClick = () => { |
| | | var rows = this.$refs.table.getSelected(); |
| | | // æ ¡éªæ¯å¦æé䏿°æ® |
| | | if (!rows || rows.length === 0) { |
| | | return this.$Message.error("请å
éæ©éè¦å
³éçåæ®"); |
| | | } |
| | | if (rows.length > 1) { |
| | | return this.$Message.error("è¯·éæ©ä¸æ¡åæ®"); |
| | | } |
| | | this.http.post(`api/InboundOrder/HandCloseOrder?orderIds=${rows[0].orderNo}`, {}, "æ°æ®å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.$Message.success(x.message); |
| | | this.refresh(); |
| | | } else { |
| | | return this.$Message.error(x.message); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | // å¢å å¼å¸¸æè·ï¼å¤çç½ç»é误çæ
åµ |
| | | //_this.$Message.error('请æ±å¤±è´¥ï¼' + (error.message || 'æªç¥é误')); |
| | | }); |
| | | }; |
| | | } |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | |
| | | } |
| | | }, |
| | | onInited() { |
| | | |
| | | var CloseOrderBtn = this.buttons.find( |
| | | (x) => x.value == "CloseOrder" |
| | | ); |
| | | if (CloseOrderBtn != null) { |
| | | CloseOrderBtn.onClick = () => { |
| | | var rows = this.$refs.table.getSelected(); |
| | | // æ ¡éªæ¯å¦æé䏿°æ® |
| | | if (!rows || rows.length === 0) { |
| | | return this.$Message.error("请å
éæ©éè¦å
³éçåæ®"); |
| | | } |
| | | if (rows.length > 1) { |
| | | return this.$Message.error("è¯·éæ©ä¸æ¡åæ®"); |
| | | } |
| | | this.http.post(`api/InboundOrder/HandCloseOrder?orderIds=${rows[0].orderNo}`, {}, "æ°æ®å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.$Message.success(x.message); |
| | | this.refresh(); |
| | | } else { |
| | | return this.$Message.error(x.message); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | // å¢å å¼å¸¸æè·ï¼å¤çç½ç»é误çæ
åµ |
| | | //_this.$Message.error('请æ±å¤±è´¥ï¼' + (error.message || 'æªç¥é误')); |
| | | }); |
| | | }; |
| | | } |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | |
| | | }); |
| | | }, |
| | | outbound() { |
| | | // if (this.selection.length === 0) { |
| | | // return this.$message.error("è¯·éæ©åæ®æç»"); |
| | | // } |
| | | // const platformOptions = [ |
| | | // { label: "ç«å°2", value: "2-1" }, |
| | | // { label: "ç«å°3", value: "3-1" }, |
| | | // ]; |
| | | // const mountNode = document.createElement("div"); |
| | | // document.body.appendChild(mountNode); |
| | | if (this.selection.length === 0) { |
| | | return this.$message.error("è¯·éæ©åæ®æç»"); |
| | | } |
| | | const platformOptions = [ |
| | | { label: "ç«å°2", value: "2-1" }, |
| | | { label: "ç«å°3", value: "3-1" }, |
| | | ]; |
| | | const mountNode = document.createElement("div"); |
| | | document.body.appendChild(mountNode); |
| | | |
| | | // const formData = reactive({ |
| | | // selectedPlatform: platformOptions[0].value, |
| | | // }); |
| | | const formData = reactive({ |
| | | selectedPlatform: platformOptions[0].value, |
| | | }); |
| | | |
| | | // const vnode = createVNode( |
| | | // ElDialog, |
| | | // { |
| | | // title: "åºåºæä½ - éæ©åºåºç«å°", |
| | | // width: "500px", |
| | | // modelValue: true, |
| | | // appendToBody: true, |
| | | // "onUpdate:modelValue": (isVisible) => { |
| | | // if (!isVisible) { |
| | | // render(null, mountNode); |
| | | // document.body.removeChild(mountNode); |
| | | // } |
| | | // }, |
| | | // style: { |
| | | // padding: "20px 0", |
| | | // borderRadius: "8px", |
| | | // }, |
| | | // }, |
| | | // { |
| | | // default: () => |
| | | // h( |
| | | // ElForm, |
| | | // { |
| | | // model: formData, |
| | | // rules: { |
| | | // selectedPlatform: [ |
| | | // { required: true, message: "è¯·éæ©åºåºç«å°", trigger: "change" }, |
| | | // ], |
| | | // }, |
| | | // ref: "outboundForm", |
| | | // labelWidth: "100px", |
| | | // style: { |
| | | // padding: "0 30px", |
| | | // }, |
| | | // }, |
| | | // [ |
| | | // h(ElFormItem, { |
| | | // label: "åºåºç«å°", |
| | | // prop: "selectedPlatform", |
| | | // style: { |
| | | // marginBottom: "24px", |
| | | // }, |
| | | // }, [ |
| | | // h(ElSelect, { |
| | | // placeholder: "è¯·éæ©åºåºç«å°ï¼3-12ï¼", |
| | | // 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("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.outboundForm; |
| | | // try { |
| | | // await formRef.validate(); |
| | | // } catch (err) { |
| | | // return; |
| | | // } |
| | | const vnode = createVNode( |
| | | ElDialog, |
| | | { |
| | | title: "åºåºæä½ - éæ©åºåºç«å°", |
| | | width: "500px", |
| | | modelValue: true, |
| | | appendToBody: true, |
| | | "onUpdate:modelValue": (isVisible) => { |
| | | if (!isVisible) { |
| | | render(null, mountNode); |
| | | document.body.removeChild(mountNode); |
| | | } |
| | | }, |
| | | style: { |
| | | padding: "20px 0", |
| | | borderRadius: "8px", |
| | | }, |
| | | }, |
| | | { |
| | | default: () => |
| | | h( |
| | | ElForm, |
| | | { |
| | | model: formData, |
| | | rules: { |
| | | selectedPlatform: [ |
| | | { required: true, message: "è¯·éæ©åºåºç«å°", trigger: "change" }, |
| | | ], |
| | | }, |
| | | ref: "outboundForm", |
| | | labelWidth: "100px", |
| | | style: { |
| | | padding: "0 30px", |
| | | }, |
| | | }, |
| | | [ |
| | | h(ElFormItem, { |
| | | label: "åºåºç«å°", |
| | | prop: "selectedPlatform", |
| | | style: { |
| | | marginBottom: "24px", |
| | | }, |
| | | }, [ |
| | | h(ElSelect, { |
| | | placeholder: "è¯·éæ©åºåºç«å°ï¼3-12ï¼", |
| | | 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("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.outboundForm; |
| | | try { |
| | | await formRef.validate(); |
| | | } catch (err) { |
| | | return; |
| | | } |
| | | |
| | | // const keys = this.selection.map((item) => item.id); |
| | | // const requestParams = { |
| | | // detailIds: keys, |
| | | // outboundTargetLocation: formData.selectedPlatform, |
| | | // outboundQuantity: 1, |
| | | // operator: "", |
| | | // orderNo: this.row.orderNo, |
| | | // }; |
| | | const keys = this.selection.map((item) => item.id); |
| | | const requestParams = { |
| | | detailIds: keys, |
| | | outboundTargetLocation: formData.selectedPlatform, |
| | | outboundQuantity: 1, |
| | | operator: "", |
| | | orderNo: this.row.orderNo, |
| | | stockDetailIds: [] |
| | | }; |
| | | |
| | | // this.http |
| | | // .post( |
| | | // "api/Outbound/ProcessPickingOutbound", |
| | | // requestParams, |
| | | // "æ°æ®å¤çä¸" |
| | | // ) |
| | | // .then((x) => { |
| | | // if (!x.status) return ElMessage.error(x.message); |
| | | // ElMessage.success("æä½æå"); |
| | | // this.showDetialBox = false; |
| | | // this.$emit("parentCall", ($vue) => { |
| | | // $vue.getData(); |
| | | // }); |
| | | // render(null, mountNode); |
| | | // document.body.removeChild(mountNode); |
| | | // }) |
| | | // // .catch(() => { |
| | | // // ElMessage.error("请æ±å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | // // }); |
| | | // }, |
| | | // style: { |
| | | // borderRadius: "4px", |
| | | // padding: "8px 20px", |
| | | // }, |
| | | // }, "ç¡®å®åºåº"), |
| | | // ]), |
| | | // ]), |
| | | // } |
| | | // ); |
| | | this.http |
| | | .post( |
| | | "api/Outbound/ProcessPickingOutbound", |
| | | requestParams, |
| | | "æ°æ®å¤çä¸" |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return ElMessage.error(x.message); |
| | | ElMessage.success("æä½æå"); |
| | | this.showDetialBox = false; |
| | | this.$emit("parentCall", ($vue) => { |
| | | $vue.getData(); |
| | | }); |
| | | render(null, mountNode); |
| | | document.body.removeChild(mountNode); |
| | | }) |
| | | // .catch(() => { |
| | | // ElMessage.error("请æ±å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | // }); |
| | | }, |
| | | style: { |
| | | borderRadius: "4px", |
| | | padding: "8px 20px", |
| | | }, |
| | | }, "ç¡®å®åºåº"), |
| | | ]), |
| | | ]), |
| | | } |
| | | ); |
| | | |
| | | // vnode.appContext = this.$.appContext; |
| | | // render(vnode, mountNode); |
| | | vnode.appContext = this.$.appContext; |
| | | render(vnode, mountNode); |
| | | }, |
| | | outboundbatch() { |
| | | if (this.selection.length === 0) { |
| | |
| | | } |
| | | }, |
| | | onInited() { |
| | | var CloseOrderBtn = this.buttons.find( |
| | | (x) => x.value == "CloseOrder" |
| | | ); |
| | | if (CloseOrderBtn != null) { |
| | | CloseOrderBtn.onClick = () => { |
| | | var rows = this.$refs.table.getSelected(); |
| | | // æ ¡éªæ¯å¦æé䏿°æ® |
| | | if (!rows || rows.length === 0) { |
| | | return this.$Message.error("请å
éæ©éè¦å
³éçåæ®"); |
| | | } |
| | | if (rows.length > 1) { |
| | | return this.$Message.error("è¯·éæ©ä¸æ¡åæ®"); |
| | | } |
| | | this.http.post(`api/InboundOrder/HandCloseOrder?orderIds=${rows[0].orderNo}`, {}, "æ°æ®å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.$Message.success(x.message); |
| | | this.refresh(); |
| | | } else { |
| | | return this.$Message.error(x.message); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | // å¢å å¼å¸¸æè·ï¼å¤çç½ç»é误çæ
åµ |
| | | //_this.$Message.error('请æ±å¤±è´¥ï¼' + (error.message || 'æªç¥é误')); |
| | | }); |
| | | }; |
| | | } |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | |
| | | ]); |
| | | |
| | | |
| | | // const searchFormFields = ref({ |
| | | // orderNo: "", |
| | | // upperOrderNo: "", |
| | | // orderType: "117", |
| | | // orderStatus: "", |
| | | // createType: "", |
| | | // fromWarehouse: "", |
| | | // toWarehouse: "", |
| | | // factoryArea: "", |
| | | // creater: "", |
| | | // createDate: "", |
| | | // }); |
| | | |
| | | |
| | | // const searchFormOptions = ref([ |
| | | // [ |
| | | // { title: "ä¸çº§åæ®ç¼å·", field: "upperOrderNo", type: "like" }, |
| | | // { |
| | | // title: "åæ®ç¶æ", |
| | | // field: "orderStatus", |
| | | // type: "select", |
| | | // dataKey: "allocateOrderStatus", |
| | | // data: [], |
| | | // }, |
| | | // { |
| | | // title: "åæ®ç±»å", |
| | | // field: "orderType", |
| | | // type: "select", |
| | | // dataKey: "outOrderType", |
| | | // data: [], |
| | | // }, |
| | | // ], |
| | | // [ |
| | | // { |
| | | // title: "å建类å", |
| | | // field: "createType", |
| | | // type: "select", |
| | | // dataKey: "createType", |
| | | // data: [], |
| | | // }, |
| | | // { title: "æ¥æºä»åº", field: "fromWarehouse", type: "like" }, |
| | | // { title: "ç®æ ä»åº", field: "toWarehouse", type: "like" }, |
| | | // ], |
| | | // [ |
| | | // { title: "ååº", field: "factoryArea", type: "like" }, |
| | | // { title: "å建è
", field: "creater", type: "like" }, |
| | | // { title: "å建æ¶é´", field: "createDate", type: "datetime" }, |
| | | // ], |
| | | // ]); |
| | | const searchFormFields = ref({ |
| | | orderNo: "", |
| | | upperOrderNo: "", |
| | | supplierId: "", |
| | | orderType: "", |
| | | orderType: "117", |
| | | orderStatus: "", |
| | | createType: "", |
| | | businessType: "", |
| | | fromWarehouse: "", |
| | | toWarehouse: "", |
| | | factoryArea: "", |
| | | creater: "", |
| | | createDate: "", |
| | | }); |
| | | |
| | | |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åæ®ç¼å·", field: "orderNo", type: "like" }, |
| | | { title: "ä¸çº§åæ®ç¼å·", field: "upperOrderNo", type: "like" }, |
| | | { title: "ä¾åºåID", field: "supplierId", type: "like" }, |
| | | { |
| | | title: "订åç±»å", |
| | | title: "åæ®ç±»å", |
| | | field: "orderType", |
| | | type: "select", |
| | | dataKey: "allocateOrderType", |
| | | dataKey: "outOrderType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "åæ®ç¶æ", |
| | | field: "orderStatus", |
| | | type: "select", |
| | | dataKey: "outboundStatusEnum", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "åæ®ç¶æ", |
| | | field: "orderStatus", |
| | | type: "select", |
| | | dataKey: "allocateOrderStatus", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "å建类å", |
| | | title: "å建æ¹å¼", |
| | | field: "createType", |
| | | type: "select", |
| | | dataKey: "createType", |
| | | data: [], |
| | | }, |
| | | { title: "ä¸å¡ç±»å", field: "businessType", type: "like" }, |
| | | ], |
| | | [ |
| | | { title: "æ¥æºä»åº", field: "fromWarehouse", type: "like" }, |
| | | { title: "ç®æ ä»åº", field: "toWarehouse", type: "like" }, |
| | | { title: "ååº", field: "factoryArea", type: "like" }, |
| | | ], |
| | | [ |
| | | { title: "å建è
", field: "creater", type: "like" }, |
| | | { title: "å建æ¶é´", field: "createDate", type: "datetime" }, |
| | | ], |
| | |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "supplierId", |
| | | title: "ä¾åºåID", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "orderType", |
| | | title: "订åç±»å", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "allocateOrderType", data: [] }, |
| | | bind: { key: "outOrderType", data: [] }, |
| | | }, |
| | | { |
| | | field: "orderStatus", |
| | |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "allocateOrderStatus", data: [] }, |
| | | bind: { key: "inboundState", data: [] }, |
| | | }, |
| | | { |
| | | field: "createType", |
| | |
| | | align: "left", |
| | | bind: { key: "createType", data: [] }, |
| | | }, |
| | | { |
| | | field: "businessType", |
| | | title: "ä¸å¡ç±»å", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | // { |
| | | // field: "businessType", |
| | | // title: "ä¸å¡ç±»å", |
| | | // type: "string", |
| | | // width: 120, |
| | | // align: "left", |
| | | // bind: { key: "businessType", data: [] }, |
| | | // }, |
| | | { |
| | | field: "fromWarehouse", |
| | | title: "æ¥æºä»åº", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "warehouses", data: [] }, |
| | | }, |
| | | { |
| | | field: "toWarehouse", |
| | |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "warehouses", data: [] }, |
| | | }, |
| | | { |
| | | field: "isBatch", |
| | | title: "æ¯å¦æ¹æ¬¡", |
| | | type: "bool", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ ç¶æ", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "operator", |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "è¯·æ«æåæ®ææ¡ç ", field: "orderNo", type: "like" }, |
| | | { title: "䏿¸¸åæ®ç¼å·", field: "upperOrderNo", type: "like" }, |
| | | { |
| | | title: "åæ®ç±»å", |
| | | field: "orderType", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åæ®ç¼å·", field: "orderNo", type: "like" }, |
| | | { title: "䏿¸¸åæ®ç¼å·", field: "upperOrderNo", type: "like" }, |
| | | { |
| | | title: "åæ®ç±»å", |
| | | field: "orderType", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "departmentCode", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | field: "operator", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | |
| | | private readonly IRepository<Dt_LocationInfo> _locationInfoRepository; |
| | | private readonly IBasicService _basicService; |
| | | private readonly IRepository<Dt_AllocateOrder> _allocateOrderRepository; |
| | | private readonly IRepository<Dt_OutboundOrder> _outboundOrderRepository; |
| | | public IRepository<Dt_InboundOrder> Repository => BaseDal; |
| | | |
| | | public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService, IBasicService basicService, IRepository<Dt_LocationInfo> locationInfoRepository, IRepository<Dt_AllocateOrder> allocateOrderRepository) : base(BaseDal) |
| | | public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService, IBasicService basicService, IRepository<Dt_LocationInfo> locationInfoRepository, IRepository<Dt_AllocateOrder> allocateOrderRepository, IRepository<Dt_OutboundOrder> outboundOrderRepository) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _basicService = basicService; |
| | | _locationInfoRepository = locationInfoRepository; |
| | | _allocateOrderRepository = allocateOrderRepository; |
| | | _outboundOrderRepository = outboundOrderRepository; |
| | | } |
| | | |
| | | public async Task<WebResponseContent> ReceiveInboundOrder(List<Dt_InboundOrder> models, int operateType) |
| | |
| | | foreach (var orderNo in orderNos) |
| | | { |
| | | var inbound = _inboundOrderRepository.QueryFirst(x => x.InboundOrderNo == orderNo); |
| | | if(inbound == null) |
| | | var outbound = _outboundOrderRepository.QueryFirst(x=>x.OrderNo == orderNo); |
| | | if(inbound == null && outbound == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥åæ®ä¸åå¨ï¼æ æ³è¿è¡å
³é"); |
| | | } |
| | | if (inbound.OrderStatus != (int)InOrderStatusEnum.æªå¼å§ && inbound.OrderStatus != (int)InOrderStatusEnum.å
¥åºä¸) |
| | | |
| | | if (inbound != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥åæ®ç¶æä¸å¯ä»¥å
³é"); |
| | | if (inbound.OrderStatus != (int)InOrderStatusEnum.æªå¼å§ && inbound.OrderStatus != (int)InOrderStatusEnum.å
¥åºä¸) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥åæ®ç¶æä¸å¯ä»¥å
³é"); |
| | | } |
| | | inbound.OrderStatus = (int)InOrderStatusEnum.æå¨å
³é; |
| | | inbound.Operator = App.User.UserName; |
| | | _inboundOrderRepository.UpdateData(inbound); |
| | | }else if (outbound != null) |
| | | { |
| | | if(outbound.OrderStatus !=(int)OutOrderStatusEnum.æªå¼å§ && outbound.OrderStatus != (int)OutOrderStatusEnum.åºåºä¸) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è¯¥åæ®ç¶æä¸å¯ä»¥å
³é"); |
| | | } |
| | | outbound.OrderStatus = (int)OutOrderStatusEnum.å
³é; |
| | | outbound.Operator = App.User.UserName; |
| | | _outboundOrderRepository.UpdateData(outbound); |
| | | } |
| | | inbound.OrderStatus = (int)InOrderStatusEnum.æå¨å
³é; |
| | | _inboundOrderRepository.UpdateData(inbound); |
| | | |
| | | } |
| | | return WebResponseContent.Instance.OK($"åæ®å
³éæå"); |
| | | } |