From 809f8b1279bf84f28bccabc4f95a8eba6c22a24d Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期二, 29 八月 2023 10:30:04 +0800
Subject: [PATCH] 放行委托新增

---
 src/views/laboratory/measure/index.vue |  211 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 177 insertions(+), 34 deletions(-)

diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue
index d133f34..d70dd9c 100644
--- a/src/views/laboratory/measure/index.vue
+++ b/src/views/laboratory/measure/index.vue
@@ -117,11 +117,19 @@
           </div>
         </div>
       </div>
-      <div style="position: absolute;top:14px;left: 9px;transition: 1s;width: 99%;height: 82vh;background-color: #fff;z-index: 21;">
-          <Add/>
+      <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" 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}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: 65vh; 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>
@@ -149,7 +157,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="浠櫒璁惧鍚嶇О" />
@@ -188,22 +196,84 @@
             <el-table-column prop="imCreateTime" label="鍒涘缓鏃ユ湡" />
             <el-table-column prop="measurementName" label="鍒涘缓浜�" />
             <el-table-column prop="measurementUnit" label="璁¢噺鍗曚綅" />
-            <el-table-column prop="equipmentCode" 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; margin-top: 90px;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"
+            :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, 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: {
@@ -211,6 +281,31 @@
   },
   data() {
     return {
+      dialogVisible: false,
+      tableIndex: null,
+      selectInfoBtn: false,
+      addBtn: false,
+      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: '',
@@ -232,9 +327,8 @@
       currentPagePlan: 1,
       pageSizePlan: 5,
       totalPlan: 0,
-      drawer: false,
       direction: 'rtl',
-      lookVisible: true,
+      lookVisible: false,
       measureData: [],
       planInfo: {
         plannedOrderNumber: 7897897987,
@@ -244,7 +338,8 @@
         createPerson: '鏌愭煇璐熻矗浜�',
         createTime: '2021-09-08'
       },
-      mymodelTop: -600,//14
+      mymodelTop: -1000,//14
+      addTop: -85,
       planId: 0
     }
   },
@@ -253,36 +348,81 @@
     // this.getPlanPageList()
   },
   methods: {
+    upResult() {
+      this.measureData[this.tableIndex].result = this.resultUp
+
+    },
+    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() {
+      this.addTop = -82
+        this.$message({
+          message: '鎿嶄綔鎴愬姛锛�',
+          type: 'success'
+        });
+        this.lookVisible = false
+    },
     async handleSizeChangePlan(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.drawer = true
+      this.addTop = 2
+      this.lookVisible = true
+      this.$parent.mainShowAdd()
+      this.addBtn=true
     },
     async limitGetPlanMeasureInstrument() {
-      let res = await limitGetPlanMeasureRequest({
+      let param = {
         id: this.planId,
         currentPage: this.currentPagePlan,
-        pageSize: this.pageSize
-      })
-      this.totalPlan = res.data.taotal
-      this.measureData = res.data.list
+        pageSize: this.pageSizePlan
+      }
+      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]
       }
@@ -299,27 +439,30 @@
     },
     combackLookPlan() {
       this.lookVisible = false
-      this.mymodelTop = -600
+      this.mymodelTop = -1000
+      this.selectInfoBtn=false
     },
     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 => {
@@ -362,10 +505,11 @@
       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
       })
@@ -373,13 +517,12 @@
       this.total = res.data.total
     },
     async lookMeasurement(code) {
-      console.log(code);
     },
   }
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 .top-bar {
   margin: -25px -15px;
   background: #fff;

--
Gitblit v1.9.3