<template>
|
<div>
|
<div>
|
<el-row class="title">
|
<el-col :span="12" style="padding-left: 20px; 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)"
|
>下单</el-button
|
>
|
</el-col>
|
</el-row>
|
</div>
|
<basic-container>
|
<div class="search" :style="`height: ${more ? 130 : 80}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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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="componentData.entity.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 style="width: 100%; height: 100%" 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>
|
<!-- <ValueTable
|
:style="getStyle()"
|
ref="ValueTable"
|
:url="$api.insOrder.selectInsOrderParameter"
|
:componentData="componentData"
|
:upIndex="upIndex"
|
@getTableData="getTableData"
|
/> -->
|
<lims-table
|
:tableData="tableData"
|
@pagination="pagination"
|
: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
|
>
|
<div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
|
<ValueTable
|
ref="ValueTableDataLook"
|
:rowKey="'insProductId'"
|
:url="$api.insOrder.selectSampleAndProductByOrderId"
|
:componentData="componentDataDataLook"
|
/>
|
</div>
|
</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: -20px; 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 {
|
addCustom,
|
selectCustomPageList,
|
delCustomById,
|
upCustom,
|
} from "@/api/business/inspectionOrder";
|
import vueQr from "vue-qr";
|
import getLodop from "@/utils/lodop";
|
import Add from "./add.vue";
|
export default {
|
components: {
|
limsTable,
|
Add,
|
vueQr,
|
},
|
data() {
|
return {
|
tableData: [],
|
page: {
|
total: 0,
|
size: 10,
|
current: 0,
|
},
|
tableLoading: false,
|
column: [
|
{ label: "委托编号", prop: "entrustCode" },
|
{ label: "外部委托编号", prop: "outEntrustCode" },
|
{ label: "委托单位", prop: "company" },
|
{ label: "样品名称", prop: "sampleName" },
|
{ label: "样品编号", prop: "sampleCode" },
|
{ label: "样品型号", prop: "sampleModel" },
|
{ label: "样品数量", prop: "sampleNum" },
|
{ label: "检验进度%", prop: "insProgress" },
|
{ label: "紧急程度", prop: "type" },
|
{ label: "备注", prop: "remark" },
|
{ label: "制单人", prop: "custom" },
|
{ label: "约定时间", prop: "appointed" },
|
{ label: "下单时间", prop: "createTime" },
|
{ label: "下发时间", prop: "sendTime" },
|
{ label: "退回理由", prop: "tell" },
|
{ label: "委托人", prop: "prepareUser" },
|
{ label: "撤销日期", prop: "revocationTime" },
|
{
|
dataType: "action",
|
fixed: "right",
|
label: "操作",
|
operation: [
|
{
|
name: "数据查看",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
{
|
name: "报告下载",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
{
|
name: "审核",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
{
|
name: "撤销",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
{
|
name: "撤销审核",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
{
|
name: "分配",
|
type: "text",
|
clickFun: (row) => {},
|
},
|
],
|
},
|
],
|
//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: [
|
{
|
value: 0,
|
type: "success",
|
label: "普通",
|
},
|
{
|
value: 1,
|
type: "warning",
|
label: "优先",
|
},
|
{
|
value: 2,
|
type: "danger",
|
label: "紧急",
|
},
|
],
|
},
|
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: "11111",
|
},
|
],
|
qrData: [],
|
multipleSelection: [],
|
sonLaboratoryList: [],
|
queryCount: 0,
|
};
|
},
|
methods: {
|
pagination({ page, limit }) {
|
this.page.current = page;
|
this.page.size = limit;
|
this.getList();
|
},
|
},
|
};
|
</script>
|
|
<style scope>
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 80px;
|
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;
|
}
|
|
.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>
|