Browse Source

2025-04-10

master
qiezi 11 months ago
parent
commit
8c12286563
  1. 2
      src/api/quote/quoteDetailBomTree.js
  2. 54
      src/views/modules/quote/detail/primary/quoteDetailBom.vue

2
src/api/quote/quoteDetailBomTree.js

@ -9,3 +9,5 @@ export const queryQuoteDetailBomTreeLevel = (data) => createAPI(`/quote/detail/b
export const queryQuoteDetailBomTreeAlternative = (data) => createAPI("/quote/detail/bom/tree/alternative", "post", data);
export const changeQuoteDetailBomTree = (data) => createAPI(`quote/detail/bom/tree/change`, "post", data)
export const queryPlmPart = (data) => createAPI(`/quote/detail/bom/tree/part`,'post',data)

54
src/views/modules/quote/detail/primary/quoteDetailBom.vue

@ -5,7 +5,7 @@ import {
queryQuoteDetailBomTreeAlternative
} from "@/api/quote/quoteDetailBomTree";
import {queryQuoteDetailBom} from "@/api/quote/quoteDetailBom";
import {changeQuoteDetailBomTree} from "../../../../../api/quote/quoteDetailBomTree";
import {changeQuoteDetailBomTree, queryPlmPart} from "../../../../../api/quote/quoteDetailBomTree";
export default {
name: "quoteDetailBom",
@ -248,6 +248,10 @@ export default {
versionVisible: false,
versionList: [],
alternativeList: [],
part:{
status:'N',
ifsPartNo:'',
},
bomEngChgLevel: {
partNo: '',
bomType: '',
@ -304,7 +308,7 @@ export default {
this.queryLoading = false;
})
},
handleCheckedVersion() {
async handleCheckedVersion(flag) {
let node = this.$refs.tree.getCurrentNode();
if (node) {
this.bomEngChgLevel = {
@ -316,21 +320,46 @@ export default {
alternativeNo: node.alternativeNo,
}
}
this.handleQueryQuoteDetailBomTreeVersion();
//
// BomDetailPartNO,
await this.handleQueryPart();
this.versionVisible = true
},
async handleQueryPart(){
let node = this.$refs.tree.getCurrentNode();
let params = {
partNo: node.partNo,
site: node.site,
}
queryPlmPart(params).then(({data})=>{
if (data && data.code === 0) {
this.part.ifsPartNo = data.partNo
if (this.part.ifsPartNo){
this.part.status = "Y"
}
this.handleQueryQuoteDetailBomTreeVersion();
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
},
handleQueryQuoteDetailBomTreeVersion() {
let params = {
...this.bomEngChgLevel,
bomType:'',
engChgLevel: '',
alternativeNo: '',
partStatus:this.part.status,
plmPartNo:this.part.ifsPartNo,
}
queryQuoteDetailBomTreeLevel(params).then(({data}) => {
if (data && data.code === 0) {
this.versionList = data.rows;
this.handleQueryQuoteDetailBomAlternative();
} else {
this.part.status = 'N'
this.$message.warning(data.msg);
}
}).catch((error) => {
@ -338,12 +367,12 @@ export default {
})
},
levelRowStyle({row}) {
if (row.engChgLevel === this.bomEngChgLevel.engChgLevel && row.bomType === this.bomEngChgLevel.bomType) {
if (row.engChgLevel === this.bomEngChgLevel.engChgLevel && row.bomType === this.bomEngChgLevel.bomType && row.partNo === this.bomEngChgLevel.partNo) {
return {'background-color': '#E8F7F6'};
}
},
alternativeRowStyle({row}) {
if (row.engChgLevel === this.bomEngChgLevel.engChgLevel && row.bomType === this.bomEngChgLevel.bomType && row.alternativeNo === this.bomEngChgLevel.alternativeNo) {
if (row.engChgLevel === this.bomEngChgLevel.engChgLevel && row.bomType === this.bomEngChgLevel.bomType && row.alternativeNo === this.bomEngChgLevel.alternativeNo && row.partNo === this.bomEngChgLevel.partNo) {
return {'background-color': '#E8F7F6'};
}
},
@ -370,7 +399,6 @@ export default {
})
},
handleChangeVersion(row) {
console.log(row)
this.$confirm('确认切换BOM版本吗,切换后将重新覆盖工具信息,请确认!','提示',{
type: 'warning',
confirmButtonText: '确定',
@ -395,7 +423,7 @@ export default {
}
if (node) {
params.id = node.id
params.partNo = node.partNo
params.partNo = row.partNo
params.buNo = node.buNo
params.site = node.site
}
@ -445,7 +473,7 @@ export default {
},
isAllBom(newVal, oldVal) {
this.handleQueryQuoteDetailBom();
},
}
}
}
</script>
@ -454,7 +482,7 @@ export default {
<div>
<div style="margin-bottom: 10px">
<template v-if="isAuth('5011:detail:tab1:check')">
<el-link style="margin-right: 20px;cursor: pointer" @click="handleCheckedVersion" v-if="quoteDetail.status === '草稿'">切换版本</el-link>
<el-link style="margin-right: 20px;cursor: pointer" @click="handleCheckedVersion()" v-if="quoteDetail.status === '草稿'">切换版本</el-link>
</template>
<el-checkbox v-model="isAllBom">全级BOM结构</el-checkbox>
</div>
@ -499,6 +527,14 @@ export default {
<el-dialog title="BOM版本切换" :visible.sync="versionVisible" append-to-body :close-on-click-modal="false" v-drag
width="900px">
<el-form label-position="top" :model="part">
<el-form-item label="料号类型">
<el-select v-model="part.status" style="width: 120px" @change="handleCheckedVersion(true)">
<el-option value="N" label="临时物料" :disabled="!!part.ifsPartNo"></el-option>
<el-option value="Y" label="正式物料"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-table v-loading="changeLoading" :data="versionList" :row-style="levelRowStyle" @row-click="levelRowClick" ref="versionTable"
style="width: 100%" border :height="240">
<el-table-column label="物料编码" prop="partNo" header-align="center" align="center" show-overflow-tooltip

Loading…
Cancel
Save