| | |
| | | </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;"> |
| | |
| | | </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"> |
| | |
| | | { |
| | | 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 { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | 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: [ |
| | |
| | | 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 |
| | |
| | | <el-date-picker |
| | | v-model="form.superviseTime" |
| | | clearable |
| | | format="yyyy-MM" |
| | | format="yyyy.M" |
| | | placeholder="选择日期" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="month" |
| | | value-format="yyyy-MM"> |
| | | value-format="yyyy.M"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <el-form :model="yearDetailForm" ref="yearDetailForm" size="small" :inline="true"> |
| | | <el-form-item> |
| | | <el-radio-group v-model="yearDetailForm.causeType" @change="getYearDetailPlanList" size="small"> |
| | | <el-radio-group v-model="yearDetailForm.causeType" @change="getYearDetailPlan" size="small"> |
| | | <el-radio-button :label="1">定期监督</el-radio-button> |
| | | <el-radio-button :label="2">动态监督</el-radio-button> |
| | | </el-radio-group> |
| | |
| | | <el-input v-model="yearDetailForm.superviseProject" placeholder="请输入" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="getYearDetailPlanList">查询</el-button> |
| | | <el-button type="primary" size="mini" @click="getYearDetailPlan">查询</el-button> |
| | | <el-button size="mini" @click="clearDetail">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | </div> |
| | | </div> |
| | | <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage" |
| | | :tableLoading="yearDetailLoading" height="40vh" @pagination="pagination1" |
| | | key="yearDetailTableData"></lims-table> |
| | | :tableLoading="yearDetailLoading" height="40vh" @pagination="pagination1" key="yearDetailColumnData"></lims-table> |
| | | </div> |
| | | <!--新增修改弹框--> |
| | | <detail-form-dialog v-if="formDia" ref="formDia" :superviseId="superviseId" |
| | |
| | | @closeProcessingDia="closeProcessingDia"></processing-sheet> |
| | | <!--纠正处理流程弹框--> |
| | | <rectify-dialog-new v-if="rectifyDia" ref="rectifyDia" :superviseId="superviseId" |
| | | @closeProcessingDia="closeRectifyDia"></rectify-dialog-new> |
| | | @closeRectifyDia="closeRectifyDia"></rectify-dialog-new> |
| | | <el-dialog :visible.sync="ratifyDialog" title="批准" width="30%" @close="closeRatifyDia"> |
| | | <span> |
| | | 批准备注: |
| | |
| | | { |
| | | label: '计划名称', |
| | | prop: 'superviseName', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '编制人', |
| | | prop: 'writeUserName', |
| | | minWidth: '100' |
| | | }, { |
| | | label: '编制日期', |
| | | prop: 'writeTime', |
| | | minWidth: '160' |
| | | width: '160' |
| | | }, { |
| | | dataType: 'tag', |
| | | label: '批准状态', |
| | | prop: 'ratifyStatus', |
| | | minWidth: '100', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '不批准'; |
| | |
| | | }, { |
| | | label: '批准内容', |
| | | prop: 'ratifyRemark', |
| | | minWidth: '100' |
| | | }, { |
| | | label: '批准人', |
| | | prop: 'ratifyUserName', |
| | | minWidth: '100' |
| | | }, { |
| | | label: '批准日期', |
| | | prop: 'ratifyTime', |
| | | minWidth: '160' |
| | | width: '160' |
| | | }, { |
| | | dataType: 'action', |
| | | label: '操作', |
| | | fixed: 'right', |
| | | operation: [ |
| | | { |
| | | name: '批准', |
| | |
| | | { |
| | | label: '监督日期', |
| | | prop: 'superviseTime', |
| | | minWidth: '150px' |
| | | width: '120px' |
| | | }, { |
| | | label: '监督目的', |
| | | prop: 'supervisePurpose', |
| | | minWidth: '150px', |
| | | showOverflowTooltip: true, |
| | | width: '150px', |
| | | }, { |
| | | label: '监控项目', |
| | | prop: 'superviseProject', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | }, { |
| | | label: '被监督人员', |
| | | prop: 'supervisee', |
| | | minWidth: '150px' |
| | | width: '120px' |
| | | }, { |
| | | label: '监督原因', |
| | | prop: 'superviseReason', |
| | | minWidth: '150px' |
| | | width: '150px' |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '记录状态', |
| | | prop: 'recordStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待批准'; |
| | | } else if (params === 2) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '控制状态', |
| | | prop: 'accordingStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待批准'; |
| | | } else if (params === 2) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | },{ |
| | | dataType: 'tag', |
| | | label: '纠正状态', |
| | | prop: 'correctStatus', |
| | | width: '100', |
| | | formatData: (params) => { |
| | | if (params === 0) { |
| | | return '未开始'; |
| | | } else if (params === 1) { |
| | | return '待批准'; |
| | | } else if (params === 2) { |
| | | return '已批准'; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params === 0) { |
| | | return ''; |
| | | } else if (params === 1) { |
| | | return 'warning'; |
| | | } else if (params === 2) { |
| | | return 'success'; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | }, { |
| | | label: '备注', |
| | | prop: 'remark', |
| | | minWidth: '150px' |
| | | }, { |
| | | dataType: 'action', |
| | | label: '操作', |
| | | fixed: 'right', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | |
| | | size: 20, |
| | | total: 0 |
| | | }, |
| | | currentScrollPosition: 0, |
| | | superviseId: '', |
| | | formDia: false, |
| | | recordsDia: false, |
| | |
| | | pagination({ page, limit }) { |
| | | this.yearPage.current = page; |
| | | this.yearPage.size = limit; |
| | | this.getYearPlanList(); |
| | | }, |
| | | pagination1({ page, limit }) { |
| | | this.yearDetailPage.current = page; |
| | | this.yearDetailPage.size = limit; |
| | | this.getYearPlanList(); |
| | | }, |
| | | // 导入流程 |
| | |
| | | // 年度计划表格,点击行数据后刷新详情 |
| | | rowClick(row) { |
| | | this.superviseId = row.superviseId |
| | | this.getYearDetailPlan() |
| | | }, |
| | | getYearDetailPlan () { |
| | | this.yearDetailPage.current = 1 |
| | | this.yearDetailPage.size = 20 |
| | | this.getYearDetailPlanList() |
| | | }, |
| | | // 获取年度明细表 |
| | |
| | | this.yearDetailLoading = false |
| | | }) |
| | | }, |
| | | pagination1(page) { |
| | | this.yearDetailPage.size = page.limit; |
| | | this.getYearDetailPlanList(); |
| | | }, |
| | | // 重置明细表 |
| | | clearDetail() { |
| | | this.yearDetailForm = { |
| | |
| | | </div> |
| | | <div style="margin: 10px 0"> |
| | | <el-table ref="yearTable" :data="examinePlanDetailsList" id="templateParamTable" row-key="deviceId" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border height="500px" style="width: 100% ;"> |
| | | v-loading="yearTableLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border height="500px"> |
| | | <el-table-column label="设备名称" min-width="190" prop="deviceName"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.deviceName" clearable size="small"></el-input> |
| | |
| | | planId: '', |
| | | examinePlanDetailsList: [], |
| | | }, |
| | | operationType: '' |
| | | operationType: '', |
| | | yearTableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | planYear: '', |
| | | examinePlanDetailsList: [], |
| | | } |
| | | this.examinePlanDetailsList = [] |
| | | } else { |
| | | this.getRowInfo(row) |
| | | } |
| | |
| | | this.getUserList() |
| | | }, |
| | | getRowInfo(row) { |
| | | this.yearTableLoading = true |
| | | getDeviceExaminePlan({ planId: row.planId }).then(res => { |
| | | this.yearTableLoading = false |
| | | if (res.code == 200) { |
| | | this.examinePlanDetailsList = res.data.examinePlanDetailsList |
| | | this.form.planName = res.data.planName |
| | | this.form.planYear = res.data.planYear |
| | | this.form.planId = res.data.planId |
| | | } |
| | | }).catch(error => { |
| | | this.yearTableLoading = false |
| | | }) |
| | | }, |
| | | // 添加设备 |
| | |
| | | </div> |
| | | <div style="margin: 10px 0"> |
| | | <el-table id="templateParamTable" ref="yearTable" :data="calibrationPlanDetailList" height="300px" |
| | | v-loading="yearTableLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | row-key="deviceId" style="width: 100% ;"> |
| | | <el-table-column label="设备名称及型号" min-width="190" prop="deviceName"> |
| | |
| | | planId: '', |
| | | calibrationPlanDetailList: [], |
| | | }, |
| | | operationType: '' |
| | | operationType: '', |
| | | yearTableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.form = { |
| | | planName: '', |
| | | planYear: '', |
| | | examinePlanDetailsList: [], |
| | | calibrationPlanDetailList: [], |
| | | } |
| | | this.calibrationPlanDetailList = [] |
| | | } else { |
| | | this.getRowInfo(row) |
| | | } |
| | | this.applicationForm = true |
| | | }, |
| | | getRowInfo(row) { |
| | | this.yearTableLoading = true |
| | | getDeviceCalibrationPlan({ planId: row.planId }).then(res => { |
| | | this.yearTableLoading = false |
| | | if (res.code == 200) { |
| | | this.calibrationPlanDetailList = res.data.calibrationPlanDetailList |
| | | this.form.planName = res.data.planName |
| | | this.form.planYear = res.data.planYear |
| | | this.form.planId = res.data.planId |
| | | } |
| | | }).catch(err => { |
| | | this.yearTableLoading = false |
| | | }) |
| | | }, |
| | | // 添加设备 |
| | |
| | | this.selectionRows.map(val => { |
| | | this.calibrationPlanDetailList.push({ |
| | | deviceId: val.id, deviceName: val.label, deviceNumber: val.value, |
| | | specificationModel: val.specificationModel, verificationCycles: val.calibrationDate, lastDate: val.lastCalibrationDate.substring(0, 10), planDate: val.nextCalibrationDate.substring(0, 10) |
| | | specificationModel: val.specificationModel, |
| | | verificationCycles: val.calibrationDate, |
| | | lastDate: val.lastCalibrationDate.substring(0, 10), |
| | | planDate: val.nextCalibrationDate.substring(0, 10), |
| | | verificationUnit: val.calibrationServices, |
| | | deviceAmount: 1 |
| | | }) |
| | | }) |
| | | this.addEquipDia = false |
| | |
| | | <template> |
| | | <div> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">流程编号:</div> |
| | | <div><el-input size="small" placeholder="请输入" clearable v-model="queryParams.processNumber" |
| | | @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true"> |
| | | <el-form-item label="流程编号"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.processNumber" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button> |
| | | <el-button size="mini" @click="refresh()">重置</el-button> |
| | | </div> |
| | | <div class="btns"> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="add">新增</el-button> |
| | | <!-- <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">导出</el-button>--> |
| | | </div> |
| | | </div> |
| | | <div class="tables" style="margin-top: 10px;"> |
| | | <div class="tables"> |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'" |
| | | :page="page" @pagination="pagination"></lims-table> |
| | | <!-- <ValueTable ref="ValueTable" :url="$api.deviceBorrow.deviceBorrowPage" |
| | | :delUrl="$api.deviceBorrow.deleteDeviceBorrow" :componentData="componentData" :key="upIndex" /> --> |
| | | </div> |
| | | <el-dialog title="仪器设备领(借)用登记" top="5vh" :visible.sync="dialogVisible" width="60%"> |
| | | <el-steps :active="currentStep" finish-status="success" align-center> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="归还人:" prop="rebackUser" |
| | | :rules="[{ required: currentStep === 1, message: '请输入归还人', trigger: 'change' }]"> |
| | | <!-- <el-input v-model="form.rebackUser" size="small" :disabled="currentStep !== 1"></el-input> --> |
| | | <el-select v-model="form.rebackUser" filterable placeholder="请选择" clearable size="small" |
| | | style="width: 50%;" :disabled="currentStep !== 1"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name"> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="设备负责人:" prop="deviceUser" |
| | | :rules="[{ required: currentStep === 1, message: '请选择设备负责人', trigger: 'change' }]"> |
| | | <!-- <el-input v-model="form.deviceUser" size="small" :disabled="currentStep !== 1"></el-input> --> |
| | | <el-select v-model="form.deviceUser" filterable placeholder="请选择" clearable size="small" |
| | | style="width: 50%;" :disabled="currentStep !== 1"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name"> |
| | |
| | | <el-input type="textarea" v-model="form.note" :disabled="currentStep !== 1" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </el-card> |
| | | <el-row style="margin-top: 1em;"> |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | h4 { |
| | | font-weight: 400; |
| | | font-size: 16px; |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | h4 .line { |
| | | display: inline-block; |
| | | width: 3px; |
| | | height: 16px; |
| | | background: #3A7BFA; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .tables { |
| | | width: 100%; |
| | | height: calc(100vh - 15em); |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 40px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 70px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 0px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | |
| | | .btns_thing { |
| | | position: absolute; |
| | | right: 230px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | |
| | | .form .search_label { |
| | | width: 120px; |
| | | } |
| | | |
| | | .el-radio { |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .el-radio-group { |
| | | width: 100%; |
| | | display: flex; |
| | | margin-top: 12px; |
| | | } |
| | | </style> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" style="margin-right: 5%;" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange"> |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange" background> |
| | | </el-pagination> |
| | | </div> |
| | | <!-- 校准项目维护 --> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | <div> |
| | | <el-table ref="yearTable" v-loading="yearTableDataLoading" :data="yearTableData" height="calc(60vh - 20em)" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | highlight-current-row style="width: 100% ;" @current-change="currentChange"> |
| | | highlight-current-row @current-change="currentChange"> |
| | | <!-- 表格列 --> |
| | | <el-table-column align="center" header-align="center" label="序号" prop="prop" type="index" |
| | | width="70"></el-table-column> |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column> |
| | | <el-table-column label="批准状态" min-width="100" prop="ratifyStatus"> |
| | |
| | | <!-- 表格列 --> |
| | | <el-table-column align="center" header-align="center" label="序号" prop="prop" type="index" |
| | | width="70"></el-table-column> |
| | | <el-table-column label="设备名称及型号" min-width="180" prop="deviceName"></el-table-column> |
| | | <el-table-column label="设备名称及型号" min-width="180" prop="deviceName" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="设备数量" min-width="180" prop="deviceAmount"></el-table-column> |
| | | <el-table-column label="仪器编号" min-width="150" prop="deviceNumber"></el-table-column> |
| | | <el-table-column label="检定单位" min-width="150" prop="verificationUnit"> </el-table-column> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | title="设备保养计划表" width="80%" @close="closeDialog"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-button v-if="operationType !== 'check'" size="small" type="primary" @click="addTableRow">添加</el-button> |
| | | <span style="width: 60px">年份:</span> |
| | | <span style="width: 60px;margin-left: 10px">年份:</span> |
| | | <el-date-picker v-model="form.planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy" |
| | | placeholder="选择年"> |
| | | </el-date-picker> |
| | |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1" background> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | |
| | | <div> |
| | | <el-table ref="yearTable" v-loading="yearTableDataLoading" :data="yearTableData" height="calc(60vh - 20em)" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | highlight-current-row style="width: 100% ;" @current-change="currentChange"> |
| | | highlight-current-row @current-change="currentChange"> |
| | | <!-- 表格列 --> |
| | | <el-table-column align="center" header-align="center" label="序号" prop="prop" type="index" |
| | | width="70"></el-table-column> |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column> |
| | | <el-table-column label="批准状态" min-width="100" prop="ratifyStatus"> |
| | |
| | | <el-table-column align="center" header-align="center" label="序号" prop="prop" type="index" |
| | | width="70"></el-table-column> |
| | | <el-table-column label="设备编号" min-width="180" prop="deviceNumber"></el-table-column> |
| | | <el-table-column label="设备名称" min-width="180" prop="deviceName"></el-table-column> |
| | | <el-table-column label="设备名称" min-width="180" prop="deviceName" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="核查时间" min-width="150" prop="checkTime"></el-table-column> |
| | | <el-table-column label="核查指标" min-width="150" prop="checkIndex"> </el-table-column> |
| | | <el-table-column label="核查方法" min-width="150" prop="checkMethod"></el-table-column> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | <template> |
| | | <div> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">流程编号:</div> |
| | | <div class="search_input"><el-input v-model="search.deviceNumber" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="getAllMessage(clickNodeVal.value)"></el-input></div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-form :model="search" ref="search" size="small" :inline="true"> |
| | | <el-form-item label="流程编号"> |
| | | <el-input v-model="search.deviceNumber" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="getAllMessage(clickNodeVal.value)"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="mini" type="primary" @click="getAllMessage(clickNodeVal.value)">查询</el-button> |
| | | <el-button size="mini" @click="resetSearch">重置</el-button> |
| | | </div> |
| | | <div class="btns"> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="dialogVisible = true; add()">添加维护记录</el-button> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="handleDownOne">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="tables" style="margin-top: 10px;"> |
| | | <div> |
| | | <el-table ref="table" :data="MaintainParam" height="calc(100vh - 20em)" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | <el-table-column label="序号" type="index" width="120"> |
| | |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | @current-change="handleCurrentChange" background> |
| | | </el-pagination> |
| | | </div> |
| | | <!-- 新建维护 --> |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | h4 { |
| | | font-weight: 400; |
| | | font-size: 16px; |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | h4 .line { |
| | | display: inline-block; |
| | | width: 3px; |
| | | height: 16px; |
| | | background: #3A7BFA; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .tables { |
| | | width: 100%; |
| | | height: calc(100vh - 17em); |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 40px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 80px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: 73%; |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 0px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | |
| | | .btns_thing { |
| | | position: absolute; |
| | | right: 230px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | |
| | | .form .search_label { |
| | | width: 120px; |
| | | align-items: flex-start; |
| | | } |
| | | </style> |
| | |
| | | </el-table> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1" |
| | | :page-sizes="[10, 20, 30, 50, 100]" :page-size="search.size" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="search.total"> |
| | | :total="search.total" background> |
| | | </el-pagination> |
| | | <el-dialog :visible.sync="dialogVisible" title="受控申请" width="60%"> |
| | | <div style="height: 60vh; overflow-y: auto; overflow-x: hidden;"> |
| | |
| | | title="仪器设备量值溯源管理总体计划" width="80%" @close="closeDialog"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-button v-if="operationType !== 'check'" size="small" type="primary" @click="addTableRow">添加</el-button> |
| | | <span style="width: 60px">年份:</span> |
| | | <span style="width: 60px;margin-left: 10px">年份:</span> |
| | | <el-date-picker v-model="form.planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy" |
| | | placeholder="选择年"> |
| | | </el-date-picker> |
| | |
| | | <div style="margin: 10px 0"> |
| | | <el-table ref="yearTable" :data="deviceTraceabilityManagementDetails" height="300px" id="templateParamTable" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | row-key="deviceId" style="width: 100% ;"> |
| | | row-key="deviceId" v-loading="yearTableLoading"> |
| | | <el-table-column align="center" header-align="center" label="序号" type="index" width="60"></el-table-column> |
| | | <el-table-column label="设备名称" min-width="170" prop="deviceId"> |
| | | <template slot-scope="scope"> |
| | |
| | | notificationLoading: false, |
| | | auditId: '', |
| | | traceabilityManagementId: '', |
| | | yearTableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.form = { |
| | | planYear: '', |
| | | deviceTraceabilityManagementDetails: [] |
| | | }, |
| | | } |
| | | this.deviceTraceabilityManagementDetails = [] |
| | | if (row) { |
| | | this.traceabilityManagementId = row.traceabilityManagementId |
| | | this.yearTableLoading = true |
| | | getTraceabilityManagementDetail({ traceabilityManagementId: this.traceabilityManagementId }).then(res => { |
| | | this.yearTableLoading = false |
| | | if (res.code === 200) { |
| | | this.form = res.data |
| | | this.deviceTraceabilityManagementDetails = this.form.deviceTraceabilityManagementDetails |
| | | } |
| | | }).catch(error => { |
| | | console.error(error) |
| | | this.yearTableLoading = false |
| | | }) |
| | | } |
| | | }, |
| | |
| | | changeMachineName() { |
| | | this.deviceTraceabilityManagementDetails = [] |
| | | this.selectionRows.map(val => { |
| | | this.deviceTraceabilityManagementDetails.push({ deviceId: val.id, managementNumber: val.value, deviceName: val.label, specificationModel: val.specificationModel }) |
| | | this.deviceTraceabilityManagementDetails.push({ |
| | | deviceId: val.id, |
| | | managementNumber: val.value, |
| | | deviceName: val.label, |
| | | specificationModel: val.specificationModel, |
| | | verificationUnit: val.calibrationServices, |
| | | verificationCycle: val.calibrationDate |
| | | }) |
| | | }) |
| | | this.addEquipDia = false |
| | | this.rowDrop() |
| | |
| | | <template> |
| | | <div> |
| | | <div class="search"> |
| | | <el-row :gutter="10" style="width: 100%;"> |
| | | <el-col :span="20" style="display: flex;flex-wrap: wrap;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">流程编号:</div> |
| | | <div class="search_input"> |
| | | <el-form :model="search" ref="search" size="small" :inline="true"> |
| | | <el-form-item label="流程编号"> |
| | | <el-input v-model="search.processNumber" clearable placeholder="请输入" size="small" style="width: 100%" |
| | | @keyup.enter.native="getDeviceStatePage(clickNodeVal.value)"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 20px;"> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="mini" type="primary" @click="getDeviceStatePage(clickNodeVal.value)">查询</el-button> |
| | | <el-button size="mini" @click="resetSearch">重置</el-button> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <div class="btns"> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="dialogVisible = true">新建</el-button> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导出Excel</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div> |
| | | <el-table :data="tableDatalist" height="calc(100vh - 20em)" style="width: 100% ;" |
| | |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | @current-change="handleCurrentChange" background> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" title="设备情况" |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .dialog-content { |
| | | max-height: 70vh; |
| | | /* 设置最大高度 */ |
| | | overflow-y: auto; |
| | | /* 启用垂直滚动 */ |
| | | } |
| | | |
| | | h4 { |
| | | font-weight: 400; |
| | | font-size: 16px; |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | /* |
| | | 保存提交按钮样式 |
| | | */ |
| | | h4 .title { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | h4 .title .line { |
| | | display: inline-block; |
| | | width: 3px; |
| | | height: 16px; |
| | | background: #3A7BFA; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .tables { |
| | | width: 100%; |
| | | height: calc(100vh - 15em); |
| | | } |
| | | |
| | | .el-from { |
| | | max-width: 400px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .form-row { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | |
| | | .form-row .el-form-item { |
| | | flex: 1; |
| | | /* 每个表单项占据相同比例的空间 */ |
| | | margin-right: 100px; |
| | | /* 可选:为右侧元素添加间距 */ |
| | | } |
| | | |
| | | /* 移除最后一个元素的右边距 */ |
| | | .form-row .el-form-item:last-child { |
| | | margin-right: 0; |
| | | |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | margin: 10px 0; |
| | | height: 46px; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 40px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 70px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: 70%; |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | |
| | | .form .search_label { |
| | | width: 120px; |
| | | justify-content: space-between; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |
| | |
| | | <el-button size="small" type="primary" @click="openAdd('新增')">新增</el-button> |
| | | <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx' |
| | | :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload' |
| | | :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;"> |
| | | :on-success="handleSuccessUp" style="display: inline-block;margin: 0 8px"> |
| | | <el-button type="primary" size="small">导入</el-button></el-upload> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading" |
| | | style="display:inline-block;margin-left: 20px;">导出</el-button> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | |
| | | <el-button size="small" type="primary" @click="openAdd">新增</el-button> |
| | | <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx' |
| | | :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload' |
| | | :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;"> |
| | | :on-success="handleSuccessUp" style="display:inline-block;margin: 0 8px;"> |
| | | <el-button type="primary" size="small">导入</el-button></el-upload> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading" |
| | | style="display:inline-block;margin-left: 20px;">导出</el-button> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | |
| | | <el-button size="small" type="primary" @click="openAdd">新增</el-button> |
| | | <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx' |
| | | :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload' |
| | | :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;"> |
| | | :on-success="handleSuccessUp" style="display:inline-block;margin: 0 8px;"> |
| | | <el-button type="primary" size="small">导入</el-button></el-upload> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading" |
| | | style="display:inline-block;margin-left: 20px;">导出</el-button> |
| | | <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |