package.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/DataWorker.worker.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/InspectionWorker.worker.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/business/inspectionTask.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/Table/lims-table.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/router/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/request.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/business/inspectionTask/inspection.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
vue.config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
package.json
@@ -85,7 +85,8 @@ "sass-loader": "10.1.1", "script-ext-html-webpack-plugin": "2.1.5", "svg-sprite-loader": "5.1.1", "vue-template-compiler": "2.6.12" "vue-template-compiler": "2.6.12", "worker-loader": "^3.0.8" }, "engines": { "node": ">=8.9", src/DataWorker.worker.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,160 @@ // æ¤çº¿ç¨ä¸ºæ°æ®ééçº¿ç¨ // ä¿åæ°æ® // æ°æ®ééä¿¡æ¯ let dataAcquisitionInfo = null; // æ°æ®å表 let list = null; // ä¼ éå°ä¸»çº¿ç¨çæ°æ® let result = { method:'', value:null } // ä¼åæ°éè¾å¤æ°æ®æ¶--è®°å½æ°é项ç®çIdæ°ç»ï¼ç®çæ¯åæåä¸ä¸ªæ°é项ç®ï¼ä¼ å°ä¸»çº¿ç¨è¿è¡æ¹éçæ°æ®ééä¿å let arrSpecial = [] // æ¥æ¶ä¸»çº¿ç¨ä¼ éè¿æ¥çæ°æ® self.onmessage = function(event) { const data = JSON.parse(event.data); dataAcquisitionInfo = data.dataAcquisitionInfo; list = data.list; // console.log(111,dataAcquisitionInfo) arrSpecial = [] // å¤çæ°æ® handleData() } function handleData(){ // éåæ°æ®å表 list.forEach((item,index)=>{ let num = 0; let str = '' item.forEach(m=>{ if(m.v.ps&&(m.v.ps.value=='æ£éªå项'||m.v.ps.value=='æ£éªé¡¹'||m.v.ps.value=='æ£éªé¡¹åç±»')){ if(m.v.ps&&m.v.ps.value=='æ£éªé¡¹åç±»'){ if(num==0){ num++ str = m.v.v+',' } } if(m.v.ps&&m.v.ps.value=='æ£éªé¡¹'){ if(num==1){ str = str+m.v.v + ',' num++ } else { str = m.v.v+',' num++ } } if(m.v.ps&&m.v.ps.value=='æ£éªå项'){ str = str+m.v.v } // ä¸é¢å¨è®°å½æ£éªé¡¹+æ£éªå项çåç§°ï¼å¦ææ°éå 嫿£éªé¡¹+æ£éªåé¡¹çæ°æ®ï¼åæ§è¡ if(dataAcquisitionInfo[str]){ let num = 0;//该æ£éªé¡¹å¯¹åºæ£éªå¼ç个æ°ï¼ç¨ç¨å¤ææå¤æå¤å°ä¸ªæ£éªå¼ï¼å¦æå¤æ¬¡ééè¶ è¿äºè¯¥ä¸ªæ°ï¼åèµå¼ç»æåä¸ä¸ªæ£éªå¼ list[index].forEach(n=>{ if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('æ£éªå¼')){ num++ } }) list[index].forEach((n,i)=>{ if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('æ£éªå¼')){ let arr = n.v.ps.value.split('å¼') if(Array.isArray(dataAcquisitionInfo[str].value)){ // å¦ææ°æ®æºä¸ºæ°ç»ï¼åæ§è¡ for (let i = 0; i < dataAcquisitionInfo[str].value.length; i++) { if(i+1==arr[1]){ // èµå¼æ°éä¼åæ£éªé¡¹å表 arrSpecial.push(n.i) setTimeout(()=>{ let num0 = 0 if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){ // ä¿ç模æ¿é ç½®çå°æ°ç¹ä½æ° let str0 = n.v.ct.fa.split('.')[1] num0 = str0.length n.v.v = dataAcquisitionInfo[str].value[i]?Number(dataAcquisitionInfo[str].value[i]).toFixed(num0):dataAcquisitionInfo[str].value[i] }else{ // ç´æ¥èµå¼ n.v.v = dataAcquisitionInfo[str].value[i] } // ä¼ éç»ä¸»çº¿ç¨ result = { method:'changeInput', value:{ list:list, n:n } } self.postMessage(JSON.stringify(result)) },2000) } } }else{ // å¦ææ°æ®æºä¸ºåç¬¦ææ°åï¼åæ§è¡ if(arr[1] ==dataAcquisitionInfo[str].frequency){ // 妿æ°é次æ°çäºæ£éªå¼åºå·ï¼åèµå¼ç»å½åæ£éªå¼ arrSpecial.push(n.i) setTimeout(()=>{ let num0 = 0 if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){ // ä¿ç模æ¿é ç½®çå°æ°ç¹ä½æ° let str0 = n.v.ct.fa.split('.')[1] num0 = str0.length n.v.v = dataAcquisitionInfo[str].value?Number(dataAcquisitionInfo[str].value).toFixed(num0):dataAcquisitionInfo[str].value }else{ // ç´æ¥èµå¼ n.v.v = dataAcquisitionInfo[str].value } // ä¼ éç»ä¸»çº¿ç¨ result = { method:'changeInput', value:{ list:list, n:n } } self.postMessage(JSON.stringify(result)) },2000) }else if(Number(dataAcquisitionInfo[str].frequency)>num){ // 妿æ°é次æ°å¤§äºæ£éªå¼åºå·ï¼åèµå¼ç»æåä¸ä¸ªæ£éªå¼ if(n.v.ps.value.includes(num)){ arrSpecial.push(n.i) setTimeout(()=>{ let num0 = 0 if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){ // ä¿ç模æ¿é ç½®çå°æ°ç¹ä½æ° let str0 = n.v.ct.fa.split('.')[1] num0 = str0.length n.v.v = dataAcquisitionInfo[str].value?Number(dataAcquisitionInfo[str].value).toFixed(num0):dataAcquisitionInfo[str].value }else{ // ç´æ¥èµå¼ n.v.v = dataAcquisitionInfo[str].value } // ä¼ éç»ä¸»çº¿ç¨ result = { method:'changeInput', value:{ list:list, n:n } } self.postMessage(JSON.stringify(result)) },2000) } } } } }) } } }) }) // if(arrSpecial[arrSpecial.length-1]){ // //ä¼åæ°éè¾å¤æ°æ®æ¶-è®°å½æåä¸ä¸ªæ£éªé¡¹çidï¼ç¨äºåç»å¤ç // setTimeout(()=>{ // result = { // getDataTypeId:arrSpecial[arrSpecial.length-1], // } // self.postMessage(JSON.stringify(result)) // },0) // } } src/InspectionWorker.worker.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,2352 @@ // å¤çº¿ç¨éé¢éè¦ä¿åçæ°æ® let code = ""; // è¡¨æ ¼æ°æ®ï¼æ¸²æï¼ let tableList = null; // æ¹æ³å表 let excelMethodList = []; // excelåæ æ¯è¾å表 let comparisonList = []; // å½åæ ·åä¿¡æ¯ let currentSample = {}; // å½å项ç®ï¼æ£æµä¸å¿ãè£ å¤çµç¼ let PROJECT = ""; // å¥ç®¡ let bushing = ""; // å¤çº¿ç¨ä¼ éå°ä¸»çº¿ç¨çæ°æ® let result = { method: "", value: null, }; let modelType = ""; // ä¿åæ¶ä¼ å°åç«¯åæ° let param = null; // å½åçæ¨¡æ¿ let currentTable = ""; // ä¼åæ°éè¾å¤æ°æ®æ¶-è®°å½æåä¸ä¸ªæ£éªé¡¹çid let getDataTypeId = null; //å½åæ£éªé¡¹ let currentInsItem = null; // æ¥æ¶å°ä¸»çº¿ç¨å¤çé»è¾çæ¶æ¯ self.onmessage = function (event) { console.log(2222, event); // ä¿å主线ç¨ä¼ è¿æ¥çå¼ const data = JSON.parse(event.data); if (currentTable != data.currentTable) { // æ£éªæ¨¡æ¿æ¹ååéè¦å·æ°è¡¨æ ¼ tableList = data.tableList; } currentTable = data.currentTable; if (data.type && data.type == "saveData") { // æ´æ°è¡¨æ ¼æ°æ®åä¼ éå°å端çåæ° tableList = data.tableList; param = data.param; return; } if (data.bushing && data.bushing != bushing && data.type == "saveData") { // æ´æ°è¡¨æ ¼æ°æ®ãä¼ éå°å端çåæ°åå¥ç®¡æ°æ® tableList = data.tableList; param = data.param; bushing = data.bushing; return; } modelType = data.modelType; code = data.code; if (data.getDataTypeId) { // è®°å½ ä¼åæ°éè¾å¤æ°æ®æ¶-è®°å½æåä¸ä¸ªæ£éªé¡¹çid getDataTypeId = data.getDataTypeId; } else { getDataTypeId = null; } if (tableList) { // å¦æè¡¨æ ¼æ°æ®åå¨ï¼åæ´æ°å½åä¿®æ¹æ£éªé¡¹çè¡¨æ ¼æ°æ® let str = code.split("-"); let r = str[1]; let c = str[2]; tableList[0].arr.forEach((item, index) => { item.forEach((m, i) => { if (m.c == c && m.r == r) { tableList[0].arr[index] = data.tableList[0].arr[index]; } }); }); } else { // 妿åå§åè¡¨æ ¼æ°æ®ä¸åå¨ï¼ç´æ¥èµå¼ tableList = data.tableList; } if (param) { // å¦æä¼ éå°å端çåæ°åå¨ï¼åæ´æ°å½åä¿®æ¹æ£éªé¡¹çä¼ éå°å端çåæ° let str = code.split("-"); let pId = str[3]; param[pId] = data.param[pId]; } else { // åå§åä¼ éå°å端çåæ° param = data.param; } if (data.currentInsItem) { currentInsItem = data.currentInsItem; } // æ´æ°æ¹æ³å表ãåæ æ¯è¾å表ãå½åæ ·åä¿¡æ¯ãé¡¹ç® excelMethodList = JSON.parse(JSON.stringify(data.excelMethodList)); comparisonList = JSON.parse(JSON.stringify(data.comparisonList)); currentSample = JSON.parse(JSON.stringify(data.currentSample)); PROJECT = data.PROJECT; // æ§è¡è®¡ç®æ¹æ³ changeInput("", code); }; function changeInput(m, code) { let str = code.split("-"); let r = str[1]; //å½åè¡ let c = str[2]; //å½åå let id = str[0]; let pId = str[3]; //å½åæ£éªé¡¹idï¼param[pId]为å½åæ£éªé¡¹çææå¼ï¼å å«ï¼è¿ç¨å¼insValueã计ç®å¼comValueã设å¤ç¼ç equipValueã设å¤åç§°equipNameãæç»å¼resValueãç»è®ºinsResult var list = []; //ä¸ä¸ªå屿°ç»ï¼éé¢ä¿åæå½å页颿¸²æçæææ°æ® // èµå¼å½å模æ¿çè¡¨æ ¼æ°æ® for (let a in tableList) { if (tableList[a].templateId == id) { list = tableList[a].arr; break; } } let isToExponential = ""; //æ¯å¦ä¸ºç§å¦è®¡æ°æ³ let list2 = []; //ä¸ä¸ªæ°ç»ï¼éé¢ä¿åæå½åæ£éªé¡¹çææåæ°å¼ let isPoint = ""; //æ¯å¦ä¸ºå°æ°ç¹ let inputType = null; let currentInsItemId = ""; let isSave = "true"; // å¾ªç¯ææexcelæ¹æ³ï¼æ¾å°å½åè¡ãåçæ£éªé¡¹ï¼å¦ææ¤åå æ ¼ï¼r,cï¼æ¯æä¸ªexcelæ¹æ³éé¢çåæ°ï¼åæ§è¡æ¤æ¹æ³ const index = excelMethodList.findIndex((item) => item.r == r); excelMethodList.forEach((item) => { inputType = item.valueList && item.valueList.length > 0 && item.valueList.find((m) => m.r == r && m.c == c); // item.valueList æ¯å½åexcelæ¹æ³çåæ°åè¡¨ï¼æ¾å°å½åå¡«å ¥ç弿¯å¦æ¯åæ° if ( item.valueList && item.valueList.length > 0 && item.valueList.find((m) => m.r == r && m.c == c) ) { isSave = "false"; // 妿æ¯ï¼åå®ä¹ä¸ä¸ªåæ°ç对象éåï¼ç¨äºä¿åå½åexcelæ¹æ³åæ°çå¼ var comValue = {}; item.valueList.forEach((a) => { list.forEach((b) => { if (b[0].r == a.r) { b.forEach((c) => { if (c.c == a.c) { // è·åå½ååæ°çExeclè¡åæ (ABCD)çç var tableCode = ""; for (var d in comparisonList) { if (c.c == comparisonList[d].value) { tableCode = comparisonList[d].label; break; } } list2.push(c.v.v); // ç»è£ åæ°ç对象éåå¹¶èµå¼ï¼åå¦{A3:12,B4:15} if ( getInspectionValueType(item.i) == 1 && !isNaN(parseFloat(c.v.v)) ) { // å¦ææ¯æ°åè¾å ¥æ¡ let n = String(c.v.v); if (n.includes("/")) { // 妿æ¯åæ°ï¼åèµå¼ comValue[tableCode + (c.r + 1)] = c.v.v; } else { comValue[tableCode + (c.r + 1)] = parseFloat(c.v.v); } } else { // å¦ææ¯ææ¬ã䏿æ¡çç comValue[tableCode + (c.r + 1)] = c.v.v; } } }); } }); }); // 妿æ¤excelæ¹æ³æ¯ç»è®ºå¤ææ¹æ³ï¼åæ§è¡æ¤æ¹æ³ // console.log('item.v.ps.value---', item.v.ps.value) if (item.v.ps != undefined && item.v.ps.value == "ç»è®º") { try { if (currentSample.insProduct.find((m) => m.id == item.i)) { // 妿å½åæ£éªé¡¹æ¯äº§åæ£éªé¡¹ï¼åæ§è¡æ¤æ¹æ³ï¼æ¾å°æ¤æ£éªé¡¹çè¦æ±å¼ let ask = currentSample.insProduct.find((m) => m.id == item.i).ask ? currentSample.insProduct .find((m) => m.id == item.i) .ask.split("&") : null; // è·åå½åç»è®ºçåæ°ï¼ä¹å°±æ¯å½åæ£éªé¡¹çæç»å¼ let res = Object.values(comValue)[0]; if (typeof res == "string" && res.includes(">")) { res = res.replace(">", ""); } if (typeof res == "string" && res.includes("â¤")) { res = res.replace("â¤", ""); } if (typeof res == "string" && res.includes("â¥")) { res = res.replace("â¥", ""); } if (typeof res == "string" && res.includes("<")) { res = res.replace("<", ""); } if (typeof res == "string" && res.includes("ï¼")) { res = res.replace("ï¼", ""); } if (typeof res == "string" && res.includes("ï¼")) { res = res.replace("ï¼", ""); } if ( typeof res == "string" && (res === "æè£" || res === "èå" || res === "æè£èå") ) { item.v.v = 0; list.forEach((a) => { if (a[0].r == item.r) { for (let b = 0; b < a.length; b++) { if (a[b].c == item.c) { a[b].v.v = 0; break; } } } }); } let comp = []; // 夿å½åç»è®ºçåæ°ï¼å½åæ£éªé¡¹çæç»å¼ï¼æ¯å¦ä¸ºç©ºï¼å¦æä¸ºç©ºï¼åç´æ¥èµå¼ if ( res === "" || res === null || res === undefined || res === "Infinity" ) { item.v.v = null; list.forEach((a) => { if (a[0].r == item.r) { for (let b = 0; b < a.length; b++) { if (a[b].c == item.c) { a[b].v.v = null; break; } } } }); } else { // 妿ä¸ä¸ºç©ºï¼å夿å½åç»è®ºå°±éè¦è¿è¡å¤æ //è¦æ±å¼ä¸º-ï¼/ï¼âï¼åç»è®ºè®¾ç½®ä¸ºä¸å¤å®ï¼ç»è®ºèµå¼ä¸º3 if ( ask == null || ask[0] == "-" || ask[0] == "/" || ask[0] == "â" ) { item.v.v = 3; list.forEach((a) => { if (a[0].r == item.r) { for (let b = 0; b < a.length; b++) { if (a[b].c == item.c) { a[b].v.v = 3; break; } } } }); } else { // è¦æ±å¼ä¸ä¸º-ï¼/ï¼âï¼åè¿è¡å¤æ if (ask) { // 循ç¯è¦æ±å¼å表ï¼å¤æå½åç»è®ºçåæ°æ¯å¦ç¬¦åè¦æ± comp = ask.map((m, i) => { // å¦æè¦æ±å¼å å«=ï¼å夿å½åç»è®ºçåæ°æ¯å¦çäºè¦æ±å¼ï¼ // 以ä¸å¤æåºæ¬ä¸è´ï¼åªæ¯å¤æç±»åä¸ä¸æ ·ï¼å°±ä¸å注éäº if (m.includes("=")) { // å¤çè¦æ±å¼ let str = handleFraction(m.split("=")[1]); if (typeof res == "string" && typeof str == "string") { // å¦æè¦æ±å¼åå½åç»è®ºç忰齿¯å符串ï¼åæ§è¡ if (res.includes("/")) { // 妿ç»è®ºçåæ°æ¯åæ°ï¼å夿 if (m.includes("/")) { // å¦æè¦æ±å¼æ¯åæ°ï¼å夿 return eval(res) == eval(str); } else { // å¦æè¦æ±å¼ä¸æ¯åæ°ï¼å夿 return handleMoreParam(res, m.split("=")[1], "="); } } else { // 妿ç»è®ºç忰䏿¯åæ°ï¼å夿 return ( res.trim().replace(/[.,ããï¼ï¼'";?ï¼âï¼]/g, "") == str.trim().replace(/[.,ããï¼ï¼'";?ï¼âï¼]/g, "") ); } } else { // å¦æè¦æ±å¼åå½åç»è®ºçåæ°æä¸ä¸ªæ¯æ°åï¼åæ§è¡ return eval(res) == eval(str); } } else if (m.includes("â¥")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split("â¥")[1]); return eval(res) >= eval(str); } else { return handleMoreParam(res, m.split("â¥")[1], "â¥"); } } else { let str = handleFraction(m.split("â¥")[1]); return eval(res) >= eval(str); } } else if (m.includes("â¤")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split("â¤")[1]); return eval(res) <= eval(str); } else { return handleMoreParam(res, m.split("â¤")[1], "â¤"); } } else { let str = handleFraction(m.split("â¤")[1]); if (typeof str == "string" && str.includes("A")) { str = str.replace("A", ""); } if (typeof str == "string" && str.includes("D")) { str = str.replace("D", ""); } if (typeof res == "string" && res.includes("A")) { res = res.replace("A", ""); } if (typeof res == "string" && res.includes("D")) { res = res.replace("D", ""); } return eval(res) <= eval(str); } } else if (m.includes("<")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split("<")[1]); return eval(res) < eval(str); } else { return handleMoreParam(res, m.split("<")[1], "<"); } } else { let str = handleFraction(m.split("<")[1]); return eval(res) < eval(str); } } else if (m.includes(">")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split(">")[1]); return eval(res) > eval(str); } else { return handleMoreParam(res, m.split(">")[1], ">"); } } else { let str = handleFraction(m.split(">")[1]); return eval(res) > eval(str); } } else if (m.includes("~")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let k = m.split("~"); return ( eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) ); } else { return handleMoreParam(res, m, "~"); } } else { let k = m.split("~"); return ( eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) ); } } else if (m.includes("-")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let k = m.split("-"); return ( eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) ); } else { return handleMoreParam(res, m, "-"); } } else { let k = m.split("-"); return ( eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])) ); } } else if (m.includes("±")) { if (modelType.includes("Ï-")) { if (m.indexOf("±") == 0) { m = modelType.substring(modelType.indexOf("-") + 1) + m; } } if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let k = m.split("±"); return ( eval(res) >= eval( handleFraction(k[0]) - handleFraction(k[1]) ) && eval(res) <= eval( Number(handleFraction(k[0])) + Number(handleFraction(k[1])) ) ); } else { return handleMoreParam(res, m, "±"); } } else { let k = m.split("±"); return ( eval(res) >= eval(handleFraction(k[0]) - handleFraction(k[1])) && eval(res) <= eval( Number(handleFraction(k[0])) + Number(handleFraction(k[1])) ) ); } } else if (m.includes("ï¼")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split("ï¼")[1]); return eval(res) > eval(str); } else { return handleMoreParam(res, m.split("ï¼")[1], ">"); } } else { let str = handleFraction(m.split("ï¼")[1]); return eval(res) > eval(str); } } else if (m.includes("ï¼")) { if (typeof res == "string" && res.includes("/")) { if (m.includes("/")) { let str = handleFraction(m.split("ï¼")[1]); return eval(res) < eval(str); } else { return handleMoreParam(res, m.split("ï¼")[1], "<"); } } else { let str = handleFraction(m.split("ï¼")[1]); return eval(res) < eval(str); } } }); } // å¦æè¦æ±å¼çæ¯ä¸ªæ¡ä»¶é½ç¬¦åï¼åç»ç»è®ºèµå¼ä¸º1ï¼åæ ¼ if (comp.every((m) => m)) { item.v.v = 1; list.forEach((a) => { if (a[0].r == item.r) { for (let b = 0; b < a.length; b++) { if (a[b].c == item.c) { a[b].v.v = 1; break; } } } }); } else { // å¦åç»ç»è®ºèµå¼ä¸º0ï¼ä¸åæ ¼ item.v.v = 0; list.forEach((a) => { if (a[0].r == item.r) { for (let b = 0; b < a.length; b++) { if (a[b].c == item.c) { a[b].v.v = 0; break; } } } }); } } } let getDataType0 = false; // ä¼åæ°éè¾å¤æ°æ®æ¶-è®°å½æåä¸ä¸ªæ£éªé¡¹çidï¼å¦æå½åæ£éªé¡¹çidä¸è®°å½çidç¸åï¼åå¤ä¼ ä¸ä¸ªåæ°å°ä¸»çº¿ç¨ï¼è¿è¡æ°æ®ä¿åï¼å¦åæ°éå°±ä¸è¿è¡ä¿å if (item.i == getDataTypeId) { getDataType0 = true; } // èµå¼ä¼ éå°ä¸»çº¿ç¨çæ°æ®ï¼methodï¼saveInsContextè¡¨ç¤ºæ¤æ¶æ¯éè¦ä¿åæ°æ® currentInsItemId = item.i; // èµå¼ä¼ éå°ä¸»çº¿ç¨çæ°æ®ï¼methodï¼saveInsContextè¡¨ç¤ºæ¤æ¶æ¯éè¦ä¿åæ°æ® result = { method: "saveInsContext", value: { tableList, // è¡¨æ ¼æ°æ® param: getParam(), //ä¼ ç»å端çåæ° getDataTypeId: getDataTypeId, currentInsItemId: item.i, }, }; // åæ¶æ¯ç»ä¸»çº¿ç¨ self.postMessage(JSON.stringify(result)); } } catch (error) { console.log("error---", error); } } else { // 妿æ¯å½æ°æ¹æ³ï¼åæ§è¡æ¤æ¹æ³ let comResult = ""; //åå§å计ç®ç»æ try { if (getInspectionValueType(item.i) == 1) { // 妿æ£éªå¼ç±»åæ¯æ°åè¾å ¥æ¡ let tell = currentSample.insProduct.find((m) => m.id == item.i).tell ? currentSample.insProduct .find((m) => m.id == item.i) .tell.split("&") : null; isPoint = tell && tell.length > 0 && typeof tell[0] == "string" && tell[0].includes("/") && tell[0] !== "/"; // è£ å¤çµç¼--å¤æè¦æ±å¼æ¯å¦ä¸ºåæ° const inspectionItemClass = currentSample.insProduct.find( (m) => m.id == item.i ).inspectionItemClass; // æ£éªé¡¹åç±» const inspectionItem = currentSample.insProduct.find( (m) => m.id == item.i ).inspectionItem; // æ£éªé¡¹ const inspectionItemSubclass = currentSample.insProduct.find( (m) => m.id == item.i ).inspectionItemSubclass; // æ£éªå项 let isHaveSymbol = false; let symbol = ""; for (var a in comValue) { if ( typeof comValue[a] == "string" && (comValue[a].includes(">") || comValue[a].includes("â¤") || comValue[a].includes("<") || comValue[a].includes("â¥") || comValue[a].includes("ï¼") || comValue[a].includes("ï¼")) ) { if (comValue[a].includes(">")) { symbol = ">"; } else if (comValue[a].includes("â¤")) { symbol = "â¤"; } else if (comValue[a].includes("â¥")) { symbol = "â¥"; } else if (comValue[a].includes("ï¼")) { symbol = "ï¼"; } else if (comValue[a].includes("ï¼")) { symbol = "ï¼"; } else { symbol = "<"; } isHaveSymbol = true; break; } } // æ ¹æ®è¾å ¥çæ°å¼ï¼è¿è¡è®¡ç® comResult = compute(item.v.f.replace(/=/g, " "), comValue, isPoint); // æ£éªé¡¹ä¸ºå¯åº¦æ¶ï¼æ ¹æ®è¦æ±å¼çå°æ°ä½æ¹åæç»å¼çå°æ°ä½ if (inspectionItem == "å¯åº¦") { const str = "" + tell; const indexOfDecimal = str.indexOf("."); if (indexOfDecimal > -1) { const length = str.length - indexOfDecimal - 1; comResult = comResult.toFixed(length); } } else if ( inspectionItemClass == "夿¤å¥æºæ¢°ç©çæ§è½" && inspectionItem == "å¨IRM 902ç¿ç©æ²¹ä¸æµ¸æ³¡å" && (inspectionItemSubclass == "æè£ä¼¸é¿çååç" || inspectionItemSubclass == "æå¼ 强度ååç") ) { comResult = Math.round(comResult).toFixed(0); } else if ( typeof comResult == "string" && (comResult.includes("æè£") || comResult.includes("èå")) ) { comResult = comResult + ""; } if (inspectionItem === "鵿°ç¡¬åº¦" && tell[0].includes("A")) { // è¦æ±å¼å¦ææå å«åæ¯ï¼æç»ç»æè¦å±ç¤ºåºåæ¯ comResult = comResult + "A"; } if ( inspectionItemClass === "ç»ç¼æºæ¢°ç©çæ§è½" && inspectionItem === "å¼¯æ²æ§è½" && inspectionItemSubclass === "æå°å¼¯æ²åå¾" && tell[0].includes("D") ) { // è¦æ±å¼å¦ææå å«åæ¯ï¼æç»ç»æè¦å±ç¤ºåºåæ¯ comResult = comResult + "D"; } if (isHaveSymbol) { comResult = symbol + comResult; } let list3 = list2.map((item) => item + ""); // å¤æå¡«çæ£éªå¼æ¯å¦ä¸ºç§å¦è®¡æ°æ³ï¼å¦æä¸ºç§å¦è®¡æ°æ³ï¼åè¿è¡è½¬å isToExponential = list3.some( (val) => val.includes("e+") || val.includes("e-") ); if (isToExponential) { let num2 = new Big(comResult); comResult = num2.toExponential(1); } } else { // 妿æ£éªå¼ç±»åæ¯ææ¬è¾å ¥æ¡ãä¸ææ¡ let valueList = []; // å¤çexcel彿°åæ°å表 item.valueList.forEach((a) => { valueList.push({ name: `${comparisonList.find((e) => e.value == a.c).label}${ a.r + 1 }`, value: 0, }); }); // ç»excel彿°åæ°èµææ¬å¼ for (var a in comValue) { valueList.forEach((b) => { if (b.name == a) { b.value = comValue[a]; } }); } // 计ç®å ¬å¼ï¼å»æexcel彿°ççå·ï¼å¹¶æ¿æ¢åæ°ï¼åå¦ï¼=A1 åæ A1 åæ âææ¬è¾å ¥çå¼â let str = item.v.f.replace(/=/g, " "); valueList.forEach((b) => { str = str.replace(b.name, b.value); }); // 计ç®ç»æèµå¼ comResult = str; } } catch (error) { console.log("error---", error); } try { // 循ç¯è¡¨æ ¼æ°æ®ï¼ç»è¡¨æ ¼æ°æ®è¿è¡èµå¼ list.forEach((a) => { if (a[0].r == item.r && comResult !== "") { // 夿å½åè¡æ¯å¦ä¸ºå½åæ£éªé¡¹æå¨è¡ï¼å¦æä¸ºå½åè¡ï¼åç»è¡¨æ ¼æ°æ®èµå¼ for (var b in a) { if (a[b].c == item.c) { try { if (comResult == 0) { // å¤æè®¡ç®ç»ææ¯å¦ä¸º0ï¼å¦æä¸º0ï¼åç»è¡¨æ ¼æ°æ®èµå¼ä¸º0 a[b].v.v = 0; } else if ( a[b].v.ct && a[b].v.ct.fa && typeof a[b].v.ct.fa == "string" && a[b].v.ct.fa.includes(".") ) { // 夿å½ååå æ ¼æ¯å¦ä¿çå°æ°ç¹ï¼å¦æä¸ºä¿çå°æ°ç¹ï¼åç»è¡¨æ ¼æ°æ®èµå¼ä¸ºä¿çå°æ°ç¹ï¼è¿ä¸ªæ¯æ ¹æ®æ¨¡æ¿é ç½®å°æ°ç¹æ¥ç let num = 0; let str = a[b].v.ct.fa.split(".")[1]; num = str.length; a[b].v.v = comResult ? Number(comResult).toFixed(num) : comResult; } else if ( typeof comResult == "string" && (comResult.includes("e+") || comResult.includes("e-")) ) { // å¤æè®¡ç®ç»ææ¯å¦ä¸ºç§å¦è®¡æ°æ³ï¼å¦æä¸ºç§å¦è®¡æ°æ³ï¼åç»è¡¨æ ¼æ°æ®èµå¼ä¸ºç§å¦è®¡æ°æ³ a[b].v.v = comResult; } else { const inspectionItem = currentSample.insProduct.find( (m) => m.id == item.i ).inspectionItem; // å¤æè®¡ç®ç»ææ¯å¦ä¸ºæ°åï¼å¦æä¸ºæ°åï¼åç»è¡¨æ ¼æ°æ®èµå¼ä¸ºæ°å if (inspectionItem == "é线çµé»çÏ20æå¤§å¼") { let val = parseFloat(Number(comResult).toFixed(5)); a[b].v.v = isNaN(val) ? comResult : val; } else { let val = parseFloat(Number(comResult).toFixed(3)); a[b].v.v = isNaN(val) ? comResult : val; } } } catch (error) { // 妿以ä¸å¤æé½ä¸æ¯æï¼åç´æ¥èµå¼ a[b].v.v = comResult; console.log("error---", error); } break; } } } }); // 妿æ¤è®¡ç®ç»ææå±åå æ ¼ï¼åæ¶ä¹æ¯å¦ä¸ä¸ªexcel彿°çåæ°ï¼é£ä¹å°±éè¦éå½è¿è¡è®¡ç® changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`); //æ¹åæç»å¼ currentInsItemId = item.i; } catch (error) { console.log("error---", error); } } } }); if (index === -1 || (inputType === undefined && isSave === "true")) { // èµå¼ä¼ éå°ä¸»çº¿ç¨çæ°æ®ï¼methodï¼saveInsContextè¡¨ç¤ºæ¤æ¶æ¯éè¦ä¿åæ°æ® result = { method: "saveInsContext", value: { tableList, // è¡¨æ ¼æ°æ® param: getParam(), //ä¼ ç»å端çåæ° getDataTypeId: getDataTypeId, currentInsItemId: currentInsItemId, }, }; // åæ¶æ¯ç»ä¸»çº¿ç¨ self.postMessage(JSON.stringify(result)); } // èµå¼å¤çº¿ç¨ä¼ è¾æ°æ® result = { method: "tableList", value: tableList, }; // åéä¸»çº¿ç¨æ°æ® self.postMessage(JSON.stringify(result)); try { // èµå¼å¤çº¿ç¨ä¼ è¾æ°æ® result = { method: "getCurrentInsProduct", value: pId, }; // åéä¸»çº¿ç¨æ°æ® self.postMessage(JSON.stringify(result)); } catch (error) { console.log("error---", error); } } /** * è·åæ£æµå¼ç±»å * * @param id æ£æµå¼ç±»å对åºçid * @returns è¿åæ£æµå¼ç±»å */ function getInspectionValueType(id) { for (var a in currentSample.insProduct) { if (currentSample.insProduct[a].id == id) { return currentSample.insProduct[a].inspectionValueType; } } } /** * å¤çåæ°æå¸¦æä¹æ³å乿¹çå符串 * * @param str å符串类åï¼è¡¨ç¤ºè¦å¤ççåæ°æä¹æ¹è¡¨è¾¾å¼ * @returns è¿åä¸ä¸ªæ°åæåå符串ï¼å¦æå符串为ææçåæ°æä¹æ¹è¡¨è¾¾å¼ï¼åè¿å计ç®ç»æï¼å¦åè¿ååå符串 */ function handleFraction(str) { if (str && typeof str == "string" && str.includes("/")) { // å¤çåæ° return eval(str.split("/")[0] / str.split("/")[1]); } else if ( str && typeof str == "string" && str.includes("*") && str.includes("^") ) { // 计ç®ä¹æ¹ const num1 = str.split("*"); const num2 = num1[1].split("^"); let num3 = new Big(num2[0]); let num4 = new Big(num2[1]); let num5 = Math.pow(num3, num4); // è®¡ç®æ¬¡æ¹ return num1[0] * num5; // æå计ç®ä¹æ³ } else { return str; } } /** * å¤ç带æå¤ä¸ªåæ°ç彿° * * @param res å符串ï¼éè¦è¢«åå²å¹¶å¤ççå符串 * @param str å符串ï¼ä¸resä¸çæ¯ä¸é¡¹è¿è¡æ¯è¾çå符串ï¼å¯è½æ¯åæ°æè å¸¦ææ¯è¾ç¬¦å·çå符串 * @param comp å符串ï¼è¡¨ç¤ºæ¯è¾ç±»åçå符ï¼å¦ '>'ã'<'ã'='ã'â¥'ã'â¤'ã'±'ã'~'ã'-'ï¼ * @returns è¿åå¸å°å¼ï¼å¦æres䏿¯ä¸é¡¹é½æ»¡è¶³ä¸strçæ¯è¾æ¡ä»¶ï¼åè¿åtrueï¼å¦åè¿åfalse */ function handleMoreParam(res, str, comp) { let arr = res.split("/"); let arr0 = arr.every((item) => { switch (comp) { case ">": return item > handleFraction(str); case "<": return item < handleFraction(str); case "=": return item == handleFraction(str); case "â¥": return item >= handleFraction(str); case "â¤": return item <= handleFraction(str); case "±": let k = str.split("±"); return ( item >= eval(handleFraction(k[0]) - handleFraction(k[1])) && item <= eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1]))) ); case "~": let j = str.split("~"); return ( item >= eval(handleFraction(j[0])) && item <= eval(handleFraction(j[1])) ); case "-": let o = str.split("-"); return ( item >= eval(handleFraction(o[0])) && item <= eval(handleFraction(o[1])) ); } }); if (arr0) { return true; } else { return false; } } /** * è·ååæ° * * @returns è¿åå¤çåçåæ°å¯¹è±¡ */ function getParam() { tableList[0].arr.forEach((a) => { a.forEach((b) => { // åå§åä¼ éå°å端çåæ° if (param[b.i]) { param[b.i].insValue = []; param[b.i].comValue = []; param[b.i].equipValue = []; param[b.i].equipName = []; param[b.i].resValue = null; param[b.i].insResult = null; } }); }); tableList[0].arr.forEach((a) => { a.forEach((b) => { // æ ¹æ®è¡¨æ ¼æ°æ®ï¼èµå¼ä¼ éå°å端çåæ° if ( b.v.ps != undefined && typeof b.v.ps.value == "string" && b.v.ps.value.includes("æ£éªå¼") ) { // èµå¼æ£éªå¼ b.i && b.v.v && param[b.i].insValue.push(b); } if (b.v.ps != undefined && b.v.ps.value === "计ç®å¼") { // èµå¼è®¡ç®å¼ b.i && b.v.v && b.valueList && b.valueList.length > 0 && param[b.i].comValue.push(b); } if (b.v.ps != undefined && b.v.ps.value === "设å¤ç¼ç ") { // èµå¼è®¾å¤ç¼ç b.i && b.v && param[b.i].equipValue.push(b); } if (b.v.ps != undefined && b.v.ps.value === "设å¤åç§°") { // èµå¼è®¾å¤åç§° b.i && b.v && param[b.i].equipName.push(b); } if (b.v.ps != undefined && b.v.ps.value === "æç»å¼") { // èµå¼æç»å¼ b.i && b.v && b.valueList && b.valueList.length > 0 && (param[b.i].resValue = b); } if (b.v.ps != undefined && b.v.ps.value === "ç»è®º") { if (b.i && (b.v.v || b.v.v === 0 || b.v.v === "0")) { if (b.v.v != "åæ ¼" && b.v.v != "ä¸åæ ¼") { // èµå¼ç»è®º param[b.i].insResult = b; } } } }); }); return param; } /** * 计ç®å¤ä¸ªæ°å¼çå * * @param val æ°å¼ååæ°ï¼å¯åé¿åæ°å表 * @returns è¿åææåæ°çåï¼å¦æåæ°å表为空æåæ°ç±»åéæ°å¼åï¼åè¿ånull */ function SUM(...val) { try { let num = null; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && val.length > 0 ) { val.forEach((item) => { num += item; }); } return num; } catch (error) { console.log("error---", error); } } /** * 计ç®ä¼ å ¥åæ°ä¸çæå¤§å¼ * * @param ...val å¯ååæ°å表ï¼ç¨äºè®¡ç®æå¤§å¼çæ°å¼æå¯è½¬æ¢ä¸ºæ°å¼çç±»å * @returns è¿åæå¤§å¼ï¼å¦æåæ°å表为空æä¸ºnull/undefined/''ï¼åè¿ånull */ function MAX(...val) { try { let max = null; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && 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) { console.log("error---", error); } } /** * IF夿 * * * */ function IF(...val) { try { let ifNUm = null; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && val.length > 0 ) { if (val[0] === "" || val[0] == 0 || val[0] === " ") { ifNUm = val[1]; } else { ifNUm = val[0]; } } return ifNUm; } catch (error) { console.log("IFerror---", error); } } /** * 计ç®ä¼ å ¥åæ°ä¸çæå°å¼ * * @param val å¯ååæ°ï¼ç¨äºè®¡ç®æå°å¼çæ°å¼æ°ç» * @returns è¿åä¼ å ¥åæ°ä¸çæå°å¼ï¼å¦æä¼ å ¥åæ°ä¸ºç©ºæææå¼å为nullæç©ºå符串ï¼åè¿ånull */ function MIN(...val) { try { let min = null; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && val.length > 0 ) { val = val.filter((item) => item != null && item !== ""); if (val.length > 0) { min = Math.min(...val); } } return min; } catch (error) { console.log("error---", error); } } /** * 计ç®ç»å®æ°å¼çå¹³åå¼ * * @param val æ°å¼å表ï¼å¯å å«ä»»æä¸ªåæ° * @returns è¿åå¹³åå¼ï¼å¦ææ°å¼å表为空æå å«éæ°å¼é¡¹ï¼åè¿ånull */ function AVERAGE(...val) { try { let num = null; let arr = []; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && val.length > 0 ) { arr = val.filter( (item) => item !== null && item !== "" && item != undefined ); arr.forEach((item) => { num += item; }); if (arr.length > 0) { return num / arr.length; } else { return null; } } else { return null; } } catch (error) { console.log("error---", error); } } /** * åæ´æ° * * @param val ä»»ææ°å¼ * @returns è¿å该æ°å¼çæ´æ° */ function INT(val) { try { return Math.round(val); } catch (error) { console.log("error---", error); } } /** * 计ç®ä¸ä¸ªæ°çç»å¯¹å¼ * * @param val ä»»ææ°å¼ * @returns è¿å该æ°å¼çç»å¯¹å¼ */ function ABS(val) { try { return Math.abs(val); } catch (error) { console.log("error---", error); } } /** * 计ç®ä¸ç»æ°åçä¸ä½æ° * * @param val ä»»æä¸ªåæ°ï¼éè¦è®¡ç®ä¸ä½æ°çæ°å * @returns 妿忰䏿ææçæ°åï¼åè¿å计ç®åºçä¸ä½æ°ï¼å¦åè¿ånull */ function MEDIAN(...val) { 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; } } catch (error) { console.log("error---", error); } } /** * 计ç®å¹ * * @param str å符串形å¼çå¹è¡¨è¾¾å¼ï¼ä¾å¦"2^3" * @returns è¿å计ç®åçå¹å¼ï¼å¦æè¡¨è¾¾å¼æ æåè¿ånull */ function CalculatePower(str) { try { if (str && str.includes("^")) { let arr = str.split("^"); if (arr && arr.length > 1) { return Math.pow(arr[0], arr[1]); } else { return null; } } } catch (error) { console.log("error---", error); } } /** * 转æ¢Ï * * * */ function PI() { try { return 3.1415926; } catch (error) { console.log("error---", error); } } /** * 计ç®LOG * * * */ function LOG(...val) { try { let LOGNUm = null; if ( val != null && val != undefined && val != "undefined" && val != "NaN" && val.length > 0 ) { val = val.filter((item) => item != null && item !== ""); if (val.length > 0) { LOGNUm = Math.log(val[0]); } } // console.log(LOGNUm); return LOGNUm; } catch (error) { console.log("error---", error); } } /** * æ ¹æ®åæ è·ååå * @param {Object} cellId */ function getColumnNameFromId(cellId) { try { if (!Array.isArray(cellId)) { cellId = cellId.split("-"); } var i = cellId[0]; var letter = ""; if (i > 701) { letter += String.fromCharCode(64 + parseInt(i / 676)); letter += String.fromCharCode(64 + parseInt((i % 676) / 26)); } else if (i > 25) { letter += String.fromCharCode(64 + parseInt(i / 26)); } letter += String.fromCharCode(65 + (i % 26)); return letter + (parseInt(cellId[1]) + 1); } catch (e) { console.log("error", e); } } /** * æ ¹æ®ååè·ååæ * @param {Object} id * @param {Object} arr */ function getIdFromColumnName(id, arr) { try { // Get the letters var t = /^[a-zA-Z]+/.exec(id); if (t) { // Base 26 calculation var code = 0; for (var i = 0; i < t[0].length; i++) { code += parseInt(t[0].charCodeAt(i) - 64) * Math.pow(26, t[0].length - 1 - i); } code--; // Make sure jexcel starts on zero if (code < 0) { code = 0; } // Number var number = parseInt(/[0-9]+$/.exec(id)); if (number > 0) { number--; } if (arr == true) { id = [code, number]; } else { // id = code + '-' + number; id = { c: code, r: number, }; } } return id; } catch (e) { console.log("error", e); } } /** * æ´æ¹åæ° * * @param f åæ°å表 * @returns è¿åä¸ä¸ªå å«åæ ä¿¡æ¯çæ°ç» */ function changeParameter(f) { try { let arr = getABCList(f); let arr2 = []; arr.forEach((item) => { // 夿æ¯å¦ä¸ºèå´ï¼åå¦MAX(A1:B2) 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)); } }); return arr2; } catch (error) { console.log("error", error); } } /** * è·åå å« ABC å符çå表 * * @param f å符串ï¼å å«éè¦è§£æçå ¬å¼æè¡¨è¾¾å¼ * @returns å å« ABC åç¬¦çæ°ç»å表 */ function getABCList(f) { try { let regex = /[=\+\-\*\%\(\)\/\^\s]/g; // ä¸é¢è®¡ç®å½æ°æ°å¢åï¼è¿éä¹è¦åæ¥å¢å let fouList = [ "SUM", "MAX", "MIN", "AVERAGE", "ABS", "PI", "INT", "IF", "LOG", ]; // æ¿æ¢ç¹æ®å符 f = f .replace(regex, ",") .replace(new RegExp('"&', "g"), "") .replace(new RegExp('&"', "g"), ""); fouList.forEach((item) => { f = f.replace(new RegExp(item, "g"), ","); }); let arr = f.split(",").filter((item) => { return ( item && /[a-zA-Z]/.test(item) && item != "undefined" && item != "null" ); }); return arr; } catch (error) { console.log("error", error); } } /** * è·åææåå æ ¼ * * @param f è¡¨æ ¼æ°æ®æç¸å ³åæ° * @returns è¿åä¸ä¸ªå¯¹è±¡ï¼å ¶é®ä¸ºåå æ ¼çå¯ä¸æ è¯ç¬¦ï¼ç±ååè¡IDæ¼æ¥èæï¼ï¼å¼ä¸ºnull */ function getAllCell(f) { try { let arr = changeParameter(f); let arr0 = {}; arr.forEach((item) => { arr0[getColumnNameFromId(`${item.c}` + "-" + `${item.r}`)] = null; }); return arr0; } catch (error) { console.log("error", error); } } /** * 计ç®å½æ° * * @param f å符串类åï¼è¡¨ç¤ºå¾ 计ç®çå ¬å¼ * @param comValue 对象类åï¼è¡¨ç¤ºè¦æ¿æ¢çåå æ ¼å¼ï¼é®ä¸ºåå æ ¼åç§°ï¼å¼ä¸ºæ¿æ¢åçå¼ * @returns è¿å计ç®åçç»æï¼å¦æè®¡ç®å¤±è´¥åè¿å0 */ function compute(f, comValue, isPoint) { try { let str = f; // è·ååå æ ¼å¯¹åºå¼ let arr = getAllCell(f); for (var a in comValue) { if (typeof comValue[a] == "string" && comValue[a].includes(">")) { comValue[a] = comValue[a].replace(">", ""); } if (typeof comValue[a] == "string" && comValue[a].includes("â¤")) { comValue[a] = comValue[a].replace("â¤", ""); } if (typeof comValue[a] == "string" && comValue[a].includes("â¥")) { comValue[a] = comValue[a].replace("â¥", ""); } if (typeof comValue[a] == "string" && comValue[a].includes("<")) { comValue[a] = comValue[a].replace("<", ""); } if (typeof comValue[a] == "string" && comValue[a].includes("ï¼")) { comValue[a] = comValue[a].replace("ï¼", ""); } if (typeof comValue[a] == "string" && comValue[a].includes("ï¼")) { comValue[a] = comValue[a].replace("ï¼", ""); } if ( comValue[a] !== "undefined" && comValue[a] !== "null" && comValue[a] !== undefined ) { if (typeof comValue[a] == "string" && comValue[a].includes("^")) { // 计ç®å¹æ¬¡ arr[a] = CalculatePower(comValue[a]); } else { 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, }); } } let arr2 = []; arr1.forEach((m) => { arr2.push(getColumnNameFromId(`${m.c}` + "-" + `${m.r}`)); }); obj[item.split(":").join("-")] = arr2.join(","); } else { obj[item] = item; } }); str = str.replace(new RegExp(":", "g"), "-"); // æ¿æ¢åæ° for (var a in obj) { str = str.replace(new RegExp(a, "g"), obj[a]); } // è®¡ç® for (var a in arr) { str = str.replace(new RegExp(a, "g"), arr[a]); } if (str.includes(",,")) { str = str.replace(new RegExp(",,", "g"), ","); } if (str.includes(",,")) { str = str.replace(new RegExp(",,", "g"), ","); } if (str.includes(",,")) { str = str.replace(new RegExp(",,", "g"), ","); } if (str.includes(",,")) { str = str.replace(new RegExp(",,", "g"), ","); } if (str.includes(",,")) { str = str.replace(new RegExp(",,", "g"), ","); } if (str.includes('&"/"&')) { // 计ç®å¸¦ææ ç return str .replace(new RegExp('&"/"&', "g"), "/") .replace(new RegExp("//", "g"), ""); } else if (isPoint) { // 计ç®å¸¦å°æ°ç¹ç return str.replace("ABS", "").replace(/\(|\)/g, ""); } else { if (str.includes("IF")) { str = str.replace("IF", "").replace(/\(|\)/g, ""); const str1 = str.split(","); if (str1[0] === " " || str1[0] === "") { str1[0] = 0; } if (str1[2] === " " || str1[2] === "") { str1[2] = 0; } const str2 = str1.join(","); str = "IF(" + str2 + ")"; } // console.log('str---', str) if (str.includes("æè£") || str.includes("èå")) { const result = str.replace(/[^\u4e00-\u9fa5]/g, ""); if (result.includes("æè£") && !result.includes("èå")) { return "æè£"; } else if (!result.includes("æè£") && result.includes("èå")) { return "èå"; } else if (result.includes("æè£") && result.includes("èå")) { return "æè£èå"; } } // 计ç®å¸¸è§ç return eval(str); } } catch (error) { console.log("error", error); } } /* * big.js v5.2.2 * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic. * Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com> * https://github.com/MikeMcl/big.js/LICENCE */ (function (GLOBAL) { "use strict"; var Big, /************************************** EDITABLE DEFAULTS *****************************************/ // The default values below must be integers within the stated ranges. /* * The maximum number of decimal places (DP) of the results of operations involving division: * div and sqrt, and pow with negative exponents. */ DP = 20, // 0 to MAX_DP /* * The rounding mode (RM) used when rounding to the above decimal places. * * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN) * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP) * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN) * 3 Away from zero. (ROUND_UP) */ RM = 1, // 0, 1, 2 or 3 // The maximum value of DP and Big.DP. MAX_DP = 1e6, // 0 to 1000000 // The maximum magnitude of the exponent argument to the pow method. MAX_POWER = 1e6, // 1 to 1000000 /* * The negative exponent (NE) at and beneath which toString returns exponential notation. * (JavaScript numbers: -7) * -1000000 is the minimum recommended exponent value of a Big. */ NE = -7, // 0 to -1000000 /* * The positive exponent (PE) at and above which toString returns exponential notation. * (JavaScript numbers: 21) * 1000000 is the maximum recommended exponent value of a Big. * (This limit is not enforced or checked.) */ PE = 21, // 0 to 1000000 /**************************************************************************************************/ // Error messages. NAME = "[big.js] ", INVALID = NAME + "Invalid ", INVALID_DP = INVALID + "decimal places", INVALID_RM = INVALID + "rounding mode", DIV_BY_ZERO = NAME + "Division by zero", // The shared prototype object. P = {}, UNDEFINED = void 0, NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; /* * Create and return a Big constructor. * */ function _Big_() { /* * The Big constructor and exported function. * Create and return a new instance of a Big number object. * * n {number|string|Big} A numeric value. */ function Big(n) { var x = this; // Enable constructor usage without new. if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); // Duplicate. if (n instanceof Big) { x.s = n.s; x.e = n.e; x.c = n.c.slice(); } else { parse(x, n); } /* * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which * points to Object. */ x.constructor = Big; } Big.prototype = P; Big.DP = DP; Big.RM = RM; Big.NE = NE; Big.PE = PE; Big.version = "5.2.2"; return Big; } /* * Parse the number or string value passed to a Big constructor. * * x {Big} A Big number instance. * n {number|string} A numeric value. */ function parse(x, n) { var e, i, nl; // Minus zero? if (n === 0 && 1 / n < 0) n = "-0"; else if (!NUMERIC.test((n += ""))) throw Error(INVALID + "number"); // Determine sign. x.s = n.charAt(0) == "-" ? ((n = n.slice(1)), -1) : 1; // Decimal point? if ((e = n.indexOf(".")) > -1) n = n.replace(".", ""); // Exponential form? if ((i = n.search(/e/i)) > 0) { // Determine exponent. if (e < 0) e = i; e += +n.slice(i + 1); n = n.substring(0, i); } else if (e < 0) { // Integer. e = n.length; } nl = n.length; // Determine leading zeros. for (i = 0; i < nl && n.charAt(i) == "0"; ) ++i; if (i == nl) { // Zero. x.c = [(x.e = 0)]; } else { // Determine trailing zeros. for (; nl > 0 && n.charAt(--nl) == "0"; ); x.e = e - i - 1; x.c = []; // Convert string to array of digits without leading/trailing zeros. for (e = 0; i <= nl; ) x.c[e++] = +n.charAt(i++); } return x; } /* * Round Big x to a maximum of dp decimal places using rounding mode rm. * Called by stringify, P.div, P.round and P.sqrt. * * x {Big} The Big to round. * dp {number} Integer, 0 to MAX_DP inclusive. * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP) * [more] {boolean} Whether the result of division was truncated. */ function round(x, dp, rm, more) { var xc = x.c, i = x.e + dp + 1; if (i < xc.length) { if (rm === 1) { // xc[i] is the digit after the digit that may be rounded up. more = xc[i] >= 5; } else if (rm === 2) { more = xc[i] > 5 || (xc[i] == 5 && (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1)); } else if (rm === 3) { more = more || !!xc[0]; } else { more = false; if (rm !== 0) throw Error(INVALID_RM); } if (i < 1) { xc.length = 1; if (more) { // 1, 0.1, 0.01, 0.001, 0.0001 etc. x.e = -dp; xc[0] = 1; } else { // Zero. xc[0] = x.e = 0; } } else { // Remove any digits after the required decimal places. xc.length = i--; // Round up? if (more) { // Rounding up may mean the previous digit has to be rounded up. for (; ++xc[i] > 9; ) { xc[i] = 0; if (!i--) { ++x.e; xc.unshift(1); } } } // Remove trailing zeros. for (i = xc.length; !xc[--i]; ) xc.pop(); } } else if (rm < 0 || rm > 3 || rm !== ~~rm) { throw Error(INVALID_RM); } return x; } /* * Return a string representing the value of Big x in normal or exponential notation. * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf. * * x {Big} * id? {number} Caller id. * 1 toExponential * 2 toFixed * 3 toPrecision * 4 valueOf * n? {number|undefined} Caller's argument. * k? {number|undefined} */ function stringify(x, id, n, k) { var e, s, Big = x.constructor, z = !x.c[0]; if (n !== UNDEFINED) { if (n !== ~~n || n < (id == 3) || n > MAX_DP) { throw Error(id == 3 ? INVALID + "precision" : INVALID_DP); } x = new Big(x); // The index of the digit that may be rounded up. n = k - x.e; // Round? if (x.c.length > ++k) round(x, n, Big.RM); // toFixed: recalculate k as x.e may have changed if value rounded up. if (id == 2) k = x.e + n + 1; // Append zeros? for (; x.c.length < k; ) x.c.push(0); } e = x.e; s = x.c.join(""); n = s.length; // Exponential notation? if ( id != 2 && (id == 1 || (id == 3 && k <= e) || e <= Big.NE || e >= Big.PE) ) { s = s.charAt(0) + (n > 1 ? "." + s.slice(1) : "") + (e < 0 ? "e" : "e+") + e; // Normal notation. } else if (e < 0) { for (; ++e; ) s = "0" + s; s = "0." + s; } else if (e > 0) { if (++e > n) for (e -= n; e--; ) s += "0"; else if (e < n) s = s.slice(0, e) + "." + s.slice(e); } else if (n > 1) { s = s.charAt(0) + "." + s.slice(1); } return x.s < 0 && (!z || id == 4) ? "-" + s : s; } // Prototype/instance methods /* * Return a new Big whose value is the absolute value of this Big. */ P.abs = function () { var x = new this.constructor(this); x.s = 1; return x; }; /* * Return 1 if the value of this Big is greater than the value of Big y, * -1 if the value of this Big is less than the value of Big y, or * 0 if they have the same value. */ P.cmp = function (y) { var isneg, x = this, xc = x.c, yc = (y = new x.constructor(y)).c, i = x.s, j = y.s, k = x.e, l = y.e; // Either zero? if (!xc[0] || !yc[0]) return !xc[0] ? (!yc[0] ? 0 : -j) : i; // Signs differ? if (i != j) return i; isneg = i < 0; // Compare exponents. if (k != l) return (k > l) ^ isneg ? 1 : -1; j = (k = xc.length) < (l = yc.length) ? k : l; // Compare digit by digit. for (i = -1; ++i < j; ) { if (xc[i] != yc[i]) return (xc[i] > yc[i]) ^ isneg ? 1 : -1; } // Compare lengths. return k == l ? 0 : (k > l) ^ isneg ? 1 : -1; }; /* * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded, * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. */ P.div = function (y) { var x = this, Big = x.constructor, a = x.c, // dividend b = (y = new Big(y)).c, // divisor k = x.s == y.s ? 1 : -1, dp = Big.DP; if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); // Divisor is zero? if (!b[0]) throw Error(DIV_BY_ZERO); // Dividend is 0? Return +-0. if (!a[0]) return new Big(k * 0); var bl, bt, n, cmp, ri, bz = b.slice(), ai = (bl = b.length), al = a.length, r = a.slice(0, bl), // remainder rl = r.length, q = y, // quotient qc = (q.c = []), qi = 0, d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result q.s = k; k = d < 0 ? 0 : d; // Create version of divisor with leading zero. bz.unshift(0); // Add zeros to make remainder as long as divisor. for (; rl++ < bl; ) r.push(0); do { // n is how many times the divisor goes into current remainder. for (n = 0; n < 10; n++) { // Compare divisor and remainder. if (bl != (rl = r.length)) { cmp = bl > rl ? 1 : -1; } else { for (ri = -1, cmp = 0; ++ri < bl; ) { if (b[ri] != r[ri]) { cmp = b[ri] > r[ri] ? 1 : -1; break; } } } // If divisor < remainder, subtract divisor from remainder. if (cmp < 0) { // Remainder can't be more than 1 digit longer than divisor. // Equalise lengths using divisor with extra leading zero? for (bt = rl == bl ? b : bz; rl; ) { if (r[--rl] < bt[rl]) { ri = rl; for (; ri && !r[--ri]; ) r[ri] = 9; --r[ri]; r[rl] += 10; } r[rl] -= bt[rl]; } for (; !r[0]; ) r.shift(); } else { break; } } // Add the digit n to the result array. qc[qi++] = cmp ? n : ++n; // Update the remainder. if (r[0] && cmp) r[rl] = a[ai] || 0; else r = [a[ai]]; } while ((ai++ < al || r[0] !== UNDEFINED) && k--); // Leading zero? Do not remove if result is simply zero (qi == 1). if (!qc[0] && qi != 1) { // There can't be more than one zero. qc.shift(); q.e--; } // Round? if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED); return q; }; /* * Return true if the value of this Big is equal to the value of Big y, otherwise return false. */ P.eq = function (y) { return !this.cmp(y); }; /* * Return true if the value of this Big is greater than the value of Big y, otherwise return * false. */ P.gt = function (y) { return this.cmp(y) > 0; }; /* * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise * return false. */ P.gte = function (y) { return this.cmp(y) > -1; }; /* * Return true if the value of this Big is less than the value of Big y, otherwise return false. */ P.lt = function (y) { return this.cmp(y) < 0; }; /* * Return true if the value of this Big is less than or equal to the value of Big y, otherwise * return false. */ P.lte = function (y) { return this.cmp(y) < 1; }; /* * Return a new Big whose value is the value of this Big minus the value of Big y. */ P.minus = P.sub = function (y) { var i, j, t, xlty, x = this, Big = x.constructor, a = x.s, b = (y = new Big(y)).s; // Signs differ? if (a != b) { y.s = -b; return x.plus(y); } var xc = x.c.slice(), xe = x.e, yc = y.c, ye = y.e; // Either zero? if (!xc[0] || !yc[0]) { // y is non-zero? x is non-zero? Or both are zero. return yc[0] ? ((y.s = -b), y) : new Big(xc[0] ? x : 0); } // Determine which is the bigger number. Prepend zeros to equalise exponents. if ((a = xe - ye)) { if ((xlty = a < 0)) { a = -a; t = xc; } else { ye = xe; t = yc; } t.reverse(); for (b = a; b--; ) t.push(0); t.reverse(); } else { // Exponents equal. Check digit by digit. j = ((xlty = xc.length < yc.length) ? xc : yc).length; for (a = b = 0; b < j; b++) { if (xc[b] != yc[b]) { xlty = xc[b] < yc[b]; break; } } } // x < y? Point xc to the array of the bigger number. if (xlty) { t = xc; xc = yc; yc = t; y.s = -y.s; } /* * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only * needs to start at yc.length. */ if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--; ) xc[i++] = 0; // Subtract yc from xc. for (b = i; j > a; ) { if (xc[--j] < yc[j]) { for (i = j; i && !xc[--i]; ) xc[i] = 9; --xc[i]; xc[j] += 10; } xc[j] -= yc[j]; } // Remove trailing zeros. for (; xc[--b] === 0; ) xc.pop(); // Remove leading zeros and adjust exponent accordingly. for (; xc[0] === 0; ) { xc.shift(); --ye; } if (!xc[0]) { // n - n = +0 y.s = 1; // Result must be zero. xc = [(ye = 0)]; } y.c = xc; y.e = ye; return y; }; /* * Return a new Big whose value is the value of this Big modulo the value of Big y. */ P.mod = function (y) { var ygtx, x = this, Big = x.constructor, a = x.s, b = (y = new Big(y)).s; if (!y.c[0]) throw Error(DIV_BY_ZERO); x.s = y.s = 1; ygtx = y.cmp(x) == 1; x.s = a; y.s = b; if (ygtx) return new Big(x); a = Big.DP; b = Big.RM; Big.DP = Big.RM = 0; x = x.div(y); Big.DP = a; Big.RM = b; return this.minus(x.times(y)); }; /* * Return a new Big whose value is the value of this Big plus the value of Big y. */ P.plus = P.add = function (y) { var t, x = this, Big = x.constructor, a = x.s, b = (y = new Big(y)).s; // Signs differ? if (a != b) { y.s = -b; return x.minus(y); } var xe = x.e, xc = x.c, ye = y.e, yc = y.c; // Either zero? y is non-zero? x is non-zero? Or both are zero. if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0); xc = xc.slice(); // Prepend zeros to equalise exponents. // Note: reverse faster than unshifts. if ((a = xe - ye)) { if (a > 0) { ye = xe; t = yc; } else { a = -a; t = xc; } t.reverse(); for (; a--; ) t.push(0); t.reverse(); } // Point xc to the longer array. if (xc.length - yc.length < 0) { t = yc; yc = xc; xc = t; } a = yc.length; // Only start adding at yc.length - 1 as the further digits of xc can be left as they are. for (b = 0; a; xc[a] %= 10) b = ((xc[--a] = xc[a] + yc[a] + b) / 10) | 0; // No need to check for zero, as +x + +y != 0 && -x + -y != 0 if (b) { xc.unshift(b); ++ye; } // Remove trailing zeros. for (a = xc.length; xc[--a] === 0; ) xc.pop(); y.c = xc; y.e = ye; return y; }; /* * Return a Big whose value is the value of this Big raised to the power n. * If n is negative, round to a maximum of Big.DP decimal places using rounding * mode Big.RM. * * n {number} Integer, -MAX_POWER to MAX_POWER inclusive. */ P.pow = function (n) { var x = this, one = new x.constructor(1), y = one, isneg = n < 0; if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + "exponent"); if (isneg) n = -n; for (;;) { if (n & 1) y = y.times(x); n >>= 1; if (!n) break; x = x.times(x); } return isneg ? one.div(y) : y; }; /* * Return a new Big whose value is the value of this Big rounded using rounding mode rm * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a * multiple of 10**-dp. * If dp is not specified, round to 0 decimal places. * If rm is not specified, use Big.RM. * * dp? {number} Integer, -MAX_DP to MAX_DP inclusive. * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP) */ P.round = function (dp, rm) { var Big = this.constructor; if (dp === UNDEFINED) dp = 0; else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP); return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm); }; /* * Return a new Big whose value is the square root of the value of this Big, rounded, if * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. */ P.sqrt = function () { var r, c, t, x = this, Big = x.constructor, s = x.s, e = x.e, half = new Big(0.5); // Zero? if (!x.c[0]) return new Big(x); // Negative? if (s < 0) throw Error(NAME + "No square root"); // Estimate. s = Math.sqrt(x + ""); // Math.sqrt underflow/overflow? // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent. if (s === 0 || s === 1 / 0) { c = x.c.join(""); if (!((c.length + e) & 1)) c += "0"; s = Math.sqrt(c); e = (((e + 1) / 2) | 0) - (e < 0 || e & 1); r = new Big( (s == 1 / 0 ? "1e" : (s = s.toExponential()).slice(0, s.indexOf("e") + 1)) + e ); } else { r = new Big(s); } e = r.e + (Big.DP += 4); // Newton-Raphson iteration. do { t = r; r = half.times(t.plus(x.div(t))); } while (t.c.slice(0, e).join("") !== r.c.slice(0, e).join("")); return round(r, (Big.DP -= 4), Big.RM); }; /* * Return a new Big whose value is the value of this Big times the value of Big y. */ P.times = P.mul = function (y) { var c, x = this, Big = x.constructor, xc = x.c, yc = (y = new Big(y)).c, a = xc.length, b = yc.length, i = x.e, j = y.e; // Determine sign of result. y.s = x.s == y.s ? 1 : -1; // Return signed 0 if either 0. if (!xc[0] || !yc[0]) return new Big(y.s * 0); // Initialise exponent of result as x.e + y.e. y.e = i + j; // If array xc has fewer digits than yc, swap xc and yc, and lengths. if (a < b) { c = xc; xc = yc; yc = c; j = a; a = b; b = j; } // Initialise coefficient array of result with zeros. for (c = new Array((j = a + b)); j--; ) c[j] = 0; // Multiply. // i is initially xc.length. for (i = b; i--; ) { b = 0; // a is yc.length. for (j = a + i; j > i; ) { // Current sum of products at this digit position, plus carry. b = c[j] + yc[i] * xc[j - i - 1] + b; c[j--] = b % 10; // carry b = (b / 10) | 0; } c[j] = (c[j] + b) % 10; } // Increment result exponent if there is a final carry, otherwise remove leading zero. if (b) ++y.e; else c.shift(); // Remove trailing zeros. for (i = c.length; !c[--i]; ) c.pop(); y.c = c; return y; }; /* * Return a string representing the value of this Big in exponential notation to dp fixed decimal * places and rounded using Big.RM. * * dp? {number} Integer, 0 to MAX_DP inclusive. */ P.toExponential = function (dp) { return stringify(this, 1, dp, dp); }; /* * Return a string representing the value of this Big in normal notation to dp fixed decimal * places and rounded using Big.RM. * * dp? {number} Integer, 0 to MAX_DP inclusive. * * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. */ P.toFixed = function (dp) { return stringify(this, 2, dp, this.e + dp); }; /* * Return a string representing the value of this Big rounded to sd significant digits using * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent * the integer part of the value in normal notation. * * sd {number} Integer, 1 to MAX_DP inclusive. */ P.toPrecision = function (sd) { return stringify(this, 3, sd, sd - 1); }; /* * Return a string representing the value of this Big. * Return exponential notation if this Big has a positive exponent equal to or greater than * Big.PE, or a negative exponent equal to or less than Big.NE. * Omit the sign for negative zero. */ P.toString = function () { return stringify(this); }; /* * Return a string representing the value of this Big. * Return exponential notation if this Big has a positive exponent equal to or greater than * Big.PE, or a negative exponent equal to or less than Big.NE. * Include the sign for negative zero. */ P.valueOf = P.toJSON = function () { return stringify(this, 4); }; // Export Big = _Big_(); Big["default"] = Big.Big = Big; //AMD. if (typeof define === "function" && define.amd) { define(function () { return Big; }); // Node and other CommonJS-like environments that support module.exports. } else if (typeof module !== "undefined" && module.exports) { module.exports = Big; //Browser. } else { GLOBAL.Big = Big; } })(this); src/api/business/inspectionTask.js
@@ -269,3 +269,12 @@ params: query, }); } // æ£éªå详æ -ä»»å¡åæ¢ export function inspectionOrderDetailsTaskSwitching(query) { return request({ url: "/insOrderPlan/inspectionOrderDetailsTaskSwitching", method: "get", params: query, }); } src/components/Table/lims-table.vue
@@ -1,82 +1,29 @@ <template> <div> <!-- è¡¨æ ¼ --> <el-table ref="multipleTable" v-loading="tableLoading" :border="border" :data="tableData" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" :height="height" :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="rowStyle" :row-key="rowKey" :span-method="spanMethod" stripe style="width: 100%" tooltip-effect="dark" @row-click="rowClick" @current-change="currentChange" @selection-change="handleSelectionChange" > <el-table-column align="center" type="selection" width="55" v-if="isSelection" /> <el-table-column align="center" label="åºå·" type="index" width="60" :index="indexMethod" /> <el-table ref="multipleTable" v-loading="tableLoading" :border="border" :data="tableData" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" :height="height" :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="rowStyle" :row-key="rowKey" :span-method="spanMethod" stripe style="width: 100%" tooltip-effect="dark" @row-click="rowClick" @current-change="currentChange" @selection-change="handleSelectionChange"> <el-table-column align="center" type="selection" width="55" v-if="isSelection" /> <el-table-column align="center" label="åºå·" type="index" width="60" :index="indexMethod" /> <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey" :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue" :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop" :show-overflow-tooltip="item.dataType === 'action' ? false : true" :sortable="item.sortable ? true : false" :type="item.type" :width=" item.dataType === 'action' ? getWidth(item.operation) : item.width " align="center" > <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey" :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue" :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop" :show-overflow-tooltip="item.dataType === 'action' ? false : true" :sortable="item.sortable ? true : false" :type="item.type" :width="item.dataType === 'action' ? getWidth(item.operation) : item.width " align="center"> <!-- <div class="123" v-if="item.type == ''"> --> <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope" > <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" /> <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope"> <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" /> </template> <template slot-scope="scope"> <!-- ææ§½ --> <div v-if="item.dataType == 'slot'"> <slot v-if="item.slot" :index="scope.$index" :name="item.slot" :row="scope.row" /> <slot v-if="item.slot" :index="scope.$index" :name="item.slot" :row="scope.row" /> </div> <!-- è¿åº¦æ¡ --> <div v-else-if="item.dataType == 'progress'"> @@ -84,107 +31,61 @@ </div> <!-- å¾ç --> <div v-else-if="item.dataType == 'image'"> <img :src="javaApi + '/img/' + item.prop" alt="" style="width: 40px; height: 40px; margin-top: 10px" /> <img :src="javaApi + '/img/' + item.prop" alt="" style="width: 40px; height: 40px; margin-top: 10px" /> </div> <!-- tag --> <div v-else-if="item.dataType == 'tag'"> <el-tag v-if=" typeof dataTypeFn(scope.row[item.prop], item.formatData) == 'string' " :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(scope.row[item.prop], item.formatType)" >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag > <el-tag v-for="(tag, index) in dataTypeFn( scope.row[item.prop], item.formatData )" v-else-if=" typeof dataTypeFn(scope.row[item.prop], item.formatData) == 'object' " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(tag, item.formatType)" >{{ <el-tag v-if=" typeof dataTypeFn(scope.row[item.prop], item.formatData) == 'string' " :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag> <el-tag v-for="(tag, index) in dataTypeFn( scope.row[item.prop], item.formatData )" v-else-if=" typeof dataTypeFn(scope.row[item.prop], item.formatData) == 'object' " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(tag, item.formatType)">{{ item.tagGroup ? tag[item.tagGroup.label] ? tag[item.tagGroup.label] : tag : tag }}</el-tag > <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(scope.row[item.prop], item.formatType)" >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag > }}</el-tag> <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)" :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag> </div> <!-- æé® --> <div v-else-if="item.dataType == 'action'"> <template v-for="(o, key) in item.operation"> <el-button v-if="o.type != 'upload'" size="mini" v-show="o.showHide ? o.showHide(scope.row) : true" :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain" :style="{ color: o.name === 'å é¤' ? '#f56c6c' : o.color }" :type="o.type | typeFn(scope.row)" @click="o.clickFun(scope.row)" :key="key" > <el-button v-if="o.type != 'upload'" size="mini" v-show="o.showHide ? o.showHide(scope.row) : true" :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain" :style="{ color: o.name === 'å é¤' ? '#f56c6c' : o.color }" :type="o.type | typeFn(scope.row)" @click="o.clickFun(scope.row)" :key="key"> {{ o.name }} </el-button> <el-upload action="#" size="mini" :on-change=" (file, fileList) => o.clickFun(scope.row, file, fileList) " :multiple="o.multiple ? o.multiple : false" :limit="o.limit ? o.limit : 1" :disabled="o.disabled ? o.disabled(scope.row) : false" :accept=" o.accept ? o.accept : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' " v-if="o.type == 'upload'" style="display: inline-block; width: 50px" v-show="o.showHide ? o.showHide(scope.row) : true" :auto-upload="false" :on-exceed="onExceed" :show-file-list="false" :key="key" > <el-button :size="o.size ? o.size : 'small'" type="text" :disabled="o.disabled ? o.disabled(scope.row) : false" >{{ o.name }}</el-button > <el-upload action="#" size="mini" :on-change="(file, fileList) => o.clickFun(scope.row, file, fileList) " :multiple="o.multiple ? o.multiple : false" :limit="o.limit ? o.limit : 1" :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept ? o.accept : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' " v-if="o.type == 'upload'" style="display: inline-block; width: 50px" v-show="o.showHide ? o.showHide(scope.row) : true" :auto-upload="false" :on-exceed="onExceed" :show-file-list="false" :key="key"> <el-button :size="o.size ? o.size : 'small'" type="text" :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button> </el-upload> </template> </div> <!-- å¯ç¹å»çæå --> <div v-else-if="item.dataType == 'link'" class="cell link" style="width: 100%" @click="goLink(scope.row, item.linkMethod)" > <div v-else-if="item.dataType == 'link'" class="cell link" style="width: 100%" @click="goLink(scope.row, item.linkMethod)"> <span v-if="!item.formatData">{{ scope.row[item.prop] }}</span> </div> <!-- é»è®¤çº¯å±ç¤ºæ°æ® --> @@ -197,14 +98,8 @@ </template> </el-table-column> </el-table> <pagination v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination" /> <pagination v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination" /> </div> </template> @@ -294,19 +189,19 @@ handleSelectionChange: { type: Function, default: () => { return () => {}; return () => { }; }, }, rowClick: { type: Function, default: () => { return () => {}; return () => { }; }, }, currentChange: { type: Function, default: () => { return () => {}; return () => { }; }, }, border: { @@ -331,11 +226,11 @@ }, rowClassName: { type: Function, default: () => {}, default: () => { }, }, rowStyle: { type: Object || Function, default: () => {}, default: () => { }, }, tableData: { type: Array, @@ -506,13 +401,14 @@ </script> <style scoped> .el-table >>> .el-table__empty-text { .el-table>>>.el-table__empty-text { text-align: center; } >>> .cell { >>>.cell { padding: 0 !important; } .cell { white-space: nowrap; overflow: hidden; @@ -520,11 +416,14 @@ padding-right: 4px !important; padding-left: 10px !important; } .link { color: rgb(64, 158, 255); cursor: pointer; } >>> .el-table__body-wrapper::-webkit-scrollbar { height: 14px; /* 设置æ»å¨æ¡å®½åº¦ */ >>>.el-table__body-wrapper::-webkit-scrollbar { height: 14px; /* 设置æ»å¨æ¡å®½åº¦ */ } </style> src/router/index.js
@@ -101,17 +101,21 @@ children: [ { // åææä¸å path: 'customsInspection', component: () => import('@/views/business/materialOrder/customsInspection'), name: 'customsInspection', meta: { title: 'åææä¸å详æ ', activeMenu: '/business/materialOrder' } path: "customsInspection", component: () => import("@/views/business/materialOrder/customsInspection"), name: "customsInspection", meta: { title: "åææä¸å详æ ", activeMenu: "/business/materialOrder", }, }, { // éææä¸å path: 'copperOrder', component: () => import('@/views/business/materialOrder/copperOrder'), name: 'copperOrder', meta: { title: 'éææä¸å', activeMenu: '/business/materialOrder' } path: "copperOrder", component: () => import("@/views/business/materialOrder/copperOrder"), name: "copperOrder", meta: { title: "éææä¸å", activeMenu: "/business/materialOrder" }, }, ], }, src/utils/request.js
@@ -1,114 +1,148 @@ import axios from 'axios' import { Notification, MessageBox, Message, Loading } from 'element-ui' import store from '@/store' import { getToken } from '@/utils/auth' import errorCode from '@/utils/errorCode' import axios from "axios"; import { Notification, MessageBox, Message, Loading } from "element-ui"; import store from "@/store"; import { getToken } from "@/utils/auth"; import errorCode from "@/utils/errorCode"; import { tansParams, blobValidate } from "@/utils/ruoyi"; import cache from '@/plugins/cache' import { saveAs } from 'file-saver' import cache from "@/plugins/cache"; import { saveAs } from "file-saver"; let downloadLoadingInstance; // æ¯å¦æ¾ç¤ºéæ°ç»å½ export let isRelogin = { show: false }; axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8"; // å建axioså®ä¾ const service = axios.create({ // axiosä¸è¯·æ±é ç½®æbaseURLé项ï¼è¡¨ç¤ºè¯·æ±URLå ¬å ±é¨å baseURL: process.env.VUE_APP_BASE_API, // è¶ æ¶ timeout: 10000 }) timeout: 10000 * 60, }); // requestæ¦æªå¨ service.interceptors.request.use(config => { // æ¯å¦éè¦è®¾ç½® token const isToken = (config.headers || {}).isToken === false // æ¯å¦éè¦é²æ¢æ°æ®éå¤æäº¤ const isRepeatSubmit = (config.headers || {}).repeatSubmit === false if (getToken() && !isToken) { config.headers['Authorization'] = 'Bearer ' + getToken() // 让æ¯ä¸ªè¯·æ±æºå¸¦èªå®ä¹token è¯·æ ¹æ®å®é æ åµèªè¡ä¿®æ¹ } // getè¯·æ±æ å°paramsåæ° if (config.method === 'get' && config.params) { let url = config.url + '?' + tansParams(config.params); url = url.slice(0, -1); config.params = {}; config.url = url; } if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) { const requestObj = { url: config.url, data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data, time: new Date().getTime() service.interceptors.request.use( (config) => { // æ¯å¦éè¦è®¾ç½® token const isToken = (config.headers || {}).isToken === false; // æ¯å¦éè¦é²æ¢æ°æ®éå¤æäº¤ const isRepeatSubmit = (config.headers || {}).repeatSubmit === false; if (getToken() && !isToken) { config.headers["Authorization"] = "Bearer " + getToken(); // 让æ¯ä¸ªè¯·æ±æºå¸¦èªå®ä¹token è¯·æ ¹æ®å®é æ åµèªè¡ä¿®æ¹ } const requestSize = Object.keys(JSON.stringify(requestObj)).length; // è¯·æ±æ°æ®å¤§å° const limitSize = 5 * 1024 * 1024; // éå¶åæ¾æ°æ®5M if (requestSize >= limitSize) { console.warn(`[${config.url}]: ` + 'è¯·æ±æ°æ®å¤§å°è¶ åºå 许ç5Méå¶ï¼æ æ³è¿è¡é²éå¤æäº¤éªè¯ã') return config; // getè¯·æ±æ å°paramsåæ° if (config.method === "get" && config.params) { let url = config.url + "?" + tansParams(config.params); url = url.slice(0, -1); config.params = {}; config.url = url; } const sessionObj = cache.session.getJSON('sessionObj') if (sessionObj === undefined || sessionObj === null || sessionObj === '') { cache.session.setJSON('sessionObj', requestObj) } else { const s_url = sessionObj.url; // 请æ±å°å const s_data = sessionObj.data; // è¯·æ±æ°æ® const s_time = sessionObj.time; // è¯·æ±æ¶é´ const interval = 1000; // é´éæ¶é´(ms)ï¼å°äºæ¤æ¶é´è§ä¸ºéå¤æäº¤ if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { const message = 'æ°æ®æ£å¨å¤çï¼è¯·å¿éå¤æäº¤'; console.warn(`[${s_url}]: ` + message) return Promise.reject(new Error(message)) if ( !isRepeatSubmit && (config.method === "post" || config.method === "put") ) { const requestObj = { url: config.url, data: typeof config.data === "object" ? JSON.stringify(config.data) : config.data, time: new Date().getTime(), }; const requestSize = Object.keys(JSON.stringify(requestObj)).length; // è¯·æ±æ°æ®å¤§å° const limitSize = 5 * 1024 * 1024; // éå¶åæ¾æ°æ®5M if (requestSize >= limitSize) { console.warn( `[${config.url}]: ` + "è¯·æ±æ°æ®å¤§å°è¶ åºå 许ç5Méå¶ï¼æ æ³è¿è¡é²éå¤æäº¤éªè¯ã" ); return config; } const sessionObj = cache.session.getJSON("sessionObj"); if ( sessionObj === undefined || sessionObj === null || sessionObj === "" ) { cache.session.setJSON("sessionObj", requestObj); } else { cache.session.setJSON('sessionObj', requestObj) const s_url = sessionObj.url; // 请æ±å°å const s_data = sessionObj.data; // è¯·æ±æ°æ® const s_time = sessionObj.time; // è¯·æ±æ¶é´ const interval = 1000; // é´éæ¶é´(ms)ï¼å°äºæ¤æ¶é´è§ä¸ºéå¤æäº¤ if ( s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url ) { const message = "æ°æ®æ£å¨å¤çï¼è¯·å¿éå¤æäº¤"; console.warn(`[${s_url}]: ` + message); return Promise.reject(new Error(message)); } else { cache.session.setJSON("sessionObj", requestObj); } } } return config; }, (error) => { console.log(error); Promise.reject(error); } return config }, error => { console.log(error) Promise.reject(error) }) ); // ååºæ¦æªå¨ service.interceptors.response.use(res => { service.interceptors.response.use( (res) => { // æªè®¾ç½®ç¶æç åé»è®¤æåç¶æ const code = res.data.code || 200; // è·åéè¯¯ä¿¡æ¯ const msg = errorCode[code] || res.data.msg || errorCode['default'] const msg = errorCode[code] || res.data.msg || errorCode["default"]; // äºè¿å¶æ°æ®åç´æ¥è¿å if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') { return res.data if ( res.request.responseType === "blob" || res.request.responseType === "arraybuffer" ) { return res.data; } if (code === 401) { if (!isRelogin.show) { isRelogin.show = true; MessageBox.confirm('ç»å½ç¶æå·²è¿æï¼æ¨å¯ä»¥ç»§ç»çå¨è¯¥é¡µé¢ï¼æè éæ°ç»å½', 'ç³»ç»æç¤º', { confirmButtonText: 'éæ°ç»å½', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { isRelogin.show = false; store.dispatch('LogOut').then(() => { location.href = '/index'; MessageBox.confirm( "ç»å½ç¶æå·²è¿æï¼æ¨å¯ä»¥ç»§ç»çå¨è¯¥é¡µé¢ï¼æè éæ°ç»å½", "ç³»ç»æç¤º", { confirmButtonText: "éæ°ç»å½", cancelButtonText: "åæ¶", type: "warning", } ) .then(() => { isRelogin.show = false; store.dispatch("LogOut").then(() => { location.href = "/index"; }); }) }).catch(() => { isRelogin.show = false; }); } return Promise.reject('æ æçä¼è¯ï¼æè ä¼è¯å·²è¿æï¼è¯·éæ°ç»å½ã') .catch(() => { isRelogin.show = false; }); } return Promise.reject("æ æçä¼è¯ï¼æè ä¼è¯å·²è¿æï¼è¯·éæ°ç»å½ã"); } else if (code === 500) { Message({ message: msg, type: 'error' }) return Promise.reject(new Error(msg)) Message({ message: msg, type: "error" }); return Promise.reject(new Error(msg)); } else if (code === 601) { Message({ message: msg, type: 'warning' }) return Promise.reject('error') Message({ message: msg, type: "warning" }); return Promise.reject("error"); } else if (code !== 200) { Notification.error({ title: msg }) return Promise.reject('error') Notification.error({ title: msg }); return Promise.reject("error"); } else { return res.data return res.data; } }, error => { console.log('err' + error) (error) => { console.log("err" + error); let { message } = error; if (message == "Network Error") { message = "å端æ¥å£è¿æ¥å¼å¸¸"; @@ -117,36 +151,48 @@ } else if (message.includes("Request failed with status code")) { message = "ç³»ç»æ¥å£" + message.substr(message.length - 3) + "å¼å¸¸"; } Message({ message: message, type: 'error', duration: 5 * 1000 }) return Promise.reject(error) Message({ message: message, type: "error", duration: 5 * 1000 }); return Promise.reject(error); } ) ); // éç¨ä¸è½½æ¹æ³ export function download(url, params, filename, config) { downloadLoadingInstance = Loading.service({ text: "æ£å¨ä¸è½½æ°æ®ï¼è¯·ç¨å", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", }) return service.post(url, params, { transformRequest: [(params) => { return tansParams(params) }], headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, responseType: 'blob', ...config }).then(async (data) => { const isBlob = blobValidate(data); if (isBlob) { const blob = new Blob([data]) saveAs(blob, filename) } else { const resText = await data.text(); const rspObj = JSON.parse(resText); const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'] Message.error(errMsg); } downloadLoadingInstance.close(); }).catch((r) => { console.error(r) Message.error('ä¸è½½æä»¶åºç°é误ï¼è¯·è系管çåï¼') downloadLoadingInstance.close(); }) downloadLoadingInstance = Loading.service({ text: "æ£å¨ä¸è½½æ°æ®ï¼è¯·ç¨å", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", }); return service .post(url, params, { transformRequest: [ (params) => { return tansParams(params); }, ], headers: { "Content-Type": "application/x-www-form-urlencoded" }, responseType: "blob", ...config, }) .then(async (data) => { const isBlob = blobValidate(data); if (isBlob) { const blob = new Blob([data]); saveAs(blob, filename); } else { const resText = await data.text(); const rspObj = JSON.parse(resText); const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode["default"]; Message.error(errMsg); } downloadLoadingInstance.close(); }) .catch((r) => { console.error(r); Message.error("ä¸è½½æä»¶åºç°é误ï¼è¯·è系管çåï¼"); downloadLoadingInstance.close(); }); } export default service export default service; src/views/business/inspectionTask/inspection.vue
@@ -1,9 +1,7 @@ <template> <div v-loading="loading" class="inspection"> <el-row class="title"> <el-col :span="4" style="padding-left: 20px; text-align: left">æ£éªå详æ </el-col> <el-col :span="20" style="text-align: right"> <el-col :span="8" style="text-align: left"> <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="text-align: right; padding-top: 0; display: inline"> <el-form-item label="温度:" style="margin-bottom: 0"> @@ -17,7 +15,9 @@ <span style="margin-left: 4px">%</span> </el-form-item> </el-form> <el-button size="small" type="primary" @click="refreshView">å·æ°</el-button> </el-col> <el-col :span="16" style="text-align: right"> <!-- <el-button size="small" type="primary" @click="refreshView">å·æ°</el-button> --> <el-button v-if="typeSource === 1" size="small" type="primary" @click="openPurchase">è¿è´§éªè¯</el-button> <el-button v-if="state === 1 && typeSource === 1" size="small" type="primary" @click="openUnPassDialog('add')">ä¸åæ ¼å¤ç</el-button> @@ -68,7 +68,7 @@ <el-form-item v-if="typeSource === 1" label="åå®¶å¯åº¦:"> <el-input v-model="supplierDensity" clearable disabled placeholder="请è¾å ¥" size="small"></el-input> </el-form-item> <el-form-item label="å½åæ ·å使°:"> <el-form-item label="å½åæ ·å使°:" label-width="120px"> <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> </el-form-item> <el-form-item label="夿³¨:"> @@ -78,6 +78,7 @@ <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> --> </el-form-item> </el-form> <el-divider></el-divider> </div> <div class="center"> <div class="search" style=" @@ -149,74 +150,64 @@ </div> </div> <!-- å¸¸è§æ£éªåå§è®°å½ --> <div v-if=" !tableLists.find((m) => m.templateId == currentTable) || (tableLists.find((m) => m.templateId == currentTable).templateName != 'æ¸©åº¦å¾ªç¯æ£éªåå§è®°å½' && !tableLists .find((m) => m.templateId == currentTable) .templateName.includes('ç循ç¯') && !tableLists .find((m) => m.templateId == currentTable) .templateName.includes('温åè¯éª') && tableLists.find((m) => m.templateId == currentTable).templateName != 'å¼§åç¹æ§æ£éªåå§è®°å½') " id="nav" v-loading="tableLoading" class="center-box"> <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1" cellpadding="10" class="tables" id="myTable"> <tbody> <tr style="white-space: nowrap"> å§æç¼å·ï¼{{ insOrder.entrustCode }} </tr> <tr v-for="(m, i) in item.arr" :key="i"> <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4" :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j" :colspan="n.v.mc && n.v.mc.cs ? n.v.mc.cs : 1" :rowspan="n.v.mc && n.v.mc.rs ? n.v.mc.rs : 1" :style="`background:${n.v.bg ? n.v.bg : ''};color:${n.v.fc };font-size:${n.v.fs}px;width:${handleWidth( n )}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl ? 'bold' : '' };`"> <div :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r] }px;`" class="content"> <template v-if=" n.v.ps != undefined && typeof n.v.ps.value === 'string' && n.v.ps.value.includes('æ£éªå¼') && state == 1 "> <el-input v-if="getInspectionValueType(n.i) == 1" :key="'abc-' + '000' + index + '000' + i + '000' + j" v-model="n.v.v" :disabled="(getInspectionItemType(n.i) == 1 && !dataAcquisitionEidtAble) || <div id="nav" v-loading="tableLoading" class="center-box"> <template v-if=" tableLists.find((m) => m.templateId == currentTable)"> <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1" cellpadding="10" class="tables" id="myTable"> <tbody> <tr style="white-space: nowrap"> å§æç¼å·ï¼{{ insOrder.entrustCode }} </tr> <tr v-for="(m, i) in item.arr" :key="i"> <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4" :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j" :colspan="n.v.mc && n.v.mc.cs ? n.v.mc.cs : 1" :rowspan="n.v.mc && n.v.mc.rs ? n.v.mc.rs : 1" :style="`background:${n.v.bg ? n.v.bg : ''};color:${n.v.fc };font-size:${n.v.fs}px;width:${handleWidth( n )}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl ? 'bold' : '' };`"> <div :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r] }px;`" class="content"> <template v-if=" n.v.ps != undefined && typeof n.v.ps.value === 'string' && n.v.ps.value.includes('æ£éªå¼') && state == 1 "> <el-input v-if="getInspectionValueType(n.i) == 1" :key="'abc-' + '000' + index + '000' + i + '000' + j" v-model="n.v.v" :disabled="(getInspectionItemType(n.i) == 1 && !dataAcquisitionEidtAble) || (n.u != userId && n.u != undefined && n.u != '') " class="table_input" @change="(m) => changeInput( m, `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType' ) " @input="handleInput(n)" @mousewheel.native.prevent @keydown.enter=" changeInput( '', `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType' ) "> </el-input> <el-input v-else-if="getInspectionValueType(n.i) == 2" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '') " class="table_input" @change="(m) => " class="table_input" type="textarea" @change="(m) => changeInput( m, `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType' ) " @input="handleInput(n)" @mousewheel.native.prevent @keydown.enter=" changeInput( '', `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType' ) "> </el-input> <el-input v-else-if="getInspectionValueType(n.i) == 2" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '') " class="table_input" type="textarea" @change="(m) => changeInput( m, `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType' ) " /> <!-- <el-select v-else-if="getInspectionValueType(n.i) == 5" v-model="n.v.v" :disabled="state > 1 || " /> <!-- <el-select v-else-if="getInspectionValueType(n.i) == 5" v-model="n.v.v" :disabled="state > 1 || getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '') " class="table_input" @change="(m) => @@ -229,136 +220,131 @@ " @visible-change="(e) => getDic(e, n.i)"> <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> </el-select> --> <span v-else-if="getInspectionValueType(n.i) == 4" :style="`font-family:${n.v.ff} !important;`">/</span> </template> <template v-else-if="n.v.ps != undefined && n.v.ps.value === 'ç»è®º'"> <el-select v-if=" (getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && <span v-else-if="getInspectionValueType(n.i) == 4" :style="`font-family:${n.v.ff} !important;`">/</span> </template> <template v-else-if="n.v.ps != undefined && n.v.ps.value === 'ç»è®º'"> <el-select v-if=" (getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state == 1 " v-model="n.v.v" class="table_input" @change="(m) => changeInput( m, `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType', 'changeSelect' ) "> <el-option :value="1" label="åæ ¼"></el-option> <el-option :value="0" label="ä¸åæ ¼"></el-option> <el-option :value="3" label="ä¸å¤å®"></el-option> <el-option :value="2" label="å¾ å®"></el-option> </el-select> <template v-if="state > 1"> <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-if="n.v.v === 3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">ä¸å¤å®</span> <span v-else :style="`font-family:${n.v.ff} !important;`">å¾ å®</span> </template> <template v-if="getInspectionValueType(n.i) != 2 && state == 1"> <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-if="n.v.v === 3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">ä¸å¤å®</span> <span v-else :style="`font-family:${n.v.ff} !important;`">å¾ å®</span> </template> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '设å¤ç¼ç ' && state == 1 " v-model="n.v.v" class="table_input" @change="(m) => changeInput( m, `${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType', 'changeSelect' ) "> <el-option :value="1" label="åæ ¼"></el-option> <el-option :value="0" label="ä¸åæ ¼"></el-option> <el-option :value="3" label="ä¸å¤å®"></el-option> <el-option :value="2" label="å¾ å®"></el-option> </el-select> <template v-if="state > 1"> <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-if="n.v.v === 3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">ä¸å¤å®</span> <span v-else :style="`font-family:${n.v.ff} !important;`">å¾ å®</span> </template> <template v-if=" PROJECT == 'æ£æµä¸å¿' || (PROJECT == 'è£ å¤çµç¼' && getInspectionValueType(n.i) != 2 && state == 1) "> <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-if="n.v.v === 3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">ä¸å¤å®</span> <span v-else :style="`font-family:${n.v.ff} !important;`">å¾ å®</span> <span>{{ n.v.v }}</span> </template> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '设å¤ç¼ç ' && state == 1 "> <span>{{ n.v.v }}</span> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '设å¤åç§°' "> <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple placeholder="设å¤" remote @change="(val) => changeEquip(val, n)" @visible-change="(e) => getEquipOptions(e, n.i)"> <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> {{ item.label + "--" + item.value }} </el-option> </el-select> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'è¦æ±å¼' && state == 1 "> <span :style="`font-family:${n.v.ff} !important;`">{{ getTell(n.i) }}</span> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '计ç®å¼' && state == 1 "><span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v, n.v.ct) }}</span></template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æç»å¼' && state == 1 "> <span :style="`font-family:${n.v.ff} !important;`">{{ <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '设å¤åç§°' "> <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple placeholder="设å¤" remote @change="(val) => changeEquip(val, n)" @visible-change="(e) => getEquipOptions(e, n.i)"> <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> {{ item.label + "--" + item.value }} </el-option> </el-select> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'è¦æ±å¼' && state == 1 "> <span :style="`font-family:${n.v.ff} !important;`">{{ getTell(n.i) }}</span> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === '计ç®å¼' && state == 1 "><span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v, n.v.ct) }}</span> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æ ·åç¼å·' "> <div :title="currentSample.sampleCode" style=" }}</span></template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æç»å¼' && state == 1 "> <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v, n.v.ct) }}</span> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æ ·åç¼å·' "> <div :title="currentSample.sampleCode" style=" display: flex; flex-wrap: nowrap; align-items: center; width: 100%; "> <i v-if="!currentFiberOpticTape && !currentFiberOptic" class="el-icon-caret-left table_caret" style="width: 16px" @click="caretSample(-1)"></i> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`"> {{ currentSample.sampleCode }} <i class="el-icon-caret-left table_caret" style="width: 16px" @click="caretSample(-1)"></i> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`"> {{ currentSample.sampleCode }} </div> <i class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i> </div> <i v-if="!currentFiberOpticTape && !currentFiberOptic" class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i> </div> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æ ·ååå·' "> <div v-if=" currentSample.model !== undefined && currentSample.model !== null " :style="`font-family:${n.v.ff} !important;`"> {{ currentSample.model }} </div> </template> <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span> </div> </td> </tr> </tbody> </table> </template> <template v-else-if=" n.v.ps != undefined && n.v.ps.value === 'æ ·ååå·' "> <div v-if=" currentSample.model !== undefined && currentSample.model !== null " :style="`font-family:${n.v.ff} !important;`"> {{ currentSample.model }} </div> </template> <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span> </div> </td> </tr> </tbody> </table> </template> </div> <el-upload v-if="state == 1" ref="upload" :action="action" :before-upload="beforeUpload" :data="{ orderId: id, }" :headers="headers" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false" accept=".jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar" style="width: 80px !important"> accept=".jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar" style="width: 80px !important;margin-top: 10px;"> <el-button v-if="state == 1" size="small" type="primary">éä»¶ä¸ä¼ </el-button></el-upload> <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table> <!-- <ValueTable :key="upIndex" ref="fileList" :componentData="componentData0" :delUrl="$api.insOrderPlan.delfile" :url="$api.insOrderPlan.getFileList" class="value-table" style="height: 100%; margin-top: 16px" /> --> :height="'calc(100vh - 290px)'" @pagination="pagination" style="height: 100%; margin-top: 16px"></lims-table> </div> <el-drawer :size="550" :visible.sync="sampleVisible" title="æ ·å忢"> <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct" @@ -390,8 +376,8 @@ </el-table> </el-drawer> <el-drawer :size="500" :visible.sync="taskVisible" title="ä»»å¡åæ¢"> <!-- <ValueTable :key="upIndex" ref="insOrderPlan" :componentData="componentData" :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching" class="value-table" style="height: 100%" /> --> <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading0" :height="'calc(100vh - 90px)'" :currentChange="handleChangeTask"></lims-table> </el-drawer> <el-dialog :visible.sync="reviewDia" title="æ£éªå¤æ ¸" width="500px"> <div v-if="reviewDia" class="body" style="display: flex; padding: 10px"> @@ -519,8 +505,8 @@ <el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">ç¡® å®</el-button> </span> </el-dialog> <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" @resetAddUnPass="resetAddUnPass"></add-un-pass> <!-- <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" @resetAddUnPass="resetAddUnPass"></add-un-pass> --> <!-- <UnPassDialog v-if="unPassDialog" ref="unPassDialog" @@ -565,8 +551,6 @@ dataCollection, write, getInsProduct, getReportModel, determineWhetherToCollectData, search, verifyPlan, checkSubmitPlan, @@ -575,8 +559,11 @@ selectUserCondition, downFile, getFileList, delfile delfile, inspectionOrderDetailsTaskSwitching } from "@/api/business/inspectionTask.js"; import InspectionWorker from '../../../InspectionWorker.worker'; import DataWorker from '../../../DataWorker.worker'; import html2canvas from "html2canvas"; import { mapGetters } from "vuex"; export default { @@ -606,7 +593,6 @@ load: null, }, dataGetDia: false, wareTableDataLoading: false, fileAdd: false, sampleVisible: false, taskVisible: false, @@ -616,34 +602,7 @@ state: null, }, id: null, componentData: { entity: { sonLaboratory: null, userId: 0, }, isIndex: false, showSelect: false, select: false, selectMethod: "handleChangeTask", sort: false, do: [], isPage: false, linkEvent: {}, tagField: { type: { select: [], }, insState: { select: [], }, }, currentId: "", selectField: {}, requiredAdd: [], requiredUp: [], }, changeType: null, getReportModelLoading: false, insOrder: {}, sampleProduct: [], supplierDensity: "", // åå®¶å¯åº¦ @@ -672,30 +631,14 @@ verifyUser: null, personList: [], enumList: [], fiberOpticVisible: false, fiberOpticTapeVisible: false, bushingVisible: false, fiberOpticTape: [], //å 纤带å表 fiberOptic: [], //å 纤å表 bushing: [], //å¥ç®¡å表 currentFiberOpticTape: null, //å½åå 纤带 currentFiberOptic: null, //å½åå 纤 currentBushing: null, //å½åå¥ç®¡ tableLoading: false, upLoading: false, temptList: null, fiber: [], fibers: [], casing: [], currentTab: null, wareForm: { inspectionItem: 1, inspectionItemSubclass: "20(常温)", }, wareForm0: {}, numOptions: [], temperatureOptions: [], wareTableData: [], otherForm: { humidity: null, temperature: null, @@ -713,18 +656,8 @@ dataAcquisitionInfo: {}, dataAcquisitionInfoNew: {}, dataAcquisitionEidtAble: false, isGet: false, dataAcquisitionLoading: false, collected: false, // ç循ç¯---å¼å§ thermalCyclingInfo: { max: 0, inspectionItem: 1, arr: [], length: 1, inspectionItemClass: null, }, thermalCyclingLoading: false, temDataAcquisition: false, getData: [ { @@ -781,7 +714,7 @@ } else { return 'æä»¶' } }, } }, { label: "éä»¶åç§°", prop: "fileName" }, { label: "ä¸ä¼ 人", prop: "name" }, @@ -818,6 +751,39 @@ }, tableLoading: false, // æä»¶å表ç¸å ³--ç»æ // ä»»å¡åæ¢å表--å¼å§ tableData0: [], column0: [ { label: "å§æç¼å·", prop: "entrustCode", width: '160px' }, { label: "æ£éªå¯¹è±¡", prop: "sampleType", width: '140px' }, { label: "ç´§æ¥ç¨åº¦", prop: "type", dataType: "tag", formatData: (params) => { return this.urgentList.find(m => m.value == params).label }, formatType: (params) => { return this.urgentList.find(m => m.value == params).type } }, { label: "ç¶æ", prop: "insState", dataType: "tag", formatData: (params) => { return this.typeList.find(m => m.value == params).label }, formatType: (params) => { return this.typeList.find(m => m.value == params).type } }, { label: "çº¦å®æ¶é´", prop: "appointed", width: '140px' }, { label: "ä¸åæ¶é´", prop: "sendTime", width: '140px' }, ], page0: { total: 0, size: -1, current: -1, }, tableLoading0: false, // ä»»å¡åæ¢å表--ç»æ }; }, // ç¨äºä¸ä¼ æä»¶çä¿¡æ¯ @@ -833,8 +799,6 @@ }, }, created() { this.componentData.entity.sonLaboratory = this.sonLaboratory; this.getUserInfo(); let { sonLaboratory, orderId, state, inspectorList, typeSource } = this.$route.query; this.sonLaboratory = sonLaboratory; @@ -849,9 +813,10 @@ this.getInsStateDicts(); this.getComparisonList(); this.getAuthorizedPerson(); this.scrollInit(); // this.getPower(); this.startWorker(); this.getList0() this.scrollInit(); }, watch: { // çå¬ä»»å¡idï¼è·åä»»å¡ä¿¡æ¯ @@ -897,40 +862,23 @@ this.param = {}; this.changeType = 0; this.currentSample.insProduct.forEach((a) => { // æ¯å¦ä¸ºæåçµç¼ä¸çæ¾å¥ç®¡é¡¹ç®ï¼ä¸æ¯åæ§è¡åå§å if (this.handleCasing(a.inspectionItem)) { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; } this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; }); this.determineWhetherToCollectData(); //æ¯å¦éè¦æ°é this.getReportModel(this.currentSample.id); //è·åå¥ç®¡ãå 纤带ãå çº¤ä¿¡æ¯ if (this.currentSample.index == undefined) this.currentSample["index"] = 1; let bushing = this.currentSample.bushing; this.getTableLists(); //å¤ç模æ¿åè¡¨ä¿¡æ¯ this.componentData.currentId = val; this.currentKey = 1; this.getCableTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦å¤æ¬¡æ£éªççµç¼é ç½® this.getRepetitionTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦é夿£éªé¡¹ // æ¸ ç©ºå 纤é ç½®ç¸å ³æ°æ®---ä¸é¢ä¿¡æ¯ææ¶å¯å¿½ç¥ this.fiberOpticTape = []; this.currentFiberOpticTape = null; this.fiberOptic = []; this.currentFiberOptic = null; this.bushing = []; this.currentBushing = null; this.currentTab = null; if (bushing && bushing.length > 0) { this.bushing = bushing; } }); }, // çå¬å½å模æ¿åå @@ -946,18 +894,15 @@ this.currentSample.insProduct = this.HaveJson(list); //èµå¼å½åæ ·åçæ£éªé¡¹ this.param = {}; //åå§åä¼ å°å端çåæ° this.currentSample.insProduct.forEach((a, j) => { if (this.handleCasing(a.inspectionItem)) { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; } this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; }); this.getReportModel(this.currentSample.id); //è·åå¥ç®¡ãå 纤带ãå çº¤ä¿¡æ¯ // å»é模æ¿ï¼è¿åæå ä¸ªæ¨¡æ¿ const mySet1 = new Set(); this.tableLists = this.currentSample.insProduct.filter((m) => { @@ -1041,14 +986,32 @@ }, // æä»¶ç®¡ç--ç»æ // ä»»å¡åæ¢--å¼å§ getList0() { this.tableLoading0 = true; let param = { userId: this.userId, sonLaboratory: this.sonLaboratory, ...this.page0 }; delete param.total; inspectionOrderDetailsTaskSwitching({ ...param }) .then((res) => { this.tableLoading0 = false; if (res.code === 200) { this.tableData0 = res.data.records; } }) .catch((err) => { this.tableLoading0 = false; }); }, // ä»»å¡åæ¢--ç»æ closeAddVerifyDia() { this.addCheck = false; this.checkUser = ""; }, // å·æ°é¡µé¢ refreshView() { this.$emit("refreshView"); }, // refreshView() { // this.$emit("refreshView"); // }, closeUnPassCheckDialog() { this.unPassCheck = false; }, @@ -1336,11 +1299,11 @@ n.v.ps.value.includes("æ£éªå¼") ) { num++; if (str0 == str) { maxNum = num; } } }); if (str0 == str) { maxNum = num; } } // ç»å®è®¾å¤ if ( @@ -1510,12 +1473,12 @@ this.stopWorker(); // ç¡®ä¿ä¹åç Worker 已忢 } // å建 Worker å®ä¾ this.worker = new Worker("/static/js/worker.js"); this.worker = new InspectionWorker(); if (this.worker0) { this.stopWorker(); // ç¡®ä¿ä¹åç Worker 已忢 } // å建 Worker å®ä¾ this.worker0 = new Worker("/static/js/worker0.js"); this.worker0 = new DataWorker(); }, // 忢å¤çº¿ç¨ stopWorker() { @@ -1528,7 +1491,6 @@ this.worker0 = null; } }, // ç循ç¯---ç»æ // ä¿åæ¹¿åº¦ãæ¸©åº¦æ°æ® subOtherForm(m, type) { console.log("m---", m); @@ -1617,13 +1579,6 @@ async handleChangeSample(row, column, event) { // åå§åæ°æ® this.param = {}; // æ¸ ç©ºå 纤é ç½®ç¸å ³æ°æ® this.fiberOpticTape = []; this.currentFiberOpticTape = null; this.fiberOptic = []; this.currentFiberOptic = null; this.bushing = []; this.currentBushing = null; this.sampleVisible = false; // èµå¼æ ·å this.currentSample = this.HaveJson(row); @@ -1634,23 +1589,15 @@ this.param = {}; this.changeType = 0; this.currentSample.insProduct.forEach((a, j) => { if (this.handleCasing(a.inspectionItem)) { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; } this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; }); // è·åå¥ç®¡,å 纤带,å çº¤æ°æ® this.getReportModel(row.id); let bushing = this.currentSample.bushing; if (bushing && bushing.length > 0) { this.bushing = bushing; } // å¤ç页é¢åè¡¨æ°æ® this.getTableLists(); this.currentKey = row.index; @@ -1665,33 +1612,6 @@ currentTable: this.currentTable, }) ); }, // æ¾å¥ç®¡ç夿\妿changeTypeä¸çäº3é£ä¹é¡µé¢ä¸å±ç¤ºæ¾å¥ç®¡æ£éªé¡¹ handleCasing(inspectionItem) { if (this.changeType != 3) { if (inspectionItem.includes("æ¾å¥ç®¡")) { return false; } else { return true; } } else { return true; } }, // è·åå¥ç®¡,å 纤带,å çº¤æ°æ® getReportModel(id) { if (this.PROJECT != "æ£æµä¸å¿") { return; } this.getReportModelLoading = true; getReportModel({ sampleId: id }).then((res) => { this.getReportModelLoading = false; this.fibers = res.data["å 纤带"]; this.fiber = res.data["å 纤"]; this.casing = res.data["å¥ç®¡"]; }); }, async handleChangeCableTag(m, type, num, m2) { let cableTag = ""; @@ -1724,7 +1644,6 @@ }; }); this.getTableLists0(list); this.getReportModel(this.currentSample.id); this.worker.postMessage( JSON.stringify({ type: "saveData", @@ -1743,21 +1662,19 @@ }, // æ¹åä»»å¡ handleChangeTask(row) { if (row.length > 0) this.id = row[0].id; if (row) this.id = row.id; this.taskVisible = false; }, // åå ¸è·åä¿¡æ¯ getTypeDicts() { this.getDicts("urgency_level").then((response) => { this.urgentList = this.dictToValue(response.data); this.componentData.tagField.type.select = this.urgentList; }); }, // åå ¸è·åä¿¡æ¯ getInsStateDicts() { this.getDicts("inspection_task_state").then((response) => { this.typeList = this.dictToValue(response.data); this.componentData.tagField.insState.select = this.typeList; }); }, // åå ¸è·åä¿¡æ¯ @@ -2196,7 +2113,8 @@ } }); // 以䏿¯æ ·å¼å¤çé»è¾ set = Array.sort(set); set = [...set] // set = set.sort(); set.forEach((b) => { let arr = []; a.template.forEach((c) => { @@ -2406,11 +2324,6 @@ this.saveInsContext(currentInsItemId); } }, 200); }, // æ¯å¦éè¦æ°é async determineWhetherToCollectData() { let res = await determineWhetherToCollectData({ managementNumber: '' }) this.isGet = res.data; }, // æ ¹æ®åç«¯ä¼ åæ´æ°é¡µé¢æ°æ® param => this.tableList[0].insProductResult getCurrentInsProduct(pId) { @@ -2635,9 +2548,6 @@ // } // } // }, getUserInfo() { this.componentData.entity.userId = this.userId; }, openAddCheck() { this.addCheck = true; }, @@ -2806,6 +2716,8 @@ param: JSON.stringify(param), currentTable: this.currentTable, sampleId: this.currentSample.id, orderId: this.orderId, sonLaboratory: this.sonLaboratory }).then((res) => { if (res.code == 201) { this.$message.error("ä¿å失败"); @@ -2936,16 +2848,14 @@ this.param = {}; this.changeType = 0; this.currentSample.insProduct.forEach((a, j) => { if (this.handleCasing(a.inspectionItem)) { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; } this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null, }; }); // 页颿°æ®å¤ç this.getTableLists(); @@ -3020,6 +2930,10 @@ }; </script> <style scoped> >>>.el-divider { margin: 0 !important; } .custom-table .el-table__header-wrapper th { background-color: #87ceeb; /* åªå¯¹å¸¦æmy-custom-tableç±»çè¡¨æ ¼çæ */ @@ -3048,11 +2962,11 @@ .title { height: 60px; line-height: 60px; padding: 0 16px; } .search { width: 100%; margin-bottom: 10px; background-color: #fff; border-radius: 3px; } @@ -3064,7 +2978,7 @@ } .center { width: calc(100% - 40px); width: 100%; /* max-height: 580px; */ background-color: #fff; border-radius: 3px; @@ -3091,6 +3005,7 @@ .tables { table-layout: fixed; margin: 5px 5px 16px; border-collapse: collapse; } .tables td { vue.config.js
@@ -36,7 +36,7 @@ proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { target: `http://192.168.0.170:8002`, target: `http://192.168.0.104:8002`, changeOrigin: true, pathRewrite: { ["^" + process.env.VUE_APP_BASE_API]: "", @@ -59,6 +59,19 @@ "@": resolve("src"), }, }, module: { rules: [ { test: /\.worker\.js$/, use: { loader: "worker-loader", options: { inline: "fallback", }, }, }, ], }, plugins: [ // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使ç¨gzipè§£åç¼©éææä»¶ new CompressionPlugin({