From 691440d02d1e5545ebdae1bbf07fa7f5520c689f Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期五, 21 六月 2024 02:40:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/components/do/b1-inspect-order-plan/Inspection.vue | 134 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 120 insertions(+), 14 deletions(-)
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 261e82a..7f4494f 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -1188,9 +1188,11 @@
})
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]
} else if (m.includes('鈮�')) {
@@ -1212,6 +1214,7 @@
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
@@ -1238,11 +1241,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,
})
})
@@ -1257,18 +1288,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;
}
@@ -1350,10 +1380,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;
}
}
@@ -1364,7 +1394,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;
@@ -1402,6 +1495,20 @@
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;
+ }
},
getInspectionValueType(id) {
for (var a in this.currentSample.insProduct) {
@@ -1568,7 +1675,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,
--
Gitblit v1.9.3