| | |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;" v-once>检验单详情 |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;" >检验单详情 |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;" v-once> |
| | | <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="fiberOpticTapeVisible=true" v-if="fiberOpticTape.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-input clearable v-model="insOrder.appointed" disabled size="small" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="当前样品位数:"> |
| | | <el-tag v-show="currentKey">{{ `NO.${currentKey}` }}</el-tag> |
| | | <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="center"> |
| | | <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <span v-show="tableList.length>0">检验模板:</span> |
| | | <span v-if="tableList.length>0">检验模板:</span> |
| | | <el-radio-group v-model="currentTable" size="small"> |
| | | <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index" |
| | | size="small">{{ item.templateName }}</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <span v-show="fibers.length>0"> 光纤带:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,1)" v-show="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-show="fiber.length>0"> 光纤:</span> |
| | | <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,2)" v-show="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-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'已检':'未检' }}</el-tag> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;" v-show="PROJECT=='检测中心'"> |
| | | <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" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')" ></el-input> |
| | | <span style="margin-left: 4px;">℃</span> |
| | |
| | | <span style="margin-left: 4px;">%</span> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-button type="primary" size="small" v-show="dataAcquisitionEidt>0&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button> |
| | | <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-show="dataAcquisitionEidt>0&&PROJECT=='检测中心'&&collected&&state==1" @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!='温度循环检验原始记录'&&!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"> |
| | | <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-show="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}`" |
| | |
| | | v-else-if="getInspectionValueType(n.i) == 4">/</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='结论'"> |
| | | <el-select v-show="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='装备电缆'" |
| | | <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='装备电缆'" |
| | | class="table_input" v-model="n.v.v" @change="saveInsContext()"> |
| | | <el-option label="合格" :value="1"></el-option> |
| | | <el-option label="不合格" :value="0"></el-option> |
| | | </el-select> |
| | | <template v-show="PROJECT=='检测中心'||PROJECT=='装备电缆'&&getInspectionValueType(n.i) != 2 "> |
| | | <template v-if="PROJECT=='检测中心'||PROJECT=='装备电缆'&&getInspectionValueType(n.i) != 2 "> |
| | | <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">合格</span> |
| | | <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">不合格</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </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 != '')" |
| | |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品编号'"> |
| | | <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode"> |
| | | <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-show="!currentFiberOpticTape&&!currentFiberOptic"></i> |
| | | <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> |
| | | <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div> |
| | | <i class="el-icon-caret-right table_caret" style="width: 16px;" |
| | | v-show="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i> |
| | | v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i> |
| | | </div> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品型号'"> |
| | |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='光纤带'"> |
| | | <div style="display: flex;flex-wrap: nowrap;align-items: center;"> |
| | | <i class="el-icon-caret-left table_caret" @click="caretTape(-1) |
| | | " v-show="currentFiberOpticTape"></i> |
| | | " v-if="currentFiberOpticTape"></i> |
| | | <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div> |
| | | <i class="el-icon-caret-right table_caret" |
| | | v-show="currentFiberOpticTape" |
| | | v-if="currentFiberOpticTape" |
| | | @click="caretTape(1)"></i> |
| | | </div> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='光纤'"> |
| | | <div style="display: flex;flex-wrap: nowrap;align-items: center;"> |
| | | <i class="el-icon-caret-left table_caret" @click="caretOptic(-1)" |
| | | v-show="currentFiberOptic"></i> |
| | | v-if="currentFiberOptic"></i> |
| | | <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}} |
| | | </div> |
| | | <i |
| | | v-show="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> |
| | | v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> |
| | | </div> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" v-once></span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | ref="wareTableData" |
| | | border |
| | | v-loading="wareTableDataLoading" |
| | | style="width: 100%;margin-bottom: 30px;" align="center" v-show="wareForm.inspectionItemSubclass!='20(常温)'&&wareForm.inspectionItemSubclass!='20'||(wareForm.inspectionItemSubclass=='20(常温)'&&wareForm.inspectionItem==1)||(wareForm.inspectionItemSubclass=='20'&&wareForm.inspectionItem==numOptions.length)"> |
| | | 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> |
| | |
| | | prop="value1" |
| | | label="内端" |
| | | align="center" |
| | | width="80" :key="(new Date())+'2'"> |
| | | width="100" :key="(new Date().getTime())+'23333333'"> |
| | | <template slot="header"> |
| | | {{ '内端'+(index+1) }} |
| | | </template> |
| | |
| | | <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> |
| | |
| | | prop="resValue" |
| | | label="衰减差" |
| | | align="center" |
| | | v-show="wareForm.inspectionItemSubclass!='20(常温)'" |
| | | min-width="90" :key="(new Date())+'4'"> |
| | | v-if="wareForm.inspectionItemSubclass!='20(常温)'" |
| | | min-width="90" :key="(new Date().getTime())+'434634634634'"> |
| | | <template slot="header"> |
| | | {{ '衰减差'+(index+1) }} |
| | | </template> |
| | |
| | | prop="insResult" |
| | | label="结论" |
| | | align="center" |
| | | min-width="70" v-show="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> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="循环次数:" v-show="thermalCyclingInfo.inspectionItemClass=='直流电阻'"> |
| | | <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-show="state==1">新增</el-button> |
| | | <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal" v-show="state==1">删除</el-button> |
| | | <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"> |
| | |
| | | :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" v-show="state==1">附件上传</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-drawer title="光纤切换" :visible.sync="fiberOpticVisible" :size="500"> |
| | | <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border |
| | | highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName" |
| | | :current-row-key="currentKey2" :row-key="record=>record.index" v-show="fiberOpticVisible"> |
| | | :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible"> |
| | | <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column prop="bushColor" label="管套色标" min-width="100px" show-overflow-tooltip></el-table-column> |
| | |
| | | <el-drawer title="光纤带切换" :visible.sync="fiberOpticTapeVisible" :size="500"> |
| | | <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border |
| | | highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName" |
| | | :current-row-key="currentKey1" :row-key="record=>record.index" v-show="fiberOpticTapeVisible"> |
| | | :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible"> |
| | | <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="光纤带编号" min-width="110px" show-overflow-tooltip></el-table-column> |
| | |
| | | <el-drawer title="套管切换" :visible.sync="bushingVisible" :size="500"> |
| | | <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border |
| | | highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName" |
| | | :current-row-key="currentKey0" :row-key="record=>record.index" v-show="bushingVisible"> |
| | | :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible"> |
| | | <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column prop="color" label="管色标" min-width="100px" show-overflow-tooltip></el-table-column> |
| | |
| | | <el-drawer title="样品切换" :visible.sync="sampleVisible" :size="500"> |
| | | <el-table class="el-table" ref="productTable" :data="sampleProduct" height="100%" tooltip-effect="dark" border |
| | | highlight-current-row @row-click="handleChangeSample" :row-class-name="tableRowClassName" |
| | | :current-row-key="currentKey" :row-key="record=>record.index" v-show="sampleVisible"> |
| | | :current-row-key="currentKey" :row-key="record=>record.index" v-if="sampleVisible"> |
| | | <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号" min-width="100px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="model" label="样品型号" min-width="100px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="insState" label="检测状态" width="100px" show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | | <el-tag v-for="(item, i) in typeList" :key="i" v-show="item.value == scope.row.insState" :type="item.type" |
| | | <el-tag v-for="(item, i) in typeList" :key="i" v-if="item.value == scope.row.insState" :type="item.type" |
| | | size="medium" style="margin-right: 5px;">{{item.label}}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-table-column> |
| | | <!-- 检验单会有一个是否有配套样品字段控制显示 --> |
| | | <el-table-column prop="joinModel" label="配套样品型号" min-width="130px" show-overflow-tooltip |
| | | v-show="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-show="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-show="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"> |
| | |
| | | :componentData="componentData" :key="upIndex" style="height: 100%;"/> |
| | | </el-drawer> |
| | | <el-dialog title="检验复核" :visible.sync="reviewDia" width="500px"> |
| | | <div class="body" style="display: flex;padding: 10px;" v-show="reviewDia"> |
| | | <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">* </span>不通过的理由:</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 4}"></el-input> |
| | |
| | | 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() |
| | | } |
| | | }) |
| | | } |
| | |
| | | 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 |
| | | 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.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 |
| | | } |
| | | }; |
| | | // 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(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('检验值')){ |
| | | // 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('检验值')){ |
| | | // let arr = n.v.ps.value.split('值') |
| | | // if(arr[1] ==this.dataAcquisitionInfo.frequency){ |
| | | // setTimeout(()=>{ |
| | | // this.$delete(n.v,'v') |
| | | // 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[str]) |
| | | // this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) |
| | | // },1000) |
| | | // } |
| | | // } |
| | | // } |
| | | // }) |
| | | // } |
| | | // } |
| | | // }) |
| | | // }) |
| | | }) |
| | | // 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() { |
| | |
| | | }, |
| | | // 温度循环---开始 |
| | | 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 |
| | |
| | | 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)=>{ |
| | |
| | | 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 == '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; |
| | |
| | | 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 === '设备编码') { |
| | |
| | | comparisonList:this.comparisonList, |
| | | currentSample:this.currentSample, |
| | | PROJECT:this.PROJECT, |
| | | param:this.param |
| | | param:this.param, |
| | | currentTable:this.currentTable |
| | | })); |
| | | } catch (error) { |
| | | console.log(444,error); |
| | |
| | | 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.$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.profile() |
| | | // console.log(1111,this.param) |
| | | console.log(1111,this.param) |
| | | try { |
| | | if(this.param){ |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext, { |
| | |
| | | } |
| | | 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) |
| | | // 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 |
| | | }) |