Browse Source

2023-09-19 plm报价提交

master
杨奉源 2 years ago
parent
commit
59cdda80ce
  1. 19
      src/api/quotation/quotationInformation.js
  2. 22
      src/views/modules/customer/customerInformationManagement.vue
  3. 121
      src/views/modules/quotation/quotation_upload_file.vue
  4. 430
      src/views/modules/quotation/requestForQuote.vue

19
src/api/quotation/quotationInformation.js

@ -24,4 +24,21 @@ export const quotationInformationEdit = data => createAPI(`/plm/quotationInforma
* @returns {*} * @returns {*}
*/ */
export const quotationInformationDelete = data => createAPI(`/plm/quotationInformation/quotationInformationDelete`,'post',data) export const quotationInformationDelete = data => createAPI(`/plm/quotationInformation/quotationInformationDelete`,'post',data)
/**
* 获取报价单附件列表
* @param data
* @returns {*}
*/
export const getFileContentList = data => createAPI(`/plm/quotationInformation/getFileContentList`,'post',data)
/**
* 获取报价结果对象
* @param data
* @returns {*}
*/
export const quotationResultSearch = data => createAPI(`/plm/quotationInformation/quotationResultSearch`,'post',data)
/**
* 文件上传
* @param data
* @returns {*}
*/
export const uploadFile = data => createAPI(`/plm/quotationInformation/uploadFile`,'post',data)

22
src/views/modules/customer/customerInformationManagement.vue

@ -102,11 +102,6 @@
<el-input v-model="modalData.customerDesc" :readonly="detailModalFlag" style="width: 222px"></el-input> <el-input v-model="modalData.customerDesc" :readonly="detailModalFlag" style="width: 222px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="客户描述">
<textarea v-model="modalData.customerDescription" :readonly="detailModalFlag" style="width: 457px;height: 20px"></textarea>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="年营业额"> <el-form-item label="年营业额">
<el-input v-model="modalData.turnoverOfYear" :readonly="detailModalFlag" style="width: 222px"></el-input> <el-input v-model="modalData.turnoverOfYear" :readonly="detailModalFlag" style="width: 222px"></el-input>
@ -169,7 +164,22 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="客户描述">
<el-input
type="textarea"
v-model="modalData.customerDescription"
readonly
:rows="1"
resize='none'
maxlength="300"
show-word-limit
:readonly="detailModalFlag"
style="width: 457px;height: 20px">
</el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button v-if="modalData.flag !== '3'" type="primary" @click="saveData()">保存</el-button> <el-button v-if="modalData.flag !== '3'" type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer> </el-footer>

121
src/views/modules/quotation/quotation_upload_file.vue

@ -0,0 +1,121 @@
<template>
<div class="customer-css">
<el-dialog :title="pageData.titleCon" :close-on-click-modal="false" :visible.sync="visible" width="390px" style="height: 520px;" class="customer-dialog">
<el-form :inline="true" label-position="top" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item class="customer-item" label="申请单号:" >
<el-input v-model="pageData.quotationNo" style="width: 120px;" disabled ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-upload class="customer-upload" drag
action="javascript:void(0);" ref="uploadFile" :limit="1"
:before-upload="beforeUploadHandle" :on-change="onChange"
accept="*" :auto-upload="false"
style="text-align: left;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="margin-bottom: 30px;">
<el-form-item class="customer-item" label="备注:" >
<el-input type="textarea" style="width: 360px;" placeholder="请输入内容" v-model="pageData.fileRemark"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveUploadFile()">保存</el-button>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
uploadFile //
} from '@/api/quotation/quotationInformation.js'
export default {
data() {
return {
folder: '',
visible: false,
fileList: [],
pageData: {
titleCon: '',
site: this.$store.state.user.site,
createBy: this.$store.state.user.name,
quotationNo: '',
fileRemark: '',
folder: '',
},
dataListLoading: false,
}
},
methods: {
//
init(currentRow) {
//
this.pageData = JSON.parse(JSON.stringify(currentRow))
this.folder = this.pageData.folder
//
this.visible = true
},
//
beforeUploadHandle(file) {},
/*选择上传文件时*/
onChange(file){
this.fileList.push(file);
},
/*关闭modal*/
closeDialog(){
this.fileList = [];
//
this.$emit('refreshPageTables');
//
this.visible = false;
},
/*保修当前的数据*/
saveUploadFile(){
let remark = this.pageData.fileRemark;
if(null == remark || remark == undefined){
remark = ''
}
/*判断文件是否上传*/
if(null == this.fileList || 0 === this.fileList.length){
this.$message.error("请先上传文件!");
return false;
}
const formData = new FormData();
//
formData.append("file", this.fileList[0].raw);
formData.append("folder", this.folder);
formData.append("site", this.pageData.site);
formData.append("objectID", this.pageData.quotationNo);
formData.append("remark", remark);
uploadFile(formData).then(({data}) => {
if (data.code === 0) {
this.$message.success(data.msg)
//
this.$refs.uploadFile.clearFiles()
this.pageData.fileRemark = ''
this.fileList = []
}else {
this.$message.warning(data.msg)
}
})
}
},
}
</script>
<style scoped lang="scss">
</style>

430
src/views/modules/quotation/requestForQuote.vue

@ -139,8 +139,13 @@
layout="total, sizes, prev, pager, next, jumper"> layout="total, sizes, prev, pager, next, jumper">
</el-pagination> </el-pagination>
<!-- 客户模态框 -->
<!-- 报价模态框 -->
<el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="495px"> <el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="495px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="申请单号">
<el-input v-model="modalData.quotationNo" style="width: 456px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="customerDesc" :rules="rules.customerDesc"> <el-form-item prop="customerDesc" :rules="rules.customerDesc">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span> <span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
@ -192,49 +197,52 @@
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="技术注意事项"> <el-form-item label="技术注意事项">
<textarea v-model="modalData.technicalConsiderations" style="width: 456px;height: 35px"></textarea>
<el-input
type="textarea"
v-model="modalData.technicalConsiderations"
:rows="1"
resize='none'
maxlength="300"
show-word-limit
style="width: 456px;height: 20px">
</el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:30px;margin-top: 17px;text-align:center">
<el-footer style="height:30px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button> <el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 页签 -->
<el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; height: 100%;" type="border-card" @tab-click="tabClick" class="customer-tab">
<!-- 联系人页签 -->
<el-tab-pane label="联系人" name="customer_contact">
<el-form label-position="top" style="margin-top: 5px; margin-left: 0px;">
<el-form :inline="true" label-position="top" style="margin-top: 5px">
<el-button type="primary" @click="contactSaveModal()">新增</el-button>
<el-button type="primary" @click="contactDeleteModal()">删除</el-button>
</el-form>
<!-- 客户联系人模态框 -->
<el-dialog title="录入报价结果" :close-on-click-modal="false" v-drag :visible.sync="quotationResultModalFlag" width="785px">
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left: 0px;margin-top: 10px;">
<el-form-item label="实际报价日期" prop="actualityQuotationDate" :rules="enterResultRules.actualityQuotationDate">
<el-date-picker v-model="enterResultData.actualityQuotationDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left:0px;margin-top: 5px;">
<el-form-item label="报价结果信息" prop="quotationResultInformation" :rules="enterResultRules.quotationResultInformation">
<el-input type="textarea" v-model="enterResultData.quotationResultInformation" :rows="3" resize='none' maxlength="300" show-word-limit style="width: 500px;height: 30px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="enterResultData" style="margin-left: 0px;margin-top: 60px;">
<el-form :inline="true" label-position="top" style="margin-top: 5px">
<el-button type="primary" @click="uploadFile()">上传文件</el-button>
</el-form> </el-form>
<el-table <el-table
:data="contactList"
:height="secondHeight"
:height="200"
:data="enterResultData.fileContentList"
border border
ref="contactTable"
@row-click="contactClickRow"
@selection-change="selectionContact"
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%; ">
style="width: 100%">
<el-table-column <el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in customerContactArray" :key="index"
v-for="(item,index) in fileColumnList" :key="index"
:sortable="item.columnSortable" :sortable="item.columnSortable"
:prop="item.columnProp" :prop="item.columnProp"
:header-align="item.headerAlign" :header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip" :show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align" :align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth" :min-width="item.columnWidth"
:label="item.columnLabel"> :label="item.columnLabel">
<template slot-scope="scope"> <template slot-scope="scope">
@ -249,15 +257,137 @@
width="100" width="100"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="updateContactModal(scope.row)">编辑</a>
<a type="text" size="small" @click="detailContactModal(scope.row)">详情</a>
<el-button type="primary" @click="deleteFile()">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveEnterResult()">保存</el-button>
<el-button type="primary" @click="quotationResultModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- 页签 -->
<el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; height: 100%;" type="border-card" @tab-click="tabClick" class="customer-tab">
<!-- 报价详细信息页签 -->
<el-tab-pane label="报价详细信息" name="quotation_detail_information" style="height: 240px">
<el-form :inline="true" label-position="top" :model="quotationDetailData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="技术注意事项">
<el-input
type="textarea"
v-model="quotationDetailData.technicalConsiderations"
readonly
:rows="3"
resize='none'
maxlength="300"
show-word-limit
style="width: 600px;height: 30px">
</el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationDetailData" style="margin-left: 10px;margin-top: 46px;">
<el-form-item label="客户负责人">
<el-input v-model="quotationDetailData.customerResponsiblePerson" readonly style="width: 295px"></el-input>
</el-form-item>
<el-form-item label="客户负责人联系方式">
<el-input v-model="quotationDetailData.customerResponsiblePersonPhone" readonly style="width: 295px"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
<!-- 报价结果页签 -->
<el-tab-pane label="报价结果" name="quotation_result" style="height: 490px">
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 10px;">
<el-button type="primary" @click="quotationResultModal()">录入报价结果</el-button>
<el-button type="primary" @click="submitQuotationModal()">提交客户报价</el-button>
<el-button type="primary" @click="customerResponseModal()">客户回复</el-button>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="实际报价日期">
<el-date-picker v-model="quotationResultData.actualityQuotationDate" readonly type="date" value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 5px;">
<el-form-item label="报价结果信息">
<el-input type="textarea" v-model="quotationResultData.quotationResultInformation" readonly :rows="2" resize='none' show-word-limit style="width: 500px;height: 30px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 32px;">
<el-form-item label="附件清单">
<el-table
:height="100"
:data="fileContentList"
border
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
v-for="(item,index) in fileColumnList" :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
fixed="right"
header-align="center"
align="center"
width="100"
label="操作">
<template slot-scope="scope">
<a @click="downloadFile(scope.row)">下载</a>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 83px;">
<el-form-item label="实际提交看客户日期">
<el-date-picker v-model="quotationResultData.actualitySubmissionDate" readonly type="date" value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
<el-form-item label="提交方式">
<el-input v-model="quotationResultData.submissionMethod" readonly style="width: 240px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="提交备注">
<el-input v-model="quotationResultData.submissionRemark" readonly style="width: 760px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="客户是否回复">
<el-checkbox type="checkbox" v-if="quotationResultData.confirmResults != null && quotationResultData.confirmResults !== ''" checked onclick="return false"/>
<el-checkbox type="checkbox" v-if="quotationResultData.confirmResults == null || quotationResultData.confirmResults === ''" onclick="return false"/>
</el-form-item>
<el-form-item label="客户确认结果">
<el-input v-model="quotationResultData.confirmResults" readonly style="width: 205px"></el-input>
</el-form-item>
<el-form-item label="实际回复日期">
<el-date-picker v-model="quotationResultData.actualityReplyDate" readonly type="date" value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
<el-form-item label="客户确认人">
<el-input v-model="quotationResultData.confirmBy" readonly style="width: 205px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="客户回复信息">
<el-input v-model="quotationResultData.confirmInformation" readonly style="width: 760px"></el-input>
</el-form-item>
</el-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<!-- 上传文件的modal -->
<quotationUploadFile ref="quotationUploadFile" @refreshPageTables="getFileContentData()" v-drag></quotationUploadFile>
</div> </div>
</template> </template>
@ -266,25 +396,31 @@
quotationInformationSearch, // quotationInformationSearch, //
quotationInformationSave, // quotationInformationSave, //
quotationInformationEdit, // quotationInformationEdit, //
quotationInformationDelete //
quotationInformationDelete, //
getFileContentList, //
quotationResultSearch, //
} from '@/api/quotation/quotationInformation.js' } from '@/api/quotation/quotationInformation.js'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import quotationUploadFile from "./quotation_upload_file";
export default { export default {
components: { components: {
Chooselist
Chooselist,
quotationUploadFile
}, },
watch: { watch: {
searchData: { searchData: {
deep: true, deep: true,
handler: function (newV, oldV) { handler: function (newV, oldV) {
this.searchData.customerNo = this.searchData.customerNo.toUpperCase() this.searchData.customerNo = this.searchData.customerNo.toUpperCase()
this.searchData.projectId = this.searchData.projectId.toUpperCase()
} }
}, },
modalData: { modalData: {
deep: true, deep: true,
handler: function (newV, oldV) { handler: function (newV, oldV) {
this.modalData.customerNo = this.modalData.customerNo.toUpperCase() this.modalData.customerNo = this.modalData.customerNo.toUpperCase()
this.modalData.projectId = this.modalData.projectId.toUpperCase()
this.modalData.quotationNo = this.modalData.quotationNo.toUpperCase()
} }
} }
}, },
@ -324,7 +460,7 @@
// //
dataListLoading: false, dataListLoading: false,
// //
activeTable: 'customer_contact',
activeTable: 'quotation_detail_information',
// ======== ======== // ======== ========
modalData: { modalData: {
flag: '', flag: '',
@ -363,8 +499,33 @@
updateDate: '', updateDate: '',
updateBy: '' updateBy: ''
}, },
quotationDetailData: {
technicalConsiderations: '',
customerResponsiblePerson: '',
customerResponsiblePersonPhone: ''
},
quotationResultData: {
actualityQuotationDate: '',
quotationResultInformation: '',
actualitySubmissionDate: '',
submissionMethod: '',
submissionRemark: '',
confirmResults: '',
actualityReplyDate: '',
confirmBy: '',
confirmInformation: ''
},
enterResultData: {
site: this.$store.state.user.site,
quotationNo: '',
actualityQuotationDate: '',
quotationResultInformation: '',
fileContentList: [],
updateBy: this.$store.state.user.name,
},
// ======== ======== // ======== ========
dataList: [], dataList: [],
fileContentList: [],
// ======== ======== // ======== ========
columnList: [ columnList: [
{ {
@ -638,6 +799,98 @@
columnWidth: 80 columnWidth: 80
} }
], ],
fileColumnList: [
{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table2FileName',
tableId: '102001Table2',
tableName: '文件信息表',
columnProp: 'fileName',
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: '102001Table2OrderRef3',
tableId: '102001Table2',
tableName: '文件信息表',
columnProp: 'orderRef3',
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: '102001Table2CreateDate',
tableId: '102001Table2',
tableName: '文件信息表',
columnProp: 'createDate',
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: '102001Table2CreatedBy',
tableId: '102001Table2',
tableName: '文件信息表',
columnProp: 'createdBy',
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: '102001Table2FileRemark',
tableId: '102001Table2',
tableName: '文件信息表',
columnProp: 'fileRemark',
headerAlign: 'center',
align: 'center',
columnLabel: '备注',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
}
],
// ======== ======== // ======== ========
rules: { rules: {
customerDesc: [ customerDesc: [
@ -690,6 +943,22 @@
} }
] ]
}, },
enterResultRules: {
actualityQuotationDate: [
{
required: true,
message: ' ',
trigger: 'change'
}
],
quotationResultInformation: [
{
required: true,
message: ' ',
trigger: 'change'
}
]
},
// ======== ======== // ======== ========
quotationSelections: [], quotationSelections: [],
// ======== ======== // ======== ========
@ -697,6 +966,7 @@
// ======== ======== // ======== ========
modalFlag: false, modalFlag: false,
modalDisableFlag: false, modalDisableFlag: false,
quotationResultModalFlag: false
} }
}, },
mounted () { mounted () {
@ -761,8 +1031,8 @@
* 刷新页签的table数据 * 刷新页签的table数据
*/ */
refreshCurrentTabTable () { refreshCurrentTabTable () {
if (this.activeTable === 'customer_contact') {
this.getCustomerContactList();
if (this.activeTable === 'quotation_result') {
this.getQuotationResult()
} }
}, },
@ -782,13 +1052,33 @@
// //
if(this.totalPage > 0){ if(this.totalPage > 0){
// //
this.$refs.quotationTable.setCurrentRow(this.dataList[0]);
this.refreshCurrentTabTable();//table
this.$refs.quotationTable.setCurrentRow(this.dataList[0])
this.refreshCurrentTabTable() //table
this.quotationClickRow(this.dataList[0])
} }
} }
this.dataListLoading = false this.dataListLoading = false
}) })
}, },
/**
* 获取报价结果列表
*/
getQuotationResult () {
let tempData = {
site: this.$store.state.user.site,
quotationNo: this.quotationCurrentRow.quotationNo
}
//
quotationResultSearch(tempData).then(({data}) => {
if (data && data.code === 0) {
this.quotationResultData = data.rows[0];
} else {
this.quotationResultData = {};
}
})
//
this.getFileContentData()
},
// ======== ======== // ======== ========
/** /**
@ -1014,6 +1304,7 @@
*/ */
quotationClickRow (row) { quotationClickRow (row) {
this.quotationCurrentRow = JSON.parse(JSON.stringify(row)); this.quotationCurrentRow = JSON.parse(JSON.stringify(row));
this.quotationDetailData = row;
}, },
// ======== ======== // ======== ========
@ -1025,6 +1316,69 @@
this.quotationSelections = val this.quotationSelections = val
}, },
// ======== ========
/**
* 录入报价结果
*/
quotationResultModal () {
this.enterResultData = {
site: this.$store.state.user.site,
quotationNo: this.quotationCurrentRow.quotationNo,
actualityQuotationDate: '',
quotationResultInformation: '',
fileContentList: [],
updateBy: this.$store.state.user.name,
}
this.quotationResultModalFlag = true
},
/**
* 提交客户报价
*/
submitQuotationModal () {
},
/**
* 客户回复
*/
customerResponseModal () {
},
// ======== ========
/**
* 获取报价单附件列表
*/
getFileContentData () {
let currentData = {
orderRef1: this.$store.state.user.site,
orderRef2: this.quotationCurrentRow.quotationNo
}
getFileContentList(currentData).then(({data}) => {
if (data && data.code === 0) {
this.fileContentList = data.rows;
} else {
this.fileContentList = [];
}
})
},
/**
* 上传文件
*/
uploadFile () {
let currentData = {
titleCon: '报价附件上传',
site: this.$store.state.user.site,
createBy: this.$store.state.user.name,
quotationNo: this.enterResultData.quotationNo,
fileRemark: '',
folder: 'quotationFile',
};
//
this.$nextTick(() => {
this.$refs.quotationUploadFile.init(currentData);
})
},
// ======== chooseList ======== // ======== chooseList ========
/** /**
* 获取基础数据列表S * 获取基础数据列表S

Loading…
Cancel
Save