| | |
| | | <div> |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form :hidden="lookVisible" ref="form" :inline="true" :model="searchData"> |
| | | <el-form style="margin-top: 10px;" :hidden="lookVisible" ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item :label="this.radioValue === 0 ? '仪器设备编号:' : '计划编号:'" class="sermargin"> |
| | | <el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="请输入"> |
| | | <el-input size="small" v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 1"> |
| | | <el-button size="small" type="primary" @click="searchPlan">查询</el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 0" :label="this.radioValue === 0 ? '仪器设备名称:' : '设备名称'" |
| | | class="sermargin"> |
| | | <el-input v-model="searchData.name" class="input-form" placeholder="请输入"> |
| | | <el-input size="small" v-model="searchData.name" class="input-form" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 0" :label="this.radioValue === 0 ? '计量单位:' : '计量单位:'" |
| | | style="margin-right: 20px;"> |
| | | <el-input v-model="searchData.measureunit" class="input-form" placeholder="请输入"> |
| | | <el-input size="small" v-model="searchData.measureunit" class="input-form" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form :hidden="lookVisible"> |
| | | <el-form :hidden="lookVisible" style="margin-top: 10px;"> |
| | | <el-form-item v-if="this.radioValue === 0" class="rightBtn"> |
| | | <el-button type="primary" @click="search">查询</el-button> |
| | | <el-button type="primary" plain @click="reset()">重置</el-button> |
| | | <el-button size="small" type="primary" @click="search">查询</el-button> |
| | | <el-button size="small" type="primary" plain @click="reset()">重置</el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 1" class="rightBtn"> |
| | | <el-button type="primary" @click="addPlan()" icon="el-icon-plus">新增计划</el-button> |
| | | <el-button size="small" type="primary" @click="addPlan()" icon="el-icon-plus">新增计划</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="table-box"> |
| | | <el-table v-if="this.radioValue == 0" :max-height="800" :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" |
| | | <el-table v-if="this.radioValue == 0" :max-height="500" :cell-style="{ textAlign: 'left' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'left' }" |
| | | :data="measureLedgerTable" style="width: 100%"> |
| | | <el-table-column type="index" min-width="10%" /> |
| | | <el-table-column prop="equipmentCode" label="仪器设备编号" min-width="10%" /> |
| | |
| | | <el-table-column prop="name" label="负责人" min-width="10%" /> |
| | | <el-table-column prop="createTime" label="创建日期" min-width="10%" /> |
| | | <el-table-column prop="name" label="创建人" min-width="8%" /> |
| | | <el-table-column prop="code" label="计量编号" min-width="8%" /> |
| | | <el-table-column prop="code" label="计量编号" min-width="12%" /> |
| | | <el-table-column label="操作" min-width="15%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="lookMeasurement(scope.row.equipmentCode)" size="small">查看计量履历</el-button> |
| | | <!-- <el-button type="text" @click="lookMeasurement(scope.row.equipmentCode)" size="small">查看计量履历</el-button> --> |
| | | <el-button type="text" size="small">查看附件</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table v-show="this.radioValue == 1" :max-height="800" :cell-style="{ textAlign: 'center' }" |
| | | <el-table v-show="this.radioValue == 1" :max-height="500" :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" |
| | | :data="measurePlanTable" style="width: 100%"> |
| | | <el-table-column type="index" min-width="10%" /> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页器 --> |
| | | <div style="display: flex;justify-content: end;"> |
| | | <div style="display: flex;justify-content: end;padding: 10px 0;"> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize" |
| | | :current-page="currentPage" :page-sizes="[10, 20, 30]" :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-button v-if="selectInfoBtn" @click="combackLookPlan" |
| | | style="position: fixed;top: 43px;right: 14px; z-index: 1000;" type="primary" icon="el-icon-refresh-left" |
| | | size="mini" plain>返回</el-button> |
| | | <div v-if="addBtn" |
| | | style="display: flex;justify-content: center;width: 10%;position: fixed;top: 43px;right: 14px; z-index: 1000;"> |
| | | <el-button @click="addTop = -82; addBtn = false;lookVisible= false" size="mini" style="width: 60px;">返回</el-button> |
| | | <el-button size="mini" @click="measureAdd" style="width: 60px;" type="primary">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div |
| | | :style="`position: absolute;top:${addTop}px;left: 9px;transition: 1s;width: 99%;height: 82vh;background-color: #fff;z-index: 21;`"> |
| | | :style="`position: absolute;top:${addTop}vh;left: 9px;transition: 1s;width: 99%;height: 82vh;background-color: #fff;z-index: 21;`"> |
| | | <Add ref="add" /> |
| | | </div> |
| | | <div id="myMOdel" |
| | | :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 99%; height: 85vh; background-color: #fff;z-index: 20;`"> |
| | | :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 99%; height: 100vh; background-color: #fff;z-index: 20;`"> |
| | | <el-col :span="10"> |
| | | <p style="font-size: 13px;padding-left: 40px;">计划信息</p> |
| | | </el-col> |
| | |
| | | </el-col> |
| | | </el-col> |
| | | <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;"> |
| | | <el-table :data="measureData"> |
| | | <el-table max-height="300" :data="measureData"> |
| | | <el-table-column type="index" label="序号" /> |
| | | <el-table-column prop="equipmentCode" label="仪器设备编号" /> |
| | | <el-table-column prop="equipmentName" label="仪器设备名称" /> |
| | |
| | | </el-col> |
| | | </div> |
| | | <el-dialog class="measureForm" title="计量" :visible.sync="dialogVisible"> |
| | | <el-form label-position="top" ref="upmeasureForm" :model="measureUpInfo"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="检定有效期" prop="date" :rules="[{ required: true, message: '请选择检定有效期', trigger: 'change' }]"> |
| | | <el-date-picker v-model="measureUpInfo.date" type="daterange" range-separator="至" start-placeholder="开始日期" |
| | | end-placeholder="结束日期" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="不确定度" prop="uncertainty" |
| | | :rules="[{ required: true, message: '请填写不确定度', trigger: 'blur' }]"> |
| | | <el-input placeholder="请填写不确定度" v-model="measureUpInfo.uncertainty" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'change' }]"> |
| | | <el-select v-model="measureUpInfo.result" clearable filterable :allow-create="true" placeholder="请选择结果" |
| | | style="width:100%"> |
| | | <el-option v-for="item in result" :key="item.id" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="性能指标"> |
| | | <el-input v-model="measureUpInfo.performanceIndex" type="textarea" :rows="2" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="measureUpInfo.remarks" type="textarea" :rows="2" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label=""> |
| | | <el-upload class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="addMeasure">确 定</el-button> |
| | | <el-form label-position="top" ref="upmeasureForm" :model="measureUpInfo"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="检定有效期" prop="date" |
| | | :rules="[{ required: true, message: '请选择检定有效期', trigger: 'change' }]"> |
| | | <el-date-picker v-model="measureUpInfo.date" type="date" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="不确定度" prop="uncertainty" |
| | | :rules="[{ required: true, message: '请填写不确定度', trigger: 'blur' }]"> |
| | | <el-input placeholder="请填写不确定度" v-model="measureUpInfo.uncertainty" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'change' }]"> |
| | | <el-select v-model="measureUpInfo.result" clearable filterable :allow-create="true" placeholder="请选择结果" |
| | | style="width:100%"> |
| | | <el-option v-for="item in result" :key="item.id" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="性能指标"> |
| | | <el-input v-model="measureUpInfo.performanceIndex" type="textarea" :rows="2" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="measureUpInfo.remarks" type="textarea" :rows="2" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label=""> |
| | | <el-upload class="upload-demo" action="#" :on-change="handleUploadupdated" :auto-upload="false"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="upMeasure">确 定</el-button> |
| | | |
| | | <el-button @click="dialogVisible=false">取 消</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-button @click="dialogVisible = false">取 消</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getPlanPageList, getStandingPageList, getPlanMeasureInstrument, limitGetPlanMeasureRequest } from '@/api/laboratory/measure' |
| | | import { getPlanPageList, getStandingPageList, getPlanMeasureInstrument, limitGetPlanMeasureRequest, updateMetricalInformationInfo } from '@/api/laboratory/measure' |
| | | import { default as Add } from "./Add.vue"; |
| | | export default { |
| | | components: { |
| | |
| | | return { |
| | | dialogVisible: false, |
| | | tableIndex: null, |
| | | measureUpInfo:{ |
| | | selectInfoBtn: false, |
| | | addBtn: false, |
| | | measureUpInfo: { |
| | | id: null, |
| | | code: null, |
| | | result: null, |
| | | date: null, |
| | | uncertainty: null, |
| | | performanceIndex: null, |
| | | remarks: null, |
| | | file: null |
| | | file: null, |
| | | termValidity: null |
| | | }, |
| | | result: [{ |
| | | label: '合格', |
| | |
| | | measureLedgerTable: [], |
| | | measurePlanTable: [], |
| | | currentPage: 1, |
| | | pageSize: 5, |
| | | pageSize: 10, |
| | | total: 0, |
| | | currentPagePlan: 1, |
| | | pageSizePlan: 5, |
| | | pageSizePlan: 10, |
| | | totalPlan: 0, |
| | | direction: 'rtl', |
| | | lookVisible: false, |
| | |
| | | createPerson: '某某负责人', |
| | | createTime: '2021-09-08' |
| | | }, |
| | | mymodelTop: -700,//14 |
| | | addTop: -700, |
| | | mymodelTop: -1000,//14 |
| | | addTop: -85, |
| | | planId: 0 |
| | | } |
| | | }, |
| | |
| | | // this.getPlanPageList() |
| | | }, |
| | | methods: { |
| | | upResult(){ |
| | | this.measureData[this.tableIndex].result=this.resultUp |
| | | |
| | | upResult() { |
| | | this.measureData[this.tableIndex].result = this.resultUp |
| | | |
| | | }, |
| | | measureUp(scope) { |
| | | console.log(scope); |
| | | this.dialogVisible = true |
| | | this.tableIndex=scope.$index |
| | | this.measureUpInfo.result=scope.row.result |
| | | }, |
| | | measureAdd() { |
| | | let add = this.$refs.add.add() |
| | | if (add) { |
| | | this.addTop = -700 |
| | | async upMeasure() { |
| | | let res = await updateMetricalInformationInfo(this.measureUpInfo) |
| | | if (res) { |
| | | this.$message({ |
| | | message: '操作成功!', |
| | | type: 'success' |
| | | }); |
| | | this.lookVisible = false |
| | | this.limitGetPlanMeasureInstrument() |
| | | this.dialogVisible = false |
| | | } |
| | | }, |
| | | handleUploadupdated() { |
| | | |
| | | }, |
| | | measureUp(scope) { |
| | | this.dialogVisible = true |
| | | this.tableIndex = scope.$index |
| | | this.measureUpInfo.result = scope.row.result |
| | | this.measureUpInfo.code = scope.row.code |
| | | this.measureUpInfo.date = scope.row.endDate |
| | | this.measureUpInfo.id = scope.row.imId |
| | | this.measureUpInfo.uncertainty = scope.row.uncertainty |
| | | this.measureUpInfo.performanceIndex = scope.row.performanceIndex |
| | | this.measureUpInfo.remarks = scope.row.remarks |
| | | this.measureUpInfo.termValidity = scope.row.termValidity |
| | | }, |
| | | async measureAdd() { |
| | | let res = await this.$refs.add.add() |
| | | if (!res) { |
| | | return |
| | | } |
| | | this.addTop = -82 |
| | | this.$message({ |
| | | message: '操作成功!', |
| | | type: 'success' |
| | | }); |
| | | this.lookVisible = false |
| | | this.addBtn = false |
| | | // this.limitGetPlanMeasureInstrument() |
| | | this.getPlanPageList() |
| | | }, |
| | | async handleSizeChangePlan(num) { |
| | | console.log(num); |
| | | this.pageSizePlan = num |
| | | this.currentPage |
| | | await this.limitGetPlanMeasureInstrument() |
| | | }, |
| | | async handleCurrentChangePllan(num) { |
| | | this.currentPagePlan = num |
| | | await this.limitGetPlanMeasureInstrument() |
| | | handleCurrentChangePllan(num) { |
| | | this.currentPagePlan = num; |
| | | this.limitGetPlanMeasureInstrument(); |
| | | }, |
| | | addPlan() { |
| | | this.addTop = 14 |
| | | this.addTop = 2 |
| | | this.lookVisible = true |
| | | this.$parent.mainShowAdd() |
| | | this.addBtn = true |
| | | }, |
| | | async limitGetPlanMeasureInstrument() { |
| | | let param = { |
| | |
| | | currentPage: this.currentPagePlan, |
| | | pageSize: this.pageSizePlan |
| | | } |
| | | console.log(param); |
| | | let res = await limitGetPlanMeasureRequest(param) |
| | | this.totalPlan = res.data.taotal |
| | | this.measureData = res.data.list |
| | | const res = await limitGetPlanMeasureRequest(param); |
| | | console.log(res.data.total); |
| | | // this.totalPlan = res.data.taotal; |
| | | this.measureData = res.data.list; |
| | | console.log(this.totalPlan); |
| | | }, |
| | | lookPalan(id) { |
| | | this.planId = id |
| | | this.getPlanAndInfoAndIns(id) |
| | | this.lookVisible = true |
| | | this.mymodelTop = 10 |
| | | this.mymodelTop = 2 |
| | | this.selectInfoBtn = true |
| | | this.$parent.triggerMainBtnPlan() |
| | | }, |
| | | async getPlanAndInfoAndIns(id) { |
| | | let res = await getPlanMeasureInstrument({ "id": id, "currentPage": this.currentPagePlan, "pageSize": this.pageSize }); |
| | | console.log(res); |
| | | for (const key in res.data.list) { |
| | | this.planInfo[key] = res.data.list[key] |
| | | } |
| | |
| | | }, |
| | | combackLookPlan() { |
| | | this.lookVisible = false |
| | | this.mymodelTop = -700 |
| | | this.mymodelTop = -1000 |
| | | this.selectInfoBtn = false |
| | | }, |
| | | blurSearch() { |
| | | if (this.radioValue === 1) { |
| | | console.log("计划"); |
| | | } |
| | | }, |
| | | handleClose() { |
| | |
| | | currentPage: this.currentPage, pageSize: this.pageSize, |
| | | code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit |
| | | } |
| | | console.log(param); |
| | | const res = await getStandingPageList(param) |
| | | this.measureLedgerTable = res.data.records |
| | | this.total = res.data.total |
| | |
| | | search() { |
| | | this.getStandingPageList() |
| | | }, |
| | | searchPlan(){ |
| | | this.getPlanPageList() |
| | | }, |
| | | reset(formName) { |
| | | this.searchData.name = '' |
| | | this.searchData.code = '' |
| | |
| | | this.reset() |
| | | }, |
| | | async getPlanPageList() { |
| | | // console.log(111); |
| | | let param = { |
| | | currentPage: this.currentPage, pageSize: this.pageSize, |
| | | code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit |
| | | currentPage: this.currentPage, |
| | | pageSize: this.pageSize, |
| | | plannedOrderNumber: this.searchData.code |
| | | } |
| | | console.log(param); |
| | | const res = await getPlanPageList(param) |
| | | res.data.list.forEach(item => { |
| | | item.palanDate = item.beginTime + " ~ " + item.endTime |
| | | }) |
| | | this.measurePlanTable = res.data.list |
| | | this.total = res.data.total |
| | | console.log(333); |
| | | }, |
| | | async lookMeasurement(code) { |
| | | console.log(code); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style scoped lang="scss"> |
| | | .top-bar { |
| | | margin: -25px -15px; |
| | | background: #fff; |