2 changed files with 0 additions and 478 deletions
@ -1,3 +0,0 @@ |
|||||
import {createAPI} from "../../utils/httpRequest"; |
|
||||
|
|
||||
export const querySalesQuoteByPage = (data) => createAPI(`/sales/quote/${data.no}/${data.size}`,'post',data); |
|
||||
@ -1,475 +0,0 @@ |
|||||
<script> |
|
||||
import {querySalesQuoteByPage} from "../../../api/quote/salesQuote"; |
|
||||
|
|
||||
export default { |
|
||||
name: "salesQuote", |
|
||||
props: { |
|
||||
queryStyle: { |
|
||||
type: Object, |
|
||||
default: () => ({ |
|
||||
width: "1200px", |
|
||||
}) |
|
||||
}, |
|
||||
height: { |
|
||||
type: [String, Number], |
|
||||
default: "80vh" |
|
||||
}, |
|
||||
currentRow:{ |
|
||||
type: Object, |
|
||||
default: () => ({ |
|
||||
id: "", |
|
||||
}) |
|
||||
} |
|
||||
}, |
|
||||
data() { |
|
||||
return { |
|
||||
queryLoading: false, |
|
||||
dataList: [], |
|
||||
querySalesQuote: { |
|
||||
site: "", |
|
||||
customerNo: "", |
|
||||
customerDesc: "", |
|
||||
projectId: "", |
|
||||
projectDesc: "", |
|
||||
status: "", |
|
||||
quoterName: "", |
|
||||
trackerName: "", |
|
||||
quotationNo: "", |
|
||||
startDate: "", |
|
||||
endDate: "", |
|
||||
customerInquiryNo: "", |
|
||||
internalInquiryNo: "", |
|
||||
}, |
|
||||
no: 1, |
|
||||
size: 20, |
|
||||
total: 0, |
|
||||
columns: [ |
|
||||
{ |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 102003, |
|
||||
serialNumber: '102003Table1QuoteVersionNo', |
|
||||
tableId: '102003Table1', |
|
||||
tableName: '报价信息表', |
|
||||
columnProp: 'quoteVersionNo', |
|
||||
headerAlign: 'center', |
|
||||
align: 'center', |
|
||||
columnLabel: '报价单号', |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: false, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: '', |
|
||||
columnWidth: 140 |
|
||||
}, |
|
||||
{ |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 102003, |
|
||||
serialNumber: '102003Table1QuotationDate', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1CustomerNo', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1CustomerName', |
|
||||
tableId: '102003Table1', |
|
||||
tableName: '报价信息表', |
|
||||
columnProp: 'customerDesc', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1ProjectId', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1ProjectName', |
|
||||
tableId: '102003Table1', |
|
||||
tableName: '报价信息表', |
|
||||
columnProp: 'projectDesc', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1QuoterName', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1TrackerName', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1Currency', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1Status', |
|
||||
tableId: '102003Table1', |
|
||||
tableName: '报价信息表', |
|
||||
columnProp: 'status', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1CustomerInquiryNo', |
|
||||
tableId: '102003Table1', |
|
||||
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: 102003, |
|
||||
serialNumber: '102003Table1InternalInquiryNo', |
|
||||
tableId: '102003Table1', |
|
||||
tableName: '报价信息表', |
|
||||
columnProp: 'internalInquiryNo', |
|
||||
headerAlign: 'center', |
|
||||
align: 'center', |
|
||||
columnLabel: '内部询价单号', |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: false, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: '', |
|
||||
columnWidth: 120 |
|
||||
}, |
|
||||
], |
|
||||
} |
|
||||
}, |
|
||||
methods: { |
|
||||
handleQuerySalesQuote() { |
|
||||
let params = { |
|
||||
...this.querySalesQuote, |
|
||||
no: this.no, |
|
||||
size: this.size, |
|
||||
site: this.$store.state.user.site, |
|
||||
} |
|
||||
this.queryLoading = true; |
|
||||
querySalesQuoteByPage(params).then(({data}) => { |
|
||||
if (data && data.code === 0) { |
|
||||
this.dataList = data.rows |
|
||||
this.total = data.total |
|
||||
} else { |
|
||||
this.$message.warning(data.msg) |
|
||||
} |
|
||||
this.queryLoading = false; |
|
||||
}).catch((error) => { |
|
||||
this.$message.error(error) |
|
||||
this.queryLoading = false; |
|
||||
}) |
|
||||
}, |
|
||||
handleSizeChange(val){ |
|
||||
this.size = val; |
|
||||
this.handleQuerySalesQuote(); |
|
||||
}, |
|
||||
handleCurrentChange(val){ |
|
||||
this.no = val; |
|
||||
this.handleQuerySalesQuote(); |
|
||||
}, |
|
||||
handleSaveSalesQuote(){ |
|
||||
this.$emit("save") |
|
||||
}, |
|
||||
handleUpdateSalesQuoteStatus(row){ |
|
||||
let salesQuote = { |
|
||||
...row, |
|
||||
quotationStatus: row.status, |
|
||||
} |
|
||||
this.$emit("updateStatus",salesQuote) |
|
||||
}, |
|
||||
handleShowSalesQuote(row){ |
|
||||
this.$emit("show",row) |
|
||||
}, |
|
||||
handleUpdateSalesQuote(row){ |
|
||||
this.$emit("update",row) |
|
||||
}, |
|
||||
handleRemoveSalesQuote(row){ |
|
||||
this.$emit("remove",row) |
|
||||
}, |
|
||||
handleAgainSalesQuote(row){ |
|
||||
this.$emit("again",row) |
|
||||
}, |
|
||||
rowStyle({row}){ |
|
||||
if (this.currentRow.id === row.id){ |
|
||||
return {'background-color': '#E8F7F6'} |
|
||||
} |
|
||||
}, |
|
||||
handleClickRow(row){ |
|
||||
let salesQuote = { |
|
||||
...row, |
|
||||
quotationHeaderId: row.id, |
|
||||
} |
|
||||
this.$emit("rowClick",salesQuote) |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<template> |
|
||||
<div> |
|
||||
<div :style="queryStyle"> |
|
||||
<el-form :model="querySalesQuote" label-position="top"> |
|
||||
<el-row :gutter="10"> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="客户编码"> |
|
||||
<el-input v-model="querySalesQuote.customerNo"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="客户名称"> |
|
||||
<el-input v-model="querySalesQuote.customerDesc"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="采购专员"> |
|
||||
<el-input v-model="querySalesQuote.trackerName"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="报价单号"> |
|
||||
<el-input v-model="querySalesQuote.quotationNo"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="客户询价单号"> |
|
||||
<el-input v-model="querySalesQuote.customerInquiryNo"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="内部询价单号"> |
|
||||
<el-input v-model="querySalesQuote.internalInquiryNo"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
<el-row :gutter="10"> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="项目编码"> |
|
||||
<el-input v-model="querySalesQuote.projectId"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="项目名称"> |
|
||||
<el-input v-model="querySalesQuote.projectDesc"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="报价专员"> |
|
||||
<el-input v-model="querySalesQuote.quoterName"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label="状态"> |
|
||||
<el-select v-model="querySalesQuote.status"> |
|
||||
<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-form-item label="报价日期"> |
|
||||
<el-date-picker |
|
||||
value-format="yyyy-MM-dd" |
|
||||
v-model="querySalesQuote.startDate" |
|
||||
style="width: 48%" |
|
||||
type="date" |
|
||||
placeholder=" "> |
|
||||
</el-date-picker> |
|
||||
<div style="width: 1.2%;text-align: center;display: inline-block;"> |
|
||||
- |
|
||||
</div> |
|
||||
<el-date-picker |
|
||||
value-format="yyyy-MM-dd" |
|
||||
v-model="querySalesQuote.endDate" |
|
||||
style="width: 48%" |
|
||||
type="date" |
|
||||
placeholder=" "> |
|
||||
</el-date-picker> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
<el-col :span="3"> |
|
||||
<el-form-item label=" "> |
|
||||
<el-button type="primary" :loading="queryLoading" @click="handleQuerySalesQuote">查询</el-button> |
|
||||
<el-button type="primary" @click="handleSaveSalesQuote">新增</el-button> |
|
||||
</el-form-item> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</el-form> |
|
||||
</div> |
|
||||
<el-table :data="dataList" |
|
||||
border |
|
||||
:height="height" |
|
||||
:row-style="rowStyle" |
|
||||
@row-click="handleClickRow"> |
|
||||
<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-column |
|
||||
label="操作" |
|
||||
align="center" |
|
||||
fixed="right" |
|
||||
width="160"> |
|
||||
<template slot-scope="{row,$index}"> |
|
||||
<a v-if="row.status === '草稿'" @click="handleUpdateSalesQuoteStatus(row)">下达</a> |
|
||||
<a v-if="row.status === '下达'" @click="handleUpdateSalesQuoteStatus(row)">取消下达</a> |
|
||||
<a v-if="row.status !== '草稿'" @click="handleShowSalesQuote(row)">详情</a> |
|
||||
<a v-if="row.status === '草稿'" @click="handleUpdateSalesQuote(row)">编辑</a> |
|
||||
<a v-if="row.status === '草稿'" @click="handleRemoveSalesQuote(row)">删除</a> |
|
||||
<a @click="handleAgainSalesQuote(row)">重新报价</a> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
<el-pagination style="margin-top: 0px" |
|
||||
@size-change="handleSizeChange" |
|
||||
@current-change="handleCurrentChange" |
|
||||
:current-page="no" |
|
||||
:page-sizes="[20, 50, 100, 200, 500]" |
|
||||
:page-size="size" |
|
||||
:total="total" |
|
||||
layout="total,sizes, prev, pager, next, jumper"> |
|
||||
</el-pagination> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<style scoped> |
|
||||
</style> |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue