| | |
| | | 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'; |
| | | |
| | | import gridBody from './extend/outOrderDetail.vue' |
| | | import gridHeader from './extend/NoStockOut.vue' |
| | | import gridFooter from './extend/EmptyTrayOutbound.vue' |
| | |
| | | table.clearSelection(); |
| | | table.toggleRowSelection(row, true); |
| | | } |
| | | const rowId = row.id; |
| | | console.log(rowId); |
| | | this.$refs.gridBody.open(row); |
| | | } |
| | | }); |
| | |
| | | if (!selectedRows || selectedRows.length === 0) { |
| | | return _this.$Message.warning('请å
éæ©éè¦å¤ççåæ®'); |
| | | } |
| | | const requestParams = { |
| | | orderNos: selectedRows.map(row => row.orderNo), |
| | | inout: 2 |
| | | }; |
| | | if (selectedRows.length > 1) { |
| | | return _this.$Message.warning('è¯·éæ©ä¸æ¡æ°æ®'); |
| | | } |
| | | // const requestParams = { |
| | | // orderNos: selectedRows.map(row => row.orderNo), |
| | | // inout: 2 |
| | | // }; |
| | | _this.http |
| | | .post("api/InboundOrder/BatchOrderFeedbackToMes", requestParams, "æ°æ®å¤çä¸...") |
| | | .post(`api/MesFeedback/OutboundFeedback?orderNo=${selectedRows[0].orderNo}`, {}, "æ°æ®å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | _this.$Message.success('åæ¹åºåºåè°å®æ'); |
| | | _this.$Message.success(x.message); |
| | | _this.refresh(); |
| | | } else { |
| | | return _this.$Message.error(x.message); |
| | |
| | | }) |
| | | .catch((error) => { |
| | | // å¢å å¼å¸¸æè·ï¼å¤çç½ç»é误çæ
åµ |
| | | _this.$Message.error('请æ±å¤±è´¥ï¼' + (error.message || 'æªç¥é误')); |
| | | //_this.$Message.error('请æ±å¤±è´¥ï¼' + (error.message || 'æªç¥é误')); |
| | | }); |
| | | }; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | var EmptyTrayOutboundBtn = this.buttons.find(x => x.value == "EmptyTrayOutbound"); |
| | | if (EmptyTrayOutboundBtn != null) { |
| | | EmptyTrayOutboundBtn.onClick = () => { |
| | | this.$refs.gridFooter.open(); |
| | | } |
| | | if (EmptyTrayOutboundBtn != null) { |
| | | EmptyTrayOutboundBtn.onClick = () => { |
| | | this.$refs.gridFooter.open(); |
| | | } |
| | | } |
| | | |
| | | let OrderOutBtn = this.buttons.find(x => x.value == 'OrderOut'); |
| | | if (OrderOutBtn) { |
| | | // 1. æ¹ä¸ºç®å¤´å½æ°ï¼ç¡®ä¿thisæåVueç»ä»¶å®ä¾ï¼åæ®é彿°thisæåæé®æ¬èº«ï¼ |
| | | OrderOutBtn.onClick = async () => { |
| | | // ç°å¨thisæ¯Vueç»ä»¶å®ä¾ï¼è½æ£ç¡®è·å$refs |
| | | let rows = this.$refs.table.getSelected(); |
| | | if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); |
| | | if (rows.length > 1) return this.$error("è¯·éæ©ä¸æ¡æ°æ®!"); |
| | | |
| | | |
| | | // ç¡®ä¿éä¸è¡æidï¼æ ¹æ®å®é
è¡¨æ ¼æ°æ®åæ®µè°æ´ï¼æ¯å¦rows[0].detailIdçï¼ |
| | | const selectedId = rows[0].id || rows[0].detailId; |
| | | if (!selectedId) return this.$error("é䏿°æ®ç¼ºå°å¿
è¦IDåæ®µ!"); |
| | | |
| | | if(rows[0].orderStatus!=0&&rows[0].orderStatus!=1)return this.$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 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", // 表åref |
| | | 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 () => { |
| | | // 2. ç¡®ä¿è¡¨årefå·²æè½½ï¼ç¨nextTické¿å
è·åä¸å°ï¼ |
| | | await this.$nextTick(); |
| | | const formRef = vnode.component.refs.outboundForm; |
| | | |
| | | if (!formRef) { |
| | | ElMessage.error("表ååå§å失败ï¼è¯·éè¯"); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | await formRef.validate(); |
| | | } catch (err) { |
| | | return; |
| | | } |
| | | var param = rows[0].orderNo; |
| | | const requestParams = { |
| | | detailIds: [], |
| | | outboundTargetLocation: formData.selectedPlatform, |
| | | outboundQuantity: 1, |
| | | operator: this.currentOperator || "admin", |
| | | orderNo: param, |
| | | }; |
| | | |
| | | try { |
| | | |
| | | const x = await this.http.post( |
| | | "api/Outbound/ProcessPickingOutbound", |
| | | requestParams, |
| | | "æ°æ®å¤çä¸" |
| | | ); |
| | | |
| | | if (!x.status) { |
| | | ElMessage.error(x.message || "æä½å¤±è´¥"); |
| | | return; |
| | | } |
| | | |
| | | ElMessage.success("æä½æå"); |
| | | this.showDetialBox = false; |
| | | this.$emit("parentCall", ($vue) => { |
| | | $vue.getData(); |
| | | }); |
| | | } catch (error) { |
| | | // 5. æå¼é误æè·ï¼æ¹ä¾¿è°è¯ |
| | | console.error("åºåºæ¥å£è¯·æ±å¤±è´¥ï¼", error); |
| | | ElMessage.error("请æ±å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } finally { |
| | | // æ 论æå失败ï¼é½å
³éå¼¹çª |
| | | render(null, mountNode); |
| | | document.body.removeChild(mountNode); |
| | | } |
| | | }, |
| | | style: { |
| | | borderRadius: "4px", |
| | | padding: "8px 20px", |
| | | }, |
| | | }, "ç¡®å®åºåº"), |
| | | ]), |
| | | ]), |
| | | } |
| | | ); |
| | | |
| | | vnode.appContext = this.$.appContext; |
| | | render(vnode, mountNode); |
| | | }; |
| | | } |
| | | |
| | | }, |
| | | onInited() { |
| | |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | |
| | | |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | |
| | | }, |
| | | modelOpenAfter(row) { |
| | | if (this.currentAction === 'Add') { // 夿å½åæ¯æ°å»ºæä½ |
| | | const currentUser = this.$store.state.userInfo?.userTrueName || 'system'; |
| | | this.editFormFields.operator = currentUser; |
| | | } |
| | | const currentUser = this.$store.state.userInfo?.userTrueName || 'system'; |
| | | this.editFormFields.operator = currentUser; |
| | | } |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |