Browse Source

20240106

java8
qiezi 1 year ago
parent
commit
69c1956d2d
  1. 5
      src/api/quote/quoteDetailCalculation.js
  2. 176
      src/views/modules/quote/detail/primary/quoteDetailCalculation.vue
  3. 5
      src/views/modules/quote/detail/quoteDetail.vue
  4. 7
      src/views/modules/quote/detail/quoteGroupDetail.vue

5
src/api/quote/quoteDetailCalculation.js

@ -0,0 +1,5 @@
import {createAPI} from "../../utils/httpRequest";
export const queryQuoteDetailCalculation = (data) => createAPI(`/quote/detail/calculation`,'post',data)
export const updateQuoteDetailCalculation = (data) => createAPI(`/quote/detail/calculation/update`,'post',data)

176
src/views/modules/quote/detail/primary/quoteDetailCalculation.vue

@ -0,0 +1,176 @@
<script>
import {
queryQuoteDetailCalculation,
updateQuoteDetailCalculation
} from "../../../../../api/quote/quoteDetailCalculation";
export default {
name: "quoteDetailCalculation",
props: {
quoteDetail: {
type: Object,
required: true
},
},
model: {
prop: "quoteDetail",
event: "update"
},
data(){
return{
calculation:{
},
queryLoading:false
}
},
methods:{
handleQueryQuoteDetailCalculation(){
let params = {
quoteDetailId:this.quoteDetail.id,
}
this.queryLoading = true
queryQuoteDetailCalculation(params).then(({data})=>{
if (data && data.code === 0){
this.calculation = data.row
}else {
this.$message.error(data.msg)
}
this.queryLoading = false
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false
})
},
handleUpdateQuoteDetailCalculation(){
this.$alert('确认删除该条报价明细吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
let params = {
...this.calculation,
}
updateQuoteDetailCalculation(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.handleQueryQuoteDetailCalculation()
}else {
this.$message.error(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
})
},
},
created() {
if (this.quoteDetail && this.quoteDetail.id){
this.handleQueryQuoteDetailCalculation();
}
}
}
</script>
<template>
<el-form :model="calculation" class="calculation" label-position="top" >
<el-form-item label="" style="margin-top: 5px">
<el-button type="primary" @click="handleUpdateQuoteDetailCalculation">应用</el-button>
</el-form-item>
<el-row :gutter="10">
<el-col :span="4">
&nbsp;
</el-col>
<el-col :span="3">
2020 Rate
</el-col>
<el-col :span="3">
Rate of Paris bonding
</el-col>
<el-col :span="3">
Rate of CLS
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
DL
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.laborBackendRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.laborParisRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.laborPrintRate"></el-input-number>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
VOH
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.manuBackendRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.manuParisRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.manuPrintRate"></el-input-number>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
FOH
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.machBackendRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.machParisRate"></el-input-number>
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.machPrintRate"></el-input-number>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
DL/Lam.+print+etch+slit
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.laborFrontRate"></el-input-number>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
VOH/Lam.+print+etch+slit
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.manuFrontRate"></el-input-number>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
FOH/Lam.+print+etch+slit
</el-col>
<el-col :span="3">
<el-input-number style="width: 100%" :controls="false" :min="0" v-model="calculation.machFrontRate"></el-input-number>
</el-col>
</el-row>
</el-form>
</template>
<style scoped>
.calculation /deep/ .el-row .el-col{
border-right: 1px solid #717171;
border-bottom: 1px solid #717171;
}
.calculation /deep/ .el-row .el-col:nth-child(4n+1){
}
.calculation /deep/ .el-row .el-col:nth-child(4n){
border-right: none;
}
</style>

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

@ -16,10 +16,12 @@ import QuoteDetailOther from "./primary/quoteDetailOther.vue";
import PartTable from "../../../../components/selector/table/partTable.vue";
import {handleQueryPart} from "../../../../api/part/partInformation";
import {updateColumnSize} from "../../../../api/table";
import QuoteDetailCalculation from "./primary/quoteDetailCalculation.vue";
export default {
name: "quoteDetail",
components: {
QuoteDetailCalculation,
PartTable,
QuoteDetailOther, QuoteDetailRouting, QuoteDetailBom, QuoteDetailTool, QuoteDetailCost, ProjectPartTable},
props:{
@ -815,6 +817,9 @@ export default {
<el-tab-pane label="成本&价格" name="cost">
<quote-detail-cost v-if="saveVisible" ref="cost" v-model:quoteDetail="saveQuoteDetail"></quote-detail-cost>
</el-tab-pane>
<el-tab-pane label="2020 Rate" name="rate" v-if="saveQuoteDetail.costModel === '2020'">
<quote-detail-calculation v-model:quote-detail="saveQuoteDetail"></quote-detail-calculation>
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="saveQuoteDetail.status === '草稿'" :loading="saveLoading" @click="handleSaveQuoteDetailClick"> </el-button>

7
src/views/modules/quote/detail/quoteGroupDetail.vue

@ -16,10 +16,12 @@ import {
saveQuoteGroupDetail, updateCurrentQuoteGroupDetailItemNo
} from "../../../../api/quote/quoteGroupDetail";
import QuoteDetail from "./quoteDetail.vue";
import QuoteDetailCalculation from "./primary/quoteDetailCalculation.vue";
export default {
name: "quoteGroupDetail",
components: {
QuoteDetailCalculation,
QuoteDetail,
PartTable,
QuoteDetailOther, QuoteDetailRouting, QuoteDetailBom, QuoteDetailTool, QuoteDetailCost, ProjectPartTable},
@ -745,6 +747,9 @@ export default {
<el-tab-pane label="成本&价格" name="cost">
<quote-detail-cost v-if="saveVisible" ref="cost" v-model:quoteDetail="saveQuoteDetail"></quote-detail-cost>
</el-tab-pane>
<el-tab-pane label="2020 Rate" name="rate" v-if="saveQuoteDetail.costModel === '2020'">
<quote-detail-calculation v-model:quote-detail="saveQuoteDetail"></quote-detail-calculation>
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="saveQuoteDetail.status === '草稿'" :loading="saveLoading" @click="handleSaveQuoteDetailClick"> </el-button>
@ -753,7 +758,7 @@ export default {
</el-dialog>
<el-dialog title="报价明细" :visible.sync="drawerVisible" top="10vh" width="1200px" append-to-body :close-on-click-modal="false">
<el-dialog title="报价明细" v-drag :visible.sync="drawerVisible" top="10vh" width="1200px" append-to-body :close-on-click-modal="false">
<el-table v-loading="queryLoading"
@row-click="quoteGroupDetailRowClick" :row-style="rowStyle" border :data="dataList" style="width: 100%;margin-top: 5px;" :height="'30vh'">
<el-table-column type="index" width="55" align="center" label="序号"></el-table-column>

Loading…
Cancel
Save