5 changed files with 295 additions and 7 deletions
-
1src/api/quotation/quotationHeader.js
-
266src/views/modules/project/projectInfo/com_project_info_quotation.vue
-
18src/views/modules/project/projectInfo/projectInfo.vue
-
5src/views/modules/quotation/sellForQuotation.vue
-
12src/views/modules/quotation/sellForQuotation/quotationDetail.vue
@ -0,0 +1,266 @@ |
|||||
|
<script> |
||||
|
import {getQuotationHeader} from "@/api/quotation/quotationHeader.js"; |
||||
|
export default { |
||||
|
name: 'com_project_info_quotation_header', |
||||
|
|
||||
|
data(){ |
||||
|
return{ |
||||
|
dataList:[], |
||||
|
columnList: [ |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 101002001, |
||||
|
serialNumber: '101002001Table5QuotationNo', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5QuotationDate', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5CustomerNo', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5CustomerName', |
||||
|
tableId: '101002001Table5', |
||||
|
tableName: '报价信息表', |
||||
|
columnProp: 'customerName', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5QuoterName', |
||||
|
tableId: '101002001Table5', |
||||
|
tableName: '报价信息表', |
||||
|
columnProp: 'quoterName', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5TrackerName', |
||||
|
tableId: '101002001Table5', |
||||
|
tableName: '报价信息表', |
||||
|
columnProp: 'trackerName', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5Currency', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001Table5QuotationStatus', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001CustomerInquiryNo', |
||||
|
tableId: '101002001Table5', |
||||
|
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: 101002001, |
||||
|
serialNumber: '101002001InternalInquiryNo', |
||||
|
tableId: '101002001Table5', |
||||
|
tableName: '报价信息表', |
||||
|
columnProp: 'internalInquiryNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'center', |
||||
|
columnLabel: '内部报价单号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
}, |
||||
|
], |
||||
|
exportData: [], |
||||
|
exportName: '项目询价'+this.dayjs().format('YYYYMMDDHHmmss'), |
||||
|
exportHeader: ["项目询价"], |
||||
|
exportFooter: [], |
||||
|
} |
||||
|
}, |
||||
|
methods:{ |
||||
|
init(params){ |
||||
|
getQuotationHeader(params).then(({data})=>{ |
||||
|
this.dataList = data.data.records; |
||||
|
}).catch((error)=>{ |
||||
|
|
||||
|
}) |
||||
|
}, |
||||
|
fields() { |
||||
|
let json = "{" |
||||
|
this.columnList.forEach((item, index) => { |
||||
|
if (index === this.columnList.length - 1) { |
||||
|
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" |
||||
|
} else { |
||||
|
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + "," |
||||
|
} |
||||
|
}) |
||||
|
json += "}" |
||||
|
let s = eval("(" + json + ")") |
||||
|
|
||||
|
return s |
||||
|
}, |
||||
|
createExportData() { |
||||
|
return this.dataList; |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<div> |
||||
|
<el-form :inline="true" label-position="top" style="margin-top: 0px"> |
||||
|
<download-excel |
||||
|
:fields="fields()" |
||||
|
:data="exportData" |
||||
|
type="xls" |
||||
|
:name="exportName" |
||||
|
:header="exportHeader" |
||||
|
:footer="exportFooter" |
||||
|
:fetch="createExportData" |
||||
|
worksheet="导出信息" |
||||
|
class="el-button el-button--primary el-button--medium"> |
||||
|
{{ '导出' }} |
||||
|
</download-excel> |
||||
|
</el-form> |
||||
|
<el-table :data="dataList" stripe border style="width: 100%;margin-top: 12px" :height="240"> |
||||
|
<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> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue