|
|
@ -376,9 +376,9 @@ |
|
|
</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-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; min-height: 448px;" type="border-card" @tab-click="tabClick" class="customer-tab"> |
|
|
<!-- 报价详细信息页签 --> |
|
|
<!-- 报价详细信息页签 --> |
|
|
<el-tab-pane label="报价详细信息" name="quotation_detail_information" style="height: 448px"> |
|
|
|
|
|
|
|
|
<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 |
|
|
@ -403,7 +403,7 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<!-- 报价结果页签 --> |
|
|
<!-- 报价结果页签 --> |
|
|
<el-tab-pane label="报价结果" name="quotation_result" style="height: 454px"> |
|
|
|
|
|
|
|
|
<el-tab-pane label="报价结果" name="quotation_result" style=""> |
|
|
<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 === '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 === 'E'" type="primary" @click="submitQuotationModal()">提交客户报价</el-button> |
|
|
@ -489,13 +489,135 @@ |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
<!-- 报价详细信息页签 --> |
|
|
|
|
|
<el-tab-pane label="项目信息" name="project_information"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="projectInformationData" style="margin-left: 10px;margin-top: 5px;"> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目号"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectId" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目名称"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectName" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目类型"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectType" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="客户来源"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectSourceDesc" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="优先级"> |
|
|
|
|
|
<el-input v-model="projectInformationData.priorityDesc" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目状态"> |
|
|
|
|
|
<el-input v-model="projectInformationData.status" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目描述"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectDesc" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目经理"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectManagerName" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目负责人"> |
|
|
|
|
|
<el-input v-model="projectInformationData.projectOwnerName" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="项目权限"> |
|
|
|
|
|
<el-input v-model="projectInformationData.userRoleName" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="其它特殊要求"> |
|
|
|
|
|
<el-input v-model="projectInformationData.remark" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="创建时间"> |
|
|
|
|
|
<el-input v-model="projectInformationData.createDate" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="创建人"> |
|
|
|
|
|
<el-input v-model="projectInformationData.createBy" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="更新时间"> |
|
|
|
|
|
<el-input v-model="projectInformationData.updateDate" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
|
|
<el-form-item label="更新人"> |
|
|
|
|
|
<el-input v-model="projectInformationData.updateBy" readonly></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</el-tab-pane> |
|
|
</el-tabs> |
|
|
</el-tabs> |
|
|
|
|
|
|
|
|
<!-- chooseList模态框 --> |
|
|
<!-- chooseList模态框 --> |
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
|
|
|
|
|
|
<!-- 上传文件的modal --> |
|
|
<!-- 上传文件的modal --> |
|
|
<quotationUploadFile ref="quotationUploadFile" @refreshPageTables="getFileContentData()" v-drag></quotationUploadFile> |
|
|
|
|
|
|
|
|
<quotationUploadFile ref="quotationUploadFile" @refreshPageTables="getFileContentList()" v-drag></quotationUploadFile> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
@ -513,7 +635,8 @@ |
|
|
saveSubmitResult, // 保存提交结果 |
|
|
saveSubmitResult, // 保存提交结果 |
|
|
saveCustomerResponse, // 保存客户回复 |
|
|
saveCustomerResponse, // 保存客户回复 |
|
|
getProjectPartList, // 获取产品列表 |
|
|
getProjectPartList, // 获取产品列表 |
|
|
checkQuotationStatus // 检查报价进度 |
|
|
|
|
|
|
|
|
checkQuotationStatus, // 检查报价进度 |
|
|
|
|
|
getProjectInformation // 获取项目信息 |
|
|
} 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" |
|
|
import quotationUploadFile from "./quotation_upload_file" |
|
|
@ -610,6 +733,7 @@ |
|
|
confirmResults: '', |
|
|
confirmResults: '', |
|
|
confirmBy: '', |
|
|
confirmBy: '', |
|
|
confirmInformation: '', |
|
|
confirmInformation: '', |
|
|
|
|
|
quotationResultStatus: '', |
|
|
createDate: '', |
|
|
createDate: '', |
|
|
createBy: '', |
|
|
createBy: '', |
|
|
updateDate: '', |
|
|
updateDate: '', |
|
|
@ -665,6 +789,19 @@ |
|
|
testPartNo: '', |
|
|
testPartNo: '', |
|
|
partName: '' |
|
|
partName: '' |
|
|
}, |
|
|
}, |
|
|
|
|
|
projectInformationData: { |
|
|
|
|
|
projectId: '', |
|
|
|
|
|
projectName: '', |
|
|
|
|
|
projectType: '', |
|
|
|
|
|
projectSourceDesc: '', |
|
|
|
|
|
priorityDesc: '', |
|
|
|
|
|
status: '', |
|
|
|
|
|
projectDesc: '', |
|
|
|
|
|
projectManagerName: '', |
|
|
|
|
|
projectOwnerName: '', |
|
|
|
|
|
userRoleName: '', |
|
|
|
|
|
remark: '' |
|
|
|
|
|
}, |
|
|
// ======== 数据列表 ======== |
|
|
// ======== 数据列表 ======== |
|
|
dataList: [], |
|
|
dataList: [], |
|
|
fileContentList: [], |
|
|
fileContentList: [], |
|
|
@ -1355,6 +1492,8 @@ |
|
|
refreshCurrentTabTable () { |
|
|
refreshCurrentTabTable () { |
|
|
if (this.activeTable === 'quotation_result') { |
|
|
if (this.activeTable === 'quotation_result') { |
|
|
this.getQuotationResult() |
|
|
this.getQuotationResult() |
|
|
|
|
|
} else if (this.activeTable === 'project_information') { |
|
|
|
|
|
this.getProjectInformation() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -1402,6 +1541,23 @@ |
|
|
// 附件列表 |
|
|
// 附件列表 |
|
|
this.getFileContentData() |
|
|
this.getFileContentData() |
|
|
}, |
|
|
}, |
|
|
|
|
|
/** |
|
|
|
|
|
* 获取项目信息 |
|
|
|
|
|
*/ |
|
|
|
|
|
getProjectInformation () { |
|
|
|
|
|
let tempData = { |
|
|
|
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
projectId: this.quotationCurrentRow.projectId |
|
|
|
|
|
} |
|
|
|
|
|
// 报价结果对象 |
|
|
|
|
|
getProjectInformation(tempData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.projectInformationData = data.rows[0] |
|
|
|
|
|
} else { |
|
|
|
|
|
this.projectInformationData = {} |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// ======== 新增/编辑模态框 ======== |
|
|
// ======== 新增/编辑模态框 ======== |
|
|
/** |
|
|
/** |
|
|
@ -1440,6 +1596,7 @@ |
|
|
confirmResults: '', |
|
|
confirmResults: '', |
|
|
confirmBy: '', |
|
|
confirmBy: '', |
|
|
confirmInformation: '', |
|
|
confirmInformation: '', |
|
|
|
|
|
quotationResultStatus: 'C', |
|
|
createBy: this.$store.state.user.name |
|
|
createBy: this.$store.state.user.name |
|
|
} |
|
|
} |
|
|
this.modalDisableFlag = false |
|
|
this.modalDisableFlag = false |
|
|
@ -1482,6 +1639,7 @@ |
|
|
confirmResults: row.confirmResults, |
|
|
confirmResults: row.confirmResults, |
|
|
confirmBy: row.confirmBy, |
|
|
confirmBy: row.confirmBy, |
|
|
confirmInformation: row.confirmInformation, |
|
|
confirmInformation: row.confirmInformation, |
|
|
|
|
|
quotationResultStatus: row.quotationResultStatus, |
|
|
updateBy: this.$store.state.user.name |
|
|
updateBy: this.$store.state.user.name |
|
|
} |
|
|
} |
|
|
this.modalDisableFlag = true |
|
|
this.modalDisableFlag = true |
|
|
@ -1518,7 +1676,7 @@ |
|
|
/** |
|
|
/** |
|
|
* 确认多选产品 |
|
|
* 确认多选产品 |
|
|
*/ |
|
|
*/ |
|
|
confirmProjectPart(){ |
|
|
|
|
|
|
|
|
confirmProjectPart () { |
|
|
if(this.projectPartListSelections.length === 0){ |
|
|
if(this.projectPartListSelections.length === 0){ |
|
|
this.$message.warning('请勾选产品!') |
|
|
this.$message.warning('请勾选产品!') |
|
|
return |
|
|
return |
|
|
@ -1702,17 +1860,7 @@ |
|
|
this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
this.enterResultData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
} |
|
|
} |
|
|
// 获得这些报价号的全部附件 |
|
|
// 获得这些报价号的全部附件 |
|
|
let currentData = { |
|
|
|
|
|
orderRef1: this.$store.state.user.site, |
|
|
|
|
|
orderRef2: this.enterResultData.quotationNo |
|
|
|
|
|
} |
|
|
|
|
|
getFileContentList(currentData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.enterResultData.fileContentList = data.rows |
|
|
|
|
|
} else { |
|
|
|
|
|
this.enterResultData.fileContentList = [] |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
this.getFileContentList() |
|
|
this.enterResultModalFlag = true |
|
|
this.enterResultModalFlag = true |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
/** |
|
|
@ -1730,10 +1878,8 @@ |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
this.packQuotationResultModal() |
|
|
this.packQuotationResultModal() |
|
|
} else if (data.flag === 2) { // 状态不同 |
|
|
|
|
|
this.$message.warning('进度有误,请再次点击选中行!') |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning('请选择进度一致的报价单进行操作!') |
|
|
|
|
|
|
|
|
} else { // 状态不同 |
|
|
|
|
|
this.$message.warning('选中的报价单进度有误,请确认!') |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
this.$alert(data.msg, '错误', { |
|
|
this.$alert(data.msg, '错误', { |
|
|
@ -1765,7 +1911,7 @@ |
|
|
}).then(() => { |
|
|
}).then(() => { |
|
|
saveQuotationResult(this.enterResultData).then(({data}) => { |
|
|
saveQuotationResult(this.enterResultData).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
this.getQuotationResult() |
|
|
|
|
|
|
|
|
this.getDataList() |
|
|
this.enterResultModalFlag = false |
|
|
this.enterResultModalFlag = false |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: '操作成功', |
|
|
message: '操作成功', |
|
|
@ -1785,7 +1931,7 @@ |
|
|
} else { |
|
|
} else { |
|
|
saveQuotationResult(this.enterResultData).then(({data}) => { |
|
|
saveQuotationResult(this.enterResultData).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
this.getQuotationResult() |
|
|
|
|
|
|
|
|
this.getDataList() |
|
|
this.enterResultModalFlag = false |
|
|
this.enterResultModalFlag = false |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: '操作成功', |
|
|
message: '操作成功', |
|
|
@ -1809,12 +1955,21 @@ |
|
|
packSubmitQuotationModal () { |
|
|
packSubmitQuotationModal () { |
|
|
this.submitResultData = { |
|
|
this.submitResultData = { |
|
|
site: this.$store.state.user.site, |
|
|
site: this.$store.state.user.site, |
|
|
quotationNo: this.quotationCurrentRow.quotationNo, |
|
|
|
|
|
|
|
|
quotationNo: '', |
|
|
actualityQuotationDate: '', |
|
|
actualityQuotationDate: '', |
|
|
quotationResultInformation: '', |
|
|
quotationResultInformation: '', |
|
|
quotationResultStatus: 'S', |
|
|
quotationResultStatus: 'S', |
|
|
updateBy: this.$store.state.user.name |
|
|
updateBy: this.$store.state.user.name |
|
|
} |
|
|
} |
|
|
|
|
|
// 获得选中的报价号 |
|
|
|
|
|
if (this.quotationSelections.length > 0) { |
|
|
|
|
|
this.quotationSelections.forEach(val => { |
|
|
|
|
|
this.submitResultData.quotationNo += ';' + val.quotationNo |
|
|
|
|
|
}) |
|
|
|
|
|
this.submitResultData.quotationNo = this.submitResultData.quotationNo.substring(1) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.submitResultData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
|
|
|
} |
|
|
this.submitResultModalFlag = true |
|
|
this.submitResultModalFlag = true |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
/** |
|
|
@ -1832,10 +1987,8 @@ |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
this.packSubmitQuotationModal() |
|
|
this.packSubmitQuotationModal() |
|
|
} else if (data.flag === 2) { // 状态不同 |
|
|
|
|
|
this.$message.warning('进度有误,请再次点击选中行!') |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning('请选择进度一致的报价单进行操作!') |
|
|
|
|
|
|
|
|
} else { // 状态不同 |
|
|
|
|
|
this.$message.warning('选中的报价单进度有误,请确认!') |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
this.$alert(data.msg, '错误', { |
|
|
this.$alert(data.msg, '错误', { |
|
|
@ -1859,23 +2012,50 @@ |
|
|
this.$message.warning('请选择提交方式!') |
|
|
this.$message.warning('请选择提交方式!') |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
saveSubmitResult(this.submitResultData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getQuotationResult() |
|
|
|
|
|
this.submitResultModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
|
|
|
if (this.quotationSelections.length > 1) { |
|
|
|
|
|
this.$confirm(`是否提交多条客户报价?`, '提示', { |
|
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
|
type: 'warning' |
|
|
|
|
|
}).then(() => { |
|
|
|
|
|
saveSubmitResult(this.submitResultData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
this.submitResultModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
saveSubmitResult(this.submitResultData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
this.submitResultModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -1884,7 +2064,7 @@ |
|
|
packCustomerResponseModal () { |
|
|
packCustomerResponseModal () { |
|
|
this.customerResponseData = { |
|
|
this.customerResponseData = { |
|
|
site: this.$store.state.user.site, |
|
|
site: this.$store.state.user.site, |
|
|
quotationNo: this.quotationCurrentRow.quotationNo, |
|
|
|
|
|
|
|
|
quotationNo: '', |
|
|
actualityReplyDate: '', |
|
|
actualityReplyDate: '', |
|
|
confirmResults: '', |
|
|
confirmResults: '', |
|
|
confirmBy: '', |
|
|
confirmBy: '', |
|
|
@ -1892,6 +2072,15 @@ |
|
|
quotationResultStatus: 'R', |
|
|
quotationResultStatus: 'R', |
|
|
updateBy: this.$store.state.user.name |
|
|
updateBy: this.$store.state.user.name |
|
|
} |
|
|
} |
|
|
|
|
|
// 获得选中的报价号 |
|
|
|
|
|
if (this.quotationSelections.length > 0) { |
|
|
|
|
|
this.quotationSelections.forEach(val => { |
|
|
|
|
|
this.customerResponseData.quotationNo += ';' + val.quotationNo |
|
|
|
|
|
}) |
|
|
|
|
|
this.customerResponseData.quotationNo = this.customerResponseData.quotationNo.substring(1) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.customerResponseData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
|
|
|
} |
|
|
this.customerResponseModalFlag = true |
|
|
this.customerResponseModalFlag = true |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
/** |
|
|
@ -1909,10 +2098,8 @@ |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
if (data.flag === 1) { // 状态一致 |
|
|
this.packCustomerResponseModal() |
|
|
this.packCustomerResponseModal() |
|
|
} else if (data.flag === 2) { // 状态不同 |
|
|
|
|
|
this.$message.warning('进度有误,请再次点击选中行!') |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning('请选择进度一致的报价单进行操作!') |
|
|
|
|
|
|
|
|
} else { // 状态不同 |
|
|
|
|
|
this.$message.warning('选中的报价单进度有误,请确认!') |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
this.$alert(data.msg, '错误', { |
|
|
this.$alert(data.msg, '错误', { |
|
|
@ -1940,23 +2127,50 @@ |
|
|
this.$message.warning('请填写客户确认人!') |
|
|
this.$message.warning('请填写客户确认人!') |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
saveCustomerResponse(this.customerResponseData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getQuotationResult() |
|
|
|
|
|
this.customerResponseModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
|
|
|
if (this.quotationSelections.length > 1) { |
|
|
|
|
|
this.$confirm(`是否提交多条客户回复?`, '提示', { |
|
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
|
type: 'warning' |
|
|
|
|
|
}).then(() => { |
|
|
|
|
|
saveCustomerResponse(this.customerResponseData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
this.customerResponseModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
saveCustomerResponse(this.customerResponseData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
this.customerResponseModalFlag = false |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
message: '操作成功', |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
duration: 1500, |
|
|
|
|
|
onClose: () => { |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// ======== 报价单附件的相关方法 ======== |
|
|
// ======== 报价单附件的相关方法 ======== |
|
|
@ -1976,6 +2190,22 @@ |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
/** |
|
|
|
|
|
* 获得这些报价号的全部附件 |
|
|
|
|
|
*/ |
|
|
|
|
|
getFileContentList () { |
|
|
|
|
|
let currentData = { |
|
|
|
|
|
orderRef1: this.$store.state.user.site, |
|
|
|
|
|
orderRef2: this.enterResultData.quotationNo |
|
|
|
|
|
} |
|
|
|
|
|
getFileContentList(currentData).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.enterResultData.fileContentList = data.rows |
|
|
|
|
|
} else { |
|
|
|
|
|
this.enterResultData.fileContentList = [] |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
/** |
|
|
/** |
|
|
* 上传文件 |
|
|
* 上传文件 |
|
|
*/ |
|
|
*/ |
|
|
@ -2011,7 +2241,7 @@ |
|
|
}).then(() => { |
|
|
}).then(() => { |
|
|
deleteQuotationFile(row).then(({data}) => { |
|
|
deleteQuotationFile(row).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
this.getFileContentData(); |
|
|
|
|
|
|
|
|
this.getFileContentList(); |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
message: '操作成功', |
|
|
message: '操作成功', |
|
|
type: 'success', |
|
|
type: 'success', |
|
|
|