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