| | |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | } |
| | | .thermal-table{ |
| | | min-width: calc(100% - 10px); |
| | | 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; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .thermal-table .el-input{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | </style> |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;">检验单详情 |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;" >检验单详情 |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <!-- <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">光纤切换</el-button> |
| | |
| | | <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">套管切换</el-button> --> |
| | | <el-button size="small" type="primary" @click="sampleVisible=true">样品切换</el-button> |
| | | <el-button size="small" type="primary" @click="taskVisible=true">任务切换</el-button> |
| | | <el-button size="small" type="primary" @click="addVerifyDia = true" v-show="state==1" |
| | | <el-button size="small" type="primary" @click="addVerifyDia = true" v-if="state==1" |
| | | :loading="submitLoading">提交</el-button> |
| | | <!-- 复核 --> |
| | | <el-button size="medium" type="primary" @click="upInsReview(1)" :loading="reviewLoading" |
| | | v-show="state>1">通过</el-button> |
| | | <el-button size="medium" @click="upInsReview(0)" v-show="state>1">不通过</el-button> |
| | | v-if="state>1">通过</el-button> |
| | | <el-button size="medium" @click="upInsReview(0)" v-if="state>1">不通过</el-button> |
| | | <el-button size="small" @click="$emit('goback')">返回</el-button> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <span v-if="fibers.length>0"> 光纤带:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,1)" v-if="fibers.length>0" size="small"> |
| | | <span v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'"> 光纤带:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,1)" v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small"> |
| | | <el-option |
| | | v-for="item in fibers" |
| | | :key="item.value" |
| | |
| | | <el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'已检':'未检' }}</el-tag> |
| | | </el-option> |
| | | </el-select> |
| | | <span v-if="fiber.length>0"> 光纤:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,2)" v-if="fiber.length>0" size="small"> |
| | | <span v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'"> 光纤:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,2)" v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small"> |
| | | <el-option |
| | | v-for="item in fiber" |
| | | :label="item.bushColor+'-'+item.color" |
| | |
| | | </el-select> |
| | | <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 v-model="otherForm.temperature" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')"></el-input> |
| | | <el-input v-model="otherForm.temperature" :disabled="state>1" 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 v-model="otherForm.humidity" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input> |
| | | <el-input v-model="otherForm.humidity" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input> |
| | | <span style="margin-left: 4px;">%</span> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-button type="primary" size="small" v-if="dataAcquisitionEidt>0&&PROJECT=='检测中心'" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button> |
| | | <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="dataAcquisitionEidt>0&&PROJECT=='检测中心'" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button> |
| | | <el-button type="primary" size="small" v-if="(dataAcquisitionEidt>0||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'&&temDataAcquisition)&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button> |
| | | <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(dataAcquisitionEidt>0)&&PROJECT=='检测中心'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'"> |
| | | <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index"> |
| | | <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('热循环')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('温升试验'))"> |
| | | <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> |
| | | <tbody> |
| | | <tr v-for="(m,i) in item.arr" :key="i"> |
| | | <td :id='item.templateId+"-"+n.i+"-"+n.r+"-"+n.c' v-for="(n,j) in m" :key="j" |
| | | v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1" |
| | | v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1" |
| | | :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" |
| | | :style="`background:${n.v.bg?n.v.bg:''};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> |
| | | <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" |
| | |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-button type="primary" icon="el-icon-document-copy" size="small" circle title="数采" v-if="n.isItADataAcquisitionDevice&&PROJECT=='检测中心'" @click="getDataAcquisitionDevice(n.v.v)"></el-button> --> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备名称' && state==1"> |
| | | <span>{{ n.v.v }}</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='要求值' && state==1"> |
| | | <span :style="`font-family:${n.v.ff} !important;`">{{getTell(n.i)}}</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='计算值' && state==1"><span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span></template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='最终值' && state==1"> |
| | | <!-- <el-input class="table_input" type="textarea" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" |
| | |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | <div v-loading="tableLoading" v-else> |
| | | <div v-loading="tableLoading" v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'"> |
| | | <el-divider></el-divider> |
| | | <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-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-select v-model="equipForm.code0" :disabled="state>1" placeholder="请选择" size="small"> |
| | | <el-option |
| | | v-for="item in equipOptions" |
| | | :key="item.value" |
| | |
| | | <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器编号:"> |
| | | <el-select v-model="equipForm.code1" placeholder="请选择" size="small"> |
| | | <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="请选择" size="small"> |
| | | <el-option |
| | | v-for="item in equipOptions" |
| | | :key="item.value" |
| | |
| | | ref="wareTableData" |
| | | border |
| | | v-loading="wareTableDataLoading" |
| | | style="width: 100%;margin-bottom: 30px;" align="center"> |
| | | style="width: 100%;margin-bottom: 30px;" align="center" v-if="wareForm.inspectionItemSubclass!='20(常温)'&&wareForm.inspectionItemSubclass!='20'||(wareForm.inspectionItemSubclass=='20(常温)'&&wareForm.inspectionItem==1)||(wareForm.inspectionItemSubclass=='20'&&wareForm.inspectionItem==numOptions.length)"> |
| | | <el-table-column |
| | | label="序号" |
| | | type="index" |
| | | width="60" |
| | | width="59" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="bushColor" |
| | | label="管色标" |
| | | width="80" |
| | | width="75" |
| | | align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="code" |
| | | label="光纤带编号" |
| | | width="110" |
| | | width="105" |
| | | align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | prop="value0" |
| | | label="外端" |
| | | align="center" |
| | | width="80" :key="(new Date())+'1'"> |
| | | width="100" :key="(new Date().getTime())+'1234567'"> |
| | | <template slot="header"> |
| | | {{ '外端'+(index+1) }} |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.arr[index].value0" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input> |
| | | <el-input size="small" v-model="scope.row.arr[index].value0" placeholder="" :disabled="state>1" @change="m=>changeItem(scope.row.arr[index])"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value1" |
| | | label="内端" |
| | | align="center" |
| | | width="80" :key="(new Date())+'2'"> |
| | | width="100" :key="(new Date().getTime())+'23333333'"> |
| | | <template slot="header"> |
| | | {{ '内端'+(index+1) }} |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.arr[index].value1" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input> |
| | | <el-input size="small" :disabled="state>1" v-model="scope.row.arr[index].value1" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="comValue" |
| | | align="center" |
| | | min-width="150" :key="(new Date())+'3'"> |
| | | min-width="150" :key="(new Date().getTime())+'364654654'"> |
| | | <template slot="header"> |
| | | {{ '衰减系数'+item }} |
| | | </template> |
| | |
| | | label="衰减差" |
| | | align="center" |
| | | v-if="wareForm.inspectionItemSubclass!='20(常温)'" |
| | | min-width="90" :key="(new Date())+'4'"> |
| | | min-width="90" :key="(new Date().getTime())+'434634634634'"> |
| | | <template slot="header"> |
| | | {{ '衰减差'+(index+1) }} |
| | | </template> |
| | |
| | | prop="insResult" |
| | | label="结论" |
| | | align="center" |
| | | min-width="70" v-if="wareForm.inspectionItemSubclass!='20(常温)'" :key="(new Date())+'5'"> |
| | | min-width="70" v-if="wareForm.inspectionItemSubclass!='20(常温)'" :key="(new Date().getTime())+'53457689809808-'"> |
| | | <template slot="header"> |
| | | {{ '结论'+(index+1) }} |
| | | </template> |
| | |
| | | </template> |
| | | </el-table> |
| | | </div> |
| | | <div v-loading="tableLoading" v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('热循环')||tableLists.find(m=>m.templateId==currentTable).templateName.includes('温升试验')"> |
| | | <el-divider></el-divider> |
| | | <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;text-align: center;">{{tableLists.find(m=>m.templateId==currentTable).templateName}}</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="equipForm.value0" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器名称:" style="margin-bottom: 0;"> |
| | | <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="型号:" style="margin-bottom: 0;"> |
| | | <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="thermalCyclingInfo.methodName" 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-select v-model="equipForm.code0" :disabled="state>1" placeholder="请选择" size="small"> |
| | | <el-option |
| | | v-for="item in equipOptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="仪器编号:"> |
| | | <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="请选择" size="small"> |
| | | <el-option |
| | | v-for="item in equipOptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="循环次数:" v-if="thermalCyclingInfo.inspectionItemClass=='直流电阻'"> |
| | | <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px;width: 190px;" size="small" @change="thermalCyclingChange"></el-input-number> |
| | | </el-form-item> |
| | | <el-button type="primary" size="small" style="margin-bottom: 22px;margin-left: 30px;" @click="handleAddThermal" v-if="state==1">新增</el-button> |
| | | <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal" v-if="state==1">删除</el-button> |
| | | </el-form> |
| | | <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.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" :disabled="state>1" @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" :disabled="state>1" placeholder="" v-model="item.arr[i].value1" @change="saveThermalCycling"></el-input> |
| | | <span style="margin-left: 5px;font-size: 12px;"> Ω/km</span> |
| | | </div> |
| | | </td> |
| | | <td> |
| | | <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="{ |
| | | orderId:id |
| | | }" |
| | | v-show="state==1&&fileAdd" |
| | | v-if="state==1&&fileAdd" |
| | | :on-success="handleSuccessUp" :show-file-list="false" |
| | | accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload" |
| | | style="width: 80px !important;" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button size="small" type="primary">附件上传</el-button></el-upload> |
| | | <el-button size="small" type="primary" v-if="state==1">附件上传</el-button></el-upload> |
| | | <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" |
| | | :componentData="componentData0" |
| | | :delUrl="$api.insOrderPlan.delfile" |
| | |
| | | </el-table-column> |
| | | <!-- 检验单会有一个是否有配套样品字段控制显示 --> |
| | | <el-table-column prop="joinModel" label="配套样品型号" min-width="130px" show-overflow-tooltip |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | <el-table-column prop="joinName" label="配套样品名称" min-width="130px" show-overflow-tooltip |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | <el-table-column prop="joinNum" label="配套样品数量" min-width="130px" show-overflow-tooltip |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | v-if="insOrder.mating>0"></el-table-column> |
| | | </el-table> |
| | | </el-drawer> |
| | | <el-drawer title="任务切换" :visible.sync="taskVisible" :size="500"> |
| | |
| | | import ValueTable from '../../tool/value-table.vue' |
| | | import file from '../../../util/file' |
| | | import excelFunction from '../../../util/excelFountion' |
| | | import { number } from 'echarts' |
| | | export default { |
| | | props: ['sonLaboratory', 'orderId', 'state'], |
| | | components: { |
| | |
| | | }, |
| | | result: null, |
| | | worker: null, |
| | | worker0: null, |
| | | wareLength:[], |
| | | dataAcquisitionInfo:{}, |
| | | dataAcquisitionEidt:0, |
| | | dataAcquisitionEidtAble:false, |
| | | dataAcquisitionLoading:false |
| | | dataAcquisitionLoading:false, |
| | | collected:false, |
| | | // 热循环---开始 |
| | | thermalCyclingInfo:{ |
| | | max:0, |
| | | inspectionItem:1, |
| | | arr:[], |
| | | length:1, |
| | | inspectionItemClass:null, |
| | | }, |
| | | thermalCyclingLoading:false, |
| | | temDataAcquisition:false, |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | }, |
| | | currentTable(val1, val0) { |
| | | if (val0 != null && val1 != val0) { |
| | | this.tableLists.forEach((m, i) => { |
| | | this.tableLists.forEach(async (m, i) => { |
| | | if (m.templateId == val1) { |
| | | this.tableList = null; |
| | | this.tableList = [(this.tableLists[i])]; |
| | | this.handleTableData() |
| | | let list = await this.getCurrentProduct(this.currentSample.id,0) |
| | | this.currentSample.insProduct = this.HaveJson(list) |
| | | // console.log(this.currentSample) |
| | | this.currentSample.insProduct.forEach(a => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | } |
| | | }) |
| | | this.getReportModel(this.currentSample.id) |
| | | const mySet1 = new Set(); |
| | | this.tableLists = this.currentSample.insProduct.filter(m => { |
| | | let num0 = mySet1.size; |
| | | if (m.templateId != null&&m.template != null) { |
| | | try { |
| | | mySet1.add(JSON.stringify({ |
| | | template: m.template, |
| | | templateId: m.templateId |
| | | })) |
| | | } catch (error) { |
| | | console.log(222,error); |
| | | } |
| | | } |
| | | let num1 = mySet1.size; |
| | | if (num1 > num0) { |
| | | return m |
| | | } |
| | | }); |
| | | if (this.tableLists && this.tableLists.length > 0) { |
| | | this.tableList = null; |
| | | this.tableList = this.tableLists.filter(m => m.templateId == val1) |
| | | this.handleTableData() |
| | | } |
| | | // this.$delete(this.tableList,0) |
| | | // this.$set(this.tableList, 0, m) |
| | | // this.handleTableData() |
| | | } |
| | | }) |
| | | } |
| | |
| | | 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){ |
| | | 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.includes('热循环')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('温升试验'))&&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.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.dataAcquisitionLoading = false |
| | | if(res.code!=200){ |
| | | return |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'){ |
| | | // 温度循环检验原始记录----数采----PK8000 |
| | | let temperature = this.wareForm.inspectionItemSubclass; |
| | | if(typeof temperature == 'string'&&temperature.includes('(常温)')){ |
| | | temperature = `20℃(常温)` |
| | | }else{ |
| | | temperature = temperature + '℃' |
| | | } |
| | | this.dataAcquisitionInfo = res.data |
| | | let list = this.tableList[0].arr |
| | | list.forEach((item,index)=>{ |
| | | item.forEach(m=>{ |
| | | if(m.v.ps&&(m.v.ps.value=='检验子项'||m.v.ps.value=='检验项')){ |
| | | if(this.dataAcquisitionInfo[m.v.m]){ |
| | | 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++ |
| | | } |
| | | }) |
| | | list[index].forEach((n,i)=>{ |
| | | if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('检验值')){ |
| | | if(n.v.ps.value.includes(this.dataAcquisitionInfo.frequency)&&!n.v.ps.value.includes(this.dataAcquisitionInfo.frequency+'0')){ |
| | | setTimeout(()=>{ |
| | | this.$delete(n.v,'v') |
| | | this.$set(n.v,'v',this.dataAcquisitionInfo[m.v.m]) |
| | | 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.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | },1000) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | this.dataAcquisitionLoading = true |
| | | this.$axios.post(this.$api.deviceScope.temDataAcquisition,{ |
| | | entrustCode:this.insOrder.entrustCode, |
| | | sampleCode:this.currentSample.sampleCode, |
| | | model:this.wareForm0.model, |
| | | cycles:this.wareForm.inspectionItem, |
| | | temperature:temperature, |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true |
| | | }).then(res=>{ |
| | | this.dataAcquisitionLoading = false |
| | | if(res.code!=200){ |
| | | return |
| | | } |
| | | // console.log(res.data) |
| | | this.wareFormChange() |
| | | }) |
| | | }) |
| | | }else{ |
| | | // 一般的数据采集 |
| | | 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.dataAcquisitionLoading = false |
| | | 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) |
| | | } |
| | | }; |
| | | }) |
| | | } |
| | | }, |
| | | // 多线程 |
| | | startWorker() { |
| | | if (this.worker) { |
| | | if (this.worker) { |
| | | this.stopWorker(); // 确保之前的 Worker 已停止 |
| | | } |
| | | // 创建 Worker 实例 |
| | | this.worker = new Worker('/static/js/worker.js'); |
| | | if (this.worker0) { |
| | | this.stopWorker(); // 确保之前的 Worker 已停止 |
| | | } |
| | | // 创建 Worker 实例 |
| | | this.worker0 = new Worker('/static/js/worker0.js'); |
| | | }, |
| | | stopWorker() { |
| | | if (this.worker) { |
| | | this.worker.terminate(); |
| | | this.worker = null; |
| | | } |
| | | if (this.worker0) { |
| | | this.worker0.terminate(); |
| | | this.worker0 = null; |
| | | } |
| | | }, |
| | | // 温度循环---开始 |
| | | changeItem(row){ |
| | | if(row.value0&&row.value1){ |
| | | if(row.value0&&!row.value1){ |
| | | this.$set(row,'comValue',Number(row.value0).toFixed(3)) |
| | | }else if(!row.value0&&row.value1){ |
| | | this.$set(row,'comValue',Number(row.value1).toFixed(3)) |
| | | }else if(row.value0&&row.value1){ |
| | | this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(3)) |
| | | }else{ |
| | | return |
| | |
| | | if(this.PROJECT!='检测中心'||!this.tableLists.find(m=>m.templateId==this.currentTable)||this.tableLists.find(m=>m.templateId==this.currentTable).templateName!='温度循环检验原始记录'){ |
| | | return |
| | | } |
| | | // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout() |
| | | if(m&&type){ |
| | | this.wareForm[type] = m |
| | | } |
| | |
| | | let arr1 = [] |
| | | this.wareLength = []; |
| | | for(let i=0;i<arr.length;i++){ |
| | | arr1.push([]) |
| | | this.wareLength.push(arr[i][0].inspectionItemClass) |
| | | } |
| | | for(let i=0;i<arr[0].length;i++){ |
| | | arr1.push([]) |
| | | } |
| | | arr.forEach((item,index)=>{ |
| | | item.forEach((m,i)=>{ |
| | |
| | | this.getEquipOptions(true,this.currentSample.insProduct[0].id) |
| | | // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout() |
| | | }, |
| | | // 温度循环---结束 |
| | | // 热循环---开始 |
| | | thermalCyclingChange(){ |
| | | this.thermalCyclingLoading = true |
| | | this.$axios.post(this.$api.insOrderPlan.temCycle,{ |
| | | sampleId:this.currentSample.id, |
| | | inspectionItem:this.thermalCyclingInfo.inspectionItem |
| | | }).then(res => { |
| | | this.thermalCyclingLoading = false |
| | | if (res.code == 201) return |
| | | let {productVos,sampleVo} = res.data |
| | | this.thermalCyclingInfo = {...this.thermalCyclingInfo,...sampleVo} |
| | | if(this.thermalCyclingInfo.inspectionItem>1){ |
| | | for(let i in this.param){ |
| | | if(this.param[i].inspectionItemSubclass){ |
| | | delete this.param[i] |
| | | } |
| | | } |
| | | } |
| | | 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.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, |
| | | }) |
| | | this.thermalCyclingInfo.length++ |
| | | } |
| | | 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, |
| | | w:m.w, |
| | | v:{ |
| | | v:m.v |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | this.param[obj.id].insResult = { |
| | | i:obj.id, |
| | | v:{ |
| | | v:obj.insResult |
| | | } |
| | | } |
| | | }else{ |
| | | this.thermalCyclingInfo.arr.forEach(a=>{ |
| | | a.insResult = null |
| | | a.arr = [] |
| | | a.arr.push( |
| | | { |
| | | value0:'', |
| | | value1:'' |
| | | } |
| | | ) |
| | | }) |
| | | this.thermalCyclingInfo.length = 1 |
| | | } |
| | | }) |
| | | } |
| | | 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) { |
| | |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | | let fileDel = false |
| | | let fileAdd = false |
| | | let collected = false |
| | | let temDataAcquisition = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'uploadFile') { |
| | | fileAdd = true |
| | |
| | | if (power[i].menuMethod == 'delfile') { |
| | | fileDel = true |
| | | } |
| | | if (power[i].menuMethod == 'isItAllowedToModifyTheCollectedValues') { |
| | | collected = true |
| | | } |
| | | if (power[i].menuMethod == 'temDataAcquisition') { |
| | | temDataAcquisition = true |
| | | } |
| | | } |
| | | if (!fileDel) { |
| | | this.componentData0.do.splice(1, 1) |
| | | } |
| | | this.fileAdd = fileAdd |
| | | this.collected = collected |
| | | this.temDataAcquisition = temDataAcquisition |
| | | }, |
| | | async getCurrentProduct(id,type){ |
| | | this.tableLoading = true; |
| | |
| | | this.tableLists = this.currentSample.insProduct.filter(m => { |
| | | let num0 = mySet1.size; |
| | | if (m.templateId != null&&m.template != null) { |
| | | mySet1.add(JSON.stringify({ |
| | | template: m.template, |
| | | templateId: m.templateId |
| | | })) |
| | | try { |
| | | mySet1.add(JSON.stringify({ |
| | | template: m.template, |
| | | templateId: m.templateId |
| | | })) |
| | | } catch (error) { |
| | | console.log(222,error); |
| | | } |
| | | } |
| | | let num1 = mySet1.size; |
| | | if (num1 > num0) { |
| | |
| | | this.tableLists = list.filter(m => { |
| | | let num0 = mySet1.size; |
| | | if (m.templateId != null&&m.template != null) { |
| | | mySet1.add(JSON.stringify({ |
| | | template: m.template, |
| | | templateId: m.templateId |
| | | })) |
| | | try { |
| | | mySet1.add(JSON.stringify({ |
| | | template: m.template, |
| | | templateId: m.templateId |
| | | })) |
| | | } catch (error) { |
| | | console.log(333,error); |
| | | } |
| | | } |
| | | let num1 = mySet1.size; |
| | | if (num1 > num0) { |
| | |
| | | this.excelMethodList = [] |
| | | this.widthList = this.tableList[0].style.columnlen; |
| | | // 温度循环检验原始记录--开始 |
| | | 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=='温度循环检验原始记录'){ |
| | | let ask = this.currentSample.insProduct[0].ask |
| | | let askList = ask.split(';') |
| | | this.numOptions = [] |
| | |
| | | this.wareFormChange() |
| | | } |
| | | // 温度循环检验原始记录---结束 |
| | | // 热循环检验原始记录---开始 |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('热循环')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('温升试验'))){ |
| | | let ask = this.currentSample.insProduct[0].ask |
| | | let askList = ask.split(';') |
| | | this.thermalCyclingInfo.max = Number(askList[askList.length-1]) |
| | | let arr = [] |
| | | 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; |
| | | } |
| | | return obj |
| | | }) |
| | | this.thermalCyclingInfo.arr = arr; |
| | | // console.log(this.thermalCyclingInfo) |
| | | this.thermalCyclingChange() |
| | | } |
| | | // 热循环检验原始记录---结束 |
| | | this.tableList.forEach(a => { |
| | | let mcList = [] |
| | | a.template.forEach(b => { |
| | |
| | | if (size1 < size2) { |
| | | let str = '' |
| | | let count4 = 0 |
| | | let isThree = 0 |
| | | a.template.forEach(c => { |
| | | if (b.r === c.r) { |
| | | if (c.v.ps != undefined && c.v.ps.value === '检验项') { |
| | | if (count4 === 0) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | if(c.v.ps != undefined && c.v.ps.value === '检验项分类'&&count4 === 0){ |
| | | // 三级分类 |
| | | isThree = 1 |
| | | }else if(c.v.ps != undefined && c.v.ps.value === '检验项'&&count4 === 0){ |
| | | // 二级分类 |
| | | isThree = 0 |
| | | } |
| | | if(isThree==0){ |
| | | if (c.v.ps != undefined && c.v.ps.value === '检验项') { |
| | | if (count4 === 0) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | } |
| | | } else if (c.v.ps != undefined && c.v.ps.value === '检验子项') { |
| | | if (count4 === 1) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | } |
| | | } |
| | | } else if (c.v.ps != undefined && c.v.ps.value === '检验子项') { |
| | | if (count4 === 1) { |
| | | 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(isThree==1){ |
| | | if (c.v.ps != undefined && c.v.ps.value === '检验项分类') { |
| | | if (count4 === 0) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | } |
| | | }else if (c.v.ps != undefined && c.v.ps.value === '检验项') { |
| | | if (count4 === 1) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | } |
| | | } else if (c.v.ps != undefined && c.v.ps.value === '检验子项') { |
| | | if (count4 === 2) { |
| | | str += c.v.v |
| | | count4 += 1 |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | if (str != '') { |
| | | let count2 = 0 |
| | | for (let i in this.currentSample.insProduct) { |
| | | if (this.currentSample.insProduct[i].templateId === a.templateId && this.currentSample |
| | | .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) === |
| | | let inspectionItemClass = this.currentSample.insProduct[i].inspectionItemClass==null||this.currentSample.insProduct[i].inspectionItemClass==undefined?'':this.currentSample.insProduct[i].inspectionItemClass |
| | | let inspectionItem = this.currentSample |
| | | .insProduct[i].inspectionItem==null||this.currentSample |
| | | .insProduct[i].inspectionItem==undefined?'':this.currentSample |
| | | .insProduct[i].inspectionItem |
| | | let inspectionItemSubclass = this.currentSample |
| | | .insProduct[i].inspectionItemSubclass==null||this.currentSample |
| | | .insProduct[i].inspectionItemSubclass==undefined?'':this.currentSample |
| | | .insProduct[i].inspectionItemSubclass |
| | | if (this.currentSample.insProduct[i].templateId === a.templateId && inspectionItemClass +inspectionItem+inspectionItemSubclass === |
| | | str) { |
| | | ids.push({ |
| | | r: b.r, |
| | |
| | | conclusionList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '结论') |
| | | finalList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '最终值') |
| | | a.template.forEach( b => { |
| | | if (b.v.ps != undefined && b.v.ps.value === '序号' && (b.v.mc == undefined || Object.keys(b.v.mc) |
| | | .length === 4)) { |
| | | if (b.v.ps != undefined && b.v.ps.value === '序号' && (b.v.mc == undefined || Object.keys(b.v.mc).length === 4)) { |
| | | count1++ |
| | | b.v.v = count1 |
| | | } |
| | |
| | | b.v.v = this.getAsk(b.i) |
| | | } |
| | | if (b.v.ps != undefined && typeof b.v.ps.value ==='string'&&b.v.ps.value.includes('检验值')) { |
| | | b.v.v = '' |
| | | this.$set(b.v, 'v','' ) |
| | | // b.v.v = '' |
| | | b.u = '' |
| | | b.i && this.param[b.i].insValue.push(b) |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === '计算值') { |
| | | b.v.v = '' |
| | | this.$set(b.v, 'v','' ) |
| | | // b.v.v = '' |
| | | b.i && this.param[b.i].comValue.push(b) |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === '设备编码') { |
| | |
| | | } catch (e) {} |
| | | try { |
| | | let equipValue = JSON.parse(a.insProductResult.equipValue) |
| | | 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.includes('热循环')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('温升试验'))){ |
| | | this.param[a.id].equipValue = [] |
| | | for (let i = 0; i < equipValue.length; i++) { |
| | | this.param[a.id].equipValue.push({ |
| | | v:{ |
| | | 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=='温度循环检验原始记录'){ |
| | | // 温度循环赋值 |
| | | 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.includes('热循环')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('温升试验'))){ |
| | | // 温度循环设备赋值 |
| | | this.$set(this.equipForm,`code`+i,equipValue[i].v) |
| | | this.param[a.id].equipValue[i].v.v = equipValue[i].v |
| | | }else{ |
| | | this.param[a.id].equipValue[i].v.v = equipValue[i].v |
| | | if(equipValue[i].v){ |
| | |
| | | } catch (e) {} |
| | | try { |
| | | let equipName = JSON.parse(a.insProductResult.equipName) |
| | | 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.includes('热循环')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('温升试验'))){ |
| | | this.param[a.id].equipName = [] |
| | | for (let i = 0; i < equipName.length; i++) { |
| | | this.param[a.id].equipName.push({ |
| | | v:{ |
| | | 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=='温度循环检验原始记录'){ |
| | | 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.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温升试验原始记录模板')){ |
| | | // 温度循环赋值 |
| | | this.$set(this.equipForm,`value`+i,equipName[i].v) |
| | | this.param[a.id].equipName[i].v.v = equipName[i].v |
| | | }else{ |
| | | this.param[a.id].equipName[i].v.v = equipName[i].v |
| | | } |
| | |
| | | n.v.v = n.v.v.replace('/', '') |
| | | } |
| | | } |
| | | // 向 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 |
| | | })); |
| | | try { |
| | | // 向 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, |
| | | currentTable:this.currentTable |
| | | })); |
| | | } catch (error) { |
| | | console.log(444,error); |
| | | } |
| | | |
| | | // 监听 Worker 返回的结果 |
| | | this.worker.onmessage = (event) => { |
| | |
| | | switch (this.result.method){ |
| | | case 'saveInsContext': |
| | | this.$nextTick(()=>{ |
| | | this.$delete(this.tableList[0],'arr') |
| | | // this.$delete(this.tableList[0],'arr') |
| | | this.$set(this.tableList[0],'arr',this.result.value.tableList[0].arr) |
| | | this.param = this.result.value.param |
| | | for (var i in this.param){ |
| | |
| | | } |
| | | } |
| | | } |
| | | // let obj = this.param[code.split('-')[3]] |
| | | // this.tableList[0].arr.forEach(item=>{ |
| | | // item.forEach(m=>{ |
| | | // if(obj&&obj.insResult&&m.c==obj.insResult.c&&m.r==obj.insResult.r){ |
| | | // m.v.v = obj.insResult.v.v |
| | | // } |
| | | // if(obj&&obj.resValue&&m.c==obj.resValue.c&&m.r==obj.resValue.r){ |
| | | // m.v.v = obj.resValue.v.v |
| | | // } |
| | | // }) |
| | | // }) |
| | | // console.log(this.tableList,this.param) |
| | | this.saveInsContext() |
| | | }) |
| | | break; |
| | |
| | | } |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }) |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | } catch (error) { |
| | | console.log(555,error); |
| | | } |
| | | } |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | break; |
| | | case 'insValue': |
| | | if (value && value.length > 0) { |
| | |
| | | } |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }) |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | } catch (error) { |
| | | console.log(666,error); |
| | | } |
| | | } |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | break; |
| | | case 'equipValue': |
| | | if (value && value.length > 0) { |
| | |
| | | } |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }) |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | } catch (error) { |
| | | console.log(777,error); |
| | | } |
| | | } |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | break; |
| | | case 'equipName': |
| | | if (value && value.length > 0) { |
| | |
| | | } |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }) |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | } catch (error) { |
| | | console.log(888,error); |
| | | } |
| | | } |
| | | this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) |
| | | break; |
| | | case 'resValue': |
| | | this.tableList[0].lastValue = value?value.v.v:'' |
| | |
| | | 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("$#$","/"); |
| | | try { |
| | | 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("$#$","/"); |
| | | } catch (error) { |
| | | console.log(error); |
| | | } |
| | | |
| | | }, |
| | | getInspectionItemType(id) { |
| | | for (var a in this.currentSample.insProduct) { |
| | |
| | | this.equipOptions = res.data.map(m => { |
| | | m.value = m.managementNumber |
| | | m.label = m.deviceName |
| | | m.isItADataAcquisitionDevice = m.isItADataAcquisitionDevice |
| | | return m |
| | | }) |
| | | } |
| | |
| | | this.$message.error("请指定复核人员") |
| | | return |
| | | } |
| | | if(!this.otherForm.humidity){ |
| | | this.$message.error("请输入湿度") |
| | | return |
| | | } |
| | | if(!this.otherForm.temperature){ |
| | | this.$message.error("请输入温度") |
| | | return |
| | | } |
| | | this.addVerifyDia = false |
| | | this.submitLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, { |
| | |
| | | orderId: this.orderId, |
| | | laboratory: this.sonLaboratory, |
| | | verifyUser: this.verifyUser, |
| | | entrustCode: this.insOrder.entrustCode, |
| | | sampleCode: this.currentSample.sampleCode |
| | | entrustCode: this.insOrder.entrustCode |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | |
| | | return |
| | | }, |
| | | saveInsContext() { |
| | | // console.log(1111,this.param) |
| | | if(this.param){ |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext, { |
| | | param: JSON.stringify(this.param) |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('保存失败') |
| | | return |
| | | } |
| | | this.$message.success('已保存') |
| | | }) |
| | | console.log(1111,this.param) |
| | | try { |
| | | if(this.param){ |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext, { |
| | | param: JSON.stringify(this.param) |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('保存失败') |
| | | return |
| | | } |
| | | this.$message.success('已保存') |
| | | }) |
| | | // 向 Worker 发送消息,开始处理逻辑 |
| | | this.worker.postMessage(JSON.stringify({ |
| | | type: 'saveData', |
| | | tableList:this.tableList, |
| | | param:this.param, |
| | | currentTable:this.currentTable |
| | | })); |
| | | } |
| | | }catch (error) { |
| | | console.log(999,error); |
| | | } |
| | | }, |
| | | changeEquip(val, n) { |
| | | this.tableList[0].arr.forEach((item,index)=>{ |
| | | item.forEach((m,i)=>{ |
| | | if(this.param[m.i]){ |
| | | this.param[m.i].state = 1 |
| | | } |
| | | }) |
| | | }) |
| | | for (let i in this.param) { |
| | | if(this.param[i].state!=1){ |
| | | delete this.param[i] |
| | | } |
| | | } |
| | | for (let i in this.equipOptions) { |
| | | 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.$delete(this.param[n.i].equipValue[i1].v,'v') |
| | | this.$set(this.param[n.i].equipValue[i1].v,'v',val) |
| | | this.$delete(this.param[n.i].equipName[i1].v,'v') |
| | | this.$set(this.param[n.i].equipName[i1].v,'v',this.equipOptions[i].label) |
| | | this.param[n.i].equipValue[i1].isItADataAcquisitionDevice = this.equipOptions[i].isItADataAcquisitionDevice |
| | | } |
| | |
| | | }) |
| | | } |
| | | } |
| | | // console.log(this.param) |
| | | this.saveInsContext() |
| | | }, |
| | | getAuthorizedPerson() { |
| | | this.$axios.get(this.$api.user.getUserMenu).then(res => { |
| | | let data = [] |
| | | let userName = JSON.parse(localStorage.getItem("user")).name; |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | if(a.name !== userName) { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id |
| | | }) |
| | | } |
| | | }) |
| | | this.personList = data |
| | | }) |