| | |
| | | dels.forEach(del=>{ |
| | | for(let b=0;b<a.template.length;b++){ |
| | | if(a.template[b].r === del.r){ |
| | | if(a.template[b].v.mc!=undefined){ |
| | | if(a.template[b].v.mc.rs!=undefined&&a.template[b].v.mc.rs>1){ |
| | | if(a.template[b].r === a.template[b].v.mc.r){ |
| | | a.template[b].r += 1 |
| | | a.template[b].v.mc.r += 1 |
| | | a.template[b].v.mc.rs -= 1 |
| | | continue |
| | | } |
| | | } |
| | | } |
| | | a.template.splice(b, 1) |
| | | b-=1 |
| | | } |
| | |
| | | } |
| | | }) |
| | | }) |
| | | console.log(this.tableList); |
| | | // return |
| | | this.tableList.map(item=>{ |
| | | const mySet0 = new Set(); |
| | | let arr = []; |
| | | let arrItem = []; |
| | | item.template.forEach((m,i)=>{ |
| | | if(m.v.f){ |
| | | this.excelMethodList.push(m) |
| | | this.tableList.forEach(a=>{ |
| | | let arrs = [] |
| | | let set = new Set() |
| | | a.template.forEach(b=>{ |
| | | set.add(b.r) |
| | | if(b.v.f){ |
| | | this.excelMethodList.push(b) |
| | | } |
| | | let num0 = mySet0.size; |
| | | mySet0.add(m.r) |
| | | let num1 = mySet0.size; |
| | | if(num0<num1){ |
| | | if(arrItem.length>0){ |
| | | arr.push(arrItem) |
| | | arrItem = [] |
| | | } |
| | | if(m.v.mc){ |
| | | if(m.v.mc.rs||m.v.mc.cs){ |
| | | arrItem.push(m) |
| | | } |
| | | }else{ |
| | | arrItem.push(m) |
| | | } |
| | | }else{ |
| | | if(m.v.mc){ |
| | | if(m.v.mc.rs||m.v.mc.cs){ |
| | | arrItem.push(m) |
| | | } |
| | | }else{ |
| | | arrItem.push(m) |
| | | } |
| | | } |
| | | }) |
| | | arr.push(arrItem) |
| | | item.arr = arr; |
| | | return item |
| | | }) |
| | | console.log(this.tableList); |
| | | }) |
| | | set = Array.sort(set) |
| | | set.forEach(b=>{ |
| | | let arr = [] |
| | | a.template.forEach(c=>{ |
| | | if(c.r === b){ |
| | | if(arr.length===0){ |
| | | if(c.v.mc==undefined||Object.keys(c.v.mc).length==4) arr.push(c) |
| | | }else{ |
| | | for(let d=0;d<arr.length;d++){ |
| | | if(c.c<arr[d].c){ |
| | | if(c.v.mc==undefined||Object.keys(c.v.mc).length==4) arr.splice(d, 0, c) |
| | | break |
| | | } |
| | | if(d === arr.length-1){ |
| | | if(c.v.mc==undefined||Object.keys(c.v.mc).length==4) arr.push(c) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | arrs.push(arr) |
| | | }) |
| | | a.arr = arrs |
| | | }) |
| | | this.handleExcelMethod() |
| | | }, |
| | | changeInput(m,code){ |
| | | console.log(2222222222,m,code) |
| | | console.log(m,'code:',code,this.excelMethodList) |
| | | let r = code.split('-')[1] |
| | | let c = code.split('-')[2] |
| | | this.excelMethodList.forEach(item=>{ |
| | | if(item.valueList.find(m=>m.r==r&&m.c==c)){ |
| | | console.log('当前的方法',item.methodName) |
| | | console.log('当前的数据项',item.valueList) |
| | | console.log('当前的数值项','r:',item.r,'c:',item.c) |
| | | this.changeInput('计算的结果',`${code.split('-')[0]}-${item.r}-${item.c}`)//改变最终值 |
| | | } |
| | | }) |
| | | }, |
| | | // 当前模板excel函数集处理 |
| | | handleExcelMethod(){ |
| | | if(this.excelMethodList.length>0){ |
| | | this.excelMethodList.map(item=>{ |
| | | item.methodName = item.v.f.split('=')[1].split('(')[0]; |
| | | if(item.v.f.includes(':')){} |
| | | item.methodName = 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(':')){ |
| | | valueList = []; |
| | | let r0 = null; |
| | | let c0 = null; |
| | | let r1 = null; |
| | |
| | | let mode = item.v.f.split('(')[1].split(')')[0]; |
| | | let start = mode.split(':')[0] |
| | | let end = mode.split(':')[1] |
| | | r0 = this.comparisonList.find(j=>j['1']==start.split('')[0])[`0`] |
| | | c0 = start.split('')[1]-1 |
| | | r1 = this.comparisonList.find(j=>j['1']==end.split('')[0])[`0`] |
| | | c1 = end.split('')[1]-1 |
| | | c0 = this.comparisonList.find(j=>j['1']==start.split('')[0])[`0`] |
| | | r0 = start.split('')[1]-1 |
| | | c1 = this.comparisonList.find(j=>j['1']==end.split('')[0])[`0`] |
| | | r1 = end.split('')[1]-1 |
| | | for (let i=Number(r0);i<=r1;i++){ |
| | | for(let u=c0;u<c1+1;u++){ |
| | | for(let u=c0;u<=c1;u++){ |
| | | valueList.push({ |
| | | r:i, |
| | | c:u |
| | |
| | | } |
| | | item.valueList = valueList; |
| | | }else{ |
| | | let mode = item.v.f.split('(')[1].split(')')[0]; |
| | | // const result = item.v.f.replace(/+|-|*|%|\/|(|)/g, ' ') |
| | | valueList = [] |
| | | let regex= /[\+\-\*\%\(\)\s]/g |
| | | let mode = item.v.f.replace(regex, ' ').split(' '); |
| | | mode.forEach(m=>{ |
| | | let r = m.split('')[1]-1 |
| | | let c = this.comparisonList.find(j=>j['1']==m.split('')[0])[`0`] |
| | | valueList.push({c,r}) |
| | | }) |
| | | } |
| | | return item; |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |