| | |
| | | :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" |
| | | :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${item.style.columnlen[n.c]}px;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> |
| | | <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"> |
| | | <span v-if="n.v.ps===undefined || n.v.ps.value!='检验值'" :style="`font-family:${n.v.ff} !important;`">{{ n.v.v}}</span> |
| | | <input v-else class="table_input"/> |
| | | <el-input v-if="n.v.ps!=undefined && n.v.ps.value==='检验值'" class="table_input" v-model="n.v.v" @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}`)" /> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='结论'"> |
| | | <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> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | result: {} |
| | | }, |
| | | currentKey:1, |
| | | comparisonList:[], |
| | | excelMethodList:[] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | mounted() { |
| | | this.getTypeDicts() |
| | | this.getInsStateDicts() |
| | | this.getComparisonList() |
| | | }, |
| | | watch:{ |
| | | id(val){ |
| | |
| | | this.componentData.tagField.insState.select = data |
| | | }) |
| | | }, |
| | | getComparisonList(){ |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "表格坐标转换" |
| | | }).then(res => { |
| | | let data = res.data |
| | | this.comparisonList = data; |
| | | }) |
| | | }, |
| | | tableRowClassName({ row, rowIndex }){ |
| | | row.index = rowIndex + 1; |
| | | }, |
| | | handleTableData(){ |
| | | this.excelMethodList = [] |
| | | const mySet1 = new Set(); |
| | | this.tableList = JSON.parse(JSON.stringify(this.currentSample.insProduct)).filter(m=>{ |
| | | let num0 = mySet1.size; |
| | |
| | | let dels = [] |
| | | let ids = [] |
| | | a.template.forEach(b=>{ |
| | | if(b.v.ps!=undefined&&b.v.ps.value==='检验子项'){ |
| | | if (b.v.ps!=undefined&&b.v.ps.value==='检验子项'){ |
| | | let count = 0 |
| | | for(let i in this.currentSample.insProduct){ |
| | | if(this.currentSample.insProduct[i].inspectionItemSubclass === b.v.v && this.currentSample.insProduct[i].templateId === a.templateId){ |
| | | ids.push({ |
| | | r: b.r, |
| | | id: this.currentSample.insProduct[i].id |
| | | id: this.currentSample.insProduct[i].id, |
| | | product: this.currentSample.insProduct[i] |
| | | }) |
| | | break |
| | | } |
| | |
| | | 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 |
| | | } |
| | |
| | | for(let b=0;b<a.template.length;b++){ |
| | | if(a.template[b].r === id.r){ |
| | | a.template[b].i = id.id |
| | | if (a.template[b].v.ps!=undefined&&a.template[b].v.ps.value==='单位'){ |
| | | a.template[b].v.v = id.product.unit |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | console.log(this.tableList); |
| | | // return |
| | | this.tableList.map(item=>{ |
| | | const mySet0 = new Set(); |
| | | let arr = []; |
| | | let arrItem = []; |
| | | item.template.forEach((m,i)=>{ |
| | | 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) |
| | | } |
| | | this.tableList.forEach(a=>{ |
| | | let arrs = [] |
| | | let set = new Set() |
| | | let count1 = 0 |
| | | a.template.forEach(b=>{ |
| | | if (b.v.ps!=undefined&&b.v.ps.value==='序号'){ |
| | | count1++ |
| | | b.v.v = count1 |
| | | } |
| | | if (b.v.ps!=undefined&&b.v.ps.value==='检验值'){ |
| | | b.v.v = '' |
| | | } |
| | | set.add(b.r) |
| | | if(b.v.f){ |
| | | this.excelMethodList.push(b) |
| | | } |
| | | }) |
| | | arr.push(arrItem) |
| | | item.arr = arr; |
| | | return item |
| | | }) |
| | | 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(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}`)//改变最终值 |
| | | } |
| | | }) |
| | | console.log(this.tableList); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | handleExcelMethod(){ |
| | | if(this.excelMethodList.length>0){ |
| | | this.excelMethodList.map(item=>{ |
| | | 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 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.split('')[1]-1 |
| | | c1 = this.comparisonList.find(j=>j.label==end.split('')[0]).value |
| | | r1 = end.split('')[1]-1 |
| | | for (let i=Number(r0);i<=r1;i++){ |
| | | for(let u=c0;u<=c1;u++){ |
| | | valueList.push({ |
| | | r:i, |
| | | c:u |
| | | }) |
| | | } |
| | | } |
| | | item.valueList = valueList; |
| | | }else{ |
| | | 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.label==m.split('')[0]).value |
| | | valueList.push({c,r}) |
| | | }) |
| | | } |
| | | return item; |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |