| | |
| | | <!-- 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"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="yearForm.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> |
| | | </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" |
| | | key="yearDetailTableData"></lims-table> |
| | | <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage" |
| | | :tableLoading="yearDetailLoading" :height="'calc(100vh - 34em)'" @pagination="pagination1" ref="yearDetailTableData" |
| | | key="yearDetailTableData"></lims-table> |
| | | </div> |
| | | <!--新增修改弹框--> |
| | | <detail-form-dialog v-if="formDia" ref="formDia" :qualityMonitorId="qualityMonitorId" @closeDia="closeDia"></detail-form-dialog> |
| | | <detail-form-dialog v-if="formDia" ref="formDia" :qualityMonitorId="qualityMonitorId" |
| | | @closeDia="closeDia"></detail-form-dialog> |
| | | <!--实施流程弹框--> |
| | | <carry-out-dialog v-if="carryOutDia" ref="carryOutDia" :qualityMonitorId="qualityMonitorId" @closeDia="closeCarryOutDia"></carry-out-dialog> |
| | | <carry-out-dialog v-if="carryOutDia" ref="carryOutDia" :qualityMonitorId="qualityMonitorId" |
| | | @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"> |
| | |
| | | </span> |
| | | <span style="margin-top: 10px;display: inline-block"> |
| | | 批准人: |
| | | <el-select v-model="examineInfo.ratifyUserId" clearable |
| | | filterable size="small" style="width: 70%;"> |
| | | <el-select v-model="examineInfo.ratifyUserId" clearable filterable size="small" style="width: 70%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <!--预览报告--> |
| | | <el-dialog |
| | | :visible.sync="lookDialogVisible" |
| | | fullscreen |
| | | title="查看附件" top="5vh" width="800px"> |
| | | <filePreview v-if="lookDialogVisible" :currentFile="{}" |
| | | :fileUrl="javaApi+'/word/' + currentInfo.finishReportUrl" style="height: 70vh;overflow-y: auto;"/> |
| | | <el-dialog :visible.sync="lookDialogVisible" fullscreen title="查看附件" top="5vh" width="800px"> |
| | | <filePreview v-if="lookDialogVisible" :currentFile="{}" :option="option" |
| | | :fileUrl="javaApi + '/word/' + currentInfo.finishReportUrl" style="height: 70vh;overflow-y: auto;" /> |
| | | <div> |
| | | 批准状态: |
| | | <el-tag v-if="this.ratifyStatus === 1" type="success">批准</el-tag> |
| | | <el-tag v-if="this.ratifyStatus === 0" type="danger">不批准</el-tag> |
| | | <el-tag v-if="this.ratifyStatus === 1" type="success">批准</el-tag> |
| | | <el-tag v-if="this.ratifyStatus === 0" type="danger">不批准</el-tag> |
| | | </div> |
| | | <div> |
| | | 批准意见: |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="downloadDialog" title="导出" width="600px"> |
| | | <span> |
| | | <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" @click="controlDown">实施计划导出</el-button> |
| | | <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" @click="processingDown">评价导出</el-button> |
| | | <el-button plain type="primary" :disabled="download.detailsRatifyStatus !== 3" |
| | | @click="controlDown">实施计划导出</el-button> |
| | | <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 @click="downloadDialog = false">取 消</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!--导入计划--> |
| | | <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px" :close-on-click-modal="false" :close-on-press-escape="false"> |
| | | <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span style="width: 60px">年份:</span> |
| | | <el-date-picker |
| | | v-model="planYear" |
| | | type="year" |
| | | value-format="yyyy" |
| | | clearable |
| | | size="small" |
| | | format="yyyy" |
| | | <el-date-picker v-model="planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy" |
| | | placeholder="选择年"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div style="display: flex;align-items: center;margin: 10px 0"> |
| | | <div style="width: 60px">审核人:</div> |
| | | <el-select v-model="examineUserId" clearable |
| | | filterable size="small" style="width: 50%;"> |
| | | <el-select v-model="examineUserId" clearable filterable size="small" style="width: 50%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div style="margin: 0 auto;"> |
| | | <el-upload ref="upload" :action="action" :auto-upload="false" :file-list="fileList" |
| | | :headers="uploadHeader" :limit="1" |
| | | accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag |
| | | :data="{planYear: planYear, examineUserId: examineUserId}" |
| | | name="file"> |
| | | <el-upload ref="upload" :action="action" :auto-upload="false" :file-list="fileList" :headers="uploadHeader" |
| | | :limit="1" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag |
| | | :data="{ planYear: planYear, examineUserId: examineUserId }" name="file"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | | </el-upload> |
| | |
| | | <el-input v-model="ratifyRemark" :disabled="this.ratifyStatus === 1" type="textarea"></el-input> |
| | | </div> |
| | | <div style="margin: 0 auto;"> |
| | | <el-upload ref="upload1" :action="action1" :auto-upload="false" :data="{qualityMonitorDetailsId: qualityMonitorDetailsId}" :file-list="fileList1" :headers="uploadHeader" |
| | | :limit="1" |
| | | :on-change="beforeUpload1" :on-error="onError1" :on-success="onSuccess1" accept='.doc,.docx' |
| | | drag |
| | | name="file"> |
| | | <el-upload ref="upload1" :action="action1" :auto-upload="false" |
| | | :data="{ qualityMonitorDetailsId: qualityMonitorDetailsId }" :file-list="fileList1" :headers="uploadHeader" |
| | | :limit="1" :on-change="beforeUpload1" :on-error="onError1" :on-success="onSuccess1" accept='.doc,.docx,application/pdf,' drag |
| | | name="file"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | | </el-upload> |
| | |
| | | <el-button :loading="uploading1" type="primary" @click="submitUpload1()">上 传</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <view-record v-if="ViewRecord" ref="ViewRecord"></view-record> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | pageQualityMonitor, pageQualityMonitorDetail, ratifyFinishReport, |
| | | ratifyQualityMonitor |
| | | } from "@/api/cnas/process/ensureResults/qualityMonitor"; |
| | | import {selectUserCondition} from "@/api/performance/class"; |
| | | import {mapGetters} from "vuex"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | import { mapGetters } from "vuex"; |
| | | import ViewRecord from "./components/ViewRecord.vue"; |
| | | |
| | | export default { |
| | | name: 'a7-Ensure-results-validity', |
| | | 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 '不批准'; |
| | |
| | | return null; |
| | | } |
| | | } |
| | | },{ |
| | | }, { |
| | | 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: [ |
| | |
| | | this.delPlan(row) |
| | | }, |
| | | disabled: (row) => { |
| | | if(row.examineStatus === 1) { |
| | | if (row.examineStatus === 1) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | |
| | | }, { |
| | | 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) |
| | | } |
| | | }, |
| | | { |
| | |
| | | ratifyRemark: '', |
| | | downloadDialog: false, |
| | | download: {}, |
| | | planYear: '' |
| | | planYear: '', |
| | | option: {} |
| | | }; |
| | | }, |
| | | mounted() { |
| | |
| | | // 方法集合 |
| | | methods: { |
| | | // 查询年度计划表 |
| | | getYearPlanList () { |
| | | getYearPlanList() { |
| | | const entity = { |
| | | monitorName: this.yearForm.monitorName, |
| | | } |
| | |
| | | this.yearLoading = false |
| | | }) |
| | | }, |
| | | clearYear () { |
| | | clearYear() { |
| | | this.yearForm.monitorName = '' |
| | | this.getYearPlanList() |
| | | }, |
| | |
| | | this.yearDetailPage.size = limit; |
| | | this.getYearPlanList(); |
| | | }, |
| | | leadInto () { |
| | | leadInto() { |
| | | this.uploadDia = true |
| | | this.getUserList() |
| | | }, |
| | |
| | | this.$message.error(response.msg) |
| | | } |
| | | }, |
| | | submitUpload () { |
| | | submitUpload() { |
| | | if (!this.planYear) { |
| | | this.$message.warning('请选择年份') |
| | | return; |
| | |
| | | }, |
| | | // end |
| | | // 审核 |
| | | examinePlan (row) { |
| | | examinePlan(row) { |
| | | this.examineDialog = true |
| | | this.examineInfo = row |
| | | this.getUserList() |
| | | }, |
| | | handleReview (examineStatus) { |
| | | handleReview(examineStatus) { |
| | | // 审核状态 , 0 不通过, 1通过 |
| | | this.examineInfo.examineStatus = examineStatus |
| | | this.examineLoading = true |
| | |
| | | this.examineLoading = false |
| | | }) |
| | | }, |
| | | closeExamineDia () { |
| | | closeExamineDia() { |
| | | this.examineDialog = false |
| | | this.examineInfo.examineRemark = '' |
| | | this.getYearPlanList() |
| | | }, |
| | | // 批准 |
| | | approvalPlan (row) { |
| | | approvalPlan(row) { |
| | | this.ratifyDialog = true |
| | | this.ratifyInfo = row |
| | | }, |
| | | handleRatify (ratifyStatus) { |
| | | handleRatify(ratifyStatus) { |
| | | // 批准状态 , 0 不通过, 1通过 |
| | | this.ratifyInfo.ratifyStatus = ratifyStatus |
| | | this.ratifyLoading = true |
| | |
| | | this.ratifyLoading = false |
| | | }) |
| | | }, |
| | | closeRatifyDia () { |
| | | closeRatifyDia() { |
| | | this.ratifyDialog = false |
| | | this.ratifyInfo.ratifyRemark = '' |
| | | this.getYearPlanList() |
| | | }, |
| | | // 批准报告 |
| | | handleApproval (status) { |
| | | handleApproval(status) { |
| | | const personTrainingUpdateDto = { |
| | | qualityMonitorDetailsId: this.currentInfo.qualityMonitorDetailsId, |
| | | ratifyRemark: this.ratifyRemark, |
| | |
| | | }) |
| | | }, |
| | | // 导出 |
| | | handleDown (row) { |
| | | exportQualityMonitorDetail({qualityMonitorId: row.qualityMonitorId}).then(res => { |
| | | handleDown(row) { |
| | | exportQualityMonitorDetail({ qualityMonitorId: row.qualityMonitorId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res],{ type: 'application/msword' }); |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, row.monitorName + '.docx') |
| | | this.$message.success('导出成功') |
| | | }) |
| | | }, |
| | | // 删除进度计划表 |
| | | delPlan (row) { |
| | | delPlan(row) { |
| | | this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.yearLoading = true |
| | | delQualitySupervise({qualityMonitorId: row.qualityMonitorId}).then(res => { |
| | | delQualitySupervise({ qualityMonitorId: row.qualityMonitorId }).then(res => { |
| | | this.yearLoading = false |
| | | this.$message.success('删除成功') |
| | | this.getYearPlanList() |
| | |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 获取年度明细表 |
| | | getYearDetailPlanList () { |
| | | getYearDetailPlanList() { |
| | | const entity = { |
| | | qualityMonitorId: this.qualityMonitorId, |
| | | monitorPurpose: this.yearDetailForm.monitorPurpose, |
| | |
| | | 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 |
| | | }) |
| | | }, |
| | | // 重置明细表 |
| | | clearDetail () { |
| | | clearDetail() { |
| | | this.yearDetailForm = { |
| | | monitorPurpose: '', |
| | | monitorProject: '' |
| | |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 明细表实施 |
| | | carryOut (row) { |
| | | carryOut(row) { |
| | | this.carryOutDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.carryOutDia.openDia(row) |
| | | }) |
| | | }, |
| | | closeCarryOutDia () { |
| | | closeCarryOutDia() { |
| | | this.carryOutDia = false |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 打开完成报告弹框 |
| | | record (row) { |
| | | record(row) { |
| | | this.qualityMonitorDetailsId = row.qualityMonitorDetailsId |
| | | this.ratifyRemark = row.ratifyRemark |
| | | if (row.finishReportUrl) { |
| | | this.currentInfo = row |
| | | this.ratifyStatus = row.ratifyStatus |
| | | const userName = this.nickName |
| | | const isPdf = /\.pdf$/i.test(row.finishReportUrl) |
| | | if (isPdf) { |
| | | this.option = { |
| | | url: this.javaApi + "/word/" + row.finishReportUrl, |
| | | isEdit: false, |
| | | fileType: 'pdf', |
| | | title: '报告', |
| | | lang: 'zh-CN', |
| | | isPrint: false, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + row.finishReportUrl |
| | | } |
| | | } else { |
| | | this.option = {} |
| | | } |
| | | this.lookDialogVisible = true |
| | | } else { |
| | | this.uploadDia1 = true |
| | |
| | | }, |
| | | // end |
| | | // 打开评价弹框 |
| | | evaluate (row) { |
| | | evaluate(row) { |
| | | this.evaluateDialog = true |
| | | this.$nextTick(() => { |
| | | this.$refs.evaluateDialog.openDia(row) |
| | | }) |
| | | }, |
| | | closeEvaDia () { |
| | | closeEvaDia() { |
| | | this.evaluateDialog = false |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 附件上传 |
| | | viewTestRecord (row) { |
| | | this.ViewRecord = true |
| | | this.$nextTick(() => { |
| | | this.$refs.ViewRecord.openDia(row) |
| | | }) |
| | | }, |
| | | // 打开导出弹框 |
| | | downLoadPost (row) { |
| | | downLoadPost(row) { |
| | | this.downloadDialog = true |
| | | this.download = row |
| | | }, |
| | | // 打开年度明细新增、修改弹框 |
| | | showDialog (type, row) { |
| | | showDialog(type, row) { |
| | | this.formDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.formDia.openDia(type, row) |
| | | }) |
| | | }, |
| | | closeDia () { |
| | | closeDia() { |
| | | this.formDia = false |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 控制单导出 |
| | | controlDown() { |
| | | exportQualityMonitorRatify({qualityMonitorDetailsId: this.download.qualityMonitorDetailsId}).then(res => { |
| | | exportQualityMonitorRatify({ qualityMonitorDetailsId: this.download.qualityMonitorDetailsId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '质量监控实施计划.docx') |
| | | this.$message.success('导出成功') |
| | | }) |
| | | }, |
| | | // 完成报告导出 |
| | | 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() { |
| | | exportQualityMonitorEvaluate({qualityMonitorDetailsId: this.download.qualityMonitorDetailsId}).then(res => { |
| | | exportQualityMonitorEvaluate({ qualityMonitorDetailsId: this.download.qualityMonitorDetailsId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '质量监控评价.docx') |
| | | this.$message.success('导出成功') |
| | | }) |
| | | }, |
| | | delYearPlanDetail (row) { |
| | | delYearPlanDetail(row) { |
| | | this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.yearDetailLoading = true |
| | | delQualityMonitorDetail({qualityMonitorDetailsId: row.qualityMonitorDetailsId}).then(res => { |
| | | delQualityMonitorDetail({ qualityMonitorDetailsId: row.qualityMonitorDetailsId }).then(res => { |
| | | this.yearDetailLoading = false |
| | | this.$message.success('删除成功') |
| | | this.getYearDetailPlanList() |
| | |
| | | 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(); |
| | | } |
| | | }, |
| | | // 用于上传文件的信息 |
| | | computed: { |
| | | ...mapGetters(["userId"]), |
| | | ...mapGetters(["userId", "nickName"]), |
| | | action() { |
| | | return this.javaApi + '/qualityMonitor/importQualityMonitor' |
| | | }, |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |