Browse Source

20241016

java8
qiezi 1 year ago
parent
commit
cabef4a648
  1. 4
      src/api/quote/quoteDetail.js
  2. 10
      src/views/modules/fanuc/labor.vue
  3. 482
      src/views/modules/quote/detail/breakdownCost.vue
  4. 38
      src/views/modules/quote/detail/primary/quoteDetailBom.vue
  5. 53
      src/views/modules/quote/detail/primary/quoteDetailCost.vue
  6. 36
      src/views/modules/quote/detail/quoteDetail.vue
  7. 10
      src/views/modules/quote/quoteDetailReport.vue

4
src/api/quote/quoteDetail.js

@ -15,3 +15,7 @@ export const queryQuoteDetailAllCost = (data) => createAPI(`/quote/detail/cost`,
export const queryQuoteDetailYield = (data) => createAPI(`/quote/detail/yield`,'post',data) export const queryQuoteDetailYield = (data) => createAPI(`/quote/detail/yield`,'post',data)
export const queryQuoteDetailReport = (data) => createAPI(`/quote/detail/report/${data.no}/${data.size}`,'post',data) export const queryQuoteDetailReport = (data) => createAPI(`/quote/detail/report/${data.no}/${data.size}`,'post',data)
export const queryQuoteDetailReportOverall = (data) => createAPI(`/quote/detail/report/overall`,'post',data)
export const queryQuoteDetailReportRM = (data) => createAPI(`/quote/detail/report/rm`,'post',data)

10
src/views/modules/fanuc/labor.vue

@ -220,8 +220,8 @@
width="100" width="100"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="updateModal1(scope.row)">修改</a>
<a type="text" size="small" @click="deleteModal1(scope.row)">删除</a>
<a type="text" @click="updateModal1(scope.row)">修改</a>
<a type="text" @click="deleteModal1(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -231,12 +231,12 @@
<!-- 成本新增和修改 --> <!-- 成本新增和修改 -->
<el-dialog title="成本" :close-on-click-modal="false" v-drag :visible.sync="modalFlag1" width="500px"> <el-dialog title="成本" :close-on-click-modal="false" v-drag :visible.sync="modalFlag1" width="500px">
<el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1" style="margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1" style="margin-top: -5px;">
<el-form-item label="单位制造费用成本:" prop="overheadCost">
<el-input-number :controls="false" :step="0" min="0" v-model="modalData1.overheadCost" style="width: 225px"></el-input-number>
</el-form-item>
<el-form-item label="单位人工成本:" prop="unitCost"> <el-form-item label="单位人工成本:" prop="unitCost">
<el-input-number :controls="false" :step="0" min="0" v-model="modalData1.unitCost" style="width: 225px"></el-input-number> <el-input-number :controls="false" :step="0" min="0" v-model="modalData1.unitCost" style="width: 225px"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="单位制造费用成本:" prop="overheadCost">
<el-input-number :controls="false" :step="0" min="0" v-model="modalData1.overheadCost" style="width: 225px"></el-input-number>
</el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1"> <el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1">
<el-form-item :label="'启用日期'" prop="beginDate"> <el-form-item :label="'启用日期'" prop="beginDate">

482
src/views/modules/quote/detail/breakdownCost.vue

@ -0,0 +1,482 @@
<script>
import {queryQuoteDetailReportOverall, queryQuoteDetailReportRM} from "../../../../api/quote/quoteDetail";
import {Decimal} from "decimal.js";
export default {
name: "breakdownCost",
computed: {
Decimal() {
return Decimal
}
},
props:{
quoteDetail:{
type:Object,
required:true
},
height:{
type:[String,Number],
default:300
}
},
data(){
return{
dataList:[],
dataListRm:[],
queryLoading:false,
dataColumns:[
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2OperationName',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'operationName',
headerAlign: 'center',
align: 'left',
columnLabel: 'Process',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: 'left',
columnWidth: 130
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2ORmCostStandard',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'rmCostStandard',
headerAlign: 'center',
align: 'right',
columnLabel: 'RM_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2ORmCostQuote',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'rmCostQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'RM_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2LaborCost',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'laborCost',
headerAlign: 'center',
align: 'right',
columnLabel: 'DL',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2OverheadCost',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'overheadCost',
headerAlign: 'center',
align: 'right',
columnLabel: 'VOH',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2MachineCost',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'machineCost',
headerAlign: 'center',
align: 'right',
columnLabel: 'FOH',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2SubtotalCostStd',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'subtotalCostStd',
headerAlign: 'center',
align: 'right',
columnLabel: 'Sub-total(RMB/Kpcs)_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 170
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2SubtotalCostQuote',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'subtotalCostQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'Sub-total(RMB/Kpcs)_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 170
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2SubPercentageStd',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'subPercentageStd',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion%_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table2SubPercentageQuote',
tableId: '5013Table2',
tableName: '报价信息表',
columnProp: 'subPercentageQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion%_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
],
subtotalCostStd:0,
subtotalCostQuote:0,
dataRmColumns:[
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3PartGroupName',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'partGroupName',
headerAlign: 'center',
align: 'left',
columnLabel: 'RM',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: 'left',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3RmCostStandard',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'rmCostStandard',
headerAlign: 'center',
align: 'right',
columnLabel: 'Cost(RMB/Kpcs)_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3RmCostQuote',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'rmCostQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'Cost(RMB/Kpcs)_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3PercentageOfRmStd',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'percentageOfRmStd',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion%_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3PercentageOfRmQuote',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'percentageOfRmQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion%_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3TotalCostStd',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'totalCostStd',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion of Total Cost%_标准',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 200
},
{
userId: this.$store.state.user.name,
functionId: 5013,
serialNumber: '5011Table3TotalCostQuote',
tableId: '5013Table3',
tableName: '报价信息表',
columnProp: 'totalCostQuote',
headerAlign: 'center',
align: 'right',
columnLabel: 'Proportion of Total Cost%_报价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 200
},
],
};
},
methods:{
handleQueryQuoteDetailReportOverall(){
let params = {
id:this.quoteDetail.id
}
queryQuoteDetailReportOverall(params).then(({data})=>{
if (data && data.code === 0){
this.dataList = data.rows;
}else {
this.$message.warning(data.msg)
}
this.queryLoading = false;
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false;
})
},
handleQueryQuoteDetailReportRM(){
let params = {
id:this.quoteDetail.id
}
queryQuoteDetailReportRM(params).then(({data})=>{
if (data && data.code === 0){
this.dataListRm = data.rows;
}else {
this.$message.warning(data.msg)
}
this.queryLoading = false;
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false;
})
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = 'Total cost(RMB/Kpcs)';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] = new Decimal(sums[index]).toFixed(6)
if (column.property ==='subtotalCostQuote'){
this.subtotalCostQuote = sums[index]
}
if (column.property ==='subtotalCostStd'){
this.subtotalCostStd = sums[index]
}
if (column.property === 'subPercentageQuote' || column.property ==='subPercentageStd'){
sums[index] = new Decimal(sums[index] * 100).toFixed(2) + '%'
}
} else {
sums[index] = 'N/A';
}
});
return sums;
}
},
watch:{
quoteDetail(newVal,oldVal){
if (newVal){
this.queryLoading = true;
this.handleQueryQuoteDetailReportOverall();
this.handleQueryQuoteDetailReportRM();
}
}
}
}
</script>
<template>
<el-row :gutter="10" v-loading="queryLoading">
<el-col :span="14">
<el-table :key="dataList.length" :data="dataList" :height="height" border show-summary :summary-method="getSummaries">
<el-table-column
v-for="(item,index) in dataColumns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<template v-if="item.columnProp === 'subPercentageQuote' || item.columnProp === 'subPercentageStd'">
<span>{{new Decimal(scope.row[item.columnProp] * 100).toFixed(2)}}%</span>
</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>
</template>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10">
<el-table :data="dataListRm" :height="height" border>
<el-table-column
v-for="(item,index) in dataRmColumns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<template v-if="item.columnProp === 'percentageOfRmQuote' || item.columnProp === 'percentageOfRmStd'">
<span>{{new Decimal(scope.row[item.columnProp] * 100).toFixed(2)}}%</span>
</template>
<template v-else-if=" item.columnProp === 'totalCostStd'">
<span v-if="!item.columnHidden">{{ new Decimal(scope.row['rmCostStandard']/ subtotalCostStd * 100).toFixed(0)}}%</span>
</template>
<template v-else-if=" item.columnProp === 'totalCostQuote'">
<span v-if="!item.columnHidden">{{ new Decimal(scope.row['rmCostQuote']/ subtotalCostQuote * 100).toFixed(0)}}%</span>
</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>
</template>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</template>
<style scoped>
</style>

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

