|
|
|
@ -1573,6 +1573,30 @@ |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="项目打样记录" name="projectProofRecord"> |
|
|
|
<el-table |
|
|
|
:data="projectProofRecordList" |
|
|
|
border |
|
|
|
style="width: 100%; margin-top: 5px;" |
|
|
|
:height="this.height + 250" |
|
|
|
v-loading="dataListLoading"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item, index) in columnProjectProofRecordList" |
|
|
|
:key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="true" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed === '' ? false : item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
<div slot="footer" class="dialog-footer" style="margin-top: 0px"> |
|
|
|
<el-button @click="dialogVisible = false">关闭</el-button> |
|
|
|
@ -1736,7 +1760,8 @@ import { |
|
|
|
getExtraDocumentList, getProofDocument, |
|
|
|
projectDocumentSave, |
|
|
|
proofingDocumentNEW, proofingDocumentSave, proofingInformationSave, |
|
|
|
searchProjectAllDocument |
|
|
|
searchProjectAllDocument, |
|
|
|
searchAllProofing |
|
|
|
} from "../../../api/eam/eamProofing"; |
|
|
|
import { |
|
|
|
deleteAndSaveHandle, |
|
|
|
@ -1942,6 +1967,7 @@ import {uploadFileList} from '@/api/base/baseFunction.js'; |
|
|
|
projectANotDocumentConfirmatorList: [], |
|
|
|
projectPartBomList: [],// 量产BOM原始平面数据数组 |
|
|
|
projectPartRoutingList: [],// 原始平面数据数组 |
|
|
|
projectProofRecordList: [], |
|
|
|
confirmatorySelection1: [], |
|
|
|
confirmatorySelection2: [], |
|
|
|
proofDocumentListDefinition: [], |
|
|
|
@ -3489,6 +3515,47 @@ import {uploadFileList} from '@/api/base/baseFunction.js'; |
|
|
|
columnWidth: 150, |
|
|
|
}, |
|
|
|
], |
|
|
|
// 与项目打样记录页表格列保持一致,详情里只按当前项目料号展示,不走列配置收藏。 |
|
|
|
columnProjectProofRecordList: [ |
|
|
|
{ columnProp: 'buDesc', headerAlign: 'center', align: 'center', columnLabel: 'BU', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'projectNo', headerAlign: 'center', align: 'center', columnLabel: '项目编码', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'projectDesc', headerAlign: 'center', align: 'center', columnLabel: '项目名称', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'testPartNo', headerAlign: 'center', align: 'center', columnLabel: '项目料号', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'partDesc', headerAlign: 'center', align: 'center', columnLabel: '料号描述', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'customerNo', headerAlign: 'center', align: 'left', columnLabel: '客户编码', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'customerDesc', headerAlign: 'center', align: 'left', columnLabel: '客户名称', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 150 }, |
|
|
|
{ columnProp: 'buildDate', headerAlign: 'center', align: 'center', columnLabel: '立项日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'priority', headerAlign: 'center', align: 'left', columnLabel: '优先级', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 80 }, |
|
|
|
{ columnProp: 'cProjectRegion', headerAlign: 'center', align: 'left', columnLabel: '区域', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'projectManagerName', headerAlign: 'center', align: 'left', columnLabel: 'PM/Sales', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'projectOwnerName', headerAlign: 'center', align: 'left', columnLabel: 'PjM', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'engineerName', headerAlign: 'center', align: 'left', columnLabel: 'Engineer', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cQualityEngineer1Name', headerAlign: 'center', align: 'left', columnLabel: 'IPQC-Lam/Pri/Etch/Slit', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 170 }, |
|
|
|
{ columnProp: 'cQualityEngineer2Name', headerAlign: 'center', align: 'left', columnLabel: 'IPQC-Converting', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 150 }, |
|
|
|
{ columnProp: 'cQualityEngineer3Name', headerAlign: 'center', align: 'left', columnLabel: 'FQC1', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cQualityEngineer5Name', headerAlign: 'center', align: 'left', columnLabel: 'FQC2', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cQualityEngineer6Name', headerAlign: 'center', align: 'left', columnLabel: 'IQC', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cManufactureEngineerName', headerAlign: 'center', align: 'left', columnLabel: 'MFG', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cQualityEngineer4Name', headerAlign: 'center', align: 'left', columnLabel: 'SQE', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'docEngineerName', headerAlign: 'center', align: 'left', columnLabel: '文档工程师', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'docEngineer2Name', headerAlign: 'center', align: 'left', columnLabel: '文档工程师2', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'ipqcHardTagName', headerAlign: 'center', align: 'left', columnLabel: 'IPQC-Hardtag', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'cQualityEngineer7Name', headerAlign: 'center', align: 'left', columnLabel: '前道工程师', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'status', headerAlign: 'center', align: 'left', columnLabel: '物料状态', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'proofingStatus', headerAlign: 'center', align: 'left', columnLabel: '打样状态', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'proofingResultStatus', headerAlign: 'center', align: 'left', columnLabel: '打样结论', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 100 }, |
|
|
|
{ columnProp: 'needDate', headerAlign: 'center', align: 'center', columnLabel: '项目物料预计完成日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 130 }, |
|
|
|
{ columnProp: 'closeDate', headerAlign: 'center', align: 'center', columnLabel: '转量产日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'finalPartNo', headerAlign: 'center', align: 'left', columnLabel: 'ERP正式料号', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'planStartDate', headerAlign: 'center', align: 'center', columnLabel: '打样开始日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 90 }, |
|
|
|
{ columnProp: 'proofingNo', headerAlign: 'center', align: 'center', columnLabel: '打样单号', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 80 }, |
|
|
|
{ columnProp: 'proofingNumber', headerAlign: 'center', align: 'center', columnLabel: '数量', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 80 }, |
|
|
|
{ columnProp: 'cProjectTypeDb', headerAlign: 'center', align: 'left', columnLabel: '项目分类', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 80 }, |
|
|
|
{ columnProp: 'requiredDeliveryDate', headerAlign: 'center', align: 'center', columnLabel: '打样预计完成日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 120 }, |
|
|
|
{ columnProp: 'actualityDeliveryDate', headerAlign: 'center', align: 'center', columnLabel: '实际完成日期', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 80 }, |
|
|
|
{ columnProp: 'createDate', headerAlign: 'center', align: 'center', columnLabel: '打样单创建时间', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 130 }, |
|
|
|
{ columnProp: 'createBy', headerAlign: 'center', align: 'center', columnLabel: '打样单创建人', columnHidden: false, columnSortable: false, fixed: '', columnWidth: 90 } |
|
|
|
], |
|
|
|
levelList: [], |
|
|
|
rules:{ |
|
|
|
projectNo:[ |
|
|
|
@ -5182,6 +5249,7 @@ import {uploadFileList} from '@/api/base/baseFunction.js'; |
|
|
|
|
|
|
|
showProofDetailModal(row) { |
|
|
|
this.activeModalTab = 'proofRecord' |
|
|
|
this.projectProofRecordList = [] |
|
|
|
// 保存当前行数据 |
|
|
|
this.proofingCurrentRow = JSON.parse(JSON.stringify(row)); |
|
|
|
// 打开模态框 |
|
|
|
@ -6726,6 +6794,76 @@ import {uploadFileList} from '@/api/base/baseFunction.js'; |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
// 项目打样记录页存的是“账号-姓名”,列表只展示姓名;空值不能直接 split,否则整表渲染中断。 |
|
|
|
fillProofRecordPersonName (item) { |
|
|
|
const nameFields = [ |
|
|
|
['projectManager', 'projectManagerName'], |
|
|
|
['projectOwner', 'projectOwnerName'], |
|
|
|
['engineer', 'engineerName'], |
|
|
|
['cQualityEngineer1', 'cQualityEngineer1Name'], |
|
|
|
['cQualityEngineer2', 'cQualityEngineer2Name'], |
|
|
|
['cQualityEngineer3', 'cQualityEngineer3Name'], |
|
|
|
['cManufactureEngineer', 'cManufactureEngineerName'], |
|
|
|
['cQualityEngineer4', 'cQualityEngineer4Name'], |
|
|
|
['cQualityEngineer5', 'cQualityEngineer5Name'], |
|
|
|
['cQualityEngineer6', 'cQualityEngineer6Name'], |
|
|
|
['docEngineer', 'docEngineerName'], |
|
|
|
['docEngineer2', 'docEngineer2Name'], |
|
|
|
['ipqcHardTag', 'ipqcHardTagName'], |
|
|
|
['cQualityEngineer7', 'cQualityEngineer7Name'] |
|
|
|
] |
|
|
|
nameFields.forEach(([source, target]) => { |
|
|
|
const value = item[source] |
|
|
|
if (value === null || value === undefined || value === '') { |
|
|
|
item[target] = '' |
|
|
|
return |
|
|
|
} |
|
|
|
const parts = String(value).split('-') |
|
|
|
item[target] = parts.length > 1 ? parts[1] : String(value) |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
// 详情弹窗绑定的是当前项目物料,打样记录必须按该物料的项目料号收口,避免带出其他料号。 |
|
|
|
fetchProjectProofRecordList () { |
|
|
|
const testPartNo = this.proofingCurrentRow && this.proofingCurrentRow.testPartNo |
|
|
|
? String(this.proofingCurrentRow.testPartNo).trim() |
|
|
|
: '' |
|
|
|
if (!testPartNo) { |
|
|
|
this.projectProofRecordList = [] |
|
|
|
return |
|
|
|
} |
|
|
|
this.dataListLoading = true |
|
|
|
const inData = { |
|
|
|
site: this.proofingCurrentRow.site, |
|
|
|
username: this.$store.state.user.name, |
|
|
|
testPartNo: testPartNo, |
|
|
|
page: 1, |
|
|
|
limit: 1000 |
|
|
|
} |
|
|
|
searchAllProofing(inData).then(({data}) => { |
|
|
|
// 切走页签后丢弃旧响应,避免慢请求把其他页签的加载状态和列表覆盖掉。 |
|
|
|
if (this.activeModalTab !== 'projectProofRecord') { |
|
|
|
return |
|
|
|
} |
|
|
|
this.dataListLoading = false |
|
|
|
if (data && data.code === 0 && data.page) { |
|
|
|
// 打样查询接口按料号模糊匹配,详情页只保留与当前项目料号完全一致的记录。 |
|
|
|
const list = (data.page.list || []).filter(item => String(item.testPartNo || '').trim() === testPartNo) |
|
|
|
list.forEach(item => this.fillProofRecordPersonName(item)) |
|
|
|
this.projectProofRecordList = list |
|
|
|
} else { |
|
|
|
this.projectProofRecordList = [] |
|
|
|
this.$message.error((data && data.msg) || '项目打样记录查询失败') |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
if (this.activeModalTab !== 'projectProofRecord') { |
|
|
|
return |
|
|
|
} |
|
|
|
this.dataListLoading = false |
|
|
|
this.projectProofRecordList = [] |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
copyFile (row) { |
|
|
|
this.copyModalData = { |
|
|
|
...row, |
|
|
|
@ -6853,6 +6991,11 @@ import {uploadFileList} from '@/api/base/baseFunction.js'; |
|
|
|
} else { |
|
|
|
this.projectPartRoutingList = [] |
|
|
|
} |
|
|
|
if (this.activeModalTab === 'projectProofRecord') { |
|
|
|
this.fetchProjectProofRecordList() |
|
|
|
} else { |
|
|
|
this.projectProofRecordList = [] |
|
|
|
} |
|
|
|
}, |
|
|
|
//获取按钮的权限数据 |
|
|
|
getButtonAuthData () { |
|
|
|
|