Browse Source

20240820 待报价清单

java8
qiezi 1 year ago
parent
commit
1a352db7f2
  1. 2
      src/api/quote/quotationInformation.js
  2. 2
      src/api/quote/quote.js
  3. 4
      src/views/modules/quote/primary/quoteSearch.vue
  4. 548
      src/views/modules/quote/quotes.vue

2
src/api/quote/quotationInformation.js

@ -139,3 +139,5 @@ export const quotationInformationEditStatus = data => createAPI(`/plm/quotationI
export const uploadExcel = data => createAPI(`plm/quotationInformation/uploadExcel`,'post',data)
export const queryFileId = data => createAPI(`/pms/qc/queryFileId`,'post',data)
export const queryQuotationInformationByPage = (data) => createAPI(`/plm/quotationInformation/${data.no}/${data.size}`,'post',data)

2
src/api/quote/quote.js

@ -10,3 +10,5 @@ export const removeQuote = (data) => createAPI(`/quote/remove/${data.id}`,'post'
export const againQuote = (data) => createAPI(`/quote/again`,'post',data)
export const queryQuoteRoleUser = (data) => createAPI(`/quote/user`,'post',data)
export const batchSaveQuote = (data) => createAPI(`/quote/inside/batch/save`,'post',data)

4
src/views/modules/quote/primary/quoteSearch.vue

@ -21,7 +21,7 @@ export default {
<template>
<div v-show="show" class="quote-search">
<el-form :model="quote" label-width="100px" label-position="top">
<el-row :gutter="20">
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="客户编码">
<el-input v-model="quote.customerNo"></el-input>
@ -53,7 +53,7 @@ export default {
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="项目编码">
<el-input v-model="quote.projectNo"></el-input>

548
src/views/modules/quote/quotes.vue

@ -0,0 +1,548 @@
<script>
import DictDataSelect from "../sys/dict-data-select.vue";
import {queryQuotationInformationByPage} from "@/api/quote/quotationInformation";
import {batchSaveQuote} from "../../../api/quote/quote";
export default {
name: "quotes",
components: {DictDataSelect},
data(){
return{
no:1,
size:50,
total:0,
queryForm: {
customerNo:'',
quotationBatchNo:'',
customerDesc:'',
partNo:'',
partDesc:'',
startDate:null,
endDate:null,
quotationItemNo:undefined,
projectNo:'',
projectDesc:'',
quoterName:'',
priorityLevel:'',
quotationStatus:'下达',
},
dataList:[],
queryLoading:false,
selectionList:[],
columns:[
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1QuotationNo',
tableId: '5012Table1',
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: 5012,
serialNumber: '5012Table1QuotationBatchNo',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'quotationBatchNo',
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: 5012,
serialNumber: '5012Table1QuotationItemNo',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'quotationItemNo',
headerAlign: 'center',
align: 'right',
columnLabel: '序号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1CustomerNo',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'customerNo',
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: 5012,
serialNumber: '5012Table1CustomerDesc',
tableId: '5012Table1',
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: 5012,
serialNumber: '5012Table1ProjectId',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'projectNo',
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: 5012,
serialNumber: '5012Table1ProjectDesc',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'projectDesc',
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: 5012,
serialNumber: '5012Table1ProjectManagerName',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'projectManagerName',
headerAlign: 'center',
align: 'left',
columnLabel: 'PM/Sales',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1ProjectOwnerName',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'projectOwnerName',
headerAlign: 'center',
align: 'left',
columnLabel: 'PjM',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1QuoterName',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'quoterName',
headerAlign: 'center',
align: 'left',
columnLabel: '报价专员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1TestPartNo',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'testPartNo',
headerAlign: 'center',
align: 'left',
columnLabel: '项目料号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1PartDesc',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'partDesc',
headerAlign: 'center',
align: 'left',
columnLabel: '物料描述',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1PriorityLevel',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'priorityLevel',
headerAlign: 'center',
align: 'center',
columnLabel: '优先等级',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1RequiredCompletionDate',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'requiredCompletionDate',
headerAlign: 'center',
align: 'center',
columnLabel: '要求完成日期',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1quotationStatus',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'quotationStatus',
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: 5012,
serialNumber: '5012Table1CreateDate',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'createDate',
headerAlign: 'center',
align: 'center',
columnLabel: '创建时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1CreateBy',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'createBy',
headerAlign: 'center',
align: 'left',
columnLabel: '创建人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1UpdateDate',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'updateDate',
headerAlign: 'center',
align: 'center',
columnLabel: '更新时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 5012,
serialNumber: '5012Table1UpdateBy',
tableId: '5012Table1',
tableName: '询价信息表',
columnProp: 'updateBy',
headerAlign: 'center',
align: 'left',
columnLabel: '更新人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
}
],
}
},
methods:{
handleQuery(){
let params = {
...this.queryForm,
no: this.no,
size: this.size,
createBy: this.$store.state.user.name,
}
this.queryLoading = true
queryQuotationInformationByPage(params).then(({data})=>{
if (data && data.code === 0){
this.dataList = data.rows.map((item)=>{
item.projectManagerName = item.projectManager.split('-')[1]
item.projectOwnerName = item.projectOwner.split('-')[1]
return item
})
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.handleQuery();
},
handlePageChange(val){
this.no = val
this.handleQuery();
},
handleSelectionChange(val) {
this.selectionList = val;
},
handleQuote(){
if (this.selectionList.length === 0){
this.$message.warning("请选择需要报价的单据");
return;
}
let params = this.selectionList.map((item)=>{
item.createBy = this.$store.state.user.name
return item
})
batchSaveQuote(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg);
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
}
},
}
</script>
<template>
<div>
<el-form :model="queryForm" label-position="top" label-width="100px" style="width: 1100px">
<el-row :gutter="15">
<el-col :span="3">
<el-form-item label="申请批次号">
<el-input v-model="queryForm.quotationBatchNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="客户编码">
<el-input v-model="queryForm.customerNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="客户名称">
<el-input v-model="queryForm.customerDesc"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="项目料号">
<el-input v-model="queryForm.partNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="物料描述">
<el-input v-model="queryForm.partDesc"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="要求完成日期">
<div style="display: flex">
<el-date-picker style="width: 47%" v-model="queryForm.startDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
<div style="width: 6%;text-align: center">-</div>
<el-date-picker style="width: 47%" v-model="queryForm.endDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="3">
<el-form-item label="批次序号">
<el-input-number :controls="false" :min="0" style="width: 100%" v-model="queryForm.quotationItemNo"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="项目编码">
<el-input v-model="queryForm.projectNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="项目名称">
<el-input v-model="queryForm.projectDesc"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="报价专员">
<el-input v-model="queryForm.quoterName"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="优先等级">
<dict-data-select v-model="queryForm.priorityLevel" clearable :use-default-value="false" dict-type="priority_Level"/>
</el-form-item>
</el-col>
<!-- <el-col :span="3">-->
<!-- <el-form-item :label="'状态'">-->
<!-- <el-select v-model="queryForm.quotationStatus" style="width: 100%">-->
<!-- <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="3">
<el-form-item label=" ">
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button type="primary" @click="handleQuote">报价</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="dataList" border v-loading="queryLoading" height="75vh" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" fixed="left" align="center"></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>
<el-pagination @size-change="handleSizeChange"
@current-change="handlePageChange"
:current-page="no"
:page-sizes="[ 50, 100, 200, 500]"
:page-size="size"
:total="total"
layout="total,sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</template>
<style scoped>
</style>
Loading…
Cancel
Save