From 98810eb52a46ec72f2bc3d89be8ea42c33d55c5f Mon Sep 17 00:00:00 2001 From: gaoluyang <gaoluyang@rengu.cc> Date: 星期三, 17 七月 2024 10:14:49 +0800 Subject: [PATCH] 日工时管理的辅助工时的录入数据,完成一个数据的录入后页面不跳转,但是弹窗的内容清空继续新增录入 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 638 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 353 insertions(+), 285 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 1b84f9a..ef99776 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -276,13 +276,13 @@ <el-radio-button :label="item.id" v-for="(item,index) in fiber" :key="index" size="small">{{ item.color }}</el-radio-button> </el-radio-group> - <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;"> + <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: 50px;" @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: 50px;" @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> @@ -300,8 +300,9 @@ :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`"> <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1"> <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" - :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" - @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j"> + :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" + @input="handleInput(n)" + @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j"> <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> </el-input> @@ -318,12 +319,12 @@ v-else-if="getInspectionValueType(n.i) == 4">/</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" + <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='瑁呭鐢电紗'" class="table_input" v-model="n.v.v" @change="saveInsContext()"> <el-option label="鍚堟牸" :value="1"></el-option> <el-option label="涓嶅悎鏍�" :value="0"></el-option> - </el-select> --> - <template> + </el-select> + <template v-if="PROJECT=='妫�娴嬩腑蹇�'||PROJECT=='瑁呭鐢电紗'&&getInspectionValueType(n.i) != 2 "> <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span> <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span> <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span> @@ -396,7 +397,7 @@ </div> <div class="center-box" v-loading="tableLoading" v-else> <el-divider></el-divider> - <h4 style="margin-bottom: 20px;">娓╁害寰幆妫�楠屽師濮嬭褰�</h4> + <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;">娓╁害寰幆妫�楠屽師濮嬭褰�</h4> <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> <el-form-item label="鍨嬪彿:" style="margin-bottom: 0;"> <el-input clearable v-model="wareForm0.model" disabled size="small" placeholder=""></el-input> @@ -430,43 +431,29 @@ </el-form-item> </el-form> <el-divider></el-divider> - <el-form :inline="true" :model="wareForm0" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form :inline="true" :model="equipForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> <el-form-item label="浠櫒鍚嶇О:"> - <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> - <el-option - v-for="item in temperatureOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> + <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input> </el-form-item> <el-form-item label="浠櫒缂栧彿:"> - <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="equipForm.code0" placeholder="璇烽�夋嫨" size="small"> <el-option - v-for="item in temperatureOptions" + v-for="item in equipOptions" :key="item.value" - :label="item.label" + :label="item.value" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item label="浠櫒鍚嶇О:" style="margin-left: 80px;"> - <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> - <el-option - v-for="item in temperatureOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> + <el-form-item label="浠櫒鍚嶇О:" > + <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input> </el-form-item> <el-form-item label="浠櫒缂栧彿:"> - <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="equipForm.code1" placeholder="璇烽�夋嫨" size="small"> <el-option - v-for="item in temperatureOptions" + v-for="item in equipOptions" :key="item.value" - :label="item.label" + :label="item.value" :value="item.value"> </el-option> </el-select> @@ -474,7 +461,9 @@ </el-form> <el-table :data="wareTableData" + ref="wareTableData" border + v-loading="wareTableDataLoading" style="width: 100%;margin-bottom: 30px;" align="center"> <el-table-column label="搴忓彿" @@ -513,7 +502,7 @@ align="center" width="130"> <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.value0" placeholder="" @change="m=>changeItem(m,0)"></el-input> + <el-input size="small" v-model="scope.row.value0" placeholder="" @change="m=>changeItem(scope.row)"></el-input> </template> </el-table-column> <el-table-column @@ -522,29 +511,30 @@ align="center" width="130"> <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.value1" placeholder="" @change="m=>changeItem(m,1)"></el-input> + <el-input size="small" v-model="scope.row.value1" placeholder="" @change="m=>changeItem(scope.row)"></el-input> </template> </el-table-column> <el-table-column - prop="zip" + prop="comValue" align="center" - label="骞冲潎鍊�" + label="琛板噺绯绘暟" min-width="150"> </el-table-column> <el-table-column - prop="lastValue" + prop="resValue" label="琛板噺宸�" align="center" + v-if="wareForm.inspectionItemSubclass!='20(甯告俯)'" min-width="150"> </el-table-column> <el-table-column prop="insResult" label="缁撹" align="center" - min-width="150"> + min-width="150" v-if="wareForm.inspectionItemSubclass!='20(甯告俯)'"> <template slot-scope="scope"> <span v-if="scope.row.insResult===1" style="color: green;">鍚堟牸</span> - <span v-if="scope.row.insResult===0" style="color: red;">涓嶅悎鏍�</span> + <span v-else-if="scope.row.insResult===0" style="color: red;">涓嶅悎鏍�</span> <span v-else>寰呭畾</span> </template> </el-table-column> @@ -675,6 +665,7 @@ }, data() { return { + wareTableDataLoading:false, fileAdd:false, sampleVisible: false, taskVisible: false, @@ -802,7 +793,7 @@ currentTab:null, wareForm:{ inspectionItem:1, - inspectionItemSubclass:20, + inspectionItemSubclass:'20(甯告俯)', }, wareForm0:{}, numOptions:[], @@ -814,6 +805,14 @@ humidity:null, temperature:null, }, + equipForm:{ + value0:null, + code0:null, + value1:null, + code1:null, + }, + result: null, + worker: null, } }, computed: { @@ -870,7 +869,7 @@ } let list = await this.getCurrentProduct(this.currentSample.id,0) this.currentSample.insProduct = this.HaveJson(list) - console.log(this.currentSample) + // console.log(this.currentSample) this.currentSample.insProduct.forEach(a => { this.param[a.id] = { insValue: [], @@ -912,28 +911,218 @@ }) } }, + equipForm:{ + deep:true, + handler(val){ + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'&&this.equipOptions&&this.equipOptions.length>0){ + this.param[this.currentSample.insProduct[0].id].equipValue = [] + this.param[this.currentSample.insProduct[0].id].equipName = [] + if(this.equipForm.code0){ + this.equipForm.value0 = this.equipOptions.find(m=>m.value==this.equipForm.code0).label + this.param[this.currentSample.insProduct[0].id].equipValue.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.code0 + } + }) + this.param[this.currentSample.insProduct[0].id].equipName.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.value0 + } + }) + } + if(this.equipForm.code1){ + this.equipForm.value1 = this.equipOptions.find(m=>m.value==this.equipForm.code1).label + this.param[this.currentSample.insProduct[0].id].equipValue.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.code1 + } + }) + this.param[this.currentSample.insProduct[0].id].equipName.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.value1 + } + }) + } + this.saveInsContext() + } + } + } + }, + beforeDestroy() { + // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕� + this.stopWorker(); }, methods: { - changeItem(m,index){}, + 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)) + }else{ + return + } + this.param[row.id].insValue = [ + { + i:row.id, + v:{ + v:row.value0 + } + }, + { + i:row.id, + v:{ + v:row.value1 + } + } + ] + this.param[row.id].comValue = [{ + i:row.id, + v:{ + v:row.comValue + } + }] + if(this.wareForm.inspectionItemSubclass!='20(甯告俯)'){ + row.resValue = row.comValue?Math.abs(row.comValue-20).toFixed(3):'' + this.param[row.id].resValue.v.v = row.resValue + if(row.ask&&row.resValue){ + if(row.ask.includes('<')){ + row.insResult = row.resValue<row.ask.split('<')[1]?1:0 + }else if(row.ask.includes('>')){ + row.insResult = row.resValue<row.ask.split('>')[1]?1:0 + }else if(row.ask.includes('=')){ + row.insResult = row.resValue==row.ask.split('=')[1]?1:0 + }else if(row.ask.includes('鈮�')){ + row.insResult = row.resValue>=row.ask.split('鈮�')[1]?1:0 + }else if(row.ask.includes('鈮�')){ + row.insResult = row.resValue<=row.ask.split('鈮�')[1]?1:0 + } + this.param[row.id].insResult.v.v = row.insResult + } + }else{ + this.param[row.id].insResult.v.v = 1 + } + this.$refs.wareTableData.doLayout() + this.saveInsContext() + }, wareFormChange(m,type){ + if(this.PROJECT!='妫�娴嬩腑蹇�'){ + return + } if(m&&type){ - this.wareForm[type] = Number(m) + this.wareForm[type] = m } let wareForm = {...this.wareForm} - wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'鈩�' + if(this.wareForm.inspectionItemSubclass=='20(甯告俯)'){ + wareForm.inspectionItemSubclass ='20鈩�(甯告俯)' + }else{ + wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'鈩�' + } + this.wareTableDataLoading = true this.$axios.post(this.$api.insOrderPlan.temCycle,{ sampleId:this.currentSample.id, ...wareForm }).then(res => { + this.wareTableDataLoading = false if (res.code == 201) return let {productVos,sampleVo} = res.data this.wareForm0 = sampleVo productVos = productVos.map(m=>{ let obj = {...m,...m.insProduct} + this.param[obj.id] = { + insValue: [], + comValue: [], + resValue: { + i:obj.id, + v:{ + v:null + } + }, + equipValue: [], + equipName: [], + insResult: { + i:obj.id, + v:{ + v:null + } + } + } + let insProductResult = obj.insProductResult + if(insProductResult){ + for(let i in insProductResult){ + switch (i) { + case 'insValue': + let insValue = JSON.parse(insProductResult[i]) + if(insValue&&insValue.length>1){ + this.param[obj.id].insValue = [ + { + i:obj.id, + v:{ + v:insValue[0].v + } + }, + { + i:obj.id, + v:{ + v:insValue[1].v + } + } + ] + obj.value0 = insValue[0].v + obj.value1 = insValue[1].v + } + break; + case 'comValue': + let comValue = JSON.parse(insProductResult[i]) + if(comValue&&comValue.length>0){ + this.param[obj.id].comValue = [ + { + i:obj.id, + v:{ + v:comValue[0].v + } + } + ] + obj.comValue = comValue[0].v + } + break; + default: + break; + } + } + this.param[obj.id].resValue = { + i:obj.id, + v:{ + v:obj.lastValue + } + } + obj.resValue = obj.lastValue + this.param[obj.id].insResult = { + i:obj.id, + v:{ + v:obj.insResult + } + } + } return obj }) this.wareTableData = productVos }) + this.getEquipOptions(true,this.currentSample.insProduct[0].id) }, subOtherForm(m,type){ let ids = [] @@ -1067,6 +1256,9 @@ this.currentTab = null; }, getReportModel(id){ + if(this.PROJECT!='妫�娴嬩腑蹇�'){ + return + } this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => { this.fibers = res.data['鍏夌氦甯�'] this.fiber = res.data['鍏夌氦'] @@ -1229,7 +1421,7 @@ this.temperatureOptions = [] mySet1.forEach(m => { this.temperatureOptions.push({ - value:m, + value:String(m), label:m }) }) @@ -1264,7 +1456,6 @@ count++ }) }) - // 闂寮�濮� this.tableList.forEach(a => { let dels = new Set() let ids = [] @@ -1287,16 +1478,30 @@ str += c.v.v count4 += 1 } + }else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙瀛愰」'&&this.PROJECT=='瑁呭鐢电紗') { + if (count4 === 2) { + str += c.v.v + count4 += 1 + } } + // else if (c.v.ps != undefined && c.v.ps.value === '鍗曚綅'&&this.PROJECT=='妫�娴嬩腑蹇�'){ + // if(count4==1||count4==2){ + // str += c.v.v?c.v.v:'' + // console.log('str',str,c) + // count4 += 1 + // } + // } } }) if (str != '') { + console.log('str',str) let count2 = 0 for (let i in this.currentSample.insProduct) { + // (this.currentSample + // .insProduct[i].unit?this.currentSample + // .insProduct[i].unit:'') if (this.currentSample.insProduct[i].templateId === a.templateId && this.currentSample - .insProduct[i].inspectionItem + - (this.currentSample.insProduct[i].inspectionItemSubclass == null ? '' : this.currentSample - .insProduct[i].inspectionItemSubclass) === + .insProduct[i].inspectionItem +(this.currentSample.insProduct[i].inspectionItemSubclass == null ? '' : this.currentSample.insProduct[i].inspectionItemSubclass)+(this.currentSample.insProduct[i].inspectionItemClass==null||this.PROJECT!='瑁呭鐢电紗'?'':this.currentSample.insProduct[i].inspectionItemClass) === str) { ids.push({ r: b.r, @@ -1321,8 +1526,6 @@ } } }) - console.log(5555,a.template) - // return ids.forEach(id => { for (let b = 0; b < a.template.length; b++) { if (a.template[b].r === id.r) { @@ -1357,7 +1560,6 @@ } }) }) - // 闂缁撴潫 this.tableList.forEach(a => { let arrs = [] let set = new Set() @@ -1446,21 +1648,31 @@ } catch (e) {} try { let insValue = JSON.parse(a.insProductResult.insValue) - for (var i = 0; i < insValue.length; i++) { + for (let i = 0; i < insValue.length; i++) { this.param[a.id].insValue[i].v.v = insValue[i].v this.param[a.id].insValue[i].u = insValue[i].u } } catch (e) {} try { let equipValue = JSON.parse(a.insProductResult.equipValue) - for (var i = 0; i < equipValue.length; i++) { - this.param[a.id].equipValue[i].v.v = equipValue[i].v + for (let i = 0; i < equipValue.length; i++) { + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + // 娓╁害寰幆璧嬪�� + this.$set(this.equipForm,`code`+i,equipValue[i].v) + }else{ + this.param[a.id].equipValue[i].v.v = equipValue[i].v + } } } catch (e) {} try { let equipName = JSON.parse(a.insProductResult.equipName) - for (var i = 0; i < equipName.length; i++) { - this.param[a.id].equipName[i].v.v = equipName[i].v + for (let i = 0; i < equipName.length; i++) { + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + // 娓╁害寰幆璧嬪�� + this.$set(this.equipForm,`value`+i,equipName[i].v) + }else{ + this.param[a.id].equipName[i].v.v = equipName[i].v + } } } catch (e) {} try { @@ -1470,234 +1682,81 @@ }) 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 = [] - // console.log(id, 'r', r , 'c',c,this.tableList) - for (let a in this.tableList) { - if (this.tableList[a].templateId == id) { - list = this.tableList[a].arr - break + changeInput(m, code, n) { + if (n) { + // if (this.PROJECT === '瑁呭鐢电紗') { + // let num2 = new this.$Big(n.v.v) + // n.v.v = num2.toExponential() + // } + // 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥 + function isValidFraction(fraction) { + const [numerator, denominator] = fraction.split('/'); // 鍒嗗瓙鍜屽垎姣� + return !(!denominator || !numerator); + } + const isTrue = isValidFraction(n.v.v) + if (!isTrue) { + n.v.v = n.v.v.replace('/', '') } } - 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){ - if (!isNaN(parseFloat(c.v.v))) { - comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v) - } - }else{ - comValue[(tableCode + (c.r + 1))] = c.v.v - } + 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 + for (var i in this.param){ + if(this.param[i].insResult&&this.param[i].insResult.v&&this.param[i].insResult.v.v){ + if(this.param[i].insResult.v.v=='鍚堟牸'){ + this.$set(this.param[i].insResult.v,'v',1) + }else if(this.param[i].insResult.v.v=='涓嶅悎鏍�'){ + this.$set(this.param[i].insResult.v,'v',0) } - }) - } - }) - }) - 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('=')) { - let str = 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('鈮�')) { - return eval(res) >= eval(m.split('鈮�')[1]) - }else if (m.includes('鈮�')) { - return eval(res) <= eval(m.split('鈮�')[1]) - }else if (m.includes('<')) { - return eval(res) < eval(m.split('<')[1]) - }else if (m.includes('>')) { - return eval(res) > eval(m.split('>')[1]) - }else if (m.includes('~')) { - let k = m.split('~') - return eval(res) >= eval(k[0]) && eval(res) <= eval(k[1]) - }else if(m.includes('-')){ - let k = m.split('-') - return eval(res) >= eval(k[0]) && eval(res) <= eval(k[1]) - }else if(m.includes('卤')){ - let k = m.split('卤') - return eval(res) >= eval((k[0] - k[1])) && eval(res) <= eval((k[0] + k[1])) - }else if(m.includes('锛�')){ - return eval(res) > eval(m.split('锛�')[1]) - }else if(m.includes('锛�')){ - return eval(res) < eval(m.split('锛�')[1]) - } - }) - } - if (comp.every(m => m)) { - item.v.v = 1 - } else { - item.v.v = 0 } } this.saveInsContext() - } - } catch (error) { - - } - - } else { - let comResult = '' - try { - if(this.getInspectionValueType(item.i)==1){ - comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue) - }else{ - let valueList = []; - item.valueList.forEach(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) - }) - comResult = str - } - } catch (error) { - - } - // comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue); - // switch (item.methodName) { - // case 'AVERAGE': - // let num = 0 - // for (var a in comValue) { - // num += comValue[a] - // } - // comResult = num / Object.keys(comValue).length - // break; - // case 'SUM': - // let sum = 0 - // for (var a in comValue) { - // sum += comValue[a] - // } - // comResult = sum - // break; - // case 'MEDIAN': - // let arr = [] - // for (var a in comValue) { - // arr.push(comValue[a]) - // } - // comResult = this.median(arr) - // break; - // case 'APS': - // let arr0 = [] - // for (var a in comValue) { - // arr0.push(comValue[a]) - // } - // comResult = Math.abs(arr0[0]) - // break; - // // case 'MAX': - // // let arr1 = [] - // // for (var a in comValue) { - // // arr1.push(eval(comValue[a])) - // // } - // // comResult = Math.max(...arr1) - // // break; - // // case 'MIN': - // // let arr2 = [] - // // for (var a in comValue) { - // // arr2.push(eval(comValue[a])) - // // } - // // comResult = Math.median(...arr2) - // // break; - // default: - // let valueList = []; - // item.valueList.forEach(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) - // }) - // str = str.replaceAll('MAX', 'Math.max') - // str = str.replaceAll('MIN', 'Math.min') - // str = str.replaceAll('锛�', ',') - // try { - // if(this.getInspectionValueType(item.i)==1){ - // comResult = eval(str) - // }else{ - // comResult = str - // } - // } catch (error) { - - // } - // break; - // } - 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('/')){ + 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 this.$Big(num2[0]); + let num4 = new this.$Big(num2[1]); + let num5 = Math.pow(num3, num4) // 璁$畻娆℃柟 + return num1[0] * num5 // 鏈�鍚庤绠椾箻娉� + } else{ + return str } }, getCurrentInsProduct(pId) { @@ -1788,7 +1847,7 @@ } }, getValue(v){ - let str = v.v?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v:'').replaceAll('\n','<br/>') + let str = v.v?v.v:(v.v===0?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v.replace(new RegExp('\n', 'g'), '<br/>').replace(new RegExp('@', 'g'), '<br/>'):'')) return str }, getInspectionValueType(id) { @@ -1816,6 +1875,13 @@ sum = this.widthList[n.c] ? this.widthList[n.c] : 100 } return sum + }, + handleInput (n) { + n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, ''); + n.v.v = n.v.v.replace(/\.{2,}/g,"."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨� + n.v.v = n.v.v.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + n.v.v = n.v.v.replace(/\/{2,}/g,"/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨� + n.v.v = n.v.v.replace("/","$#$").replace(/\//g,"").replace("$#$","/"); }, getInspectionItemType(id) { for (var a in this.currentSample.insProduct) { @@ -1845,14 +1911,14 @@ } }) } catch (e) { - console.log(e); + // console.log(e); this.$message.error('鎵句笉鍒拌澶囧唴瀹�') } - console.log(n, code); + // console.log(n, code); fetch('http://localhost:82/寰俊鍥剧墖_20240518100811.png').then(res=>res.blob()).then(blob=>{ - console.log(blob); + // console.log(blob); const url = URL.createObjectURL(blob) - console.log(url); + // console.log(url); }) /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��') for (var a in this.currentSample.insProduct) { @@ -2030,7 +2096,8 @@ if (this.equipOptions[i].value === val) { for (let i1 in this.param[n.i].equipName) { if (this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r) { - this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label + this.$set(this.param[n.i].equipName[i1].v,'v',this.equipOptions[i].label) + // this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label } } } @@ -2089,6 +2156,7 @@ this.currentSample = this.HaveJson(this.sampleProduct[index - 1]) let list = await this.getCurrentProduct(this.currentSample.id,0) this.currentSample.insProduct = this.HaveJson(list) + this.param = {} this.currentSample.insProduct.forEach(a => { this.param[a.id] = { insValue: [], -- Gitblit v1.9.3