|
|
|
@ -131,15 +131,15 @@ |
|
|
|
<el-dialog |
|
|
|
:title="modalTitle" |
|
|
|
:visible.sync="modalFlag" |
|
|
|
width="1010px" |
|
|
|
width="1025px" |
|
|
|
top="5vh" |
|
|
|
v-drag |
|
|
|
:close-on-click-modal="false" |
|
|
|
:showClose="false"> |
|
|
|
|
|
|
|
<el-tabs tab-position="left" type="border-card" v-model="activeName" style="width: 100%;height: 770px;"> |
|
|
|
<el-tabs tab-position="left" type="border-card" v-model="activeName" style="width: 100%;height: 730px;"> |
|
|
|
<el-tab-pane label="基本信息" name="basicInfo"> |
|
|
|
<div style="height: 755px; overflow-y: auto;"> |
|
|
|
<div style="height: 715px; overflow-y: auto;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
<el-form-item> |
|
|
|
<span style="cursor: pointer" v-if="!isLabFieldDisabled('applicant')" slot="label" @click="getBaseList(103, 1)"><a herf="#">申请人</a></span> |
|
|
|
@ -243,7 +243,7 @@ |
|
|
|
readonly |
|
|
|
clearable |
|
|
|
:disabled="isLabFieldDisabled('labApprover')" |
|
|
|
style="width: 780px" |
|
|
|
style="width: 772px" |
|
|
|
@focus="openLabApproverChooseModal"> |
|
|
|
<span slot="suffix" v-show="modalData.labApproverName && !isLabFieldDisabled('labApprover')" @click.stop="clearLabApproverSelection"> |
|
|
|
<i class="el-icon-circle-close"></i> |
|
|
|
@ -255,11 +255,10 @@ |
|
|
|
<el-form :inline="true" label-position="top" style="margin-top: -15px"> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-button type="primary" :disabled="showModalFlag" @click="openPropertyChooseModal">选择属性信息</el-button> |
|
|
|
<el-button type="primary" style="margin-left: 8px;" @click="openTestSpecDialog">测试规范</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<div class="rq" style="width: 780px;"> |
|
|
|
<div class="rq" style="width: 772px;"> |
|
|
|
<el-table |
|
|
|
:data="modalData.propertyItemList" |
|
|
|
border |
|
|
|
@ -288,7 +287,29 @@ |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 5px"> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 0px"> |
|
|
|
<el-form-item style="display: block;"> |
|
|
|
<template slot="label"> |
|
|
|
<span class="judge-criteria-label" @click="openTestSpecDialog">测试规范</span> |
|
|
|
</template> |
|
|
|
<div class="judge-criteria-box"> |
|
|
|
<template v-if="testSpecFileList.length > 0"> |
|
|
|
<el-link |
|
|
|
v-for="item in testSpecFileList" |
|
|
|
:key="item.id" |
|
|
|
type="primary" |
|
|
|
style="margin-right: 10px" |
|
|
|
@click.stop="previewJudgeCriteriaFile(item)"> |
|
|
|
{{ item.fileName }} |
|
|
|
</el-link> |
|
|
|
</template> |
|
|
|
<span v-else class="judge-criteria-placeholder">点击“测试规范”上传附件</span> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 15px"> |
|
|
|
<el-form-item style="display: block;"> |
|
|
|
<template slot="label"> |
|
|
|
<span class="judge-criteria-label" @click="openJudgeCriteriaDialog">判断标准</span> |
|
|
|
@ -310,7 +331,7 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 15px"> |
|
|
|
<el-form-item label="注意事项" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.attention" :disabled="isLabFieldDisabled('attention')" resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.attention" :disabled="isLabFieldDisabled('attention')" resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -331,7 +352,7 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData"> |
|
|
|
<el-form-item label="异常情况及说明" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.unnormalSymptomAndDescription" :disabled="isLabFieldDisabled('unnormalSymptomAndDescription')" resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.unnormalSymptomAndDescription" :disabled="isLabFieldDisabled('unnormalSymptomAndDescription')" resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 45px"> |
|
|
|
@ -356,7 +377,7 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 20px"> |
|
|
|
<el-form-item label="备注" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.testerComments" :disabled="isLabFieldDisabled('testerComments')" resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.testerComments" :disabled="isLabFieldDisabled('testerComments')" resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -366,7 +387,7 @@ |
|
|
|
<div style="height: 715px; overflow-y: auto;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
<el-form-item label="备注" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="4" v-model="modalData.departmentManagerComments" :disabled="isLabFieldDisabled('departmentManagerComments')" resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="4" v-model="modalData.departmentManagerComments" :disabled="isLabFieldDisabled('departmentManagerComments')" resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -376,7 +397,7 @@ |
|
|
|
<div style="height: 715px; overflow-y: auto;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;"> |
|
|
|
<el-form-item label="备注(实验室)" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.labComments" :disabled="isLabFieldDisabled('labComments')" resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" v-model="modalData.labComments" :disabled="isLabFieldDisabled('labComments')" resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="modalData" style="margin-top: 45px"> |
|
|
|
@ -387,7 +408,7 @@ |
|
|
|
v-model="modalData.testerName" |
|
|
|
readonly |
|
|
|
:disabled="isLabFieldDisabled('tester')" |
|
|
|
style="width: 780px" |
|
|
|
style="width: 772px" |
|
|
|
placeholder="请选择测试人" |
|
|
|
@focus="openTesterChooseModal"> |
|
|
|
<span slot="suffix" v-show="modalData.testerName && !isLabFieldDisabled('tester')" @click.stop="clearTesterSelection"> |
|
|
|
@ -722,13 +743,25 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: -8px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 0px"> |
|
|
|
<el-form-item label="实验室审批人" style="display: block;"> |
|
|
|
<el-input :value="currentDetail.labApproverName || currentDetail.labApprover || ''" disabled style="width: 780px"></el-input> |
|
|
|
<el-input :value="currentDetail.labApproverName || currentDetail.labApprover || ''" disabled style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail"> |
|
|
|
<div class="rq" style="width: 772px;margin-top: 0px"> |
|
|
|
<el-table |
|
|
|
:data="currentDetail.propertyItemList || []" |
|
|
|
border |
|
|
|
:height="260" |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column prop="itemNo" header-align="center" align="center" label="属性编码" width="100"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" label="属性名称" min-width="150"></el-table-column> |
|
|
|
<el-table-column prop="itemValue" header-align="center" align="left" label="属性值" min-width="250" show-overflow-tooltip></el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 5px"> |
|
|
|
<el-form-item label="测试规范附件" style="display: block;"> |
|
|
|
<div class="judge-criteria-box" style="cursor: default;"> |
|
|
|
<template v-if="currentTestSpecFileList.length > 0"> |
|
|
|
@ -746,19 +779,7 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<div class="rq" style="width: 780px;margin-top: 20px"> |
|
|
|
<el-table |
|
|
|
:data="currentDetail.propertyItemList || []" |
|
|
|
border |
|
|
|
:height="260" |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column prop="itemNo" header-align="center" align="center" label="属性编码" width="100"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" label="属性名称" min-width="150"></el-table-column> |
|
|
|
<el-table-column prop="itemValue" header-align="center" align="left" label="属性值" min-width="250" show-overflow-tooltip></el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 5px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 18px"> |
|
|
|
<el-form-item label="判断标准附件" style="display: block;"> |
|
|
|
<div class="judge-criteria-box" style="cursor: default;"> |
|
|
|
<template v-if="currentJudgeCriteriaFileList.length > 0"> |
|
|
|
@ -778,7 +799,7 @@ |
|
|
|
|
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 20px"> |
|
|
|
<el-form-item label="注意事项" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.attention || ''" disabled resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.attention || ''" disabled resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -798,7 +819,7 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail"> |
|
|
|
<el-form-item label="异常情况及说明" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.unnormalSymptomAndDescription || ''" disabled resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.unnormalSymptomAndDescription || ''" disabled resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 45px"> |
|
|
|
@ -820,7 +841,7 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 20px"> |
|
|
|
<el-form-item label="备注" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.testerComments || ''" disabled resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.testerComments || ''" disabled resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -829,7 +850,7 @@ |
|
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail"> |
|
|
|
<el-form-item label="备注" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="4" :value="currentDetail.departmentManagerComments || ''" disabled resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="4" :value="currentDetail.departmentManagerComments || ''" disabled resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -838,12 +859,12 @@ |
|
|
|
<div :style="{height: secondHeight + 'px'}" style="margin-left: 5px;margin-top: 5px; overflow-y: auto;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail"> |
|
|
|
<el-form-item label="备注" style="display: block;"> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.labComments || ''" disabled resize="none" style="width: 780px"></el-input> |
|
|
|
<el-input type="textarea" :rows="3" :value="currentDetail.labComments || ''" disabled resize="none" style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="currentDetail" style="margin-top: 45px"> |
|
|
|
<el-form-item label="测试人"> |
|
|
|
<el-input :value="currentDetail.testerName || currentDetail.tester || ''" disabled style="width: 780px"></el-input> |
|
|
|
<el-input :value="currentDetail.testerName || currentDetail.tester || ''" disabled style="width: 772px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -941,6 +962,7 @@ export default { |
|
|
|
testSpecDialogVisible: false, |
|
|
|
testReportDialogVisible: false, |
|
|
|
judgeCriteriaFileList: [], |
|
|
|
testSpecFileList: [], |
|
|
|
currentJudgeCriteriaFileList: [], |
|
|
|
currentTestSpecFileList: [], |
|
|
|
currentTestReportFileList: [], |
|
|
|
@ -1190,6 +1212,7 @@ export default { |
|
|
|
this.clearLabApproverFieldData() |
|
|
|
this.$set(this.modalData, 'propertyItemList', []) |
|
|
|
this.judgeCriteriaFileList = [] |
|
|
|
this.testSpecFileList = [] |
|
|
|
this.testReportFileList = [] |
|
|
|
this.searchProjectData.site = site |
|
|
|
}, |
|
|
|
@ -1351,6 +1374,11 @@ export default { |
|
|
|
this.judgeCriteriaFileList = rows |
|
|
|
}) |
|
|
|
}, |
|
|
|
refreshTestSpecFileList () { |
|
|
|
return this.queryAttachmentFileList(this.modalData.site, this.modalData.referenceNo, 'testSpec').then(rows => { |
|
|
|
this.testSpecFileList = rows |
|
|
|
}) |
|
|
|
}, |
|
|
|
refreshTestReportFileList () { |
|
|
|
return this.queryAttachmentFileList(this.modalData.site, this.modalData.referenceNo, 'testReport').then(rows => { |
|
|
|
this.testReportFileList = rows |
|
|
|
@ -1403,6 +1431,7 @@ export default { |
|
|
|
return |
|
|
|
} |
|
|
|
this.testSpecDialogVisible = true |
|
|
|
this.refreshTestSpecFileList() |
|
|
|
this.$nextTick(() => { |
|
|
|
this.refreshTestSpecOssTable() |
|
|
|
}) |
|
|
|
@ -1426,7 +1455,7 @@ export default { |
|
|
|
this.refreshJudgeCriteriaFileList() |
|
|
|
}, |
|
|
|
handleTestSpecDialogClose () { |
|
|
|
// placeholder to align with dialog close event and keep lifecycle symmetric |
|
|
|
this.refreshTestSpecFileList() |
|
|
|
}, |
|
|
|
handleTestReportDialogClose () { |
|
|
|
this.refreshTestReportFileList() |
|
|
|
@ -2285,6 +2314,9 @@ export default { |
|
|
|
this.nodeAuthorityLoaded = !row |
|
|
|
this.isEditMode = !!row |
|
|
|
this.showModalFlag = !!(row && (row.status === '已完成' || !this.authUpdate)) |
|
|
|
this.judgeCriteriaFileList = [] |
|
|
|
this.testSpecFileList = [] |
|
|
|
this.testReportFileList = [] |
|
|
|
|
|
|
|
if (row) { |
|
|
|
this.modalTitle = 'Lab 编辑' |
|
|
|
@ -2315,11 +2347,13 @@ export default { |
|
|
|
this.loadModalButtonCondition() |
|
|
|
this.loadNodeAuthority(this.modalData.site || row.site, this.modalData.stepId !== null && this.modalData.stepId !== undefined ? this.modalData.stepId : 10) |
|
|
|
this.refreshJudgeCriteriaFileList() |
|
|
|
this.refreshTestSpecFileList() |
|
|
|
this.refreshTestReportFileList() |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
this.loadNodeAuthority(row.site, row.stepId !== null && row.stepId !== undefined ? row.stepId : 10) |
|
|
|
this.judgeCriteriaFileList = [] |
|
|
|
this.testSpecFileList = [] |
|
|
|
this.testReportFileList = [] |
|
|
|
}) |
|
|
|
} else { |
|
|
|
@ -2349,8 +2383,6 @@ export default { |
|
|
|
this.$set(this.modalData, 'labApproverCodeList', []) |
|
|
|
this.$set(this.modalData, 'labApproverList', []) |
|
|
|
this.$set(this.modalData, 'labApproverName', '') |
|
|
|
this.judgeCriteriaFileList = [] |
|
|
|
this.testReportFileList = [] |
|
|
|
this.searchProjectData.site = defaultSite |
|
|
|
this.nodeAuthorityLoaded = true |
|
|
|
this.loadNodeAuthority(this.modalData.site, 10) |
|
|
|
@ -2758,7 +2790,7 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
.judge-criteria-box { |
|
|
|
width: 780px; |
|
|
|
width: 772px; |
|
|
|
min-height: 38px; |
|
|
|
border: 1px solid #DCDFE6; |
|
|
|
border-radius: 4px; |
|
|
|
|