From fa5aee05d219940576c11a38ed3da135268c13b6 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 26 六月 2024 17:39:50 +0800 Subject: [PATCH] 完成公式计算 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 261 ++++++++++++++++------------------------------------ 1 files changed, 80 insertions(+), 181 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 629895c..3a03d0d 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -482,7 +482,7 @@ <script> import ValueTable from '../../tool/value-table.vue' import file from '../../../util/file' - import excelFountion from '../../../util/excelFountion' + import excelFunction from '../../../util/excelFountion' export default { props: ['sonLaboratory', 'orderId', 'state'], components: { @@ -627,7 +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)') + // excelFunction.compute('SUM(MAX(SUM(A1,B1,C1),2,3)*2-MIN(A1:D3),1,2)') }, mounted() { this.getTypeDicts() @@ -1198,7 +1198,7 @@ } }) }) - if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps != undefined && item.v.ps.value == '缁撹') { + if (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?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null; let res = Object.values(comValue)[0] @@ -1237,87 +1237,86 @@ } else { item.v.v = 0 } - console.log(this.param) this.saveInsContext() } } else { - let comResult = 0; - switch (item.methodName) { - case 'AVERAGE': - let num = 0 - for (var a in comValue) { - num += comValue[a] - } - comResult = num / Object.keys(comValue).length - break; - case 'SUM': - let sum = 0 - for (var a in comValue) { - sum += comValue[a] - } - 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.find(e=>e.value==a.c).label}${a.r+1}`, - value: 0, - }) - }) - for (var a in comValue) { - valueList.forEach(b => { - if (b.name == a) { - b.value = comValue[a] - } - }) - } - let str = item.v.f.replace(/=/g, ' '); - valueList.forEach(b => { - str = str.replace(b.name, b.value) - }) - 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) { + let comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue); + // switch (item.methodName) { + // case 'AVERAGE': + // let num = 0 + // for (var a in comValue) { + // num += comValue[a] + // } + // comResult = num / Object.keys(comValue).length + // break; + // case 'SUM': + // let sum = 0 + // for (var a in comValue) { + // sum += comValue[a] + // } + // 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.find(e=>e.value==a.c).label}${a.r+1}`, + // value: 0, + // }) + // }) + // for (var a in comValue) { + // valueList.forEach(b => { + // if (b.name == a) { + // b.value = comValue[a] + // } + // }) + // } + // let str = item.v.f.replace(/=/g, ' '); + // valueList.forEach(b => { + // str = str.replace(b.name, b.value) + // }) + // 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; - } + // } + // break; + // } list.forEach(a => { if (a[0].r == item.r && comResult != '') { for (var b in a) { @@ -1407,107 +1406,7 @@ handleExcelMethod() { if (this.excelMethodList.length > 0) { this.excelMethodList.map(item => { - 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('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; - let r1 = null; - let c1 = null; - let mode = item.v.f.split('(')[1].split(')')[0]; - let start = mode.split(':')[0] - let end = mode.split(':')[1] - c0 = this.comparisonList.find(j => j.label == start.split('')[0]).value - r0 = start.replace(/[a-zA-Z]/g, "") - 1 - c1 = this.comparisonList.find(j => j.label == end.split('')[0]).value - r1 = end.replace(/[a-zA-Z]/g, "") - 1 - for (let i = Number(r0); i <= Number(r1); i++) { - for (let u = Number(c0); u <= Number(c1); u++) { - valueList.push({ - r: i, - c: u - }) - } - } - } else { - valueList = [] - let regex = /[=\+\-\*\%\(\)\/\^\s]/g - let mode = item.v.f.replace(regex, ' ').split(' '); - 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({ - c, - r - }) - }) - } - item.valueList = valueList; + item.valueList = excelFunction.changeParameter(item.v.f); return item; }) } -- Gitblit v1.9.3