From dd61d0f5d1176107de45e0d23e25cc0a761b7124 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 26 六月 2024 15:09:45 +0800
Subject: [PATCH] 修改标准库

---
 src/components/do/b1-inspect-order-plan/Inspection.vue |  280 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 233 insertions(+), 47 deletions(-)

diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index f58373c..629895c 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 {
@@ -133,6 +135,14 @@
   .table_caret:active{
     opacity: .8;
   }
+  >>>input::-webkit-inner-spin-button {
+    -webkit-appearance: none !important;  /* 闅愯棌寰皟鎸夐挳 */
+    margin: 0 !important;  /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */
+  }
+
+  >>>input[type=number] {
+      -moz-appearance: textfield !important;  /* 閽堝 Firefox */
+  }
 </style>
 <style>
   .inspection .el-form-item__label {
@@ -155,9 +165,12 @@
   }
 
   .inspection .el-input-group__append {
-    padding: 0 10px;
+    padding: 0 14px;
     color: #3A7BFA;
     background-color: #fff;
+    height: 100%;
+    display: flex;
+    align-items: center;
   }
 
   .inspection .center-box .el-input__inner {
@@ -259,7 +272,7 @@
                   <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1">
                     <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
                       :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
-                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
+                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number">
                       <el-button slot="append" type="primary" icon="el-icon-edit" size="mini"
                         v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button>
                     </el-input>
@@ -276,12 +289,12 @@
                       v-else-if="getInspectionValueType(n.i) == 4">/</span>
                   </template>
                   <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='缁撹'">
-                    <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1"
+                    <!-- <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1"
                       class="table_input" v-model="n.v.v" @change="saveInsContext()">
                       <el-option label="鍚堟牸" :value="1"></el-option>
                       <el-option label="涓嶅悎鏍�" :value="0"></el-option>
-                    </el-select>
-                    <template v-else>
+                    </el-select> -->
+                    <template>
                       <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span>
                       <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
                       <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
@@ -305,7 +318,7 @@
                       :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
                       <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
                     </el-select> -->
-                    <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
+                    <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span>
                   </template>
                   <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'">
                     <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode">
@@ -345,7 +358,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>
@@ -356,9 +369,10 @@
       :data="{
         orderId:id
       }"
-      v-show="state==1"
+      v-show="state==1&&fileAdd"
       :on-success="handleSuccessUp" :show-file-list="false"
         accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload"
+        style="width: 80px !important;"
         :on-error="onError" ref='upload'>
         <el-button size="small" type="primary">闄勪欢涓婁紶</el-button></el-upload>
       <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
@@ -468,6 +482,7 @@
 <script>
   import ValueTable from '../../tool/value-table.vue'
   import file from '../../../util/file'
+  import excelFountion from '../../../util/excelFountion'
   export default {
     props: ['sonLaboratory', 'orderId', 'state'],
     components: {
@@ -475,6 +490,7 @@
     },
     data() {
       return {
+        fileAdd:false,
         sampleVisible: false,
         taskVisible: false,
         submitLoading: false,
@@ -520,6 +536,11 @@
           init:false,
           do: [
           {
+						id: 'handleDown',
+						font: '涓嬭浇',
+						type: 'text',
+						method: 'handleDown'
+					},{
 						id: 'delete',
 						font: '鍒犻櫎',
 						type: 'text',
@@ -527,12 +548,7 @@
             disabFun: (row, index) => {
 								return this.state!=1
 							}
-					}, {
-						id: 'handleDown',
-						font: '涓嬭浇',
-						type: 'text',
-						method: 'handleDown'
-					},
+					}
           ],
           isPage: false,
           linkEvent: {},
@@ -611,6 +627,7 @@
       this.componentData.entity.sonLaboratory = this.sonLaboratory;
       this.id = this.orderId;
       this.getUserInfo()
+      // excelFountion.handel('SUM(MAX(SUM(A1,B1,C1),2,3)*2-MIN(A1:D3),1,2)')
     },
     mounted() {
       this.getTypeDicts()
@@ -618,6 +635,7 @@
       this.getComparisonList()
       this.getAuthorizedPerson()
       this.scrollInit()
+      this.getPower()
     },
     watch: {
       id(val) {
@@ -634,6 +652,10 @@
               this.insOrder.typeName = m.label
             }
           })
+          this.loading = false
+          if(!res.data.sampleProduct||res.data.sampleProduct.length==0){
+            return this.$message.error('璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�')
+          }
           this.sampleProduct = res.data.sampleProduct
           this.currentSample = this.HaveJson(this.sampleProduct[0])
           let list = await this.getCurrentProduct(this.currentSample.id,0)
@@ -650,7 +672,6 @@
           })
           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;
@@ -681,6 +702,23 @@
       }
     },
     methods: {
+      getPower(){
+        let power = JSON.parse(sessionStorage.getItem('power'))
+        let fileDel = false
+        let fileAdd = false
+        for (var i = 0; i < power.length; i++) {
+					if (power[i].menuMethod == 'uploadFile') {
+						fileAdd = true
+					}
+					if (power[i].menuMethod == 'delfile') {
+						fileDel = true
+					}
+				}
+        if (!fileDel) {
+					this.componentData0.do.splice(1, 1)
+				}
+        this.fileAdd = fileAdd
+      },
       async getCurrentProduct(id,type){
         this.tableLoading = true;
         let res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory)
@@ -1051,12 +1089,12 @@
               } else {
                 this.param[b.i].resValue = b
               } */
-              if (b.i !== undefined) {
+              if (b.i !== undefined&&!this.param[b.i].resValue) {
                 this.param[b.i].resValue = b
               }
             }
             if (b.v.ps != undefined && b.v.ps.value === '缁撹') {
-              if (b.i !== undefined) {
+              if (b.i !== undefined&&!this.param[b.i].insResult) {
                 this.param[b.i].insResult = b
                 conclusionList.forEach((n, i) => {
                   if (n.r == b.r && n.c == b.c) {
@@ -1162,11 +1200,18 @@
             })
             if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps != undefined && item.v.ps.value == '缁撹') {
               if (this.currentSample.insProduct.find(m => m.id == item.i)) {
-                let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&');
+                let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
                 let res = Object.values(comValue)[0]
-                let comp = ask.map((m, i) => {
+                let comp = []
+                if(ask){
+                  comp = ask.map((m, i) => {
                   if (m.includes('=')) {
-                    return res == m.split('=')[1]
+                    let str = m.split('=')[1]
+                    if(typeof res == 'string'&&typeof str == 'string'){
+                      return res.trim() == str.trim()
+                    }else{
+                      return res == str
+                    }
                   } else if (m.includes('鈮�')) {
                     return res >= m.split('鈮�')[1]
                   }else if (m.includes('鈮�')) {
@@ -1186,13 +1231,13 @@
                     return res >= (k[0] - k[1]) && res <= (k[0] + k[1])
                   }
                 })
-                if(this.getInspectionValueType(item.i)==1){
-                  if (comp.every(m => m)) {
-                    item.v.v = 1
-                  } else {
-                    item.v.v = 0
-                  }
                 }
+                if (comp.every(m => m)) {
+                  item.v.v = 1
+                } else {
+                  item.v.v = 0
+                }
+                console.log(this.param)
                 this.saveInsContext()
               }
             } else {
@@ -1212,11 +1257,39 @@
                   }
                   comResult = sum
                   break;
+                case 'MEDIAN':
+                  let arr = []
+                  for (var a in comValue) {
+                    arr.push(comValue[a])
+                  }
+                  comResult = this.median(arr)
+                  break;
+                case 'APS':
+                  let arr0 = []
+                  for (var a in comValue) {
+                    arr0.push(comValue[a])
+                  }
+                  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 => {
                     valueList.push({
-                      name: `${this.comparisonList[a.c].label}${a.r+1}`,
+                      name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`,
                       value: 0,
                     })
                   })
@@ -1231,18 +1304,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;
               }
@@ -1324,10 +1396,10 @@
               this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
               break;
             case 'resValue':
-              this.tableList[0].lastValue = value.v.v
+              this.tableList[0].lastValue = value?value.v.v:''
               break;
             case 'insResult':
-              this.tableList[0].insResult = value.v.v
+              this.tableList[0].insResult = value?value.v.v:''
               break;
           }
         }
@@ -1338,7 +1410,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;
@@ -1361,9 +1496,9 @@
               }
             } else {
               valueList = []
-              let regex = /[=\+\-\*\%\(\)\/\s]/g
+              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({
@@ -1376,6 +1511,24 @@
             return item;
           })
         }
+      },
+      median(arr) {
+          // 瀵规暟缁勮繘琛屾帓搴�
+          const sortedArr = arr.sort((a, b) => a - b);
+          // 璁$畻鏁扮粍闀垮害鐨勪竴鍗�
+          const half = Math.floor(sortedArr.length / 2);
+          // 濡傛灉鏁扮粍闀垮害涓哄鏁帮紝杩斿洖涓棿鐨勫厓绱狅紱濡傛灉涓哄伓鏁帮紝杩斿洖涓棿涓や釜鍏冪礌鐨勫钩鍧囧��
+          if (sortedArr.length % 2) {
+              // 濂囨暟浣嶇疆鐨勫厓绱�
+              return sortedArr[half];
+          } else {
+              // 鍋舵暟浣嶇疆鐨勫钩鍧囧��
+              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) {
@@ -1418,20 +1571,34 @@
         }
       },
       getSystemValue(n) {
+        let code = null
         try {
-          if (this.param[n.i].equipValue.v.v == null || this.param[n.i].equipValue.v.v == '') {
-            this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�')
-            return
-          }
+          this.param[n.i].equipValue.forEach(a=>{
+            if(a.r === n.r){
+              if (a.v.v == null || a.v.v == '') {
+                this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�')
+                return
+              }else{
+                code = a.v.v
+              }
+            }
+          })
         } catch (e) {
+          console.log(e);
           this.$message.error('鎵句笉鍒拌澶囧唴瀹�')
         }
-        this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
+        console.log(n, code);
+        fetch('http://localhost:82/寰俊鍥剧墖_20240518100811.png').then(res=>res.blob()).then(blob=>{
+          console.log(blob);
+          const url = URL.createObjectURL(blob)
+          console.log(url);
+        })
+        /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
         for (var a in this.currentSample.insProduct) {
           if (this.currentSample.insProduct[a].id == n.i) {
             this.currentSample.insProduct[a].inspectionItemType = 0
           }
-        }
+        } */
       },
       getEquipOptions(e, id) {
         if (e) {
@@ -1528,7 +1695,6 @@
           laboratory: this.sonLaboratory,
         }).then(res => {
           if (res.code === 200) {
-            console.log(res.data)
             if(!res.data||res.data.length==0){
               this.$axios.post(this.$api.insOrderPlan.submitPlan, {
                 orderId: this.orderId,
@@ -1552,7 +1718,7 @@
                 if(lastChar=='-'){
                   res.data[i] = res.data[i].slice(0, -1);
                 }
-                newData.push(h('p', {style: 'font-size: 12px;'}, (Number(i)+1)+'銆�'+res.data[i]))
+                newData.push(h('p', {style: 'font-size: 14px;color: red;'}, (Number(i)+1)+'銆�'+res.data[i]))
               }
               newData.push(h('p',  { style: 'font-size: 16px;color:#000;margin-top:12px' },'浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�'))
               this.$confirm('鎻愮ず',{
@@ -1792,6 +1958,26 @@
         }).catch(error => {
 
         })
+      },
+      /**
+       * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
+       *
+       * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
+       * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
+       * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
+       * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
+       */
+      toFixed(v,ct){
+        if(v&&ct&&ct.fa&&ct.fa.includes('##')){
+          if(ct.fa.includes('.')){
+            let num = ct.fa.slice(4).length
+            return Number(v).toFixed(num)
+          }else{
+            return Number(v).toFixed(0)
+          }
+        }else{
+          return v
+        }
       }
     }
   }

--
Gitblit v1.9.3