From f2bc9fde40010ddb6fdbc4c36ee9fc0e83af8f03 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 06 三月 2025 16:45:07 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/views/business/inspectionOrder/index.vue | 1436 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,433 insertions(+), 3 deletions(-)
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index f2e1fd8..4fb5f8d 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,9 +1,1439 @@
<template>
- <div>妫�楠屼笅鍗�</div>
+ <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>
-export default {};
+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></style>
+<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>
--
Gitblit v1.9.3