| | |
| | | <el-button type="primary" @click="submit()">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="数据采集-计算数据选择" :visible.sync="dataGetDia" min-width="400px" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="beforeDataGetDia"> |
| | | <div> |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td style="width: 120px;">检验项</td> |
| | | <td style="width: 120px;">检验子项</td> |
| | | <td>数采数据</td> |
| | | </tr> |
| | | <template v-for="(item,index) in getData"> |
| | | <tr> |
| | | <td :rowspan="item.child.length">{{item.faName}}</td> |
| | | <td>{{ item.child[0].name }}</td> |
| | | <td> |
| | | <el-checkbox-group |
| | | v-model="getDataIndex"> |
| | | <el-checkbox v-for="(n,j) in item.child[0].arr" :label="j" :key="j+'ppppppppp'">{{n}}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(m,i) in item.child" :key="i+'bbbbbbbbbbbbbb'" v-show="i>0"> |
| | | <td>{{ m.name }}</td> |
| | | <td> |
| | | <el-checkbox-group |
| | | v-model="getDataIndex"> |
| | | <el-checkbox v-for="(n,j) in m.arr" :label="j" :key="j+'bbbbbbbbbbbbbb'">{{n}}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | </template> |
| | | </table> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="beforeDataGetDia()">取 消</el-button> |
| | | <el-button type="primary" @click="submitDataGet()" :loading="getDataIndexLoading">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | dataGetDia:false, |
| | | wareTableDataLoading:false, |
| | | fileAdd:false, |
| | | sampleVisible: false, |
| | |
| | | worker0: null, |
| | | wareLength:[], |
| | | dataAcquisitionInfo:{}, |
| | | dataAcquisitionInfoNew:{}, |
| | | dataAcquisitionEidt:0, |
| | | dataAcquisitionEidtAble:false, |
| | | dataAcquisitionLoading:false, |
| | |
| | | }, |
| | | thermalCyclingLoading:false, |
| | | temDataAcquisition:false, |
| | | getData:[ |
| | | { |
| | | faName:'波长附加衰减', |
| | | child:[ |
| | | { |
| | | name:'1285nm~1330nm', |
| | | arr:[12,13,14,15], |
| | | }, |
| | | { |
| | | name:'1525nm~1575nm', |
| | | arr:[12,13,14,15], |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | faName:'截至波长', |
| | | child:[ |
| | | { |
| | | name:'截至波长', |
| | | arr:[12,13,14,15], |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | getDataIndex:[], |
| | | getDataIndexLoading:false |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | if(res.code!=200){ |
| | | return |
| | | } |
| | | this.dataAcquisitionInfo = res.data |
| | | try { |
| | | // 向 Worker 发送消息,开始处理逻辑 |
| | | this.worker0.postMessage(JSON.stringify({ |
| | | dataAcquisitionInfo: this.dataAcquisitionInfo, |
| | | list:this.tableList[0].arr |
| | | })); |
| | | } catch (error) { |
| | | console.log(1111,error); |
| | | } |
| | | // 监听 Worker 返回的结果 |
| | | this.worker0.onmessage = (event) => { |
| | | let result = JSON.parse(event.data); |
| | | if(result.method=='changeInput'){ |
| | | let {list,n} = result.value |
| | | this.$set(this.tableList[0],'arr',list) |
| | | this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | } |
| | | }; |
| | | this.dataAcquisitionInfoNew = this.HaveJson(res.data) |
| | | this.handleDataAcquisition(res.data) |
| | | }) |
| | | } |
| | | }, |
| | | handleDataAcquisition(data){ |
| | | this.dataAcquisitionInfo = {} |
| | | this.getData = [] |
| | | for (let i in data){ |
| | | let obj = { |
| | | faName:i, |
| | | child:[] |
| | | } |
| | | for(let j in data[i]){ |
| | | console.log(j,data[i][j]) |
| | | if(j!='frequency'&&data[i][j]&&!data[i][j].isCalculation){ |
| | | this.dataAcquisitionInfo[i+','+j] = { |
| | | value:data[i][j].result, |
| | | frequency:data[i].frequency |
| | | } |
| | | }else if(j!='frequency'&&data[i][j]&&data[i][j].isCalculation){ |
| | | let obj0 = { |
| | | name:j, |
| | | arr:data[i][j].result |
| | | } |
| | | obj.child.push(obj0) |
| | | } |
| | | } |
| | | if(obj.child.length>0){ |
| | | this.getData.push(obj) |
| | | } |
| | | } |
| | | if(this.getData.length>0){ |
| | | this.dataGetDia = true |
| | | }else{ |
| | | try { |
| | | // 向 Worker 发送消息,开始处理逻辑 |
| | | this.worker0.postMessage(JSON.stringify({ |
| | | dataAcquisitionInfo: this.dataAcquisitionInfo, |
| | | list:this.tableList[0].arr |
| | | })); |
| | | } catch (error) { |
| | | console.log(1111,error); |
| | | } |
| | | } |
| | | // 监听 Worker 返回的结果 |
| | | this.worker0.onmessage = (event) => { |
| | | let result = JSON.parse(event.data); |
| | | if(result.method=='changeInput'){ |
| | | let {list,n} = result.value |
| | | this.$set(this.tableList[0],'arr',list) |
| | | this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | } |
| | | }; |
| | | }, |
| | | beforeDataGetDia(done){ |
| | | this.$confirm('是否取消数据采集?', "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | if(done){ |
| | | done() |
| | | }else{ |
| | | this.dataGetDia = false |
| | | this.getDataIndex = [] |
| | | } |
| | | }).catch(() => {}) |
| | | }, |
| | | submitDataGet(){ |
| | | if(this.getDataIndex.length==0){ |
| | | this.$message.error('请选择需要计算的数据') |
| | | return |
| | | } |
| | | this.getDataIndex.sort((a, b) => a - b); |
| | | for (let i in this.dataAcquisitionInfoNew){ |
| | | for(let j in this.dataAcquisitionInfoNew[i]){ |
| | | if(j!='frequency'&&this.dataAcquisitionInfoNew[i][j].isCalculation){ |
| | | let arr = [] |
| | | for(let k = 0;k<this.dataAcquisitionInfoNew[i][j].result.length;k++){ |
| | | if(this.getDataIndex.includes(k)){ |
| | | arr.push(this.dataAcquisitionInfoNew[i][j].result[k]) |
| | | } |
| | | } |
| | | if(arr.length>0){ |
| | | this.dataAcquisitionInfoNew[i][j].result = arr |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.getDataIndexLoading = true; |
| | | this.$axios.post(this.$api.deviceScope.formulaCalculation,{ |
| | | ...this.dataAcquisitionInfoNew |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true |
| | | }).then(res=>{ |
| | | this.getDataIndexLoading = false; |
| | | if(res.code!=200){ |
| | | return |
| | | } |
| | | this.dataGetDia = false |
| | | this.handleDataAcquisition(res.data) |
| | | this.getDataIndex = [] |
| | | }) |
| | | }, |
| | | // 多线程 |
| | | startWorker() { |
| | |
| | | this.getTableLists(); |
| | | this.currentKey = row.index |
| | | this.currentTab = null; |
| | | this.worker.postMessage(JSON.stringify({ |
| | | type: 'saveData', |
| | | tableList:this.tableList, |
| | | param:this.param, |
| | | currentTable:this.currentTable |
| | | })); |
| | | }, |
| | | getReportModel(id){ |
| | | if(this.PROJECT!='检测中心'){ |
| | |
| | | }) |
| | | this.getTableLists0(list) |
| | | this.getReportModel(this.currentSample.id) |
| | | this.worker.postMessage(JSON.stringify({ |
| | | type: 'saveData', |
| | | tableList:this.tableList, |
| | | param:this.param, |
| | | currentTable:this.currentTable |
| | | })); |
| | | }else{ |
| | | this.tableLists = [] |
| | | this.tableList = [] |
| | |
| | | try { |
| | | let comValue = JSON.parse(a.insProductResult.comValue) |
| | | for (var i = 0; i < comValue.length; i++) { |
| | | this.param[a.id].comValue[i].v.v = comValue[i].v |
| | | this.param[a.id].comValue[i].v.v = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct) |
| | | } |
| | | } catch (e) {} |
| | | try { |
| | | let insValue = JSON.parse(a.insProductResult.insValue) |
| | | for (let i = 0; i < insValue.length; i++) { |
| | | if(this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r)){ |
| | | this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.v = insValue[i].v |
| | | this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.v = this.toFixed(insValue[i].v,this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.ct) |
| | | this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).u = insValue[i].u |
| | | // this.param[a.id].insValue[i].v.v = insValue[i].v |
| | | // this.param[a.id].insValue[i].u = insValue[i].u |
| | |
| | | } |
| | | } catch (e) {} |
| | | try { |
| | | this.param[a.id].resValue.v.v = a.lastValue |
| | | this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) |
| | | this.param[a.id].insResult.v.v = a.insResult |
| | | } catch (e) {} |
| | | }) |
| | |
| | | }, |
| | | getValue(v){ |
| | | 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/>'):'')) |
| | | if(v.ct&&v.ct.fa&&v.ct.fa.includes('.')&&str){ |
| | | let num = 0 |
| | | let str0 = v.ct.fa.split('.')[1] |
| | | num = str0.length |
| | | str = Number(str).toFixed(num) |
| | | } |
| | | if(v.v&&typeof v.v == 'string'&&v.v.includes('@')){ |
| | | str = v.v.replace(new RegExp('@', 'g'), '<br/>') |
| | | } |
| | | return str |
| | | }, |
| | | getInspectionValueType(id) { |
| | |
| | | } |
| | | }) |
| | | this.getTableLists() |
| | | this.worker.postMessage(JSON.stringify({ |
| | | type: 'saveData', |
| | | tableList:this.tableList, |
| | | param:this.param, |
| | | currentTable:this.currentTable |
| | | })); |
| | | }, |
| | | caretBushing(num){ |
| | | let index = this.currentKey0 + num |
| | |
| | | * @returns 格式化后的字符串或原始数值(若配置不符合要求) |
| | | */ |
| | | toFixed(v,ct){ |
| | | if(v&&ct&&ct.fa&&ct.fa.includes('##')){ |
| | | if(v&&ct&&ct.fa){ |
| | | if(ct.fa.includes('.')){ |
| | | let num = ct.fa.slice(4).length |
| | | return Number(v).toFixed(num) |
| | | }else{ |
| | | return Number(v).toFixed(0) |
| | | return v |
| | | } |
| | | }else{ |
| | | return v |