| | |
| | | "muse-ui": "^3.0.2", |
| | | "node-emoji": "^1.11.0", |
| | | "popper.js": "^1.16.1", |
| | | "print-js": "^1.6.0", |
| | | "qs": "^6.11.0", |
| | | "sweetalert": "^2.1.2", |
| | | "tinymce": "^5.10.3", |
| | |
| | | @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" |
| | | :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> |
| | | <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> |
| | | <span>æ£éªé¡¹</span> |
| | | <el-input |
| | | v-model="inspectionItem" |
| | | size="mini" |
| | | placeholder="请è¾å
¥"/> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="sonLaboratory" label="åå®éªå®¤" min-width="130" show-overflow-tooltip :filters="filters" |
| | |
| | | model: null, |
| | | standardMethodListId: null, |
| | | symbolList:[ |
| | | 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] |
| | | 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'], |
| | | inspectionItem:null, |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | }) |
| | | }) |
| | | if (item.v.ps != undefined && item.v.ps.value == 'ç»è®º') { |
| | | if (this.currentSample.insProduct.find(m => m.id == item.i)) { |
| | | try { |
| | | 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; |
| | | console.log(comValue) |
| | | let res = Object.values(comValue)[0] |
| | | let comp = [] |
| | | console.log(res, ask) |
| | |
| | | } |
| | | this.saveInsContext() |
| | | } |
| | | } catch (error) { |
| | | |
| | | } |
| | | |
| | | } else { |
| | | let comResult = '' |
| | | try { |
| | |
| | | // } |
| | | // break; |
| | | // } |
| | | list.forEach(a => { |
| | | if (a[0].r == item.r && comResult !== '') { |
| | | for (var b in a) { |
| | | if (a[b].c == item.c) { |
| | | try{ |
| | | let val = parseFloat(comResult.toFixed(3)) |
| | | a[b].v.v = isNaN(val) ? '' : val |
| | | }catch(e){ |
| | | a[b].v.v = comResult |
| | | try { |
| | | list.forEach(a => { |
| | | if (a[0].r == item.r && comResult !== '') { |
| | | for (var b in a) { |
| | | if (a[b].c == item.c) { |
| | | try{ |
| | | let val = parseFloat(comResult.toFixed(3)) |
| | | a[b].v.v = isNaN(val) ? '' : val |
| | | }catch(e){ |
| | | a[b].v.v = comResult |
| | | } |
| | | break |
| | | } |
| | | break |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //æ¹åæç»å¼ |
| | | }) |
| | | this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //æ¹åæç»å¼ |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | this.getCurrentInsProduct(pId) |
| | | try { |
| | | this.getCurrentInsProduct(pId) |
| | | } catch (error) { |
| | | |
| | | } |
| | | }, |
| | | getCurrentInsProduct(pId) { |
| | | if (!this.tableList[0].insProductResult) { |
| | |
| | | return |
| | | }, |
| | | saveInsContext() { |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext, { |
| | | param: JSON.stringify(this.param) |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('ä¿å失败') |
| | | return |
| | | } |
| | | this.$message.success('å·²ä¿å') |
| | | }) |
| | | if(this.param){ |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext, { |
| | | param: JSON.stringify(this.param) |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('ä¿å失败') |
| | | return |
| | | } |
| | | this.$message.success('å·²ä¿å') |
| | | }) |
| | | } |
| | | }, |
| | | changeEquip(val, n) { |
| | | for (let i in this.equipOptions) { |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { data } from 'jquery'; |
| | | import {exportExcel} from '../../util/downExcelByLuckSheet' |
| | | // import { data } from 'jquery'; |
| | | export default { |
| | | props: ['data', 'execlTitle'], |
| | |
| | | Vue.prototype.PROJECT = 'æ£æµä¸å¿' |
| | | // Vue.prototype.PROJECT = 'è£
å¤çµç¼' |
| | | //æ¬å° |
| | | Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; |
| | | // Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; |
| | | // const javaApi = 'http://127.0.0.1:8001'; |
| | | const javaApi = 'http://192.168.0.104:8001'; |
| | | const javaApi = 'http://192.168.47.249:8001'; |
| | | |
| | | //äº |
| | | // Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080"; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // const Excel = require('exceljs') |
| | | |
| | | const exportExcel = async function (luckysheet) { // åæ°ä¸ºluckysheet.getluckysheetfile()è·åç对象 |
| | | // 1.å建工ä½ç°¿ï¼å¯ä»¥ä¸ºå·¥ä½ç°¿æ·»å 屿§ |
| | | const workbook = new Excel.Workbook() |
| | | // 2.åå»ºè¡¨æ ¼ï¼ç¬¬äºä¸ªåæ°å¯ä»¥é
ç½®å建ä»ä¹æ ·çå·¥ä½è¡¨ |
| | | luckysheet.every(function (table) { |
| | | if (table.data.length === 0) return true |
| | | const worksheet = workbook.addWorksheet(table.name) |
| | | // 3.设置åå
æ ¼åå¹¶,设置åå
æ ¼è¾¹æ¡,设置åå
æ ¼æ ·å¼,è®¾ç½®å¼ |
| | | setStyleAndValue(table.data, worksheet) |
| | | setMerge(table.config.merge, worksheet) |
| | | setBorder(table.config.borderInfo, worksheet) |
| | | return true |
| | | }) |
| | | // 4.åå
¥ buffer |
| | | const buffer = await workbook.xlsx.writeBuffer() |
| | | return buffer |
| | | } |
| | | |
| | | var setMerge = function (luckyMerge = {}, worksheet) { |
| | | const mergearr = Object.values(luckyMerge) |
| | | mergearr.forEach(function (elem) { // elemæ ¼å¼ï¼{r: 0, c: 0, rs: 1, cs: 2} |
| | | // æå¼å§è¡ï¼å¼å§åï¼ç»æè¡ï¼ç»æååå¹¶ï¼ç¸å½äº K10:M12ï¼ |
| | | worksheet.mergeCells(elem.r + 1, elem.c + 1, elem.r + elem.rs, elem.c + elem.cs) |
| | | }) |
| | | } |
| | | |
| | | var setBorder = function (luckyBorderInfo, worksheet) { |
| | | if (!Array.isArray(luckyBorderInfo)) return |
| | | luckyBorderInfo.forEach(function (elem) { |
| | | let border = borderConvert(elem.borderType, elem.style, elem.color) |
| | | let rang = elem.range[0] |
| | | // console.log(rang.column_focus + 1, rang.row_focus + 1) |
| | | worksheet.getCell(rang.row_focus + 1, rang.column_focus + 1).border = border |
| | | }) |
| | | } |
| | | var setStyleAndValue = function (cellArr, worksheet) { |
| | | if (!Array.isArray(cellArr)) return |
| | | cellArr.forEach(function (row, rowid) { |
| | | row.every(function (cell, columnid) { |
| | | if (!cell) return true |
| | | let fill = fillConvert(cell.bg) |
| | | let font = fontConvert(cell.ff, cell.fc, cell.bl, cell.it, cell.fs, cell.cl, cell.ul) |
| | | let alignment = alignmentConvert(cell.vt, cell.ht, cell.tb, cell.tr) |
| | | let value |
| | | if (cell.f) { |
| | | value = { formula: cell.f, result: cell.v } |
| | | } else { |
| | | value = cell.v |
| | | } |
| | | let target = worksheet.getCell(rowid + 1, columnid + 1) |
| | | target.fill = fill |
| | | target.font = font |
| | | target.alignment = alignment |
| | | target.value = value |
| | | return true |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | var fillConvert = function (bg) { |
| | | if (!bg) { |
| | | return {} |
| | | } |
| | | let fill = { |
| | | type: 'pattern', |
| | | pattern: 'solid', |
| | | fgColor: {argb: bg.replace('#', '')} |
| | | } |
| | | return fill |
| | | } |
| | | |
| | | var fontConvert = function (ff = 0, fc = '#000000', bl = 0, it = 0, fs = 10, cl = 0, ul = 0) { // luckysheetï¼ff(æ ·å¼), fc(é¢è²), bl(ç²ä½), it(æä½), fs(大å°), cl(å é¤çº¿), ul(ä¸å线) |
| | | const luckyToExcel = { |
| | | 0: '微软é
é»', |
| | | 1: 'å®ä½ï¼Songï¼', |
| | | 2: 'é»ä½ï¼ST Heitiï¼', |
| | | 3: '楷ä½ï¼ST Kaitiï¼', |
| | | 4: '仿å®ï¼ST FangSongï¼', |
| | | 5: 'æ°å®ä½ï¼ST Songï¼', |
| | | 6: 'åææ°é', |
| | | 7: 'åæè¡æ¥·', |
| | | 8: 'åæé¶ä¹¦', |
| | | 9: 'Arial', |
| | | 10: 'Times New Roman ', |
| | | 11: 'Tahoma ', |
| | | 12: 'Verdana', |
| | | num2bl: function (num) { |
| | | return num === 0 ? false : true |
| | | } |
| | | } |
| | | |
| | | let font = { |
| | | name: luckyToExcel[ff], |
| | | family: 1, |
| | | size: fs, |
| | | color: {argb: fc.replace('#', '')}, |
| | | bold: luckyToExcel.num2bl(bl), |
| | | italic: luckyToExcel.num2bl(it), |
| | | underline: luckyToExcel.num2bl(ul), |
| | | strike: luckyToExcel.num2bl(cl) |
| | | } |
| | | |
| | | return font |
| | | } |
| | | |
| | | var alignmentConvert = function (vt = 'default', ht = 'default', tb = 'default', tr = 'default') { // luckysheet:vt(åç´), ht(æ°´å¹³), tb(æ¢è¡), tr(æè½¬) |
| | | const luckyToExcel = { |
| | | vertical: { |
| | | 0: 'middle', |
| | | 1: 'top', |
| | | 2: 'bottom', |
| | | default: 'top' |
| | | }, |
| | | horizontal: { |
| | | 0: 'center', |
| | | 1: 'left', |
| | | 2: 'right', |
| | | default: 'left' |
| | | }, |
| | | wrapText: { |
| | | 0: false, |
| | | 1: false, |
| | | 2: true, |
| | | default: false |
| | | }, |
| | | textRotation: { |
| | | 0: 0, |
| | | 1: 45, |
| | | 2: -45, |
| | | 3: 'vertical', |
| | | 4: 90, |
| | | 5: -90, |
| | | default: 0 |
| | | } |
| | | } |
| | | |
| | | let alignment = { |
| | | vertical: luckyToExcel.vertical[vt], |
| | | horizontal: luckyToExcel.horizontal[ht], |
| | | wrapText: luckyToExcel.wrapText[tb], |
| | | textRotation: luckyToExcel.textRotation[tr] |
| | | } |
| | | return alignment |
| | | |
| | | } |
| | | |
| | | var borderConvert = function (borderType, style = 1, color = '#000') { // 对åºluckysheetçconfigä¸borderinfoççåæ° |
| | | if (!borderType) { |
| | | return {} |
| | | } |
| | | const luckyToExcel = { |
| | | type: { |
| | | 'border-all': 'all', |
| | | 'border-top': 'top', |
| | | 'border-right': 'right', |
| | | 'border-bottom': 'bottom', |
| | | 'border-left': 'left' |
| | | }, |
| | | style: { |
| | | 0: 'none', |
| | | 1: 'thin', |
| | | 2: 'hair', |
| | | 3: 'dotted', |
| | | 4: 'dashDot', // 'Dashed', |
| | | 5: 'dashDot', |
| | | 6: 'dashDotDot', |
| | | 7: 'double', |
| | | 8: 'medium', |
| | | 9: 'mediumDashed', |
| | | 10: 'mediumDashDot', |
| | | 11: 'mediumDashDotDot', |
| | | 12: 'slantDashDot', |
| | | 13: 'thick' |
| | | } |
| | | } |
| | | let template = {style: luckyToExcel.style[style], color: {argb: color.replace('#', '')}} |
| | | let border = {} |
| | | if (luckyToExcel.type[borderType] === 'all') { |
| | | border['top'] = template |
| | | border['right'] = template |
| | | border['bottom'] = template |
| | | border['left'] = template |
| | | } else { |
| | | border[luckyToExcel.type[borderType]] = template |
| | | } |
| | | return border |
| | | } |
| | | |
| | | export default{ |
| | | exportExcel |
| | | } |
| | |
| | | * @returns è¿åææåæ°çåï¼å¦æåæ°å表为空æåæ°ç±»åéæ°å¼åï¼åè¿ånull |
| | | */ |
| | | function SUM(...val){ |
| | | let num = null; |
| | | if(val&&val.length>0){ |
| | | val.forEach(item=>{ |
| | | num+=item; |
| | | }) |
| | | try { |
| | | let num = null; |
| | | if(val&&val.length>0){ |
| | | val.forEach(item=>{ |
| | | num+=item; |
| | | }) |
| | | } |
| | | return num; |
| | | } catch (error) { |
| | | |
| | | } |
| | | return num; |
| | | } |
| | | /** |
| | | * 计ç®ä¼ å
¥åæ°ä¸çæå¤§å¼ |
| | |
| | | * @returns è¿åæå¤§å¼ï¼å¦æåæ°å表为空æä¸ºnull/undefined/''ï¼åè¿ånull |
| | | */ |
| | | function MAX(...val){ |
| | | let max = null; |
| | | if(val&&val.length>0){ |
| | | val = val.filter(item=>item!=null&&item!=='') |
| | | if(val.length>0){ |
| | | max = Math.max(...val) |
| | | }else{ |
| | | max = null; |
| | | try { |
| | | let max = null; |
| | | if(val&&val.length>0){ |
| | | val = val.filter(item=>item!=null&&item!=='') |
| | | if(val.length>0){ |
| | | max = Math.max(...val) |
| | | }else{ |
| | | max = null; |
| | | } |
| | | } |
| | | return max; |
| | | } catch (error) { |
| | | |
| | | } |
| | | return max; |
| | | } |
| | | /** |
| | | * 计ç®ä¼ å
¥åæ°ä¸çæå°å¼ |
| | |
| | | * @returns è¿åä¼ å
¥åæ°ä¸çæå°å¼ï¼å¦æä¼ å
¥åæ°ä¸ºç©ºæææå¼å为nullæç©ºå符串ï¼åè¿ånull |
| | | */ |
| | | function MIN(...val){ |
| | | let min = null; |
| | | if(val&&val.length>0){ |
| | | val = val.filter(item=>item!=null&&item!=='') |
| | | console.log(val) |
| | | if(val.length>0){ |
| | | min = Math.min(...val) |
| | | try { |
| | | let min = null; |
| | | if(val&&val.length>0){ |
| | | val = val.filter(item=>item!=null&&item!=='') |
| | | console.log(val) |
| | | if(val.length>0){ |
| | | min = Math.min(...val) |
| | | } |
| | | } |
| | | return min; |
| | | } catch (error) { |
| | | |
| | | } |
| | | return min; |
| | | } |
| | | /** |
| | | * 计ç®ç»å®æ°å¼çå¹³åå¼ |
| | |
| | | * @returns è¿åå¹³åå¼ï¼å¦ææ°å¼å表为空æå
å«éæ°å¼é¡¹ï¼åè¿ånull |
| | | */ |
| | | function AVERAGE(...val){ |
| | | let num = null; |
| | | let arr = []; |
| | | if(val&&val.length>0){ |
| | | arr = val.filter(item=>item!=null&&item!=='') |
| | | arr.forEach(item=>{ |
| | | num+=item; |
| | | }) |
| | | if(arr.length>0){ |
| | | return num/arr.length; |
| | | try { |
| | | let num = null; |
| | | let arr = []; |
| | | if(val&&val.length>0){ |
| | | arr = val.filter(item=>item!=null&&item!=='') |
| | | arr.forEach(item=>{ |
| | | num+=item; |
| | | }) |
| | | if(arr.length>0){ |
| | | return num/arr.length; |
| | | }else{ |
| | | return null; |
| | | } |
| | | }else{ |
| | | return null; |
| | | } |
| | | }else{ |
| | | return null; |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | /** |
| | |
| | | * @returns è¿å该æ°å¼çç»å¯¹å¼ |
| | | */ |
| | | function ABS(val){ |
| | | return Math.abs(val); |
| | | try { |
| | | return Math.abs(val); |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | /** |
| | | * 计ç®ä¸ç»æ°åçä¸ä½æ° |
| | |
| | | * @returns 妿忰䏿ææçæ°åï¼åè¿å计ç®åºçä¸ä½æ°ï¼å¦åè¿ånull |
| | | */ |
| | | function MEDIAN(...val){ |
| | | let arr = []; |
| | | if(val&&val.length>0){ |
| | | arr = val.filter(item=>item!=null&&item!=='') |
| | | const sortedArr = arr.sort((a, b) => a - b); |
| | | // 计ç®ä¸ä½æ° |
| | | const half = Math.floor(sortedArr.length / 2); |
| | | if(arr.length>0){ |
| | | // 妿æ°ç»é¿åº¦æ¯å¥æ°ï¼ç´æ¥åä¸é´çå
ç´ |
| | | if (sortedArr.length % 2 === 1) { |
| | | return sortedArr[half]; |
| | | } else { // 妿æ°ç»é¿åº¦æ¯å¶æ°ï¼åä¸é´ä¸¤ä¸ªå
ç´ çå¹³åå¼ |
| | | return (sortedArr[half - 1] + sortedArr[half]) / 2; |
| | | try { |
| | | let arr = []; |
| | | if(val&&val.length>0){ |
| | | arr = val.filter(item=>item!=null&&item!=='') |
| | | const sortedArr = arr.sort((a, b) => a - b); |
| | | // 计ç®ä¸ä½æ° |
| | | const half = Math.floor(sortedArr.length / 2); |
| | | if(arr.length>0){ |
| | | // 妿æ°ç»é¿åº¦æ¯å¥æ°ï¼ç´æ¥åä¸é´çå
ç´ |
| | | if (sortedArr.length % 2 === 1) { |
| | | return sortedArr[half]; |
| | | } else { // 妿æ°ç»é¿åº¦æ¯å¶æ°ï¼åä¸é´ä¸¤ä¸ªå
ç´ çå¹³åå¼ |
| | | return (sortedArr[half - 1] + sortedArr[half]) / 2; |
| | | } |
| | | }else{ |
| | | return null; |
| | | } |
| | | }else{ |
| | | return null; |
| | | } |
| | | }else{ |
| | | return null; |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | * @returns è¿åä¸ä¸ªå
å«åæ ä¿¡æ¯çæ°ç» |
| | | */ |
| | | function changeParameter(f){ |
| | | let arr = getABCList(f) |
| | | let arr2 = [] |
| | | arr.forEach(item=>{ |
| | | if(item.includes(':')){ |
| | | let r0 = getIdFromColumnName(item.split(':')[0]).r; |
| | | let c0 = getIdFromColumnName(item.split(':')[0]).c; |
| | | let r1 = getIdFromColumnName(item.split(':')[1]).r; |
| | | let c1 = getIdFromColumnName(item.split(':')[1]).c; |
| | | for (let i = Number(r0); i <= Number(r1); i++) { |
| | | for (let u = Number(c0); u <= Number(c1); u++) { |
| | | arr2.push({ |
| | | r: i, |
| | | c: u |
| | | }) |
| | | try { |
| | | let arr = getABCList(f) |
| | | let arr2 = [] |
| | | arr.forEach(item=>{ |
| | | if(item.includes(':')){ |
| | | let r0 = getIdFromColumnName(item.split(':')[0]).r; |
| | | let c0 = getIdFromColumnName(item.split(':')[0]).c; |
| | | let r1 = getIdFromColumnName(item.split(':')[1]).r; |
| | | let c1 = getIdFromColumnName(item.split(':')[1]).c; |
| | | for (let i = Number(r0); i <= Number(r1); i++) { |
| | | for (let u = Number(c0); u <= Number(c1); u++) { |
| | | arr2.push({ |
| | | r: i, |
| | | c: u |
| | | }) |
| | | } |
| | | } |
| | | }else{ |
| | | arr2.push(getIdFromColumnName(item)) |
| | | } |
| | | }else{ |
| | | arr2.push(getIdFromColumnName(item)) |
| | | } |
| | | }) |
| | | return arr2; |
| | | }) |
| | | return arr2; |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | /** |
| | | * è·åå
å« ABC å符çå表 |
| | |
| | | * @returns å
å« ABC åç¬¦çæ°ç»å表 |
| | | */ |
| | | function getABCList(f){ |
| | | let regex = /[=\+\-\*\%\(\)\/\^\s]/g; |
| | | let fouList = [ |
| | | "SUM", |
| | | 'MAX', |
| | | 'MIN', |
| | | 'AVERAGE', |
| | | 'APS', |
| | | ] |
| | | f = f.replace(regex, ',') |
| | | fouList.forEach(item=>{ |
| | | f = f.replaceAll(item,',') |
| | | }) |
| | | let arr = f.split(',').filter(item=>{ |
| | | return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null' |
| | | }); |
| | | return arr; |
| | | try { |
| | | let regex = /[=\+\-\*\%\(\)\/\^\s]/g; |
| | | let fouList = [ |
| | | "SUM", |
| | | 'MAX', |
| | | 'MIN', |
| | | 'AVERAGE', |
| | | 'APS', |
| | | ] |
| | | f = f.replace(regex, ',') |
| | | fouList.forEach(item=>{ |
| | | f = f.replaceAll(item,',') |
| | | }) |
| | | let arr = f.split(',').filter(item=>{ |
| | | return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null' |
| | | }); |
| | | return arr; |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | /** |
| | | * è·åææåå
æ ¼ |
| | |
| | | * @returns è¿åä¸ä¸ªå¯¹è±¡ï¼å
¶é®ä¸ºåå
æ ¼çå¯ä¸æ è¯ç¬¦ï¼ç±ååè¡IDæ¼æ¥èæï¼ï¼å¼ä¸ºnull |
| | | */ |
| | | function getAllCell(f){ |
| | | let arr = changeParameter(f) |
| | | let arr0 = {} |
| | | arr.forEach(item=>{ |
| | | arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null |
| | | }) |
| | | return arr0; |
| | | try { |
| | | let arr = changeParameter(f) |
| | | let arr0 = {} |
| | | arr.forEach(item=>{ |
| | | arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null |
| | | }) |
| | | return arr0; |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @returns è¿å计ç®åçç»æï¼å¦æè®¡ç®å¤±è´¥åè¿å0 |
| | | */ |
| | | function compute(f,comValue){ |
| | | let str = f |
| | | // è·ååå
æ ¼å¯¹åºå¼ |
| | | let arr = getAllCell(f) |
| | | for (var a in comValue) { |
| | | if(comValue[a]!=='undefine'&&comValue[a]!=='null'&&comValue[a]!==undefined){ |
| | | arr[a] = comValue[a] |
| | | } |
| | | } |
| | | // è§£æå
¬å¼åæ°ï¼ç¹å«æ¯å¸¦ï¼ç |
| | | let arr0 = getABCList(f) |
| | | let obj = {} |
| | | arr0.forEach(item=>{ |
| | | if(item.includes(':')){ |
| | | let arr1 = [] |
| | | let r0 = getIdFromColumnName(item.split(':')[0]).r; |
| | | let c0 = getIdFromColumnName(item.split(':')[0]).c; |
| | | let r1 = getIdFromColumnName(item.split(':')[1]).r; |
| | | let c1 = getIdFromColumnName(item.split(':')[1]).c; |
| | | for (let i = Number(r0); i <= Number(r1); i++) { |
| | | for (let u = Number(c0); u <= Number(c1); u++) { |
| | | arr1.push({ |
| | | r: i, |
| | | c: u |
| | | }) |
| | | } |
| | | try { |
| | | let str = f |
| | | // è·ååå
æ ¼å¯¹åºå¼ |
| | | let arr = getAllCell(f) |
| | | for (var a in comValue) { |
| | | if(comValue[a]!=='undefine'&&comValue[a]!=='null'&&comValue[a]!==undefined){ |
| | | arr[a] = comValue[a] |
| | | } |
| | | let arr2 = [] |
| | | arr1.forEach(m=>{ |
| | | arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`)) |
| | | }) |
| | | obj[item.split(':').join('-')] = arr2.join(',') |
| | | }else{ |
| | | obj[item] = item |
| | | } |
| | | }) |
| | | str = str.replaceAll(':', '-') |
| | | // æ¿æ¢åæ° |
| | | for (var a in obj) { |
| | | str = str.replaceAll(a, obj[a]) |
| | | } |
| | | // è®¡ç® |
| | | try{ |
| | | // è§£æå
¬å¼åæ°ï¼ç¹å«æ¯å¸¦ï¼ç |
| | | let arr0 = getABCList(f) |
| | | let obj = {} |
| | | arr0.forEach(item=>{ |
| | | if(item.includes(':')){ |
| | | let arr1 = [] |
| | | let r0 = getIdFromColumnName(item.split(':')[0]).r; |
| | | let c0 = getIdFromColumnName(item.split(':')[0]).c; |
| | | let r1 = getIdFromColumnName(item.split(':')[1]).r; |
| | | let c1 = getIdFromColumnName(item.split(':')[1]).c; |
| | | for (let i = Number(r0); i <= Number(r1); i++) { |
| | | for (let u = Number(c0); u <= Number(c1); u++) { |
| | | arr1.push({ |
| | | r: i, |
| | | c: u |
| | | }) |
| | | } |
| | | } |
| | | let arr2 = [] |
| | | arr1.forEach(m=>{ |
| | | arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`)) |
| | | }) |
| | | obj[item.split(':').join('-')] = arr2.join(',') |
| | | }else{ |
| | | obj[item] = item |
| | | } |
| | | }) |
| | | str = str.replaceAll(':', '-') |
| | | // æ¿æ¢åæ° |
| | | for (var a in obj) { |
| | | str = str.replaceAll(a, obj[a]) |
| | | } |
| | | // è®¡ç® |
| | | for (var a in arr) { |
| | | str = str.replaceAll(a, arr[a]) |
| | | } |
| | | return eval(str) |
| | | }catch(e){ |
| | | console.log('e',e) |
| | | return 0 |
| | | } catch (error) { |
| | | |
| | | } |
| | | } |
| | | |