10 changed files with 631 additions and 5263 deletions
-
5src/api/quotation/quote.js
-
578src/views/modules/quotation/index.vue
-
565src/views/modules/quotation/inquiry/inquiryQuoteDetail.vue
-
5src/views/modules/quotation/requestForQuote.vue
-
80src/views/modules/quotation/sellForQuotation.vue
-
3892src/views/modules/quotation/sellForQuotation/quotationDetail.vue
-
52src/views/modules/quotation/sellForQuotation/quotationDetail/quoteBomInfo.vue
-
23src/views/modules/quotation/sellForQuotation/quotationDetail/quoteCostPrice.vue
-
10src/views/modules/quotation/sellForQuotation/quoteDetail.vue
-
684src/views/modules/quotation/sellForQuotation/quoteDetailInfo.vue
@ -1,578 +0,0 @@ |
|||
<script> |
|||
import {getQuotePage} from "../../../api/quotation/quote"; |
|||
import QuoteDetail from "./sellForQuotation/quoteDetail.vue"; |
|||
import quotationCustomerContact from "./sellForQuotation/quotationCustomerContact.vue"; |
|||
import quotationExamineAndApprove from "./sellForQuotation/quotationExamineAndApprove.vue"; |
|||
import {getCustomerInformation, getProjectInformation} from "../../../api/quotation/quotationInformation"; |
|||
import ProjectInfo from "./sellForQuotation/projectInfo.vue"; |
|||
import CustomerInfo from "./sellForQuotation/customerInfo.vue"; |
|||
import {getCustomerContactData} from "../../../api/project/project"; |
|||
import CustomerContact from "./sellForQuotation/customerContact.vue"; |
|||
import QuoteDetailInfo from "./sellForQuotation/quoteDetailInfo.vue"; |
|||
import {getQuoteDetailList} from "../../../api/quotation/quoteDetail"; |
|||
|
|||
const quote = { |
|||
customerNo: "", |
|||
customerName: "", |
|||
tracker: "", |
|||
trackerName: "", |
|||
quotationNo: "", |
|||
customerInquiryNo: "", |
|||
internalInquiryNo: "", |
|||
projectId: "", |
|||
projectName: "", |
|||
quoter:"", |
|||
quoterName:"", |
|||
quotationStatus:"", |
|||
} |
|||
export default { |
|||
name: "quotationManagement", |
|||
components: { |
|||
QuoteDetailInfo, |
|||
CustomerContact, |
|||
CustomerInfo, |
|||
ProjectInfo, |
|||
quotationExamineAndApprove, |
|||
quotationCustomerContact, |
|||
QuoteDetail, |
|||
}, |
|||
props:{ |
|||
height:{ |
|||
type:Number, |
|||
default:300, |
|||
}, |
|||
}, |
|||
data(){ |
|||
return { |
|||
quoteSearch:{ |
|||
...quote, |
|||
startDate:"", |
|||
endDate:"", |
|||
}, |
|||
no: 0, |
|||
size:50, |
|||
total:0, |
|||
quotePageLoading:false, |
|||
quoteList:[], |
|||
currentQuote:{ |
|||
...quote, |
|||
}, |
|||
quoteSave:{ |
|||
...quote, |
|||
}, |
|||
|
|||
|
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1QuotationNo', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'quotationNo', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '报价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1QuotationDate', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'quotationDate', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '报价日期', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1CustomerNo', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'customerNo', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '客户编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1CustomerName', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'customerName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '客户名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, { |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1ProjectId', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'projectId', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '项目编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, { |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1ProjectName', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'projectName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '项目名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1QuoterName', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'quoterName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '报价专员', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1TrackerName', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'trackerName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '采购专员', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1Currency', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'currency', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '货币', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1QuotationStatus', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'quotationStatus', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '状态', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1CustomerInquiryNo', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'customerInquiryNo', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '客户报价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102004, |
|||
serialNumber: '102004Table1InternalInquiryNo', |
|||
tableId: '102004Table1', |
|||
tableName: '报价信息表', |
|||
columnProp: 'internalInquiryNo', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '内部询价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
], |
|||
activeTabName:"quote_detail", |
|||
|
|||
quoteDetailList:[], |
|||
projectInfo:{}, |
|||
customerInfo:{}, |
|||
customerContactList:[], |
|||
} |
|||
}, |
|||
watch:{ |
|||
currentQuote(newVal,oldVal){ |
|||
// 查询明细 |
|||
if (this.currentQuote && this.currentQuote.quotationHeaderId){ |
|||
this.getQuoteDetailList();// 报价明细列表 |
|||
this.getQuoteProjectInfo();// 查询项目信息 |
|||
this.getCustomerInformation();// 查询客户信息 |
|||
this.getCustomerContactData();// 查询客户联系人信息 |
|||
} |
|||
} |
|||
}, |
|||
methods:{ |
|||
getQuotePage(){ |
|||
let params = { |
|||
...this.quoteSearch, |
|||
site:this.$store.state.user.site, |
|||
} |
|||
this.quotePageLoading = true; |
|||
getQuotePage(params,this.no,this.size).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.quoteList = data.rows; |
|||
this.total = data.total; |
|||
if (this.total > 0){ |
|||
this.currentQuote = this.quoteList[0]; |
|||
} |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
this.quotePageLoading = false; |
|||
}).catch((error)=>{ |
|||
this.$message.error(error); |
|||
this.quotePageLoading = false; |
|||
}) |
|||
}, |
|||
rowStyle({row}){ |
|||
if (row.quotationHeaderId === this.currentQuote.quotationHeaderId) { |
|||
return {'background-color': '#E8F7F6'} |
|||
} |
|||
}, |
|||
rowClick(row){ |
|||
this.currentQuote = {...row}; |
|||
}, |
|||
changeQuoteSize(val){ |
|||
this.size = val; |
|||
this.getQuotePage(); |
|||
}, |
|||
changeQuoteNo(val) { |
|||
this.no = val; |
|||
this.getQuotePage(); |
|||
}, |
|||
getQuoteProjectInfo(){ |
|||
let params = { |
|||
site:this.currentQuote.site, |
|||
projectId:this.currentQuote.projectId, |
|||
} |
|||
getProjectInformation(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
if (data.rows && data.rows.length > 0){ |
|||
this.projectInfo = data.rows[0]; |
|||
}else { |
|||
this.projectInfo = {}; |
|||
} |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error); |
|||
}) |
|||
}, |
|||
getCustomerInformation(){ |
|||
let params = { |
|||
site:this.currentQuote.site, |
|||
customerNo:this.currentQuote.customerNo, |
|||
} |
|||
getCustomerInformation(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
if (data.rows && data.rows.length > 0){ |
|||
this.customerInfo = data.rows[0]; |
|||
}else { |
|||
this.customerInfo = {}; |
|||
} |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error); |
|||
}) |
|||
}, |
|||
getCustomerContactData(){ |
|||
let params = { |
|||
site:this.currentQuote.site, |
|||
customerId:this.currentQuote.customerNo, |
|||
projectId:this.currentQuote.projectId, |
|||
} |
|||
getCustomerContactData(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.customerContactList = data.rows; |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error); |
|||
}) |
|||
}, |
|||
getQuoteDetailList(){ |
|||
let params = { |
|||
quotationHeaderId:this.currentQuote.quotationHeaderId, |
|||
} |
|||
getQuoteDetailList(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.quoteDetailList = data.rows; |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error); |
|||
}) |
|||
} |
|||
}, |
|||
created() { |
|||
this.getQuotePage(); |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div> |
|||
<div style="width: 1200px"> |
|||
<el-form label-position="top" :model="quoteSearch"> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="3"> |
|||
<el-form-item label="客户编码"> |
|||
<el-input v-model="quoteSearch.customerNo" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="客户名称"> |
|||
<el-input v-model="quoteSearch.customerName" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="采购专员"> |
|||
<el-input v-model="quoteSearch.trackerName" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="报价单号"> |
|||
<el-input v-model="quoteSearch.quotationNo" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="客户询价单号"> |
|||
<el-input v-model="quoteSearch.customerInquiryNo" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="内部询价单号"> |
|||
<el-input v-model="quoteSearch.internalInquiryNo" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="3"> |
|||
<el-form-item label="项目编码"> |
|||
<el-input v-model="quoteSearch.projectId" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="项目名称"> |
|||
<el-input v-model="quoteSearch.projectName" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="报价专员"> |
|||
<el-input v-model="quoteSearch.quoterName" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label="状态"> |
|||
<el-select v-model="quoteSearch.quotationStatus"> |
|||
<el-option label="全部" value=""></el-option> |
|||
<el-option label="草稿" value="草稿"></el-option> |
|||
<el-option label="下达" value="下达"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-row> |
|||
<el-col :span="11"> |
|||
<el-form-item label="报价日期"> |
|||
<el-date-picker |
|||
value-format="yyyy-MM-dd" |
|||
v-model="quoteSearch.startDate" |
|||
style="width: 100%" |
|||
type="date" |
|||
placeholder=" "> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="2"> |
|||
<el-form-item label=" "> |
|||
<div style="text-align: center;"><i class="el-icon-right"></i></div> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="11"> |
|||
<el-form-item label=" "> |
|||
<el-date-picker |
|||
value-format="yyyy-MM-dd" |
|||
style="width: 100%" |
|||
v-model="quoteSearch.endDate" |
|||
type="date" |
|||
placeholder=" "> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item label=" "> |
|||
<el-button plain type="primary" @click="getQuotePage">查 询</el-button> |
|||
<el-button type="primary" >新 增</el-button> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
</div> |
|||
<el-table :data="quoteList" v-loading="quotePageLoading" @row-click="rowClick" border :height="height" :row-style="rowStyle"> |
|||
<el-table-column label="操作" align="center" fixed="right" width="160"> |
|||
<template slot-scope="scope"> |
|||
<el-link >下达</el-link> |
|||
<el-link >编辑</el-link> |
|||
<el-link >删除</el-link> |
|||
<el-link >重新报价</el-link> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :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"> |
|||
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}{{index === 0 ? ("-" + scope.row['versionCode']) : ''}}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|||
style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination style="margin-top: 5px" |
|||
@size-change="changeQuoteSize" |
|||
@current-change="changeQuoteNo" |
|||
:current-page="no" |
|||
:page-sizes="[50, 100, 200, 500]" |
|||
:page-size="size" |
|||
:total="total" |
|||
layout="total,sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
</div> |
|||
<el-tabs v-model="activeTabName" |
|||
style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);border: 2px;min-height: 420px;margin-top: 5px;"> |
|||
<el-tab-pane label="报价明细" name="quote_detail"> |
|||
<quote-detail :header="currentQuote"></quote-detail> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="报价明细" name="quote_detail_info"> |
|||
<quote-detail-info :height="330" :quote="currentQuote" :data-list="quoteDetailList"></quote-detail-info> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="报价审批" name="quotation_examine_and_approve"> |
|||
<quotation-examine-and-approve></quotation-examine-and-approve> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="项目信息" name="project_info"> |
|||
<project-info :project="projectInfo"></project-info> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="客户信息" name="customer_info"> |
|||
<customer-info :customer="customerInfo"></customer-info> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="客户联系人" name="customer_contact"> |
|||
<customer-contact :data-list="customerContactList" :height="300"></customer-contact> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
@ -0,0 +1,565 @@ |
|||
<script> |
|||
import {queryQuoteByInquiryNo} from "../../../../api/quotation/quote"; |
|||
|
|||
export default { |
|||
name: "inquiryQuoteDetail", |
|||
props:{ |
|||
inquiryNo:{ |
|||
type: String, |
|||
required: true |
|||
}, |
|||
site:{ |
|||
type: String, |
|||
required: true |
|||
}, |
|||
height:{ |
|||
type: [String,Number], |
|||
default:"47vh", |
|||
} |
|||
}, |
|||
data(){ |
|||
return{ |
|||
queryLoading:false, |
|||
dataList:[], |
|||
columns:[ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10QuotationNo', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '报价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10QuotationDate', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationDate', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '报价日期', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ProductNo', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'productNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '产品编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ProductDesc', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'productDesc', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '产品名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10QuotationDetailQuantity', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationDetailQuantity', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '报价数量', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ComputePartCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computePartCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后材料成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ComputeMachineCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeMachineCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后机器成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ComputeLabourCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeLabourCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后人工成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ComputeFabricateCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeFabricateCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后制造费用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10ComputeToolCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeToolCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后工具成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10AdjustPartCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustPartCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后材料成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10AdjustMachineCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustMachineCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后机器成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10AdjustLabourCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustLabourCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后人工成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10AdjustFabricateCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustFabricateCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后制造费用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10AdjustToolCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustToolCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后工具成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10DetailOtherCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailOtherCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '其他成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10DetailManageCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailManageCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '管理成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10DetailTotalCost', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailTotalCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '总成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10DetailProfitRate', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailProfitRate', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '利润率%', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10DetailProfitAmount', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailProfitAmount', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '利润额', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10FinalUntaxedPrice', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'finalUntaxedPrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '未税单价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10TaxRate', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'taxRate', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '税率%', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10FinalTaxedPrice', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'finalTaxedPrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '含税单价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10SystemComputePrice', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'systemComputePrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '含税总价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10QuotationDetailStatus', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationDetailStatus', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '状态', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10Remark', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'remark', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '备注', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102001, |
|||
serialNumber: '102001Table10InternalInquiryNo', |
|||
tableId: '102001Table10', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'internalInquiryNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '询价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
], |
|||
}; |
|||
}, |
|||
methods:{ |
|||
handleQuery(){ |
|||
let params = { |
|||
internalInquiryNo: this.inquiryNo, |
|||
site: this.site |
|||
} |
|||
this.queryLoading = true; |
|||
queryQuoteByInquiryNo(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; |
|||
}) |
|||
}, |
|||
handleClickDetail(row){ |
|||
this.$router.push({ |
|||
name: 'quotation-sellForQuotation', |
|||
params:{ |
|||
quotationHeaderId:row.quotationHeaderId, |
|||
from:'inquiry' |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
watch:{ |
|||
inquiryNo(newVal, oldVal){ |
|||
this.handleQuery(); |
|||
}, |
|||
site(newVal, oldVal){ |
|||
this.handleQuery(); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<el-table :height="height" :data="dataList" border v-loading="queryLoading" style="margin-top: 5px"> |
|||
<el-table-column label="操作" min-width="80px" fixed="left" align="center"> |
|||
<template slot-scope="scope"> |
|||
<a @click="handleClickDetail(scope.row)">详情</a> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
v-for="(item,index) in columns" :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" > |
|||
<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> |
|||
</el-table-column> |
|||
</el-table> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
3892
src/views/modules/quotation/sellForQuotation/quotationDetail.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,52 +0,0 @@ |
|||
<script> |
|||
export default { |
|||
name: "quoteBomInfo", |
|||
props:{ |
|||
quoteDetail:{ |
|||
type:Object, |
|||
default:()=>{} |
|||
}, |
|||
dataList:{ |
|||
type:Array, |
|||
default:()=>[] |
|||
}, |
|||
height:{ |
|||
type:Number, |
|||
default:0 |
|||
} |
|||
}, |
|||
data(){ |
|||
return{ |
|||
bomList:[], |
|||
showAll:false |
|||
} |
|||
}, |
|||
methods:{}, |
|||
watch:{ |
|||
showAll(newVal,oldVal){ |
|||
if (newVal === true){ |
|||
|
|||
}else { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div> |
|||
<div> |
|||
<el-link style="cursor:pointer;margin-right: 10px">切换版本</el-link> |
|||
<el-checkbox v-model="showAll">全级BOM结构</el-checkbox> |
|||
</div> |
|||
<div style="display: flex"> |
|||
<div style="width: 25%">1</div> |
|||
<div style="width: 75%">2</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
@ -1,23 +0,0 @@ |
|||
<script> |
|||
export default { |
|||
name: "quoteCostPrice", |
|||
props:{ |
|||
quoteDetail:{ |
|||
type:Object, |
|||
default:()=>{} |
|||
}, |
|||
height:{ |
|||
type:Number, |
|||
default:0 |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div></div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
@ -1,684 +0,0 @@ |
|||
<script> |
|||
|
|||
import PropertyTemplates from "./quotationDetail/propertyTemplates.vue"; |
|||
import CostPrice from "./quotationDetail/costPrice.vue"; |
|||
import BillOfMateriel from "./quotationDetail/billOfMateriel.vue"; |
|||
import ToolQuotation from "./quotationDetail/toolQuotation.vue"; |
|||
import QuoteRouting from "./quotationDetail/quoteRouting.vue"; |
|||
import QuoteOtherCost from "./quotationDetail/quoteOtherCost.vue"; |
|||
import {getQuotePropertiesBaseList, getQuotePropertiesList} from "../../../../api/quotation/quoteProperties"; |
|||
import QuoteBomInfo from "./quotationDetail/quoteBomInfo.vue"; |
|||
|
|||
const quoteDetail = { |
|||
quotationDetailId:undefined, |
|||
quotationHeaderId:undefined, |
|||
productNo:undefined, |
|||
productDesc:undefined, |
|||
internalInquiryNo:undefined, |
|||
quotationDetailQuantity:undefined, |
|||
quotationDetailCount:undefined, |
|||
quotationDetailStatus:undefined, |
|||
computePartCost:undefined, |
|||
computeLabourCost:undefined, |
|||
computeMachineCost:undefined, |
|||
computeFabricateCost:undefined, |
|||
computeToolCost:undefined, |
|||
adjustPartCost:undefined, |
|||
adjustLabourCost:undefined, |
|||
adjustFabricateCost:undefined, |
|||
adjustToolCost:undefined, |
|||
adjustMachineCost:undefined, |
|||
detailOtherCost:undefined, |
|||
detailManageCost:undefined, |
|||
detailTotalCost:undefined, |
|||
detailProfitRate:undefined, |
|||
detailProfitAmount:undefined, |
|||
systemComputeAmount:undefined, |
|||
systemComputePrice:undefined, |
|||
finalUntaxedPrice:undefined, |
|||
finalTaxedPrice:undefined, |
|||
taxRate:13, |
|||
remark:undefined, |
|||
active:undefined, |
|||
} |
|||
export default { |
|||
name: "quoteDetailInfo", |
|||
components: {QuoteBomInfo, QuoteOtherCost, QuoteRouting, ToolQuotation, BillOfMateriel, CostPrice, PropertyTemplates}, |
|||
props:{ |
|||
quote:{ |
|||
type:Object, |
|||
default:()=>{}, |
|||
}, |
|||
height:{ |
|||
type:Number, |
|||
default:300, |
|||
}, |
|||
dataList:{ |
|||
type:Array, |
|||
default:()=>[], |
|||
} |
|||
}, |
|||
data(){ |
|||
return{ |
|||
|
|||
|
|||
saveQuoteDetail:{ |
|||
...quoteDetail, |
|||
}, |
|||
index:'', |
|||
saveVisible:false, |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ProductNo', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'productNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '产品编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ProductDesc', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'productDesc', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '产品名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2QuotationDetailQuantity', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationDetailQuantity', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '报价数量', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ComputePartCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computePartCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后材料成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ComputeMachineCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeMachineCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后机器成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ComputeLabourCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeLabourCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后人工成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ComputeFabricateCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeFabricateCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后制造费用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2ComputeToolCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'computeToolCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '计算后工具成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2AdjustPartCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustPartCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后材料成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2AdjustMachineCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustMachineCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后机器成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2AdjustLabourCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustLabourCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后人工成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2AdjustFabricateCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustFabricateCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后制造费用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2AdjustToolCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'adjustToolCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '调整后工具成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2DetailOtherCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailOtherCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '其他成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2DetailManageCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailManageCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '管理成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2DetailTotalCost', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailTotalCost', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '总成本', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2DetailProfitRate', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailProfitRate', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '利润率%', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2DetailProfitAmount', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'detailProfitAmount', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '利润额', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2FinalUntaxedPrice', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'finalUntaxedPrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '未税单价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2TaxRate', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'taxRate', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '税率%', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2FinalTaxedPrice', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'finalTaxedPrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '含税单价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2SystemComputePrice', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'systemComputePrice', |
|||
headerAlign: 'center', |
|||
align: 'right', |
|||
columnLabel: '含税总价', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2QuotationDetailStatus', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'quotationDetailStatus', |
|||
headerAlign: 'center', |
|||
align: 'center', |
|||
columnLabel: '状态', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2Remark', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'remark', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '备注', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 102005, |
|||
serialNumber: '102005Table2InternalInquiryNo', |
|||
tableId: '102005Table2', |
|||
tableName: '报价详情信息表', |
|||
columnProp: 'internalInquiryNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '询价单号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
], |
|||
fullscreen: false, |
|||
activeName:"bom", |
|||
|
|||
bomTreeList:[], |
|||
|
|||
quoteOtherCostList:[], |
|||
quotePropertyList:[], |
|||
} |
|||
}, |
|||
methods:{ |
|||
handleUpdate(row,index){ |
|||
index = index+1 |
|||
this.saveQuoteDetail = {...row} |
|||
if (index < 10){ |
|||
this.index = "00"+index; |
|||
}else if (index%10 <= 10){ |
|||
this.index = "0"+index; |
|||
}else if (index%100 <= 10){ |
|||
this.index = index |
|||
} |
|||
this.saveVisible = true |
|||
}, |
|||
closeSaveDialog(){ |
|||
this.activeName = "bom"; |
|||
}, |
|||
handleQuoteOtherCostRefresh(val){ |
|||
let params = { |
|||
itemNo:val.itemNo, |
|||
itemDesc:val.itemDesc, |
|||
site:this.saveQuoteDetail.site, |
|||
quotationDetailId: this.saveQuoteDetail.quotationDetailId, |
|||
} |
|||
getQuotePropertiesBaseList(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.quoteOtherCostList = data.rows1; |
|||
this.quotePropertyList = data.rows2; |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
}, |
|||
getQuotePropertiesList(){ |
|||
let params = { |
|||
site:this.saveQuoteDetail.site, |
|||
quotationDetailId: this.saveQuoteDetail.quotationDetailId, |
|||
} |
|||
getQuotePropertiesList(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.quoteOtherCostList = data.rows; |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
} |
|||
}, |
|||
watch:{ |
|||
saveVisible(newVal,oldVal){ |
|||
if (newVal === true){ |
|||
this.getQuotePropertiesList(); |
|||
}else { |
|||
this.quoteOtherCostList = []; |
|||
this.quotePropertyList = []; |
|||
this.bomTreeList = []; |
|||
} |
|||
} |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div> |
|||
<div style="margin-bottom: 10px;padding-left: 10px"> |
|||
<el-button type="primary" >新增</el-button> |
|||
</div> |
|||
<el-table :data="dataList" |
|||
:height="height" border |
|||
:header-cell-style="{background:'rgba(23,179,163)',color:'#fff'}"> |
|||
<el-table-column |
|||
label="操作" |
|||
fixed="right" |
|||
width="120" align="center"> |
|||
<template slot-scope="{row,$index}"> |
|||
<el-link v-if="row.quotationDetailStatus !== '下达'">下达</el-link> |
|||
<el-link @click="handleUpdate(row,$index)">编辑</el-link> |
|||
<el-link >删除</el-link> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
header-align="center" |
|||
label="序号" |
|||
width="55" |
|||
align="center" |
|||
type="index"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :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" > |
|||
<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> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
|
|||
<el-dialog v-drag :fullscreen="fullscreen" :visible.sync="saveVisible" |
|||
width="1200px" top="10vh" :close-on-click-modal="false" @close="closeSaveDialog"> |
|||
<div slot="title" class="medium"> |
|||
<div> |
|||
<span class="el-dialog__title">报价单号 {{this.quote.quotationNo+"-"+this.quote.versionCode+"-"+index}}</span> |
|||
<span style="float: right;margin-right: 30px;cursor:pointer;" @click="fullscreen = !fullscreen"> |
|||
<svg v-if="!fullscreen" t="1710144122404" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4774" width="16" height="16"><path d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="#8a8a8a" p-id="4775"></path></svg> |
|||
<svg v-else t="1710143735808" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4603" width="16" height="16"><path d="M354.133333 682.666667H256v-42.666667h170.666667v170.666667H384v-98.133334L243.2 853.333333l-29.866667-29.866666L354.133333 682.666667z m358.4 0l140.8 140.8-29.866666 29.866666-140.8-140.8V810.666667h-42.666667v-170.666667h170.666667v42.666667h-98.133334zM354.133333 384L213.333333 243.2l29.866667-29.866667L384 354.133333V256h42.666667v170.666667H256V384h98.133333z m358.4 0H810.666667v42.666667h-170.666667V256h42.666667v98.133333L823.466667 213.333333l29.866666 29.866667L712.533333 384z" fill="#444444" p-id="4604"></path></svg> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
<div style="width: 600px;margin-top: 5px"> |
|||
<el-form :model="saveQuoteDetail" label-position="top"> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="6"> |
|||
<el-form-item label="产品编码" prop="productNo"> |
|||
<el-input clearable disabled v-model="saveQuoteDetail.productNo"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="10"> |
|||
<el-form-item label="产品名称" prop="productDesc"> |
|||
<el-input clearable disabled v-model="saveQuoteDetail.productDesc"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label="报价数量" prop="quotationDetailQuantity"> |
|||
<el-input-number disabled :min="1" v-model="saveQuoteDetail.quotationDetailQuantity" :controls="false"></el-input-number> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="备注"> |
|||
<el-input type="textarea" resize="none" disabled v-model="saveQuoteDetail.remark" :autosize="{minRows: 3, maxRows: 3}"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
</div> |
|||
<el-tabs v-model="activeName" :style="{height:`${fullscreen?740:500}px`}"> |
|||
<el-tab-pane name="bom" label="材料"> |
|||
<quote-bom-info :height="fullscreen?660:420" :quote-detail="saveQuoteDetail" :data-list="bomTreeList"></quote-bom-info> |
|||
</el-tab-pane> |
|||
<el-tab-pane name="routing" label="工艺"></el-tab-pane> |
|||
<el-tab-pane name="tool" label="工具"></el-tab-pane> |
|||
<el-tab-pane name="property" label="其他成本"> |
|||
<quote-other-cost @refresh="handleQuoteOtherCostRefresh" :height="fullscreen?660:420" v-if="saveVisible" :quote-detail="saveQuoteDetail" :search-data-list="quotePropertyList" :data-list="quoteOtherCostList"></quote-other-cost> |
|||
</el-tab-pane> |
|||
<el-tab-pane name="cost" label="成本&价格"></el-tab-pane> |
|||
</el-tabs> |
|||
<div slot="footer" style="padding-top: 10px"> |
|||
<el-button type="primary">确 定</el-button> |
|||
<el-button @click=" saveVisible= false">取 消</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
/deep/ .el-form-item--medium .el-form-item__content{ |
|||
height: auto; |
|||
line-height: 1.5; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue