|
|
|
@ -206,32 +206,37 @@ |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-if="!this.allMFGList.includes(this.$store.state.user.name) || this.$store.state.user.name === 'admin'" |
|
|
|
v-if="this.$store.state.user.name === 'admin' || !this.authUpdate" |
|
|
|
fixed="right" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="180" |
|
|
|
width="220" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.partType !== 'Active'"> |
|
|
|
<a v-if="scope.row.status === '草稿' && scope.row.status !== '已量产'" style="color: gray; pointer-events: none;">下达</a> |
|
|
|
<a v-if="scope.row.status !== '草稿' && scope.row.status !== '已量产'" style="color: gray; pointer-events: none;">新增打样</a> |
|
|
|
<a style="color: gray; pointer-events: none;">详情</a> |
|
|
|
<a v-if="scope.row.status !== '草稿' && scope.row.status !== '已量产'" style="color: gray; pointer-events: none;">转正式料号</a> |
|
|
|
<a v-if="scope.row.status === '进行中' && scope.row.status !== '已量产'" style="color: gray; pointer-events: none;">转量产</a> |
|
|
|
</div> |
|
|
|
<div v-else-if="scope.row.status !== '已量产' && scope.row.status !== '正式量产'"> |
|
|
|
<a v-if="scope.row.status === '草稿' && scope.row.status !== '已量产'" type="text" size="small" @click="updateModalStatus(scope.row)">下达</a> |
|
|
|
<a v-if="scope.row.status !== '草稿'" type="text" size="small" @click="addProofRecord(scope.row)">新增打样</a> |
|
|
|
<a type="text" size="small" @click="showProofDetailModal(scope.row)">详情</a> |
|
|
|
<a v-if="scope.row.status !== '草稿' && scope.row.status !== '已量产'" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a> |
|
|
|
<a v-if="scope.row.status === '进行中' || scope.row.status === '已量产'" type="text" size="small" @click="updateModalStatus(scope.row)">转量产</a> |
|
|
|
</div> |
|
|
|
<div v-else-if="scope.row.status === '已量产'"> |
|
|
|
<a style="color: #0c4dbb" type="text" size="small" @click="addProofRecord(scope.row)">新增打样</a> |
|
|
|
<a style="color: #0c4dbb" type="text" size="small" @click="showProofDetailModal(scope.row)">详情</a> |
|
|
|
<a style="color: #0c4dbb" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a> |
|
|
|
<a style="color: #0c4dbb" type="text" size="small" @click="updateModalStatus(scope.row)">转量产</a> |
|
|
|
<a style="color: #0c4dbb" type="text" size="small" @click="cancelModalStatus(scope.row)">撤销</a> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
<a style="color: red" type="text" size="small" @click="addProofRecord(scope.row)">新增打样</a> |
|
|
|
<a style="color: red" type="text" size="small" @click="showProofDetailModal(scope.row)">详情</a> |
|
|
|
<a style="color: red" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a> |
|
|
|
<a style="color: red" type="text" size="small" @click="updateModalStatus(scope.row)">转量产</a> |
|
|
|
</div> |
|
|
|
@ -298,9 +303,9 @@ |
|
|
|
<proofRecord ref="proofRecord"></proofRecord> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="转量产阶段文档" name="massProductionStage"> |
|
|
|
<el-button type="primary" icon="el-icon-upload" style="margin-top: -5px" @click="projectDocumentList()">文档清单定义</el-button> |
|
|
|
<el-button type="primary" v-if="!this.authUpdate" icon="el-icon-upload" style="margin-top: -5px" @click="projectDocumentList()">文档清单定义</el-button> |
|
|
|
<el-button type="primary" v-if="this.proofingCurrentRow.status !== '草稿'" icon="el-icon-upload" style="margin-top: -5px" @click="uploadOtherDocument()">上传其他文档</el-button> |
|
|
|
<el-button type="primary" v-if="this.sendMassMailFlag === true" style="margin-top: -5px" @click="sendMassMailHandle()">邮件提醒</el-button> |
|
|
|
<el-button type="primary" v-if="this.sendMassMailFlag === true && !this.authUpdate" style="margin-top: -5px" @click="sendMassMailHandle()">邮件提醒</el-button> |
|
|
|
<el-table |
|
|
|
:data="projectOtherDocumentList" |
|
|
|
border |
|
|
|
@ -312,18 +317,31 @@ |
|
|
|
:row-class-name="tableRowClassName" |
|
|
|
v-loading="dataListLoading"> |
|
|
|
<el-table-column |
|
|
|
v-if="this.authUpdate" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="150" |
|
|
|
width="120" |
|
|
|
fixed="left" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="primary" v-if="scope.row.documentDefinitionListId !== '-1'" @click="uploadFile(scope.row)">上传文件</a> |
|
|
|
<a type="text" size="small" v-if="scope.row.documentDefinitionListId !== '-1' && !shouldShowDelete(scope.row)" @click="warnSendMail(scope.row)">提醒</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row) || scope.row.projectPhase === 'SOP文档'" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row)" @click="massProductionDocumentDelete(scope.row)">删除</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-else |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="150" |
|
|
|
fixed="left" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="primary" v-if="scope.row.documentDefinitionListId !== '-1'" @click="uploadFile(scope.row)">上传文件</a> |
|
|
|
<a type="text" size="small" v-if="scope.row.documentDefinitionListId !== '-1' && !shouldShowDelete(scope.row)" @click="warnSendMail(scope.row)">提醒</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row) || scope.row.projectPhase === 'SOP文档'" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row)" @click="massProductionDocumentDelete(scope.row)">删除</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="序号" type="index" align="center" :index="indexMethod"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> |
|
|
|
@ -357,7 +375,7 @@ |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="所有文档" name="allDocument"> |
|
|
|
<el-button type="primary" v-if="this.proofingCurrentRow.status !== '草稿'" icon="el-icon-upload" style="margin-top: -5px" @click="projectProductionValidationDocument()">选择生产确认文档</el-button> |
|
|
|
<el-button type="primary" v-if="this.proofingCurrentRow.status !== '草稿' && !this.authUpdate" icon="el-icon-upload" style="margin-top: -5px" @click="projectProductionValidationDocument()">选择生产确认文档</el-button> |
|
|
|
<el-table |
|
|
|
:data="projectAllDocumentList" |
|
|
|
border |
|
|
|
@ -1192,6 +1210,278 @@ |
|
|
|
</el-footer> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 模态框:详情 --> |
|
|
|
<el-dialog :visible.sync="dialogVisible" width="80%"> |
|
|
|
<el-tabs style="margin-top: -2px; width: 100%; height: 100%;" v-model="activeModalTab" type="border-card" @tab-click="tabClick"> |
|
|
|
<el-tab-pane label="打样记录" name="proofRecord"> |
|
|
|
<!-- 注意这里使用了一个新的 ref,用于模态框内部的 proofRecord 组件 --> |
|
|
|
<proofRecord ref="proofRecordModal" :inModal="true"></proofRecord> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="转量产阶段文档" name="massProductionStage"> |
|
|
|
<el-button type="primary" v-if="!this.authUpdate" icon="el-icon-upload" style="margin-top: -5px" @click="projectDocumentList()">文档清单定义</el-button> |
|
|
|
<el-button type="primary" v-if="this.proofingCurrentRow.status !== '草稿'" icon="el-icon-upload" style="margin-top: -5px" @click="uploadOtherDocument()">上传其他文档</el-button> |
|
|
|
<el-button type="primary" v-if="this.sendMassMailFlag === true && !this.authUpdate" style="margin-top: -5px" @click="sendMassMailHandle()">邮件提醒</el-button> |
|
|
|
<el-table |
|
|
|
:data="projectOtherDocumentList" |
|
|
|
border |
|
|
|
style="width: 100%;margin-top: 5px;" |
|
|
|
:height="this.height + 250" |
|
|
|
ref="proofDocumentTable" |
|
|
|
@row-click="projectOtherDocumentClickRow" |
|
|
|
@current-change="changeCurrentRow1" |
|
|
|
:row-class-name="tableRowClassName" |
|
|
|
v-loading="dataListLoading"> |
|
|
|
<el-table-column |
|
|
|
v-if="this.authUpdate" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="120" |
|
|
|
fixed="left" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="primary" v-if="scope.row.documentDefinitionListId !== '-1'" @click="uploadFile(scope.row)">上传文件</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row) || scope.row.projectPhase === 'SOP文档'" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-else |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="150" |
|
|
|
fixed="left" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="primary" v-if="scope.row.documentDefinitionListId !== '-1'" @click="uploadFile(scope.row)">上传文件</a> |
|
|
|
<a type="text" size="small" v-if="scope.row.documentDefinitionListId !== '-1' && !shouldShowDelete(scope.row)" @click="warnSendMail(scope.row)">提醒</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row) || scope.row.projectPhase === 'SOP文档'" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row)" @click="massProductionDocumentDelete(scope.row)">删除</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="序号" type="index" align="center" :index="indexMethod"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> |
|
|
|
{{ scope.$index + 1 }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="文档类型" align="left"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> |
|
|
|
{{ getCombinedDocumentType(scope.row) }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnFileContentArray" :key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="所有文档" name="allDocument"> |
|
|
|
<el-button type="primary" v-if="this.proofingCurrentRow.status !== '草稿' && !this.authUpdate" icon="el-icon-upload" style="margin-top: -5px" @click="projectProductionValidationDocument()">选择生产确认文档</el-button> |
|
|
|
<el-table |
|
|
|
:data="projectAllDocumentList" |
|
|
|
border |
|
|
|
style="width: 100%;margin-top: 5px;" |
|
|
|
:height="this.height + 250" |
|
|
|
ref="projectAllDocumentDocumentTable" |
|
|
|
@row-click="projectAllDocumentClickRow" |
|
|
|
v-loading="dataListLoading" |
|
|
|
:row-class-name="tableRowClassName"> |
|
|
|
<el-table-column |
|
|
|
header-align="center" |
|
|
|
fixed="left" |
|
|
|
align="center" |
|
|
|
width="80" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" size="small" v-if="shouldShowDelete(scope.row) || scope.row.uploadedFlag === 'Y'" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
<a type="text" size="small" v-if="scope.row.uploadedFlag === 'N'" @click="uploadAllDocumentFile(scope.row)">上传文件</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="序号" type="index" align="center" :index="indexMethod"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> |
|
|
|
{{ scope.$index + 1 }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="文档类型" align="left"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> |
|
|
|
{{ getCombinedDocumentType(scope.row) }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnProjectAllDocumentList" :key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="生产文档确认进度" name="productionDocumentsConfirmProgress"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8" class="left-section"> |
|
|
|
<div class="table-container" style="height: 100%;margin-top: -5px"> |
|
|
|
<p style="margin-top: -5px">文档清单</p> |
|
|
|
<el-table :data="confirmProgressDocumentList" |
|
|
|
border |
|
|
|
style="width: 100%;margin-top: -5px;" |
|
|
|
:height="this.height + 95"> |
|
|
|
<el-table-column header-align="center" align="center" width="50" prop="itemNo" label="序号"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" prop="documentType" label="文档类型"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" prop="fileName" label="文件名"></el-table-column> |
|
|
|
<el-table-column |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="90" |
|
|
|
fixed="right" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" size="small" @click="viewMassDocumentFile(scope.row)">查看附件</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="15" class="right-section"> |
|
|
|
<div class="table-container" style="height: 100%;margin-top: -5px"> |
|
|
|
<p style="margin-top: -5px">推送人员清单</p> |
|
|
|
<el-table :data="confirmProgressPusherList" |
|
|
|
border |
|
|
|
style="width: 100%;margin-top: -5px;" |
|
|
|
:height="this.height + 95"> |
|
|
|
<el-table-column header-align="center" align="center" width="40" prop="itemNo" label="序号"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" width="70" prop="userDisplay" label="指定确认人"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="center" :formatter="formatDate" prop="wantedConfirmDate" label="要求确认日期"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="center" prop="confirmFlag" label="是否确认"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" prop="confirmedBy" label="实际确认人"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" prop="remark" label="备注"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="center" prop="confirmedDate" label="实际确认时间"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="center" prop="createDate" label="推送时间"></el-table-column> |
|
|
|
<el-table-column header-align="center" align="left" prop="createBy" label="推送人"></el-table-column> |
|
|
|
<el-table-column |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="90" |
|
|
|
fixed="left" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" size="small" @click="confirmDocument(scope.row)">确认</a> |
|
|
|
<a type="text" size="small" @click="viewDocumentFile(scope.row)">查看附件</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="量产BOM" name="massProductionBOM"> |
|
|
|
<el-table |
|
|
|
:data="projectPartBomList" |
|
|
|
row-key="levelCode" |
|
|
|
border |
|
|
|
style="width: 100%; margin-top: 5px;" |
|
|
|
:height="this.height + 250" |
|
|
|
ref="projectBomTable" |
|
|
|
v-loading="dataListLoading" |
|
|
|
:tree-props="{ children: 'children' }"> |
|
|
|
<!-- 数据列 --> |
|
|
|
<el-table-column |
|
|
|
label="" |
|
|
|
prop="" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="80"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-for="(item, index) in columnProjectBomList" |
|
|
|
:key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed === '' ? false : item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="item.columnProp === 'levelCode'"> |
|
|
|
<span v-if="scope.row.levelCode === '1'">{{ '主BOM' }}</span> |
|
|
|
<span v-else>{{ scope.row.levelCode }}</span> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="产品工艺路线" name="Routing"> |
|
|
|
<el-table |
|
|
|
:data="projectPartRoutingList" |
|
|
|
border |
|
|
|
style="width: 100%; margin-top: 5px;" |
|
|
|
:height="this.height + 250" |
|
|
|
ref="projectBomTable" |
|
|
|
v-loading="dataListLoading" |
|
|
|
> |
|
|
|
<!-- 数据列 --> |
|
|
|
<el-table-column |
|
|
|
v-for="(item, index) in columnProjectRoutingList" |
|
|
|
:key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed === '' ? false : item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="item.columnProp === 'levelCode'"> |
|
|
|
<span v-if="scope.row.levelCode === '1'">{{ '1' }}</span> |
|
|
|
<span v-else>{{ scope.row.levelCode }}</span> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</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> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<upload-file-list-1 folder="projectPMPDocumentFiles" title="上传文档" :file-list.sync="fileList" :label="'文档类型ID:'" :no="otherDocumentCurrentRow.documentTypeId" :no-type="otherDocumentCurrentRow.documentType" |
|
|
|
:proofing-id="proofingCurrentRow.proofingId" :proofing-no="proofingCurrentRow.proofingNo" :bu="proofingCurrentRow.buNo" :site="proofingCurrentRow.site" :upload-dialog.sync="uploadDialog" :no-desc="otherDocumentCurrentRow.documentDesc" :id="otherDocumentCurrentRow.id" |
|
|
|
:project-id="proofingCurrentRow.projectId" :project-no="proofingCurrentRow.projectNo" :project-desc="proofingCurrentRow.projectDesc" :document-type="proofingCurrentRow.documentType" :conclusion="'N/A'" |
|
|
|
@ -1264,6 +1554,7 @@ import { |
|
|
|
confirmatorSendMailHandle, |
|
|
|
eamProjectPartSearch, |
|
|
|
eamProjectPartInfoEdit, |
|
|
|
eamProjectPartInfoCancelEdit, |
|
|
|
getFinalPartDesc, |
|
|
|
addConfirmatory, |
|
|
|
deleteConfirmatory, |
|
|
|
@ -1340,6 +1631,12 @@ import {updateColumnSize} from "../../../api/table"; |
|
|
|
exportHeader: ["项目物料"], |
|
|
|
exportFooter: [], |
|
|
|
exportList:[], |
|
|
|
authSearch: false, |
|
|
|
authSave: false, |
|
|
|
authUpdate: false, |
|
|
|
authDelete: false, |
|
|
|
dialogVisible: false, // 控制模态框显示 |
|
|
|
activeModalTab: 'proofRecord', |
|
|
|
// 导出 end |
|
|
|
tagNo:'', |
|
|
|
fileName:'', |
|
|
|
@ -4146,6 +4443,94 @@ import {updateColumnSize} from "../../../api/table"; |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
cancelModalStatus (row) { |
|
|
|
this.modalData = { |
|
|
|
site: row.site, |
|
|
|
bu: row.site + '_' + row.buNo, |
|
|
|
buNo: row.buNo, |
|
|
|
username: this.$store.state.user.name, |
|
|
|
customerNo: row.customerNo, |
|
|
|
customerDesc: row.customerDesc, |
|
|
|
projectCategory: row.projectCategory, |
|
|
|
projectPartId: row.projectPartId, |
|
|
|
testPartNo: row.testPartNo, |
|
|
|
partDesc: row.partDesc, |
|
|
|
projectId: row.projectId, |
|
|
|
projectNo: row.projectNo, |
|
|
|
projectDesc: row.projectDesc, |
|
|
|
priority: row.priority, |
|
|
|
closeDate: row.closeDate, |
|
|
|
needDate: row.needDate, |
|
|
|
projectManager: row.projectManager, |
|
|
|
projectManagerName: row.projectManager.split('-')[1], // 截取用户名 |
|
|
|
projectOwner: row.projectOwner, |
|
|
|
projectOwnerName: row.projectOwner.split('-')[1], // 截取用户名 |
|
|
|
engineer: row.engineer, |
|
|
|
engineerName: row.engineer.split('-')[1], // 截取用户名 |
|
|
|
cQualityEngineer1: row.cQualityEngineer1, |
|
|
|
cQualityEngineer1Name: row.cQualityEngineer1.split('-')[1], // 截取用户名 |
|
|
|
cQualityEngineer2: row.cQualityEngineer2, |
|
|
|
cQualityEngineer2Name: row.cQualityEngineer2.split('-')[1], // 截取用户名 |
|
|
|
cQualityEngineer3: row.cQualityEngineer3, |
|
|
|
cQualityEngineer3Name: row.cQualityEngineer3.split('-')[1], // 截取用户名 |
|
|
|
cQualityEngineer4: row.cQualityEngineer4, |
|
|
|
cQualityEngineer5: row.cQualityEngineer5, |
|
|
|
cQualityEngineer6: row.cQualityEngineer6, |
|
|
|
cManufactureEngineer: row.cManufactureEngineer, |
|
|
|
cManufactureEngineerName: row.cManufactureEngineer.split('-')[1], // 截取用户名 |
|
|
|
docEngineer: row.docEngineer, |
|
|
|
ipqcHardTag: row.ipqcHardTag, |
|
|
|
buildDate: row.buildDate, |
|
|
|
status: row.status, |
|
|
|
partType: row.partType, |
|
|
|
// active: row.active, |
|
|
|
createBy: this.$store.state.user.name, |
|
|
|
updateBy: this.$store.state.user.name, |
|
|
|
} |
|
|
|
if (row.cQualityEngineer4 != null && row.cQualityEngineer4 !== '') { |
|
|
|
this.modalData.cQualityEngineer4Name = row.cQualityEngineer4.split('-')[1] // 截取用户名 |
|
|
|
} |
|
|
|
if (row.cQualityEngineer5 != null && row.cQualityEngineer5 !== '') { |
|
|
|
this.modalData.cQualityEngineer5Name = row.cQualityEngineer5.split('-')[1] // 截取用户名 |
|
|
|
} |
|
|
|
if (row.cQualityEngineer6 != null && row.cQualityEngineer6 !== '') { |
|
|
|
this.modalData.cQualityEngineer6Name = row.cQualityEngineer6.split('-')[1] // 截取用户名 |
|
|
|
} |
|
|
|
if (row.docEngineer != null && row.docEngineer !== '') { |
|
|
|
this.modalData.docEngineerName = row.docEngineer.split('-')[1] // 截取用户名 |
|
|
|
} |
|
|
|
if (row.ipqcHardTag != null && row.ipqcHardTag !== '') { |
|
|
|
this.modalData.ipqcHardTagName = row.ipqcHardTag.split('-')[1] // 截取用户名 |
|
|
|
} |
|
|
|
if (row.status === '已量产') { |
|
|
|
this.modalData.status = '进行中' |
|
|
|
this.modalData.closeDate = '' |
|
|
|
this.$confirm(`是否确认撤销该项目?`, '提示', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
eamProjectPartInfoCancelEdit(this.modalData).then(({data}) => { |
|
|
|
if (data && (data.code === 0 || data.code === '0')) { |
|
|
|
EventBus.$emit('updateProjectInfo') |
|
|
|
this.getDataList() |
|
|
|
this.$message({ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
confirmButtonText: '确定' |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
getRowProjectInfo(){ |
|
|
|
let inData={ |
|
|
|
site: this.proofingCurrentRow.site, |
|
|
|
@ -4169,20 +4554,36 @@ import {updateColumnSize} from "../../../api/table"; |
|
|
|
} |
|
|
|
this.$refs.proofRecord.init(inData) |
|
|
|
}, |
|
|
|
editProjectDocument(modalData) { |
|
|
|
modalData.buNo = modalData.bu.split('_')[1] |
|
|
|
modalData.proofingId = -1 |
|
|
|
editProjectDocument(modalData).then(({data}) => { |
|
|
|
//区分请求成功和失败的状况 |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message({ |
|
|
|
message: '编辑成功', |
|
|
|
type: 'success' |
|
|
|
}) |
|
|
|
//刷新表格 |
|
|
|
this.refreshCurrentTabTable() |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
showProofDetailModal(row) { |
|
|
|
// 保存当前行数据 |
|
|
|
this.proofingCurrentRow = row; |
|
|
|
// 打开模态框 |
|
|
|
this.dialogVisible = true; |
|
|
|
// 模态框打开后刷新 proofRecord 组件的数据 |
|
|
|
this.$nextTick(() => { |
|
|
|
let inData = { |
|
|
|
site: this.proofingCurrentRow.site, |
|
|
|
projectId: this.proofingCurrentRow.projectId, |
|
|
|
projectPartId: this.proofingCurrentRow.projectPartId, |
|
|
|
projectManager: this.proofingCurrentRow.projectManager, |
|
|
|
projectOwner: this.proofingCurrentRow.projectOwner, |
|
|
|
engineer: this.proofingCurrentRow.engineer, |
|
|
|
cQualityEngineer1: this.proofingCurrentRow.cQualityEngineer1, |
|
|
|
cQualityEngineer2: this.proofingCurrentRow.cQualityEngineer2, |
|
|
|
cQualityEngineer3: this.proofingCurrentRow.cQualityEngineer3, |
|
|
|
cQualityEngineer4: this.proofingCurrentRow.cQualityEngineer4, |
|
|
|
cQualityEngineer5: this.proofingCurrentRow.cQualityEngineer5, |
|
|
|
cQualityEngineer6: this.proofingCurrentRow.cQualityEngineer6, |
|
|
|
cManufactureEngineer: this.proofingCurrentRow.cManufactureEngineer, |
|
|
|
docEngineer: this.proofingCurrentRow.docEngineer, |
|
|
|
ipqcHardTag: this.proofingCurrentRow.ipqcHardTag, |
|
|
|
page: 1, |
|
|
|
limit: 1000 |
|
|
|
}; |
|
|
|
// 调用模态框内 proofRecord 组件的 init 方法刷新数据 |
|
|
|
this.$refs.proofRecordModal.init(inData); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
getFinalPartDesc(){ |
|
|
|
@ -5582,21 +5983,23 @@ import {updateColumnSize} from "../../../api/table"; |
|
|
|
this.refreshCurrentTabTable() |
|
|
|
}, |
|
|
|
async refreshCurrentTabTable () { |
|
|
|
if (this.activeName == 'proofRecord') { |
|
|
|
if (this.activeName === 'proofRecord') { |
|
|
|
this.getRowProjectInfo(); |
|
|
|
} |
|
|
|
if (this.activeName == 'massProductionStage') { |
|
|
|
if (this.activeName === 'massProductionStage' || this.activeModalTab === 'massProductionStage') { |
|
|
|
this.getProjectOtherDocument(); |
|
|
|
} |
|
|
|
if (this.activeName == 'allDocument'){ |
|
|
|
if (this.activeName === 'allDocument' || this.activeModalTab === 'allDocument') { |
|
|
|
this.searchProjectAllDocumentList() |
|
|
|
this.searchConfirmatorList() |
|
|
|
} |
|
|
|
if (this.activeName === 'productionDocumentsConfirmProgress'){ |
|
|
|
if (this.activeName === 'productionDocumentsConfirmProgress' || this.activeModalTab === 'productionDocumentsConfirmProgress') { |
|
|
|
this.getConfirmProgressDocumentList() |
|
|
|
this.getConfirmProgressPusherList() |
|
|
|
} |
|
|
|
if (this.activeName === 'massProductionBOM' && this.proofingCurrentRow.finalPartNo !== '' && this.proofingCurrentRow.finalPartNo !== null){ |
|
|
|
if ((this.activeName === 'massProductionBOM' || this.activeModalTab === 'massProductionBOM') && this.proofingCurrentRow.finalPartNo |
|
|
|
!== '' && |
|
|
|
this.proofingCurrentRow.finalPartNo !== null){ |
|
|
|
this.dataListLoading = true; |
|
|
|
try { |
|
|
|
// 从后端获取数据 |
|
|
|
@ -5611,7 +6014,9 @@ import {updateColumnSize} from "../../../api/table"; |
|
|
|
} else { |
|
|
|
this.projectPartBomList = [] |
|
|
|
} |
|
|
|
if (this.activeName === 'Routing' && this.proofingCurrentRow.finalPartNo !== '' && this.proofingCurrentRow.finalPartNo !== null){ |
|
|
|
if ((this.activeName === 'Routing' || this.activeModalTab === 'Routing') && |
|
|
|
this.proofingCurrentRow.finalPartNo !== '' && |
|
|
|
this.proofingCurrentRow.finalPartNo !== null){ |
|
|
|
this.dataListLoading = true; |
|
|
|
this.fetchRoutingList() |
|
|
|
} else { |
|
|
|
|