From adfe1ca87e734e564b56a42c6fc5d015b4858eb3 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 04 六月 2024 20:37:49 +0800
Subject: [PATCH] 修改任务检验

---
 src/components/do/b1-inspect-order-plan/Inspection.vue |  237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 227 insertions(+), 10 deletions(-)

diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index b776a4f..0979be9 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -120,6 +120,19 @@
   .collection:active {
     opacity: .7;
   }
+  .table_caret{
+    font-size: 16px;
+    margin: 0 5px;
+    color: rgba(0, 0, 0, 0.1);
+  }
+  .table_caret:hover{
+    color: #409eff;
+    cursor: pointer;
+  }
+
+  .table_caret:active{
+    opacity: .8;
+  }
 </style>
 <style>
   .inspection .el-form-item__label {
@@ -175,6 +188,9 @@
     <el-row class="title">
       <el-col :span="12" style="padding-left: 20px;">妫�楠屽崟璇︽儏</el-col>
       <el-col :span="12" style="text-align: right;">
+        <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">鍏夌氦鍒囨崲</el-button>
+        <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">鍏夌氦甯﹀垏鎹�</el-button>
+        <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">濂楃鍒囨崲</el-button>
         <el-button size="small" type="primary" @click="sampleVisible=true">鏍峰搧鍒囨崲</el-button>
         <el-button size="small" type="primary" @click="taskVisible=true">浠诲姟鍒囨崲</el-button>
         <el-button size="small" type="primary" @click="addVerifyDia = true" v-show="state==1"
@@ -221,7 +237,7 @@
             size="small">{{ item.templateName }}</el-radio-button>
         </el-radio-group>
       </div>
-      <div class="center-box" id="nav">
+      <div class="center-box" id="nav" v-loading="tableLoading">
         <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index">
           <tbody>
             <tr v-for="(m,i) in item.arr" :key="i">
@@ -282,6 +298,16 @@
                     </el-select> -->
                     <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                   </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'">
+                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+                      <i class="el-icon-caret-left table_caret" @click="caretSample(-1)"></i>
+                      <div :style="`font-family:${n.v.ff} !important;`">{{currentSample.sampleCode}}</div>
+                      <i class="el-icon-caret-right table_caret" @click="caretSample(1)"></i>
+                    </div>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'">
+                    <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&&currentSample.model!==null">{{currentSample.model}}</div>
+                  </template>
                   <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                 </div>
               </td>
@@ -290,6 +316,43 @@
         </table>
       </div>
     </div>
+    <el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
+      <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border
+        highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName"
+        :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticVisible">
+        <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
+        </el-table-column>
+        <el-table-column prop="bushColor" label="绠″鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="color" label="鍏夌氦鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="model" label="鍏夌氦瑙勬牸" min-width="130px" show-overflow-tooltip
+         ></el-table-column>
+        <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="100px" show-overflow-tooltip></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer title="鍏夌氦甯﹀垏鎹�" :visible.sync="fiberOpticTapeVisible" :size="500">
+      <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border
+        highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName"
+        :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
+        <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
+        </el-table-column>
+        <el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" min-width="110px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="model" label="鍏夌氦甯﹁鏍�" min-width="110px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="90px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="num" label="鍏夌氦妫�娴嬮噺" min-width="110px" show-overflow-tooltip
+          ></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer title="濂楃鍒囨崲" :visible.sync="bushingVisible" :size="500">
+      <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border
+        highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName"
+        :current-row-key="currentKey" :row-key="record=>record.index" v-if="bushingVisible">
+        <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
+        </el-table-column>
+        <el-table-column prop="color" label="绠¤壊鏍�" min-width="100px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="standNum" label="鏍囬噺" min-width="100px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="testNum" label="娴嬭瘯閲�" min-width="100px" show-overflow-tooltip></el-table-column>
+      </el-table>
+    </el-drawer>
     <el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500">
       <el-table class="el-table" ref="productTable" :data="sampleProduct" height="100%" tooltip-effect="dark" border
         highlight-current-row @row-click="handleChangeSample" :row-class-name="tableRowClassName"
@@ -353,9 +416,6 @@
 </template>
 
 <script>
-  import {
-    set
-  } from 'shelljs';
   import ValueTable from '../../tool/value-table.vue'
   export default {
     props: ['sonLaboratory', 'orderId', 'state'],
@@ -423,7 +483,17 @@
         addVerifyDia: false,
         verifyUser: null,
         personList: [],
-        enumList: []
+        enumList: [],
+        fiberOpticVisible:false,
+        fiberOpticTapeVisible:false,
+        bushingVisible:false,
+        fiberOpticTape:[],//鍏夌氦甯﹀垪琛�
+        fiberOptic:[],//鍏夌氦鍒楄〃
+        bushing:[],//濂楃鍒楄〃
+        currentFiberOpticTape:null,//褰撳墠鍏夌氦甯�
+        currentFiberOptic:null,//褰撳墠鍏夌氦
+        currentBushing:null,//褰撳墠濂楃
+        tableLoading:false,
       }
     },
     created() {
@@ -444,7 +514,7 @@
         this.$axios.post(this.$api.insOrderPlan.doInsOrder, {
           id: val,
           laboratory: this.sonLaboratory
-        }).then(res => {
+        }).then(async res => {
           this.insOrder = res.data.insOrder;
           this.urgentList.forEach(m => {
             if (m.value == this.insOrder.type) {
@@ -452,7 +522,9 @@
             }
           })
           this.sampleProduct = res.data.sampleProduct
-          this.currentSample = this.sampleProduct[0]
+          this.currentSample = this.HaveJson(this.sampleProduct[0])
+          let list = await this.getCurrentProduct(this.currentSample.id,0)
+          this.currentSample.insProduct = this.HaveJson(list)
           this.currentSample.insProduct.forEach(a => {
             this.param[a.id] = {
               insValue: [],
@@ -464,11 +536,23 @@
             }
           })
           if (this.currentSample.index == undefined) this.currentSample['index'] = 1
+          let bushing = this.currentSample.bushing
           this.loading = false
           // this.handleTableData()
           this.getTableLists();
           this.componentData.currentId = val;
           this.currentKey = 1;
+
+          // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁
+          this.fiberOpticTape = []
+          this.currentFiberOpticTape = null;
+          this.fiberOptic = []
+          this.currentFiberOptic = null;
+          this.bushing = []
+          this.currentBushing = null;
+          if(bushing&&bushing.length>0){
+            this.bushing = bushing
+          }
         })
       },
       currentTable(val1, val0) {
@@ -484,9 +568,81 @@
       }
     },
     methods: {
-      handleChangeSample(row, column, event) {
-        this.currentSample = row;
+      async getCurrentProduct(id,type){
+        this.tableLoading = true;
+        let res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory)
+        this.tableLoading = false;
+        return res.data
+      },
+      handleChangeBushing(row, column, event){
+        this.currentBushing = row;
+        this.fiberOpticTape = []
+        this.currentFiberOpticTape = null;
+        this.fiberOptic = []
+        this.currentFiberOptic = null;
+        if(row.fiber&&row.fiber.length>0){
+          // 鐩存帴閰嶇疆鍏夌氦
+          this.fiberOptic = row.fiber;
+        }else if(row.fibers&&row.fibers.length>0){
+          // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
+          this.fiberOpticTape = row.fibers;
+        }
+        this.bushingVisible = false;
+      },
+      async handleChangeOptic(row, column, event){
+        this.currentFiberOptic = row;
+        this.currentFiberOptic.productList.forEach(a => {
+          this.param[a.id] = {
+            insValue: [],
+            comValue: [],
+            resValue: null,
+            equipValue: [],
+            equipName: [],
+            insResult: null
+          }
+        })
+        this.fiberOpticVisible = false;
+        let list = await this.getCurrentProduct(row.id,2)
+        this.getTableLists0(list)
+        this.currentKey = row.index
+      },
+      async handleChangeTape(row, column, event){
+        this.currentFiberOpticTape = row;
         this.param = {}
+        this.fiberOptic = []
+        this.currentFiberOptic = null;
+        this.currentFiberOpticTape.productList.forEach(a => {
+          this.param[a.id] = {
+            insValue: [],
+            comValue: [],
+            resValue: null,
+            equipValue: [],
+            equipName: [],
+            insResult: null
+          }
+        })
+        this.fiberOpticTapeVisible = false;
+        let list = await this.getCurrentProduct(row.id,1)
+        this.getTableLists0(list)
+        if(row.fiber&&row.fiber.length>0){
+          // 閰嶇疆鍏夌氦
+          this.fiberOptic = row.fiber;
+        }
+        this.currentKey = row.index
+      },
+      async handleChangeSample(row, column, event) {
+        this.param = {}
+        // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁
+        this.fiberOpticTape = []
+        this.currentFiberOpticTape = null;
+        this.fiberOptic = []
+        this.currentFiberOptic = null;
+        this.bushing = []
+        this.currentBushing = null;
+        this.sampleVisible = false;
+        this.currentSample = this.HaveJson(row)
+        let list = await this.getCurrentProduct(row.id,0)
+        this.currentSample.insProduct = this.HaveJson(list)
         this.currentSample.insProduct.forEach(a => {
           this.param[a.id] = {
             insValue: [],
@@ -497,9 +653,12 @@
             insResult: null
           }
         })
+        let bushing = this.currentSample.bushing
+        if(bushing&&bushing.length>0){
+          this.bushing = bushing
+        }
         // this.handleTableData()
         this.getTableLists();
-        this.sampleVisible = false;
         this.currentKey = row.index
       },
       handleChangeTask(row) {
@@ -587,6 +746,30 @@
           this.tableList = null;
           this.tableList = [this.tableLists[0]]
           this.currentTable = this.tableLists[0].templateId;
+          this.handleTableData()
+        }
+      },
+      // 鍏夌氦閰嶇疆鐩稿叧妯℃澘table鍒楄〃
+      getTableLists0(list){
+        const mySet1 = new Set();
+        this.tableLists = list.filter(m => {
+          let num0 = mySet1.size;
+          if (m.templateId != null&&m.template != null) {
+            mySet1.add(JSON.stringify({
+              template: m.template,
+              templateId: m.templateId
+            }))
+          }
+          let num1 = mySet1.size;
+          if (num1 > num0) {
+            return m
+          }
+        });
+        if (this.tableLists && this.tableLists.length > 0) {
+          this.tableList = null;
+          this.tableList = [this.tableLists[0]]
+          this.currentTable = this.tableLists[0].templateId;
+          this.currentSample.insProduct = this.HaveJson(list)
           this.handleTableData()
         }
       },
