Browse Source

2023-12-19 plm报价

master
zelian_wu 2 years ago
parent
commit
bbf0595699
  1. 40
      src/views/modules/project/projectInfo/com_project_puotation.vue
  2. 2
      src/views/modules/project/projectInfo/projectInfo.vue
  3. 120
      src/views/modules/quotation/batchRequestForQuote.vue
  4. 172
      src/views/modules/quotation/requestForQuote.vue
  5. 154
      src/views/modules/quotation/sellForQuotation/quotationDetail.vue
  6. 58
      src/views/modules/quotation/toBeQuoted.vue

40
src/views/modules/project/projectInfo/com_project_puotation.vue

@ -59,10 +59,10 @@
<script> <script>
import { import {
quotationInformationSearch, //
quotationInformationSave, //
quotationInformationEdit, //
quotationInformationDelete //
quotationInformationSearch, //
quotationInformationSave, //
quotationInformationEdit, //
quotationInformationDelete //
} from '@/api/quotation/quotationInformation.js' } from '@/api/quotation/quotationInformation.js'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
export default { export default {
@ -88,7 +88,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5QuotationNo', serialNumber: '101002001Table5QuotationNo',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationNo', columnProp: 'quotationNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -106,7 +106,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5CustomerNo', serialNumber: '101002001Table5CustomerNo',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerNo', columnProp: 'customerNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -124,7 +124,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5CustomerDesc', serialNumber: '101002001Table5CustomerDesc',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerDesc', columnProp: 'customerDesc',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -142,7 +142,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5TrackerName', serialNumber: '101002001Table5TrackerName',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'trackerName', columnProp: 'trackerName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -160,11 +160,11 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5QuoterName', serialNumber: '101002001Table5QuoterName',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quoterName', columnProp: 'quoterName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '价专员',
columnLabel: '价专员',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -178,7 +178,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5TestPartNo', serialNumber: '101002001Table5TestPartNo',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'testPartNo', columnProp: 'testPartNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -196,7 +196,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5PriorityLevel', serialNumber: '101002001Table5PriorityLevel',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'priorityLevel', columnProp: 'priorityLevel',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -214,7 +214,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5RequiredCompletionDate', serialNumber: '101002001Table5RequiredCompletionDate',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'requiredCompletionDate', columnProp: 'requiredCompletionDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -232,7 +232,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5quotationStatus', serialNumber: '101002001Table5quotationStatus',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationStatus', columnProp: 'quotationStatus',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -250,7 +250,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5CreateDate', serialNumber: '101002001Table5CreateDate',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createDate', columnProp: 'createDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -268,7 +268,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5CreateBy', serialNumber: '101002001Table5CreateBy',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createBy', columnProp: 'createBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -286,7 +286,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5UpdateDate', serialNumber: '101002001Table5UpdateDate',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateDate', columnProp: 'updateDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -304,7 +304,7 @@
functionId: 101002001, functionId: 101002001,
serialNumber: '101002001Table5UpdateBy', serialNumber: '101002001Table5UpdateBy',
tableId: '101002001Table5', tableId: '101002001Table5',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateBy', columnProp: 'updateBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -320,8 +320,8 @@
], ],
// start // start
exportData: [], exportData: [],
exportName: '项目价'+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["项目价"],
exportName: '项目价'+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["项目价"],
exportFooter: [], exportFooter: [],
// end // end
} }

2
src/views/modules/project/projectInfo/projectInfo.vue

@ -300,7 +300,7 @@
<el-tab-pane label="项目物料" name="part"> <el-tab-pane label="项目物料" name="part">
<projectPart ref="projectPart" ></projectPart> <projectPart ref="projectPart" ></projectPart>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="价信息" name="quotation">
<el-tab-pane label="价信息" name="quotation">
<projectQuotation ref="projectQuotation" ></projectQuotation> <projectQuotation ref="projectQuotation" ></projectQuotation>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="打样信息" name="sample"> <el-tab-pane label="打样信息" name="sample">

120
src/views/modules/quotation/batchRequestForQuote.vue