@ -206,24 +206,6 @@ export default {
columnProp: 'actualPrice', columnProp: 'actualPrice',
headerAlign: "center", headerAlign: "center",
align: "right", align: "right",
columnLabel: '单位实际成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4QuotePrice',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'quotePrice',
headerAlign: "center",
align: "right",
columnLabel: '单位报价成本', columnLabel: '单位报价成本',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
@ -260,25 +242,7 @@ export default {
columnProp: 'actualQuotePrice', columnProp: 'actualQuotePrice',
headerAlign: "center", headerAlign: "center",
align: "right", align: "right",
columnLabel: '材料实际总成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: 'right',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table4AllQuotePrice',
tableId: "5011Table4",
tableName: "报价材料信息",
columnProp: 'allQuotePrice',
headerAlign: "center",
align: "right",
columnLabel: '报价成本总成本',
columnLabel: '材料报价总成本',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,

53
src/views/modules/quote/detail/primary/quoteDetailCost.vue

@ -55,7 +55,6 @@ export default {
this.quoteDetail.totalCost = this.quoteDetail.totalCost =
this.quoteDetail.adjustPartCost + this.quoteDetail.adjustPartCost +
this.quoteDetail.adjustBomUnYield + this.quoteDetail.adjustBomUnYield +
this.quoteDetail.adjustQuoteCost +
this.quoteDetail.adjustMachineCost + this.quoteDetail.adjustMachineCost +
this.quoteDetail.adjustFabricateCost + this.quoteDetail.adjustFabricateCost +
this.quoteDetail.adjustLabourCost + this.quoteDetail.adjustLabourCost +
@ -90,8 +89,6 @@ export default {
this.quoteDetail.adjustPartCost = data.row.unitQuotePrice; this.quoteDetail.adjustPartCost = data.row.unitQuotePrice;
this.quoteDetail.bomUnYield = data.row.actualQuotePrice; this.quoteDetail.bomUnYield = data.row.actualQuotePrice;
this.quoteDetail.adjustBomUnYield = data.row.actualQuotePrice; this.quoteDetail.adjustBomUnYield = data.row.actualQuotePrice;
this.quoteDetail.quoteCost = data.row.quoteCost;
this.quoteDetail.adjustQuoteCost = data.row.quoteCost;
this.quoteDetail.labourCost = data.row.labourCost; this.quoteDetail.labourCost = data.row.labourCost;
this.quoteDetail.adjustLabourCost = data.row.labourCost; this.quoteDetail.adjustLabourCost = data.row.labourCost;
this.quoteDetail.machineCost = data.row.machineCost; this.quoteDetail.machineCost = data.row.machineCost;
@ -126,12 +123,6 @@ export default {
} }
this.computeTotalCost(); this.computeTotalCost();
}, },
'quoteDetail.adjustQuoteCost'(newValue, oldValue){
if (newValue === undefined || newValue === null){
this.quoteDetail.adjustQuoteCost = 0;
}
this.computeTotalCost();
},
'quoteDetail.adjustMachineCost'(newValue, oldValue){ 'quoteDetail.adjustMachineCost'(newValue, oldValue){
if (newValue === undefined || newValue === null){ if (newValue === undefined || newValue === null){
this.quoteDetail.adjustMachineCost = 0; this.quoteDetail.adjustMachineCost = 0;
@ -193,7 +184,7 @@ export default {
<fieldset <fieldset
style="height:80px;margin-top: 2px;"> style="height:80px;margin-top: 2px;">
<legend>系统自动计算结果(料工费/工具)</legend> <legend>系统自动计算结果(料工费/工具)</legend>
<el-row :gutter="10" type="flex">
<el-row :gutter="10" >
<el-col :span="4"> <el-col :span="4">
<el-form-item label="材料标准成本:" prop="partCost" :show-message="false"> <el-form-item label="材料标准成本:" prop="partCost" :show-message="false">
<el-input-number style="width: 100%; " :controls="false" <el-input-number style="width: 100%; " :controls="false"
@ -201,17 +192,11 @@ export default {
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="材料实际成本:" prop="bomUnYield" :show-message="false">
<el-form-item label="材料报价成本:" prop="bomUnYield" :show-message="false">
<el-input-number style="width: 100%; " :controls="false" <el-input-number style="width: 100%; " :controls="false"
v-model="quoteDetail.bomUnYield" :precision="4" disabled/> v-model="quoteDetail.bomUnYield" :precision="4" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item label="材料报价成本:" prop="bomUnYield" :show-message="false">
<el-input-number style="width: 100%;" :controls="false"
v-model="quoteDetail.quoteCost" :precision="4" disabled/>
</el-form-item>
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="机器成本:" prop="machineCost" :show-message="false"> <el-form-item label="机器成本:" prop="machineCost" :show-message="false">
<el-input-number style="width: 100%; " :controls="false" <el-input-number style="width: 100%; " :controls="false"
@ -241,23 +226,17 @@ export default {
<fieldset <fieldset
style="height:80px;margin-top: 5px;"> style="height:80px;margin-top: 5px;">
<legend>调整后成本(料工费/工具)</legend> <legend>调整后成本(料工费/工具)</legend>
<el-row :gutter="10" type="flex">
<el-row :gutter="10" >
<el-col :span="4"> <el-col :span="4">
<el-form-item label="材料标准成本:" prop="adjustPartCost" :show-message="false"> <el-form-item label="材料标准成本:" prop="adjustPartCost" :show-message="false">
<el-input-number style="width: 100%;" :controls="false" <el-input-number style="width: 100%;" :controls="false"
v-model="quoteDetail.adjustPartCost" :disabled="quoteDetail.status === '下达'" :step="0" :precision="4" :min="0"/> v-model="quoteDetail.adjustPartCost" :disabled="quoteDetail.status === '下达'" :step="0" :precision="4" :min="0"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-form-item label="材料实际成本:" prop="adjustBomUnYield" :show-message="false">
<el-input-number style="width: 100%;" :controls="false"
v-model="quoteDetail.adjustBomUnYield" :disabled="quoteDetail.status === '下达'" :step="0" :precision="4" :min="0"/>
</el-form-item>
</el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="材料报价成本:" prop="adjustBomUnYield" :show-message="false"> <el-form-item label="材料报价成本:" prop="adjustBomUnYield" :show-message="false">
<el-input-number style="width: 100%;" :controls="false" <el-input-number style="width: 100%;" :controls="false"
v-model="quoteDetail.adjustQuoteCost" :disabled="quoteDetail.status === '下达'" :step="0" :precision="4" :min="0"/>
v-model="quoteDetail.adjustBomUnYield" :disabled="quoteDetail.status === '下达'" :step="0" :precision="4" :min="0"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@ -289,7 +268,7 @@ export default {
<fieldset <fieldset
style="height:80px;margin-top: 5px;"> style="height:80px;margin-top: 5px;">
<legend>其他成本</legend> <legend>其他成本</legend>
<el-row :gutter="10" type="flex">
<el-row :gutter="10" >
<el-col :span="4"> <el-col :span="4">
<el-form-item label="管理成本:" prop="manageCost" :show-message="false"> <el-form-item label="管理成本:" prop="manageCost" :show-message="false">
<el-input-number style="width: 100%;" :controls="false" <el-input-number style="width: 100%;" :controls="false"
@ -320,15 +299,11 @@ export default {
v-model="quoteDetail.totalCost" :step="0" :precision="4" :min="0" disabled/> v-model="quoteDetail.totalCost" :step="0" :precision="4" :min="0" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
</el-row> </el-row>
</fieldset> </fieldset>
<fieldset style="height:80px;margin-top: 5px;"> <fieldset style="height:80px;margin-top: 5px;">
<legend>利润</legend> <legend>利润</legend>
<el-row :gutter="10" type="flex">
<el-row :gutter="10" >
<el-col :span="4"> <el-col :span="4">
<el-form-item label="利润率%:" prop="profitRate" :show-message="false"> <el-form-item label="利润率%:" prop="profitRate" :show-message="false">
<el-input-number style="width: 100%;" :controls="false" <el-input-number style="width: 100%;" :controls="false"
@ -341,21 +316,11 @@ export default {
v-model="quoteDetail.profitAmount" :step="0" :precision="4" :min="0" disabled/> v-model="quoteDetail.profitAmount" :step="0" :precision="4" :min="0" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
</el-row> </el-row>
</fieldset> </fieldset>
<fieldset style="height:80px;margin-top: 5px;"> <fieldset style="height:80px;margin-top: 5px;">
<legend>最终价格</legend> <legend>最终价格</legend>
<el-row :gutter="10" type="flex">
<el-row :gutter="10" >
<el-col :span="4"> <el-col :span="4">
<el-form-item label="未税总额:" prop="totalPrice" :show-message="false"> <el-form-item label="未税总额:" prop="totalPrice" :show-message="false">
<el-input-number style="width: 100%;" :controls="false" <el-input-number style="width: 100%;" :controls="false"
@ -386,10 +351,6 @@ export default {
v-model="quoteDetail.taxUnitPrice" :step="0" :precision="6" :min="0" disabled/> v-model="quoteDetail.taxUnitPrice" :step="0" :precision="6" :min="0" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
</el-row> </el-row>
</fieldset> </fieldset>
</el-form> </el-form>

36
src/views/modules/quote/detail/quoteDetail.vue

@ -152,24 +152,6 @@ export default {
columnProp: 'bomUnYield', columnProp: 'bomUnYield',
headerAlign: 'center', headerAlign: 'center',
align: 'right', align: 'right',
columnLabel: '计算后材料实际成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table2QuoteCost',
tableId: '5011Table2',
tableName: '报价详情信息表',
columnProp: 'quoteCost',
headerAlign: 'center',
align: 'right',
columnLabel: '计算后材料报价成本', columnLabel: '计算后材料报价成本',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
@ -277,24 +259,6 @@ export default {
columnProp: 'adjustBomUnYield', columnProp: 'adjustBomUnYield',
headerAlign: 'center', headerAlign: 'center',
align: 'right', align: 'right',
columnLabel: '调整后材料实际成本',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 130
},
{
userId: this.$store.state.user.name,
functionId: 5011,
serialNumber: '5011Table2AdjustQuoteCost',
tableId: '5011Table2',
tableName: '报价详情信息表',
columnProp: 'adjustQuoteCost',
headerAlign: 'center',
align: 'right',
columnLabel: '调整后材料报价成本', columnLabel: '调整后材料报价成本',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,

10
src/views/modules/quote/quoteDetailReport.vue

@ -3,13 +3,15 @@
import {getSiteAndBuByUserName} from "../../../api/qc/qc"; import {getSiteAndBuByUserName} from "../../../api/qc/qc";
import {queryQuoteDetailReport} from "../../../api/quote/quoteDetail"; import {queryQuoteDetailReport} from "../../../api/quote/quoteDetail";
import {getItemListByInquiryPartAndCodeNo} from "../../../api/inquiry/inquiryDetail"; import {getItemListByInquiryPartAndCodeNo} from "../../../api/inquiry/inquiryDetail";
import BreakdownCost from "./detail/breakdownCost.vue";
export default { export default {
name: "quoteDetailReport", name: "quoteDetailReport",
components: {BreakdownCost},
props:{ props:{
height:{ height:{
type:[String,Number], type:[String,Number],
default: "40vh"
default: "38vh"
} }
}, },
data(){ data(){
@ -582,9 +584,9 @@ export default {
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane name="breakdown" label="Cost Breakdown">-->
<!-- </el-tab-pane>-->
<el-tab-pane name="breakdown" label="Cost Breakdown">
<breakdown-cost :quote-detail="currentRow" height="36vh"></breakdown-cost>
</el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>

Loading…
Cancel
Save