| | |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | } |
| | | .thermal-table{ |
| | | margin: 5px 5px 0; |
| | | table-layout: fixed; |
| | | } |
| | | .thermal-table td { |
| | | min-width: 70px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | padding: 5px; |
| | | } |
| | | .table-container { |
| | | overflow-x: auto; /* 使容器支持横向滚动 */ |
| | | max-width: 100%; /* 限制容器的最大宽度 */ |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .content { |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | .inspection .tables .el-input{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .thermal-table .el-input{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | |
| | | <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;text-align: center;">热循环检验原始记录</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> |
| | | <el-input clearable v-model="thermalCyclingInfo.model" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="试验方法:" style="margin-bottom: 0;"> |
| | | <el-input clearable v-model="wareForm0.methodName" disabled size="small" placeholder=""></el-input> |
| | | <el-input clearable v-model="thermalCyclingInfo.methodName" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="循环次数:" style="margin-bottom: 0;"> |
| | | <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px" size="small" ></el-input-number> |
| | | <el-form-item label="循环次数:" style="margin-bottom: 0;" v-if="thermalCyclingInfo.inspectionItemClass=='直流电阻'"> |
| | | <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px" size="small" @change="thermalCyclingChange"></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="仪器名称:" style="margin-bottom: 0;"> |
| | | <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <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-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器编号:"> |
| | | <el-select v-model="equipForm.code0" placeholder="请选择" size="small"> |
| | | <el-option |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-button type="primary" size="small" style="margin-bottom: 22px;margin-left: 10px;" @click="handleAddThermal">新增</el-button> |
| | | <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal">删除</el-button> |
| | | </el-form> |
| | | <table border="1" class="tables" cellpadding="10"> |
| | | <div class="table-container" v-loading="thermalCyclingLoading"> |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>检验项目</td> |
| | | <td :colspan="thermalCyclingInfo.length">检验过程值</td> |
| | | <td style="width: 100px;">结论</td> |
| | | </tr> |
| | | <tr v-for="(item,index) in thermalCyclingInfo.arr"> |
| | | <td style="width: 100px;text-align: center;">{{ item }}</td> |
| | | <td style="width: 100px;text-align: center;">{{ item.name }}</td> |
| | | <td v-for="(m,i) in thermalCyclingInfo.length" style="min-width: 150px;"> |
| | | <div style="display: flex;align-items: center;margin-bottom: 5px;"> |
| | | <label style="width: 100px;white-space: nowrap;font-size: 12px;">温度:</label> |
| | | <el-input clearable size="small" placeholder="" v-model="item.arr[i].value0" @change="m=>saveThermalCycling(m,item,'value0')"></el-input> |
| | | <span style="font-size: 12px;margin-left: 13px;margin-right: 13px;"> ℃</span> |
| | | </div> |
| | | <div style="display: flex;align-items: center;" v-if="item.name!='环境温度'||thermalCyclingInfo.inspectionItemClass!='直流电阻'"> |
| | | <label style="width: 100px;white-space: nowrap;font-size: 12px;">直流电阻:</label> |
| | | <el-input clearable size="small" placeholder="" v-model="item.arr[i].value1" @change="saveThermalCycling"></el-input> |
| | | <span style="margin-left: 5px;font-size: 12px;"> Ω/km</span> |
| | | </div> |
| | | </td> |
| | | <td> |
| | | <el-input clearable size="small" placeholder="温度"></el-input> |
| | | <el-input clearable size="small" placeholder="直流电阻"></el-input> |
| | | <template v-if="item.name=='环境温度'||item.name=='导线温度'"> |
| | | <span>/</span> |
| | | </template> |
| | | <template v-else> |
| | | <span v-if="item.insResult===1" style="color: green;">合格</span> |
| | | <span v-else-if="item.insResult===0" style="color: red;">不合格</span> |
| | | <span v-else>待定</span> |
| | | </template> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | <el-upload :action="action" |
| | | :data="{ |
| | |
| | | thermalCyclingInfo:{ |
| | | max:0, |
| | | inspectionItem:1, |
| | | arr:[] |
| | | } |
| | | arr:[], |
| | | length:1, |
| | | inspectionItemClass:null, |
| | | }, |
| | | thermalCyclingLoading:false, |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | this.stopWorker(); |
| | | }, |
| | | methods: { |
| | | // 数据采集 |
| | | getDataAcquisitionDevice(){ |
| | | this.dataAcquisitionLoading = true |
| | | this.$axios.get(this.$api.deviceScope.dataCollection+'?entrustCode='+this.insOrder.entrustCode+'&sampleCode='+this.currentSample.sampleCode + '&id=' + this.currentSample.id).then(res=>{ |
| | |
| | | this.dataAcquisitionInfo = res.data |
| | | let list = this.tableList[0].arr |
| | | list.forEach((item,index)=>{ |
| | | let num = 0; |
| | | let str = '' |
| | | item.forEach(m=>{ |
| | | if(m.v.ps&&(m.v.ps.value=='检验子项'||m.v.ps.value=='检验项')){ |
| | | if(this.dataAcquisitionInfo[m.v.m]){ |
| | | if(m.v.ps&&m.v.ps.value=='检验项'){ |
| | | if(num==0){ |
| | | str = m.v.v+',' |
| | | num++ |
| | | } |
| | | } |
| | | if(m.v.ps&&m.v.ps.value=='检验子项'){ |
| | | if(num==1){ |
| | | str = str+m.v.v |
| | | } |
| | | } |
| | | if(this.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('检验值')){ |
| | |
| | | if(arr[1] ==this.dataAcquisitionInfo.frequency){ |
| | | setTimeout(()=>{ |
| | | this.$delete(n.v,'v') |
| | | this.$set(n.v,'v',this.dataAcquisitionInfo[m.v.m]) |
| | | this.$set(n.v,'v',this.dataAcquisitionInfo[str]) |
| | | this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | },1000) |
| | | }else if(Number(this.dataAcquisitionInfo.frequency)>num){ |
| | | if(n.v.ps.value.includes(num)){ |
| | | setTimeout(()=>{ |
| | | this.$delete(n.v,'v') |
| | | this.$set(n.v,'v',this.dataAcquisitionInfo[m.v.m]) |
| | | this.$set(n.v,'v',this.dataAcquisitionInfo[str]) |
| | | this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | },1000) |
| | | } |
| | |
| | | this.worker = null; |
| | | } |
| | | }, |
| | | // 温度循环---开始 |
| | | changeItem(row){ |
| | | if(row.value0&&row.value1){ |
| | | this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(3)) |
| | |
| | | this.getEquipOptions(true,this.currentSample.insProduct[0].id) |
| | | // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout() |
| | | }, |
| | | // 温度循环---结束 |
| | | // 热循环---开始 |
| | | thermalCyclingChange(){ |
| | | // this.wareTableDataLoading = true |
| | | this.thermalCyclingLoading = true |
| | | this.$axios.post(this.$api.insOrderPlan.temCycle,{ |
| | | sampleId:this.currentSample.id, |
| | | inspectionItem:this.thermalCyclingInfo.inspectionItem |
| | | }).then(res => { |
| | | // this.wareTableDataLoading = false |
| | | this.thermalCyclingLoading = false |
| | | if (res.code == 201) return |
| | | console.log(res.data) |
| | | let {productVos,sampleVo} = res.data |
| | | this.thermalCyclingInfo = {...this.thermalCyclingInfo,...sampleVo} |
| | | if(productVos.length>0){ |
| | | this.thermalCyclingInfo.inspectionItemClass = productVos[0].insProduct.inspectionItemClass |
| | | productVos.forEach(item=>{ |
| | | this.param[item.insProduct.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: { |
| | | i:item.insProduct.id, |
| | | r:0, |
| | | c:0, |
| | | v:{ |
| | | v:null |
| | | } |
| | | }, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: { |
| | | i:item.insProduct.id, |
| | | v:{ |
| | | v:null |
| | | } |
| | | }, |
| | | inspectionItemSubclass: item.insProduct.inspectionItemSubclass, |
| | | } |
| | | let obj = {...item,...item.insProduct} |
| | | 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>0){ |
| | | this.thermalCyclingInfo.arr.forEach(a=>{ |
| | | if(a.name==obj.inspectionItemSubclass){ |
| | | a.arr = [] |
| | | for(let i=0;i<insValue.length;i++){ |
| | | a.arr.push({ |
| | | value0:insValue[i].v, |
| | | value1:insValue[i].w, |
| | | }) |
| | | } |
| | | a.insResult = obj.insResult |
| | | } |
| | | }) |
| | | this.param[obj.id].insValue = [] |
| | | insValue.forEach(m=>{ |
| | | this.param[obj.id].insValue.push({ |
| | | i:obj.id, |
| | | r:0, |
| | | c:0, |
| | | v:{ |
| | | v:m.v, |
| | | w:m.w |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | this.param[obj.id].insResult = { |
| | | i:obj.id, |
| | | v:{ |
| | | v:obj.insResult |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | this.getEquipOptions(true,this.currentSample.insProduct[0].id) |
| | | }) |
| | | }, |
| | | handleAddThermal(){ |
| | | this.thermalCyclingInfo.length++ |
| | | this.thermalCyclingInfo.arr.forEach(item=>{ |
| | | item.arr.push({ |
| | | value0:'', |
| | | value1:'' |
| | | }) |
| | | }) |
| | | }, |
| | | handleDeleteThermal(){ |
| | | if(this.thermalCyclingInfo.length==1){ |
| | | this.$message.error('最后一条数据不能删除') |
| | | return |
| | | }else{ |
| | | this.thermalCyclingInfo.length-- |
| | | this.thermalCyclingInfo.arr.forEach(item=>{ |
| | | item.arr.pop() |
| | | }) |
| | | this.saveThermalCycling(true,{name:'导线温度'},true) |
| | | } |
| | | }, |
| | | saveThermalCycling(m,item,type){ |
| | | // 结果判断 |
| | | if(m&&item&&type){ |
| | | if(item.name=='导线温度'||item.name=='耐张温度'||item.name=='接续温度'){ |
| | | this.thermalCyclingInfo.arr.forEach(a=>{ |
| | | if(a.name=='耐张温度'){ |
| | | a.arr.forEach((b,i)=>{ |
| | | // 获取对应的导线温度 |
| | | let num0 = 0 |
| | | this.thermalCyclingInfo.arr.forEach(c=>{ |
| | | if(c.name=='导线温度'){ |
| | | num0 = c.arr[i].value0 |
| | | } |
| | | }) |
| | | |
| | | if(!num0||!b.value0){ |
| | | b.state = null |
| | | }else if(Number(num0)>Number(b.value0)){ |
| | | b.state = 1 |
| | | }else{ |
| | | b.state = 0 |
| | | } |
| | | }) |
| | | let state = a.arr.filter(b=>b.state==null).length |
| | | let state0 = a.arr.filter(b=>b.state==0).length |
| | | let state1 = a.arr.filter(b=>b.state==1).length |
| | | if(state>0){ |
| | | a.insResult = null |
| | | }else if(state0>0){ |
| | | a.insResult = 0 |
| | | }else if(state1==a.arr.length){ |
| | | a.insResult = 1 |
| | | } |
| | | } |
| | | if(a.name=='接续温度'){ |
| | | a.arr.forEach((b,i)=>{ |
| | | // 获取对应的导线温度 |
| | | let num0 = 0 |
| | | this.thermalCyclingInfo.arr.forEach(c=>{ |
| | | if(c.name=='导线温度'){ |
| | | num0 = c.arr[i].value0 |
| | | } |
| | | }) |
| | | if(!num0||!b.value0){ |
| | | b.state = null |
| | | }else if(Number(num0)>Number(b.value0)){ |
| | | b.state = 1 |
| | | }else{ |
| | | b.state = 0 |
| | | } |
| | | }) |
| | | let state = a.arr.filter(b=>b.state==null).length |
| | | let state0 = a.arr.filter(b=>b.state==0).length |
| | | let state1 = a.arr.filter(b=>b.state==1).length |
| | | if(state>0){ |
| | | a.insResult = null |
| | | }else if(state0>0){ |
| | | a.insResult = 0 |
| | | }else if(state1==a.arr.length){ |
| | | a.insResult = 1 |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | // 赋值 |
| | | this.thermalCyclingInfo.arr.forEach(item=>{ |
| | | for (let i in this.param){ |
| | | if(this.param[i].inspectionItemSubclass==item.name){ |
| | | switch (item.name){ |
| | | case '环境温度': |
| | | this.param[i].insResult.v.v = 1 |
| | | this.param[i].insValue = [] |
| | | item.arr.forEach(insValue=>{ |
| | | this.param[i].insValue.push({ |
| | | i:i, |
| | | r:0, |
| | | c:0, |
| | | v:{ |
| | | v:insValue.value0 |
| | | } |
| | | }) |
| | | }) |
| | | break; |
| | | case '导线温度': |
| | | this.param[i].insResult.v.v = 1 |
| | | this.param[i].insValue = [] |
| | | item.arr.forEach(insValue=>{ |
| | | this.param[i].insValue.push({ |
| | | i:i, |
| | | r:0, |
| | | c:0, |
| | | w:insValue.value1, |
| | | v:{ |
| | | v:insValue.value0 |
| | | } |
| | | }) |
| | | }) |
| | | break; |
| | | case '耐张温度': |
| | | this.param[i].insValue = [] |
| | | item.arr.forEach(insValue=>{ |
| | | this.param[i].insValue.push({ |
| | | i:i, |
| | | r:0, |
| | | c:0, |
| | | w:insValue.value1, |
| | | v:{ |
| | | v:insValue.value0 |
| | | } |
| | | }) |
| | | }) |
| | | this.param[i].insResult.v.v = item.insResult |
| | | break; |
| | | case '接续温度': |
| | | this.param[i].insValue = [] |
| | | item.arr.forEach(insValue=>{ |
| | | this.param[i].insValue.push({ |
| | | i:i, |
| | | r:0, |
| | | c:0, |
| | | w:insValue.value1, |
| | | v:{ |
| | | v:insValue.value0 |
| | | } |
| | | }) |
| | | }) |
| | | this.param[i].insResult.v.v = item.insResult |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | // console.log(1111,this.param) |
| | | this.saveInsContext() |
| | | }, |
| | | // 热循环---结束 |
| | | subOtherForm(m,type){ |
| | | let ids = [] |
| | | for (let i in this.param) { |
| | |
| | | for (let i = 0; i < askList.length-1; i++) { |
| | | arr.push(askList[i].split(',')[0]) |
| | | } |
| | | arr = arr.map(item=>{ |
| | | let obj = {} |
| | | obj.name = item; |
| | | if(obj.insResult==null||obj.insResult==undefined){ |
| | | obj.arr = [ |
| | | { |
| | | value0:'', |
| | | value1:'', |
| | | } |
| | | ] |
| | | obj.insResult = null; |
| | | }else{} |
| | | return obj |
| | | }) |
| | | this.thermalCyclingInfo.arr = arr; |
| | | console.log(this.thermalCyclingInfo) |
| | | // console.log(this.thermalCyclingInfo) |
| | | this.thermalCyclingChange() |
| | | } |
| | | // 热循环检验原始记录---结束 |
| | | this.tableList.forEach(a => { |
| | | let mcList = [] |
| | | a.template.forEach(b => { |
| | |
| | | try { |
| | | let equipValue = JSON.parse(a.insProductResult.equipValue) |
| | | 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=='温度循环检验原始记录'){ |
| | | // 温度循环赋值 |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'||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 |
| | |
| | | try { |
| | | let equipName = JSON.parse(a.insProductResult.equipName) |
| | | 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=='温度循环检验原始记录'){ |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='热循环检验原始记录')){ |
| | | // 温度循环赋值 |
| | | this.$set(this.equipForm,`value`+i,equipName[i].v) |
| | | }else{ |