@ -46,7 +46,7 @@
<el-form-item :label="'项目名称'"> <el-form-item :label="'项目名称'">
<el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input> <el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'价专员'">
<el-form-item :label="'价专员'">
<el-input v-model="searchData.quoterName" clearable style="width: 120px"></el-input> <el-input v-model="searchData.quoterName" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'优先等级'"> <el-form-item :label="'优先等级'">
@ -84,13 +84,13 @@
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button @click="quotationResultModal()" class="el-button el-button--primary el-button--medium">录入价结果</el-button>
<el-button @click="submitQuotationModal()" class="el-button el-button--primary el-button--medium">提交客户</el-button>
<el-button @click="quotationResultModal()" class="el-button el-button--primary el-button--medium">录入价结果</el-button>
<el-button @click="submitQuotationModal()" class="el-button el-button--primary el-button--medium">提交客户</el-button>
<el-button @click="customerResponseModal()" class="el-button el-button--primary el-button--medium">客户回复</el-button> <el-button @click="customerResponseModal()" class="el-button el-button--primary el-button--medium">客户回复</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 价列表 -->
<!-- 价列表 -->
<el-table <el-table
:height="height" :height="height"
:data="dataList" :data="dataList"
@ -149,15 +149,15 @@
layout="total, sizes, prev, pager, next, jumper"> layout="total, sizes, prev, pager, next, jumper">
</el-pagination> </el-pagination>
<!-- 录入价结果模态框 -->
<el-dialog title="录入价结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" width="785px">
<!-- 录入价结果模态框 -->
<el-dialog title="录入价结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" width="785px">
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left: 0px;margin-top: 10px;"> <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-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-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-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left:0px;margin-top: 5px;"> <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-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-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-item>
</el-form> </el-form>
@ -204,8 +204,8 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 提交客户价模态框 -->
<el-dialog title="提交客户价" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" width="620px">
<!-- 提交客户价模态框 -->
<el-dialog title="提交客户价" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" width="620px">
<el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" style="margin-left: 0px;margin-top: 10px;"> <el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" style="margin-left: 0px;margin-top: 10px;">
<el-form-item label="实际提交客户日期" prop="actualitySubmissionDate" :rules="submitResultRules.actualitySubmissionDate"> <el-form-item label="实际提交客户日期" prop="actualitySubmissionDate" :rules="submitResultRules.actualitySubmissionDate">
<el-date-picker v-model="submitResultData.actualitySubmissionDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker> <el-date-picker v-model="submitResultData.actualitySubmissionDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker>
@ -264,13 +264,13 @@
<script> <script>
import { import {
quotationInformationSearch, //
getFileContentList, //
quotationInformationSearch, //
getFileContentList, //
batchDeleteQuotationFile, // batchDeleteQuotationFile, //
saveQuotationResult, //
saveQuotationResult, //
saveSubmitResult, // saveSubmitResult, //
saveCustomerResponse, // saveCustomerResponse, //
checkQuotationStatus, //
checkQuotationStatus, //
closeModalDeleteFile, // closeModalDeleteFile, //
} from '@/api/quotation/quotationInformation.js' } from '@/api/quotation/quotationInformation.js'
import quotationUploadFile from "./quotation_upload_file" import quotationUploadFile from "./quotation_upload_file"
@ -418,7 +418,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1QuotationNo', serialNumber: '102001Table1QuotationNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationNo', columnProp: 'quotationNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -436,7 +436,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CustomerNo', serialNumber: '102001Table1CustomerNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerNo', columnProp: 'customerNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -454,7 +454,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CustomerDesc', serialNumber: '102001Table1CustomerDesc',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerDesc', columnProp: 'customerDesc',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -472,7 +472,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1ProjectId', serialNumber: '102001Table1ProjectId',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'projectId', columnProp: 'projectId',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -490,7 +490,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1ProjectName', serialNumber: '102001Table1ProjectName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'projectName', columnProp: 'projectName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -508,7 +508,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1TrackerName', serialNumber: '102001Table1TrackerName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'trackerName', columnProp: 'trackerName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -526,11 +526,11 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1QuoterName', serialNumber: '102001Table1QuoterName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quoterName', columnProp: 'quoterName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '价专员',
columnLabel: '价专员',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -544,7 +544,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1TestPartNo', serialNumber: '102001Table1TestPartNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'testPartNo', columnProp: 'testPartNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -562,7 +562,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1PartName', serialNumber: '102001Table1PartName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'partName', columnProp: 'partName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -580,7 +580,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1PriorityLevel', serialNumber: '102001Table1PriorityLevel',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'priorityLevel', columnProp: 'priorityLevel',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -598,7 +598,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1RequiredCompletionDate', serialNumber: '102001Table1RequiredCompletionDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'requiredCompletionDate', columnProp: 'requiredCompletionDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -616,7 +616,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1quotationStatus', serialNumber: '102001Table1quotationStatus',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationStatus', columnProp: 'quotationStatus',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -634,7 +634,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CreateDate', serialNumber: '102001Table1CreateDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createDate', columnProp: 'createDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -652,7 +652,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CreateBy', serialNumber: '102001Table1CreateBy',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createBy', columnProp: 'createBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -670,7 +670,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1UpdateDate', serialNumber: '102001Table1UpdateDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateDate', columnProp: 'updateDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -688,7 +688,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1UpdateBy', serialNumber: '102001Table1UpdateBy',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateBy', columnProp: 'updateBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -977,7 +977,7 @@
// ======== ======== // ======== ========
/** /**
* 单机选中价信息
* 单机选中价信息
* @param row * @param row
*/ */
quotationClickRow (row) { quotationClickRow (row) {
@ -985,7 +985,7 @@
this.quotationCurrentRow = JSON.parse(JSON.stringify(row)) this.quotationCurrentRow = JSON.parse(JSON.stringify(row))
}, },
/** /**
* 复选价信息
* 复选价信息
* @param val * @param val
*/ */
selectionQuotation (val) { selectionQuotation (val) {
@ -993,27 +993,27 @@
this.$refs.selectDiv.setLengthselected(this.quotationSelections.length) this.$refs.selectDiv.setLengthselected(this.quotationSelections.length)
}, },
// ======== ========
// ======== ========
/** /**
* 录入价结果
* 录入价结果
*/ */
quotationResultModal () { quotationResultModal () {
//
//
if (this.quotationSelections == null || this.quotationSelections.length <= 0) { if (this.quotationSelections == null || this.quotationSelections.length <= 0) {
this.$message.warning('请勾选价单!')
this.$message.warning('请勾选价单!')
return return
} }
let tempData = { let tempData = {
currentStatus: 'C', currentStatus: 'C',
informationList: this.quotationSelections, informationList: this.quotationSelections,
} }
//
//
checkQuotationStatus(tempData).then(({data}) => { checkQuotationStatus(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
if (data.flag === 1) { // if (data.flag === 1) { //
this.packQuotationResultModal() this.packQuotationResultModal()
} else { // } else { //
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
} }
} else { } else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
@ -1036,7 +1036,7 @@
fileContentList: [], fileContentList: [],
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
this.quotationSelections.forEach(val => { this.quotationSelections.forEach(val => {
this.enterResultData.quotationNo += ';' + val.quotationNo this.enterResultData.quotationNo += ';' + val.quotationNo
}) })
@ -1044,19 +1044,19 @@
this.enterResultModalFlag = true this.enterResultModalFlag = true
}, },
/** /**
* 保存价结果
* 保存价结果
*/ */
saveQuotationResult () { saveQuotationResult () {
if (this.enterResultData.actualityQuotationDate === '' || this.enterResultData.actualityQuotationDate == null) { if (this.enterResultData.actualityQuotationDate === '' || this.enterResultData.actualityQuotationDate == null) {
this.$message.warning('请选择实际价日期!')
this.$message.warning('请选择实际价日期!')
return return
} }
if (this.enterResultData.quotationResultInformation === '' || this.enterResultData.quotationResultInformation == null) { if (this.enterResultData.quotationResultInformation === '' || this.enterResultData.quotationResultInformation == null) {
this.$message.warning('请填写价结果信息!')
this.$message.warning('请填写价结果信息!')
return return
} }
if (this.quotationSelections.length > 1) { if (this.quotationSelections.length > 1) {
this.$confirm(`是否录入多条价结果?`, '提示', {
this.$confirm(`是否录入多条价结果?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
@ -1099,7 +1099,7 @@
} }
}, },
/** /**
* 关闭价结果模态框
* 关闭价结果模态框
*/ */
closeQuotationResultModal () { closeQuotationResultModal () {
// //
@ -1120,25 +1120,25 @@
/** /**
* 提交客户
* 提交客户
*/ */
submitQuotationModal () { submitQuotationModal () {
//
//
if (this.quotationSelections == null || this.quotationSelections.length <= 0) { if (this.quotationSelections == null || this.quotationSelections.length <= 0) {
this.$message.warning('请勾选价单!')
this.$message.warning('请勾选价单!')
return return
} }
let tempData = { let tempData = {
currentStatus: 'E', currentStatus: 'E',
informationList: this.quotationSelections, informationList: this.quotationSelections,
} }
//
//
checkQuotationStatus(tempData).then(({data}) => { checkQuotationStatus(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
if (data.flag === 1) { // if (data.flag === 1) { //
this.packSubmitQuotationModal() this.packSubmitQuotationModal()
} else { // } else { //
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
} }
} else { } else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
@ -1160,7 +1160,7 @@
quotationResultStatus: 'S', quotationResultStatus: 'S',
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
this.quotationSelections.forEach(val => { this.quotationSelections.forEach(val => {
this.submitResultData.quotationNo += ';' + val.quotationNo this.submitResultData.quotationNo += ';' + val.quotationNo
}) })
@ -1180,7 +1180,7 @@
return return
} }
if (this.quotationSelections.length > 1) { if (this.quotationSelections.length > 1) {
this.$confirm(`是否提交多条客户价?`, '提示', {
this.$confirm(`是否提交多条客户价?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
@ -1211,22 +1211,22 @@
* 客户回复 * 客户回复
*/ */
customerResponseModal () { customerResponseModal () {
//
//
if (this.quotationSelections == null || this.quotationSelections.length <= 0) { if (this.quotationSelections == null || this.quotationSelections.length <= 0) {
this.$message.warning('请勾选价单!')
this.$message.warning('请勾选价单!')
return return
} }
let tempData = { let tempData = {
currentStatus: 'S', currentStatus: 'S',
informationList: this.quotationSelections, informationList: this.quotationSelections,
} }
//
//
checkQuotationStatus(tempData).then(({data}) => { checkQuotationStatus(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
if (data.flag === 1) { // if (data.flag === 1) { //
this.packCustomerResponseModal() this.packCustomerResponseModal()
} else { // } else { //
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
this.$message.warning('选中的价单进度不一致或与按钮不符,请确认!')
} }
} else { } else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
@ -1249,7 +1249,7 @@
quotationResultStatus: 'R', quotationResultStatus: 'R',
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
this.quotationSelections.forEach(val => { this.quotationSelections.forEach(val => {
this.customerResponseData.quotationNo += ';' + val.quotationNo this.customerResponseData.quotationNo += ';' + val.quotationNo
}) })
@ -1299,9 +1299,9 @@
} }
}, },
// ======== ========
// ======== ========
/** /**
* 获取价单附件列表
* 获取价单附件列表
*/ */
getFileContentData () { getFileContentData () {
let currentData = { let currentData = {
@ -1321,7 +1321,7 @@
*/ */
uploadFile () { uploadFile () {
let currentData = { let currentData = {
titleCon: '批量价附件上传',
titleCon: '批量价附件上传',
site: this.$store.state.user.site, site: this.$store.state.user.site,
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
quotationNo: this.enterResultData.quotationNo, quotationNo: this.enterResultData.quotationNo,

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

@ -46,7 +46,7 @@
<el-form-item :label="'项目名称'"> <el-form-item :label="'项目名称'">
<el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input> <el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'价专员'">
<el-form-item :label="'价专员'">
<el-input v-model="searchData.quoterName" clearable style="width: 120px"></el-input> <el-input v-model="searchData.quoterName" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'优先等级'"> <el-form-item :label="'优先等级'">
@ -85,7 +85,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 价列表 -->
<!-- 价列表 -->
<el-table <el-table
:height="height" :height="height"
:data="dataList" :data="dataList"
@ -143,7 +143,7 @@
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 :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">
@ -161,7 +161,7 @@
<el-input v-model="modalData.projectName" style="width: 221px"></el-input> <el-input v-model="modalData.projectName" style="width: 221px"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="quoterName" :rules="rules.quoterName"> <el-form-item prop="quoterName" :rules="rules.quoterName">
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">价专员</a></span>
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">价专员</a></span>
<el-input v-model="modalData.quoterName" style="width: 221px"></el-input> <el-input v-model="modalData.quoterName" style="width: 221px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -213,15 +213,15 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 录入价结果模态框 -->
<el-dialog title="录入价结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" width="785px">
<!-- 录入价结果模态框 -->
<el-dialog title="录入价结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" width="785px">
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left: 0px;margin-top: 10px;"> <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-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-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-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left:0px;margin-top: 5px;"> <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-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-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-item>
</el-form> </el-form>
@ -268,8 +268,8 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 提交客户价模态框 -->
<el-dialog title="提交客户价" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" width="620px">
<!-- 提交客户价模态框 -->
<el-dialog title="提交客户价" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" width="620px">
<el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" style="margin-left: 0px;margin-top: 10px;"> <el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" style="margin-left: 0px;margin-top: 10px;">
<el-form-item label="实际提交客户日期" prop="actualitySubmissionDate" :rules="submitResultRules.actualitySubmissionDate"> <el-form-item label="实际提交客户日期" prop="actualitySubmissionDate" :rules="submitResultRules.actualitySubmissionDate">
<el-date-picker v-model="submitResultData.actualitySubmissionDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker> <el-date-picker v-model="submitResultData.actualitySubmissionDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker>
@ -377,8 +377,8 @@
<!-- 页签 --> <!-- 页签 -->
<el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; min-height: 500px;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);border: 2px;" @tab-click="tabClick" class="customer-tab"> <el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; min-height: 500px;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);border: 2px;" @tab-click="tabClick" class="customer-tab">
<!-- 价详细信息页签 -->
<el-tab-pane label="价详细信息" name="quotation_detail_information" style="">
<!-- 价详细信息页签 -->
<el-tab-pane label="价详细信息" name="quotation_detail_information" style="">
<el-form :inline="true" label-position="top" :model="quotationDetailData" style="margin-left: 10px;margin-top: 10px;"> <el-form :inline="true" label-position="top" :model="quotationDetailData" style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="技术注意事项"> <el-form-item label="技术注意事项">
<el-input <el-input
@ -402,20 +402,20 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<!-- 价结果页签 -->
<el-tab-pane label="价结果" name="quotation_result">
<!-- 价结果页签 -->
<el-tab-pane label="价结果" name="quotation_result">
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 5px;"> <el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 5px;">
<el-button v-if="quotationResultData.quotationResultStatus === 'C'" type="primary" @click="quotationResultModal()">录入价结果</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'E'" type="primary" @click="submitQuotationModal()">提交客户</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'C'" type="primary" @click="quotationResultModal()">录入价结果</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'E'" type="primary" @click="submitQuotationModal()">提交客户</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'S'" type="primary" @click="customerResponseModal()">客户回复</el-button> <el-button v-if="quotationResultData.quotationResultStatus === 'S'" type="primary" @click="customerResponseModal()">客户回复</el-button>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 2px;"> <el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: 2px;">
<el-form-item label="实际价日期">
<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-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-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: -1px;"> <el-form :inline="true" label-position="top" :model="quotationResultData" style="margin-left: 10px;margin-top: -1px;">
<el-form-item label="价结果信息">
<el-form-item label="价结果信息">
<el-input type="textarea" v-model="quotationResultData.quotationResultInformation" readonly :rows="2" resize='none' show-word-limit style="width: 760px;height: 20px"></el-input> <el-input type="textarea" v-model="quotationResultData.quotationResultInformation" readonly :rows="2" resize='none' show-word-limit style="width: 760px;height: 20px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -782,19 +782,19 @@
<script> <script>
import { import {
quotationInformationSearch, //
quotationInformationSave, //
quotationInformationEdit, //
quotationInformationDelete, //
getFileContentList, //
quotationResultSearch, //
quotationInformationSearch, //
quotationInformationSave, //
quotationInformationEdit, //
quotationInformationDelete, //
getFileContentList, //
quotationResultSearch, //
deleteQuotationFile, // deleteQuotationFile, //
downLoadQuotationFile, // downLoadQuotationFile, //
saveQuotationResult, //
saveQuotationResult, //
saveSubmitResult, // saveSubmitResult, //
saveCustomerResponse, // saveCustomerResponse, //
getProjectPartList, // getProjectPartList, //
checkQuotationStatus, //
checkQuotationStatus, //
getProjectInformation, // getProjectInformation, //
getCustomerInformation // getCustomerInformation //
} from '@/api/quotation/quotationInformation.js' } from '@/api/quotation/quotationInformation.js'
@ -995,7 +995,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1QuotationNo', serialNumber: '102001Table1QuotationNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationNo', columnProp: 'quotationNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1013,7 +1013,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CustomerNo', serialNumber: '102001Table1CustomerNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerNo', columnProp: 'customerNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1031,7 +1031,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CustomerDesc', serialNumber: '102001Table1CustomerDesc',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'customerDesc', columnProp: 'customerDesc',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1049,7 +1049,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1ProjectId', serialNumber: '102001Table1ProjectId',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'projectId', columnProp: 'projectId',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1067,7 +1067,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1ProjectName', serialNumber: '102001Table1ProjectName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'projectName', columnProp: 'projectName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1085,7 +1085,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1TrackerName', serialNumber: '102001Table1TrackerName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'trackerName', columnProp: 'trackerName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1103,11 +1103,11 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1QuoterName', serialNumber: '102001Table1QuoterName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quoterName', columnProp: 'quoterName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '价专员',
columnLabel: '价专员',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -1121,7 +1121,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1TestPartNo', serialNumber: '102001Table1TestPartNo',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'testPartNo', columnProp: 'testPartNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1139,7 +1139,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1PartName', serialNumber: '102001Table1PartName',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'partName', columnProp: 'partName',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1157,7 +1157,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1PriorityLevel', serialNumber: '102001Table1PriorityLevel',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'priorityLevel', columnProp: 'priorityLevel',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1175,7 +1175,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1RequiredCompletionDate', serialNumber: '102001Table1RequiredCompletionDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'requiredCompletionDate', columnProp: 'requiredCompletionDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1193,7 +1193,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1quotationStatus', serialNumber: '102001Table1quotationStatus',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'quotationStatus', columnProp: 'quotationStatus',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1211,7 +1211,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CreateDate', serialNumber: '102001Table1CreateDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createDate', columnProp: 'createDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1229,7 +1229,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1CreateBy', serialNumber: '102001Table1CreateBy',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'createBy', columnProp: 'createBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1247,7 +1247,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1UpdateDate', serialNumber: '102001Table1UpdateDate',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateDate', columnProp: 'updateDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1265,7 +1265,7 @@
functionId: 102001, functionId: 102001,
serialNumber: '102001Table1UpdateBy', serialNumber: '102001Table1UpdateBy',
tableId: '102001Table1', tableId: '102001Table1',
tableName: '价信息表',
tableName: '价信息表',
columnProp: 'updateBy', columnProp: 'updateBy',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1725,14 +1725,14 @@
}) })
}, },
/** /**
* 获取价结果列表
* 获取价结果列表
*/ */
getQuotationResult () { getQuotationResult () {
let tempData = { let tempData = {
site: this.$store.state.user.site, site: this.$store.state.user.site,
quotationNo: this.quotationCurrentRow.quotationNo quotationNo: this.quotationCurrentRow.quotationNo
} }
//
//
quotationResultSearch(tempData).then(({data}) => { quotationResultSearch(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.quotationResultData = data.rows[0] this.quotationResultData = data.rows[0]
@ -1751,7 +1751,7 @@
site: this.$store.state.user.site, site: this.$store.state.user.site,
projectId: this.quotationCurrentRow.projectId projectId: this.quotationCurrentRow.projectId
} }
//
//
getProjectInformation(tempData).then(({data}) => { getProjectInformation(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.projectInformationData = data.rows[0] this.projectInformationData = data.rows[0]
@ -1768,7 +1768,7 @@
site: this.$store.state.user.site, site: this.$store.state.user.site,
customerNo: this.quotationCurrentRow.customerNo customerNo: this.quotationCurrentRow.customerNo
} }
//
//
getCustomerInformation(tempData).then(({data}) => { getCustomerInformation(tempData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.customerInformationData = data.rows[0] this.customerInformationData = data.rows[0]
@ -1780,12 +1780,12 @@
// ======== / ======== // ======== / ========
/** /**
* 价信息新增模态框
* 价信息新增模态框
*/ */
addModal () { addModal () {
this.modalData = { this.modalData = {
flag: '1', flag: '1',
title: '价新增',
title: '价新增',
site: this.$store.state.user.site, site: this.$store.state.user.site,
quotationNo: '', quotationNo: '',
customerNo: '', customerNo: '',
@ -1822,13 +1822,13 @@
this.modalFlag = true this.modalFlag = true
}, },
/** /**
* 价信息编辑模态框
* 价信息编辑模态框
* @param row * @param row
*/ */
updateModal (row) { updateModal (row) {
this.modalData = { this.modalData = {
flag: '2', flag: '2',
title: '价编辑',
title: '价编辑',
site: row.site, site: row.site,
quotationNo: row.quotationNo, quotationNo: row.quotationNo,
customerNo: row.customerNo, customerNo: row.customerNo,
@ -1939,11 +1939,11 @@
return return
} }
if (this.modalData.quoter === '' || this.modalData.quoter == null) { if (this.modalData.quoter === '' || this.modalData.quoter == null) {
this.$message.warning('请选择价专员编码!')
this.$message.warning('请选择价专员编码!')
return return
} }
if (this.modalData.quoterName === '' || this.modalData.quoterName == null) { if (this.modalData.quoterName === '' || this.modalData.quoterName == null) {
this.$message.warning('请选择价专员名称!')
this.$message.warning('请选择价专员名称!')
return return
} }
if (this.modalData.testPartNo === '' || this.modalData.testPartNo == null) { if (this.modalData.testPartNo === '' || this.modalData.testPartNo == null) {
@ -1999,14 +1999,14 @@
} }
}, },
/** /**
* 价信息删除
* 价信息删除
*/ */
delModal () { delModal () {
if(this.quotationSelections.length === 0){ if(this.quotationSelections.length === 0){
this.$message.warning('请勾选要删除的价信息!')
this.$message.warning('请勾选要删除的价信息!')
return return
} }
this.$confirm(`是否删除这 `+ this.quotationSelections.length +`价信息?`, '提示', {
this.$confirm(`是否删除这 `+ this.quotationSelections.length +`价信息?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
@ -2037,7 +2037,7 @@
// ======== ======== // ======== ========
/** /**
* 单机选中价信息
* 单机选中价信息
* @param row * @param row
*/ */
quotationClickRow (row) { quotationClickRow (row) {
@ -2046,7 +2046,7 @@
this.quotationDetailData = row this.quotationDetailData = row
}, },
/** /**
* 复选价信息
* 复选价信息
* @param val * @param val
*/ */
selectionQuotation (val) { selectionQuotation (val) {
@ -2054,7 +2054,7 @@
this.$refs.selectDiv.setLengthselected(this.quotationSelections.length) this.$refs.selectDiv.setLengthselected(this.quotationSelections.length)
}, },
// ======== ========
// ======== ========
/** /**
* 封装录入方法 * 封装录入方法
*/ */
@ -2069,7 +2069,7 @@
fileContentList: [], fileContentList: [],
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
// if (this.quotationSelections.length > 0) { // if (this.quotationSelections.length > 0) {
// this.quotationSelections.forEach(val => { // this.quotationSelections.forEach(val => {
// this.enterResultData.quotationNo += ';' + val.quotationNo // this.enterResultData.quotationNo += ';' + val.quotationNo
@ -2079,27 +2079,27 @@
// this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo // this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo
// } // }
this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo
// //
// //
// this.getFileContentList() // this.getFileContentList()
this.enterResultModalFlag = true this.enterResultModalFlag = true
}, },
/** /**
* 录入价结果
* 录入价结果
*/ */
quotationResultModal () { quotationResultModal () {
// //
// //
// if (this.quotationSelections != null && this.quotationSelections.length > 0) { // if (this.quotationSelections != null && this.quotationSelections.length > 0) {
// let tempData = { // let tempData = {
// currentStatus: 'C', // currentStatus: 'C',
// informationList: this.quotationSelections, // informationList: this.quotationSelections,
// } // }
// //
// //
// checkQuotationStatus(tempData).then(({data}) => { // checkQuotationStatus(tempData).then(({data}) => {
// if (data && data.code === 0) { // if (data && data.code === 0) {
// if (data.flag === 1) { // // if (data.flag === 1) { //
// this.packQuotationResultModal() // this.packQuotationResultModal()
// } else { // // } else { //
// this.$message.warning('')
// this.$message.warning('')
// } // }
// } else { // } else {
// this.$alert(data.msg, '', { // this.$alert(data.msg, '', {
@ -2107,25 +2107,25 @@
// }) // })
// } // }
// }) // })
// } else { //
// } else { //
// this.packQuotationResultModal() // this.packQuotationResultModal()
// } // }
this.packQuotationResultModal() this.packQuotationResultModal()
}, },
/** /**
* 保存价结果
* 保存价结果
*/ */
saveQuotationResult () { saveQuotationResult () {
if (this.enterResultData.actualityQuotationDate === '' || this.enterResultData.actualityQuotationDate == null) { if (this.enterResultData.actualityQuotationDate === '' || this.enterResultData.actualityQuotationDate == null) {
this.$message.warning('请选择实际价日期!')
this.$message.warning('请选择实际价日期!')
return return
} }
if (this.enterResultData.quotationResultInformation === '' || this.enterResultData.quotationResultInformation == null) { if (this.enterResultData.quotationResultInformation === '' || this.enterResultData.quotationResultInformation == null) {
this.$message.warning('请填写价结果信息!')
this.$message.warning('请填写价结果信息!')
return return
} }
// if (this.quotationSelections.length > 1) { // if (this.quotationSelections.length > 1) {
// this.$confirm(`?`, '', {
// this.$confirm(`?`, '', {
// confirmButtonText: '', // confirmButtonText: '',
// cancelButtonText: '', // cancelButtonText: '',
// type: 'warning' // type: 'warning'
@ -2182,7 +2182,7 @@
quotationResultStatus: 'S', quotationResultStatus: 'S',
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
// if (this.quotationSelections.length > 0) { // if (this.quotationSelections.length > 0) {
// this.quotationSelections.forEach(val => { // this.quotationSelections.forEach(val => {
// this.submitResultData.quotationNo += ';' + val.quotationNo // this.submitResultData.quotationNo += ';' + val.quotationNo
@ -2195,22 +2195,22 @@
this.submitResultModalFlag = true this.submitResultModalFlag = true
}, },
/** /**
* 提交客户
* 提交客户
*/ */
submitQuotationModal () { submitQuotationModal () {
// //
// //
// if (this.quotationSelections != null && this.quotationSelections.length > 0) { // if (this.quotationSelections != null && this.quotationSelections.length > 0) {
// let tempData = { // let tempData = {
// currentStatus: 'E', // currentStatus: 'E',
// informationList: this.quotationSelections, // informationList: this.quotationSelections,
// } // }
// //
// //
// checkQuotationStatus(tempData).then(({data}) => { // checkQuotationStatus(tempData).then(({data}) => {
// if (data && data.code === 0) { // if (data && data.code === 0) {
// if (data.flag === 1) { // // if (data.flag === 1) { //
// this.packSubmitQuotationModal() // this.packSubmitQuotationModal()
// } else { // // } else { //
// this.$message.warning('')
// this.$message.warning('')
// } // }
// } else { // } else {
// this.$alert(data.msg, '', { // this.$alert(data.msg, '', {
@ -2218,7 +2218,7 @@
// }) // })
// } // }
// }) // })
// } else { //
// } else { //
// this.packSubmitQuotationModal() // this.packSubmitQuotationModal()
// } // }
this.packSubmitQuotationModal() this.packSubmitQuotationModal()
@ -2236,7 +2236,7 @@
return return
} }
// if (this.quotationSelections.length > 1) { // if (this.quotationSelections.length > 1) {
// this.$confirm(`?`, '', {
// this.$confirm(`?`, '', {
// confirmButtonText: '', // confirmButtonText: '',
// cancelButtonText: '', // cancelButtonText: '',
// type: 'warning' // type: 'warning'
@ -2294,7 +2294,7 @@
quotationResultStatus: 'R', quotationResultStatus: 'R',
updateBy: this.$store.state.user.name updateBy: this.$store.state.user.name
} }
//
//
// if (this.quotationSelections.length > 0) { // if (this.quotationSelections.length > 0) {
// this.quotationSelections.forEach(val => { // this.quotationSelections.forEach(val => {
// this.customerResponseData.quotationNo += ';' + val.quotationNo // this.customerResponseData.quotationNo += ';' + val.quotationNo
@ -2310,19 +2310,19 @@
* 客户回复 * 客户回复
*/ */
customerResponseModal () { customerResponseModal () {
// //
// //
// if (this.quotationSelections != null && this.quotationSelections.length > 0) { // if (this.quotationSelections != null && this.quotationSelections.length > 0) {
// let tempData = { // let tempData = {
// currentStatus: 'S', // currentStatus: 'S',
// informationList: this.quotationSelections, // informationList: this.quotationSelections,
// } // }
// //
// //
// checkQuotationStatus(tempData).then(({data}) => { // checkQuotationStatus(tempData).then(({data}) => {
// if (data && data.code === 0) { // if (data && data.code === 0) {
// if (data.flag === 1) { // // if (data.flag === 1) { //
// this.packCustomerResponseModal() // this.packCustomerResponseModal()
// } else { // // } else { //
// this.$message.warning('')
// this.$message.warning('')
// } // }
// } else { // } else {
// this.$alert(data.msg, '', { // this.$alert(data.msg, '', {
@ -2330,7 +2330,7 @@
// }) // })
// } // }
// }) // })
// } else { //
// } else { //
// this.packCustomerResponseModal() // this.packCustomerResponseModal()
// } // }
this.packCustomerResponseModal() this.packCustomerResponseModal()
@ -2396,9 +2396,9 @@
// } // }
}, },
// ======== ========
// ======== ========
/** /**
* 获取价单附件列表
* 获取价单附件列表
*/ */
getFileContentData () { getFileContentData () {
let currentData = { let currentData = {
@ -2414,7 +2414,7 @@
}) })
}, },
// /** // /**
// *
// *
// */ // */
// getFileContentList () { // getFileContentList () {
// let currentData = { // let currentData = {
@ -2434,7 +2434,7 @@
*/ */
uploadFile () { uploadFile () {
let currentData = { let currentData = {
titleCon: '价附件上传',
titleCon: '价附件上传',
site: this.$store.state.user.site, site: this.$store.state.user.site,
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
quotationNo: this.enterResultData.quotationNo, quotationNo: this.enterResultData.quotationNo,

154
src/views/modules/quotation/sellForQuotation/quotationDetail.vue

@ -5,7 +5,6 @@
<el-button type="primary" @click="quotationLeadIntoDetailFlag = true">新增 <el-button type="primary" @click="quotationLeadIntoDetailFlag = true">新增
</el-button> </el-button>
<el-button type="primary" @click="clickHistoryInquiryLeadIntoBtn(-1)">从询价导入</el-button> <el-button type="primary" @click="clickHistoryInquiryLeadIntoBtn(-1)">从询价导入</el-button>
<el-button type="primary" @click="clickHistoryQuotationDetailBtn">从历史报价导入</el-button> <el-button type="primary" @click="clickHistoryQuotationDetailBtn">从历史报价导入</el-button>
</el-col> </el-col>
<el-col :span="24" style="margin-top: 10px"> <el-col :span="24" style="margin-top: 10px">
@ -27,7 +26,7 @@
label="序号" label="序号"
width="55" width="55"
align="right" align="right"
prop="quotationDetailId">
type="index">
</el-table-column> </el-table-column>
<el-table-column show-overflow-tooltip <el-table-column show-overflow-tooltip
label="产品编码" prop="productNo" label="产品编码" prop="productNo"
@ -969,13 +968,13 @@
<el-form :model="projectPartData" ref="projectPartDataForm" label-position="top"> <el-form :model="projectPartData" ref="projectPartDataForm" label-position="top">
<el-row> <el-row>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="项目编号" prop="toolNo">
<el-form-item label="产品编号" prop="toolNo">
<el-input v-model="projectPartData.testPartNo" clearable/> <el-input v-model="projectPartData.testPartNo" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" :offset="1"> <el-col :span="4" :offset="1">
<el-form-item label="项目名称" prop="toolDescription">
<el-input v-model="projectPartData.partName" clearable/>
<el-form-item label="产品名称" prop="toolDescription">
<el-input v-model="projectPartData.partDesc" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" :offset="1"> <el-col :span="4" :offset="1">
@ -987,9 +986,9 @@
</el-form> </el-form>
<el-table height="300px" stripe border width="30%" @row-dblclick="dblClickProjectPartTable" <el-table height="300px" stripe border width="30%" @row-dblclick="dblClickProjectPartTable"
:data="projectPartTable" ref="projectPartDataTable" :style="{marginTop:'10px'}"> :data="projectPartTable" ref="projectPartDataTable" :style="{marginTop:'10px'}">
<el-table-column label="项目编号" show-overflow-tooltip prop="testPartNo"/>
<el-table-column label="项目名称" show-overflow-tooltip prop="partName"/>
<el-table-column label="项目类别" show-overflow-tooltip prop="partTypeDesc"/>
<el-table-column label="产品编号" show-overflow-tooltip prop="testPartNo"/>
<el-table-column label="产品名称" show-overflow-tooltip prop="partDesc"/>
<el-table-column label="产品类别" show-overflow-tooltip prop="partTypeDesc"/>
</el-table> </el-table>
</el-dialog> </el-dialog>
@ -998,56 +997,51 @@
@close="closeOtherQuotationDetail" @close="closeOtherQuotationDetail"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="otherQuotationDetailDialogFlag" :visible.sync="otherQuotationDetailDialogFlag"
width="50%">
width="55%">
<to-be-quoted ref="tobeQuotedTable" :quotation-no="quotationHeader.internalInquiryNo" :default-flag="false" v-if="options === -1"></to-be-quoted>
<!--搜索条件--> <!--搜索条件-->
<el-form :model="otherDetail" ref="otherDetailForm" label-position="top">
<el-form :model="otherDetail" ref="otherDetailForm" label-position="top" v-show="options !== -1">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4" v-if="options === -1">
<el-form-item label="报价单号">
<el-input v-model="otherDetail.internalInquiryNo" clearable/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item label="报价单号"> <el-form-item label="报价单号">
<el-input v-model="otherDetail.quotationNo" clearable/> <el-input v-model="otherDetail.quotationNo" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item label="产品编码"> <el-form-item label="产品编码">
<el-input v-model="otherDetail.productNo" clearable/> <el-input v-model="otherDetail.productNo" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item label="产品名称"> <el-form-item label="产品名称">
<el-input v-model="otherDetail.productDesc" clearable/> <el-input v-model="otherDetail.productDesc" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label=" "> <el-form-item label=" ">
<el-button v-if="options === -1" @click="initHistoryInquiryLead" type="primary"> </el-button>
<el-button v-if="options !== -1" @click="initOtherQuotationDetail" type="primary"> </el-button>
<el-button @click="initOtherQuotationDetail" type="primary"> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<!--筛选的数据--> <!--筛选的数据-->
<el-table v-if="options===0 || options=== -1" key="otherQuotationDetailTable" :data="otherQuotationDetailList" ref="otherQuotationDetailTable" :style="{marginTop:'10px'}"
<el-table v-if="options===0" key="otherQuotationDetailTable" :data="otherQuotationDetailList" ref="otherQuotationDetailTable" :style="{marginTop:'10px'}"
height="300px" stripe border width="30%" @selection-change="handleSelectionChangeOtherDetail" height="300px" stripe border width="30%" @selection-change="handleSelectionChangeOtherDetail"
@row-click="(row)=>toggleRowSelectionTable(row,'otherQuotationDetailTable')"> @row-click="(row)=>toggleRowSelectionTable(row,'otherQuotationDetailTable')">
<el-table-column <el-table-column
type="selection" type="selection"
width="55" align="center"> width="55" align="center">
</el-table-column> </el-table-column>
<el-table-column v-if="options === -1" label="询价单号" prop="internalInquiryNo" show-overflow-tooltip/>
<el-table-column label="报价单号" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="productDesc" show-overflow-tooltip/>
<el-table-column show-overflow-tooltip label="报价数量" prop="quotationDetailQuantity"/>
<el-table-column show-overflow-tooltip label="总成本" prop="detailTotalCost"/>
<el-table-column show-overflow-tooltip label="利润额" prop="detailProfitAmount"/>
<el-table-column show-overflow-tooltip label="未税总价" prop="systemComputeAmount"/>
<el-table-column show-overflow-tooltip label="未税单价" prop="finalUntaxedPrice"/>
<el-table-column show-overflow-tooltip label="含税总价" prop="systemComputePrice"/>
<el-table-column v-if="options === -1" label="询价单号" prop="internalInquiryNo" width="120" show-overflow-tooltip/>
<el-table-column label="报价单号" prop="quotationNo" width="120" show-overflow-tooltip/>
<el-table-column label="产品编码" prop="productNo" width="160" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="productDesc" width="120" show-overflow-tooltip/>
<el-table-column show-overflow-tooltip label="报价数量" width="120" prop="quotationDetailQuantity"/>
<el-table-column show-overflow-tooltip label="总成本" width="120" prop="detailTotalCost"/>
<el-table-column show-overflow-tooltip label="利润额" width="120" prop="detailProfitAmount"/>
<el-table-column show-overflow-tooltip label="未税总价" width="120" prop="systemComputeAmount"/>
<el-table-column show-overflow-tooltip label="未税单价" width="120" prop="finalUntaxedPrice"/>
<el-table-column show-overflow-tooltip label="含税总价" width="120" prop="systemComputePrice"/>
</el-table> </el-table>
<el-table v-if="options===1" key="otherQuotationPartTable" :data="otherQuotationPartList" ref="otherQuotationPartTable" :style="{marginTop:'10px'}" <el-table v-if="options===1" key="otherQuotationPartTable" :data="otherQuotationPartList" ref="otherQuotationPartTable" :style="{marginTop:'10px'}"
height="300px" stripe border width="30%" @selection-change="handleSelectionChangeOtherDetail" height="300px" stripe border width="30%" @selection-change="handleSelectionChangeOtherDetail"
@ -1056,21 +1050,21 @@
type="selection" type="selection"
width="55" align="center"> width="55" align="center">
</el-table-column> </el-table-column>
<el-table-column label="报价单号" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="productDesc" show-overflow-tooltip/>
<el-table-column label="材料编号" prop="quotationPartNo" show-overflow-tooltip/>
<el-table-column label="材料描述" prop="quotationPartDesc" show-overflow-tooltip/>
<el-table-column label="计量单位" show-overflow-tooltip prop="umId">
<el-table-column label="报价单号" width="120" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" width="160" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" width="120" prop="productDesc" show-overflow-tooltip/>
<el-table-column label="材料编号" width="120" prop="quotationPartNo" show-overflow-tooltip/>
<el-table-column label="材料描述" width="120" prop="quotationPartDesc" show-overflow-tooltip/>
<el-table-column label="计量单位" width="120" show-overflow-tooltip prop="umId">
<template slot-scope="{row,$index}"> <template slot-scope="{row,$index}">
{{getUmName(row.umId)}} {{getUmName(row.umId)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单位用量" show-overflow-tooltip prop="unitDosage"/>
<el-table-column label="损耗率%" show-overflow-tooltip prop="attritionRate"/>
<el-table-column label="调机用量" show-overflow-tooltip prop="transferAmount"/>
<el-table-column label="单位成本" show-overflow-tooltip prop="unitCost"/>
<el-table-column label="单位报价成本" show-overflow-tooltip prop="quotationUnitCost"/>
<el-table-column label="单位用量" width="120" show-overflow-tooltip prop="unitDosage"/>
<el-table-column label="损耗率%" width="120" show-overflow-tooltip prop="attritionRate"/>
<el-table-column label="调机用量" width="120" show-overflow-tooltip prop="transferAmount"/>
<el-table-column label="单位成本" width="120" show-overflow-tooltip prop="unitCost"/>
<el-table-column label="单位报价成本" width="120" show-overflow-tooltip prop="quotationUnitCost"/>
</el-table> </el-table>
<el-table v-if="options===2" key="otherQuotationRoutingTable" :data="otherQuotationRoutingList" ref="otherQuotationRoutingTable" :style="{marginTop:'10px'}" <el-table v-if="options===2" key="otherQuotationRoutingTable" :data="otherQuotationRoutingList" ref="otherQuotationRoutingTable" :style="{marginTop:'10px'}"
@ -1081,7 +1075,7 @@
width="55" align="center"> width="55" align="center">
</el-table-column> </el-table-column>
<el-table-column label="报价单号" width="120" prop="quotationNo" show-overflow-tooltip/> <el-table-column label="报价单号" width="120" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" width="120" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品编码" width="160" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" width="120" prop="productDesc" show-overflow-tooltip/> <el-table-column label="产品名称" width="120" prop="productDesc" show-overflow-tooltip/>
<el-table-column label="工序名称" width="120" prop="quotationRoutingDesc" show-overflow-tooltip/> <el-table-column label="工序名称" width="120" prop="quotationRoutingDesc" show-overflow-tooltip/>
<el-table-column label="加工中心编码" width="120" prop="machiningCenterNo" show-overflow-tooltip/> <el-table-column label="加工中心编码" width="120" prop="machiningCenterNo" show-overflow-tooltip/>
@ -1105,15 +1099,15 @@
type="selection" type="selection"
width="55" align="center"> width="55" align="center">
</el-table-column> </el-table-column>
<el-table-column label="报价单号" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="productDesc" show-overflow-tooltip/>
<el-table-column label="工具编码" prop="toolNo" show-overflow-tooltip/>
<el-table-column label="工具描述" prop="toolDescription" show-overflow-tooltip/>
<el-table-column label="工具数量" prop="toolQuantity" show-overflow-tooltip/>
<el-table-column label="工具成本" prop="unitCost" show-overflow-tooltip/>
<el-table-column label="单位报价成本" prop="quotationUnitCost" show-overflow-tooltip/>
<el-table-column label="预计使用寿命" prop="expectedServiceLife" show-overflow-tooltip/>
<el-table-column label="报价单号" width="120" prop="quotationNo" show-overflow-tooltip/>
<el-table-column label="产品编码" width="160" prop="productNo" show-overflow-tooltip/>
<el-table-column label="产品名称" width="120" prop="productDesc" show-overflow-tooltip/>
<el-table-column label="工具编码" width="120" prop="toolNo" show-overflow-tooltip/>
<el-table-column label="工具描述" width="120" prop="toolDescription" show-overflow-tooltip/>
<el-table-column label="工具数量" width="120" prop="toolQuantity" show-overflow-tooltip/>
<el-table-column label="工具成本" width="120" prop="unitCost" show-overflow-tooltip/>
<el-table-column label="单位报价成本" width="120" prop="quotationUnitCost" show-overflow-tooltip/>
<el-table-column label="预计使用寿命" width="120" prop="expectedServiceLife" show-overflow-tooltip/>
</el-table> </el-table>
<span slot="footer" class="dialog-footer" style="margin-top: 5px"> <span slot="footer" class="dialog-footer" style="margin-top: 5px">
<el-button type="primary" :loading="saveBatchLoading" @click="saveOtherQuotationDetailBtn"> </el-button> <el-button type="primary" :loading="saveBatchLoading" @click="saveOtherQuotationDetailBtn"> </el-button>
@ -1343,6 +1337,7 @@
</div> </div>
</template> </template>
<script> <script>
import toBeQuoted from "./../toBeQuoted.vue";
import { import {
batchDeleteQuotationPart, batchDeleteQuotationPart,
batchDeleteQuotationRouting, batchDeleteQuotationRouting,
@ -1353,38 +1348,41 @@ import {
batchInsertQuotationTool, batchInsertQuotationTool,
deleteQuotationDetail, deleteQuotationDetail,
deleteQuotationPart, deleteQuotationPart,
deleteQuotationPropertiesItem,
deleteQuotationPropertiesItemAvailable,
deleteQuotationRouting, deleteQuotationRouting,
deleteQuotationTool, deleteQuotationTool,
insertQuotationDetail, insertQuotationDetail,
insertQuotationPart, insertQuotationPart,
insertQuotationRouting, insertQuotationRouting,
quotationDetailList,
saveQuotationPropertiesItem,
saveQuotationPropertiesItemAvailable,
saveQuotationTool, saveQuotationTool,
searchQuotationDetail, searchQuotationDetail,
searchQuotationDetailPageByHeaderId, searchQuotationDetailPageByHeaderId,
searchQuotationPart, searchQuotationPart,
searchQuotationRoutingByDetailId,
searchQuotationTool,
updateQuotationDetail,
quotationDetailList,
searchQuotationPropertiesItem, searchQuotationPropertiesItem,
saveQuotationPropertiesItem,
deleteQuotationPropertiesItem,
deleteQuotationPropertiesItemAvailable,
searchQuotationPropertiesItemAvailable, searchQuotationPropertiesItemAvailable,
saveQuotationPropertiesItemAvailable
searchQuotationRoutingByDetailId,
searchQuotationTool,
updateQuotationDetail
} from '@/api/quotation/quotationHeader.js'; } from '@/api/quotation/quotationHeader.js';
import {searchUmInformationList,} from '@/api/part/umInformation.js'; import {searchUmInformationList,} from '@/api/part/umInformation.js';
import {searchToolHeader,searchTool} from '@/api/part/toolHeader.js';
import {searchTool, searchToolHeader} from '@/api/part/toolHeader.js';
import {searchWorkCenter,} from '@/api/part/workCenter.js'; import {searchWorkCenter,} from '@/api/part/workCenter.js';
import {searchPartList,searchPart} from '@/api/part/partInformation.js';
import {getProjectPartList,getProjectPart} from '@/api/project/project.js';
import {searchPart, searchPartList} from '@/api/part/partInformation.js';
import {getProjectPart, getProjectPartList} from '@/api/project/project.js';
import {queryOperationList,} from '@/api/part/routingManagement.js' import {queryOperationList,} from '@/api/part/routingManagement.js'
import {propertiesItemList,propertiesAvailableList} from "@/api/base/properties.js"
import {propertiesItemList} from "@/api/base/properties.js"
import {Decimal} from "decimal.js"; import {Decimal} from "decimal.js";
export default { export default {
props: ['quotationHeader'], props: ['quotationHeader'],
name: "quotationDetail", name: "quotationDetail",
components:{
toBeQuoted,
},
data() { data() {
// //
const validateProductNo = (rule, value, callback) =>{ const validateProductNo = (rule, value, callback) =>{
@ -1394,12 +1392,10 @@ export default {
} }
this.projectPartData.testPartNo = value this.projectPartData.testPartNo = value
getProjectPart(this.projectPartData).then(({data})=>{ getProjectPart(this.projectPartData).then(({data})=>{
if (data === 200){
if (data.data.length === 1){
if (data && data.rows.length === 1){
callback() callback()
return return
} }
}
this.projectPartData.testPartNo = undefined; this.projectPartData.testPartNo = undefined;
callback(new Error(" ")) callback(new Error(" "))
}).catch((error)=>{ }).catch((error)=>{
@ -1693,7 +1689,7 @@ export default {
projectPartData:{ projectPartData:{
site:this.$store.state.user.site, site:this.$store.state.user.site,
testPartNo:undefined,// testPartNo:undefined,//
partName:undefined,//
partDesc:undefined,//
}, },
// //
otherDetail:{ otherDetail:{
@ -2772,6 +2768,24 @@ export default {
let otherSelectionTool = [];// let otherSelectionTool = [];//
switch (this.options){ switch (this.options){
case -1: case -1:
if (this.$refs.tobeQuotedTable.quotationSelections.length === 0){
this.$message.warning("请选择需导入的单号")
return
}
let quotationSelections = this.$refs.tobeQuotedTable.quotationSelections.map(item=>{
return {
createBy: this.$store.state.user.id,
site: this.$store.state.user.site,
productNo: item.testPartNo,
productDesc: item.partName,
quotationDetailQuantity: 1,
quotationDetailStatus: "草稿",
internalInquiryNo: item.quotationNo,
quotationHeaderId: this.quotation.quotationHeaderId
};
})
this.batchInsertQuotationDetailData(quotationSelections);
break;
case 0: case 0:
this.selectionOtherDetailList = this.selectionOtherDetailList.map(value => { this.selectionOtherDetailList = this.selectionOtherDetailList.map(value => {
value.quotationHeaderId = this.quotation.quotationHeaderId; value.quotationHeaderId = this.quotation.quotationHeaderId;
@ -3335,7 +3349,7 @@ export default {
this.projectPartData = { this.projectPartData = {
site:this.$store.state.user.site, site:this.$store.state.user.site,
projectId:undefined,// projectId:undefined,//
projectName:undefined,//
partDesc:undefined,//
} }
this.projectPartTable = []; this.projectPartTable = [];
}, },
@ -3454,7 +3468,7 @@ export default {
dblClickProjectPartTable(row){ dblClickProjectPartTable(row){
row = JSON.parse(JSON.stringify(row)); row = JSON.parse(JSON.stringify(row));
this.insertQuotationDetail.productNo = row.testPartNo; this.insertQuotationDetail.productNo = row.testPartNo;
this.insertQuotationDetail.productDesc = row.partName;
this.insertQuotationDetail.productDesc = row.partDesc;
this.projectPartDialogFlag = false; this.projectPartDialogFlag = false;
}, },
// //

58
src/views/modules/quotation/toBeQuoted.vue

@ -2,32 +2,32 @@
<div> <div>
<el-form label-position="top" :model="searchData" @keyup.enter.native="getDataList"> <el-form label-position="top" :model="searchData" @keyup.enter.native="getDataList">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="2">
<el-col :span="defaultFlag?2:3">
<el-form-item label="客户编码"> <el-form-item label="客户编码">
<el-input v-model="searchData.customerNo" clearable></el-input> <el-input v-model="searchData.customerNo" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="defaultFlag?2:3">
<el-form-item label="客户名称"> <el-form-item label="客户名称">
<el-input v-model="searchData.customerDesc" clearable></el-input> <el-input v-model="searchData.customerDesc" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="2" v-if="defaultFlag">
<el-form-item label="跟单员"> <el-form-item label="跟单员">
<el-input v-model="searchData.trackerName" clearable></el-input> <el-input v-model="searchData.trackerName" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="defaultFlag?2:3">
<el-form-item label="产品编码"> <el-form-item label="产品编码">
<el-input v-model="searchData.testPartNo" clearable></el-input> <el-input v-model="searchData.testPartNo" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="defaultFlag?2:3">
<el-form-item label="产品名称"> <el-form-item label="产品名称">
<el-input v-model="searchData.partName" clearable></el-input> <el-input v-model="searchData.partName" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-col :span="4" v-if="defaultFlag">
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="开始日期"> <el-form-item label="开始日期">
@ -58,25 +58,27 @@
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="2">
<el-col :span="2" :offset="8" v-if="defaultFlag">
<el-form-item label=" ">
</el-form-item>
</el-col>
<el-col :span="defaultFlag?2:3" >
<el-form-item label="项目编码"> <el-form-item label="项目编码">
<el-input v-model="searchData.projectId" clearable></el-input> <el-input v-model="searchData.projectId" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="defaultFlag?2:3">
<el-form-item label="项目名称"> <el-form-item label="项目名称">
<el-input v-model="searchData.projectName" clearable></el-input> <el-input v-model="searchData.projectName" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-col :span="2" v-if="defaultFlag">
<el-form-item label="报价专员"> <el-form-item label="报价专员">
<el-input v-model="searchData.quoterName" clearable></el-input> <el-input v-model="searchData.quoterName" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="2">
<el-form-item label="优先等级">
<el-col :span="2" v-if="defaultFlag">
<el-form-item label="优先等级" >
<el-select v-model="searchData.priorityLevel"> <el-select v-model="searchData.priorityLevel">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option label="紧急" value="紧急"></el-option> <el-option label="紧急" value="紧急"></el-option>
@ -85,10 +87,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-col :span="defaultFlag?6:4">
<el-form-item label=" "> <el-form-item label=" ">
<el-button type="primary" @click="getDataList"> </el-button> <el-button type="primary" @click="getDataList"> </el-button>
<el-button type="primary" :loading="saveBatchQuotationLoading" @click="batchQuotation"> </el-button>
<el-button type="primary" :loading="saveBatchQuotationLoading" @click="batchQuotation" v-if="defaultFlag"> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -96,7 +98,7 @@
<!-- 报价列表 --> <!-- 报价列表 -->
<el-table <el-table
:height="700"
:height="defaultFlag?700:300"
:data="dataList" :data="dataList"
border border
v-loading="dataListLoading" v-loading="dataListLoading"
@ -114,8 +116,9 @@
align="center" align="center"
width="50"> width="50">
</el-table-column> </el-table-column>
<template v-for="(item,index) in columnList">
<el-table-column <el-table-column
v-for="(item,index) in columnList" :key="index"
:key="index"
:sortable="item.columnSortable" :sortable="item.columnSortable"
:prop="item.columnProp" :prop="item.columnProp"
:header-align="item.headerAlign" :header-align="item.headerAlign"
@ -129,6 +132,7 @@
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template> </template>
</el-table-column> </el-table-column>
</template>
</el-table> </el-table>
<selectDiv ref="selectDiv"></selectDiv> <selectDiv ref="selectDiv"></selectDiv>
@ -154,6 +158,17 @@ import {
saveBatchQuotationHeader,// saveBatchQuotationHeader,//
} from '@/api/quotation/quotationHeader.js'; } from '@/api/quotation/quotationHeader.js';
export default { export default {
name:"toBeQuoted",
props:{
defaultFlag:{
type:Boolean,
default:true,
},
quotationNo:{
type:String,
default: "",
}
},
data(){ data(){
return{ return{
// //
@ -329,7 +344,7 @@ export default {
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 130
columnWidth: 160
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -446,7 +461,6 @@ export default {
this.getDataList(); this.getDataList();
}, },
methods:{ methods:{
// change // change
changeDateRange(){ changeDateRange(){
if (this.searchData.dateValue){ if (this.searchData.dateValue){
@ -463,8 +477,12 @@ export default {
getDataList () { getDataList () {
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex this.searchData.page = this.pageIndex
let params = JSON.parse(JSON.stringify(this.searchData))
if (!this.defaultFlag){
params.quotationNo = this.quotationNo;
}
this.dataListLoading = true; this.dataListLoading = true;
quotationInformationSearch(this.searchData).then(({data}) => {
quotationInformationSearch(params).then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.dataList = data.page.list this.dataList = data.page.list
this.pageIndex = data.page.currPage this.pageIndex = data.page.currPage

Loading…
Cancel
Save