| | |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);"> |
| | | <el-row class="title"> |
| | | <el-col :span="4" style="padding-left: 20px; text-align: left">检验单详情 |
| | | </el-col> |
| | | <el-col :span="20" style="text-align: right"> |
| | | <el-col :span="8" style="text-align: left"> |
| | | <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" |
| | | style="text-align: right; padding-top: 0; display: inline"> |
| | | <el-form-item label="温度:" style="margin-bottom: 0"> |
| | |
| | | <span style="margin-left: 4px">%</span> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | <el-col :span="16" style="text-align: right"> |
| | | <el-button size="small" type="primary" @click="refreshView">刷新</el-button> |
| | | <el-button v-if="typeSource === 1" size="small" type="primary" @click="openPurchase">进货验证</el-button> |
| | | <el-button v-if="state === 1 && typeSource === 1" size="small" type="primary" |
| | | <el-button v-if="typeSource == 1" size="small" type="primary" @click="openPurchase">进货验证</el-button> |
| | | <el-button v-if="state == 1 && typeSource == 1" size="small" type="primary" |
| | | @click="openUnPassDialog('add')">不合格处理</el-button> |
| | | <el-button size="small" type="primary" @click=" |
| | | sampleVisible = true; |
| | | uploadSample(); |
| | | ">样品切换</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">任务切换</el-button> |
| | | <el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">样品切换</el-button> |
| | | <!-- <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">任务切换</el-button>--> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="addVerifyDia = true">提交</el-button> |
| | | <!-- 复核 --> |
| | | <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">通过</el-button> |
| | | <el-button v-if="state == 2" size="medium" @click="upInsReview(0)">不通过</el-button> |
| | | <el-button type="primary" size="small" @click="exportTable('myTable')">下载原始记录</el-button> |
| | | <el-button size="small" @click="$emit('goback')">返回</el-button> |
| | | <el-button size="small" @click="goback">返回</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="search"> |
| | |
| | | <el-form-item v-if="typeSource === 1" label="厂家密度:"> |
| | | <el-input v-model="supplierDensity" clearable disabled placeholder="请输入" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="当前样品位数:"> |
| | | <el-form-item label="当前样品位数:" label-width="120px"> |
| | | <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="备注:"> |
| | | <!-- <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>--> |
| | | <el-input v-model="insOrder.remark" :disabled="state !== 1" clearable placeholder="请输入" size="small" |
| | | <el-input v-model="insOrder.remark" :disabled="state != 1" clearable placeholder="请输入" size="small" |
| | | @blur="subOtherForm(insOrder.remark, 'remark')"></el-input> |
| | | <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> --> |
| | | </el-form-item> |
| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="display: flex; align-items: center"> |
| | | <el-button v-if="state === 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <el-button v-if="state === 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button> |
| | | <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> |
| | | <span v-if="cableTagList.length > 0"> 电缆配置:</span> |
| | | <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="请选择" size="small" |
| | |
| | | </div> |
| | | </div> |
| | | <!-- 常规检验原始记录 --> |
| | | <div 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('温升试验') && |
| | | tableLists.find((m) => m.templateId == currentTable).templateName != |
| | | '弧垂特性检验原始记录') |
| | | " id="nav" v-loading="tableLoading" class="center-box"> |
| | | <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1" |
| | | cellpadding="10" class="tables" id="myTable"> |
| | | <tbody> |
| | | <tr style="white-space: nowrap"> |
| | | 委托编号:{{ |
| | | insOrder.entrustCode |
| | | }} |
| | | </tr> |
| | | <tr v-for="(m, i) in item.arr" :key="i"> |
| | | <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4" |
| | | :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j" |
| | | :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-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r] |
| | | }px;`" class="content"> |
| | | <template v-if=" |
| | | n.v.ps != undefined && |
| | | typeof n.v.ps.value === 'string' && |
| | | n.v.ps.value.includes('检验值') && |
| | | state == 1 |
| | | "> |
| | | <el-input v-if="getInspectionValueType(n.i) == 1" |
| | | :key="'abc-' + '000' + index + '000' + i + '000' + j" v-model="n.v.v" :disabled="(getInspectionItemType(n.i) == 1 && |
| | | !dataAcquisitionEidtAble) || |
| | | <div id="nav" v-loading="tableLoading" class="center-box"> |
| | | <template v-if=" |
| | | tableLists.find((m) => m.templateId == currentTable)"> |
| | | <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1" |
| | | cellpadding="10" class="tables" id="myTable"> |
| | | <tbody> |
| | | <tr style="white-space: nowrap"> |
| | | 委托编号:{{ |
| | | insOrder.entrustCode |
| | | }} |
| | | </tr> |
| | | <tr v-for="(m, i) in item.arr" :key="i"> |
| | | <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4" |
| | | :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j" |
| | | :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-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r] |
| | | }px;`" class="content"> |
| | | <template v-if=" |
| | | n.v.ps != undefined && |
| | | typeof n.v.ps.value === 'string' && |
| | | n.v.ps.value.includes('检验值') && |
| | | state == 1 |
| | | "> |
| | | <el-input v-if="getInspectionValueType(n.i) == 1" |
| | | :key="'abc-' + '000' + index + '000' + i + '000' + j" v-model="n.v.v" :disabled="(getInspectionItemType(n.i) == 1 && |
| | | !dataAcquisitionEidtAble) || |
| | | (n.u != userId && n.u != undefined && n.u != '') |
| | | " class="table_input" @change="(m) => |
| | | changeInput( |
| | | m, |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType' |
| | | ) |
| | | " @input="handleInput(n)" @mousewheel.native.prevent @keydown.enter=" |
| | | changeInput( |
| | | '', |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType' |
| | | ) |
| | | "> |
| | | </el-input> |
| | | <el-input v-else-if="getInspectionValueType(n.i) == 2" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || |
| | | (n.u != userId && n.u != undefined && n.u != '') |
| | | " class="table_input" @change="(m) => |
| | | " class="table_input" type="textarea" @change="(m) => |
| | | changeInput( |
| | | m, |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType' |
| | | ) |
| | | " @input="handleInput(n)" @mousewheel.native.prevent @keydown.enter=" |
| | | changeInput( |
| | | '', |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType' |
| | | ) |
| | | "> |
| | | </el-input> |
| | | <el-input v-else-if="getInspectionValueType(n.i) == 2" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || |
| | | (n.u != userId && n.u != undefined && n.u != '') |
| | | " class="table_input" type="textarea" @change="(m) => |
| | | changeInput( |
| | | m, |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType' |
| | | ) |
| | | " /> |
| | | <!-- <el-select v-else-if="getInspectionValueType(n.i) == 5" v-model="n.v.v" :disabled="state > 1 || |
| | | " /> |
| | | <!-- <el-select v-else-if="getInspectionValueType(n.i) == 5" v-model="n.v.v" :disabled="state > 1 || |
| | | getInspectionItemType(n.i) == 1 || |
| | | (n.u != userId && n.u != undefined && n.u != '') |
| | | " class="table_input" @change="(m) => |
| | |
| | | " @visible-change="(e) => getDic(e, n.i)"> |
| | | <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> |
| | | </el-select> --> |
| | | <span v-else-if="getInspectionValueType(n.i) == 4" |
| | | :style="`font-family:${n.v.ff} !important;`">/</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '结论'"> |
| | | <el-select v-if=" |
| | | (getInspectionValueType(n.i) == 2 || |
| | | getInspectionValueType(n.i) == 5) && |
| | | <span v-else-if="getInspectionValueType(n.i) == 4" |
| | | :style="`font-family:${n.v.ff} !important;`">/</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '结论'"> |
| | | <el-select v-if=" |
| | | (getInspectionValueType(n.i) == 2 || |
| | | getInspectionValueType(n.i) == 5) && |
| | | state == 1 |
| | | " v-model="n.v.v" class="table_input" @change="(m) => |
| | | changeInput( |
| | | m, |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType', |
| | | 'changeSelect' |
| | | ) |
| | | "> |
| | | <el-option :value="1" label="合格"></el-option> |
| | | <el-option :value="0" label="不合格"></el-option> |
| | | <el-option :value="3" label="不判定"></el-option> |
| | | <el-option :value="2" label="待定"></el-option> |
| | | </el-select> |
| | | <template v-if="state > 1"> |
| | | <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-if="n.v.v === 3" |
| | | :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">不判定</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | <template v-if="getInspectionValueType(n.i) != 2 && |
| | | state == 1"> |
| | | <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-if="n.v.v === 3" |
| | | :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">不判定</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && |
| | | n.v.ps.value === '设备编码' && |
| | | state == 1 |
| | | " v-model="n.v.v" class="table_input" @change="(m) => |
| | | changeInput( |
| | | m, |
| | | `${item.templateId}-${n.r}-${n.c}-${n.i}`, |
| | | n, |
| | | 'getDataType', |
| | | 'changeSelect' |
| | | ) |
| | | "> |
| | | <el-option :value="1" label="合格"></el-option> |
| | | <el-option :value="0" label="不合格"></el-option> |
| | | <el-option :value="3" label="不判定"></el-option> |
| | | <el-option :value="2" label="待定"></el-option> |
| | | </el-select> |
| | | <template v-if="state > 1"> |
| | | <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-if="n.v.v === 3" |
| | | :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">不判定</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | <template v-if=" |
| | | PROJECT == '检测中心' || |
| | | (PROJECT == '装备电缆' && |
| | | getInspectionValueType(n.i) != 2 && |
| | | state == 1) |
| | | "> |
| | | <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-if="n.v.v === 3" |
| | | :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">不判定</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | <span>{{ n.v.v }}</span> |
| | | </template> |
| | | </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 === '设备名称' |
| | | "> |
| | | <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple |
| | | placeholder="设备" remote @change="(val) => changeEquip(val, n)" |
| | | @visible-change="(e) => getEquipOptions(e, n.i)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> |
| | | {{ item.label + "--" + item.value }} |
| | | </el-option> |
| | | </el-select> |
| | | </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 |
| | | "> |
| | | <span :style="`font-family:${n.v.ff} !important;`">{{ |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '设备名称' |
| | | "> |
| | | <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple |
| | | placeholder="设备" remote @change="(val) => changeEquip(val, n)" |
| | | @visible-change="(e) => getEquipOptions(e, n.i)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | {{ item.label + "--" + item.value }} |
| | | </el-option> |
| | | </el-select> |
| | | </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 === '样品编号' |
| | | "> |
| | | <div :title="currentSample.sampleCode" style=" |
| | | }}</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 === '样品编号' |
| | | "> |
| | | <div :title="currentSample.sampleCode" style=" |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | align-items: center; |
| | | width: 100%; |
| | | "> |
| | | <i v-if="!currentFiberOpticTape && !currentFiberOptic" class="el-icon-caret-left table_caret" |
| | | style="width: 16px" @click="caretSample(-1)"></i> |
| | | <div |
| | | :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`"> |
| | | {{ currentSample.sampleCode }} |
| | | <i class="el-icon-caret-left table_caret" style="width: 16px" @click="caretSample(-1)"></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" @click="caretSample(1)"></i> |
| | | </div> |
| | | <i v-if="!currentFiberOpticTape && !currentFiberOptic" class="el-icon-caret-right table_caret" |
| | | style="width: 16px" @click="caretSample(1)"></i> |
| | | </div> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '样品型号' |
| | | "> |
| | | <div v-if=" |
| | | currentSample.model !== undefined && |
| | | currentSample.model !== null |
| | | " :style="`font-family:${n.v.ff} !important;`"> |
| | | {{ currentSample.model }} |
| | | </div> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '样品型号' |
| | | "> |
| | | <div v-if=" |
| | | currentSample.model !== undefined && |
| | | currentSample.model !== null |
| | | " :style="`font-family:${n.v.ff} !important;`"> |
| | | {{ currentSample.model }} |
| | | </div> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </template> |
| | | </div> |
| | | <el-upload v-if="state == 1" ref="upload" :action="action" :before-upload="beforeUpload" :data="{ |
| | | orderId: id, |
| | | }" :headers="headers" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false" |
| | | accept=".jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar" style="width: 80px !important"> |
| | | }" :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false" |
| | | accept=".jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar" |
| | | style="width: 80px !important;margin-top: 10px;"> |
| | | <el-button v-if="state == 1" size="small" type="primary">附件上传</el-button></el-upload> |
| | | <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" |
| | | :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table> |
| | | <!-- <ValueTable :key="upIndex" ref="fileList" :componentData="componentData0" :delUrl="$api.insOrderPlan.delfile" |
| | | :url="$api.insOrderPlan.getFileList" class="value-table" style="height: 100%; margin-top: 16px" /> --> |
| | | :height="'calc(100vh - 290px)'" @pagination="pagination" style="height: 100%; margin-top: 16px"></lims-table> |
| | | </div> |
| | | <el-drawer :size="550" :visible.sync="sampleVisible" title="样品切换"> |
| | | <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | :row-class-name="tableRowClassName" :row-key="(record) => record.index" border class="el-table" height="100%" |
| | | highlight-current-row tooltip-effect="dark" @row-click="handleChangeSample"> |
| | | <el-table-column :key="Math.random()" align="center" label="序号" type="index" width="70px"> |
| | |
| | | size="medium" style="margin-right: 5px">{{ item.label }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="检验人" min-width="80px" prop="checkName" show-overflow-tooltip></el-table-column> |
| | | <el-table-column align="center" label="是否留样" prop="isLeave" show-overflow-tooltip width="95px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.isLeave == 0 ? "否" : "是" }}</span> |
| | |
| | | </el-table> |
| | | </el-drawer> |
| | | <el-drawer :size="500" :visible.sync="taskVisible" title="任务切换"> |
| | | <!-- <ValueTable :key="upIndex" ref="insOrderPlan" :componentData="componentData" |
| | | :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching" class="value-table" style="height: 100%" /> --> |
| | | <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading0" |
| | | :height="'calc(100vh - 90px)'" :currentChange="handleChangeTask"></lims-table> |
| | | </el-drawer> |
| | | <el-dialog :visible.sync="reviewDia" title="检验复核" width="500px"> |
| | | <div v-if="reviewDia" class="body" style="display: flex; padding: 10px"> |
| | |
| | | <el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 添加不合格复测弹框--> |
| | | <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" |
| | | @resetAddUnPass="resetAddUnPass"></add-un-pass> |
| | | <!-- <UnPassDialog |
| | | v-if="unPassDialog" |
| | | ref="unPassDialog" |
| | | :orderId="orderId" |
| | | :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm" |
| | | ></UnPassDialog> --> |
| | | <!-- <InspectionWord |
| | | v-if="unPassCheck" |
| | | :inspectorList="inspectorList" |
| | | :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" |
| | | :sonLaboratory="sonLaboratory" |
| | | :state="state" |
| | | :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" |
| | | @closeUnPassCheckDialog="closeUnPassCheckDialog" |
| | | @refreshView="refreshView" |
| | | /> --> |
| | | <!-- <purchase-verification |
| | | v-if="purchaseDialog" |
| | | ref="purchaseDialog" |
| | | :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" |
| | | @resetPurchaseDialog="resetPurchaseDialog" |
| | | ></purchase-verification> --> |
| | | <!-- 不合格处理弹框--> |
| | | <UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm"></UnPassDialog> |
| | | <!-- 不合格复测弹框--> |
| | | <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId" |
| | | :cableTag="temCableTag" :repetitionTag="repetitionTag" |
| | | :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> |
| | | <!-- 进货验证弹框--> |
| | | <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification> |
| | | <!--查看工时弹框--> |
| | | <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import excelFunction from "@/utils/excelFountion"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | // import UnPassDialog from "../b1-unpass-manage/unPassDialog.vue"; |
| | | // import AddUnPass from "../b1-unpass-manage/addUnPass.vue"; |
| | | // import InspectionWord from "./InspectionWord.vue"; |
| | | // import PurchaseVerification from "../b1-unpass-manage/PurchaseVerification.vue"; |
| | | import UnPassDialog from "../unpass/components/unPassDialog.vue"; |
| | | import AddUnPass from "../unpass/components/addUnPass.vue"; |
| | | import InspectionWord from "./components/InspectionWord.vue"; |
| | | import PurchaseVerification from "../unpass/components/PurchaseVerification.vue"; |
| | | import { |
| | | doInsOrder, |
| | | getCableTag, |
| | |
| | | dataCollection, |
| | | write, |
| | | getInsProduct, |
| | | getReportModel, |
| | | determineWhetherToCollectData, |
| | | search, |
| | | verifyPlan, |
| | | checkSubmitPlan, |
| | |
| | | selectUserCondition, |
| | | downFile, |
| | | getFileList, |
| | | delfile |
| | | delfile, |
| | | inspectionOrderDetailsTaskSwitching |
| | | } from "@/api/business/inspectionTask.js"; |
| | | import InspectionWorker from '@/workers/InspectionWorker.worker'; |
| | | import DataWorker from '../../../workers/DataWorker.worker'; |
| | | import html2canvas from "html2canvas"; |
| | | import { mapGetters } from "vuex"; |
| | | import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue"; |
| | | export default { |
| | | // props: ["sonLaboratory", "orderId", "state", "inspectorList", "typeSource"], |
| | | name: 'Inspection', |
| | | components: { |
| | | // PurchaseVerification, |
| | | // AddUnPass, |
| | | viewManHourDia, |
| | | PurchaseVerification, |
| | | AddUnPass, |
| | | limsTable, |
| | | // UnPassDialog, |
| | | // InspectionWord, |
| | | UnPassDialog, |
| | | InspectionWord, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | load: null, |
| | | }, |
| | | dataGetDia: false, |
| | | wareTableDataLoading: false, |
| | | fileAdd: false, |
| | | sampleVisible: false, |
| | | taskVisible: false, |
| | |
| | | state: null, |
| | | }, |
| | | id: null, |
| | | componentData: { |
| | | entity: { |
| | | sonLaboratory: null, |
| | | userId: 0, |
| | | }, |
| | | isIndex: false, |
| | | showSelect: false, |
| | | select: false, |
| | | selectMethod: "handleChangeTask", |
| | | sort: false, |
| | | do: [], |
| | | isPage: false, |
| | | linkEvent: {}, |
| | | tagField: { |
| | | type: { |
| | | select: [], |
| | | }, |
| | | insState: { |
| | | select: [], |
| | | }, |
| | | }, |
| | | currentId: "", |
| | | selectField: {}, |
| | | requiredAdd: [], |
| | | requiredUp: [], |
| | | }, |
| | | changeType: null, |
| | | getReportModelLoading: false, |
| | | insOrder: {}, |
| | | sampleProduct: [], |
| | | supplierDensity: "", // 厂家密度 |
| | |
| | | verifyUser: null, |
| | | personList: [], |
| | | enumList: [], |
| | | fiberOpticVisible: false, |
| | | fiberOpticTapeVisible: false, |
| | | bushingVisible: false, |
| | | fiberOpticTape: [], //光纤带列表 |
| | | fiberOptic: [], //光纤列表 |
| | | bushing: [], //套管列表 |
| | | currentFiberOpticTape: null, //当前光纤带 |
| | | currentFiberOptic: null, //当前光纤 |
| | | currentBushing: null, //当前套管 |
| | | tableLoading: false, |
| | | upLoading: false, |
| | | temptList: null, |
| | | fiber: [], |
| | | fibers: [], |
| | | casing: [], |
| | | currentTab: null, |
| | | wareForm: { |
| | | inspectionItem: 1, |
| | | inspectionItemSubclass: "20(常温)", |
| | | }, |
| | | wareForm0: {}, |
| | | numOptions: [], |
| | | temperatureOptions: [], |
| | | wareTableData: [], |
| | | otherForm: { |
| | | humidity: null, |
| | | temperature: null, |
| | |
| | | dataAcquisitionInfo: {}, |
| | | dataAcquisitionInfoNew: {}, |
| | | dataAcquisitionEidtAble: false, |
| | | isGet: false, |
| | | dataAcquisitionLoading: false, |
| | | collected: false, |
| | | // 热循环---开始 |
| | | thermalCyclingInfo: { |
| | | max: 0, |
| | | inspectionItem: 1, |
| | | arr: [], |
| | | length: 1, |
| | | inspectionItemClass: null, |
| | | }, |
| | | thermalCyclingLoading: false, |
| | | temDataAcquisition: false, |
| | | getData: [ |
| | | { |
| | |
| | | } else { |
| | | return '文件' |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | { label: "附件名称", prop: "fileName" }, |
| | | { label: "上传人", prop: "name" }, |
| | |
| | | }, |
| | | tableLoading: false, |
| | | // 文件列表相关--结束 |
| | | // 任务切换列表--开始 |
| | | tableData0: [], |
| | | column0: [ |
| | | { label: "委托编号", prop: "entrustCode", width: '160px' }, |
| | | { label: "检验对象", prop: "sampleType", width: '140px' }, |
| | | { |
| | | label: "紧急程度", prop: "type", dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.urgentList.find(m => m.value == params).label |
| | | }, |
| | | formatType: (params) => { |
| | | return this.urgentList.find(m => m.value == params).type |
| | | } |
| | | }, |
| | | { |
| | | label: "状态", prop: "insState", dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.typeList.find(m => m.value == params).label |
| | | }, |
| | | formatType: (params) => { |
| | | return this.typeList.find(m => m.value == params).type |
| | | } |
| | | }, |
| | | { label: "约定时间", prop: "appointed", width: '140px' }, |
| | | { label: "下发时间", prop: "sendTime", width: '140px' }, |
| | | ], |
| | | page0: { |
| | | total: 0, |
| | | size: -1, |
| | | current: -1, |
| | | }, |
| | | tableLoading0: false, |
| | | // 任务切换列表--结束 |
| | | }; |
| | | }, |
| | | // 用于上传文件的信息 |
| | | computed: { |
| | | ...mapGetters(["userId"]), |
| | | headers() { |
| | | return { |
| | | token: sessionStorage.getItem("token"), |
| | | }; |
| | | }, |
| | | action() { |
| | | return this.javaApi + "/insOrderPlan/uploadFile"; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.componentData.entity.sonLaboratory = this.sonLaboratory; |
| | | this.getUserInfo(); |
| | | let { sonLaboratory, orderId, state, inspectorList, typeSource } = |
| | | this.$route.query; |
| | | this.sonLaboratory = sonLaboratory; |
| | |
| | | this.getInsStateDicts(); |
| | | this.getComparisonList(); |
| | | this.getAuthorizedPerson(); |
| | | this.scrollInit(); |
| | | // this.getPower(); |
| | | this.startWorker(); |
| | | // this.getList0() // 任务切换 |
| | | this.scrollInit(); |
| | | }, |
| | | activated() { |
| | | this.getTypeDicts(); // 获取紧急程度下拉框选项 |
| | | this.getInsStateDicts(); |
| | | this.getComparisonList(); |
| | | this.getAuthorizedPerson(); |
| | | this.startWorker(); |
| | | // this.getList0() // 任务切换 |
| | | this.scrollInit(); |
| | | }, |
| | | watch: { |
| | | // 监听任务id,获取任务信息 |
| | | id(val) { |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: val, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.$emit("goback"); |
| | | return this.$message.error("该任务没有样品信息"); |
| | | } |
| | | // 赋值当前样品列表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // 温度、湿度赋值 |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // 原材料的检验任务查询批数 |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // 获取当前样品的检验项 |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // 初始化传递到后端的参数 |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a) => { |
| | | // 是否为成品电缆下的松套管项目,不是则执行初始化 |
| | | if (this.handleCasing(a.inspectionItem)) { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | } |
| | | }); |
| | | this.determineWhetherToCollectData(); //是否需要数采 |
| | | this.getReportModel(this.currentSample.id); //获取套管、光纤带、光纤信息 |
| | | if (this.currentSample.index == undefined) |
| | | this.currentSample["index"] = 1; |
| | | let bushing = this.currentSample.bushing; |
| | | this.getTableLists(); //处理模板列表信息 |
| | | |
| | | this.componentData.currentId = val; |
| | | this.currentKey = 1; |
| | | this.getCableTag(this.currentSample.id); // 查询是否有要多次检验的电缆配置 |
| | | this.getRepetitionTag(this.currentSample.id); // 查询是否有要重复检验项 |
| | | // 清空光纤配置相关数据---下面信息暂时可忽略 |
| | | this.fiberOpticTape = []; |
| | | this.currentFiberOpticTape = null; |
| | | this.fiberOptic = []; |
| | | this.currentFiberOptic = null; |
| | | this.bushing = []; |
| | | this.currentBushing = null; |
| | | this.currentTab = null; |
| | | if (bushing && bushing.length > 0) { |
| | | this.bushing = bushing; |
| | | } |
| | | }); |
| | | this.refreshView() |
| | | }, |
| | | // 监听当前模板变化 |
| | | currentTable(val1, val0) { |
| | |
| | | this.currentSample.insProduct = this.HaveJson(list); //赋值当前样品的检验项 |
| | | this.param = {}; //初始化传到后端的参数 |
| | | this.currentSample.insProduct.forEach((a, j) => { |
| | | if (this.handleCasing(a.inspectionItem)) { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | } |
| | | 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) => { |
| | |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | delfile({ id: row.id }).then((res) => { |
| | | if (res.code == 201) return; |
| | | this.$message.success("删除成功"); |
| | | this.refresh(); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }).then(() => { |
| | | delfile({ id: row.id }).then((res) => { |
| | | this.$message.success("删除成功"); |
| | | this.getList(); |
| | | }); |
| | | }).catch(() => { }); |
| | | }, |
| | | // 文件管理--结束 |
| | | |
| | | // 任务切换--开始 |
| | | getList0() { |
| | | this.tableLoading0 = true; |
| | | let param = { userId: this.userId, sonLaboratory: this.sonLaboratory, ...this.page0 }; |
| | | delete param.total; |
| | | inspectionOrderDetailsTaskSwitching({ ...param }) |
| | | .then((res) => { |
| | | this.tableLoading0 = false; |
| | | if (res.code === 200) { |
| | | this.tableData0 = res.data.records; |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | this.tableLoading0 = false; |
| | | }); |
| | | }, |
| | | // 任务切换--结束 |
| | | |
| | | closeAddVerifyDia() { |
| | | this.addCheck = false; |
| | |
| | | }, |
| | | // 刷新页面 |
| | | refreshView() { |
| | | this.$emit("refreshView"); |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: this.id, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.goback(); |
| | | return this.$message.error("该任务没有样品信息"); |
| | | } |
| | | // 赋值当前样品列表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // 温度、湿度赋值 |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // 原材料的检验任务查询批数 |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // 获取当前样品的检验项 |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // 初始化传递到后端的参数 |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a) => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | if (this.currentSample.index == undefined) |
| | | this.currentSample["index"] = 1; |
| | | let bushing = this.currentSample.bushing; |
| | | this.getTableLists(); //处理模板列表信息 |
| | | |
| | | this.currentKey = 1; |
| | | this.getCableTag(this.currentSample.id); // 查询是否有要多次检验的电缆配置 |
| | | this.getRepetitionTag(this.currentSample.id); // 查询是否有要重复检验项 |
| | | }); |
| | | }, |
| | | closeUnPassCheckDialog() { |
| | | this.unPassCheck = false; |
| | |
| | | id: this.currentSample.id, |
| | | type: this.type, |
| | | laboratory: this.sonLaboratory, |
| | | cableTag: "", |
| | | cableTag: this.temCableTag, |
| | | rawMaterialTag: this.rawMaterialTag, |
| | | repetitionTag: this.repetitionTag, |
| | | }; |
| | | this.$nextTick(() => { |
| | | this.$refs.addUnPassDialog.getInsOrder(info); |
| | |
| | | }, |
| | | // 打开进货验证弹框 |
| | | openPurchase() { |
| | | const operationType = this.state === 1 ? "add" : "view"; |
| | | const operationType = this.state == 1 ? "add" : "view"; |
| | | this.purchaseDialog = true; |
| | | const item = { |
| | | id: this.currentSample.id, |
| | |
| | | this.dataAcquisitionInfoNew = this.HaveJson(res.data); |
| | | // 对数采回来的值进行处理 |
| | | this.handleDataAcquisition(res.data); |
| | | }).catch(err => { |
| | | this.dataAcquisitionLoading = false; |
| | | }); |
| | | }, |
| | | objectOrder(obj) { |
| | |
| | | this.dataAcquisitionInfo = {}; |
| | | this.getData = []; |
| | | for (let i in this.objectOrder(data)) { |
| | | console.log("i---", i); |
| | | let obj = {}; |
| | | if (i.includes("@")) { |
| | | obj = { |
| | |
| | | n.v.ps.value.includes("检验值") |
| | | ) { |
| | | num++; |
| | | if (str0 == str) { |
| | | maxNum = num; |
| | | } |
| | | } |
| | | }); |
| | | if (str0 == str) { |
| | | maxNum = num; |
| | | } |
| | | } |
| | | // 绑定设备 |
| | | if ( |
| | |
| | | this.stopWorker(); // 确保之前的 Worker 已停止 |
| | | } |
| | | // 创建 Worker 实例 |
| | | this.worker = new Worker("/static/js/worker.js"); |
| | | this.worker = new InspectionWorker(); |
| | | if (this.worker0) { |
| | | this.stopWorker(); // 确保之前的 Worker 已停止 |
| | | } |
| | | // 创建 Worker 实例 |
| | | this.worker0 = new Worker("/static/js/worker0.js"); |
| | | this.worker0 = new DataWorker(); |
| | | }, |
| | | // 停止多线程 |
| | | stopWorker() { |
| | |
| | | this.worker0 = null; |
| | | } |
| | | }, |
| | | // 热循环---结束 |
| | | // 保存湿度、温度数据 |
| | | subOtherForm(m, type) { |
| | | console.log("m---", m); |
| | | write({ |
| | | [type]: type === "remark" ? m : Number(m), |
| | | id: this.insOrder.id, |
| | | }).then((res) => { |
| | | if (res.code == 201) return; |
| | | this.$message.success("保存成功"); |
| | | }); |
| | | }, |
| | |
| | | a.download = "table.png"; |
| | | a.click(); |
| | | }); |
| | | }, |
| | | // 权限获取 |
| | | getPower() { |
| | | 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; |
| | | }, |
| | | uploadSample() { |
| | | doInsOrder({ |
| | |
| | | async handleChangeSample(row, column, event) { |
| | | // 初始化数据 |
| | | this.param = {}; |
| | | // 清空光纤配置相关数据 |
| | | this.fiberOpticTape = []; |
| | | this.currentFiberOpticTape = null; |
| | | this.fiberOptic = []; |
| | | this.currentFiberOptic = null; |
| | | this.bushing = []; |
| | | this.currentBushing = null; |
| | | this.sampleVisible = false; |
| | | // 赋值样品 |
| | | this.currentSample = this.HaveJson(row); |
| | |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a, j) => { |
| | | if (this.handleCasing(a.inspectionItem)) { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | } |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | // 获取套管,光纤带,光纤数据 |
| | | this.getReportModel(row.id); |
| | | let bushing = this.currentSample.bushing; |
| | | if (bushing && bushing.length > 0) { |
| | | this.bushing = bushing; |
| | | } |
| | | // 处理页面列表数据 |
| | | this.getTableLists(); |
| | | this.currentKey = row.index; |
| | |
| | | currentTable: this.currentTable, |
| | | }) |
| | | ); |
| | | }, |
| | | // 松套管的判断\如果changeType不等于3那么页面不展示松套管检验项 |
| | | handleCasing(inspectionItem) { |
| | | if (this.changeType != 3) { |
| | | if (inspectionItem.includes("松套管")) { |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | } else { |
| | | return true; |
| | | } |
| | | }, |
| | | // 获取套管,光纤带,光纤数据 |
| | | getReportModel(id) { |
| | | if (this.PROJECT != "检测中心") { |
| | | return; |
| | | } |
| | | this.getReportModelLoading = true; |
| | | getReportModel({ |
| | | sampleId: id |
| | | }).then((res) => { |
| | | this.getReportModelLoading = false; |
| | | this.fibers = res.data["光纤带"]; |
| | | this.fiber = res.data["光纤"]; |
| | | this.casing = res.data["套管"]; |
| | | }); |
| | | }, |
| | | async handleChangeCableTag(m, type, num, m2) { |
| | | let cableTag = ""; |
| | |
| | | }; |
| | | }); |
| | | this.getTableLists0(list); |
| | | this.getReportModel(this.currentSample.id); |
| | | this.worker.postMessage( |
| | | JSON.stringify({ |
| | | type: "saveData", |
| | |
| | | }, |
| | | // 改变任务 |
| | | handleChangeTask(row) { |
| | | if (row.length > 0) this.id = row[0].id; |
| | | if (row) this.id = row.id; |
| | | this.taskVisible = false; |
| | | }, |
| | | // 字典获取信息 |
| | | getTypeDicts() { |
| | | this.getDicts("urgency_level").then((response) => { |
| | | this.urgentList = this.dictToValue(response.data); |
| | | this.componentData.tagField.type.select = this.urgentList; |
| | | }); |
| | | }, |
| | | // 字典获取信息 |
| | | getInsStateDicts() { |
| | | this.getDicts("inspection_task_state").then((response) => { |
| | | this.typeList = this.dictToValue(response.data); |
| | | this.componentData.tagField.insState.select = this.typeList; |
| | | }); |
| | | }, |
| | | // 字典获取信息 |
| | |
| | | this.comparisonList = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | // 获取检验值为下拉时的下拉列表 |
| | | // selectEnumByCategoryOfSelect(val) { |
| | | // this.enumList = []; |
| | | // if (val === undefined || val === null) { |
| | | // return; |
| | | // } |
| | | // this.$axios |
| | | // .post(this.$api.enums.selectEnumByCategory, { |
| | | // category: val, |
| | | // }) |
| | | // .then((res) => { |
| | | // this.enumList = res.data; |
| | | // }); |
| | | // }, |
| | | tableRowClassName({ row, rowIndex }) { |
| | | row.index = rowIndex + 1; |
| | | }, |
| | |
| | | } |
| | | }); |
| | | // 以下是样式处理逻辑 |
| | | set = Array.sort(set); |
| | | set = [...set] |
| | | // set = set.sort(); |
| | | set.forEach((b) => { |
| | | let arr = []; |
| | | a.template.forEach((c) => { |
| | |
| | | this.saveInsContext(currentInsItemId); |
| | | } |
| | | }, 200); |
| | | }, |
| | | // 是否需要数采 |
| | | async determineWhetherToCollectData() { |
| | | let res = await determineWhetherToCollectData({ managementNumber: '' }) |
| | | this.isGet = res.data; |
| | | }, |
| | | // 根据后端传参更新页面数据 param => this.tableList[0].insProductResult |
| | | getCurrentInsProduct(pId) { |
| | |
| | | // } |
| | | // } |
| | | // }, |
| | | getUserInfo() { |
| | | this.componentData.entity.userId = this.userId; |
| | | }, |
| | | openAddCheck() { |
| | | this.addCheck = true; |
| | | }, |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.addCheck = false; |
| | | } |
| | | this.reviewLoading = false; |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.reviewLoading = false; |
| | | }) |
| | |
| | | } else { |
| | | this.$message.error("未输入不通过原因"); |
| | | } |
| | | }, |
| | | // 查看工时 |
| | | viewManHour() { |
| | | this.$refs.viewManHourDia.showDialog(this.id, 99); |
| | | }, |
| | | openAddVerifyDia() { |
| | | this.addVerifyDia = true; |
| | | }, |
| | | submit() { |
| | | if (this.verifyUser === null || this.verifyUser === "") { |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.submitLoading = false; |
| | | this.addVerifyDia = false; |
| | | } |
| | |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功"); |
| | | this.addVerifyDia = false; |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.submitLoading = false; |
| | | }) |
| | |
| | | } else { |
| | | param = this.param; |
| | | } |
| | | let isNoTestValue = '' |
| | | for (let key in param) { |
| | | if (param[key]) { |
| | | if (param[key].insValue?.length === 0) { |
| | | isNoTestValue = 1 |
| | | } else { |
| | | isNoTestValue = '' |
| | | } |
| | | } |
| | | } |
| | | saveInsContext({ |
| | | param: JSON.stringify(param), |
| | | currentTable: this.currentTable, |
| | | sampleId: this.currentSample.id, |
| | | orderId: this.orderId, |
| | | sonLaboratory: this.sonLaboratory, |
| | | isNoTestValue: isNoTestValue |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("保存失败"); |
| | | return; |
| | | } |
| | | this.$message.success("已保存"); |
| | | }); |
| | | // 向 Worker 发送消息,开始处理逻辑 |
| | |
| | | } |
| | | }, |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 0 }).then((res) => { |
| | | selectUserCondition({ type: 1 }).then((res) => { |
| | | let data = []; |
| | | res.data.forEach((a) => { |
| | | data.push({ |
| | |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a, j) => { |
| | | if (this.handleCasing(a.inspectionItem)) { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | } |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | // 页面数据处理 |
| | | this.getTableLists(); |
| | |
| | | this.upLoading = false; |
| | | if (response.code == 200) { |
| | | this.$message.success("上传成功"); |
| | | this.$refs.fileList.selectList(); |
| | | this.getList(); |
| | | } |
| | | }, |
| | | beforeUpload(file) { |
| | |
| | | }, |
| | | handleDown(row) { |
| | | downFile({ id: row.id }).then((res) => { |
| | | if (res.code === 200) { |
| | | let url = ""; |
| | | if (res.data.type == 1) { |
| | | url = this.javaApi + "/img/" + res.data.fileUrl; |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + "/word/" + res.data.fileUrl; |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | } |
| | | this.$download.saveAs(res.data.fileUrl, row.fileName) |
| | | }) |
| | | .catch((error) => { }); |
| | | }, |
| | |
| | | return v; |
| | | } |
| | | }, |
| | | goback() { |
| | | this.$router.go(-1) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | padding: 0 16px; |
| | | } |
| | | |
| | | .search { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .search .form-inline { |
| | |
| | | } |
| | | |
| | | .center { |
| | | width: calc(100% - 40px); |
| | | width: 100%; |
| | | /* max-height: 580px; */ |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | |
| | | .tables { |
| | | table-layout: fixed; |
| | | margin: 5px 5px 16px; |
| | | border-collapse: collapse; |
| | | } |
| | | |
| | | .tables td { |
| | |
| | | } |
| | | |
| | | .content-h-2 { |
| | | justify-content: end; |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | .content-v-0 { |
| | |
| | | align-items: center; |
| | | } |
| | | </style> |
| | | <style> |
| | | .inspection .el-form-item__label { |
| | | <style scoped> |
| | | /* .inspection .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | } */ |
| | | |
| | | .inspection .el-drawer__header::before { |
| | | content: ""; |