Browse Source

20241217

java8
qiezi 1 year ago
parent
commit
739f7fe6b6
  1. 2
      src/api/quote/quoteDetailBom.js
  2. 74
      src/views/modules/quote/detail/primary/quoteDetailBom.vue

2
src/api/quote/quoteDetailBom.js

@ -1,3 +1,5 @@
import {createAPI} from "../../utils/httpRequest";
export const queryQuoteDetailBom = (data) => createAPI("/quote/detail/bom", "post", data);
export const updateQuoteDetailBom = (data) => createAPI("/quote/detail/bom/update", "post", data);

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

@ -6,6 +6,7 @@ import {
} from "@/api/quote/quoteDetailBomTree";
import {queryQuoteDetailBom} from "@/api/quote/quoteDetailBom";
import {changeQuoteDetailBomTree} from "../../../../../api/quote/quoteDetailBomTree";
import {updateQuoteDetailBom} from "../../../../../api/quote/quoteDetailBom";
export default {
name: "quoteDetailBom",
@ -164,6 +165,24 @@ export default {
fixed: '',
columnWidth: 90,
},
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4AttritionRate',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'attritionRate',
headerAlign: "center",
align: "right",
columnLabel: '报价成本损耗',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},
{
userId: this.$store.state.user.name,
functionId: 5011,
@ -272,7 +291,9 @@ export default {
buNo: '',
site: '',
engChgLevel: null,
}
},
quoteDetailBom:{},
quoteDetailBomVisible:false,
}
},
methods: {
@ -438,7 +459,37 @@ export default {
}
this.$router.push(params)
}
}
},
handleUpdateQuoteDetailBom(row){
if (row.attritionRate === undefined || row.attritionRate === null || row.attritionRate <= 0) {
this.$message.warning('报价成本损耗不能为空或小于等于0');
return;
}
let params = {
id:row.id,
attritionRate:row.attritionRate,
}
updateQuoteDetailBom(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg);
this.quoteDetailBomVisible = false;
this.handleQueryQuoteDetailBom();
}else{
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
},
handleClickUpdate(row,column,cell,event){
if (column.label === '报价成本损耗'){
this.quoteDetailBom = {
...row,
}
this.quoteDetailBomVisible = true;
}
},
},
created() {
if (this.quoteDetail && this.quoteDetail.id) {
@ -475,8 +526,15 @@ export default {
</el-tree>
</el-aside>
<el-main style="padding: 0">
<el-table :data="dataList" v-loading="queryLoading" border style="width: 100%" :height="420">
<el-main style="padding: 0" class="rq">
<el-table :data="dataList" v-loading="queryLoading" border
@cell-dblclick="handleClickUpdate"
style="width: 100%" :height="420">
<!-- <el-table-column label="操作" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <a @click="handleClickUpdate(scope.row)">编辑</a>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
@ -491,6 +549,9 @@ export default {
<template v-if="item.columnProp === 'partNo'">
<el-link @click="handleJumpToBom(scope.row)">{{ scope.row[item.columnProp] }}</el-link>
</template>
<template v-else-if="item.columnProp === 'attritionRate' && quoteDetailBomVisible && scope.row.id === quoteDetailBom.id">
<el-input-number v-model="scope.row.attritionRate" @change="handleUpdateQuoteDetailBom(scope.row)" style="width: 100%" :controls="false" :min="0"></el-input-number>
</template>
<template v-else>
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
@ -533,6 +594,11 @@ export default {
</el-table-column>
</el-table>
</el-dialog>
<!-- <el-dialog title="BOM信息" :visible.sync="quoteDetailBomVisible" append-to-body :close-on-click-modal="false" width="450px" v-drag>-->
<!-- </el-dialog>-->
</div>
</template>

Loading…
Cancel
Save