From ef1b406e8112c097d70deb0e23fc9cec1c9a535f Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期四, 11 七月 2024 12:49:30 +0800 Subject: [PATCH] 修改bug --- src/components/do/b1-inspect-order-plan/Inspection.vue | 224 ++++++++++++++----------------------------------------- 1 files changed, 58 insertions(+), 166 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index e97445c..7ace4eb 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -278,11 +278,11 @@ </el-radio-group> <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;" v-if="PROJECT=='妫�娴嬩腑蹇�'"> <el-form-item label="娓╁害:" style="margin-bottom: 0;"> - <el-input clearable v-model="otherForm.temperature" size="small" placeholder="" style="width: 100px;" @change="m=>subOtherForm(m,'temperature')"></el-input> + <el-input v-model="otherForm.temperature" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')"></el-input> <span style="margin-left: 4px;">鈩�</span> </el-form-item> <el-form-item label="婀垮害:" style="margin-bottom: 0;"> - <el-input clearable v-model="otherForm.humidity" size="small" placeholder="" style="width: 100px;" @change="m=>subOtherForm(m,'humidity')"></el-input> + <el-input v-model="otherForm.humidity" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input> <span style="margin-left: 4px;">%</span> </el-form-item> </el-form> @@ -517,7 +517,7 @@ <el-table-column prop="comValue" align="center" - label="骞冲潎鍊�" + label="琛板噺绯绘暟" min-width="150"> </el-table-column> <el-table-column @@ -810,7 +810,9 @@ code0:null, value1:null, code1:null, - } + }, + result: null, + worker: null, } }, computed: { @@ -950,7 +952,24 @@ } } }, + beforeDestroy() { + // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕� + this.stopWorker(); + }, methods: { + startWorker() { + if (this.worker) { + this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝� + } + // 鍒涘缓 Worker 瀹炰緥 + this.worker = new Worker('/static/js/worker.js'); + }, + stopWorker() { + if (this.worker) { + this.worker.terminate(); + this.worker = null; + } + }, changeItem(row){ if(row.value0&&row.value1){ this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(3)) @@ -1650,170 +1669,43 @@ this.handleExcelMethod() }, changeInput(m, code) { - let str = code.split('-') - let r = str[1] - let c = str[2] - let id = str[0] - let pId = str[3] - var list = [] - for (let a in this.tableList) { - if (this.tableList[a].templateId == id) { - list = this.tableList[a].arr - break - } - } - this.excelMethodList.forEach(item => { - if (item.valueList.find(m => m.r == r && m.c == c)) { - var comValue = {} - item.valueList.forEach(a => { - list.forEach(b => { - if (b[0].r == a.r) { - b.forEach(c => { - if (c.c == a.c) { - var tableCode = '' - for (var d in this.comparisonList) { - if (c.c == this.comparisonList[d].value) { - tableCode = this.comparisonList[d].label - break - } - } - if(this.getInspectionValueType(item.i)==1&&!isNaN(parseFloat(c.v.v))){ - comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v) - }else{ - comValue[(tableCode + (c.r + 1))] = c.v.v - } - } - }) - } - }) - }) - if (item.v.ps != undefined && item.v.ps.value == '缁撹') { - try { - if (this.currentSample.insProduct.find(m => m.id == item.i)) { - let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null; - let res = Object.values(comValue)[0] - let comp = [] - if(res==''||res==null||res==undefined||res=='Infinity'){ - item.v.v = '' - }else{ - if(ask){ - comp = ask.map((m, i) => { - if (m.includes('RTS')) { - m = m.replace('RTS*', '') - } - if (m.includes('=')) { - let str = this.handleFraction(m.split('=')[1]) - if(typeof res == 'string'&&typeof str == 'string'){ - return res.trim() == str.trim() - }else{ - return eval(res) == eval(str) - } - } else if (m.includes('鈮�')) { - let str = this.handleFraction(m.split('鈮�')[1]) - return eval(res) >= eval(str) - }else if (m.includes('鈮�')) { - let str = this.handleFraction(m.split('鈮�')[1]) - return eval(res) <= eval(str) - }else if (m.includes('<')) { - let str = this.handleFraction(m.split('<')[1]) - return eval(res) < eval(str) - }else if (m.includes('>')) { - let str = this.handleFraction(m.split('>')[1]) - return eval(res) > eval(str) - }else if (m.includes('~')) { - let k = m.split('~') - return eval(res) >= eval(this.handleFraction((k[0]))) && eval(res) <= eval(this.handleFraction(k[1])) - }else if(m.includes('-')){ - let k = m.split('-') - return eval(res) >= eval(this.handleFraction(k[0])) && eval(res) <= eval(this.handleFraction(k[1])) - }else if(m.includes('卤')){ - let k = m.split('卤') - return eval(res) >= eval((this.handleFraction(k[0]) - this.handleFraction(k[1]))) && eval(res) <= eval((this.handleFraction(k[0]) + this.handleFraction(k[1]))) - }else if(m.includes('锛�')){ - let str = this.handleFraction(m.split('锛�')[1]) - return eval(res) > eval(str) - }else if(m.includes('锛�')){ - let str = this.handleFraction(m.split('锛�')[1]) - return eval(res) < eval(str) - } - }) - } - if (comp.every(m => m)) { - item.v.v = 1 - } else { - item.v.v = 0 - } - } + this.startWorker() + + // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 + this.worker.postMessage(JSON.stringify({ + code: code, + tableList:this.tableList, + excelMethodList:this.excelMethodList, + comparisonList:this.comparisonList, + currentSample:this.currentSample, + PROJECT:this.PROJECT, + param:this.param + })); + + // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� + this.worker.onmessage = (event) => { + this.result = JSON.parse(event.data); + switch (this.result.method){ + case 'saveInsContext': + this.$nextTick(()=>{ + this.tableList = this.result.value.tableList + this.param = this.result.value.param this.saveInsContext() - } - } catch (error) { - - } - - } else { - let comResult = '' - try { - if(this.getInspectionValueType(item.i)==1){ - let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null; - comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue) - // 瑁呭椤圭洰妫�楠屽�艰浆鍖� - if (this.PROJECT === '瑁呭鐢电紗' && ask[0].includes('RTS')) { - let num2 = new this.$Big(comResult) - comResult = num2.toExponential() - } - }else{ - let valueList = []; - item.valueList.forEach(a => { - console.log(a) - valueList.push({ - name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`, - value: 0, - }) - }) - for (var a in comValue) { - valueList.forEach(b => { - if (b.name == a) { - b.value = comValue[a] - } - }) - } - let str = item.v.f.replace(/=/g, ' ') - valueList.forEach(b => { - str = str.replace(b.name, b.value) - }) - console.log(str) - comResult = str - } - } catch (error) { - } - try { - list.forEach(a => { - if (a[0].r == item.r && comResult !== '') { - for (var b in a) { - if (a[b].c == item.c) { - try{ - let val = parseFloat(comResult.toFixed(3)) - a[b].v.v = isNaN(val) ? '' : val - }catch(e){ - a[b].v.v = comResult - } - break - } - } - } - }) - this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝�� - } catch (error) { - - } - } + }) + break; + case 'tableList': + this.$nextTick(()=>{ + this.tableList = this.result.value + }) + break; + case 'getCurrentInsProduct': + this.getCurrentInsProduct(this.result.value) + break; } - }) - try { - this.getCurrentInsProduct(pId) - } catch (error) { - - } + // if(this.result.method=='saveInsContext'){ + // this.stopWorker(); // 澶勭悊瀹屾垚鍚庡仠姝� Worker + // } + }; }, handleFraction(str){ if(str&&typeof(str)=='string'&&str.includes('/')){ -- Gitblit v1.9.3