| | |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .table_input >>>.el-input__inner{ |
| | | border-color: rgba(0, 0, 0, 0.5) !important; |
| | | } |
| | | |
| | | .collection { |
| | | width: 50px; |
| | |
| | | .table_caret{ |
| | | font-size: 16px; |
| | | margin: 0 5px; |
| | | color: rgba(0, 0, 0, 0.1); |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
| | | .table_caret:hover{ |
| | | color: #409eff; |
| | |
| | | .thermal-table .el-input{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .custom-dialog .el-dialog__body { |
| | | max-width: 1000px; /* 设置最大宽度 */ |
| | | } |
| | | </style> |
| | | <template> |
| | |
| | | </template> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备编码' && state==1"> |
| | | <el-select v-model="n.v.v" placeholder="设备" @visible-change="e=>getEquipOptions(e,n.i)" remote |
| | | <el-select v-model="n.v.v" placeholder="设备" |
| | | class="table_input" @visible-change="e=>getEquipOptions(e,n.i)" remote |
| | | @change="(val)=>changeEquip(val, n)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value"> |
| | | </el-option> |
| | |
| | | <el-button type="primary" @click="submit()">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="数据采集-计算数据选择" :visible.sync="dataGetDia" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" custom-class="custom-dialog"> |
| | | <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 style="text-align: left;"> |
| | | <el-checkbox-group |
| | | v-model="getDataIndex" :max="item.child[0].maxNum"> |
| | | <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 style="text-align: left;"> |
| | | <el-checkbox-group |
| | | v-model="getDataIndex" :max="m.maxNum"> |
| | | <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 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]){ |
| | | 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 str0 = i+','+j |
| | | let list = this.tableList[0].arr |
| | | let maxNum = 0 |
| | | list.forEach((item,index)=>{ |
| | | let num0 = 0; |
| | | let str = '' |
| | | item.forEach(m=>{ |
| | | if(m.v.ps&&(m.v.ps.value=='检验子项'||m.v.ps.value=='检验项')){ |
| | | if(m.v.ps&&m.v.ps.value=='检验项'){ |
| | | if(num0==0){ |
| | | str = m.v.v+',' |
| | | num0++ |
| | | } |
| | | } |
| | | if(m.v.ps&&m.v.ps.value=='检验子项'){ |
| | | if(num0==1){ |
| | | str = str+m.v.v |
| | | } |
| | | } |
| | | 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++ |
| | | } |
| | | }) |
| | | if(str0==str){ |
| | | maxNum = num |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | console.log(44444444444,maxNum) |
| | | let obj0 = { |
| | | name:j, |
| | | arr:data[i][j].result, |
| | | maxNum:maxNum |
| | | } |
| | | 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]&&this.dataAcquisitionInfoNew[i][j]&&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 |