| | |
| | | <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: { |
| | |
| | | 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() |
| | |
| | | } |
| | | }) |
| | | }) |
| | | 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] |
| | |
| | | } 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 = [] |
| | | let comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue); |
| | | // switch (item.methodName) { |
| | | // case 'AVERAGE': |
| | | // let num = 0 |
| | | // for (var a in comValue) { |
| | | // arr1.push(eval(comValue[a])) |
| | | // num += comValue[a] |
| | | // } |
| | | // comResult = Math.max(...arr1) |
| | | // comResult = num / Object.keys(comValue).length |
| | | // break; |
| | | // case 'MIN': |
| | | // let arr2 = [] |
| | | // case 'SUM': |
| | | // let sum = 0 |
| | | // for (var a in comValue) { |
| | | // arr2.push(eval(comValue[a])) |
| | | // sum += comValue[a] |
| | | // } |
| | | // comResult = Math.median(...arr2) |
| | | // comResult = sum |
| | | // 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) { |
| | | // 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) { |
| | |
| | | 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; |
| | | }) |
| | | } |