| | |
| | | <!-- 7.7质量监控计划--> |
| | | <div class="app-container"> |
| | | <div class="table-card"> |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <el-form :model="yearForm" ref="yearForm" size="small" :inline="true"> |
| | | <el-form-item label="计划名称" prop="monitorName"> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <div style="display: flex;"> |
| | | <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> |
| | | <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">计划名称</span> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="yearForm.monitorName" |
| | | @keyup.enter.native="getYearPlanList"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="clearYear">重 置</el-button> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="getYearPlanList">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | @keyup.enter.native="getYearPlanList"></el-input> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button type="primary" size="mini" @click="getYearPlanList">查询</el-button> |
| | | <el-button size="mini" @click="clearYear">重置</el-button> |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button size="small" type="primary" @click="leadInto">导入</el-button> |
| | | </div> |
| | | </div> |
| | | <lims-table :tableData="yearTableData" :column="yearColumnData" :page="yearPage" :tableLoading="yearLoading" |
| | | height="40vh" @pagination="pagination" :rowClick="rowClick" key="yearTableData"></lims-table> |
| | | :height="'calc(100vh - 34em)'" @pagination="pagination" :rowClick="rowClick" key="yearTableData"></lims-table> |
| | | </div> |
| | | <div style="margin-top: 20px"> |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <el-form :model="yearDetailForm" ref="yearDetailForm" size="small" :inline="true"> |
| | | <el-form-item label="监控目的" prop="monitorPurpose"> |
| | | <el-input v-model="yearDetailForm.monitorPurpose" placeholder="请输入" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="监控项目" prop="monitorProject"> |
| | | <el-input v-model="yearDetailForm.monitorProject" placeholder="请输入" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="clearDetail">重 置</el-button> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="getYearDetailPlanList">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <div style="display: flex;"> |
| | | <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> |
| | | <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">监控目的</span> |
| | | <el-input v-model="yearDetailForm.monitorPurpose" placeholder="请输入" size="small" |
| | | @keyup.enter.native="getYearDetailPlanList"></el-input> |
| | | </div> |
| | | <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> |
| | | <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">监控项目</span> |
| | | <el-input v-model="yearDetailForm.monitorProject" placeholder="请输入" size="small" |
| | | @keyup.enter.native="getYearDetailPlanList"></el-input> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button type="primary" size="mini" @click="getYearDetailPlanList">查询</el-button> |
| | | <el-button size="mini" @click="clearDetail">重置</el-button> |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button size="small" type="primary" @click="exportSignatureTemplate">导出签名模板</el-button> |
| | | <el-button size="small" type="primary" @click="showDialog('add')">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage" |
| | | :tableLoading="yearDetailLoading" height="40vh" @pagination="pagination1" |
| | | :tableLoading="yearDetailLoading" :height="'calc(100vh - 34em)'" @pagination="pagination1" ref="yearDetailTableData" |
| | | key="yearDetailTableData"></lims-table> |
| | | </div> |
| | | <!--新增修改弹框--> |
| | |
| | | @closeDia="closeDia"></detail-form-dialog> |
| | | <!--实施流程弹框--> |
| | | <carry-out-dialog v-if="carryOutDia" ref="carryOutDia" :qualityMonitorId="qualityMonitorId" |
| | | @closeDia="closeCarryOutDia"></carry-out-dialog> |
| | | @closeCarryOutDia="closeCarryOutDia"></carry-out-dialog> |
| | | <!--评价流程弹框--> |
| | | <evaluate-dialog v-if="evaluateDialog" ref="evaluateDialog" @closeEvaDia="closeEvaDia"></evaluate-dialog> |
| | | <el-dialog :visible.sync="examineDialog" title="审核" width="30%" @close="closeExamineDia"> |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="downloadDialog" title="导出" width="600px"> |
| | | <span> |
| | | <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" |
| | | <el-button plain type="primary" :disabled="download.detailsRatifyStatus !== 3" |
| | | @click="controlDown">实施计划导出</el-button> |
| | | <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" |
| | | <el-button plain type="primary" :disabled="!download.finishReportUrl" |
| | | @click="finishReportExport">完成报告导出</el-button> |
| | | <el-button plain type="primary" :disabled="download.evaluateStatus !== 3" |
| | | @click="processingDown">评价导出</el-button> |
| | | </span> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | <el-button :loading="uploading1" type="primary" @click="submitUpload1()">上 传</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <view-record v-if="ViewRecord" ref="ViewRecord"></view-record> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | } from "@/api/cnas/process/ensureResults/qualityMonitor"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | import { mapGetters } from "vuex"; |
| | | import ViewRecord from "./components/ViewRecord.vue"; |
| | | |
| | | export default { |
| | | name: 'EnsureResultsValidity', |
| | | // import 引入的组件需要注入到对象中才能使用 |
| | | components: { limsTable, filePreview, EvaluateDialog, CarryOutDialog, DetailFormDialog }, |
| | | components: {ViewRecord, limsTable, filePreview, EvaluateDialog, CarryOutDialog, DetailFormDialog }, |
| | | data() { |
| | | // 这里存放数据 |
| | | return { |
| | | ViewRecord: false, |
| | | examineUserId: '', |
| | | responsibleOptions: [], |
| | | yearForm: { |
| | |
| | | { |
| | | label: '计划名称', |
| | | prop: 'monitorName', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '编制人', |
| | | prop: 'writeName', |
| | | minWidth: '100' |
| | | width: '100' |
| | | }, { |
| | | label: '编制日期', |
| | | prop: 'writeTime', |
| | | minWidth: '160' |
| | | width: '160' |
| | | }, { |
| | | dataType: 'tag', |
| | | label: '审核状态', |
| | | prop: 'examineStatus', |
| | | minWidth: '100', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '不通过'; |
| | |
| | | }, { |
| | | label: '审核内容', |
| | | prop: 'examineRemark', |
| | | minWidth: '100' |
| | | width: '100' |
| | | }, { |
| | | label: '审核人', |
| | | prop: 'examineName', |
| | | minWidth: '100' |
| | | width: '100' |
| | | }, { |
| | | label: '审核日期', |
| | | prop: 'examineTime', |
| | | minWidth: '160' |
| | | width: '160' |
| | | }, { |
| | | dataType: 'tag', |
| | | label: '批准状态', |
| | | prop: 'ratifyStatus', |
| | | minWidth: '100', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '不批准'; |
| | |
| | | }, { |
| | | label: '批准内容', |
| | | prop: 'ratifyRemark', |
| | | minWidth: '100' |
| | | width: '100' |
| | | }, { |
| | | label: '批准人', |
| | | prop: 'ratifyName', |
| | | minWidth: '100' |
| | | width: '100' |
| | | }, { |
| | | label: '批准日期', |
| | | prop: 'ratifyTime', |
| | | minWidth: '160' |
| | | width: '160' |
| | | }, { |
| | | dataType: 'action', |
| | | minWidth: '190', |
| | | label: '操作', |
| | | fixed: 'right', |
| | | operation: [ |
| | |
| | | }, { |
| | | label: '计划开展时间', |
| | | prop: 'plannedTime', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '监控项目', |
| | | prop: 'monitorProject', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '参加单位(人员)', |
| | | prop: 'participant', |
| | | minWidth: '150px' |
| | | width: '190px' |
| | | }, { |
| | | label: '预算(元)', |
| | | prop: 'budget', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '组织人员', |
| | | prop: 'organization', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '监控方式', |
| | | prop: 'monitorWay', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '实施状态', |
| | | prop: 'detailsRatifyStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待评价'; |
| | | } else if (params === 2) { |
| | | return '不批准'; |
| | | } else if (params === 3) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'danger'; |
| | | } else if (params === 3) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '报告状态', |
| | | prop: 'reportStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待评价'; |
| | | } else if (params === 2) { |
| | | return '不批准'; |
| | | } else if (params === 3) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'danger'; |
| | | } else if (params === 3) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '评价状态', |
| | | prop: 'evaluateStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待评价'; |
| | | } else if (params === 2) { |
| | | return '待批准'; |
| | | } else if (params === 3) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'info'; |
| | | } else if (params === 3) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | }, { |
| | | dataType: 'action', |
| | | width: '280', |
| | | label: '操作', |
| | | fixed: 'right', |
| | | operation: [ |
| | |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.evaluate(row) |
| | | } |
| | | }, |
| | | { |
| | | name: '附件上传', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.viewTestRecord(row) |
| | | } |
| | | }, |
| | | { |
| | |
| | | this.yearDetailLoading = false |
| | | this.yearDetailTableData = res.data.records |
| | | this.yearDetailPage.total = res.data.total |
| | | this.$refs.yearDetailTableData.$refs.multipleTable.doLayout() |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.yearDetailLoading = false |
| | |
| | | this.evaluateDialog = false |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 附件上传 |
| | | viewTestRecord (row) { |
| | | this.ViewRecord = true |
| | | this.$nextTick(() => { |
| | | this.$refs.ViewRecord.openDia(row) |
| | | }) |
| | | }, |
| | | // 打开导出弹框 |
| | | downLoadPost(row) { |
| | | this.downloadDialog = true |
| | |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '质量监控实施计划.docx') |
| | | }) |
| | | }, |
| | | // 完成报告导出 |
| | | finishReportExport() { |
| | | let url = this.download.finishReportUrl; |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi +'/word/' + url; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }, |
| | | // 处理单导出 |
| | | processingDown() { |
| | |
| | | selectUserCondition().then((res) => { |
| | | this.responsibleOptions = res.data; |
| | | }) |
| | | }, |
| | | exportSignatureTemplate() { |
| | | let url = '质量监控记录签名模板.docx'; |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi +'/word/' + url; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | } |
| | | }, |
| | | // 用于上传文件的信息 |