Merge remote-tracking branch 'origin/dev' into dev
| | |
| | | "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", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // æ¤çº¿ç¨ä¸ºæ°æ®ééçº¿ç¨ |
| | | |
| | | // ä¿åæ°æ® |
| | | // æ°æ®ééä¿¡æ¯ |
| | | 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) |
| | | // } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // å¤çº¿ç¨éé¢éè¦ä¿åçæ°æ® |
| | | 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); |
| | |
| | | // æ£éªä»»å¡ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | // éè¿æ£éªåæ¥è¯¢æ£éªæ°æ®ï¼æ°æ®æ¥çï¼ |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ£éªå详æ
-ä»»å¡åæ¢ |
| | | export function inspectionOrderDetailsTaskSwitching(query) { |
| | | return request({ |
| | | url: "/insOrderPlan/inspectionOrderDetailsTaskSwitching", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // ä¸åæ ¼ç®¡çç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | //æ¥è¯¢è¿è´§éªè¯ä¿¡æ¯ |
| | | export function getFactoryVerify(query) { |
| | | return request({ |
| | | url: "/insOrderPlan/getFactoryVerify", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // ä¿åè¿è´§åå§è®°å½ |
| | | export function addFactoryVerify(data) { |
| | | return request({ |
| | | url: "/insOrderPlan/addFactoryVerify", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢ä¸åæ ¼çæ£éªé¡¹ |
| | | export function getInsProductUnqualified(query) { |
| | | return request({ |
| | | url: "/insOrderPlan/getInsProductUnqualified", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æäº¤éè¦å¤æµçæ£éªé¡¹ |
| | | export function addUnqualifiedRetest(data) { |
| | | return request({ |
| | | url: "/insOrderPlan/addUnqualifiedRetest", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // æ¥è¯¢æ£éªä¸åå
容详æ
|
| | | export function getInsOrder(query) { |
| | | return request({ |
| | | url: "/insOrder/getInsOrder", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ¥çOA详æ
|
| | | export function getUnqualifiedHandler(query) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/getUnqualifiedHandler", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // ä¸è½½OAéä»¶ |
| | | export function downFile(query) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/downFile", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | export function addUnqualifiedHandler(data) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/addUnqualifiedHandler", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | |
| | | // å®éªå®¤çæ£æµè½åæ¡£æ¡ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | //è·åæ åæ¹æ³å表 |
| | |
| | | // çæ¬¡ç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // 绩æç®¡ç-çæ¬¡-å页æ¥è¯¢ |
| | |
| | | // å·¥æ¶ç®¡çç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ¥è¯¢å·¥æ¶æ±æ» |
| | |
| | | // åå§è®°å½æ¨¡æ¿ç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ¥è¯¢å®¢æ·å表 |
| | |
| | | // æ ååºç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ ååºæ æåº |
| | |
| | | <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'"> |
| | |
| | | </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> |
| | | <!-- é»è®¤çº¯å±ç¤ºæ°æ® --> |
| | |
| | | </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> |
| | | |
| | |
| | | handleSelectionChange: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => {}; |
| | | return () => { }; |
| | | }, |
| | | }, |
| | | rowClick: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => {}; |
| | | return () => { }; |
| | | }, |
| | | }, |
| | | currentChange: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => {}; |
| | | return () => { }; |
| | | }, |
| | | }, |
| | | border: { |
| | |
| | | }, |
| | | rowClassName: { |
| | | type: Function, |
| | | default: () => {}, |
| | | default: () => { }, |
| | | }, |
| | | rowStyle: { |
| | | type: Object || Function, |
| | | default: () => {}, |
| | | default: () => { }, |
| | | }, |
| | | tableData: { |
| | | type: Array, |
| | |
| | | </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; |
| | |
| | | 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> |
| | |
| | | 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" }, |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | 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 = "å端æ¥å£è¿æ¥å¼å¸¸"; |
| | |
| | | } 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; |
| | |
| | | </style> |
| | | <template> |
| | | <div class="ins-order-plan-main"> |
| | | <div v-show="activeFace == 0" style="height: 100%"> |
| | | <div style="height: 100%"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å§æç¼å·ï¼</div> |
| | |
| | | <el-button :loading="loading" type="primary" @click="confirmConnect">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <div v-if="activeFace > 0 && isCopper == null" style="width: 100%; height: 100%"> |
| | | <!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> --> |
| | | </div> |
| | | <div v-if="activeFace > 0 && isCopper == 0" style="width: 100%; height: 100%"> |
| | | <!-- <CustomsInspection |
| | | :active="activeFace" |
| | | :currentId="currentId" |
| | | :customsInspection="customsInspection" |
| | | :isReport="isReport" |
| | | /> --> |
| | | </div> |
| | | <div v-if="activeFace > 0 && isCopper == 1" style="width: 100%; height: 100%"> |
| | | <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> --> |
| | | </div> |
| | | <!--<Inspection |
| | | v-if="state > 0" |
| | | :key="InspectionKey" |
| | | :inspectorList="inspectorList" |
| | | :orderId="orderId" |
| | | :sonLaboratory="sonLaboratory" |
| | | :state="state" |
| | | :typeSource="typeSource" |
| | | @goback="goback" |
| | | @refreshView="refreshView" |
| | | />--> |
| | | <el-dialog :visible.sync="dataDialogVisible" title="æ°æ®æ¥ç" width="80%"> |
| | | <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto"> |
| | | <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from "@/components/Table/value-table.vue"; |
| | | // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; |
| | | // import CustomsInspection from "../do/b1-material-ins-order/customs-inspection.vue"; |
| | | import { getYearAndMonthAndDays } from "@/utils/date"; |
| | | // import Add from "../do/b1-ins-order/add.vue"; |
| | | // import ShowInfo from "../do/b1-material-ins-order/showInfo.vue"; |
| | | // import CopperOrder from "../do/b1-material-ins-order/copper-order.vue"; |
| | | import EditInspectionItem from "./components/EditInspectionItem.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | |
| | | export default { |
| | | components: { |
| | | EditInspectionItem, |
| | | // CopperOrder, |
| | | // ShowInfo, |
| | | ValueTable, |
| | | limsTable, |
| | | // Inspection, |
| | | // Add, |
| | | // CustomsInspection, |
| | | }, |
| | | dicts: ["urgency_level", "inspection_task_state"], |
| | | computed: { |
| | |
| | | { |
| | | label: "å§æç¼å·", |
| | | prop: "entrustCode", |
| | | width: "140px", |
| | | width: "160px", |
| | | dataType: "link", |
| | | linkMethod: "selectAllByOne", |
| | | }, |
| | | { label: "æ ·ååç§°", prop: "sample", width: "140px" }, |
| | | { label: "æ ·ååç§°", prop: "sample", width: "160px" }, |
| | | { |
| | | label: "ä¸åç±»å«", |
| | | prop: "typeSource", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | |
| | | { |
| | | label: "æ£éªç±»å", |
| | | prop: "orderType", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.orderTypeList.find((m) => m.value == params).label; |
| | |
| | | this.examine = 1; |
| | | this.isReport = 0; |
| | | this.currentId = parseInt(row.id); |
| | | switch (row.isCopper) { |
| | | case 0: |
| | | // åææ |
| | | this.$router.push({ |
| | | path: "/materialOrder/customsInspection", query: { |
| | | customsInspection: row, |
| | | active: this.activeFace, |
| | | currentId: this.currentId, |
| | | isReport: this.isReport |
| | | } |
| | | }); |
| | | break; |
| | | case null: |
| | | // æå |
| | | this.$router.push({ |
| | | path: "/productOrder/add", query: { |
| | | examine: this.examine, |
| | | active: this.activeFace, |
| | | currentId: this.currentId |
| | | } |
| | | }); |
| | | break; |
| | | case 1: |
| | | // éæ |
| | | this.$router.push({ |
| | | path: "/materialOrder/copperOrder", query: { |
| | | active: this.activeFace, |
| | | currentId: this.currentId |
| | | } |
| | | }); |
| | | break; |
| | | } |
| | | |
| | | }, |
| | | playOrder(num) { |
| | | this.activeFace = num; |
| | |
| | | this.state = 3; |
| | | this.typeSource = row.typeSource; |
| | | this.orderId = row.id; |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | | inspectorList: this.inspectorList, |
| | | sonLaboratory: this.sonLaboratory, |
| | | state: this.state, |
| | | typeSource: this.typeSource, |
| | | orderId: this.orderId, |
| | | }, |
| | | }); |
| | | }, |
| | | handleConnect(row) { |
| | | this.orderId = row.id; |
| | |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);"> |
| | | <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"> |
| | |
| | | <span style="margin-left: 4px">%</span> |
| | | </el-form-item> |
| | | </el-form> |
| | | </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" |
| | |
| | | <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">éè¿</el-button> |
| | | <el-button v-if="state == 2" size="medium" @click="upInsReview(0)">ä¸éè¿</el-button> |
| | | <el-button type="primary" size="small" @click="exportTable('myTable')">ä¸è½½åå§è®°å½</el-button> |
| | | <el-button size="small" @click="$emit('goback')">è¿å</el-button> |
| | | <el-button size="small" @click="goback">è¿å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="search"> |
| | |
| | | <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="夿³¨:"> |
| | |
| | | </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) => |
| | |
| | | " @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" |
| | |
| | | </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"> |
| | |
| | | </el-dialog> |
| | | <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" |
| | | @resetAddUnPass="resetAddUnPass"></add-un-pass> |
| | | <!-- <UnPassDialog |
| | | v-if="unPassDialog" |
| | | ref="unPassDialog" |
| | | :orderId="orderId" |
| | | :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm" |
| | | ></UnPassDialog> --> |
| | | <!-- <InspectionWord |
| | | v-if="unPassCheck" |
| | | :inspectorList="inspectorList" |
| | | :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" |
| | | :sonLaboratory="sonLaboratory" |
| | | :state="state" |
| | | :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" |
| | | @closeUnPassCheckDialog="closeUnPassCheckDialog" |
| | | @refreshView="refreshView" |
| | | /> --> |
| | | <!-- <purchase-verification |
| | | v-if="purchaseDialog" |
| | | ref="purchaseDialog" |
| | | :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" |
| | | @resetPurchaseDialog="resetPurchaseDialog" |
| | | ></purchase-verification> --> |
| | | <UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm"></UnPassDialog> |
| | | <!-- <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> --> |
| | | <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import excelFunction from "@/utils/excelFountion"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | // import UnPassDialog from "../b1-unpass-manage/unPassDialog.vue"; |
| | | // import AddUnPass from "../b1-unpass-manage/addUnPass.vue"; |
| | | // import InspectionWord from "./InspectionWord.vue"; |
| | | // import PurchaseVerification from "../b1-unpass-manage/PurchaseVerification.vue"; |
| | | import UnPassDialog from "../unpass/components/addUnPass.vue"; |
| | | import AddUnPass from "../unpass/components/addUnPass.vue"; |
| | | // import InspectionWord from "./components/InspectionWord.vue"; |
| | | import PurchaseVerification from "../unpass/components/PurchaseVerification.vue"; |
| | | import { |
| | | doInsOrder, |
| | | getCableTag, |
| | |
| | | dataCollection, |
| | | write, |
| | | getInsProduct, |
| | | getReportModel, |
| | | determineWhetherToCollectData, |
| | | search, |
| | | verifyPlan, |
| | | checkSubmitPlan, |
| | |
| | | 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 { |
| | | // props: ["sonLaboratory", "orderId", "state", "inspectorList", "typeSource"], |
| | | components: { |
| | | // PurchaseVerification, |
| | | // AddUnPass, |
| | | PurchaseVerification, |
| | | AddUnPass, |
| | | limsTable, |
| | | // UnPassDialog, |
| | | UnPassDialog, |
| | | // InspectionWord, |
| | | }, |
| | | data() { |
| | |
| | | load: null, |
| | | }, |
| | | dataGetDia: false, |
| | | wareTableDataLoading: false, |
| | | fileAdd: false, |
| | | sampleVisible: false, |
| | | taskVisible: false, |
| | |
| | | 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: "", // åå®¶å¯åº¦ |
| | |
| | | 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, |
| | |
| | | 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: [ |
| | | { |
| | |
| | | } else { |
| | | return 'æä»¶' |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | { label: "éä»¶åç§°", prop: "fileName" }, |
| | | { label: "ä¸ä¼ 人", prop: "name" }, |
| | |
| | | }, |
| | | 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, |
| | | // ä»»å¡åæ¢å表--ç»æ |
| | | }; |
| | | }, |
| | | // ç¨äºä¸ä¼ æä»¶çä¿¡æ¯ |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | this.componentData.entity.sonLaboratory = this.sonLaboratory; |
| | | this.getUserInfo(); |
| | | let { sonLaboratory, orderId, state, inspectorList, typeSource } = |
| | | this.$route.query; |
| | | this.sonLaboratory = sonLaboratory; |
| | |
| | | this.getInsStateDicts(); |
| | | this.getComparisonList(); |
| | | this.getAuthorizedPerson(); |
| | | this.scrollInit(); |
| | | // this.getPower(); |
| | | this.startWorker(); |
| | | this.getList0() |
| | | this.scrollInit(); |
| | | }, |
| | | watch: { |
| | | // çå¬ä»»å¡idï¼è·åä»»å¡ä¿¡æ¯ |
| | | id(val) { |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: val, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.$emit("goback"); |
| | | return this.$message.error("è¯¥ä»»å¡æ²¡ææ ·åä¿¡æ¯"); |
| | | } |
| | | // èµå¼å½åæ ·åå表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // æ¸©åº¦ãæ¹¿åº¦èµå¼ |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // åææçæ£éªä»»å¡æ¥è¯¢æ¹æ° |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // è·åå½åæ ·åçæ£éªé¡¹ |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // åå§åä¼ éå°å端çåæ° |
| | | 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.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; |
| | | } |
| | | }); |
| | | this.refreshView() |
| | | }, |
| | | // çå¬å½å模æ¿åå |
| | | currentTable(val1, val0) { |
| | |
| | | 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) => { |
| | |
| | | }, |
| | | // æä»¶ç®¡ç--ç»æ |
| | | |
| | | // ä»»å¡åæ¢--å¼å§ |
| | | 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"); |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: this.id, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.goback(); |
| | | return this.$message.error("è¯¥ä»»å¡æ²¡ææ ·åä¿¡æ¯"); |
| | | } |
| | | // èµå¼å½åæ ·åå表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // æ¸©åº¦ãæ¹¿åº¦èµå¼ |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // åææçæ£éªä»»å¡æ¥è¯¢æ¹æ° |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // è·åå½åæ ·åçæ£éªé¡¹ |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // åå§åä¼ éå°å端çåæ° |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a) => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | if (this.currentSample.index == undefined) |
| | | this.currentSample["index"] = 1; |
| | | let bushing = this.currentSample.bushing; |
| | | this.getTableLists(); //å¤ç模æ¿åè¡¨ä¿¡æ¯ |
| | | |
| | | this.currentKey = 1; |
| | | this.getCableTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦å¤æ¬¡æ£éªççµç¼é
ç½® |
| | | this.getRepetitionTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦é夿£éªé¡¹ |
| | | }); |
| | | }, |
| | | closeUnPassCheckDialog() { |
| | | this.unPassCheck = false; |
| | |
| | | n.v.ps.value.includes("æ£éªå¼") |
| | | ) { |
| | | num++; |
| | | if (str0 == str) { |
| | | maxNum = num; |
| | | } |
| | | } |
| | | }); |
| | | if (str0 == str) { |
| | | maxNum = num; |
| | | } |
| | | } |
| | | // ç»å®è®¾å¤ |
| | | if ( |
| | |
| | | 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() { |
| | |
| | | this.worker0 = null; |
| | | } |
| | | }, |
| | | // ç循ç¯---ç»æ |
| | | // ä¿åæ¹¿åº¦ãæ¸©åº¦æ°æ® |
| | | subOtherForm(m, type) { |
| | | console.log("m---", m); |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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 = ""; |
| | |
| | | }; |
| | | }); |
| | | this.getTableLists0(list); |
| | | this.getReportModel(this.currentSample.id); |
| | | this.worker.postMessage( |
| | | JSON.stringify({ |
| | | type: "saveData", |
| | |
| | | }, |
| | | // æ¹åä»»å¡ |
| | | 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; |
| | | }); |
| | | }, |
| | | // åå
¸è·åä¿¡æ¯ |
| | |
| | | } |
| | | }); |
| | | // 以䏿¯æ ·å¼å¤çé»è¾ |
| | | set = Array.sort(set); |
| | | set = [...set] |
| | | // set = set.sort(); |
| | | set.forEach((b) => { |
| | | let arr = []; |
| | | a.template.forEach((c) => { |
| | |
| | | this.saveInsContext(currentInsItemId); |
| | | } |
| | | }, 200); |
| | | }, |
| | | // æ¯å¦éè¦æ°é |
| | | async determineWhetherToCollectData() { |
| | | let res = await determineWhetherToCollectData({ managementNumber: '' }) |
| | | this.isGet = res.data; |
| | | }, |
| | | // æ ¹æ®åç«¯ä¼ åæ´æ°é¡µé¢æ°æ® param => this.tableList[0].insProductResult |
| | | getCurrentInsProduct(pId) { |
| | |
| | | // } |
| | | // } |
| | | // }, |
| | | getUserInfo() { |
| | | this.componentData.entity.userId = this.userId; |
| | | }, |
| | | openAddCheck() { |
| | | this.addCheck = true; |
| | | }, |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.addCheck = false; |
| | | } |
| | | this.reviewLoading = false; |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.reviewLoading = false; |
| | | }) |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.submitLoading = false; |
| | | this.addVerifyDia = false; |
| | | } |
| | |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.addVerifyDia = false; |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.submitLoading = false; |
| | | }) |
| | |
| | | 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("ä¿å失败"); |
| | |
| | | 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(); |
| | |
| | | return v; |
| | | } |
| | | }, |
| | | goback() { |
| | | this.$tab.closeOpenPage({ path: "/business/inspectionTask" }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | padding: 0 16px; |
| | | } |
| | | |
| | | .search { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .search .form-inline { |
| | |
| | | } |
| | | |
| | | .center { |
| | | width: calc(100% - 40px); |
| | | width: 100%; |
| | | /* max-height: 580px; */ |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | |
| | | .tables { |
| | | table-layout: fixed; |
| | | margin: 5px 5px 16px; |
| | | border-collapse: collapse; |
| | | } |
| | | |
| | | .tables td { |
| | |
| | | } |
| | | </style> |
| | | <style> |
| | | .inspection .el-form-item__label { |
| | | /* .inspection .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | } */ |
| | | |
| | | .inspection .el-drawer__header::before { |
| | | content: ""; |
| | |
| | | <div> |
| | | <div class="search"> |
| | | <el-form :model="entity" ref="entity" size="small" :inline="true"><el-form-item label="æ¹å·" prop="updateBatchNo"> |
| | | <el-input v-model="entity.updateBatchNo" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="entity.partNo" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶æè¿°" prop="partDesc"> |
| | | <el-input v-model="entity.partDesc" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-input v-model="entity.updateBatchNo" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="entity.partNo" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶æè¿°" prop="partDesc"> |
| | | <el-input v-model="entity.partDesc" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'æ´å¤':'æ¶èµ·'}}</el-button> |
| | | <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" |
| | | :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" |
| | | @click="more = !more">{{ !more ? 'æ´å¤' : 'æ¶èµ·' }}</el-button> |
| | | <el-button size="mini" type="primary" @click="refreshTable()">æ¥è¯¢</el-button> |
| | | <el-button size="mini" @click="refresh()">éç½®</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºååç§°" prop="supplierName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.supplierName" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | <el-form-item label="ä¾åºååç§°" prop="supplierName" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.supplierName" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ ·ååå·" prop="sampleModel" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.sampleModel" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | <el-form-item label="æ ·ååå·" prop="sampleModel" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.sampleModel" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£éªç¶æ" prop="inspectStatus" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-select v-model="entity.inspectStatus" clearable |
| | | size="small" @change="refreshTable()"> |
| | | <el-form-item label="æ£éªç¶æ" prop="inspectStatus" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-select v-model="entity.inspectStatus" clearable size="small" @change="refreshTable()"> |
| | | <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-date-picker |
| | | v-model="entity.date" |
| | | end-placeholder="ç»ææ¥æ" |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | range-separator="è³" |
| | | size="small" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd"> |
| | | <el-date-picker v-model="entity.date" end-placeholder="ç»ææ¥æ" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" |
| | | range-separator="è³" size="small" start-placeholder="å¼å§æ¥æ" type="daterange" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | <div class="table-tab"> |
| | | <div> |
| | | <ul class="tab"> |
| | | <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li> |
| | | <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)"> |
| | | {{ m.label }}</li> |
| | | </ul> |
| | | </div> |
| | | <div> |
| | | <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" @click="handleOut">导åº</el-button> |
| | | <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" |
| | | @click="handleOut">导åº</el-button> |
| | | <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">éææä¸å</el-button> |
| | | <el-button v-if="tabIndex !== 0" size="small" type="primary" @click="openPrint">æ ç¾æå°</el-button> |
| | | </div> |
| | | </div> |
| | | <!--å¾
ä¸å--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" |
| | | @pagination="pagination" :height="'calc(100vh - 290px)'" key="tableData" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination" |
| | | :height="'calc(100vh - 290px)'" key="tableData" :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <!--æ£éªä¸--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination1" :height="'calc(100vh - 290px)'" key="tableData1" |
| | | :page="page1" :tableLoading="tableLoading1"></lims-table> |
| | | <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination1" :height="'calc(100vh - 290px)'" |
| | | key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table> |
| | | </div> |
| | | <!--å·²æ£éª--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination2" :height="'calc(100vh - 290px)'" key="tableData2" |
| | | :page="page2" :tableLoading="tableLoading2"></lims-table> |
| | | <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination2" :height="'calc(100vh - 290px)'" |
| | | key="tableData2" :page="page2" :tableLoading="tableLoading2"></lims-table> |
| | | </div> |
| | | <!--å
¨é¨--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination3" :height="'calc(100vh - 290px)'" key="tableData3" |
| | | :page="page3" :tableLoading="tableLoading3"></lims-table> |
| | | <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination3" :height="'calc(100vh - 290px)'" |
| | | key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table> |
| | | </div> |
| | | <!--å£åº¦æ£éª--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination4" :height="'calc(100vh - 290px)'" key="tableData4" |
| | | :page="page4" :tableLoading="tableLoading4"></lims-table> |
| | | <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination4" :height="'calc(100vh - 290px)'" |
| | | key="tableData4" :page="page4" :tableLoading="tableLoading4"></lims-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-dialog :visible.sync="exemptionVisible" title="确认å
æ£" width="42%"> |
| | | <div style="display: flex"> |
| | | <span style="width: 90px; line-height: 32px">è§æ ¼åå·ï¼</span> |
| | | <el-input v-model="exemptionInfo.partDetail" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | <el-input v-model="exemptionInfo.partDetail" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | |
| | | <!-- æ¤éæ¥æ£ --> |
| | | <el-dialog :visible.sync="declareDialogVisible" title="æ¥æ£æ¤é" width="30%"> |
| | | <p style="font-size:16px;color:#333333">æ¹å·<span |
| | | style="color:#34BD66">{{this.insOrderRow.updateBatchNo}}</span>çä¿¡æ¯æ¯å¦<span style="color: #FF4902">æ¤éæ¥æ£</span></p> |
| | | style="color:#34BD66">{{ this.insOrderRow.updateBatchNo }}</span>çä¿¡æ¯æ¯å¦<span style="color: #FF4902">æ¤éæ¥æ£</span> |
| | | </p> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="declareDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="upLoad" type="primary" @click="submitDeclare">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | <el-row> |
| | | <el-button @click="declareDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="upLoad" type="primary" @click="submitDeclare">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ¤éä¸å --> |
| | | <el-dialog :visible.sync="quashDialogVisible" title="ä¸åæ¤é" width="30%"> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <!--æ ç¾æå°å¼¹æ¡--> |
| | | <print-dialog v-if="printDialog" ref="printDialog" |
| | | :printDialog="printDialog" |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog" |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <!--æ°æ®æ¥çå¼¹æ¡--> |
| | | <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" |
| | | :dataDialogVisible="dataDialogVisible" |
| | | :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible> |
| | | <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" :dataDialogVisible="dataDialogVisible" |
| | | :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible> |
| | | <!--éä»¶æ¥çå¼¹æ¡--> |
| | | <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible" |
| | | :filesDialogVisible="filesDialogVisible" |
| | | :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible> |
| | | <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible" :filesDialogVisible="filesDialogVisible" |
| | | :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible> |
| | | <!--æ¥åä¸è½½å¼¹æ¡--> |
| | | <down-file-dialog v-if="downFileDialogVisible" ref="downFileDialogVisible" |
| | | :downFileDialogVisible="downFileDialogVisible" |
| | | :downLoadInfo="downLoadInfo" @closeDownFileDialog="closeDownFileDialog"></down-file-dialog> |
| | | :downFileDialogVisible="downFileDialogVisible" :downLoadInfo="downLoadInfo" |
| | | @closeDownFileDialog="closeDownFileDialog"></down-file-dialog> |
| | | <!--产ä¸é¾ä¿¡æ¯æ¥ç--> |
| | | <ShowInfo v-if="showInfoDialog" ref="showInfoDialog" :showInfoDialog="showInfoDialog"></ShowInfo> |
| | | <!--æ£éªä»»å¡ä¿¡æ¯æ¥ç--> |
| | | <el-dialog :visible.sync="InspectInfoDialog" title="æ°æ®æ¥ç" width="400px" @closed="closeInsInfoDialog"> |
| | | <div style="margin-bottom: 8px"> |
| | | <span style="font-size: 16px;">è¿åæ£éªåå§æ°æ®</span> |
| | | <el-link :disabled="!insInfo.enterOrderId" :underline="false" |
| | | style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo0">æ¥ç</el-link> |
| | | <el-link :disabled="!insInfo.enterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo0">æ¥ç</el-link> |
| | | </div> |
| | | <div> |
| | | <span style="font-size: 16px;">å£åº¦æ£éªåå§æ°æ®</span> |
| | | <el-link :disabled="!insInfo.quarterOrderId" :underline="false" |
| | | style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo1">æ¥ç</el-link> |
| | | <span style="font-size: 16px;">å£åº¦æ£éªåå§æ°æ®</span> |
| | | <el-link :disabled="!insInfo.quarterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo1">æ¥ç</el-link> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"--> |
| | | <!-- :sonLaboratory="'åææ'" :state="state"--> |
| | | <!-- :typeSource="typeSource"--> |
| | | <!-- @goback="goback" @refreshView="refreshView"/>--> |
| | | <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"--> |
| | | <!-- :sonLaboratory="'åææ'" :state="state"--> |
| | | <!-- :typeSource="typeSource"--> |
| | | <!-- @goback="goback" @refreshView="refreshView"/>--> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | revokeInspectionReport, |
| | | updateEntrustCode |
| | | } from "@/api/business/rawMaterialOrder"; |
| | | import {getWarehouseSubmit} from "@/api/business/materialInspection"; |
| | | import { getWarehouseSubmit } from "@/api/business/materialInspection"; |
| | | // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; |
| | | |
| | | export default { |
| | | name: "b1-material-inspection-order", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {limsTable,DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog}, |
| | | components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | tableData: [], |
| | | tableLoading: false, |
| | | column: [ |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData1: [], |
| | | tableLoading1: false, |
| | | column1: [ |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page1: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData2: [], |
| | | tableLoading2: false, |
| | | column2: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page2: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData3: [], |
| | | tableLoading3: false, |
| | | column3: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page3: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData4: [], |
| | | tableLoading4: false, |
| | | column4: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page4: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | entity: { |
| | | updateBatchNo: null, |
| | |
| | | value: 3 |
| | | } |
| | | ], |
| | | more:false, |
| | | more: false, |
| | | tabIndex: 0, |
| | | multipleSelection:[], |
| | | multipleSelection: [], |
| | | active: 0, //1ï¼ä¸åï¼2ï¼æ¥ç |
| | | orderType: 0, //0ï¼åææä¸åï¼1ï¼å£åº¦æ£éªä¸å |
| | | currentId: null, |
| | | btnLoading: false, |
| | | quashDialogVisible: false, // æ¤éä¸åæéå¼¹æ¡ |
| | | declareDialogVisible: false, // æ¤éæ¥æ£æéå¼¹æ¡ |
| | | insOrderRow:{}, |
| | | insOrderRow: {}, |
| | | upLoad: false, |
| | | filesDialogVisible: false, // éä»¶æ¥çå¼¹æ¡ |
| | | printDialog: false, // æ ç¾æå°å¼¹æ¡ |
| | |
| | | exemptionLoading: false, |
| | | exemptionInfo: {}, |
| | | inspectStatusList: [ |
| | | {label: 'æ£éªä¸', value: 0}, |
| | | {label: 'åæ ¼', value: 1}, |
| | | {label: 'ä¸åæ ¼', value: 2}, |
| | | {label: 'æªä¸å', value: 3}, |
| | | {label: 'è®©æ¥æ¾è¡', value: 4}, |
| | | { label: 'æ£éªä¸', value: 0 }, |
| | | { label: 'åæ ¼', value: 1 }, |
| | | { label: 'ä¸åæ ¼', value: 2 }, |
| | | { label: 'æªä¸å', value: 3 }, |
| | | { label: 'è®©æ¥æ¾è¡', value: 4 }, |
| | | ], |
| | | state: 0, |
| | | orderId: 0, |
| | |
| | | typeSource: null,// 0:æåä¸åï¼1ï¼åææä¸å, 2: éåä¸ä¸å |
| | | InspectInfoDialog: false, // æ°æ®æ¥çå¼¹æ¡ |
| | | insInfo: {}, |
| | | outLoading:false |
| | | outLoading: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | mounted() { |
| | | this.refreshTable() |
| | | }, |
| | | // æ¹æ³éå |
| | |
| | | } |
| | | }, |
| | | // å¾
ä¸åæ¥è¯¢ |
| | | getPurchaseOrderList () { |
| | | getPurchaseOrderList() { |
| | | this.tableLoading = true |
| | | const params = {...this.entity, isInspect: 1, state: 0} |
| | | const params = { ...this.entity, isInspect: 1, state: 0 } |
| | | getWarehouseSubmit(params).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // æ£éªä¸æ¥è¯¢ |
| | | getIfsByStateOneList () { |
| | | getIfsByStateOneList() { |
| | | this.tableLoading1 = true |
| | | const params = {...this.entity, orderState: 1, state: 1} |
| | | const params = { ...this.entity, orderState: 1, state: 1 } |
| | | getIfsByStateOne(params).then(res => { |
| | | this.tableLoading1 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // å·²æ£éªæ¥è¯¢ |
| | | getIfsByOverList () { |
| | | getIfsByOverList() { |
| | | this.tableLoading2 = true |
| | | const params = {...this.entity, orderState: 4, state: 2} |
| | | const params = { ...this.entity, orderState: 4, state: 2 } |
| | | getIfsByOver(params).then(res => { |
| | | this.tableLoading2 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // æ¥è¯¢å£åº¦æ£éª |
| | | getIfsByQuarterList () { |
| | | getIfsByQuarterList() { |
| | | this.tableLoading4 = true |
| | | const params = {...this.entity} |
| | | const params = { ...this.entity } |
| | | getIfsByOver(params).then(res => { |
| | | this.tableLoading4 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // å
¨é¨ |
| | | getIfsByAllList () { |
| | | getIfsByAllList() { |
| | | this.tableLoading3 = true |
| | | const params = {...this.entity, isInspect: 1} |
| | | const params = { ...this.entity, isInspect: 1 } |
| | | getIfsByAll(params).then(res => { |
| | | this.tableLoading3 = false |
| | | if (res.code === 200) { |
| | |
| | | this.resetForm('entity') |
| | | this.refreshTable() |
| | | }, |
| | | pagination (page) { |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination1 (page) { |
| | | pagination1(page) { |
| | | this.page1.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination2 (page) { |
| | | pagination2(page) { |
| | | this.page2.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination3 (page) { |
| | | pagination3(page) { |
| | | this.page3.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination4 (page) { |
| | | pagination4(page) { |
| | | this.page4.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | // æ¥çæ£éªæ°æ® |
| | | viewInspectInfo (row) { |
| | | viewInspectInfo(row) { |
| | | //å½åæ£éªä»»å¡çæ£éªäººå表 |
| | | let inspectorList = [] |
| | | if(row.userName){ |
| | | if (row.userName) { |
| | | inspectorList = row.userName.split(',') |
| | | } |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | if(user){ |
| | | if (user) { |
| | | inspectorList.push(user.name) |
| | | } |
| | | this.inspectorList = inspectorList |
| | | this.insInfo = row |
| | | this.InspectInfoDialog = true |
| | | }, |
| | | closeInsInfoDialog () { |
| | | closeInsInfoDialog() { |
| | | this.InspectInfoDialog = false |
| | | }, |
| | | // ç´æ¥æ¾è¡ |
| | | goPass (row) { |
| | | goPass(row) { |
| | | this.$confirm('æ¯å¦æ¾è¡å½åæ°æ®?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | concessionRelease({ifsInventoryId: row.id}).then(res => { |
| | | concessionRelease({ ifsInventoryId: row.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | }, |
| | | viewInsInfo0 () { |
| | | viewInsInfo0() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.enterOrderId |
| | | this.InspectInfoDialog = false |
| | | }, |
| | | viewInsInfo1 () { |
| | | viewInsInfo1() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.quarterOrderId |
| | |
| | | this.refreshTable('page') |
| | | }, |
| | | // å·æ°é¡µé¢ |
| | | refreshView () { |
| | | refreshView() { |
| | | this.InspectionKey++ |
| | | }, |
| | | // éææä¸å |
| | | copper () { |
| | | copper() { |
| | | this.$router.push("/materialOrder/copperOrder"); |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: {active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: { active: 1 } }); |
| | | }, |
| | | // æå¼æ ç¾æå°å¼¹æ¡ |
| | | openPrint () { |
| | | openPrint() { |
| | | if (this.multipleSelection.length > 0) { |
| | | this.printDialog = true |
| | | this.$nextTick(() => { |
| | |
| | | } |
| | | }, |
| | | // å
³éæ ç¾æå°å¼¹æ¡ |
| | | closePrintDialog () { |
| | | closePrintDialog() { |
| | | this.printDialog = false |
| | | }, |
| | | // ä¸å |
| | | playOrder(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 0, customsInspection: row, active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } }); |
| | | }, |
| | | // å£åº¦æ£éªä¸å |
| | | playOrderSec (row) { |
| | | playOrderSec(row) { |
| | | if (typeof row !== "object") { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {active: row} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { active: row } }); |
| | | } else { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 1, customsInspection: row, active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } }); |
| | | } |
| | | }, |
| | | // æå¼å
æ£å¼¹æ¡ |
| | | exemption (row) { |
| | | exemption(row) { |
| | | this.exemptionVisible = true |
| | | this.exemptionInfo = row |
| | | this.$set(this.exemptionInfo, 'partDetail', row.partDesc) |
| | | }, |
| | | // æäº¤å
æ£ä¿¡æ¯ |
| | | submitExemption () { |
| | | submitExemption() { |
| | | this.exemptionLoading = true |
| | | rawOrderRelease({ |
| | | ifsInventoryId: this.exemptionInfo.id, |
| | |
| | | }) |
| | | }, |
| | | // æå¼æ¤éæ¥æ£å¼¹æ¡ |
| | | cancelDeclare (row) { |
| | | cancelDeclare(row) { |
| | | this.declareDialogVisible = true |
| | | this.insOrderRow = row |
| | | }, |
| | | // æäº¤æ¤éæ¥æ£ç³è¯· |
| | | submitDeclare () { |
| | | revokeInspectionReport({id: this.insOrderRow.id}).then(res => { |
| | | submitDeclare() { |
| | | revokeInspectionReport({ id: this.insOrderRow.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.declareDialogVisible = false |
| | | this.refreshTable() |
| | |
| | | }) |
| | | }, |
| | | // æå¼æ¤éä¸åçå¼¹æ¡ |
| | | cancelOrder (row) { |
| | | cancelOrder(row) { |
| | | if (row.enterOrderId && row.quarterOrderId) { |
| | | this.quashDialogVisible = true |
| | | } else if (row.enterOrderId && !row.quarterOrderId) { |
| | |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealEnterRawOrder({enterOrderId: row.enterOrderId}).then(res => { |
| | | repealEnterRawOrder({ enterOrderId: row.enterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } else if (!row.enterOrderId && row.quarterOrderId) { |
| | | this.$confirm('æ¯å¦æ¤éå£åº¦ä¸å?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } |
| | | this.insOrderRow = row |
| | | }, |
| | | cancelQuashOrder (type) { |
| | | cancelQuashOrder(type) { |
| | | if (type === 'enterOrderId') { |
| | | this.$confirm('æ¯å¦æ¤éå½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealEnterRawOrder({enterOrderId: this.insOrderRow.enterOrderId}).then(res => { |
| | | repealEnterRawOrder({ enterOrderId: this.insOrderRow.enterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } else { |
| | | this.$confirm('æ¯å¦æ¤éå½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: this.insOrderRow.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: this.insOrderRow.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } |
| | | }, |
| | | // ç¹å»æ ·ååç§°æ¥ç详æ
|
| | |
| | | this.dataDialogVisible = true; |
| | | }, |
| | | // å
³éæ°æ®æ¥çå¼¹æ¡ |
| | | closeDataLook () { |
| | | closeDataLook() { |
| | | this.dataDialogVisible = false |
| | | }, |
| | | // éä»¶æ¥ç |
| | | handleFileLook (row) { |
| | | handleFileLook(row) { |
| | | this.filesDialogVisible = true |
| | | this.filesLookInfo = row |
| | | }, |
| | | // å
³ééä»¶æ¥çå¼¹æ¡ |
| | | closeFilesLook () { |
| | | closeFilesLook() { |
| | | this.filesDialogVisible = false |
| | | }, |
| | | // æ¥åä¸è½½ |
| | |
| | | this.downLoadInfo = row |
| | | }, |
| | | // å
³éæ¥åä¸è½½å¼¹æ¡ |
| | | closeDownFileDialog () { |
| | | closeDownFileDialog() { |
| | | this.downFileDialogVisible = false |
| | | }, |
| | | // æ¥ç产ä¸é¾ä¿¡æ¯ |
| | | openInfoDialog (row) { |
| | | openInfoDialog(row) { |
| | | this.showInfoDialog = true |
| | | this.$nextTick(() => { |
| | | this.$refs.showInfoDialog.getInfo(row.id) |
| | | }) |
| | | }, |
| | | // ä¿®æ¹å§æç¼å· |
| | | changeEntrustCode (row) { |
| | | changeEntrustCode(row) { |
| | | this.entrustCodeVisible = true |
| | | this.entrustCodeInfo = {...row} |
| | | this.entrustCodeInfo = { ...row } |
| | | }, |
| | | // å¯¼åº |
| | | handleOut(){ |
| | | let entity = this.tabIndex === 3 ? {...this.entity, isInspect: 2} : {...this.entity,state: 2, orderState: 4,} |
| | | handleOut() { |
| | | let entity = this.tabIndex === 3 ? { ...this.entity, isInspect: 2 } : { ...this.entity, state: 2, orderState: 4, } |
| | | delete entity.orderBy |
| | | this.outLoading = true |
| | | rawAllExport({ |
| | | entity:entity |
| | | },{responseType: "blob"}).then(res => { |
| | | entity: entity |
| | | }, { responseType: "blob" }).then(res => { |
| | | this.outLoading = false |
| | | this.$message.success('å¯¼åºæå') |
| | | const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | |
| | | }) |
| | | }, |
| | | // æäº¤ä¿®æ¹å§æç¼å·ä¿¡æ¯ |
| | | submitCode () { |
| | | submitCode() { |
| | | this.submitCodeLoading = true |
| | | try { |
| | | updateEntrustCode({ |
| | |
| | | this.refreshTable() |
| | | }, |
| | | // è¡¨æ ¼éæ©æ¹æ³ |
| | | selectMethod(val){ |
| | | selectMethod(val) { |
| | | this.multipleSelection = val |
| | | }, |
| | | }, |
| | |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .tab { |
| | | list-style-type: none; |
| | | display: flex; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="è¿è´§éªè¯åå§è®°å½" :visible.sync="isShow" width="1000px" :show-close="false" :close-on-click-modal="false" |
| | | style="max-height: 96vh; margin-top: 2vh" :modal-append-to-body="false" :close-on-press-escape="false"> |
| | | <div class="search"> |
| | | <el-form :inline="true" :model="purchaseForm" label-position="right" :rules="purchaseFormRules" |
| | | ref="purchaseForm" class="form-inline" label-width="130px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ£éªç¼å·:"> |
| | | <el-input clearable v-model="purchaseForm.entrustCode" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ææåå®¶:"> |
| | | <el-input clearable v-model="purchaseForm.supplierName" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å°è´§æ¥æ:"> |
| | | <el-input clearable v-model="purchaseForm.declareDate" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ææåç§°:"> |
| | | <el-input clearable v-model="purchaseForm.sample" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è§æ ¼åå·:"> |
| | | <el-input clearable v-model="purchaseForm.model" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æææ¹å·:"> |
| | | <el-input clearable v-model="purchaseForm.updateBatchNo" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <el-form-item class="headLine" label="éªè¯ä¾æ®æä»¶ç¼å·:" label-width="160px" style="width: 100%" |
| | | prop="verifyFileCode"> |
| | | <el-input clearable v-model="purchaseForm.verifyFileCode" size="small" |
| | | :disabled="operationType === 'view'" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <h4> |
| | | <span style="display: flex;align-items: center;"> |
| | | <span class="line"></span><span>éªè¯å
容</span> |
| | | </span> |
| | | </h4> |
| | | <div class="title">ä¸ã便¹äº§åæ£æµæ¥åçåºæ¬ä¿¡æ¯ç¡®è®¤</div> |
| | | <el-form-item label="ææåç§°:" prop="basicName"> |
| | | <el-radio-group v-model="purchaseForm.basicName" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="è§æ ¼åå·:" prop="basicModel"> |
| | | <el-radio-group v-model="purchaseForm.basicModel" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æææ¹å·:" prop="basicBatchNo"> |
| | | <el-radio-group v-model="purchaseForm.basicBatchNo" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æ§è¡æ å:" prop="basicStandard"> |
| | | <el-radio-group v-model="purchaseForm.basicStandard" :disabled="operationType === 'view'" |
| | | v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¥æ:" prop="basicDate"> |
| | | <el-radio-group v-model="purchaseForm.basicDate" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¾è´§æ°é:" prop="basicNumber"> |
| | | <el-radio-group v-model="purchaseForm.basicNumber" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="ææé¢è²:" prop="basicColor"> |
| | | <el-radio-group v-model="purchaseForm.basicColor" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <div> |
| | | <el-form-item label="å
¶ä»:"> |
| | | <el-input clearable v-model="purchaseForm.basicOtherValue" size="small" |
| | | :disabled="operationType === 'view'" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-radio-group v-model="purchaseForm.basicOther" :disabled="operationType === 'view'"> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <div class="titleSec"> |
| | | <span>äºã便¹äº§åæ£æµæ¥åä¸å项æ§è½ææ çéªè¯</span> |
| | | <span> |
| | | <el-button type="primary" size="small" @click="addItem" |
| | | v-if="operationType === 'add'">æå¨æ·»å æ£éªé¡¹ç®</el-button> |
| | | <el-button type="primary" @click="addFactoryVerifyItem" v-if="operationType === 'add'" |
| | | size="small">æ·»å éªè¯é¡¹ç®</el-button> |
| | | </span> |
| | | </div> |
| | | <div> |
| | | <el-table :data="factoryVerifyItemList" style="width: 98%" v-loading="tableLoading"> |
| | | <el-table-column type="index" label="åºå·" width="180" align="center"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="éªè¯é¡¹ç®" width="300"></el-table-column> |
| | | <el-table-column prop="result" label="éªè¯ç»æ"> |
| | | <template slot-scope="scope"> |
| | | <el-radio-group v-model="scope.row.result" v-removeAriaHidden :disabled="operationType === 'view'"> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" width="120" v-if="operationType === 'add'"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click.native.prevent="deleteRow(scope.$index)" type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetPurchaseDialog')">å æ¶</el-button> |
| | | <el-button type="primary" @click="handlePurchase" :loading="handlePurchaseLoading" |
| | | v-if="operationType === 'add'">ç¡® |
| | | å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="å¾
éªè¯é¡¹ç®" :visible.sync="factoryVerifyItemDia" width="1000px" |
| | | style="max-height: 96vh; margin-top: 2vh" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <el-table :data="tableList" style="width: 100%" v-loading="tableLoading" |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column type="index" label="åºå·" width="60" align="center"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="éªè¯é¡¹ç®"></el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="factoryVerifyItemDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="handleFactoryVerifyItem" :loading="handleFactoryVerifyLoading">æ·» å </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æå¨æ·»å éªè¯é¡¹ç®" :visible.sync="inspectionItemDia" width="500px" @close="resetInput" :show-close="false" |
| | | :close-on-click-modal="false" :close-on-press-escape="false"> |
| | | <el-input v-model="inspectionItem"></el-input> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="inspectionItemDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="handleAdd">æ·» å </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getFactoryVerify, addFactoryVerify } from '@/api/business/unpass.js' |
| | | import { |
| | | getInsProduct, |
| | | } from "@/api/business/inspectionTask.js"; |
| | | export default { |
| | | name: "PurchaseVerification", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | purchaseDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | orderId: { |
| | | type: String, |
| | | default: () => null |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | info: {}, |
| | | isShow: this.purchaseDialog, |
| | | purchaseForm: { |
| | | entrustCode: '', // æ£éªç¼å· |
| | | supplierName: '', // ææåå®¶ |
| | | declareDate: '', // å°è´§æ¥æ |
| | | sample: '', // ææåç§° |
| | | model: '', // è§æ ¼åå· |
| | | updateBatchNo: '', // æææ¹å· |
| | | verifyFileCode: '', // éªè¯ä¾æ®æä»¶ç¼å· |
| | | // ç¡®è®¤ä¿¡æ¯ |
| | | basicName: '', // ææåç§° |
| | | basicModel: '', // è§æ ¼åå· |
| | | basicBatchNo: '', // æææ¹å· |
| | | basicStandard: '', // æ§è¡æ å |
| | | basicDate: '', // çäº§æ¥æ |
| | | basicNumber: '', // ä¾è´§æ°é |
| | | basicColor: '', // ææé¢è² |
| | | basicOtherValue: '', // å
¶ä»åç§° |
| | | basicOther: '', // å
¶ä» |
| | | }, |
| | | purchaseFormRules: { |
| | | verifyFileCode: [{ required: true, message: '请填åéªè¯ä¾æ®æä»¶ç¼å·', trigger: 'blur' }], |
| | | basicName: [{ required: false, message: 'è¯·éæ©ææåç§°éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicModel: [{ required: false, message: 'è¯·éæ©è§æ ¼åå·éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicStandard: [{ required: false, message: 'è¯·éæ©æ§è¡æ åéªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicDate: [{ required: false, message: 'è¯·éæ©çäº§æ¥æéªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicNumber: [{ required: false, message: 'è¯·éæ©ä¾è´§æ°ééªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicColor: [{ required: false, message: 'è¯·éæ©ææé¢è²éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | }, |
| | | factoryVerifyItemList: [], // 便¹äº§åæ£æµæ¥åä¸å项æ§è½ææ çéªè¯ |
| | | tableList: [], // |
| | | multipleSelection: [], // |
| | | operationType: '', |
| | | handlePurchaseLoading: false, |
| | | tableLoading: false, |
| | | factoryVerifyItemDia: false, // æ·»å éªè¯é¡¹ç®å¼¹æ¡ |
| | | handleFactoryVerifyLoading: false, |
| | | inspectionItemDia: false, |
| | | inspectionItem: '' |
| | | } |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | async getInsOrder(operationType, item) { |
| | | this.operationType = operationType |
| | | this.info = item |
| | | // æ¥è¯¢å·²æäº¤çæ°æ® |
| | | let factoryVerify = await getFactoryVerify({ insOrderId: this.orderId }) |
| | | this.purchaseForm = factoryVerify.data |
| | | this.factoryVerifyItemList = factoryVerify.data.factoryVerifyItemList || [] |
| | | }, |
| | | // æå¼æ·»å éªè¯é¡¹ç®å¼¹æ¡ |
| | | async addFactoryVerifyItem() { |
| | | this.factoryVerifyItemDia = true |
| | | this.tableList = [] |
| | | if (this.info.cableTag === undefined) { |
| | | this.info.cableTag = '' |
| | | } |
| | | this.tableLoading = true; |
| | | const type1 = 5 |
| | | // æ¥è¯¢æ£éªé¡¹ç® |
| | | let res = await getInsProduct({ id: this.info.id, type: type1, laboratory: this.info.sonLaboratory, cableTag: this.info.cableTag, rawMaterialTag: this.info.rawMaterialTag }) |
| | | if (res.data.length > 0) { |
| | | res.data.map((item) => { |
| | | if (item.inspectionItemSubclass) { |
| | | item.inspectionItem = item.inspectionItem + '-' + item.inspectionItemSubclass |
| | | } |
| | | const obj = Object.assign({ |
| | | inspectionItem: item.inspectionItem, |
| | | result: item.result, |
| | | }) |
| | | this.tableList.push(obj) |
| | | }) |
| | | this.tableLoading = false; |
| | | } |
| | | }, |
| | | handleSelectionChange(val) { |
| | | console.log('val---', val) |
| | | this.multipleSelection = val; |
| | | }, |
| | | addItem() { |
| | | this.inspectionItemDia = true |
| | | }, |
| | | deleteRow(index) { |
| | | this.factoryVerifyItemList.splice(index, 1); |
| | | }, |
| | | handleAdd() { |
| | | if (!this.inspectionItem) { |
| | | this.$message.warning('请填åå
容') |
| | | return |
| | | } |
| | | this.factoryVerifyItemList.push({ |
| | | inspectionItem: this.inspectionItem, |
| | | result: null, |
| | | }) |
| | | this.inspectionItemDia = false |
| | | }, |
| | | resetInput() { |
| | | this.inspectionItem = '' |
| | | this.inspectionItemDia = false |
| | | }, |
| | | // æäº¤æ·»å è¦éªè¯çæ£éªé¡¹ |
| | | handleFactoryVerifyItem() { |
| | | if (this.multipleSelection.length === 0) { |
| | | this.$message.warning('è¯·éæ©æ°æ®') |
| | | } else { |
| | | this.factoryVerifyItemList = JSON.parse(JSON.stringify(this.multipleSelection)) |
| | | this.factoryVerifyItemDia = false |
| | | } |
| | | }, |
| | | handlePurchase() { |
| | | this.$refs['purchaseForm'].validate((valid) => { |
| | | if (valid) { |
| | | if (this.factoryVerifyItemList.some(item => item.result === undefined || item.result === null || item.result === '')) { |
| | | this.$message.warning('è¯·éæ©ä¾æ¹äº§åéªè¯ç»æ') |
| | | return |
| | | } |
| | | this.factoryVerifyItemList.forEach((item, index) => { |
| | | item.sort = index |
| | | }) |
| | | this.purchaseForm.factoryVerifyItemList = JSON.parse(JSON.stringify(this.factoryVerifyItemList)) |
| | | this.handlePurchaseLoading = true |
| | | addFactoryVerify(this.purchaseForm).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetPurchaseDialog') |
| | | } |
| | | this.handlePurchaseLoading = false |
| | | }) |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .headLine>>>.el-form-item__content { |
| | | width: 68%; |
| | | } |
| | | |
| | | >>>.el-form-item__content { |
| | | display: inline-block; |
| | | } |
| | | |
| | | h4 .line { |
| | | display: inline-block; |
| | | width: 3px; |
| | | height: 16px; |
| | | background: #3A7BFA; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .title { |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | .titleSec { |
| | | margin: 10px 0; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | >>>.el-dialog__body { |
| | | max-height: 700px; |
| | | overflow-y: auto; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="æ°å¢ä¸åæ ¼å¤æµ" :visible.sync="isShow" width="70%" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <div class="table"> |
| | | <el-table class="el-table" ref="productTable" :data="productList" max-height="800px" tooltip-effect="dark" |
| | | border v-loading="tableLoading" @selection-change="selectProduct" style="margin-bottom: 10px;" |
| | | @select-all="handleAll"> |
| | | <el-table-column type="selection" width="65"></el-table-column> |
| | | <el-table-column prop="inspectionItemClass" label="æ£éªé¡¹åç±»" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="tell" label="è¦æ±æè¿°" min-width="220px"></el-table-column> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="220px"></el-table-column> |
| | | <el-table-column prop="lastValue" label="æ£éªç»æ" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="insResult" label="ç»æå¤å®" min-width="140" show-overflow-tooltip> |
| | | <template> |
| | | <el-tag type="danger">ä¸åæ ¼</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetAddUnPass')">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitHandle" :loading="handlePassLoading">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getInsProductUnqualified } from '@/api/business/unpass.js' |
| | | export default { |
| | | name: "addUnPass", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | addUnPassDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | isShow: this.addUnPassDialog, |
| | | handlePassLoading: false, |
| | | productList: [], |
| | | productListSelected: [], |
| | | productIds: [], |
| | | tableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | getInsOrder(info) { |
| | | this.tableLoading = true |
| | | try { |
| | | getInsProductUnqualified({ id: info.id, type: info.type, laboratory: info.laboratory, rawMaterialTag: info.rawMaterialTag }).then(res => { |
| | | if (res.code === 200) { |
| | | this.productList = res.data |
| | | } |
| | | this.tableLoading = false |
| | | }) |
| | | } catch (err) { |
| | | this.tableLoading = false |
| | | } |
| | | }, |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | submitHandle() { |
| | | if (this.productListSelected.length === 0) { |
| | | this.$message.warning('è¯·éæ©éè¦å¤æµçæ£éªé¡¹') |
| | | return |
| | | } |
| | | this.$confirm('确认æäº¤ä¸åæ ¼å¤æµ?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.handlePass() |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | }, |
| | | handlePass() { |
| | | this.handlePassLoading = true |
| | | try { |
| | | addUnqualifiedRetest({ |
| | | ids: this.productIds |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetAddUnPass') |
| | | } |
| | | this.handlePassLoading = false |
| | | }) |
| | | } catch (e) { |
| | | this.handlePassLoading = false |
| | | } |
| | | }, |
| | | selectProduct(val) { |
| | | this.productListSelected = val |
| | | this.productIds = [] |
| | | val.forEach(a => { |
| | | this.productIds.push(a.id) |
| | | }) |
| | | }, |
| | | handleAll(val) { |
| | | this.productListSelected = val |
| | | this.productIds = [] |
| | | val.forEach(a => { |
| | | this.productIds.push(a.id) |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="æ°å¢ä¸åæ ¼å¤ç" :visible.sync="isShow" width="740px" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <div class="search"> |
| | | <el-form :inline="true" :model="unPassForm" :rules="unPassFormRules" ref="unPassForm" class="form-inline" |
| | | label-width="120px"> |
| | | <div> |
| | | <el-form-item class="headLine" label="æ é¢:" style="width: 100%" prop="headline"> |
| | | <el-input clearable v-model="unPassForm.headline" size="small" :disabled="type === 'view'" type="textarea" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="ä¾åºååç§°:"> |
| | | <el-input clearable v-model="unPassForm.supplierName" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æåç§°:"> |
| | | <el-tooltip class="item" effect="dark" placement="top" :content="unPassForm.materialName"> |
| | | <el-input clearable v-model="unPassForm.materialName" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¹æ¬¡:"> |
| | | <el-input clearable v-model="unPassForm.productionBatch" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°è´§æ°é:"> |
| | | <el-input clearable v-model="unPassForm.cargoQuantity" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è§æ ¼åå·:"> |
| | | <el-input clearable v-model="unPassForm.specsModels" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æ£æ¶é´:"> |
| | | <el-date-picker v-model="unPassForm.inspectTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" |
| | | disabled style="width: 175px" type="date" placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åé¦äºº:"> |
| | | <el-input clearable v-model="unPassForm.feedbackUser" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å馿¶é´:" prop="feedbackTime"> |
| | | <el-date-picker v-model="unPassForm.feedbackTime" :disabled="type === 'view'" format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd HH:mm:ss" size="small" style="width: 175px" type="date" placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»:" prop="classification"> |
| | | <el-select v-model="unPassForm.classification" :disabled="type === 'view'" size="small" placeholder="è¯·éæ©"> |
| | | <el-option v-for="item in classificationOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ ¼å½å±:" prop="offGradeAscription"> |
| | | <el-select v-model="unPassForm.offGradeAscription" :disabled="type === 'view'" size="small" |
| | | placeholder="è¯·éæ©"> |
| | | <el-option v-for="item in offGradeAscriptionOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ ¼æ
åµæè¿°:" prop="unqualifiedDesc"> |
| | | <el-input clearable type="textarea" v-model="unPassForm.unqualifiedDesc" :disabled="type === 'view'" |
| | | style="width: 484px" size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-upload v-if="type === 'add'" ref="upload" :action="action2" :on-change="beforeUpload" :on-error="onError" |
| | | :on-remove="handleRemoveFile" :on-success="getUnpassUrl" :headers="headers" :file-list="unPassFilesList"> |
| | | <el-button size="small" type="primary" style="text-align: left">éä»¶ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | <div v-if="type !== 'add'"> |
| | | <div style="padding-left: 40px;margin-bottom: 4px">éä»¶ï¼</div> |
| | | <div style="padding-left: 40px;margin-bottom: 4px" v-for="item in unqualifiedHandlerFiles"> |
| | | <span>{{ item.fileName }}</span><el-link type="primary" style="margin-left: 20px;vertical-align: top" |
| | | :underline="false" @click="handleDown(item)">ä¸è½½</el-link> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetForm')">å æ¶</el-button> |
| | | <el-button type="primary" @click="handlunPass" :loading="handlunPassLoading" v-if="type === 'add'">ç¡® |
| | | å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getInsOrder, getUnqualifiedHandler, downFile, addUnqualifiedHandler } from '@/api/business/unpass.js' |
| | | export default { |
| | | name: "unPassDialog", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | unPassDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | orderId: { |
| | | type: String, |
| | | default: () => null |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | isShow: this.unPassDialog, |
| | | unPassForm: { // ä¸åæ ¼å¤çæ°æ® |
| | | headline: '', // æ é¢ |
| | | inventoryQuantityId: '', // åææid,ä¸åå±ç¤ºï¼åªä¼ å¼ |
| | | supplierName: '', // ä¾åºååç§° |
| | | materialName: '', // ç©æåç§° |
| | | productionBatch: '', // çäº§æ¹æ¬¡ |
| | | cargoQuantity: '', // å°è´§æ°é |
| | | specsModels: '', // è§æ ¼åå· |
| | | inspectTime: '', // æ¥æ£æ¶é´ |
| | | feedbackUser: '', // åé¦äºº |
| | | feedbackTime: '', // å馿¶é´ |
| | | classification: '', // åç±» |
| | | offGradeAscription: '', // ä¸åæ ¼å½å± |
| | | unqualifiedDesc: '', // ä¸åæ ¼æ
åµæè¿° |
| | | unqualifiedHandlerFiles: [], // ä¸åæ ¼éä»¶URL |
| | | }, |
| | | unPassFormRules: { |
| | | offGradeAscription: [ |
| | | { required: true, message: 'è¯·éæ©ä¸åæ ¼å½å±', trigger: 'change' } |
| | | ], |
| | | headline: [ |
| | | { required: true, message: 'è¯·å¡«åæ é¢', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | unPassFilesList: [], // ä¸åæ ¼å¤çéä»¶æ°æ® |
| | | classificationOptions: [], // ä¸åæ ¼åç±»ä¸ææ¡ |
| | | offGradeAscriptionOptions: [], // ä¸åæ ¼å½å±ä¸ææ¡ |
| | | handlunPassLoading: false, |
| | | unqualifiedHandlerFiles: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getClassificationOptions() // è·åä¸åæ ¼åç±»ä¸ææ¡é项 |
| | | this.getOffGradeAscriptionOptions() // è·åä¸åæ ¼å½å±ä¸ææ¡é项 |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | getInsOrder(type, row) { |
| | | this.type = type |
| | | if (type === 'add') { |
| | | // èµå¼é»è®¤æ°æ® |
| | | getInsOrder({ |
| | | orderId: this.orderId |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.unPassForm.headline = `No.0005-ä¸å¤©è£
å¤çµçº¿-å¤è´åä¸åæ ¼åé¦è¯å®¡åçº æ£é¢é²æµç¨(æ£å¼ç)-${JSON.parse(localStorage.getItem("user")).name}-${new Date().toISOString().substring(0, 10)}` // æ é¢ |
| | | this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // åææid |
| | | this.unPassForm.insOrderId = res.data.insOrder.id // 订åid |
| | | this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // ä¾åºååç§° |
| | | this.unPassForm.materialName = res.data.insOrder.sampleType // ç©æåç§° |
| | | this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // çäº§æ¹æ¬¡ |
| | | this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // å°è´§æ°é |
| | | this.unPassForm.specsModels = res.data.insOrder.partDetail // è§æ ¼åå· |
| | | this.unPassForm.inspectTime = res.data.insOrderTemplate.sendTime.substring(0, 10) // æ¥æ£æ¶é´ |
| | | this.unPassForm.feedbackTime = new Date().toISOString().substring(0, 10) // æ¥æ£æ¶é´ |
| | | this.unPassForm.feedbackUser = JSON.parse(localStorage.getItem("user")).name // åé¦äºº |
| | | } |
| | | }) |
| | | } else { |
| | | this.getInfo(row.handlerId) |
| | | this.unPassForm = { ...row } |
| | | } |
| | | }, |
| | | getInfo(handlerId) { |
| | | getUnqualifiedHandler({ |
| | | id: handlerId |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.unqualifiedHandlerFiles = this.HaveJson(res.data.unqualifiedHandlerFiles) |
| | | } |
| | | }) |
| | | }, |
| | | handleDown(row) { |
| | | downFile({ |
| | | id: row.id, |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | let url = ''; |
| | | if (res.data.type == 1) { |
| | | url = this.javaApi + '/img/' + res.data.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } else { |
| | | url = this.javaApi + '/word/' + res.data.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } |
| | | } |
| | | }).catch(error => { |
| | | |
| | | }) |
| | | }, |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | handlunPass() { |
| | | this.$refs['unPassForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.unPassForm.unqualifiedHandlerFiles.forEach(item => { |
| | | delete item.orderBy |
| | | }) |
| | | this.handlunPassLoading = true |
| | | addUnqualifiedHandler(this.unPassForm).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetForm') |
| | | } |
| | | this.handlunPassLoading = false |
| | | }) |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | getUnpassUrl(response, file, fileList) { |
| | | // éä»¶ä¸ä¼ æååï¼å°urlå¨æäº¤ä¸åæ ¼å¤çæ¶ä¼ ç»åå° |
| | | if (response.code == 200) { |
| | | this.$message.success('ä¸ä¼ æå') |
| | | this.unPassForm.unqualifiedHandlerFiles.push(response.data) |
| | | } |
| | | }, |
| | | // ç§»é¤éä»¶ |
| | | handleRemoveFile(file) { |
| | | const index = this.unPassForm.unqualifiedHandlerFiles.findIndex(val => val === file.response.data) |
| | | if (index > -1) { |
| | | this.unPassForm.unqualifiedHandlerFiles.splice(index, 1) |
| | | } |
| | | }, |
| | | beforeUpload(file) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | | } else { |
| | | this.upLoading = true; |
| | | return true; |
| | | } |
| | | }, |
| | | onError(err, file, fileList) { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | getClassificationOptions() { |
| | | // ä¸åæ ¼åç±» |
| | | this.getDicts("categories_no_conformities").then((response) => { |
| | | this.classificationOptions = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | getOffGradeAscriptionOptions() { |
| | | // ä¸åæ ¼å½å± |
| | | this.getDicts("attribution_no_conformities").then((response) => { |
| | | this.offGradeAscriptionOptions = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'token': sessionStorage.getItem('token') |
| | | } |
| | | }, |
| | | action2() { |
| | | return this.javaApi + '/unqualifiedHandler/uploadFileByUnqualified' |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .headLine>>>.el-form-item__content { |
| | | width: 68%; |
| | | } |
| | | </style> |
| | |
| | | "@": 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({ |