<template>
|
<div class="bg-1">
|
<div style="margin: 5px 15px">
|
<el-row class="title">
|
<el-col :span="12" style="text-align: left">检验下单</el-col>
|
<el-col :span="12" style="text-align: right">
|
<el-button
|
size="medium"
|
type="primary"
|
@click="dialogVisible1 = true"
|
:loading="exportCheckedLoading"
|
>导出检验结果</el-button
|
>
|
<el-button size="medium" type="primary" @click="print"
|
>标签打印</el-button
|
>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="playOrder(1)"
|
v-hasPermi="['business:order:add']"
|
>下单</el-button
|
>
|
</el-col>
|
</el-row>
|
</div>
|
<basic-container>
|
<div class="search" :style="`height: ${more ? 100 : 50}px;`">
|
<el-row :gutter="10" style="width: 100%">
|
<el-col :span="20" style="display: flex; flex-wrap: wrap">
|
<div class="search_thing" style="width: 20%">
|
<div class="search_label">委托编号:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.entrustCode"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%">
|
<div class="search_label" style="width: 120px">
|
外部委托编号:
|
</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.outEntrustCode"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%">
|
<div class="search_label">样品名称:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.sampleName"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%">
|
<div class="search_label">样品型号:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.sampleModel"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%">
|
<div class="search_label">样品编号:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.sampleCode"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 40%" v-if="more">
|
<div class="search_label">下单时间:</div>
|
<div class="search_input">
|
<el-date-picker
|
style="width: 100%"
|
v-model="queryParams.startAndEndTime"
|
type="daterange"
|
size="small"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
value-format="yyyy-MM-dd"
|
clearable
|
placeholder="选择日期"
|
>
|
</el-date-picker>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%" v-if="more">
|
<div class="search_label">下单人:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.name"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%" v-if="more">
|
<div class="search_label">工程名称:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.engineering"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
<div class="search_thing" style="width: 20%" v-if="more">
|
<div class="search_label">生产单位:</div>
|
<div class="search_input">
|
<el-input
|
size="small"
|
placeholder="请输入"
|
clearable
|
v-model="queryParams.production"
|
@keyup.enter.native="refreshTable()"
|
></el-input>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="4">
|
<div class="search_thing">
|
<el-button
|
type="text"
|
:icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
|
style="color: #3a7bfa"
|
@click="more = !more"
|
>{{ !more ? "更多" : "收起" }}</el-button
|
>
|
<el-button size="small" @click="refresh()">重 置</el-button>
|
<el-button size="small" type="primary" @click="refreshTable()"
|
>查 询</el-button
|
>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</basic-container>
|
<basic-container>
|
<div v-show="active == 0">
|
<div class="table">
|
<ul class="tab">
|
<li
|
v-for="(m, i) in tabList"
|
:key="i + 'afgh'"
|
:class="{ active: i == tabIndex }"
|
@click="handleTab(m, i)"
|
>
|
{{ m.label }}
|
</li>
|
</ul>
|
<lims-table
|
highlightCurrentRow
|
isSelection
|
:tableData="tableData"
|
:height="tableHeight + ''"
|
@pagination="pagination"
|
:handleSelectionChange="selectionChange"
|
:column="column"
|
:page="page"
|
:tableLoading="tableLoading"
|
></lims-table>
|
</div>
|
<!-- 审核 -->
|
<el-dialog
|
title="下单审核"
|
:visible.sync="verifyDialogVisible"
|
width="30%"
|
:before-close="handleClose"
|
>
|
<p style="font-size: 16px; color: #333333" v-if="!isPass">
|
委托编号<span style="color: #34bd66">ZTMS2023071001</span
|
>的信息是否通过
|
</p>
|
<el-form
|
:label-position="labelPosition"
|
:model="formData"
|
label-width="150px"
|
ref="ruleForm"
|
v-else
|
>
|
<el-form-item label="请输入样品库位号:">
|
<el-input
|
v-model="formData.specificationModel"
|
size="small"
|
style="width: 60%"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-row v-if="!isPass">
|
<el-button @click="handleClose">退 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad"
|
>通 过</el-button
|
>
|
</el-row>
|
<el-row v-else>
|
<el-button @click="handleClose">返 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad"
|
>确 定</el-button
|
>
|
</el-row>
|
</span>
|
</el-dialog>
|
<!-- 撤销 -->
|
<el-dialog
|
title="下单撤销"
|
:visible.sync="quashDialogVisible"
|
width="30%"
|
:before-close="handleClose"
|
>
|
<p style="font-size: 16px; color: #333333" v-if="!isQuash">
|
委托编号<span style="color: #34bd66">{{
|
this.insOrderRow.entrustCode
|
}}</span
|
>的信息是否撤销
|
</p>
|
<el-form
|
:label-position="labelPosition"
|
:model="formData"
|
label-width="150px"
|
ref="ruleForm"
|
v-else
|
>
|
<el-form-item label="请输入撤销原因:">
|
<el-input
|
v-model="formData.specificationModel"
|
size="small"
|
style="width: 60%"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-row v-if="!isQuash">
|
<el-button @click="handleClose">取 消</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad"
|
>确 定</el-button
|
>
|
</el-row>
|
<el-row v-else>
|
<el-button @click="handleClose">返 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad"
|
>确 定</el-button
|
>
|
</el-row>
|
</span>
|
</el-dialog>
|
<!-- 下发 -->
|
<el-dialog
|
title="检验分配"
|
:visible.sync="issuedDialogVisible"
|
width="400px"
|
:before-close="handleClose"
|
>
|
<div class="body" style="max-height: 60vh">
|
<el-row>
|
<el-col class="search_thing" style="width: 95%">
|
<div class="search_label">
|
<span class="required-span">* </span>约定时间:
|
</div>
|
<div class="search_input">
|
<el-date-picker
|
size="small"
|
v-model="distributeData.appointed"
|
type="date"
|
placeholder="选择日期"
|
value-format="yyyy-MM-dd"
|
style="width: 100%"
|
format="yyyy-MM-dd"
|
>
|
</el-date-picker>
|
</div>
|
</el-col>
|
<el-col class="search_thing" style="width: 95%">
|
<div class="search_label">
|
<span class="required-span" v-show="distributeData.type == 2"
|
>* </span
|
>指派人员:
|
</div>
|
<div class="search_input">
|
<el-select
|
v-model="distributeData.userId"
|
placeholder="请选择"
|
size="small"
|
style="width: 100%"
|
clearable
|
filterable
|
@change="changeUser"
|
>
|
<el-option-group
|
v-for="(item, index) in Object.keys(personList)"
|
:key="index"
|
:label="item"
|
>
|
<el-option
|
v-for="op in personList[item]"
|
:key="op.id"
|
:label="op.name"
|
:value="op.id"
|
>
|
</el-option>
|
</el-option-group>
|
</el-select>
|
</div>
|
</el-col>
|
<el-col
|
class="search_thing"
|
style="width: 95%"
|
v-if="distributeData.userId"
|
>
|
<div class="search_label">
|
<span class="required-span">* </span>试验室:
|
</div>
|
<div class="search_input">
|
<el-select
|
v-model="distributeData.sonLaboratory"
|
placeholder="请选择11"
|
size="small"
|
style="width: 100%"
|
clearable
|
filterable
|
>
|
<el-option
|
v-for="(item, i) in sonLaboratoryList"
|
:key="i + 'oooo'"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="handleClose2">取 消</el-button>
|
<el-button type="primary" @click="submitForm2" :loading="upLoad"
|
>确 定</el-button
|
>
|
</el-row>
|
</span>
|
</el-dialog>
|
<el-dialog
|
title="数据查看"
|
:visible.sync="dataDialogVisible"
|
width="100%"
|
fullscreen
|
>
|
<lims-table
|
highlightCurrentRow
|
:heigt="'80vh'"
|
:tableData="dataLooktableData"
|
:column="dataLookcolumn"
|
:tableLoading="dataLookTableLoading"
|
></lims-table>
|
</el-dialog>
|
<el-dialog
|
top="5vh"
|
:title="deleteTilte"
|
:visible.sync="deleteDialogVisible"
|
:before-close="handleCloseDelete"
|
width="80%"
|
>
|
<div class="table-container" v-if="deleteDialogVisible">
|
<!-- <ValueTable
|
ref="ValueTableDataDelete"
|
:url="
|
$api.insOrder.selectNoProducts +
|
'?orderId=' +
|
orderId +
|
'&ids=' +
|
this.revocationInsProductIds
|
"
|
:componentData="componentDataDelete"
|
:isColumnWidth="true"
|
/> -->
|
<el-table
|
height="500px"
|
ref="revokeTable"
|
@select="handleSelectionChange"
|
@select-all="handleSelectionAll"
|
:data="treeTableData"
|
style="width: 100%"
|
row-key="id"
|
border
|
lazy
|
:load="load"
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
>
|
<el-table-column
|
v-if="deleteTilte == '撤销'"
|
type="selection"
|
width="55"
|
></el-table-column>
|
<el-table-column
|
prop="sampleCode"
|
label="样品编号"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column
|
prop="inspectionItem"
|
label="检验项"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column
|
prop="inspectionItemSubclass"
|
label="检验子项"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column
|
prop="sampleType"
|
label="样品分类"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column prop="sample" label="样品" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="model" label="型号" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="sonLaboratory"
|
label="试验室"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column prop="tell" label="要求值" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="handleNo">{{
|
deleteTilte == "撤销" ? "取 消" : "不通过"
|
}}</el-button>
|
<el-button
|
type="primary"
|
@click="submitDelete"
|
:loading="printLoading"
|
>{{ deleteTilte == "撤销" ? "确 定" : "通 过" }}</el-button
|
>
|
</el-row>
|
</span>
|
</el-dialog>
|
<!-- 数据查看详情 -->
|
<el-dialog
|
title="查看详情"
|
:visible.sync="dialogVisible"
|
width="70%"
|
:before-close="handleClose3"
|
>
|
<el-table
|
v-if="type == '单根垂直燃烧' || type == '松套管'"
|
:data="viewDetailsList"
|
height="400px"
|
border
|
style="width: 100%"
|
>
|
<el-table-column
|
type="index"
|
label="序号"
|
width="80px"
|
></el-table-column>
|
<el-table-column
|
prop="entrustCode"
|
label="委托单号"
|
></el-table-column>
|
<el-table-column
|
prop="sampleCode"
|
label="样品编号"
|
></el-table-column>
|
<el-table-column prop="color" label="套管"></el-table-column>
|
<!-- <el-table-column prop="inspectionItem" label="检验项"></el-table-column> -->
|
<el-table-column prop="insValue" label="检验结果"></el-table-column>
|
</el-table>
|
|
<el-table
|
v-if="type == '抗拉强度'"
|
:data="viewDetailsList"
|
height="400px"
|
border
|
style="width: 100%"
|
>
|
<el-table-column
|
type="index"
|
label="序号"
|
width="80px"
|
></el-table-column>
|
<el-table-column
|
prop="inspectionItem"
|
label="检验项"
|
></el-table-column>
|
<el-table-column
|
prop="inspectionItemSubclass"
|
label="检验子项"
|
></el-table-column>
|
<el-table-column prop="width" label="宽度"></el-table-column>
|
<el-table-column prop="thickness" label="厚度"></el-table-column>
|
<el-table-column prop="testValue" label="检验值"></el-table-column>
|
</el-table>
|
|
<el-table
|
v-if="type == '断裂伸长率'"
|
:data="viewDetailsList"
|
height="400px"
|
border
|
style="width: 100%"
|
>
|
<el-table-column
|
type="index"
|
label="序号"
|
width="80px"
|
></el-table-column>
|
<el-table-column
|
prop="inspectionItem"
|
label="检验项"
|
></el-table-column>
|
<el-table-column
|
prop="inspectionItemSubclass"
|
label="检验子项"
|
></el-table-column>
|
<el-table-column
|
v-for="(v, i) in tableHeader"
|
:key="i"
|
:prop="`testValue${i}`"
|
:label="`检验值${i + 1}`"
|
></el-table-column>
|
</el-table>
|
</el-dialog>
|
<!-- 导出已检数据 -->
|
<el-dialog
|
title="选择日期"
|
:visible.sync="dialogVisible1"
|
width="30%"
|
:before-close="handleClose4"
|
>
|
<span>下单日期: </span>
|
<el-date-picker
|
v-model="exportCheckedDate"
|
type="daterange"
|
size="small"
|
value-format="yyyy-MM-dd"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
>
|
</el-date-picker>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="handleClose4">取 消</el-button>
|
<el-button type="primary" @click="exportChecked()">确 定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
<!-- <div style="width: 100%; height: 100%" v-if="active > 0">
|
<Add
|
:active="active"
|
:currentId="currentId"
|
v-if="active < 4"
|
:examine="examine"
|
/>
|
</div> -->
|
<el-dialog
|
title="标签打印"
|
:visible.sync="printDialogVisible"
|
width="40%"
|
top="5vh"
|
>
|
<div
|
style="width: 100%; height: 400px; overflow-y: auto"
|
v-loading="loadPint"
|
>
|
<div class="dia_body">
|
<el-checkbox
|
style="margin: 10px 5px"
|
:indeterminate="isIndeterminate"
|
v-model="checkAll"
|
@change="handleCheckAllChange"
|
>全选</el-checkbox
|
>
|
<el-checkbox-group
|
@change="changePrintCode()"
|
v-model="checkIndexList"
|
>
|
<el-card
|
class="box-card"
|
v-for="(item, i) in qrData"
|
:key="i + 'wwwww'"
|
style="margin-bottom: 15px; font-size: 16px !important"
|
>
|
<el-checkbox
|
:label="i"
|
:key="i"
|
style="position: relative; top: -10px; left: 5px"
|
><br
|
/></el-checkbox>
|
<div>
|
<el-row style="font-size: 14px; padding-left: 20px">
|
<el-col style="font-weight: bold">{{ item.pName }}</el-col>
|
</el-row>
|
<div style="display: flex">
|
<div>
|
<el-col :span="8" :offset="4">
|
<vueQr
|
:text="
|
'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
|
item.id +
|
'&type=sample'
|
"
|
:size="140"
|
:margin="2"
|
></vueQr>
|
</el-col>
|
</div>
|
<div style="margin-left: 50px; width: 100%">
|
<el-row>
|
<el-col
|
style="
|
font-weight: bold;
|
text-align: left;
|
font-size: 14px;
|
"
|
><span>样品编号: </span
|
>{{ item.sampleCode }}</el-col
|
>
|
</el-row>
|
<el-row style="margin-top: 1px; font-size: 14px">
|
<el-col style="font-weight: bold; text-align: left"
|
><span>委托单号: </span>{{ item.code }}</el-col
|
>
|
</el-row>
|
<el-row style="margin-top: 1px; font-size: 14px">
|
<el-col style="font-weight: bold; text-align: left"
|
><span>规格型号: </span>{{ item.model }}</el-col
|
>
|
</el-row>
|
<el-row style="margin-top: 1px; font-size: 14px">
|
<el-col style="font-weight: bold; text-align: left"
|
><span>样品名称: </span
|
>{{ item.sample }}</el-col
|
>
|
</el-row>
|
<el-row
|
style="margin-top: 1px; font-size: 14px"
|
class="ellipsis-multiline"
|
>
|
<el-col style="font-weight: bold; text-align: left"
|
><span>检测项目: </span>{{ item.item }}</el-col
|
>
|
</el-row>
|
<el-row style="margin-top: 2px; font-size: 14px">
|
<el-col
|
style="
|
font-weight: bold;
|
display: flex;
|
align-items: center;
|
"
|
><span>样品状态: </span
|
><el-radio-group
|
:value="item.insState"
|
style="margin-top: 7px; margin-left: 4px"
|
disabled
|
>
|
<el-radio
|
:label="0"
|
style="font-weight: bold; margin-right: 7px"
|
>待检</el-radio
|
>
|
<el-radio
|
:label="1"
|
style="font-weight: bold; margin-right: 7px"
|
>在检</el-radio
|
>
|
<el-radio
|
:label="2"
|
style="font-weight: bold; margin-right: 7px"
|
>已检</el-radio
|
> </el-radio-group
|
><el-radio
|
:label="1"
|
style="font-weight: bold; margin-top: 7px"
|
v-model="item.isLeave"
|
disabled
|
>留样</el-radio
|
></el-col
|
>
|
</el-row>
|
</div>
|
</div>
|
</div>
|
</el-card>
|
</el-checkbox-group>
|
</div>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="printDialogVisible = false">取 消</el-button>
|
<el-button
|
type="primary"
|
@click="submitPrint"
|
:loading="printLoading"
|
>打 印</el-button
|
>
|
</el-row>
|
</span>
|
</el-dialog>
|
<div
|
class="el-dialog__body"
|
style="
|
overflow-y: auto;
|
margin-top: 0;
|
position: fixed;
|
top: 999px;
|
z-index: 99999;
|
display: none;
|
"
|
>
|
<div id="printMOrder" class="printMOrder" ref="printMOrder">
|
<el-card
|
class="box-card"
|
v-for="(item, i) in checkDataList"
|
:key="i + 'uuuuu'"
|
style="
|
font-size: 0.2cm !important;
|
page-break-after: always;
|
color: #000;
|
box-shadow: none;
|
margin: 0 !important;
|
padding: 0 !important;
|
"
|
>
|
<div style="display: flex">
|
<div>
|
<el-col :span="10" :offset="2">
|
<vueQr
|
:text="
|
'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
|
item.id +
|
'&type=sample'
|
"
|
:size="60"
|
:margin="2"
|
></vueQr>
|
</el-col>
|
</div>
|
<div style="margin-left: 0.32cm; line-height: 0.22cm">
|
<el-row>
|
<el-col
|
style="font-size: 0.2cm; width: 4cm"
|
class="single-line-ellipsis"
|
><span>样品编号: </span>{{ item.sampleCode }}</el-col
|
>
|
</el-row>
|
<el-row style="font-size: 0.2cm">
|
<el-col><span>委托单号: </span>{{ item.code }}</el-col>
|
</el-row>
|
<el-row style="font-size: 0.2cm">
|
<el-col><span>规格型号: </span>{{ item.model }}</el-col>
|
</el-row>
|
<el-row style="font-size: 0.2cm">
|
<el-col
|
><span>样品名称: </span>{{ item.sample }}</el-col
|
>
|
</el-row>
|
<el-row style="font-size: 0.2cm; width: 4cm">
|
<el-col class="ellipsis-multiline"
|
><span>检测项目: </span>{{ item.item }}</el-col
|
>
|
</el-row>
|
<el-row style="margin-top: 0.01cm; font-size: 0.2cm">
|
<el-col style="display: flex; align-items: center"
|
><span>样品状态: </span>
|
<span style="white-space: nowrap"
|
><span v-if="item.insState == 0">√</span
|
><span class="scor" v-if="item.insState != 0"></span>待检
|
<span v-if="item.insState == 1">√</span
|
><span class="scor" v-if="item.insState != 1"></span>在检
|
<span v-if="item.insState == 2">√</span
|
><span class="scor" v-if="item.insState != 2"></span>已检
|
<span v-if="item.isLeave == 1">√</span
|
><span class="scor" v-if="item.isLeave != 1"></span
|
>留样</span
|
>
|
</el-col>
|
</el-row>
|
</div>
|
</div>
|
</el-card>
|
</div>
|
</div>
|
</basic-container>
|
</div>
|
</template>
|
|
<script>
|
import limsTable from "@/components/Table/lims-table.vue";
|
import {
|
selectInsOrderParameter,
|
labelPrinting,
|
exportChecked,
|
selectSampleAndProductByOrderId,
|
hasSendUrgentOrder,
|
delCustomById,
|
upCustom,
|
} from "@/api/business/inspectionOrder";
|
import { getDicts } from "@/api/system/dict/data";
|
import vueQr from "vue-qr";
|
import getLodop from "@/utils/lodop";
|
import Add from "./add.vue";
|
import { mapGetters } from "vuex";
|
import LimsTable from "@/components/Table/lims-table.vue";
|
export default {
|
components: {
|
limsTable,
|
Add,
|
vueQr,
|
LimsTable,
|
},
|
computed: {
|
...mapGetters(["permissions"]),
|
},
|
data() {
|
return {
|
queryParams: {
|
entrustCode: "",
|
outEntrustCode: "",
|
sampleName: "",
|
sampleModel: "",
|
sampleCode: "",
|
startAndEndTime: [],
|
name: "",
|
engineering: "",
|
production: "",
|
},
|
tableData: [],
|
page: {
|
total: 0,
|
size: 20,
|
current: 1,
|
},
|
tableLoading: false,
|
column: [
|
{
|
label: "委托编号",
|
prop: "entrustCode",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "外部委托编号",
|
prop: "outEntrustCode",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "委托单位",
|
prop: "company",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "样品名称",
|
prop: "sampleName",
|
minWidth: "160px",
|
width: "160px",
|
dataType: "link",
|
linkEvent: {
|
method: "showDetails",
|
vueComponent: this,
|
},
|
},
|
{
|
label: "样品编号",
|
prop: "sampleCode",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "样品型号",
|
prop: "sampleModel",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "样品数量",
|
prop: "sampleNum",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "检验进度%",
|
prop: "insProgress",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "紧急程度",
|
prop: "type",
|
minWidth: "100px",
|
width: "100px",
|
dataType: "tag",
|
formatData: (params) => {
|
let index = this.urgencyDictList.findIndex(
|
(item) => item.dictValue == params
|
);
|
if (index > -1) {
|
return this.urgencyDictList[index].dictLabel;
|
} else {
|
return null;
|
}
|
},
|
formatType: (params) => {
|
let index = this.urgencyDictList.findIndex(
|
(item) => item.dictValue == params
|
);
|
if (index > -1) {
|
return this.urgencyDictList[index].listClass;
|
} else {
|
return null;
|
}
|
},
|
},
|
{
|
label: "备注",
|
prop: "remark",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "制单人",
|
prop: "custom",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "约定时间",
|
prop: "appointed",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "下单时间",
|
prop: "createTime",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "下发时间",
|
prop: "sendTime",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "退回理由",
|
prop: "tell",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "委托人",
|
prop: "prepareUser",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "撤销日期",
|
prop: "revocationTime",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
dataType: "action",
|
fixed: "right",
|
label: "操作",
|
operation: [
|
{
|
name: "数据查看",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row) => {
|
return row.state != 1 && row.state != 4;
|
},
|
clickFun: (row) => {
|
this.handleDataLook(row);
|
},
|
},
|
{
|
name: "报告下载",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row, index) => {
|
return row.state != 4 || row.isRatify != 1;
|
},
|
},
|
{
|
name: "审核",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row, index) => {
|
return row.state != 0;
|
},
|
},
|
{
|
name: "撤销",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row, index) => {
|
return row.state != 1 && row.state != 0;
|
},
|
},
|
{
|
name: "撤销审核",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row, index) => {
|
return (
|
(row.state != 1 && row.state != 0) ||
|
this.tabIndex != 1 ||
|
row.isRevocation != 1
|
);
|
},
|
},
|
{
|
name: "分配",
|
type: "text",
|
clickFun: (row) => {},
|
disabled: (row, index) => {
|
return (
|
row.state != 1 ||
|
(row.entrustCode != null &&
|
Number(row.assign) > 0 &&
|
row.inspectId != null)
|
);
|
},
|
},
|
],
|
},
|
],
|
dataLookTableLoading: false,
|
dataLookcolumn: [
|
{
|
label: "委托编号",
|
prop: "entrustCode",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "样品编号",
|
prop: "sampleCode",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "管套色标",
|
prop: "bushColor",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "光纤带编号",
|
prop: "code",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "光纤色标",
|
prop: "color",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "检验项",
|
prop: "inspectionItem",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "检验子项",
|
prop: "inspectionItemSubclass",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "检验结果",
|
prop: "lastValue",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "结果判定",
|
prop: "insResult",
|
minWidth: "100px",
|
width: "100px",
|
dataType: "tag",
|
formatData: (params) => {
|
let index = this.urgencyDictList.findIndex(
|
(item) => item.dictValue == params
|
);
|
if (index > -1) {
|
return this.urgencyDictList[index].dictLabel;
|
} else {
|
return null;
|
}
|
},
|
formatType: (params) => {
|
let index = this.urgencyDictList.findIndex(
|
(item) => item.dictValue == params
|
);
|
if (index > -1) {
|
return this.urgencyDictList[index].listClass;
|
} else {
|
return null;
|
}
|
},
|
},
|
{
|
label: "单位",
|
prop: "unit",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "试验要求",
|
prop: "tell",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "检验人",
|
prop: "checkName",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "检验日期",
|
prop: "checkTime",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
label: "样品名称",
|
prop: "sample",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "样品型号",
|
prop: "model",
|
minWidth: "160px",
|
width: "160px",
|
},
|
{
|
label: "试验室",
|
prop: "sonLaboratory",
|
minWidth: "120px",
|
width: "120px",
|
},
|
{
|
dataType: "action",
|
fixed: "right",
|
label: "操作",
|
operation: [
|
{
|
name: "查看",
|
type: "text",
|
clickFun: (row) => {},
|
showHide: (row) => {
|
console.log(row);
|
console.log(row.inspectionItem);
|
return (
|
row.inspectionItem == "单根垂直燃烧" ||
|
row.inspectionItem.includes("松套管") ||
|
row.inspectionItemSubclass.includes("松套管") ||
|
(row.inspectionItem == "抗拉强度" &&
|
(row.inspectionItemSubclass == "热老化处理前" ||
|
row.inspectionItemSubclass == "热老化处理后")) ||
|
(row.inspectionItem == "断裂伸长率" &&
|
(row.inspectionItemSubclass == "热老化处理前" ||
|
row.inspectionItemSubclass == "热老化处理后"))
|
);
|
},
|
},
|
],
|
},
|
],
|
dataLooktableData: [],
|
|
//old
|
tableHeader: [],
|
type: "",
|
revokeDataAll: [],
|
revokeData: [],
|
treeTableData: [],
|
treeTableData2: [],
|
exportCheckedDate: [],
|
exportCheckedLoading: false,
|
dialogVisible1: false,
|
dialogVisible: false,
|
viewDetailsList: [],
|
deleteTilte: "撤销",
|
examine: null,
|
deleteList: [],
|
loadPint: false,
|
checkAll: false,
|
isIndeterminate: true,
|
printLoading: false,
|
printDialogVisible: false,
|
//是否审核通过 true是 false不是
|
isPass: false,
|
//是否审核撤销 true是 false不是
|
isQuash: false,
|
verifyDialogVisible: false,
|
quashDialogVisible: false,
|
issuedDialogVisible: false,
|
dataDialogVisible: false,
|
formData: {},
|
formData0: {},
|
formData1: {},
|
distributeData: {
|
orderId: "",
|
sampleId: "",
|
appointed: "",
|
userId: null,
|
sonLaboratory: "",
|
},
|
// 人员列表
|
personList: [],
|
currentTableData: [],
|
// componentData: {
|
// entity: {
|
// entrustCode: null,
|
// sample: null,
|
// sampleName: null,
|
// sampleModel: null,
|
// sampleCode: null,
|
// outEntrustCode: null,
|
// state: 0,
|
// name: null,
|
// engineering: null,
|
// production: null,
|
// startAndEndTime: [],
|
// // orderBy: {
|
// // field: '',
|
// // order: ''
|
// // }
|
// },
|
// isIndex: true,
|
// showSelect: true,
|
// select: true,
|
// selectMethod: "selectMethod",
|
// do: [
|
// {
|
// id: "dataLook",
|
// font: "数据查看",
|
// type: "text",
|
// method: "handleDataLook",
|
// disabFun: (row, index) => {
|
// return row.state != 1 && row.state != 4;
|
// },
|
// },
|
// {
|
// id: "download",
|
// font: "报告下载",
|
// type: "text",
|
// method: "download",
|
// disabFun: (row, index) => {
|
// return row.state != 4 || row.isRatify != 1;
|
// },
|
// },
|
// {
|
// id: "verify",
|
// font: "审核",
|
// type: "text",
|
// method: "handleVerify",
|
// disabFun: (row, index) => {
|
// return row.state != 0;
|
// },
|
// },
|
// {
|
// id: "quash",
|
// font: "撤销",
|
// type: "text",
|
// method: "handlEquash",
|
// disabFun: (row, index) => {
|
// return row.state != 1 && row.state != 0;
|
// },
|
// },
|
// {
|
// id: "quashCheck",
|
// font: "撤销审核",
|
// type: "text",
|
// method: "handlEquashCheck",
|
// disabFun: (row, index) => {
|
// return (
|
// (row.state != 1 && row.state != 0) ||
|
// this.tabIndex != 1 ||
|
// row.isRevocation != 1
|
// );
|
// },
|
// },
|
// {
|
// font: "分配",
|
// type: "text",
|
// method: "handleIssued",
|
// disabFun: (row, index) => {
|
// return (
|
// row.state != 1 ||
|
// (row.entrustCode != null &&
|
// Number(row.assign) > 0 &&
|
// row.inspectId != null)
|
// );
|
// },
|
// },
|
// ],
|
// linkEvent: {
|
// sampleName: {
|
// method: "selectAllByOne",
|
// },
|
// },
|
// tagField: {
|
// type: {
|
// select: [],
|
// },
|
// createUser: {
|
// select: [],
|
// },
|
// orderType: {
|
// select: [],
|
// },
|
// processing: {
|
// select: [
|
// {
|
// value: 1,
|
// label: "实验室处理",
|
// },
|
// {
|
// value: 0,
|
// label: "委托单位取回",
|
// },
|
// ],
|
// },
|
// isLeave: {
|
// select: [
|
// {
|
// value: 1,
|
// label: "留样",
|
// },
|
// {
|
// value: 0,
|
// label: "不留样",
|
// },
|
// ],
|
// },
|
// send: {
|
// select: [
|
// {
|
// value: 1,
|
// label: "自取",
|
// },
|
// {
|
// value: 0,
|
// label: "其他",
|
// },
|
// ],
|
// },
|
// },
|
// selectField: {},
|
// requiredAdd: [],
|
// requiredUp: [],
|
// needSort: ["createTime", "sendTime", "type", "appointed"],
|
// },
|
orderId: "",
|
revocationInsProductIds: "",
|
// componentDataDataLook: {
|
// isPage: false,
|
// entity: {
|
// id: 0,
|
// orderBy: {
|
// field: "sampleCode",
|
// order: "asc",
|
// },
|
// },
|
// isIndex: false,
|
// showSelect: false,
|
// select: false,
|
// do: [
|
// {
|
// id: "",
|
// font: "查看",
|
// type: "text",
|
// method: "viewDetails",
|
// showFun: (row, index) => {
|
// return (
|
// row.inspectionItem == "单根垂直燃烧" ||
|
// row.inspectionItem.includes("松套管") ||
|
// row.inspectionItemSubclass.includes("松套管") ||
|
// (row.inspectionItem == "抗拉强度" &&
|
// (row.inspectionItemSubclass == "热老化处理前" ||
|
// row.inspectionItemSubclass == "热老化处理后")) ||
|
// (row.inspectionItem == "断裂伸长率" &&
|
// (row.inspectionItemSubclass == "热老化处理前" ||
|
// row.inspectionItemSubclass == "热老化处理后"))
|
// );
|
// },
|
// },
|
// ],
|
// tagField: {
|
// insState: {
|
// select: [],
|
// },
|
// insResult: {
|
// select: [
|
// {
|
// value: 1,
|
// label: "合格",
|
// type: "success",
|
// },
|
// {
|
// value: 0,
|
// label: "不合格",
|
// type: "danger",
|
// },
|
// {
|
// value: 3,
|
// label: "不判定",
|
// type: "",
|
// },
|
// ],
|
// },
|
// },
|
// selectField: {},
|
// spanConfig: {
|
// rows: [
|
// // {
|
// // name: "entrustCode",
|
// // index: 0,
|
// // },
|
// // {
|
// // name: "sampleCode",
|
// // index: 1,
|
// // },
|
// ],
|
// },
|
// requiredAdd: [],
|
// requiredUp: [],
|
// },
|
// componentDataDelete: {
|
// entity: {
|
// // orderId: '',
|
// // orderBy: {
|
// // field: 'sampleCode',
|
// // order: 'asc'
|
// // }
|
// },
|
// isPage: false,
|
// isIndex: false,
|
// showSelect: true,
|
// select: true,
|
// selectMethod: "selectDelete",
|
// do: [],
|
// tagField: {
|
// insState: {
|
// select: [],
|
// },
|
// insResult: {
|
// select: [
|
// {
|
// value: 1,
|
// label: "合格",
|
// type: "success",
|
// },
|
// {
|
// value: 0,
|
// label: "不合格",
|
// type: "danger",
|
// },
|
// ],
|
// },
|
// },
|
// selectField: {},
|
// spanConfig: {},
|
// requiredAdd: [],
|
// requiredUp: [],
|
// },
|
deleteDialogVisible: false,
|
entityCopy: {},
|
upIndex: 0,
|
upLoad: false,
|
tabList: [
|
{
|
label: "待审核",
|
value: 0,
|
},
|
{
|
label: "待检验",
|
value: 1,
|
},
|
{
|
label: "已检验",
|
value: 4,
|
},
|
{
|
label: "退回",
|
value: 2,
|
},
|
{
|
label: "撤销",
|
value: 3,
|
},
|
],
|
tabIndex: 0,
|
active: 0, //1:下单,2:查看,3:审核,4:光纤配置,默认为0
|
currentId: null,
|
more: false,
|
insOrderRow: {},
|
checkIndexList: [],
|
checkDataList: [
|
{
|
sampleCode: "",
|
},
|
],
|
qrData: [],
|
multipleSelection: [],
|
sonLaboratoryList: [],
|
queryCount: 0,
|
urgencyDictList: [],
|
tableHeight: 0,
|
};
|
},
|
created() {
|
this.getDictList();
|
this.getTableHeight();
|
},
|
mounted() {
|
this.getList();
|
window.addEventListener("resize", this.getTableHeight);
|
},
|
beforeDestroy() {
|
window.removeEventListener("resize", this.getTableHeight);
|
},
|
watch: {
|
more() {
|
this.getTableHeight();
|
},
|
printDialogVisible(newVal) {
|
if (!newVal) {
|
this.checkIndexList = [];
|
}
|
},
|
},
|
methods: {
|
selectionChange(val) {
|
console.log(val);
|
this.multipleSelection = val;
|
},
|
//获取表格高度
|
getTableHeight() {
|
const otherHeight = this.more ? 430 : 380; // 其余高度
|
const tableBottom = 50; // 距离页面下方的高度
|
const tableHeightDetil = window.innerHeight - tableBottom;
|
if (tableHeightDetil <= 300) {
|
this.tableHeight = 200;
|
} else {
|
this.tableHeight = window.innerHeight - tableBottom - otherHeight;
|
}
|
},
|
getDictList() {
|
getDicts("urgency_level")
|
.then((res) => {
|
if (res.code === 200) {
|
this.urgencyDictList = res.data;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
pagination({ page, limit }) {
|
this.page.current = page;
|
this.page.size = limit;
|
this.getList();
|
},
|
//获取数据列表
|
getList() {
|
this.tableLoading = true;
|
selectInsOrderParameter({ ...this.queryParams, ...this.page })
|
.then((res) => {
|
if (res.code === 200) {
|
this.tableData = res.data.records;
|
this.page.total = res.data.total;
|
}
|
this.tableLoading = false;
|
})
|
.catch((error) => {
|
console.error(error);
|
this.tableLoading = false;
|
});
|
},
|
// 导出已检
|
exportChecked() {
|
let data = {
|
startTime: this.exportCheckedDate[0],
|
endTime: this.exportCheckedDate[1],
|
};
|
this.exportCheckedLoading = true;
|
this.dialogVisible1 = false;
|
exportChecked(data)
|
.then((res) => {
|
this.$message.success("导出成功");
|
this.exportCheckedDate = [];
|
this.exportCheckedLoading = false;
|
const blob = new Blob([res], { type: "application/octet-stream" });
|
const url = URL.createObjectURL(blob);
|
const link = document.createElement("a");
|
link.href = url;
|
link.download = "检验结果.xlsx";
|
document.body.appendChild(link);
|
link.click();
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
// 查看详情
|
viewDetails(row) {
|
this.dialogVisible = true;
|
if (
|
row.inspectionItem.includes("松套管") ||
|
row.inspectionItemSubclass.includes("松套管")
|
) {
|
this.type = "松套管";
|
} else {
|
this.type = row.inspectionItem;
|
}
|
let data = {
|
inspectionItem: row.inspectionItem,
|
insProductId: row.insProductId,
|
insSampleId: row.insSampleId,
|
entrustCode: row.entrustCode,
|
sampleCode: row.sampleCode,
|
};
|
this.$axios
|
.post(this.$api.insOrder.viewDetails, data, {
|
headers: {
|
"Content-Type": "application/json",
|
},
|
})
|
.then((res) => {
|
this.viewDetailsList = res.data;
|
if (res.data[0].tableHeader) {
|
this.tableHeader = res.data[0].tableHeader;
|
} else {
|
this.tableHeader = [
|
{
|
testValue0: "",
|
},
|
];
|
}
|
});
|
},
|
getLabelPrinting(selection) {
|
this.loadPint = true;
|
labelPrinting({
|
ids: selection.map((m) => m.id).join(","),
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
let arr = res.data;
|
arr.forEach((a) => {
|
this.loadPint = false;
|
let arr1 = [];
|
a.insProduct.forEach((b) => {
|
arr1.push(b.inspectionItem);
|
});
|
a.item = [...new Set(arr1)].join(",");
|
});
|
this.qrData = arr;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
//开始标签打印
|
beginPrint(arr) {
|
if (arr.length === 0) {
|
return;
|
}
|
this.LODOP = getLodop();
|
this.LODOP.SET_LICENSES(
|
"南通市鑫阳软件开发有限公司",
|
"60F8E5078AE17DEB340C94BC7E83CAFF",
|
"",
|
""
|
);
|
this.LODOP.PRINT_INITA();
|
for (let i = 0; i < arr.length; i++) {
|
const qrData = arr[i];
|
let qrStr =
|
"https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=" +
|
qrData.id +
|
"&type=sample";
|
this.LODOP.NEWPAGE();
|
// this.LODOP.SET_PRINT_PAGESIZE(0, 100, 360, '')
|
this.LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", 1);
|
this.LODOP.ADD_PRINT_BARCODE(2, 5, 80, 80, "QRCode", qrStr);
|
this.LODOP.ADD_PRINT_TEXT(5, 85, 60, 18, "样品编号:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(5, 117, 280, 18, qrData.sampleCode);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(15, 85, 60, 18, "委托单号:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(15, 117, 280, 18, qrData.code);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(25, 85, 60, 18, "规格型号:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(25, 117, 280, 18, qrData.model);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(35, 85, 60, 18, "样品名称:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(35, 117, 280, 18, qrData.sample);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(45, 85, 60, 20, "检测项目:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(
|
45,
|
117,
|
150,
|
20,
|
qrData.item.length > 42
|
? qrData.item.substring(0, 39) + "..."
|
: qrData.item
|
);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
this.LODOP.ADD_PRINT_TEXT(67, 85, 60, 18, "样品状态:");
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
let stateStr = "▢待检 ▢在检 ▢已检";
|
let leaveStr =
|
qrData.isLeave && qrData.isLeave === 1 ? " ▣留样" : " ▢留样";
|
if (qrData.insState == 0) {
|
stateStr = "▣待检 ▢在检 ▢已检";
|
} else if (qrData.insState == 1) {
|
stateStr = "▢待检 ▣在检 ▢已检";
|
} else if (qrData.insState == 2) {
|
stateStr = "▢待检 ▢在检 ▣已检";
|
}
|
this.LODOP.ADD_PRINT_TEXT(67, 117, 280, 18, stateStr + leaveStr);
|
this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
|
}
|
this.LODOP.PRINT();
|
// this.LODOP.PREVIEW()
|
},
|
//选择要打印的二维码
|
changePrintCode() {
|
let indexList = this.checkIndexList;
|
let arr = [];
|
indexList.forEach((i) => {
|
arr.push(this.qrData[i]);
|
});
|
this.checkDataList = arr;
|
},
|
//全选
|
handleCheckAllChange(val) {
|
if (val) {
|
for (var i = 0; i < this.qrData.length; i++) {
|
this.checkIndexList.push(i);
|
}
|
this.checkDataList = this.qrData;
|
} else {
|
this.checkIndexList = [];
|
this.checkDataList = [];
|
}
|
this.isIndeterminate = false;
|
},
|
submitPrint() {
|
if (this.checkDataList.length < 1) {
|
this.$message.warning("请选择要打印的二维码");
|
return;
|
}
|
this.$nextTick(() => {
|
this.beginPrint(this.qrData);
|
});
|
this.printDialogVisible = false;
|
},
|
print() {
|
if (this.multipleSelection.length == 0) {
|
this.$message.warning("请选择一条数据");
|
return;
|
}
|
let selection = this.multipleSelection;
|
this.getLabelPrinting(selection);
|
this.printDialogVisible = true;
|
},
|
// 选择检验分配人员
|
getAuthorizedPerson() {
|
this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
|
// let data = [];
|
// res.data.forEach((a) => {
|
// data.push({
|
// label: a.name,
|
// value: a.id,
|
// });
|
// });
|
this.personList = res.data;
|
});
|
},
|
refreshTable() {
|
this.getList();
|
},
|
getTableData(newData) {
|
if (newData && newData.length == 1) {
|
const insState = newData[0].state;
|
this.tabList.forEach((ele, index) => {
|
if (ele.value == insState && this.queryCount == 0) {
|
this.handleTab(ele, index);
|
this.queryCount = 1;
|
}
|
});
|
}
|
},
|
refresh() {
|
this.queryParams = {
|
entrustCode: "",
|
outEntrustCode: "",
|
sampleName: "",
|
sampleModel: "",
|
sampleCode: "",
|
startAndEndTime: [],
|
name: "",
|
engineering: "",
|
production: "",
|
};
|
this.refreshTable();
|
},
|
handleClose() {
|
this.verifyDialogVisible = false;
|
this.quashDialogVisible = false;
|
this.issuedDialogVisible = false;
|
this.dataDialogVisible = false;
|
this.upLoad = false;
|
},
|
handleClose2() {
|
this.verifyDialogVisible = false;
|
this.quashDialogVisible = false;
|
this.issuedDialogVisible = false;
|
this.dataDialogVisible = false;
|
this.upLoad = false;
|
},
|
handleClose3() {
|
this.dialogVisible = false;
|
},
|
handleClose4() {
|
this.exportCheckedDate = [];
|
this.dialogVisible1 = false;
|
},
|
// 查看详情
|
showDetails(row) {
|
this.$router.push({
|
name: "showDetails",
|
query: {
|
active: 2,
|
currentId: row.id,
|
examine: 1,
|
isReview: true,
|
},
|
});
|
},
|
// 数据查看
|
handleDataLook(row) {
|
selectSampleAndProductByOrderId({ id: row.id })
|
.then((res) => {
|
if (res.code === 200) {
|
this.dataLooktableData = res.data;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
this.dataDialogVisible = true;
|
},
|
// 下载报告
|
download(row) {
|
// let url = row.urlS ? row.urlS : row.url;
|
// if (url) {
|
// url = url.split(".")[0] + ".pdf";
|
// const link = document.createElement("a");
|
// link.href = this.javaApi + url;
|
// link.target = "_blank";
|
// document.body.appendChild(link);
|
// link.click();
|
// }
|
|
// if(row.tempUrlPdf) {
|
// const link = document.createElement('a');
|
// link.href = this.javaApi + row.tempUrlPdf;
|
// link.target = '_blank';
|
// document.body.appendChild(link);
|
// link.click();
|
// }
|
this.$axios
|
.get(
|
this.$api.insReport.downReport + "?id=" + row.reportId + "&type=1",
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
responseType: "blob",
|
}
|
)
|
.then((res) => {
|
let fileName = row.tempUrlPdf;
|
if (fileName.includes("_")) {
|
fileName = fileName.split("_")[1];
|
}
|
const blob = new Blob([res], { type: "application/octet-stream" });
|
const url = URL.createObjectURL(blob);
|
const link = document.createElement("a");
|
link.href = url;
|
link.download = fileName;
|
document.body.appendChild(link);
|
link.click();
|
});
|
},
|
// 审核
|
handleVerify(row) {
|
// this.verifyDialogVisible = true;
|
this.active = 3;
|
this.currentId = row.id;
|
this.examine = 1;
|
},
|
// 全选
|
handleSelectionAll(val) {
|
if (val.length > 0 && val.length <= this.treeTableData.length) {
|
this.handleSelectionAllRecursion(this.treeTableData, true);
|
console.log("传输的数据", this.revokeData);
|
} else {
|
this.$refs.revokeTable.clearSelection();
|
this.revokeData = [];
|
}
|
},
|
handleSelectionAllRecursion(list, flag) {
|
for (let i = 0; i < list.length; i++) {
|
let item = list[i];
|
this.$refs.revokeTable.toggleRowSelection(item, flag);
|
if (flag) {
|
this.revokeData.push(item);
|
this.revokeData = this.revokeData.filter(
|
(a, index, self) => index === self.findIndex((t) => t.id === a.id)
|
);
|
}
|
if (item.children && item.children.length > 0) {
|
this.handleSelectionAllRecursion(item.children, flag);
|
}
|
}
|
},
|
|
// 选择需要撤销的数据
|
handleSelectionChange(val, row) {
|
console.log("rwo", row);
|
this.revokeData = val;
|
// 进行一个递归操作
|
// 判断是否选中 val包含既是选中 不包含既是取消选中
|
let flag = null;
|
if (val.includes(row)) {
|
flag = true;
|
} else {
|
flag = false;
|
}
|
if (row.children && row.children.length > 0) {
|
this.tableSelect(row, flag);
|
}
|
// 还要进行一个判断 如果全选之后又取消了选择,那么相应的sampleId也要取消
|
this.$nextTick(() => {
|
if (!flag) {
|
this.treeTableData.forEach((item) => {
|
if (item.id == row.sampleId) {
|
this.$refs.revokeTable.toggleRowSelection(item, false);
|
}
|
});
|
// 温度点
|
if (row.number) {
|
this.revokeData = this.revokeData.filter(
|
(a) =>
|
a.inspectionItemSubclass != row.inspectionItemSubclass &&
|
a.inspectionItem != "温度循环" &&
|
a.inspectionItemTwo != row.number &&
|
a.id != row.sampleId
|
);
|
console.log("treeTableData", this.treeTableData);
|
this.treeTableData.forEach((item) => {
|
if (item.id == row.sampleId && item.children.length > 0) {
|
item.children.forEach((a) => {
|
if (a.inspectionItem == "温度循环") {
|
this.$refs.revokeTable.toggleRowSelection(a, false);
|
if (a.children.length > 0) {
|
a.children.forEach((b) => {
|
if (b.inspectionItemTwo == row.number) {
|
this.$refs.revokeTable.toggleRowSelection(b, false);
|
}
|
});
|
}
|
}
|
});
|
}
|
});
|
} else if (row.temperatureNumber) {
|
// 循环次数
|
this.revokeData = this.revokeData.filter(
|
(a) =>
|
a.inspectionItem != "温度循环" &&
|
a.id != row.sampleId &&
|
a.inspectionItemTwo != row.inspectionItemTwo &&
|
a.number != row.inspectionItemTwo
|
);
|
console.log("treeTableData", this.treeTableData);
|
this.treeTableData.forEach((item) => {
|
if (item.id == row.sampleId && item.children.length > 0) {
|
item.children.forEach((a) => {
|
if (a.inspectionItem == "温度循环") {
|
this.$refs.revokeTable.toggleRowSelection(a, false);
|
}
|
});
|
}
|
});
|
} else if (row.temperature) {
|
// 如果是温度循环
|
this.revokeData = this.revokeData.filter(
|
(a) =>
|
a.id != row.sampleId &&
|
a.inspectionItem != "温度循环" &&
|
a.parentId != row.id
|
);
|
} else {
|
this.revokeData = this.revokeData.filter(
|
(a) => a.id != row.sampleId
|
);
|
}
|
}
|
console.log("最终结果", this.revokeData);
|
});
|
},
|
// load的递归赋值
|
loadRecursion(list, treeId, data) {
|
for (let i = 0; i < list.length; i++) {
|
let item = list[i];
|
if (item.id == treeId) {
|
item.children = data;
|
return;
|
}
|
if (item.children && item.children.length > 0) {
|
this.loadRecursion(item.children, treeId, data);
|
}
|
}
|
},
|
// 选中的递归
|
selectedRecursion(list) {
|
if (list.children && list.children.length > 0) {
|
console.log("有子节点", list);
|
|
for (let i = 0; i < list.children.length; i++) {
|
let item = list.children[i];
|
this.$refs.revokeTable.toggleRowSelection(item, true);
|
this.revokeData.push(item);
|
this.revokeData = this.revokeData.filter(
|
(m, index, self) => index === self.findIndex((t) => t.id === m.id)
|
);
|
if (item.children && item.children.length > 0) {
|
this.selectedRecursion(item.children);
|
}
|
}
|
} else {
|
console.log("没有子节点", list);
|
this.$refs.revokeTable.toggleRowSelection(list, true);
|
return;
|
}
|
},
|
// 递归treeTableData
|
recursionTreeTableData(list, data) {
|
console.log("list", list);
|
// list 选中的数据 data代表treetableData
|
for (let i = 0; i < list.length; i++) {
|
let item = list[i];
|
for (let j = 0; j < data.length; j++) {
|
let m = data[j];
|
if (item.id == m.id) {
|
console.log("m", m);
|
this.selectedRecursion(m);
|
}
|
if (m.children && m.children.length > 0) {
|
this.recursionTreeTableData(list, m.children);
|
}
|
}
|
}
|
},
|
watchRecursion(list, flag, id) {
|
console.log("999", list, flag, id);
|
for (let j = 0; j < this.treeTableData.length; j++) {
|
let m = this.treeTableData[j];
|
if (m.id == id) {
|
this.$refs.revokeTable.toggleRowSelection(m, flag);
|
if (flag) {
|
this.revokeData.push(m);
|
this.revokeData = this.revokeData.filter(
|
(a, index, self) => index === self.findIndex((t) => t.id === a.id)
|
);
|
} else {
|
this.revokeData = this.revokeData.filter((a) => a.id != id);
|
}
|
|
if (m.children && m.children.length > 0) {
|
m.children.forEach((a) => {
|
this.$refs.revokeTable.toggleRowSelection(a, flag);
|
if (a.children) {
|
}
|
});
|
}
|
}
|
}
|
},
|
tableSelect(list, flag) {
|
if (list.children && list.children.length > 0) {
|
for (let i = 0; i < list.children.length; i++) {
|
let item = list.children[i];
|
this.$refs.revokeTable.toggleRowSelection(item, flag);
|
if (flag) {
|
this.revokeData.push(item);
|
this.revokeData = this.revokeData.filter(
|
(a, index, self) => index === self.findIndex((t) => t.id === a.id)
|
);
|
} else {
|
this.revokeData = this.revokeData.filter((a) => a.id != item.id);
|
}
|
if (item.children && item.children.length > 0) {
|
this.tableSelect(item, flag);
|
}
|
}
|
}
|
},
|
|
// 懒加载查询
|
load(tree, treeNode, resolve) {
|
treeNode.loading = true;
|
if (this.deleteTilte == "撤销") {
|
// 是否是温度循环
|
if (tree.temperature) {
|
this.$axios
|
.get(
|
this.$api.insOrder.selectTemperatureByProductId +
|
"?productId=" +
|
tree.id
|
)
|
.then((res) => {
|
this.loadRecursion(this.treeTableData, tree.id, res.data);
|
resolve(res.data);
|
this.recursionTreeTableData(this.revokeData, this.treeTableData);
|
treeNode.loading = false;
|
});
|
}
|
// 是否是检验次数
|
else if (tree.temperatureNumber) {
|
this.$axios
|
.get(
|
this.$api.insOrder.selectTemperatureNumberByProductId +
|
"?parentId=" +
|
tree.parentId +
|
"&inspectionItem=" +
|
tree.inspectionItemTwo
|
)
|
.then((res) => {
|
this.loadRecursion(this.treeTableData, tree.id, res.data);
|
resolve(res.data);
|
this.recursionTreeTableData(this.revokeData, this.treeTableData);
|
treeNode.loading = false;
|
});
|
} else {
|
this.$axios
|
.get(
|
this.$api.insOrder.selectProductsBySampleId +
|
"?sampleId=" +
|
tree.id +
|
"&orderId=" +
|
this.orderId
|
)
|
.then((res) => {
|
this.treeTableData.forEach((m, index) => {
|
if (m.sampleId == tree.id) {
|
m.children = res.data;
|
}
|
});
|
resolve(res.data);
|
this.recursionTreeTableData(this.revokeData, this.treeTableData);
|
// // 如果该样品已经被勾选 那么所得到的检验项也要进行勾选
|
// let data = this.revokeData.map((item) => item.id);
|
// if (data.includes(tree.id)) {
|
// this.treeTableData.forEach((m, index) => {
|
// if (m.children) {
|
// m.children.forEach((n, i) => {
|
// if (tree.id == n.sampleId) {
|
// this.$refs.revokeTable.toggleRowSelection(n, true);
|
// }
|
// });
|
// }
|
// });
|
// }
|
treeNode.loading = false;
|
});
|
}
|
} else if (this.deleteTilte == "撤销审核") {
|
// 是否是温度循环
|
if (tree.temperature) {
|
this.$axios
|
.get(
|
this.$api.insOrder.revokeReviewTemperatureByProductId +
|
"?productId=" +
|
tree.id
|
)
|
.then((res) => {
|
resolve(res.data);
|
treeNode.loading = false;
|
});
|
}
|
// 是否是循环次数
|
else if (tree.temperatureNumber) {
|
this.$axios
|
.get(
|
this.$api.insOrder.revokeReviewConsistentByProductId +
|
"?parentId=" +
|
tree.parentId +
|
"&inspectionItem=" +
|
tree.inspectionItemTwo
|
)
|
.then((res) => {
|
resolve(res.data);
|
treeNode.loading = false;
|
});
|
} else {
|
this.$axios
|
.get(
|
this.$api.insOrder.revokeReviewProduct +
|
"?sampleId=" +
|
tree.id +
|
"&orderId=" +
|
this.orderId
|
)
|
.then((res) => {
|
resolve(res.data);
|
treeNode.loading = false;
|
});
|
}
|
}
|
},
|
// 撤销
|
handlEquash(row) {
|
if (this.tabIndex != 1) {
|
this.quashDialogVisible = true;
|
this.insOrderRow = row;
|
} else {
|
// this.componentDataDelete.entity.orderId = row.id
|
this.orderId = row.id;
|
this.$axios
|
.get(this.$api.insOrder.selectSampleByOrderId + "?orderId=" + row.id)
|
.then((res) => {
|
console.log("res", res);
|
this.treeTableData = res.data;
|
this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
|
});
|
this.revocationInsProductIds = "";
|
this.componentDataDelete.showSelect = true;
|
this.componentDataDelete.select = true;
|
this.deleteTilte = "撤销";
|
this.deleteDialogVisible = true;
|
}
|
},
|
handleCloseDelete() {
|
this.revokeData = [];
|
this.treeTableData = [];
|
this.deleteDialogVisible = false;
|
},
|
selectDelete(arr) {
|
this.deleteList = arr;
|
},
|
submitDelete() {
|
if (this.deleteTilte == "撤销") {
|
if (this.revokeData.length == 0) {
|
this.$message.error("请选择要撤销的具体项目");
|
return;
|
}
|
//this.printLoading = true;
|
// 如果勾选了样品
|
let productIds = [];
|
let sampleData = this.revokeData.filter(
|
(m) => m.hasChildren && !m.temperatureNumber && !m.temperature
|
);
|
let sampleIds = [];
|
if (sampleData.length > 0) {
|
console.log("选择了样品", sampleData);
|
sampleIds = sampleData.map((m) => m.id);
|
let newDate = this.revokeData.filter((m) => {
|
return sampleIds.every((id) => m.sampleId != id);
|
});
|
if (newDate) {
|
productIds = newDate.map((m) => m.id);
|
}
|
} else {
|
console.log("选择项目");
|
// 过滤掉循环次数
|
let data = this.revokeData.filter((item) => !item.ids);
|
// 如果勾选循环次数
|
let data1 = this.revokeData.filter((item) => item.ids);
|
productIds = data.map((m) => m.id);
|
data1.forEach((item) => {
|
if (item.ids.length > 0) {
|
item.ids.forEach((a) => {
|
productIds.push(a);
|
});
|
}
|
});
|
productIds = [...new Set(productIds)];
|
console.log("data", data);
|
console.log("data1", data1);
|
}
|
//
|
|
console.log("sampleId", sampleIds);
|
console.log("productIds", productIds);
|
let data = {
|
orderId: this.orderId,
|
sampleIds: sampleIds,
|
productIds: productIds,
|
};
|
this.$axios
|
.post(this.$api.insOrder.revoke, data, {
|
headers: {
|
"Content-Type": "application/json",
|
},
|
noQs: true,
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.deleteDialogVisible = false;
|
this.printLoading = false;
|
this.revokeData = [];
|
this.refreshTable();
|
this.$message.success("撤销成功");
|
}
|
});
|
console.log("revokeData", this.revokeData);
|
console.log("data", data);
|
// let ids = this.deleteList.map((m) => m.id).join(",");
|
// this.printLoading = true;
|
// this.axios
|
// .put(
|
// this.$api.insOrder.updateInspected +
|
// "?ids=" +
|
// ids +
|
// "&orderId=" +
|
// this.orderId
|
// )
|
// .then((res) => {
|
// if (res.code === 200) {
|
// this.printLoading = false;
|
// this.deleteDialogVisible = false;
|
// this.refreshTable("page");
|
// this.$message.success("更新成功");
|
// }
|
// });
|
} else {
|
// this.axios
|
// .post(
|
// this.$api.insOrder.checkUpdate +
|
// "?orderId=" +
|
// this.orderId +
|
// "&state=" +
|
// 1
|
// )
|
// .then((res) => {
|
// if (res.code === 200) {
|
// this.printLoading = false;
|
// this.deleteDialogVisible = false;
|
// this.refreshTable("page");
|
// this.$message.success("更新成功");
|
// }
|
// });
|
|
this.axios
|
.get(this.$api.insOrder.revocationPassed + "?orderId=" + this.orderId)
|
.then((res) => {
|
if (res.code === 200) {
|
this.printLoading = false;
|
this.deleteDialogVisible = false;
|
this.refreshTable();
|
this.$message.success("更新成功");
|
}
|
});
|
}
|
},
|
handlEquashCheck(row) {
|
// // this.componentDataDelete.entity.orderId = row.id
|
// this.orderId = row.id;
|
// this.revocationInsProductIds = row.revocationInsProductIds;
|
// this.componentDataDelete.showSelect = false;
|
// this.componentDataDelete.select = false;
|
// this.deleteTilte = "撤销审核";
|
// this.deleteDialogVisible = true;
|
|
this.orderId = row.id;
|
this.revocationInsProductIds = row.revocationInsProductIds;
|
this.componentDataDelete.showSelect = false;
|
this.componentDataDelete.select = false;
|
this.deleteTilte = "撤销审核";
|
this.$axios
|
.get(this.$api.insOrder.revokeReviewSample + "?orderId=" + row.id)
|
.then((res) => {
|
console.log("撤销审核样品查询", res);
|
this.treeTableData = res.data;
|
});
|
this.deleteDialogVisible = true;
|
},
|
handleNo() {
|
if (this.deleteTilte == "撤销") {
|
this.deleteDialogVisible = false;
|
this.revokeData = [];
|
} else {
|
// this.axios
|
// .post(
|
// this.$api.insOrder.checkUpdate +
|
// "?orderId=" +
|
// this.orderId +
|
// "&state=" +
|
// 0
|
// )
|
// .then((res) => {
|
// if (res.code === 200) {
|
// this.printLoading = false;
|
// this.deleteDialogVisible = false;
|
// this.refreshTable("page");
|
// this.$message.success("更新成功");
|
// }
|
// });
|
this.axios
|
.get(this.$api.insOrder.revocationCancel + "?orderId=" + this.orderId)
|
.then((res) => {
|
if (res.code === 200) {
|
this.printLoading = false;
|
this.deleteDialogVisible = false;
|
this.refreshTable();
|
this.$message.success("更新成功");
|
}
|
});
|
}
|
},
|
// 下发
|
handleIssued(row) {
|
this.issuedDialogVisible = true;
|
this.$axios
|
.post(this.$api.insOrder.selectOrderManDay, {
|
id: row.id,
|
})
|
.then((res) => {
|
this.distributeData.orderId = row.id;
|
this.distributeData.sampleId = row.sampleId;
|
this.distributeData.appointed = res.data;
|
this.distributeData.type = row.type;
|
});
|
this.$axios
|
.post(this.$api.insOrderPlan.upPlanUser2, {
|
orderId: row.id,
|
})
|
.then((res) => {
|
if (res.code === 200 && res.data.length > 0) {
|
this.sonLaboratoryList = [];
|
res.data.forEach((m) => {
|
this.sonLaboratoryList.push({
|
value: m,
|
label: m,
|
});
|
});
|
}
|
});
|
},
|
submitForm2() {
|
if (
|
this.distributeData.appointed == null ||
|
this.distributeData.appointed == ""
|
) {
|
this.$message.error("约定时间未填写");
|
return;
|
}
|
//
|
if (
|
this.distributeData.type == 2 &&
|
(this.distributeData.userId == null || this.distributeData.userId == "")
|
) {
|
this.$message.error("指派人员未填写");
|
return;
|
}
|
if (
|
this.distributeData.userId &&
|
(this.distributeData.sonLaboratory == null ||
|
this.distributeData.sonLaboratory == "")
|
) {
|
this.$message.error("试验室未填写");
|
return;
|
}
|
this.upLoad = true;
|
this.$axios
|
.post(
|
this.$api.insOrder.upInsOrder,
|
{
|
orderId: this.distributeData.orderId,
|
sampleId: this.distributeData.sampleId,
|
appointed: this.distributeData.appointed,
|
userIdList: [this.distributeData.userId],
|
sonLaboratory: this.distributeData.sonLaboratory,
|
},
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
}
|
)
|
.then((res) => {
|
if (res.code === 201) {
|
this.upLoad = false;
|
return;
|
}
|
this.$message.success("修改成功");
|
this.upLoad = false;
|
this.issuedDialogVisible = false;
|
this.refreshTable();
|
})
|
.catch((e) => {
|
this.$message.error("修改失败");
|
this.upLoad = false;
|
});
|
},
|
submitForm() {
|
this.upLoad = true;
|
if (this.tabIndex == 1) {
|
this.axios
|
.put(
|
this.$api.insOrder.updateInspected + "?id=" + this.insOrderRow.id
|
)
|
.then((res) => {
|
if (res.code === 200) {
|
this.upLoad = false;
|
this.quashDialogVisible = false;
|
this.refreshTable();
|
this.$message.success("更新成功");
|
}
|
});
|
} else {
|
this.axios
|
.put(this.$api.insOrder.updateStatus + "?id=" + this.insOrderRow.id)
|
.then((res) => {
|
if (res.code === 200) {
|
this.upLoad = false;
|
this.quashDialogVisible = false;
|
this.refreshTable();
|
this.$message.success("更新成功");
|
}
|
});
|
}
|
let authorizedPerson =
|
this.formData.authorizedPerson.length > 0
|
? this.formData.authorizedPerson.join(",")
|
: "";
|
delete this.formData.createTime;
|
delete this.formData.updateTime;
|
delete this.formData.createUser;
|
delete this.formData.updateUser;
|
this.formData.authorizedPerson = authorizedPerson;
|
},
|
// 下单
|
playOrder(num) {
|
// this.active = num;
|
// this.examine = 0;
|
this.$router.push({
|
name: "addOrder",
|
query: {
|
active: num,
|
examine: 0,
|
},
|
});
|
},
|
handleTab(m, i) {
|
this.tabIndex = i;
|
this.queryParams.state = m.value;
|
this.getList();
|
},
|
getUserMenu() {
|
this.$axios.get(this.$api.user.getUserMenu).then((res) => {
|
let data = [];
|
res.data.forEach((a) => {
|
data.push({
|
label: a.name,
|
value: a.id,
|
});
|
});
|
this.componentData.tagField.createUser.select = data;
|
});
|
},
|
getInsStateDicts() {
|
this.$axios
|
.post(this.$api.enums.selectEnumByCategory, {
|
category: "检验任务状态",
|
})
|
.then((res) => {
|
let data = res.data;
|
this.insStateList = data;
|
data.forEach((ele) => {
|
//0:待检验 1:检验中 2:已检验 3:待复核 4:复核未通过 5:复核通过
|
if (["2", "5"].includes(ele.value)) {
|
ele.type = "success";
|
} else if (["1", "3"].includes(ele.value)) {
|
ele.type = "warning";
|
} else if (["0", "4"].includes(ele.value)) {
|
ele.type = "danger";
|
}
|
});
|
this.componentDataDataLook.tagField.insState.select = data;
|
this.componentDataDelete.tagField.insState.select = data;
|
});
|
},
|
selectEnumByCategoryForOrderType() {
|
this.$axios
|
.post(this.$api.enums.selectEnumByCategory, {
|
category: "检验类别",
|
})
|
.then((res) => {
|
this.componentData.tagField.orderType.select = res.data;
|
});
|
},
|
changeUser() {
|
if (this.sonLaboratoryList.length > 0) {
|
this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
|
}
|
},
|
},
|
};
|
</script>
|
|
<style scope>
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 50px;
|
display: flex;
|
align-items: center;
|
overflow: hidden;
|
}
|
|
.search_thing {
|
display: flex;
|
align-items: center;
|
height: 50px;
|
width: 100px;
|
}
|
|
.search_label {
|
width: 90px;
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 90px);
|
}
|
|
.table {
|
/* margin-top: 10px;
|
background-color: #fff;
|
width: calc(100% - 40px);
|
height: calc(100% - 60px - 80px - 10px - 40px);
|
padding: 20px; */
|
}
|
|
.tab {
|
list-style-type: none;
|
display: flex;
|
/* margin-bottom: 12px; */
|
padding-inline-start: 0px;
|
}
|
|
.tab li {
|
line-height: 24px;
|
padding: 6px 14px;
|
font-size: 14px;
|
color: #333333;
|
border: 1px solid #eeeeee;
|
cursor: pointer;
|
}
|
|
.tab li:nth-child(1) {
|
border-radius: 8px 0 0 8px;
|
}
|
|
.tab li:nth-child(5) {
|
border-radius: 0 8px 8px 0;
|
}
|
|
.tab li.active {
|
border-color: #3a7bfa;
|
color: #3a7bfa;
|
}
|
|
.el-form-item {
|
margin-bottom: 16px;
|
}
|
|
.box-card >>> .el-radio__inner {
|
border-radius: 2px !important;
|
}
|
|
.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
|
content: "";
|
width: 8px;
|
height: 3px;
|
border: 1px solid white;
|
border-top: transparent;
|
border-right: transparent;
|
text-align: center;
|
display: block;
|
position: absolute;
|
top: 3px;
|
left: 2px;
|
transform: rotate(-45deg);
|
border-radius: 0px;
|
background: none;
|
}
|
|
>>> .el-radio__label {
|
color: #000 !important;
|
}
|
|
.el-dialog__body >>> .el-radio__label {
|
font-size: 8px;
|
}
|
|
.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
|
content: "";
|
width: 4px;
|
height: 3px;
|
border: 1px solid #000;
|
border-top: transparent;
|
border-right: transparent;
|
text-align: center;
|
display: block;
|
position: absolute;
|
top: 1px;
|
left: 2px;
|
transform: rotate(-45deg);
|
border-radius: 0px;
|
background: none;
|
}
|
|
>>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
background: #3a7bfa;
|
}
|
|
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
background: transparent;
|
}
|
|
.el-dialog__body >>> .el-radio__inner {
|
width: 8px !important;
|
height: 8px !important;
|
}
|
|
.el-dialog__body >>> .el-radio__label {
|
padding-left: 2px !important;
|
}
|
|
.el-dialog__body >>> .el-card__body {
|
padding: 0 !important;
|
}
|
|
.el-dialog__body >>> .el-card {
|
border: none;
|
}
|
|
.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
|
border-color: #000 !important;
|
}
|
|
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
border: none !important;
|
}
|
|
.scor {
|
width: 0.01cm;
|
height: 0.01cm;
|
border-radius: 1px;
|
border: 1px solid #000;
|
display: inline-block;
|
}
|
|
.ellipsis-multiline {
|
display: -webkit-box;
|
-webkit-line-clamp: 2;
|
-webkit-box-orient: vertical;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
word-wrap: break-word;
|
max-height: 3em;
|
/* 高度为字体大小的两倍 */
|
line-height: 1.5em;
|
/* 行高 */
|
height: 3em;
|
/* 高度为行高的两倍 */
|
}
|
|
.table-container {
|
height: 70vh;
|
overflow-y: auto;
|
}
|
|
.table-container.el-table {
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
}
|
</style>
|