|
|
@ -65,8 +65,7 @@ |
|
|
<el-input v-model="searchData.customerPartNo" clearable style="width: 120px"></el-input> |
|
|
<el-input v-model="searchData.customerPartNo" clearable style="width: 120px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item :label="'优先等级'"> |
|
|
<el-form-item :label="'优先等级'"> |
|
|
<dict-data-select v-model="searchData.priorityLevel" clearable style="width: 120px" :use-default-value="false" |
|
|
|
|
|
dict-type="priority_Level"/> |
|
|
|
|
|
|
|
|
<dict-data-select v-model="searchData.priorityLevel" clearable style="width: 120px" :use-default-value="false" dict-type="priority_Level"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item :label="'状态'"> |
|
|
<el-form-item :label="'状态'"> |
|
|
<el-select v-model="searchData.quotationStatus" style="width: 120px"> |
|
|
<el-select v-model="searchData.quotationStatus" style="width: 120px"> |
|
|
@ -114,7 +113,6 @@ |
|
|
type="selection" |
|
|
type="selection" |
|
|
header-align="center" |
|
|
header-align="center" |
|
|
align="center" |
|
|
align="center" |
|
|
:selectable="selectFlag" |
|
|
|
|
|
width="50"> |
|
|
width="50"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
@ -136,13 +134,11 @@ |
|
|
<span v-show="scope.row.quotationResultStatus === 'S'">已提交报价</span> |
|
|
<span v-show="scope.row.quotationResultStatus === 'S'">已提交报价</span> |
|
|
<span v-show="scope.row.quotationResultStatus === 'R'">客户已反馈</span> |
|
|
<span v-show="scope.row.quotationResultStatus === 'R'">客户已反馈</span> |
|
|
</span> |
|
|
</span> |
|
|
<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> |
|
|
</div> |
|
|
</div> |
|
|
<div v-else> |
|
|
<div v-else> |
|
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
|
|
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
@ -180,8 +176,7 @@ |
|
|
</el-pagination> |
|
|
</el-pagination> |
|
|
|
|
|
|
|
|
<!-- 询价模态框 --> |
|
|
<!-- 询价模态框 --> |
|
|
<el-dialog :title="modalData.title" v-drag @open="openSaveDataDialog" @close="closeSaveDataDialog" |
|
|
|
|
|
:close-on-click-modal="false" top="10vh" :visible.sync="modalFlag" width="1200px"> |
|
|
|
|
|
|
|
|
<el-dialog :title="modalData.title" v-drag @open="openSaveDataDialog" @close="closeSaveDataDialog" :close-on-click-modal="false" top="10vh" :visible.sync="modalFlag" width="1200px"> |
|
|
<el-form label-position="top" ref="saveDataForm" :model="modalData" :rules="rules"> |
|
|
<el-form label-position="top" ref="saveDataForm" :model="modalData" :rules="rules"> |
|
|
<el-row :gutter="10"> |
|
|
<el-row :gutter="10"> |
|
|
<el-col :span="12"> |
|
|
<el-col :span="12"> |
|
|
@ -199,33 +194,27 @@ |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
<el-form-item label="要求完成日期" prop="requiredCompletionDate"> |
|
|
<el-form-item label="要求完成日期" prop="requiredCompletionDate"> |
|
|
<el-date-picker v-model="modalData.requiredCompletionDate" |
|
|
|
|
|
:disabled="(quotationInformationFlag('requiredCompletionDate') === 'N' && modalData.flag === '2') || detailVisible" |
|
|
|
|
|
style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="modalData.requiredCompletionDate" :disabled="(quotationInformationFlag('requiredCompletionDate') === 'N' && modalData.flag === '2') || detailVisible" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> |
|
|
</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="优先等级" > |
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('priorityLevel') === 'N' && modalData.flag === '2') || detailVisible" |
|
|
|
|
|
v-model="modalData.priorityLevel" dict-type="priority_Level"></dict-data-select> |
|
|
|
|
|
|
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('priorityLevel') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.priorityLevel" dict-type="priority_Level"></dict-data-select> |
|
|
</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-input-number v-field="accessField('102001001')" :step="0" :disabled="(quotationInformationFlag('quotationAmount') === 'N' && modalData.flag === '2') || detailVisible" |
|
|
|
|
|
:controls="false" v-model="modalData.quotationAmount"></el-input-number> |
|
|
|
|
|
|
|
|
<el-input-number v-field="accessField('102001001')" :step="0" :disabled="(quotationInformationFlag('quotationAmount') === 'N' && modalData.flag === '2') || detailVisible" :controls="false" v-model="modalData.quotationAmount"></el-input-number> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row :gutter="10"> |
|
|
<el-row :gutter="10"> |
|
|
<el-col :span="12"> |
|
|
<el-col :span="12"> |
|
|
<el-form-item prop="projectId" label="项目号"> |
|
|
<el-form-item prop="projectId" label="项目号"> |
|
|
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" style="" |
|
|
|
|
|
@click="chooseProjectListFlag = true"><a>项目号</a></span> |
|
|
|
|
|
|
|
|
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" @click="chooseProjectListFlag = true"><a>项目号</a></span> |
|
|
<el-row :gutter="10"> |
|
|
<el-row :gutter="10"> |
|
|
<el-col :span="8"> |
|
|
<el-col :span="8"> |
|
|
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" |
|
|
|
|
|
v-model="modalData.projectId" @blur="handleQueryProjectByCustomer"></el-input> |
|
|
|
|
|
|
|
|
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" v-model="modalData.projectId" @blur="handleQueryProjectByCustomer"></el-input> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="16"> |
|
|
<el-col :span="16"> |
|
|
<el-input disabled v-model="modalData.projectName"></el-input> |
|
|
<el-input disabled v-model="modalData.projectName"></el-input> |
|
|
@ -235,21 +224,17 @@ |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
<el-form-item label="Quote Type"> |
|
|
<el-form-item label="Quote Type"> |
|
|
<dict-data-select v-if="modalFlag" |
|
|
|
|
|
:disabled="(quotationInformationFlag('quoteType') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.quoteType" |
|
|
|
|
|
clearable dict-type="quote_type" :use-default-value="modalData.flag === '1'"></dict-data-select> |
|
|
|
|
|
|
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('quoteType') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.quoteType" clearable dict-type="quote_type" :use-default-value="modalData.flag === '1'"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
<el-form-item label="客户询价单号" prop="customerQuoteNo"> |
|
|
<el-form-item label="客户询价单号" prop="customerQuoteNo"> |
|
|
<el-input :disabled="(quotationInformationFlag('customerQuoteNo') === 'N' && modalData.flag === '2') || detailVisible" |
|
|
|
|
|
v-model="modalData.customerQuoteNo"></el-input> |
|
|
|
|
|
|
|
|
<el-input :disabled="(quotationInformationFlag('customerQuoteNo') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.customerQuoteNo"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
<el-form-item label="是否需要Sourcing"> |
|
|
<el-form-item label="是否需要Sourcing"> |
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('sourcing') === 'N' && modalData.flag === '2') || detailVisible" |
|
|
|
|
|
v-model="modalData.sourcing" dict-type="sourcing"></dict-data-select> |
|
|
|
|
|
|
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('sourcing') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.sourcing" dict-type="sourcing"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
@ -268,8 +253,7 @@ |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
<el-form-item label="Delivery Terms" prop="deliveryTerms"> |
|
|
<el-form-item label="Delivery Terms" prop="deliveryTerms"> |
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('deliveryTerms') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.deliveryTerms" |
|
|
|
|
|
clearable dict-type="delivery_terms" :use-default-value="modalData.flag === '1'"></dict-data-select> |
|
|
|
|
|
|
|
|
<dict-data-select v-if="modalFlag" :disabled="(quotationInformationFlag('deliveryTerms') === 'N' && modalData.flag === '2') || detailVisible" v-model="modalData.deliveryTerms" clearable dict-type="delivery_terms" :use-default-value="modalData.flag === '1'"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
<el-col :span="4"> |
|
|
@ -394,7 +378,7 @@ |
|
|
<el-button type="primary" v-if="!detailVisible" @click="saveData">保存</el-button> |
|
|
<el-button type="primary" v-if="!detailVisible" @click="saveData">保存</el-button> |
|
|
</template> |
|
|
</template> |
|
|
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|
|
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|
|
<template v-if="modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name)"> |
|
|
|
|
|
|
|
|
<template v-if="superAdmin || (modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name))"> |
|
|
<template v-if="isAuth('102001001:submit')"> |
|
|
<template v-if="isAuth('102001001:submit')"> |
|
|
<el-button v-if="modalData.quotationStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button> |
|
|
<el-button v-if="modalData.quotationStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button> |
|
|
</template> |
|
|
</template> |
|
|
@ -405,8 +389,7 @@ |
|
|
</el-footer> |
|
|
</el-footer> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
<!--选择项目模态框--> |
|
|
<!--选择项目模态框--> |
|
|
<el-dialog title="选择-项目" :close-on-click-modal="false" @close="closeProjectInfoDialog" @open="searchProjectInfoList" |
|
|
|
|
|
:visible.sync="chooseProjectListFlag" width="600px"> |
|
|
|
|
|
|
|
|
<el-dialog title="选择-项目" :close-on-click-modal="false" @close="closeProjectInfoDialog" @open="searchProjectInfoList" :visible.sync="chooseProjectListFlag" width="600px"> |
|
|
<el-form label-position="top" :model="searchProjectData" ref="closeProjectInfoForm"> |
|
|
<el-form label-position="top" :model="searchProjectData" ref="closeProjectInfoForm"> |
|
|
<el-row :gutter="10"> |
|
|
<el-row :gutter="10"> |
|
|
<el-col :span="6"> |
|
|
<el-col :span="6"> |
|
|
@ -425,10 +408,11 @@ |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-table :height="223" |
|
|
|
|
|
:data="projectList" |
|
|
|
|
|
border |
|
|
|
|
|
@row-dblclick="projectClickRow"> |
|
|
|
|
|
|
|
|
<el-table |
|
|
|
|
|
:height="223" |
|
|
|
|
|
:data="projectList" |
|
|
|
|
|
border |
|
|
|
|
|
@row-dblclick="projectClickRow"> |
|
|
<el-table-column label="项目号" prop="projectId"/> |
|
|
<el-table-column label="项目号" prop="projectId"/> |
|
|
<el-table-column label="项目名称" prop="projectName"/> |
|
|
<el-table-column label="项目名称" prop="projectName"/> |
|
|
<el-table-column label="终端客户编码" prop="finalCustomerId"/> |
|
|
<el-table-column label="终端客户编码" prop="finalCustomerId"/> |
|
|
@ -438,22 +422,15 @@ |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 录入询价结果模态框 --> |
|
|
<!-- 录入询价结果模态框 --> |
|
|
<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-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-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-item label="实际询价日期" prop="actualityQuotationDate" :rules="enterResultRules.actualityQuotationDate"> |
|
|
|
|
|
<el-date-picker v-model="enterResultData.actualityQuotationDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-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-item label="询价结果信息" prop="quotationResultInformation" |
|
|
|
|
|
:rules="enterResultRules.quotationResultInformation"> |
|
|
|
|
|
<el-input type="textarea" v-model="enterResultData.quotationResultInformation" :rows="3" resize='none' |
|
|
|
|
|
show-word-limit style="width: 500px;height: 30px"></el-input> |
|
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left:0px;margin-top: 5px;"> |
|
|
|
|
|
<el-form-item label="询价结果信息" prop="quotationResultInformation" :rules="enterResultRules.quotationResultInformation"> |
|
|
|
|
|
<el-input type="textarea" v-model="enterResultData.quotationResultInformation" :rows="3" resize='none' show-word-limit style="width: 500px;height: 30px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" style="margin-left: 0px;margin-top: 50px;"> |
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" style="margin-left: 0px;margin-top: 50px;"> |
|
|
@ -500,14 +477,10 @@ |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 提交客户询价模态框 --> |
|
|
<!-- 提交客户询价模态框 --> |
|
|
<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-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-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-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-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="提交方式" prop="submissionMethod" :rules="submitResultRules.submissionMethod"> |
|
|
<el-form-item label="提交方式" prop="submissionMethod" :rules="submitResultRules.submissionMethod"> |
|
|
<el-select v-model="submitResultData.submissionMethod" style="width: 221px"> |
|
|
<el-select v-model="submitResultData.submissionMethod" style="width: 221px"> |
|
|
@ -520,8 +493,7 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="submitResultData" style="margin-left:0px;margin-top: 5px;"> |
|
|
<el-form :inline="true" label-position="top" :model="submitResultData" style="margin-left:0px;margin-top: 5px;"> |
|
|
<el-form-item label="提交备注"> |
|
|
<el-form-item label="提交备注"> |
|
|
<el-input type="textarea" v-model="submitResultData.submissionRemark" :rows="3" resize='none' show-word-limit |
|
|
|
|
|
style="width: 456px;height: 30px"></el-input> |
|
|
|
|
|
|
|
|
<el-input type="textarea" v-model="submitResultData.submissionRemark" :rows="3" resize='none' show-word-limit style="width: 456px;height: 30px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
@ -531,13 +503,10 @@ |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 客户回复模态框 --> |
|
|
<!-- 客户回复模态框 --> |
|
|
<el-dialog title="客户回复" :close-on-click-modal="false" v-drag :visible.sync="customerResponseModalFlag" |
|
|
|
|
|
width="620px"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" :rules="customerResponseRules" |
|
|
|
|
|
style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
|
|
|
|
|
<el-dialog title="客户回复" :close-on-click-modal="false" v-drag :visible.sync="customerResponseModalFlag" width="620px"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" :rules="customerResponseRules" style="margin-left: 0px;margin-top: 10px;"> |
|
|
<el-form-item label="实际回复日期" prop="actualityReplyDate" :rules="customerResponseRules.actualityReplyDate"> |
|
|
<el-form-item label="实际回复日期" prop="actualityReplyDate" :rules="customerResponseRules.actualityReplyDate"> |
|
|
<el-date-picker v-model="customerResponseData.actualityReplyDate" type="date" value-format="yyyy-MM-dd" |
|
|
|
|
|
placeholder="请选择日期" style="width: 185px"></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker v-model="customerResponseData.actualityReplyDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 185px"></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="客户确认结果" prop="confirmResults" :rules="customerResponseRules.confirmResults"> |
|
|
<el-form-item label="客户确认结果" prop="confirmResults" :rules="customerResponseRules.confirmResults"> |
|
|
<el-select v-model="customerResponseData.confirmResults" style="width: 185px"> |
|
|
<el-select v-model="customerResponseData.confirmResults" style="width: 185px"> |
|
|
@ -549,11 +518,9 @@ |
|
|
<el-input v-model="customerResponseData.confirmBy" style="width: 185px"></el-input> |
|
|
<el-input v-model="customerResponseData.confirmBy" style="width: 185px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" |
|
|
|
|
|
style="margin-left:0px;margin-top: 5px;"> |
|
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" style="margin-left:0px;margin-top: 5px;"> |
|
|
<el-form-item label="客户回复信息"> |
|
|
<el-form-item label="客户回复信息"> |
|
|
<el-input type="textarea" v-model="customerResponseData.confirmInformation" :rows="3" resize='none' |
|
|
|
|
|
show-word-limit style="width: 595px;height: 30px"></el-input> |
|
|
|
|
|
|
|
|
<el-input type="textarea" v-model="customerResponseData.confirmInformation" :rows="3" resize='none' show-word-limit style="width: 595px;height: 30px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
@ -582,8 +549,7 @@ |
|
|
:label="item.columnLabel"> |
|
|
:label="item.columnLabel"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
|
|
|
|
|
<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> |
|
|
</el-table> |
|
|
</el-table> |
|
|
@ -606,19 +572,16 @@ |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 页签 --> |
|
|
<!-- 页签 --> |
|
|
<el-tabs v-model="activeTable" type="border-card" style="margin-top: 0px;" |
|
|
|
|
|
@tab-click="tabClick" class="customer-tab"> |
|
|
|
|
|
|
|
|
<el-tabs v-model="activeTable" type="border-card" style="margin-top: 0px;" @tab-click="tabClick" class="customer-tab"> |
|
|
<el-tab-pane label="基本信息" name="priceCheck"> |
|
|
<el-tab-pane label="基本信息" name="priceCheck"> |
|
|
<price-check-properties :disabled="quotationCurrentRow.quotationStatus === '已完成'" ref="tabProperties" v-model:data-list="priceCheckPropertiesList" |
|
|
|
|
|
:quotation-no="quotationCurrentRow.quotationBatchNo" height="45vh"></price-check-properties> |
|
|
|
|
|
|
|
|
<price-check-properties :disabled="quotationCurrentRow.quotationStatus === '已完成'" ref="tabProperties" v-model:data-list="priceCheckPropertiesList" :quotation-no="quotationCurrentRow.quotationBatchNo" height="45vh"></price-check-properties> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<el-tab-pane label="采购详细信息" name="tabMaterialSourcing"> |
|
|
<el-tab-pane label="采购详细信息" name="tabMaterialSourcing"> |
|
|
<price-check-detail :disabled="quotationCurrentRow.quotationStatus === '已完成'" :quote="quotationCurrentRow" :data-list="priceCheckDetailList" @refresh="getPriceCheckDetailList" :height="500"></price-check-detail> |
|
|
<price-check-detail :disabled="quotationCurrentRow.quotationStatus === '已完成'" :quote="quotationCurrentRow" :data-list="priceCheckDetailList" @refresh="getPriceCheckDetailList" :height="500"></price-check-detail> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
<!-- 项目信息页签 --> |
|
|
<!-- 项目信息页签 --> |
|
|
<el-tab-pane label="项目信息" name="project_information"> |
|
|
<el-tab-pane label="项目信息" name="project_information"> |
|
|
<el-form label-position="top" :model="projectInformationData" |
|
|
|
|
|
style="margin-left: 10px;margin-top: 5px;margin-right: 10px"> |
|
|
|
|
|
|
|
|
<el-form label-position="top" :model="projectInformationData" style="margin-left: 10px;margin-top: 5px;margin-right: 10px"> |
|
|
<el-row :gutter="20"> |
|
|
<el-row :gutter="20"> |
|
|
<el-col :span="8"> |
|
|
<el-col :span="8"> |
|
|
<div class="grid-content bg-purple"> |
|
|
<div class="grid-content bg-purple"> |
|
|
@ -796,6 +759,7 @@ import { |
|
|
} from '@/api/customer/customerContact.js' |
|
|
} from '@/api/customer/customerContact.js' |
|
|
import { |
|
|
import { |
|
|
getNodeAuthority, // 获取节点权限 |
|
|
getNodeAuthority, // 获取节点权限 |
|
|
|
|
|
checkSuperAdmin, // 校验是否为超级管理员 |
|
|
} from '@/api/changeManagement/changeManagement.js' |
|
|
} from '@/api/changeManagement/changeManagement.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" |
|
|
@ -2113,13 +2077,25 @@ export default { |
|
|
this.secondHeight = window.innerHeight -this.height; |
|
|
this.secondHeight = window.innerHeight -this.height; |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
created() { |
|
|
created() { |
|
|
this.handleRouteQuery() |
|
|
|
|
|
|
|
|
this.handleRouteQuery() |
|
|
|
|
|
this.checkSuperAdmin() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
activated () { |
|
|
activated () { |
|
|
this.handleRouteQuery() |
|
|
|
|
|
|
|
|
this.handleRouteQuery() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
|
|
|
|
|
|
// 校验是否为超级管理员 |
|
|
|
|
|
checkSuperAdmin () { |
|
|
|
|
|
checkSuperAdmin().then(({data}) => { |
|
|
|
|
|
this.superAdmin = data.superAdmin |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
handleRouteQuery(){ |
|
|
handleRouteQuery(){ |
|
|
if (this.$route.params.type === 'tokenLogin') { |
|
|
if (this.$route.params.type === 'tokenLogin') { |
|
|
if (this.$route.params.docNo) { |
|
|
if (this.$route.params.docNo) { |
|
|
@ -2150,7 +2126,7 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}else if (this.$route.params.quotationNo) { |
|
|
|
|
|
|
|
|
} else if (this.$route.params.quotationNo) { |
|
|
this.searchData.quotationNo = this.$route.params.quotationNo |
|
|
this.searchData.quotationNo = this.$route.params.quotationNo |
|
|
this.searchData.limit = this.pageSize |
|
|
this.searchData.limit = this.pageSize |
|
|
this.searchData.page = this.pageIndex |
|
|
this.searchData.page = this.pageIndex |
|
|
@ -2173,19 +2149,18 @@ export default { |
|
|
// this.refreshCurrentTabTable() //加载当前的页签的table |
|
|
// this.refreshCurrentTabTable() //加载当前的页签的table |
|
|
this.quotationClickRow(this.dataList[0]) |
|
|
this.quotationClickRow(this.dataList[0]) |
|
|
// this.updateModal(this.dataList[0]) |
|
|
// this.updateModal(this.dataList[0]) |
|
|
}else { |
|
|
|
|
|
|
|
|
} else { |
|
|
this.quotationCurrentRow = {} |
|
|
this.quotationCurrentRow = {} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}else { |
|
|
|
|
|
|
|
|
} else { |
|
|
this.getDataList() |
|
|
this.getDataList() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
// ======== 分页相关方法 ======== |
|
|
// ======== 分页相关方法 ======== |
|
|
/** |
|
|
/** |
|
|
* 每页数 |
|
|
* 每页数 |
|
|
* @param val |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
sizeChangeHandle(val) { |
|
|
sizeChangeHandle(val) { |
|
|
this.pageSize = val |
|
|
this.pageSize = val |
|
|
@ -2196,9 +2171,9 @@ export default { |
|
|
this.searchByAnyField(this.filterSearchData) |
|
|
this.searchByAnyField(this.filterSearchData) |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 当前页 |
|
|
* 当前页 |
|
|
* @param val |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
currentChangeHandle(val) { |
|
|
currentChangeHandle(val) { |
|
|
this.pageIndex = val |
|
|
this.pageIndex = val |
|
|
@ -2212,7 +2187,6 @@ export default { |
|
|
// ======== 复选框操作相关方法 ======== |
|
|
// ======== 复选框操作相关方法 ======== |
|
|
/** |
|
|
/** |
|
|
* 选中一行 |
|
|
* 选中一行 |
|
|
* @param row |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
projectPartClickRow(row) { |
|
|
projectPartClickRow(row) { |
|
|
if (this.modalData.flag === '1') { |
|
|
if (this.modalData.flag === '1') { |
|
|
@ -2220,6 +2194,7 @@ export default { |
|
|
this.confirmProjectPart(); |
|
|
this.confirmProjectPart(); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 多选 |
|
|
* 多选 |
|
|
* @param val |
|
|
* @param val |
|
|
@ -2227,36 +2202,26 @@ export default { |
|
|
selectionProjectPart(val) { |
|
|
selectionProjectPart(val) { |
|
|
this.projectPartListSelections = val |
|
|
this.projectPartListSelections = val |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获取唯一值,一般都为 id |
|
|
* 获取唯一值,一般都为 id |
|
|
* @param row |
|
|
|
|
|
* @returns {*} |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
getRowKeys(row) { |
|
|
getRowKeys(row) { |
|
|
return row.testPartNo; |
|
|
return row.testPartNo; |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
|
|
|
* 未知 |
|
|
|
|
|
* @returns {boolean} |
|
|
|
|
|
*/ |
|
|
|
|
|
selectFlag() { |
|
|
|
|
|
return true; |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// ======== 页签切换相关方法 ======== |
|
|
// ======== 页签切换相关方法 ======== |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 列表表格选择替换 |
|
|
* 列表表格选择替换 |
|
|
* @param tab |
|
|
|
|
|
* @param event |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
tabClick(tab, event) { |
|
|
tabClick(tab, event) { |
|
|
// 刷新列表数据 |
|
|
// 刷新列表数据 |
|
|
this.refreshCurrentTabTable() |
|
|
this.refreshCurrentTabTable() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 当前值发生变化的时候修改 |
|
|
* 当前值发生变化的时候修改 |
|
|
* @param row |
|
|
|
|
|
* @param oldRow |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
changeCurrentRow(row, oldRow) { |
|
|
changeCurrentRow(row, oldRow) { |
|
|
// 判断是否是获取焦点的事件 |
|
|
// 判断是否是获取焦点的事件 |
|
|
@ -2266,6 +2231,7 @@ export default { |
|
|
this.refreshCurrentTabTable() |
|
|
this.refreshCurrentTabTable() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 刷新页签的table数据 |
|
|
* 刷新页签的table数据 |
|
|
*/ |
|
|
*/ |
|
|
@ -2311,6 +2277,7 @@ export default { |
|
|
this.dataListLoading = false |
|
|
this.dataListLoading = false |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获取询价结果列表 |
|
|
* 获取询价结果列表 |
|
|
*/ |
|
|
*/ |
|
|
@ -2330,6 +2297,7 @@ export default { |
|
|
// 附件列表 |
|
|
// 附件列表 |
|
|
this.getFileContentData() |
|
|
this.getFileContentData() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获取项目信息 |
|
|
* 获取项目信息 |
|
|
*/ |
|
|
*/ |
|
|
@ -2347,6 +2315,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获取客户信息 |
|
|
* 获取客户信息 |
|
|
*/ |
|
|
*/ |
|
|
@ -2418,7 +2387,6 @@ export default { |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
/** |
|
|
* 询价信息编辑模态框 |
|
|
* 询价信息编辑模态框 |
|
|
* @param row |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
async updateModal(row) { |
|
|
async updateModal(row) { |
|
|
await this.getNodeAuthority(row) |
|
|
await this.getNodeAuthority(row) |
|
|
@ -2521,6 +2489,7 @@ export default { |
|
|
this.queryLoading = false |
|
|
this.queryLoading = false |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 确认多选产品 |
|
|
* 确认多选产品 |
|
|
*/ |
|
|
*/ |
|
|
@ -2542,6 +2511,7 @@ export default { |
|
|
this.modalData.testPartNo = this.modalData.testPartNo.substring(1) |
|
|
this.modalData.testPartNo = this.modalData.testPartNo.substring(1) |
|
|
this.modalData.partName = this.modalData.partName.substring(1) |
|
|
this.modalData.partName = this.modalData.partName.substring(1) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 客户信息新增/编辑 |
|
|
* 客户信息新增/编辑 |
|
|
*/ |
|
|
*/ |
|
|
@ -2633,6 +2603,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 询价信息删除 |
|
|
* 询价信息删除 |
|
|
*/ |
|
|
*/ |
|
|
@ -2673,7 +2644,6 @@ export default { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}).catch(() => { |
|
|
|
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -2707,9 +2677,9 @@ export default { |
|
|
this.$message.error(error) |
|
|
this.$message.error(error) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 复选询价信息 |
|
|
* 复选询价信息 |
|
|
* @param val |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
selectionQuotation(val) { |
|
|
selectionQuotation(val) { |
|
|
this.quotationSelections = val |
|
|
this.quotationSelections = val |
|
|
@ -2774,6 +2744,7 @@ export default { |
|
|
// } |
|
|
// } |
|
|
this.packQuotationResultModal() |
|
|
this.packQuotationResultModal() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 保存询价结果 |
|
|
* 保存询价结果 |
|
|
*/ |
|
|
*/ |
|
|
@ -2857,6 +2828,7 @@ export default { |
|
|
this.submitResultData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
this.submitResultData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
this.submitResultModalFlag = true |
|
|
this.submitResultModalFlag = true |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 提交客户询价 |
|
|
* 提交客户询价 |
|
|
*/ |
|
|
*/ |
|
|
@ -2886,6 +2858,7 @@ export default { |
|
|
// } |
|
|
// } |
|
|
this.packSubmitQuotationModal() |
|
|
this.packSubmitQuotationModal() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 保存提交结果 |
|
|
* 保存提交结果 |
|
|
*/ |
|
|
*/ |
|
|
@ -2970,6 +2943,7 @@ export default { |
|
|
this.customerResponseData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
this.customerResponseData.quotationNo = this.quotationCurrentRow.quotationNo |
|
|
this.customerResponseModalFlag = true |
|
|
this.customerResponseModalFlag = true |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 客户回复 |
|
|
* 客户回复 |
|
|
*/ |
|
|
*/ |
|
|
@ -2999,6 +2973,7 @@ export default { |
|
|
// } |
|
|
// } |
|
|
this.packCustomerResponseModal() |
|
|
this.packCustomerResponseModal() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 保存客户回复 |
|
|
* 保存客户回复 |
|
|
*/ |
|
|
*/ |
|
|
@ -3094,6 +3069,7 @@ export default { |
|
|
// } |
|
|
// } |
|
|
// }) |
|
|
// }) |
|
|
// }, |
|
|
// }, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 上传文件 |
|
|
* 上传文件 |
|
|
*/ |
|
|
*/ |
|
|
@ -3119,7 +3095,6 @@ export default { |
|
|
}, |
|
|
}, |
|
|
/** |
|
|
/** |
|
|
* 文件删除 |
|
|
* 文件删除 |
|
|
* @param row |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
deleteFile(row) { |
|
|
deleteFile(row) { |
|
|
this.$confirm('确定要删除此文件?', '提示', { |
|
|
this.$confirm('确定要删除此文件?', '提示', { |
|
|
@ -3143,12 +3118,11 @@ export default { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}).catch(() => { |
|
|
|
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 文件下载 |
|
|
* 文件下载 |
|
|
* @param row |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
downloadFile(row) { |
|
|
downloadFile(row) { |
|
|
downLoadQuotationFile(row).then(({data}) => { |
|
|
downLoadQuotationFile(row).then(({data}) => { |
|
|
@ -3196,8 +3170,6 @@ export default { |
|
|
// ======== chooseList相关方法 ======== |
|
|
// ======== chooseList相关方法 ======== |
|
|
/** |
|
|
/** |
|
|
* 获取基础数据列表S |
|
|
* 获取基础数据列表S |
|
|
* @param val |
|
|
|
|
|
* @param type |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
getBaseList(val, type) { |
|
|
getBaseList(val, type) { |
|
|
this.tagNo = val |
|
|
this.tagNo = val |
|
|
@ -3234,9 +3206,9 @@ export default { |
|
|
this.$refs.baseList.init(val, strVal, conSql) |
|
|
this.$refs.baseList.init(val, strVal, conSql) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 列表方法的回调 |
|
|
* 列表方法的回调 |
|
|
* @param val |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
getBaseData(val) { |
|
|
getBaseData(val) { |
|
|
if (this.tagNo === 102) { |
|
|
if (this.tagNo === 102) { |
|
|
|