From 5166e68b35f7000190501250d176714ba2aa6f0d Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Fri, 6 Dec 2024 09:05:00 +0800 Subject: [PATCH] 2024-12-06 --- src/api/quote/quoteDetailRouting.js | 2 + .../quote/detail/primary/quoteDetailBom.vue | 40 ++---- .../detail/primary/quoteDetailRouting.vue | 131 +++++++++++++++--- .../quote/detail/primary/quoteDetailTool.vue | 20 +-- 4 files changed, 135 insertions(+), 58 deletions(-) diff --git a/src/api/quote/quoteDetailRouting.js b/src/api/quote/quoteDetailRouting.js index aebb5cd..e96eae4 100644 --- a/src/api/quote/quoteDetailRouting.js +++ b/src/api/quote/quoteDetailRouting.js @@ -8,3 +8,5 @@ export const queryQuoteDetailRoutingVersion = (data) => createAPI(`/quote/detail export const queryQuoteDetailRoutingAlternative = (data) => createAPI(`/quote/detail/routing/alternative`,'post',data) export const changeQuoteDetailRoutingChange = (data) => createAPI(`/quote/detail/routing/change`,'post',data) + +export const updateQuoteDetailRouting = (data) => createAPI(`/quote/detail/routing/update`,'post',data) diff --git a/src/views/modules/quote/detail/primary/quoteDetailBom.vue b/src/views/modules/quote/detail/primary/quoteDetailBom.vue index d096bbb..3063a73 100644 --- a/src/views/modules/quote/detail/primary/quoteDetailBom.vue +++ b/src/views/modules/quote/detail/primary/quoteDetailBom.vue @@ -286,7 +286,6 @@ export default { }) }, handleCheckedVersion() { - this.handleQueryQuoteDetailBomTreeVersion(); let node = this.$refs.tree.getCurrentNode(); if (node) { this.bomEngChgLevel = { @@ -298,26 +297,19 @@ export default { alternativeNo: node.alternativeNo, } } + this.handleQueryQuoteDetailBomTreeVersion(); this.versionVisible = true }, handleQueryQuoteDetailBomTreeVersion() { - let node = this.$refs.tree.getCurrentNode(); let params = { - site: this.quoteDetail.site, - partNo: this.quoteDetail.partNo, - buNo: this.quoteDetail.buNo, - } - if (node) { - params = { - site: node.site, - partNo: node.partNo, - bomType: node.bomType, - buNo: node.buNo, - } + ...this.bomEngChgLevel, + engChgLevel: '', + alternativeNo: '', } queryQuoteDetailBomTreeLevel(params).then(({data}) => { if (data && data.code === 0) { this.versionList = data.rows; + this.handleQueryQuoteDetailBomAlternative(); } else { this.$message.warning(data.msg); } @@ -331,7 +323,6 @@ export default { } }, alternativeRowStyle({row}) { - let node = this.$refs.tree.getCurrentNode(); if (row.engChgLevel === this.bomEngChgLevel.engChgLevel && row.alternativeNo === this.bomEngChgLevel.alternativeNo) { return {'background-color': '#E8F7F6'}; } @@ -342,6 +333,9 @@ export default { this.bomEngChgLevel.site = row.site; this.bomEngChgLevel.engChgLevel = row.engChgLevel; this.bomEngChgLevel.bomType = row.bomType; + this.handleQueryQuoteDetailBomAlternative(); + }, + handleQueryQuoteDetailBomAlternative() { let params = { ...this.bomEngChgLevel } @@ -422,24 +416,6 @@ export default { isAllBom(newVal, oldVal) { this.handleQueryQuoteDetailBom(); }, - 'bomEngChgLevel.engChgLevel'(newVal, oldVal) { - if (newVal) { - let node = this.$refs.tree.getCurrentNode(); - let row = { - partNo: this.quoteDetail.partNo, - buNo: this.quoteDetail.buNo, - site: this.quoteDetail.site, - engChgLevel: newVal, - } - if (node) { - row.partNo = node.partNo; - row.bomType = node.bomType; - row.buNo = node.buNo; - row.site = node.site; - } - this.levelRowClick(row) - } - } } } diff --git a/src/views/modules/quote/detail/primary/quoteDetailRouting.vue b/src/views/modules/quote/detail/primary/quoteDetailRouting.vue index 84b7b66..fede86c 100644 --- a/src/views/modules/quote/detail/primary/quoteDetailRouting.vue +++ b/src/views/modules/quote/detail/primary/quoteDetailRouting.vue @@ -5,6 +5,7 @@ import { queryQuoteDetailRoutingAlternative, changeQuoteDetailRoutingChange, queryQuoteDetailRoutingVersion } from "@/api/quote/quoteDetailRouting"; +import {updateQuoteDetailRouting} from "../../../../../api/quote/quoteDetailRouting"; export default { name: "quoteDetailRouting", @@ -498,7 +499,25 @@ export default { alternativeList:[], routing:{ - } + }, + + quoteDetailRouting:{ + + }, + quoteDetailRoutingVisible:false, + + rules:{ + workCenterCost:[ + { required: true, message: '请输入加工中心成本', trigger: ['blur','change'] }, + ], + setupLaborClassCost:[ + { required: true, message: '请输入人工成本-调机', trigger: ['blur','change'] }, + ], + laborClassCost:[ + { required: true, message: '请输入人工成本-生产', trigger: ['blur','change'] }, + ], + }, + } }, methods:{ @@ -550,26 +569,18 @@ export default { }, handleChangeVersion(){ let node = this.$refs.tree.getCurrentNode(); - let row = { - routingRevision:null, - alternativeNo: '', - routingType: null, - } if (this.treeData.length === 0){ this.$message.warning("未维护BOM结构") return; } - if (this.dataList.length > 0){ - row = this.dataList[0]; - } if (node){ this.routing = { partNo: node.partNo, buNo: node.buNo, site: node.site, - routingType: row.routingType, - routingRevision: row.routingRevision, - alternativeNo: row.alternativeNo, + routingType: node.bomType, + routingRevision: node.engChgLevel, + alternativeNo: node.alternativeNo, } } this.handleQueryVersionList(); @@ -588,9 +599,7 @@ export default { queryQuoteDetailRoutingVersion(params).then(({data})=>{ if (data && data.code === 0){ this.versionList = data.rows; - if (this.versionList.length > 0){ - this.handleQueryAlternativeList(); - } + this.handleQueryAlternativeList(); }else { this.$message.warning(data.msg); } @@ -619,7 +628,7 @@ export default { }, alternativeRowStyle({row}){ if (this.dataList.length > 0){ - if (this.dataList[0].alternativeNo === row.alternativeNo && this.dataList[0].routingRevision === row.routingRevision && this.dataList[0].routingType === row.routingType){ + if (this.routing.alternativeNo === row.alternativeNo && this.routing.routingRevision === row.routingRevision && this.routing.routingType === row.routingType){ return { 'background-color': '#E8F7F6' }; } } @@ -670,6 +679,39 @@ export default { } this.$router.push(params) } + }, + handleUpdateQuoteDetailRouting(row){ + this.quoteDetailRouting = {...row} + this.quoteDetailRoutingVisible = true; + }, + saveQuoteDetailRouting(){ + this.$refs.quoteDetailRoutingForm.validate((valid,obj) => { + if (valid){ + let params = { + ...this.quoteDetailRouting, + } + updateQuoteDetailRouting(params).then(({data})=>{ + if (data && data.code === 0){ + this.$message.success(data.msg); + this.handleQueryDetailRouting(); + this.quoteDetailRoutingVisible = false; + }else { + this.$message.warning(data.msg); + } + }).catch((error)=>{ + this.$message.error(error); + }) + }else { + let i = 1; + for (let item in obj){ + this.$message.error(obj[item][0].message); + if (i === 1){ + return + } + i++; + } + } + }) } }, created() { @@ -709,6 +751,11 @@ export default { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 确 定 + 取 消 + + diff --git a/src/views/modules/quote/detail/primary/quoteDetailTool.vue b/src/views/modules/quote/detail/primary/quoteDetailTool.vue index 574909f..6ba7ddb 100644 --- a/src/views/modules/quote/detail/primary/quoteDetailTool.vue +++ b/src/views/modules/quote/detail/primary/quoteDetailTool.vue @@ -45,16 +45,16 @@ export default { { required: true, message: '请输入工具描述', trigger: ['blur','change'] } ], toolQty: [ - { required: true, message: '请输入工具数量', trigger: ['blur','change'] } + { required: true, message: '请输入分摊数量', trigger: ['blur','change'] } ], unitCost: [ - { required: true, message: '请输入单位成本', trigger: ['blur','change'] } + { required: true, message: '请输入模具费金额', trigger: ['blur','change'] } ], expectedServiceLife: [ - { required: true, message: '请输入预计使用寿命', trigger: ['blur','change'] } + { required: true, message: '请输入Mark up%', trigger: ['blur','change'] } ], quoteUnitCost: [ - { required: true, message: '请输入单位报价成本', trigger: ['blur','change'] } + { required: true, message: '请输入单片分摊成本', trigger: ['blur','change'] } ] }, toolList:[], @@ -284,29 +284,29 @@ export default { - + - + - + - + - - + +