From 15ac79a640187f1bc4d52d911428786bfdc710bd Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期二, 22 八月 2023 09:36:50 +0800
Subject: [PATCH] 新增检验功能完善
---
src/views/laboratory/measure/index.vue | 285 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 239 insertions(+), 46 deletions(-)
diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue
index 96ab797..c32c063 100644
--- a/src/views/laboratory/measure/index.vue
+++ b/src/views/laboratory/measure/index.vue
@@ -3,7 +3,7 @@
<div class="content-main">
<div class="top-bar">
<el-form :hidden="lookVisible" ref="form" :inline="true" :model="searchData">
- <el-form-item :label="this.radioValue === 0 ? '浠櫒璁惧缂栧彿:' : '璁″垝鍗曞彿:'" class="sermargin">
+ <el-form-item :label="this.radioValue === 0 ? '浠櫒璁惧缂栧彿:' : '璁″垝缂栧彿:'" class="sermargin">
<el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="璇疯緭鍏�">
</el-input>
</el-form-item>
@@ -82,7 +82,7 @@
: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 prop="plannedOrderNumber" label="璁″垝鍗曞彿" min-width="10%" />
+ <el-table-column prop="plannedOrderNumber" label="璁″垝缂栧彿" min-width="10%" />
<el-table-column prop="palanDate" label="璁″垝鏃ユ湡" min-width="10%">
<template lot-scope="scope">
<!-- {{ scope.row.palanDate }} -->
@@ -117,11 +117,12 @@
</div>
</div>
</div>
- <el-drawer title="鎴戞槸鏍囬" :visible.sync="drawer" :direction="direction" :before-close="handleClose">
- <span>鎴戞潵鍟�!</span>
- </el-drawer>
+ <div
+ :style="`position: absolute;top:${addTop}px;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: 100%; height: 60vh; background-color: #fff;z-index: 20;`">
+ :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 99%; height: 85vh; background-color: #fff;z-index: 20;`">
<el-col :span="10">
<p style="font-size: 13px;padding-left: 40px;">璁″垝淇℃伅</p>
</el-col>
@@ -130,7 +131,7 @@
<el-form-item>
<el-col :span="8">璁″垝缂栧彿锛�<span style="color: black;">{{ planInfo.plannedOrderNumber }}</span></el-col>
<el-col :span="8">璐熻矗浜猴細<span style="color: black;">{{ planInfo.measurePerson }}</span></el-col>
- <el-col :span="8">璁″垝鏃堕棿锛�<span style="color: black;">{{ planInfo.palanDate }}</span></el-col>
+ <el-col :span="8">璁″垝鏃堕棿锛�<span style="color: black;">{{ planInfo.planDate }}</span></el-col>
</el-form-item>
<el-form-item>
<el-col :span="8">璁¢噺鍗曚綅锛�<span style="color: black;">{{ planInfo.unit }}</span></el-col>
@@ -148,39 +149,154 @@
:show-text="false"></el-progress>
</el-col>
</el-col>
- <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
+ <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
<el-table :data="measureData">
- <el-table-column type="inde" label="搴忓彿"/>
- <el-table-column type="inde" label="浠櫒璁惧缂栧彿"/>
- <el-table-column type="inde" label="浠櫒璁惧鍚嶇О"/>
- <el-table-column type="inde" label="娴嬮噺鑼冨洿"/>
- <el-table-column type="inde" label="璁$畻鍛ㄦ湡"/>
- <el-table-column type="inde" label="璁$畻缁撴灉"/>
- <el-table-column type="inde" label="璁$畻鏃ユ湡"/>
- <el-table-column type="inde" label="璁$畻鏈夋晥鏈�"/>
- <el-table-column type="inde" label="璐熻矗浜�"/>
- <el-table-column type="inde" label="鍒涘缓鏃ユ湡"/>
- <el-table-column type="inde" label="鍒涘缓浜�"/>
- <el-table-column type="inde" label="璁¢噺鍗曚綅"/>
- <el-table-column type="inde" label="璁¢噺缂栧彿"/>
+ <el-table-column type="index" label="搴忓彿" />
+ <el-table-column prop="equipmentCode" label="浠櫒璁惧缂栧彿" />
+ <el-table-column prop="equipmentName" label="浠櫒璁惧鍚嶇О" />
+ <el-table-column prop="measuringRange" label="娴嬮噺鑼冨洿" />
+ <el-table-column prop="termValidity" label="璁$畻鍛ㄦ湡">
+ <template slot-scope="scope">
+ {{ scope.row.termValidity }}鏈�
+ </template>
+ </el-table-column>
+ <el-table-column prop="result" label="璁$畻缁撴灉">
+ <template slot-scope="scopeResult">
+ <div v-if="scopeResult.row.result === 1">
+ <span style="color: rgb(78, 210, 16);">姝e父</span>
+ </div>
+ <div v-else-if="scopeResult.row.result === 2">
+ <span style="color: rgb(27, 202, 233);">鐭鍚庡彲鐢�</span>
+ </div>
+ <div v-else-if="scopeResult.row.result == '' || scopeResult.row.result == null">
+ <span style="color: #424744;">鏆傛湭璁¢噺</span>
+ </div>
+ <div v-else>
+ <span style="color: red;">澶卞噯</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁$畻鏃ユ湡">
+ <template slot-scope="scopeEndDate">
+ <span v-if="scopeEndDate.row.endDate != '' && scopeEndDate.row.endDate != null">{{
+ scopeEndDate.row.endDate
+ }}</span>
+ <span v-else>鏃�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="validit" label="璁$畻鏈夋晥鏈�" />
+ <el-table-column prop="measurementName" label="璐熻矗浜�" />
+ <el-table-column prop="imCreateTime" label="鍒涘缓鏃ユ湡" />
+ <el-table-column prop="measurementName" label="鍒涘缓浜�" />
+ <el-table-column prop="measurementUnit" label="璁¢噺鍗曚綅" />
+ <el-table-column prop="code" label="璁¢噺缂栧彿" />
+ <el-table-column prop="equipmentCode" label="鎿嶄綔">
+ <template slot-scope="scope">
+ <a @click="measureUp(scope)" style="color: deepskyblue;">璁¢噺</a>
+ </template>
+ </el-table-column>
</el-table>
</el-col>
- <el-col style="width: 93%;margin-left: 40px; display: flex;justify-content: end;">
+ <el-col style="width: 93%;margin-left: 40px; margin-top: 250px;display: flex;justify-content: end;">
<el-pagination @size-change="handleSizeChangePlan" @current-change="handleCurrentChangePllan"
- :current-page="currentPagePlan" :page-sizes="[5, 10, 20]" :page-size="pageSizePlan"
- layout="total, sizes, prev, pager, next, jumper" :total="totalPlan">
- </el-pagination>
+ :current-page="currentPagePlan" :page-sizes="[5, 10]" :page-size="pageSizePlan"
+ layout="total, sizes, prev, pager, next, jumper" :total="totalPlan">
+ </el-pagination>
</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="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>
</div>
</div>
</template>
<script>
-import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure'
+import { getPlanPageList, getStandingPageList, getPlanMeasureInstrument, limitGetPlanMeasureRequest, updateMetricalInformationInfo } from '@/api/laboratory/measure'
+import { default as Add } from "./Add.vue";
export default {
+ components: {
+ Add: () => import('./Add.vue')
+ },
data() {
return {
+ dialogVisible: false,
+ tableIndex: null,
+ measureUpInfo: {
+ id: null,
+ code: null,
+ result: null,
+ date: null,
+ uncertainty: null,
+ performanceIndex: null,
+ remarks: null,
+ file: null,
+ termValidity: null
+ },
+ result: [{
+ label: '鍚堟牸',
+ value: 1
+ }, {
+ label: '鐭鍚庡彲鐢�',
+ value: 2
+ }, {
+ label: '涓嶅悎鏍�',
+ value: 3
+ }],
searchData: {
code: '',
name: '',
@@ -202,62 +318,139 @@
currentPagePlan: 1,
pageSizePlan: 5,
totalPlan: 0,
- drawer: false,
direction: 'rtl',
lookVisible: false,
measureData: [],
planInfo: {
plannedOrderNumber: 7897897987,
measurePerson: '鏌愭煇浜�',
- palanDate: "2021-09-08 ~ 2024-08-09",
+ planDate: "2021-09-08 ~ 2024-08-09",
unit: '鏌愭煇妫�娴嬪眬',
createPerson: '鏌愭煇璐熻矗浜�',
createTime: '2021-09-08'
},
- mymodelTop: -450//14
+ mymodelTop: -700,//14
+ addTop: -700,
+ planId: 0
}
},
created() {
this.getStandingPageList()
+ // this.getPlanPageList()
},
methods: {
- handleSizeChangePlan(){
+ upResult() {
+ this.measureData[this.tableIndex].result = this.resultUp
},
- handleCurrentChangePllan(){
+ async upMeasure() {
+ let res = await updateMetricalInformationInfo(this.measureUpInfo)
+ if (res) {
+ this.$message({
+ message: '鎿嶄綔鎴愬姛锛�',
+ type: 'success'
+ });
+ 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
+ },
+ measureAdd() {
+ let add = this.$refs.add.add()
+ if (add) {
+ this.addTop = -700
+ this.$message({
+ message: '鎿嶄綔鎴愬姛锛�',
+ type: 'success'
+ });
+ this.lookVisible = false
+ }
+ },
+ async handleSizeChangePlan(num) {
+ this.pageSizePlan = num
+ await this.limitGetPlanMeasureInstrument()
+ },
+ async handleCurrentChangePllan(num) {
+ this.currentPagePlan = num
+ await this.limitGetPlanMeasureInstrument()
},
addPlan() {
- this.drawer = true
+ this.addTop = 14
+ this.lookVisible = true
+ this.$parent.mainShowAdd()
+ },
+ async limitGetPlanMeasureInstrument() {
+ let param = {
+ id: this.planId,
+ currentPage: this.currentPagePlan,
+ pageSize: this.pageSizePlan
+ }
+ let res = await limitGetPlanMeasureRequest(param)
+ this.totalPlan = res.data.taotal
+ this.measureData = res.data.list
},
lookPalan(id) {
+ this.planId = id
+ this.getPlanAndInfoAndIns(id)
this.lookVisible = true
- this.mymodelTop=10
+ this.mymodelTop = 10
this.$parent.triggerMainBtnPlan()
},
- combackLookPlan(){
+ async getPlanAndInfoAndIns(id) {
+ let res = await getPlanMeasureInstrument({ "id": id, "currentPage": this.currentPagePlan, "pageSize": this.pageSize });
+ for (const key in res.data.list) {
+ this.planInfo[key] = res.data.list[key]
+ }
+ this.planInfo.planDate = this.planInfo.beginTime + " ~ " + this.planInfo.endTime
+ this.planInfo.metricalInfoAndInsList.forEach(item => {
+ if (item.endDate != '' && item.endDate != null) {
+ item.validit = this.addMonths(item.endDate, item.termValidity)
+ } else {
+ item.validit = '鏃�'
+ }
+ })
+ this.measureData = this.planInfo.metricalInfoAndInsList
+ this.totalPlan = res.data.total
+ },
+ combackLookPlan() {
this.lookVisible = false
- this.mymodelTop=-450
+ this.mymodelTop = -700
},
blurSearch() {
if (this.radioValue === 1) {
- console.log("璁″垝");
}
},
handleClose() {
this.drawer = false
},
- handleCurrentChange() {
- this.getStandingPageList()
+ handleCurrentChange(num) {
+ this.currentPage = num
+ this.radioValue ? this.getPlanPageList() : this.getStandingPageList()
},
- handleSizeChange() {
- this.getStandingPageList()
+ handleSizeChange(num) {
+ this.pageSize = num
+ this.radioValue ? this.getPlanPageList() : this.getStandingPageList()
},
async getStandingPageList() {
- const res = await getStandingPageList({
+ let param = {
currentPage: this.currentPage, pageSize: this.pageSize,
code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
- })
+ }
+ const res = await getStandingPageList(param)
this.measureLedgerTable = res.data.records
this.total = res.data.total
this.measureLedgerTable.forEach(item => {
@@ -300,18 +493,18 @@
this.reset()
},
async getPlanPageList() {
- const res = await getPlanPageList({
+ let param = {
currentPage: this.currentPage, pageSize: this.pageSize,
code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
- })
+ }
+ 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
},
- lookMeasurement(code) {
- console.log(code);
+ async lookMeasurement(code) {
},
}
}
--
Gitblit v1.9.3