From b33c9683febaa4cf6ba9fe790cafd0371c381027 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 21 六月 2024 15:08:14 +0800
Subject: [PATCH] 修改检验下单bug

---
 src/components/do/b1-inspect-order-plan/Inspection.vue |  104 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 93 insertions(+), 11 deletions(-)

diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 8aa1334..e7241a3 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -60,6 +60,8 @@
     width: 100px;
     text-align: center;
     font-size: 14px;
+    word-wrap: break-word;
+    white-space: normal;
   }
 
   .content {
@@ -348,7 +350,7 @@
                       v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i>
                     </div>
                   </template>
-                  <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
+                  <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span>
                 </div>
               </td>
             </tr>
@@ -1253,8 +1255,22 @@
                   for (var a in comValue) {
                     arr0.push(comValue[a])
                   }
-                  comResult = Math.abs(arr[0])
+                  comResult = Math.abs(arr0[0])
                   break;
+                // case 'MAX':
+                //   let arr1 = []
+                //   for (var a in comValue) {
+                //     arr1.push(eval(comValue[a]))
+                //   }
+                //   comResult = Math.max(...arr1)
+                //   break;
+                // case 'MIN':
+                //   let arr2 = []
+                //   for (var a in comValue) {
+                //     arr2.push(eval(comValue[a]))
+                //   }
+                //   comResult = Math.median(...arr2)
+                //   break;
                 default:
                   let valueList = [];
                   item.valueList.forEach(a => {
@@ -1274,18 +1290,17 @@
                   valueList.forEach(b => {
                     str = str.replace(b.name, b.value)
                   })
-                  if (item.v.f.includes('/')) {
-                    if (Object.getOwnPropertyNames(comValue).length == valueList.length) {
-                      comResult = eval(str)
-                    } else {
-                      comResult = ''
-                    }
-                  } else {
+                  str = str.replaceAll('MAX', 'Math.max')
+                  str = str.replaceAll('MIN', 'Math.min')
+                  str = str.replaceAll('锛�', ',')
+                  try {
                     if(this.getInspectionValueType(item.i)==1){
                       comResult = eval(str)
                     }else{
                       comResult = str
                     }
+                  } catch (error) {
+
                   }
                   break;
               }
@@ -1381,7 +1396,70 @@
             item.methodName = item.v.f.split('=').length > 1 && item.v.f.split('=')[1].split('(') && item.v.f.split(
               '=')[1].split('(')[0] ? item.v.f.split('=')[1].split('(')[0] : '鑷畾涔夋柟娉�';
             let valueList = [];
-            if (item.v.f.includes(':')) {
+            if(item.v.f.includes('MAX') || item.v.f.includes('MIN')){
+              item.methodName = '鑷畾涔夋柟娉�'
+              let regex = /[=\+\-\*\%\/\^\s]/g
+              let mode = item.v.f.replace(regex, ' ').split(' ');
+              let that = this
+              if(item.v.f.includes('MAX')){
+                item.v.f = Judgment(item.v.f, 'MAX')
+              }
+              if(item.v.f.includes('MIN')){
+                item.v.f = Judgment(item.v.f, 'MIN')
+              }
+              function Judgment(f,type) {
+                let newF = f
+                let mode4 = mode.filter(m => m&&m.includes(type))
+                mode4.forEach(m => {
+                  let mode0 = m
+                  if(mode0.includes(':')){
+                    let r0 = null;
+                    let c0 = null;
+                    let r1 = null;
+                    let c1 = null;
+                    let mode1 = mode0.split('(')[1].split(')')[0];
+                    let start = mode1.split(':')[0]
+                    let end = mode1.split(':')[1]
+                    c0 = that.comparisonList.find(j => j.label == start.split('')[0]).value
+                    r0 = start.replace(/[a-zA-Z]/g, "") - 1
+                    c1 = that.comparisonList.find(j => j.label == end.split('')[0]).value
+                    r1 = end.replace(/[a-zA-Z]/g, "") - 1
+                    let valueList0 = []
+                    for (let i = Number(r0); i <= Number(r1); i++) {
+                      for (let u = Number(c0); u <= Number(c1); u++) {
+                        valueList0.push({
+                          r: i,
+                          c: u
+                        })
+                      }
+                    }
+                    let valueList1 = []
+                    valueList0.forEach(v => {
+                      let r = '';
+                      let c = '';
+                      r = v.r +1;
+                      c = that.comparisonList.find(j => j.value == v.c).label
+                      valueList1.push(c+r)
+                    })
+                    let mode3 = type+'('+valueList1.join(',')+')'
+                    newF = newF.replace(mode0, mode3)
+                    valueList = [...valueList,...valueList0]
+                  }else{
+                    let mode1 = mode0.replace(type, '').replace(/[=\+\-\*\%\(\)\/\^\s]/g, '');
+                    let modeList = mode1.split(',');
+                    modeList.filter(m => m && !Number(m)).forEach(m => {
+                      let r = m.replace(/[a-zA-Z]/g, "") - 1
+                      let c = that.comparisonList.find(j => j.label == m.split('')[0]).value
+                      valueList.push({
+                        c,
+                        r
+                      })
+                    })
+                  }
+                })
+                return newF
+              }
+            }else if (item.v.f.includes(':')) {
               valueList = [];
               let r0 = null;
               let c0 = null;
@@ -1406,7 +1484,7 @@
               valueList = []
               let regex = /[=\+\-\*\%\(\)\/\^\s]/g
               let mode = item.v.f.replace(regex, ' ').split(' ');
-              mode.filter(m => m && !Number(m)).forEach(m => {
+              mode.filter(m => m && !Number(m)&&m!='undefined').forEach(m => {
                 let r = m.replace(/[a-zA-Z]/g, "") - 1
                 let c = this.comparisonList.find(j => j.label == m.split('')[0]).value
                 valueList.push({
@@ -1434,6 +1512,10 @@
               return (sortedArr[half - 1] + sortedArr[half]) / 2;
           }
       },
+      getValue(v){
+        let str = v.v?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v:'').replaceAll('\n','<br/>')
+        return str
+      },
       getInspectionValueType(id) {
         for (var a in this.currentSample.insProduct) {
           if (this.currentSample.insProduct[a].id == id) {

--
Gitblit v1.9.3