From 45792b3776cda2e1ada31755ffc226a663f90b48 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 19 三月 2025 15:32:23 +0800
Subject: [PATCH] 锁屏功能
---
src/views/business/inspectionOrder/index.vue | 2473 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 2,470 insertions(+), 3 deletions(-)
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index f2e1fd8..206fe23 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,9 +1,2476 @@
<template>
- <div>妫�楠屼笅鍗�</div>
+ <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.outEntrustCode
+ }}</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>
+ <el-button @click="handleClose">{{
+ isQuash ? "杩� 鍥�" : "鍙� 娑�"
+ }}</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
+ :height="'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">
+ <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>
-export default {};
+import {
+ selectInsOrderParameter,
+ labelPrinting,
+ exportChecked,
+ selectSampleAndProductByOrderId,
+ selectSampleByOrderId,
+ selectProductsBySampleId,
+ revoke,
+ viewDetails,
+ downReport,
+ selectTemperatureByProductId,
+ selectTemperatureNumberByProductId,
+ revokeReviewTemperatureByProductId,
+ revokeReviewConsistentByProductId,
+ revokeReviewProduct,
+ revokeReviewSample,
+ updateStatus,
+ updateInspected,
+ revocationPassed,
+ revocationCancel,
+} from "@/api/business/inspectionOrder";
+import { upPlanUser2 } from "@/api/business/inspectionTask";
+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,
+ },
+ 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",
+ },
+ {
+ label: "鎿嶄綔",
+ dataType: "action",
+ fixed: "right",
+ operation: [
+ {
+ name: "鏁版嵁鏌ョ湅",
+ type: "text",
+ disabled: (row) => {
+ return row.state != 1 && row.state != 4;
+ },
+ clickFun: (row) => {
+ this.handleDataLook(row);
+ },
+ showHide: () => {
+ return true;
+ },
+ },
+ {
+ name: "鎶ュ憡涓嬭浇",
+ type: "text",
+ clickFun: (row) => {
+ this.download(row);
+ },
+ disabled: (row, index) => {
+ return row.state != 4 || row.isRatify != 1;
+ },
+ },
+ {
+ name: "瀹℃牳",
+ type: "text",
+ clickFun: (row) => {
+ this.handleVerify(row);
+ },
+ disabled: (row, index) => {
+ return row.state != 0;
+ },
+ },
+ {
+ name: "鎾ら攢",
+ type: "text",
+ clickFun: (row) => {
+ this.handlEquash(row);
+ },
+ disabled: (row, index) => {
+ return row.state != 1 && row.state != 0;
+ },
+ },
+ {
+ name: "鎾ら攢瀹℃牳",
+ type: "text",
+ clickFun: (row) => {
+ this.handlEquashCheck(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)
+ );
+ },
+ },
+ ],
+ },
+ ],
+ dataLookColumn: [
+ {
+ label: "濮旀墭缂栧彿",
+ prop: "entrustCode",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧缂栧彿",
+ prop: "sampleCode",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "绠″鑹叉爣",
+ prop: "bushColor",
+ minWidth: "100px",
+ width: "100px",
+ },
+ {
+ label: "鍏夌氦甯︾紪鍙�",
+ prop: "code",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "鍏夌氦鑹叉爣",
+ prop: "color",
+ minWidth: "100px",
+ width: "100px",
+ },
+ {
+ 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.insResultList.findIndex(
+ (item) => item.value == params
+ );
+ if (index > -1) {
+ return this.insResultList[index].label;
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ let index = this.insResultList.findIndex(
+ (item) => item.value == params
+ );
+ if (index > -1) {
+ return this.insResultList[index].type;
+ } 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: "140px",
+ width: "140px",
+ },
+ {
+ label: "鏍峰搧鍚嶇О",
+ prop: "sample",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧鍨嬪彿",
+ prop: "model",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "璇曢獙瀹�",
+ prop: "sonLaboratory",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ dataType: "action",
+ label: "鎿嶄綔",
+ fixed: "right",
+ operation: [
+ {
+ name: "鏌ョ湅",
+ type: "text",
+ clickFun: (row) => {
+ this.viewDetails(row);
+ },
+ showHide: (row) => {
+ return (
+ row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
+ row.inspectionItem.includes("鏉惧绠�") ||
+ row.inspectionItemSubclass.includes("鏉惧绠�") ||
+ (row.inspectionItem == "鎶楁媺寮哄害" &&
+ (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
+ (row.inspectionItem == "鏂浼搁暱鐜�" &&
+ (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
+ );
+ },
+ },
+ ],
+ },
+ ],
+ dataLookTableLoading: false,
+ dataLooktableData: [],
+ qrData: [],
+ multipleSelection: [],
+ sonLaboratoryList: [],
+ urgencyDictList: [],
+ tableHeight: 0,
+ tabList: [
+ {
+ label: "寰呭鏍�",
+ value: 0,
+ },
+ {
+ label: "寰呮楠�",
+ value: 1,
+ },
+ {
+ label: "宸叉楠�",
+ value: 4,
+ },
+ {
+ label: "閫�鍥�",
+ value: 2,
+ },
+ {
+ label: "鎾ら攢",
+ value: 3,
+ },
+ ],
+ insResultList: [
+ {
+ value: 1,
+ label: "鍚堟牸",
+ type: "success",
+ },
+ {
+ value: 0,
+ label: "涓嶅悎鏍�",
+ type: "danger",
+ },
+ {
+ value: 3,
+ label: "涓嶅垽瀹�",
+ type: "",
+ },
+ ],
+ tabIndex: 0,
+ active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝4锛氬厜绾ら厤缃�,榛樿涓�0
+ currentId: null,
+ more: false,
+
+ //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: [],
+ orderId: "",
+ revocationInsProductIds: "",
+ deleteDialogVisible: false,
+ upLoad: false,
+
+ insOrderRow: {},
+ checkIndexList: [],
+ checkDataList: [
+ {
+ sampleCode: "",
+ },
+ ],
+ };
+ },
+ 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,
+ inspectionItemSubclass: row.inspectionItemSubclass,
+ };
+ viewDetails(data)
+ .then((res) => {
+ if (res.code === 200) {
+ this.viewDetailsList = res.data;
+ if (res.data[0].tableHeader) {
+ this.tableHeader = res.data[0].tableHeader;
+ } else {
+ this.tableHeader = [
+ {
+ testValue0: "",
+ },
+ ];
+ }
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ 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 ? " 鈻g暀鏍�" : " 鈻㈢暀鏍�";
+ if (qrData.insState == 0) {
+ stateStr = "鈻e緟妫� 鈻㈠湪妫� 鈻㈠凡妫�";
+ } else if (qrData.insState == 1) {
+ stateStr = "鈻㈠緟妫� 鈻e湪妫� 鈻㈠凡妫�";
+ } else if (qrData.insState == 2) {
+ stateStr = "鈻㈠緟妫� 鈻㈠湪妫� 鈻e凡妫�";
+ }
+ 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;
+ },
+ refreshTable() {
+ this.getList();
+ },
+ 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,
+ isPlan: false,
+ },
+ });
+ },
+ // 鏁版嵁鏌ョ湅
+ 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) {
+ downReport({ id: row.reportId })
+ .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();
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ // 瀹℃牳
+ handleVerify(row) {
+ this.$router.push({
+ name: "showDetails",
+ query: {
+ active: 3,
+ currentId: row.id,
+ 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浠h〃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) {
+ selectTemperatureByProductId({ productId: tree.id })
+ .then((res) => {
+ if (res.code === 200) {
+ this.loadRecursion(this.treeTableData, tree.id, res.data);
+ resolve(res.data);
+ this.recursionTreeTableData(
+ this.revokeData,
+ this.treeTableData
+ );
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ // 鏄惁鏄楠屾鏁�
+ else if (tree.temperatureNumber) {
+ selectTemperatureNumberByProductId({
+ parentId: tree.parentId,
+ inspectionItem: tree.inspectionItemTwo,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.loadRecursion(this.treeTableData, tree.id, res.data);
+ resolve(res.data);
+ this.recursionTreeTableData(
+ this.revokeData,
+ this.treeTableData
+ );
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ } else {
+ selectProductsBySampleId({
+ sampleId: tree.id,
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.treeTableData.forEach((m, index) => {
+ if (m.sampleId == tree.id) {
+ m.children = res.data;
+ }
+ });
+ resolve(res.data);
+ this.recursionTreeTableData(
+ this.revokeData,
+ this.treeTableData
+ );
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ } else if (this.deleteTilte == "鎾ら攢瀹℃牳") {
+ // 鏄惁鏄俯搴﹀惊鐜�
+ if (tree.temperature) {
+ revokeReviewTemperatureByProductId({ productId: tree.id })
+ .then((res) => {
+ if (res.code === 200) {
+ resolve(res.data);
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ // 鏄惁鏄惊鐜鏁�
+ else if (tree.temperatureNumber) {
+ revokeReviewConsistentByProductId({
+ parentId: tree.parentId,
+ inspectionItem: tree.inspectionItemTwo,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ resolve(res.data);
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ } else {
+ revokeReviewProduct({
+ sampleId: tree.id,
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ resolve(res.data);
+ treeNode.loading = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ }
+ },
+ // 鎾ら攢
+ handlEquash(row) {
+ if (this.tabIndex != 1) {
+ this.quashDialogVisible = true;
+ this.insOrderRow = row;
+ } else {
+ this.orderId = row.id;
+ selectSampleByOrderId({
+ orderId: row.id,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.treeTableData = res.data;
+ this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ this.revocationInsProductIds = "";
+ 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)];
+ }
+ let data = {
+ orderId: this.orderId,
+ sampleIds: sampleIds,
+ productIds: productIds,
+ };
+ revoke(data)
+ .then((res) => {
+ if (res.code === 200) {
+ this.deleteDialogVisible = false;
+ this.printLoading = false;
+ this.revokeData = [];
+ this.refreshTable();
+ this.$message.success("鎾ら攢鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ } else {
+ revocationPassed({
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.printLoading = false;
+ this.deleteDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ },
+ handlEquashCheck(row) {
+ this.orderId = row.id;
+ this.revocationInsProductIds = row.revocationInsProductIds;
+ this.deleteTilte = "鎾ら攢瀹℃牳";
+ revokeReviewSample({
+ orderId: row.id,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.treeTableData = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ this.deleteDialogVisible = true;
+ },
+ handleNo() {
+ if (this.deleteTilte == "鎾ら攢") {
+ this.deleteDialogVisible = false;
+ this.revokeData = [];
+ } else {
+ revocationCancel({
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.printLoading = false;
+ this.deleteDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ },
+ // 涓嬪彂
+ handleIssued(row) {
+ this.issuedDialogVisible = true;
+ selectOrderManDay({
+ id: row.id,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.distributeData.orderId = row.id;
+ this.distributeData.sampleId = row.sampleId;
+ this.distributeData.appointed = res.data;
+ this.distributeData.type = row.type;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ 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,
+ });
+ });
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ 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;
+ upInsOrder({
+ orderId: this.distributeData.orderId,
+ sampleId: this.distributeData.sampleId,
+ appointed: this.distributeData.appointed,
+ userIdList: [this.distributeData.userId],
+ sonLaboratory: this.distributeData.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code === 201) {
+ this.upLoad = false;
+ return;
+ }
+ this.$message.success("淇敼鎴愬姛");
+ this.upLoad = false;
+ this.issuedDialogVisible = false;
+ this.refreshTable();
+ })
+ .catch((error) => {
+ console.error(error);
+ this.$message.error("淇敼澶辫触");
+ this.upLoad = false;
+ });
+ },
+ submitForm() {
+ this.upLoad = true;
+ if (this.tabIndex == 1) {
+ updateInspected({
+ id: this.insOrderRow.id,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.upLoad = false;
+ this.quashDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ } else {
+ updateStatus({
+ id: this.insOrderRow.id,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.upLoad = false;
+ this.quashDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ },
+ // 涓嬪崟
+ playOrder(num) {
+ // this.active = num;
+ // this.examine = 0;
+ this.$router.push({
+ name: "addOrder",
+ query: {
+ active: num,
+ examine: 0,
+ isPlan: false,
+ },
+ });
+ },
+ handleTab(m, i) {
+ this.tabIndex = i;
+ this.queryParams.state = m.value;
+ this.getList();
+ },
+ changeUser() {
+ if (this.sonLaboratoryList.length > 0) {
+ this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
+ }
+ },
+ },
+};
</script>
-<style></style>
+<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>
--
Gitblit v1.9.3