From 5fa8dc320c2d2ec68fb0392f7e52cb49874b2bff Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 05 九月 2023 16:47:57 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.65.113:9001/r/lims-before

---
 src/views/laboratory/measure/index.vue |  257 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 153 insertions(+), 104 deletions(-)

diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue
index eaa03d0..5c78cf1 100644
--- a/src/views/laboratory/measure/index.vue
+++ b/src/views/laboratory/measure/index.vue
@@ -7,6 +7,10 @@
             <el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="璇疯緭鍏�">
             </el-input>
           </el-form-item>
+          <el-form-item v-if="this.radioValue === 1">
+            <!-- <el-col :span="12"><span  hidden>2121</span></el-col> -->
+            <el-button 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="璇疯緭鍏�">
@@ -39,8 +43,8 @@
           </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%" />
@@ -70,15 +74,15 @@
             <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%" />
@@ -109,20 +113,30 @@
             </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>
@@ -150,7 +164,7 @@
           </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="浠櫒璁惧鍚嶇О" />
@@ -205,67 +219,68 @@
         </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: {
@@ -275,13 +290,18 @@
     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: '鍚堟牸',
@@ -309,10 +329,10 @@
       measureLedgerTable: [],
       measurePlanTable: [],
       currentPage: 1,
-      pageSize: 5,
+      pageSize: 10,
       total: 0,
       currentPagePlan: 1,
-      pageSizePlan: 5,
+      pageSizePlan: 10,
       totalPlan: 0,
       direction: 'rtl',
       lookVisible: false,
@@ -325,8 +345,8 @@
         createPerson: '鏌愭煇璐熻矗浜�',
         createTime: '2021-09-08'
       },
-      mymodelTop: -700,//14
-      addTop: -700,
+      mymodelTop: -1000,//14
+      addTop: -85,
       planId: 0
     }
   },
@@ -335,40 +355,65 @@
     // 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 = {
@@ -376,21 +421,22 @@
         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]
       }
@@ -407,11 +453,11 @@
     },
     combackLookPlan() {
       this.lookVisible = false
-      this.mymodelTop = -700
+      this.mymodelTop = -1000
+      this.selectInfoBtn = false
     },
     blurSearch() {
       if (this.radioValue === 1) {
-        console.log("璁″垝");
       }
     },
     handleClose() {
@@ -430,7 +476,6 @@
         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
@@ -464,6 +509,9 @@
     search() {
       this.getStandingPageList()
     },
+    searchPlan(){
+      this.getPlanPageList()
+    },
     reset(formName) {
       this.searchData.name = ''
       this.searchData.code = ''
@@ -474,26 +522,27 @@
       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;

--
Gitblit v1.9.3