@@ -878,6 +1061,15 @@
                     return res < m.split('<')[1]
                   }else if (m.includes('>')) {
                     return res > m.split('>')[1]
+                  }else if (m.includes('~')) {
+                    let k = m.split('~')
+                    return res >= k[0] && res <= k[1]
+                  }else if(m.includes('-')){
+                    let k = m.split('-')
+                    return res >= k[0] && res <= k[1]
+                  }else if(m.includes('卤')){
+                    let k = m.split('卤')
+                    return res >= (k[0] - k[1]) && res <= (k[0] + k[1])
                   }
                 })
                 if(this.getInspectionValueType(item.i)==1){
@@ -1293,6 +1485,31 @@
         nav.addEventListener("mouseleave", function(event) {
           flag = false;
         });
+      },
+      async caretSample(num){
+        let index = this.currentKey + num
+        if(index < 1){
+          this.$message.error('褰撳墠鏄涓�涓牱鍝�')
+          return
+        } else if(index > this.sampleProduct.length){
+          this.$message.error('褰撳墠鏄渶鍚庝竴涓牱鍝�')
+          return
+        }
+        this.currentKey = index
+        this.currentSample = this.HaveJson(this.sampleProduct[index - 1])
+        let list = await this.getCurrentProduct(this.currentSample.id,0)
+        this.currentSample.insProduct = this.HaveJson(list)
+        this.currentSample.insProduct.forEach(a => {
+          this.param[a.id] = {
+            insValue: [],
+            comValue: [],
+            resValue: null,
+            equipValue: [],
+            equipName: [],
+            insResult: null
+          }
+        })
+        this.getTableLists()
       }
     }
   }

--
Gitblit v1.9.3