Browse Source

2024.7.11 产品文档收集-项目信息进一步优化

java8
yuejiayang 2 years ago
parent
commit
de782bf36f
  1. 3
      src/api/eam/eamProject.js
  2. 4
      src/api/eam/eamProofing.js
  3. 70
      src/views/modules/common/uploadFileList1.vue
  4. 178
      src/views/modules/eam/com_project_proof_record.vue
  5. 519
      src/views/modules/eam/eamProjectInfo.vue

3
src/api/eam/eamProject.js

@ -9,6 +9,9 @@ export const getTestPartNo= data => createAPI(`/pms/eamProject/getTestPartNo`,'p
export const searchConfirmatorList= data => createAPI(`/pms/eamProject/searchConfirmatorList`,'post',data) export const searchConfirmatorList= data => createAPI(`/pms/eamProject/searchConfirmatorList`,'post',data)
export const saveProductionValidationDocumentConfirmator= data => createAPI(`/pms/eamProject/saveProductionValidationDocumentConfirmator`,'post',data) export const saveProductionValidationDocumentConfirmator= data => createAPI(`/pms/eamProject/saveProductionValidationDocumentConfirmator`,'post',data)
export const saveProductionValidationDocument= data => createAPI(`/pms/eamProject/saveProductionValidationDocument`,'post',data) export const saveProductionValidationDocument= data => createAPI(`/pms/eamProject/saveProductionValidationDocument`,'post',data)
export const deleteDocumentInformation= data => createAPI(`/pms/eamProject/deleteDocumentInformation`,'post',data)
export const checkProductionValidationDocument= data => createAPI(`/pms/eamProject/checkProductionValidationDocument`,'post',data)
export const checkConfirmationRecord= data => createAPI(`/pms/eamProject/checkConfirmationRecord`,'post',data)
export const searchConfirmProgressDocumentList= data => createAPI(`/pms/eamProject/searchConfirmProgressDocumentList`,'post',data) export const searchConfirmProgressDocumentList= data => createAPI(`/pms/eamProject/searchConfirmProgressDocumentList`,'post',data)
export const searchConfirmProgressPusherList= data => createAPI(`/pms/eamProject/searchConfirmProgressPusherList`,'post',data) export const searchConfirmProgressPusherList= data => createAPI(`/pms/eamProject/searchConfirmProgressPusherList`,'post',data)
export const uploadProjectFile= data => createAPI(`/base/uploadProjectFile`,'post',data) export const uploadProjectFile= data => createAPI(`/base/uploadProjectFile`,'post',data)

4
src/api/eam/eamProofing.js

@ -6,6 +6,8 @@ export const proofingInformationSearch= data => createAPI(`plm/proofingInformati
export const proofingInformationSearchForCheck= data => createAPI(`/pms/eamProofing/proofingInformationSearchForCheck`,'post',data) export const proofingInformationSearchForCheck= data => createAPI(`/pms/eamProofing/proofingInformationSearchForCheck`,'post',data)
//proofingInformationSave //proofingInformationSave
export const proofingInformationSave= data => createAPI(`/plm/proofingInformation/proofingInformationSave`,'post',data) export const proofingInformationSave= data => createAPI(`/plm/proofingInformation/proofingInformationSave`,'post',data)
//deleteProofingRecord
export const deleteProofingRecord= data => createAPI(`/plm/proofingInformation/deleteProofingRecord`,'post',data)
//getProofDocument //getProofDocument
export const getProofDocument= data => createAPI(`/plm/proofingInformation/getProofDocument`,'post',data) export const getProofDocument= data => createAPI(`/plm/proofingInformation/getProofDocument`,'post',data)
@ -27,3 +29,5 @@ export const projectDocumentSave= data => createAPI(`/plm/proofingInformation/pr
export const editProjectDocument= data => createAPI(`/plm/proofingInformation/editProjectDocument`,'post',data) export const editProjectDocument= data => createAPI(`/plm/proofingInformation/editProjectDocument`,'post',data)
export const searchProjectAllDocument= data => createAPI(`/plm/proofingInformation/searchProjectAllDocument`,'post',data) export const searchProjectAllDocument= data => createAPI(`/plm/proofingInformation/searchProjectAllDocument`,'post',data)
export const deleteProofDocument= data => createAPI(`/plm/proofingInformation/deleteProofDocument`,'post',data)

70
src/views/modules/common/uploadFileList1.vue

@ -107,10 +107,33 @@ export default {
return { return {
//fileRemark: '', //fileRemark: '',
fileName: '', fileName: '',
conclusionList: [
{conclusion: '合格'},
{conclusion: '不合格'},
{conclusion: '让步接受'},
{conclusion: 'N/A'}
],
conclusion:'',
// //
documentClickRow: {}, documentClickRow: {},
bu : this.props.site + "-" + this.props.buNo,
bu : this.site + "-" + this.buNo,
dataListLoading: false, dataListLoading: false,
rules: {
noType: [
{
required: true,
message: ' ',
trigger: ['blur', 'change']
}
],
conclusion: [
{
required: true,
message: ' ',
trigger: ['blur', 'change']
}
]
}
} }
}, },
methods: { methods: {
@ -143,6 +166,14 @@ export default {
this.$message.warning("未选择需要上传的文件") this.$message.warning("未选择需要上传的文件")
return; return;
} }
if (this.noType === null || this.noType === undefined || this.noType === '') {
this.$message.warning("文件类型不能为空")
return;
}
if (this.conclusion === null || this.conclusion === undefined || this.conclusion === '') {
this.$message.warning("结论不能为空")
return;
}
let data = new FormData(); let data = new FormData();
data.append("file", this.fileList[0].raw); data.append("file", this.fileList[0].raw);
data.append("orderRef1", this.$store.state.user.site); data.append("orderRef1", this.$store.state.user.site);
@ -151,6 +182,7 @@ export default {
data.append("orderRef4", this.projectId); data.append("orderRef4", this.projectId);
data.append("documentDesc", this.no); data.append("documentDesc", this.no);
data.append("cAdditionalInfo", this.noType); data.append("cAdditionalInfo", this.noType);
data.append("conclusion", this.conclusion);
data.append("createBy", this.$store.state.user.name); data.append("createBy", this.$store.state.user.name);
data.append("folder", this.folder); data.append("folder", this.folder);
uploadFileList(this.path, data).then(({data}) => { uploadFileList(this.path, data).then(({data}) => {
@ -273,7 +305,7 @@ export default {
<template> <template>
<div> <div>
<el-dialog :title="title" v-drag @close="closeFileUpdate" :visible="uploadDialog" width="705px" append-to-body :close-on-click-modal="false">
<el-dialog :title="title" v-drag @close="closeFileUpdate" :visible="uploadDialog" width="952px" append-to-body :close-on-click-modal="false">
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目编码"> <el-form-item label="项目编码">
<el-input v-model="projectId" readonly style="width: 113px;" class="red-text"></el-input> <el-input v-model="projectId" readonly style="width: 113px;" class="red-text"></el-input>
@ -287,6 +319,12 @@ export default {
<el-form-item label="客户名称"> <el-form-item label="客户名称">
<el-input v-model="customerDesc" readonly style="width: 170px;" class="red-text"></el-input> <el-input v-model="customerDesc" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="label" v-if="!isEditable">
<el-input v-model="no" :readonly="!isEditable" style="width: 113px" class="red-text"></el-input>
</el-form-item>
<el-form-item label="文档类型" v-if="!isEditable">
<el-input :value="displayValue" :readonly="!isEditable" style="width: 166px" class="red-text"></el-input>
</el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目料号"> <el-form-item label="项目料号">
@ -302,22 +340,30 @@ export default {
<el-input v-model="proofingId" readonly style="width: 170px;" class="red-text"></el-input> <el-input v-model="proofingId" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="label" v-if="!isEditable">
<el-input v-model="no" :readonly="!isEditable" style="width: 113px" class="red-text"></el-input>
</el-form-item>
<el-form-item label="文档类型" v-if="!isEditable">
<el-input :value="displayValue" :readonly="!isEditable" style="width: 173px" class="red-text"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form :inline="true" label-position="top" label-width="80px" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label=" "> <el-form-item label=" ">
<a href="javascript:void(0);" @click="triggerUpload">点击选择文件</a> <a href="javascript:void(0);" @click="triggerUpload">点击选择文件</a>
<tr></tr> <tr></tr>
<el-input v-model="this.fileName" readonly placeholder="文件名称" style="width: 423px"></el-input> <el-input v-model="this.fileName" readonly placeholder="文件名称" style="width: 423px"></el-input>
<el-form-item label="文件类型" v-if="isEditable" style="margin-top: -18px;margin-left: 11px;">
<el-form-item label="文件类型" v-if="isEditable" :rules="rules.noType" prop="noType" style="margin-top: -18px;margin-left: 11px;">
<el-input v-model="noType" :readonly="!isEditable" style="width: 170px"></el-input> <el-input v-model="noType" :readonly="!isEditable" style="width: 170px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="结论" prop="conclusion" :rules="rules.conclusion" style="margin-top: -18px;">
<el-select v-model="conclusion" placeholder="请选择" clearable style="width: 110px;">
<el-option
v-for = "i in conclusionList"
:key = "i.conclusion"
:label = "i.conclusion"
:value = "i.conclusion">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="文档种类" style="margin-top: -18px;" v-if="this.id === '-1'">
<el-input readonly style="width: 110px;" :value="'其他'" class="red-text"></el-input>
</el-form-item>
<el-form-item label="文档种类" style="margin-top: -18px;" v-if="this.id !== '-1'">
<el-input readonly style="width: 110px;" :value="'常规'" class="red-text"></el-input>
</el-form-item>
<el-button type="primary" @click="upload">上传</el-button> <el-button type="primary" @click="upload">上传</el-button>
<el-upload drag :file-list="fileList" <el-upload drag :file-list="fileList"
ref="uploadFile" ref="uploadFile"

178
src/views/modules/eam/com_project_proof_record.vue

@ -24,6 +24,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="addDocumentList(scope.row)">文档清单定义</a> <a type="text" size="small" @click="addDocumentList(scope.row)">文档清单定义</a>
<a type="text" size="small" @click="updateProofingRecord(scope.row)">编辑</a> <a type="text" size="small" @click="updateProofingRecord(scope.row)">编辑</a>
<a type="text" size="small" @click="proofingRecordDelete(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -62,12 +63,13 @@
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="100"
width="130"
fixed="left" fixed="left"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="primary" @click="uploadFile(scope.row)">上传文件</a>
<a type="text" size="small" @click="addOrUpdateHandle(scope.row.projectId)">提醒</a>
<a type="primary" size="small" v-if="scope.row.documentDefinitionListId !== '-1'" @click="uploadFile(scope.row)">上传文件</a>
<a type="text" size="small" v-if="scope.row.documentDefinitionListId !== '-1'" @click="addOrUpdateHandle(scope.row.projectId)">提醒</a>
<a type="text" size="small" @click="proofDocumentDelete(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column> <el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column>
@ -281,13 +283,16 @@
<el-input v-model="modalData.customerDesc" readonly style="width: 234px;" class="red-text"></el-input> <el-input v-model="modalData.customerDesc" readonly style="width: 234px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目料号" prop="testPartNo" :rules="rules.testPartNo" >
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目料号" prop="testPartNo">
<el-input v-model="modalData.testPartNo" readonly style="width: 110px;" class="red-text"></el-input> <el-input v-model="modalData.testPartNo" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="料号描述" prop="partDesc" > <el-form-item label="料号描述" prop="partDesc" >
<el-input v-model="modalData.partDesc" readonly style="width: 234px;" class="red-text"></el-input> <el-input v-model="modalData.partDesc" readonly style="width: 234px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="打样单号" prop="proofingNo" >
<el-input v-model="modalData.proofingNo" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目分类" prop="cProjectTypeDb"> <el-form-item label="项目分类" prop="cProjectTypeDb">
@ -310,15 +315,9 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="打样单号" prop="proofingNo" :rules="rules.proofingNo" >
<el-input v-model="modalData.proofingNo" style="width: 110px;"></el-input>
</el-form-item>
<el-form-item label="数量" prop="proofingNumber" :rules="rules.proofingNo" > <el-form-item label="数量" prop="proofingNumber" :rules="rules.proofingNo" >
<el-input v-model="modalData.proofingNumber" style="width: 110px"></el-input> <el-input v-model="modalData.proofingNumber" style="width: 110px"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="打样开始日期" prop="" :rules="rules.planStartDate" > <el-form-item label="打样开始日期" prop="" :rules="rules.planStartDate" >
<el-date-picker <el-date-picker
v-model="modalData.planStartDate" v-model="modalData.planStartDate"
@ -328,6 +327,8 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="预计完成日期" prop="" :rules="rules.requiredDeliveryDate" > <el-form-item label="预计完成日期" prop="" :rules="rules.requiredDeliveryDate" >
<el-date-picker <el-date-picker
v-model="modalData.requiredDeliveryDate" v-model="modalData.requiredDeliveryDate"
@ -409,7 +410,7 @@
:proofing-id="proofDocumenCurrentRow.proofingNo" :bu="proofDocumenCurrentRow.buNo" :site="proofDocumenCurrentRow.site" :upload-dialog.sync="uploadDialog" :no-desc="documentClickRow.documentDesc" :proofing-id="proofDocumenCurrentRow.proofingNo" :bu="proofDocumenCurrentRow.buNo" :site="proofDocumenCurrentRow.site" :upload-dialog.sync="uploadDialog" :no-desc="documentClickRow.documentDesc"
:project-id="proofDocumenCurrentRow.projectId" :project-desc="proofDocumenCurrentRow.projectDesc" :document-type="proofDocumenCurrentRow.documentType" :id="documentClickRow.id" :project-id="proofDocumenCurrentRow.projectId" :project-desc="proofDocumenCurrentRow.projectDesc" :document-type="proofDocumenCurrentRow.documentType" :id="documentClickRow.id"
:customer-no="proofDocumenCurrentRow.customerNo" :customer-desc="proofDocumenCurrentRow.customerDesc" :test-part-no="proofDocumenCurrentRow.testPartNo" :customer-no="proofDocumenCurrentRow.customerNo" :customer-desc="proofDocumenCurrentRow.customerDesc" :test-part-no="proofDocumenCurrentRow.testPartNo"
:part-desc="proofDocumenCurrentRow.partDesc" :column-file-content-array="columnFileContentArray" :proof-document-list="proofDocumentList"
:part-desc="proofDocumenCurrentRow.partDesc" :column-file-content-array="columnFileContentArray" :proof-document-list="proofDocumentList" :document-definition-list-id="documentClickRow.documentDefinitionListId"
path="/upload/test" :is-editable="isEditable"></upload-file-list-1> path="/upload/test" :is-editable="isEditable"></upload-file-list-1>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
@ -425,10 +426,11 @@
import axios from "axios"; import axios from "axios";
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import { deleteFileInfo, saveFileInfo, updateUploadedFlag } from '@/api/test/fileService.js'; import { deleteFileInfo, saveFileInfo, updateUploadedFlag } from '@/api/test/fileService.js';
import {proofingInformationSearch,proofingDocumentNEW,getExtraDocumentList,editProofingRecord,proofingInformationSave,getProofDocument,deleteDocumentType,proofingDocumentSave} from "@/api/eam/eamProofing.js";
import {proofingInformationSearch,deleteProofingRecord,proofingDocumentNEW,getExtraDocumentList,editProofingRecord,proofingInformationSave,getProofDocument,deleteDocumentType,proofingDocumentSave} from "@/api/eam/eamProofing.js";
import row from "element-ui/packages/row"; import row from "element-ui/packages/row";
import UploadFileList1 from "../common/uploadFileList1.vue"; import UploadFileList1 from "../common/uploadFileList1.vue";
import he from "element-ui/src/locale/lang/he"; import he from "element-ui/src/locale/lang/he";
import {deleteProofDocument} from "../../../api/eam/eamProofing";
export default { export default {
computed: { computed: {
he() { he() {
@ -1076,7 +1078,7 @@
this.refreshCurrentTabTable() this.refreshCurrentTabTable()
} else { } else {
this.$message({ this.$message({
message: '新增失败',
message: '新增失败:数据库已存在该打样单号',
type: 'error' type: 'error'
}) })
} }
@ -1086,7 +1088,7 @@
let tempData = { let tempData = {
site: this.$store.state.user.site, site: this.$store.state.user.site,
username: this.$store.state.user.name, username: this.$store.state.user.name,
projectId: this.searchProofData.projectId,
projectId: this.modalData.projectId,
page: 1, page: 1,
limit: 1000 limit: 1000
} }
@ -1098,8 +1100,6 @@
this.isUpload = true this.isUpload = true
// //
this.$refs.proofingTable.setCurrentRow(this.dataList[0]) this.$refs.proofingTable.setCurrentRow(this.dataList[0])
// table
this.refreshCurrentTabTable()
}else { }else {
this.isUpload = false this.isUpload = false
} }
@ -1201,9 +1201,13 @@
proofingNo: row.proofingNo, proofingNo: row.proofingNo,
planStartDate: row.planStartDate, planStartDate: row.planStartDate,
requiredDeliveryDate: row.requiredDeliveryDate, requiredDeliveryDate: row.requiredDeliveryDate,
actualityDeliveryDate: row.actualityDeliveryDate,
proofingNumber: row.proofingNumber, proofingNumber: row.proofingNumber,
createDate: row.createDate, createDate: row.createDate,
createBy: row.createBy
createBy: row.createBy,
updateBy: this.$store.state.user.name,
id: row.id,
proofDocumentDataList: this.proofDocumentList,
} }
}, },
saveProofingRecord() { saveProofingRecord() {
@ -1249,7 +1253,25 @@
}) })
return return
} }
editProofingRecord(this.modalData).then(({data}) => {
// let inData = this.modalData
let inData = {
id: this.modalData.id,
site: this.$store.state.user.site,
username: this.$store.state.user.name,
buNo: this.modalData.buNo,
cProjectTypeDb: this.modalData.cProjectTypeDb,
projectCategory: this.modalData.projectCategory,
projectPhase: this.modalData.projectPhase,
projectId: this.modalData.projectId,
proofingNo: this.modalData.proofingNo,
planStartDate: this.modalData.planStartDate,
requiredDeliveryDate: this.modalData.requiredDeliveryDate,
actualityDeliveryDate: this.modalData.actualityDeliveryDate,
proofingNumber: this.modalData.proofingNumber,
proofDocumentDataList: this.proofDocumentList,
updateBy: this.$store.state.user.name,
}
editProofingRecord(inData).then(({data}) => {
// //
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message({ this.$message({
@ -1258,15 +1280,116 @@
}) })
this.proofingRecordVisible = false this.proofingRecordVisible = false
// //
this.refreshCurrentTabTable()
} else {
this.$message({
message: '编辑失败',
type: 'error'
})
this.getProofingInformation()
this.getProofDocument()
}
//
else {
this.$message.warning(data.msg)
} }
}) })
}, },
proofingRecordDelete(row) {
let tempData = {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
buNo: row.buNo,
cProjectTypeDb: row.cProjectTypeDb,
projectCategory: row.projectCategory,
projectId: row.projectId,
proofingNo: row.proofingNo,
proofDocumentDataList: this.proofDocumentList,
createBy: row.createBy,
}
if (tempData.createBy !== tempData.username) {
this.$message({
message: '只能删除自己创建的打样记录',
type: 'warning'
})
}else {
this.$confirm('是否删除该打样记录?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteProofingRecord(tempData).then(({data}) => {
console.log(data)
if (data && data.code === 0) {
this.$message({
message: '删除成功',
type: 'success'
})
//
this.getProofingInformation()
this.getProofDocument()
}
//
else {
this.$message.warning(data.msg)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
proofDocumentDelete(row) {
let tempData = {
site: row.site,
username: this.$store.state.user.name,
buNo: row.buNo,
proofingId: row.proofingNo,
projectId: row.projectId,
projectDesc: row.projectDesc,
customerId: row.customerNo,
customerDesc: row.customerDesc,
testPartNo: row.testPartNo,
partDesc: row.partDesc,
id: row.id,
fileName: row.fileName,
uploadedFlag: row.uploadedFlag,
cAdditionalInfo: row.cAdditionalInfo,
createBy: row.createdBy,
documentDefinitionListId: row.documentDefinitionListId,
documentType: row.documentType,
documentId: row.documentId,
}
if (tempData.createBy !== tempData.username) {
this.$message({
message: '只能删除自己创建的打样文档',
type: 'warning'
})
}else {
this.$confirm('是否删除该打样文档?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteProofDocument(tempData).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '删除成功',
type: 'success'
})
//
this.getProofDocument()
}
//
else {
this.$message.warning(data.msg)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
searchDocumentTypeList() { searchDocumentTypeList() {
this.searchDocumentTypeData.proofingNo = this.modalData.proofingNo this.searchDocumentTypeData.proofingNo = this.modalData.proofingNo
this.searchDocumentTypeData.projectId = this.modalData.projectId this.searchDocumentTypeData.projectId = this.modalData.projectId
@ -1363,10 +1486,7 @@
// //
this.getProofDocument() this.getProofDocument()
} else { } else {
this.$message({
message: '删除失败',
type: 'error'
})
this.$message.warning(data.msg)
} }
}) })
}).catch(() => { }).catch(() => {

519
src/views/modules/eam/eamProjectInfo.vue

@ -733,12 +733,13 @@
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="100"
width="130"
fixed="left" fixed="left"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="primary" @click="uploadFile(scope.row)">上传文件</a> <a type="primary" @click="uploadFile(scope.row)">上传文件</a>
<a type="text" size="small" @click="addOrUpdateHandle(scope.row.projectId)">提醒</a> <a type="text" size="small" @click="addOrUpdateHandle(scope.row.projectId)">提醒</a>
<a type="text" size="small" @click="massProductionDocumentDelete(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column> <el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column>
@ -820,7 +821,7 @@
style="width: 100%;margin-top: -10px;" style="width: 100%;margin-top: -10px;"
:height="this.height + 128"> :height="this.height + 128">
<el-table-column header-align="center" align="center" width="50" prop="itemNo" label="序号"></el-table-column> <el-table-column header-align="center" align="center" width="50" prop="itemNo" label="序号"></el-table-column>
<el-table-column header-align="center" align="center" prop="documentType" label="文类型"></el-table-column>
<el-table-column header-align="center" align="center" prop="documentType" label="文类型"></el-table-column>
<el-table-column header-align="center" align="center" prop="fileName" label="文件名"></el-table-column> <el-table-column header-align="center" align="center" prop="fileName" label="文件名"></el-table-column>
</el-table> </el-table>
</div> </div>
@ -833,10 +834,10 @@
style="width: 100%;margin-top: -10px;" style="width: 100%;margin-top: -10px;"
:height="this.height + 128"> :height="this.height + 128">
<el-table-column header-align="center" align="center" width="40" prop="itemNo" label="序号"></el-table-column> <el-table-column header-align="center" align="center" width="40" prop="itemNo" label="序号"></el-table-column>
<el-table-column header-align="center" align="center" width="70" prop="userDisplay" label="用户名"></el-table-column>
<el-table-column header-align="center" align="center" 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" :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="center" prop="confirmFlag" label="是否确认"></el-table-column>
<el-table-column header-align="center" align="center" prop="confirmedBy" label="确认人"></el-table-column>
<el-table-column header-align="center" align="center" prop="confirmedBy" label="实际确认人"></el-table-column>
<el-table-column header-align="center" align="center" prop="remark" label="备注"></el-table-column> <el-table-column header-align="center" align="center" 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="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="center" prop="createDate" label="推送时间"></el-table-column>
@ -1010,15 +1011,12 @@
<el-form-item label="项目分类" prop="cProjectTypeDb"> <el-form-item label="项目分类" prop="cProjectTypeDb">
<el-input v-model="modalData.cProjectTypeDb" readonly style="width: 110px;" class="red-text"></el-input> <el-input v-model="modalData.cProjectTypeDb" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="打样单号" prop="proofingNo">
<el-input v-model="modalData.proofingNo" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="要求最晚确认日期" prop="wantedConfirmDate" :rules="rules.wantedConfirmDate"> <el-form-item label="要求最晚确认日期" prop="wantedConfirmDate" :rules="rules.wantedConfirmDate">
<el-date-picker <el-date-picker
v-model="modalData.wantedConfirmDate" v-model="modalData.wantedConfirmDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
style="width: 170px;">
style="width: 110px;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -1026,14 +1024,16 @@
<el-tab-pane label="文档选择" name="selectDocument" style="width: 104%"> <el-tab-pane label="文档选择" name="selectDocument" style="width: 104%">
<el-table <el-table
v-model="selectedDocumentItems" v-model="selectedDocumentItems"
:height="height + 230"
:data="projectAllDocumentList"
:height="height + 250"
:data="projectAllDocumentList1"
border border
style="width: 100%;margin-top: -13px;margin-left: -14px !important; margin-right: 0 !important;" style="width: 100%;margin-top: -13px;margin-left: -14px !important; margin-right: 0 !important;"
@selection-change="handleDocumentSelectionChange"> @selection-change="handleDocumentSelectionChange">
<el-table-column <el-table-column
type="selection" type="selection"
width="24">
header-align="center"
align="center"
width="50">
</el-table-column> </el-table-column>
<el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column> <el-table-column label="序号" type="index" align="center" :index="indexMethod"></el-table-column>
<el-table-column label="文档类型" align="center"> <el-table-column label="文档类型" align="center">
@ -1087,7 +1087,7 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="确认" @close="closeUploadFileVisible" :visible.sync="confirmVisible" width="455px" style="margin-top: 0vh" :close-on-click-modal="false">
<el-dialog title="确认" @close="closeUploadFileVisible" :visible.sync="confirmVisible" width="579px" style="margin-top: 0vh;height: 100%;" :close-on-click-modal="false">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目编码" prop="projectId" class="red-label"> <el-form-item label="项目编码" prop="projectId" class="red-label">
<el-input v-model="modalData.projectId" readonly style="width: 110px;" class="red-text"></el-input> <el-input v-model="modalData.projectId" readonly style="width: 110px;" class="red-text"></el-input>
@ -1098,27 +1098,28 @@
<el-form-item label="BU" prop="bu"> <el-form-item label="BU" prop="bu">
<el-input v-model="modalData.bu" readonly style="width: 110px;" class="red-text"></el-input> <el-input v-model="modalData.bu" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目分类" prop="cProjectTypeDb"> <el-form-item label="项目分类" prop="cProjectTypeDb">
<el-input v-model="modalData.cProjectTypeDb" readonly style="width: 110px;" class="red-text"></el-input> <el-input v-model="modalData.cProjectTypeDb" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="指定确认人" prop="userDisplay">
<el-input v-model="confirmData.userDisplay" readonly style="width: 110px;"></el-input>
</el-form-item>
<el-form-item label="要求确认日期" prop="wantedConfirmDate"> <el-form-item label="要求确认日期" prop="wantedConfirmDate">
<el-input v-model="confirmData.wantedConfirmDate" readonly style="width: 170px;" class="red-text"></el-input> <el-input v-model="confirmData.wantedConfirmDate" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="用户名" prop="userDisplay">
<el-input v-model="confirmData.userDisplay" readonly style="width: 110px;"></el-input>
</el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="confirmData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="confirmData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="confirmData.remark" style="width: 419px" type="textarea" :rows="1"></el-input>
<el-input v-model="confirmData.remark" style="width: 541px" type="textarea" :rows="1"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="confirmData" style="margin-left: 7px;margin-top: -15px;"> <el-form :inline="true" label-position="top" :model="confirmData" style="margin-left: 7px;margin-top: -15px;">
<el-form-item label=" "> <el-form-item label=" ">
<a href="javascript:void(0);" @click="triggerUpload" type="text" size="small">点击选择文件</a> <a href="javascript:void(0);" @click="triggerUpload" type="text" size="small">点击选择文件</a>
<el-input v-model="this.fileName" readonly placeholder="文件名称" style="width: 419px"></el-input>
<tr></tr>
<el-input v-model="this.fileName" readonly placeholder="文件名称" style="width: 541px"></el-input>
<el-upload class="custom-upload" :file-list="fileList" <el-upload class="custom-upload" :file-list="fileList"
action="javascript:void(0);" ref="uploadFile" action="javascript:void(0);" ref="uploadFile"
:on-change="onChange" :on-close="closeFileUpdate" :on-change="onChange" :on-close="closeFileUpdate"
@ -1128,15 +1129,15 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
:height="height + 50"
:height="height + 120"
:data="projectConfirmatorFileList" :data="projectConfirmatorFileList"
border border
style="width: 419px;margin-top: 17px;margin-left: 6px;">
style="width: 100%;margin-top: 17px;margin-left: 0px;">
<el-table-column <el-table-column
prop="fileName" prop="fileName"
header-align="center" header-align="center"
align="center" align="center"
min-width="60"
min-width="120"
label="文件名"> label="文件名">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -1150,32 +1151,27 @@
prop="createdBy" prop="createdBy"
header-align="center" header-align="center"
align="center" align="center"
min-width="80"
min-width="60"
label="上传人"> label="上传人">
</el-table-column> </el-table-column>
</el-table> </el-table>
<div slot="footer" class="dialog-footer" style="margin-top: -10px">
<div slot="footer" class="dialog-footer" style="margin-top: 0px">
<el-button type="primary" @click="saveUploadFile()">确定</el-button> <el-button type="primary" @click="saveUploadFile()">确定</el-button>
<el-button @click="closeUploadFileVisible()">关闭</el-button> <el-button @click="closeUploadFileVisible()">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="查看附件" @close="closeViewDocumentFileVisible" :visible.sync="viewDocumentFileVisible" width="455px" style="margin-top: 0vh" :close-on-click-modal="false">
<el-form :inline="true" label-position="top" :model="confirmData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="用户名" prop="userDisplay">
<el-input v-model="confirmData.userDisplay" readonly style="width: 110px;"></el-input>
</el-form-item>
</el-form>
<el-dialog title="查看附件" @close="closeViewDocumentFileVisible" :visible.sync="viewDocumentFileVisible" width="520px" style="margin-top: 0vh" :close-on-click-modal="false">
<el-table <el-table
:height="height + 100"
:height="height + 200"
:data="projectConfirmatorFileList" :data="projectConfirmatorFileList"
border border
style="width: 419px;margin-top: 0px;margin-left: 6px;">
style="width: 100%;margin-top: 0px;margin-left: 0px;">
<el-table-column <el-table-column
prop="fileName" prop="fileName"
header-align="center" header-align="center"
align="center" align="center"
min-width="60"
min-width="120"
label="文件名"> label="文件名">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -1189,15 +1185,17 @@
prop="createdBy" prop="createdBy"
header-align="center" header-align="center"
align="center" align="center"
min-width="80"
min-width="50"
label="上传人"> label="上传人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="80"
width="100"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="viewFile(scope.row)">查看</a>
<a type="text" size="small" @click="downloadFile(scope.row)">下载</a>
<a type="text" size="small" @click="deleteFile(scope.row)">删除</a> <a type="text" size="small" @click="deleteFile(scope.row)">删除</a>
</template> </template>
</el-table-column> </el-table-column>
@ -1207,7 +1205,7 @@
</div> </div>
</el-dialog> </el-dialog>
<upload-file-list-1 folder="projectOtherDocument" title="上传其他文档" :file-list.sync="fileList" :label="'文档类型ID:'" :no="otherDocumentCurrentRow.documentTypeId" :no-type="otherDocumentCurrentRow.documentType"
<upload-file-list-1 folder="projectOtherDocument" title="上传文档" :file-list.sync="fileList" :label="'文档类型ID:'" :no="otherDocumentCurrentRow.documentTypeId" :no-type="otherDocumentCurrentRow.documentType"
:proofing-id='proofingCurrentRow.proofingId' :bu="proofingCurrentRow.buNo" :site="proofingCurrentRow.site" :upload-dialog.sync="uploadDialog" :no-desc="otherDocumentCurrentRow.documentDesc" :id="otherDocumentCurrentRow.id" :proofing-id='proofingCurrentRow.proofingId' :bu="proofingCurrentRow.buNo" :site="proofingCurrentRow.site" :upload-dialog.sync="uploadDialog" :no-desc="otherDocumentCurrentRow.documentDesc" :id="otherDocumentCurrentRow.id"
:project-id="proofingCurrentRow.projectId" :project-desc="proofingCurrentRow.projectDesc" :document-type="proofingCurrentRow.documentType" :project-id="proofingCurrentRow.projectId" :project-desc="proofingCurrentRow.projectDesc" :document-type="proofingCurrentRow.documentType"
:customer-no="proofingCurrentRow.customerNo" :customer-desc="proofingCurrentRow.customerDesc" :test-part-no="proofingCurrentRow.testPartNo" :customer-no="proofingCurrentRow.customerNo" :customer-desc="proofingCurrentRow.customerDesc" :test-part-no="proofingCurrentRow.testPartNo"
@ -1245,7 +1243,7 @@ import {
import {getProjectOtherDocument} from "@/api/eam/eamProofing.js"; import {getProjectOtherDocument} from "@/api/eam/eamProofing.js";
import UploadFileList1 from "../common/uploadFileList1.vue"; import UploadFileList1 from "../common/uploadFileList1.vue";
import { import {
deleteDocumentType,
deleteDocumentType, deleteProofDocument,
editProjectDocument, editProjectDocument,
getExtraDocumentList, getExtraDocumentList,
projectDocumentSave, projectDocumentSave,
@ -1253,6 +1251,8 @@ import {
searchProjectAllDocument searchProjectAllDocument
} from "../../../api/eam/eamProofing"; } from "../../../api/eam/eamProofing";
import { import {
checkConfirmationRecord,
checkProductionValidationDocument, deleteDocumentInformation,
deleteProjectFile, deleteProjectFile,
saveProductionValidationDocument, saveProductionValidationDocument,
saveProductionValidationDocumentConfirmator, saveProductionValidationDocumentConfirmator,
@ -1263,9 +1263,16 @@ import {
updateProjectDocumentConfirm, updateProjectDocumentConfirm,
uploadProjectFile uploadProjectFile
} from "../../../api/eam/eamProject"; } from "../../../api/eam/eamProject";
import row from "element-ui/packages/row";
import {downLoadObjectFile} from "../../../api/eam/eam_object_list";
/*打样记录組件*/ /*打样记录組件*/
export default { export default {
computed: {
row() {
return row
}
},
components: { components: {
UploadFileList1, UploadFileList1,
Chooselist, Chooselist,
@ -1349,6 +1356,7 @@ import {
extraProjectDocumentList: [], extraProjectDocumentList: [],
projectDocumentSelection: [], projectDocumentSelection: [],
projectAllDocumentList: [], projectAllDocumentList: [],
projectAllDocumentList1: [],
projectAllDocumentConfirmatorList: [], projectAllDocumentConfirmatorList: [],
confirmProgressPusherList: [], confirmProgressPusherList: [],
confirmProgressDocumentList: [], confirmProgressDocumentList: [],
@ -1383,6 +1391,7 @@ import {
addProjectDocumentTypeFlag: false, addProjectDocumentTypeFlag: false,
projectProductionValidationDocumentVisible: false, projectProductionValidationDocumentVisible: false,
confirmVisible: false, confirmVisible: false,
confirmationPrompted: false, //
modalData:{ modalData:{
flag:'', flag:'',
bu: '', bu: '',
@ -2030,10 +2039,10 @@ import {
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 101001014, functionId: 101001014,
serialNumber: '101001014Table1CAdditionalInfo',
serialNumber: '101001014Table1Conclusion',
tableId: "101001014Table1", tableId: "101001014Table1",
tableName: "打样文档表", tableName: "打样文档表",
columnProp: 'cAdditionalInfo',
columnProp: 'conclusion',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: '结论', columnLabel: '结论',
@ -2234,10 +2243,10 @@ import {
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 101001014, functionId: 101001014,
serialNumber: '101001014Table1CAdditionalInfo',
serialNumber: '101001014Table1Conclusion',
tableId: "101001014Table1", tableId: "101001014Table1",
tableName: "打样文档表", tableName: "打样文档表",
columnProp: 'cAdditionalInfo',
columnProp: 'conclusion',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: '结论', columnLabel: '结论',
@ -3398,6 +3407,8 @@ import {
projectOtherDocumentClickRow (row) { projectOtherDocumentClickRow (row) {
row.id = row.documentDefinitionListId row.id = row.documentDefinitionListId
this.otherDocumentCurrentRow = JSON.parse(JSON.stringify(row)) this.otherDocumentCurrentRow = JSON.parse(JSON.stringify(row))
console.log('row',row)
console.log('this.otherDocumentCurrentRow',this.otherDocumentCurrentRow)
}, },
changeCurrentRow1 (row, oldRow) { changeCurrentRow1 (row, oldRow) {
row.id = row.documentDefinitionListId row.id = row.documentDefinitionListId
@ -3405,6 +3416,8 @@ import {
if (row) { if (row) {
this.otherDocumentCurrentRow.bu = this.otherDocumentCurrentRow.site + "-" + this.otherDocumentCurrentRow.buNo this.otherDocumentCurrentRow.bu = this.otherDocumentCurrentRow.site + "-" + this.otherDocumentCurrentRow.buNo
this.otherDocumentCurrentRow = JSON.parse(JSON.stringify(row)) this.otherDocumentCurrentRow = JSON.parse(JSON.stringify(row))
console.log('row1',row)
console.log('this.otherDocumentCurrentRow1',this.otherDocumentCurrentRow)
// //
this.refreshCurrentTabTable() this.refreshCurrentTabTable()
} }
@ -3440,6 +3453,61 @@ import {
// this.$refs.partUploadFile.init(currentData); // this.$refs.partUploadFile.init(currentData);
// }) // })
}, },
massProductionDocumentDelete(row) {
let tempData = {
site: row.site,
username: this.$store.state.user.name,
buNo: row.buNo,
proofingId: row.proofingNo,
projectId: row.projectId,
projectDesc: row.projectDesc,
customerId: row.customerNo,
customerDesc: row.customerDesc,
testPartNo: row.testPartNo,
partDesc: row.partDesc,
id: row.id,
fileName: row.fileName,
uploadedFlag: row.uploadedFlag,
cAdditionalInfo: row.cAdditionalInfo,
createBy: row.createdBy,
documentDefinitionListId: row.documentDefinitionListId,
documentType: row.documentType,
documentId: row.documentId,
}
if (tempData.createBy !== tempData.username) {
this.$message({
message: '只能删除自己创建的打样记录',
type: 'warning'
})
}else {
this.$confirm('是否删除该转量产阶段文档?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteProofDocument(tempData).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '删除成功',
type: 'success'
})
//
this.getProjectOtherDocument()
this.getProofDocument()
}
//
else {
this.$message.warning(data.msg)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
},
getProjectOtherDocument () { getProjectOtherDocument () {
let tempData = { let tempData = {
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -3554,14 +3622,12 @@ import {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message({ this.$message({
message: '删除成功', message: '删除成功',
type: 'success'
type: 'success',
}) })
this.getProjectOtherDocument() this.getProjectOtherDocument()
this.getProofDocument()
} else { } else {
this.$message({
message: '删除失败',
type: 'error'
})
this.$message.warning(data.msg)
} }
}) })
}).catch(() => { }).catch(() => {
@ -3586,6 +3652,12 @@ import {
} }
this.extraProjectDocumentList = [] this.extraProjectDocumentList = []
}, },
filteredProjectAllDocumentList() {
this.projectAllDocumentList.map(item => {
item.id = item.documentDefinitionListId
})
return this.projectAllDocumentList.filter(item => item.uploadedFlag !== 'N')
},
searchProjectDocumentTypeList() { searchProjectDocumentTypeList() {
this.searchProjectDocumentTypeData.proofingNo = '*' this.searchProjectDocumentTypeData.proofingNo = '*'
this.searchProjectDocumentTypeData.projectId = this.modalData.projectId this.searchProjectDocumentTypeData.projectId = this.modalData.projectId
@ -3683,10 +3755,11 @@ import {
page: 1 page: 1
} }
this.projectProductionValidationDocumentVisible = true this.projectProductionValidationDocumentVisible = true
this.projectAllDocumentList1 = this.filteredProjectAllDocumentList()
}, },
handleDocumentSelectionChange(selection) {
handleDocumentSelectionChange(val) {
// //
this.selectedDocumentItems = selection;
this.selectedDocumentItems = val;
}, },
searchConfirmatorList() { searchConfirmatorList() {
let inData = { let inData = {
@ -3715,50 +3788,42 @@ import {
site: this.proofingCurrentRow.site, site: this.proofingCurrentRow.site,
orderRef1: this.proofingCurrentRow.projectId, orderRef1: this.proofingCurrentRow.projectId,
userid: item.userid, userid: item.userid,
// itemNo
itemNo: this.projectAllDocumentConfirmatorList.indexOf(item) + 1, itemNo: this.projectAllDocumentConfirmatorList.indexOf(item) + 1,
wantedConfirmDate: this.modalData.wantedConfirmDate, wantedConfirmDate: this.modalData.wantedConfirmDate,
createBy: this.$store.state.user.name createBy: this.$store.state.user.name
}; };
return saveProductionValidationDocumentConfirmator(inData); return saveProductionValidationDocumentConfirmator(inData);
}); });
Promise.all(confirmatorPromises) Promise.all(confirmatorPromises)
.then(confirmatorResults => { .then(confirmatorResults => {
//
let allConfirmatorSuccess = confirmatorResults.every(result => result.data && result.data.code === 0); let allConfirmatorSuccess = confirmatorResults.every(result => result.data && result.data.code === 0);
if (allConfirmatorSuccess) { if (allConfirmatorSuccess) {
let documentPromises = this.selectedDocumentItems.map(item1 => {
let inData1 = {
let saveDocumentPromises = this.selectedDocumentItems.map(item => {
let inData = {
site: this.proofingCurrentRow.site, site: this.proofingCurrentRow.site,
orderRef1: this.proofingCurrentRow.projectId, orderRef1: this.proofingCurrentRow.projectId,
// itemNo
itemNo: this.selectedDocumentItems.indexOf(item1) + 1,
documentId: item1.documentId,
itemNo: '',
documentType: item.documentType,
documentId: item.documentId,
createBy: this.$store.state.user.name createBy: this.$store.state.user.name
}; };
return saveProductionValidationDocument(inData1);
return this.handleDocumentSave(inData);
}); });
Promise.all(documentPromises)
.then(documentResults => {
//
let allDocumentSuccess = documentResults.every(result => result.data && result.data.code === 0);
if (allDocumentSuccess) {
this.$message({
message: '新增成功',
type: 'success'
});
this.projectProductionValidationDocumentVisible = false;
} else {
this.$message({
message: '新增失败,请检查文档',
type: 'error'
});
}
Promise.all(saveDocumentPromises)
.then(() => {
this.$message({
message: '新增成功',
type: 'success'
});
this.projectProductionValidationDocumentVisible = false;
this.confirmationPrompted = false;
}) })
.catch(error => { .catch(error => {
console.error('保存文档出错:', error); console.error('保存文档出错:', error);
this.$message({ this.$message({
message: '新增失败,请检查文档',
message: '新增失败,请检查文档',
type: 'error' type: 'error'
}); });
}); });
@ -3777,6 +3842,140 @@ import {
}); });
}); });
}, },
handleDocumentSave(inData) {
return new Promise((resolve, reject) => {
checkProductionValidationDocument(inData)
.then(({ data }) => {
if (data) {
//
if (!this.confirmationPrompted) {
this.confirmationPrompted = true; //
this.askForDeleteConfirmation()
.then(confirmDelete => {
if (confirmDelete === 'true') {
this.handleDeleteAndSave(inData)
.then(() => resolve())
.catch(() => reject());
} else {
resolve(); //
}
})
.catch(() => {
reject('对话框出错'); //
});
} else {
//
this.handleDeleteAndSave(inData)
.then(() => resolve())
.catch(() => reject());
}
} else {
//
this.handleDeleteAndSave(inData)
.then(() => resolve())
.catch(() => reject());
}
})
.catch(error => {
console.error('检查生产确认文档出错:', error);
reject('检查生产确认文档失败');
});
});
},
handleDeleteAndSave(inData) {
return new Promise((resolve, reject) => {
checkConfirmationRecord(inData)
.then(({ data }) => {
if (data) {
this.$confirm('该项目已经有人员进行了确认,是否删除重新推送确认信息?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning'
})
.then(() => {
//
deleteDocumentInformation(inData)
.then(() => {
this.projectAllDocumentConfirmatorList.map(item => {
let inData1 = {
site: this.proofingCurrentRow.site,
orderRef1: this.proofingCurrentRow.projectId,
userid: item.userid,
itemNo: this.projectAllDocumentConfirmatorList.indexOf(item) + 1,
wantedConfirmDate: this.modalData.wantedConfirmDate,
createBy: this.$store.state.user.name
};
saveProductionValidationDocumentConfirmator(inData1);
});
this.saveDocumentInformation(inData)
.then(() => resolve())
.catch(() => reject());
})
.catch(() => reject('删除确认记录失败'));
})
.catch(() => {
reject('用户取消操作');
});
} else {
deleteDocumentInformation(inData)
.then(() => {
this.projectAllDocumentConfirmatorList.map(item => {
let inData1 = {
site: this.proofingCurrentRow.site,
orderRef1: this.proofingCurrentRow.projectId,
userid: item.userid,
itemNo: this.projectAllDocumentConfirmatorList.indexOf(item) + 1,
wantedConfirmDate: this.modalData.wantedConfirmDate,
createBy: this.$store.state.user.name
};
saveProductionValidationDocumentConfirmator(inData1);
});
this.saveDocumentInformation(inData)
.then(() => resolve())
.catch(() => reject());
})
.catch(() => reject('删除确认记录失败'));
}
})
.catch(() => {
reject('检查确认记录失败');
});
});
},
saveDocumentInformation(inData) {
return saveProductionValidationDocument(inData)
.then(response => {
if (response.data && response.data.code === 0) {
return Promise.resolve();
} else {
return Promise.reject('保存文档失败');
}
})
.catch(() => {
return Promise.reject('保存文档失败');
});
},
askForDeleteConfirmation() {
return new Promise((resolve, reject) => {
this.$confirm('该项目已存在生产确认记录,是否删除重新推送确认信息?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning'
})
.then(() => {
resolve('true');
})
.catch(() => {
resolve('false');
});
});
},
getConfirmProgressDocumentList() { getConfirmProgressDocumentList() {
let inData = { let inData = {
site: this.proofingCurrentRow.site, site: this.proofingCurrentRow.site,
@ -3804,37 +4003,87 @@ import {
}) })
}, },
confirmDocument(row) { confirmDocument(row) {
this.confirmData = {
site: row.site,
documentType: row.documentType,
orderRef1: row.orderRef1,
itemNo: row.itemNo,
userid: row.userid,
username: row.username,
userDisplay: row.userDisplay,
wantedConfirmDate: row.wantedConfirmDate,
confirmFlag: row.confirmFlag,
confirmedDate: new Date(),
createBy: row.createBy,
createDate: row.createDate,
confirmedBy: this.$store.state.user.name,
documentId: row.documentId,
remark: ''
}
this.modalData = {
site: this.proofingCurrentRow.site,
projectId: this.proofingCurrentRow.projectId,
projectDesc: this.proofingCurrentRow.projectDesc,
testPartNo: this.proofingCurrentRow.testPartNo,
partDesc: this.proofingCurrentRow.partDesc,
customerNo: this.proofingCurrentRow.customerNo,
customerDesc: this.proofingCurrentRow.customerDesc,
buNo: this.proofingCurrentRow.buNo,
bu: this.proofingCurrentRow.site + '_' + this.proofingCurrentRow.buNo,
cProjectTypeDb: this.proofingCurrentRow.projectCategory,
// this.$store.state.user.id
let userId = this.$store.state.user.id.toString()
if (row.userid !== userId) {
// row.confirmedBy,
this.$confirm('指定确认人为' + row.userDisplay + ',是否继续确认?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning'
})
.then(() => {
this.confirmData = {
site: row.site,
documentType: row.documentType,
orderRef1: row.orderRef1,
itemNo: row.itemNo,
userid: row.userid,
username: row.username,
userDisplay: row.userDisplay,
wantedConfirmDate: row.wantedConfirmDate,
confirmFlag: row.confirmFlag,
confirmedDate: new Date(),
createBy: row.createBy,
createDate: row.createDate,
confirmedBy: this.$store.state.user.name,
documentId: row.documentId,
remark: row.remark
}
this.modalData = {
site: this.proofingCurrentRow.site,
projectId: this.proofingCurrentRow.projectId,
projectDesc: this.proofingCurrentRow.projectDesc,
testPartNo: this.proofingCurrentRow.testPartNo,
partDesc: this.proofingCurrentRow.partDesc,
customerNo: this.proofingCurrentRow.customerNo,
customerDesc: this.proofingCurrentRow.customerDesc,
buNo: this.proofingCurrentRow.buNo,
bu: this.proofingCurrentRow.site + '_' + this.proofingCurrentRow.buNo,
cProjectTypeDb: this.proofingCurrentRow.projectCategory,
}
this.getProjectConfirmatorFileList(row)
this.confirmVisible = true
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消操作'
});
});
}else {
this.confirmData = {
site: row.site,
documentType: row.documentType,
orderRef1: row.orderRef1,
itemNo: row.itemNo,
userid: row.userid,
username: row.username,
userDisplay: row.userDisplay,
wantedConfirmDate: row.wantedConfirmDate,
confirmFlag: row.confirmFlag,
confirmedDate: new Date(),
createBy: row.createBy,
createDate: row.createDate,
confirmedBy: this.$store.state.user.name,
documentId: row.documentId,
remark: row.remark
}
this.modalData = {
site: this.proofingCurrentRow.site,
projectId: this.proofingCurrentRow.projectId,
projectDesc: this.proofingCurrentRow.projectDesc,
testPartNo: this.proofingCurrentRow.testPartNo,
partDesc: this.proofingCurrentRow.partDesc,
customerNo: this.proofingCurrentRow.customerNo,
customerDesc: this.proofingCurrentRow.customerDesc,
buNo: this.proofingCurrentRow.buNo,
bu: this.proofingCurrentRow.site + '_' + this.proofingCurrentRow.buNo,
cProjectTypeDb: this.proofingCurrentRow.projectCategory,
}
this.getProjectConfirmatorFileList(row)
this.confirmVisible = true
} }
this.getProjectConfirmatorFileList(row)
this.confirmVisible = true
}, },
/*选择上传文件时*/ /*选择上传文件时*/
onChange(file,fileList){ onChange(file,fileList){
@ -3850,9 +4099,9 @@ import {
this.$refs.uploadFile.$el.querySelector('input').click() this.$refs.uploadFile.$el.querySelector('input').click()
}, },
saveUploadFile(){ saveUploadFile(){
console.log('this.confirmData',this.confirmData)
updateProjectDocumentConfirm(this.confirmData) .then(({data}) => { updateProjectDocumentConfirm(this.confirmData) .then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.$message.success('操作成功');
this.confirmVisible = false; this.confirmVisible = false;
this.getConfirmProgressDocumentList(); this.getConfirmProgressDocumentList();
this.getConfirmProgressPusherList(); this.getConfirmProgressPusherList();
@ -3861,11 +4110,6 @@ import {
} }
}) })
let remark = this.confirmData.remark; let remark = this.confirmData.remark;
/*判断文件是否上传*/
if(null == this.fileList || 0 == this.fileList.length){
this.$message.error("请先上传文件!");
return false;
}
const formData = new FormData(); const formData = new FormData();
// //
for (let i = 0; i < this.fileList.length; i++) { for (let i = 0; i < this.fileList.length; i++) {
@ -3996,6 +4240,63 @@ import {
}) })
} }
}, },
//
viewFile(row) {
//
let image = ['jpg', 'jpeg', 'png', 'gif', 'bmp']
let type = ''
if (image.includes(row.fileType.toLowerCase())) {
type = 'image/' + row.fileType
}
let video = ['mp4', 'avi', 'mov', 'wmv', 'flv']
if (video.includes(row.fileType.toLowerCase())) {
type = 'video/' + row.fileType
}
let txt = ['txt']
if (txt.includes(row.fileType.toLowerCase())) {
type = 'text/plain'
}
let office = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']
if (office.includes(row.fileType.toLowerCase())) {
if (row.fileType.toLowerCase() === 'doc' || row.fileType.toLowerCase() === 'docx') {
type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
} else if (row.fileType.toLowerCase() === 'ppt' || row.fileType.toLowerCase() === 'pptx') {
type = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
} else {
type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}
}
let pdf = ['pdf']
if (pdf.includes(row.fileType.toLowerCase())) {
type = 'application/pdf'
}
downLoadObjectFile(row).then(({data}) => {
const blob = new Blob([data], { type: type });
// URL
const fileURL = URL.createObjectURL(blob);
//
const newTab = window.open(fileURL, '_blank')
})
},
//
downloadFile (row) {
downLoadObjectFile(row)
.then(({data}) => {
//
const blob = new Blob([data], {type:'application/octet-stream;charset=utf-8'})
//
const fileName = row.fileName
// a
const linkNode = document.createElement('a')
linkNode.download = fileName // adownload
linkNode.style.display = 'none'
linkNode.href = URL.createObjectURL(blob) // Blob URL
document.body.appendChild(linkNode)
linkNode.click() //
URL.revokeObjectURL(linkNode.href) // URL
document.body.removeChild(linkNode)
})
},
closeProjectProductionValidationDocumentVisibleDialog() { closeProjectProductionValidationDocumentVisibleDialog() {
this.projectProductionValidationDocumentVisible = false; this.projectProductionValidationDocumentVisible = false;
this.activeName1 = 'selectDocument'; this.activeName1 = 'selectDocument';

Loading…
Cancel
Save