From 2b6e530143e59eae4d3a35eae0cf1620decfe698 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期三, 12 三月 2025 15:32:47 +0800
Subject: [PATCH] 报告编制修改
---
src/views/business/inspectionOrder/index.vue | 2079 ++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 1,477 insertions(+), 602 deletions(-)
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 4fb5f8d..56b36ab 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,41 +1,26 @@
<template>
- <div>
- <div>
+ <div class="bg-1">
+ <div style="margin: 5px 15px">
<el-row class="title">
- <el-col :span="12" style="padding-left: 20px; text-align: left"
- >妫�楠屼笅鍗�</el-col
- >
+ <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="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
- >
+ v-hasPermi="['business:order:add']">涓嬪崟</el-button>
</el-col>
</el-row>
</div>
<basic-container>
- <div class="search" :style="`height: ${more ? 130 : 80}px;`">
+ <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="componentData.entity.entrustCode"
- @keyup.enter.native="refreshTable()"
- ></el-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%">
@@ -43,244 +28,130 @@
澶栭儴濮旀墭缂栧彿锛�
</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="componentData.entity.outEntrustCode"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.sampleName"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.sampleModel"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.sampleCode"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.startAndEndTime"
- type="daterange"
- size="small"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- value-format="yyyy-MM-dd"
- clearable
- placeholder="閫夋嫨鏃ユ湡"
- >
+ <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="componentData.entity.name"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.engineering"
- @keyup.enter.native="refreshTable()"
- ></el-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="componentData.entity.production"
- @keyup.enter.native="refreshTable()"
- ></el-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 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
- >
+ <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 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)"
- >
+ <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>
+ <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column"
+ :page="page" :tableLoading="tableLoading"></lims-table>
</div>
<!-- 瀹℃牳 -->
- <el-dialog
- title="涓嬪崟瀹℃牳"
- :visible.sync="verifyDialogVisible"
- width="30%"
- :before-close="handleClose"
- >
+ <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
- >鐨勪俊鎭槸鍚﹂�氳繃
+ 濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span>鐨勪俊鎭槸鍚﹂�氳繃
</p>
- <el-form
- :label-position="labelPosition"
- :model="formData"
- label-width="150px"
- ref="ruleForm"
- v-else
- >
+ <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-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-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-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"
- >
+ <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
- >鐨勪俊鎭槸鍚︽挙閿�
+ }}</span>鐨勪俊鎭槸鍚︽挙閿�
</p>
- <el-form
- :label-position="labelPosition"
- :model="formData"
- label-width="150px"
- ref="ruleForm"
- v-else
- >
+ <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-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-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-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"
- >
+ <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%">
@@ -288,73 +159,34 @@
<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 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
- >鎸囨淳浜哄憳锛�
+ <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-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"
- >
+ <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-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>
@@ -364,34 +196,18 @@
<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-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button>
</el-row>
</span>
</el-dialog>
- <el-dialog
- title="鏁版嵁鏌ョ湅"
- :visible.sync="dataDialogVisible"
- width="100%"
- fullscreen
- >
+ <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"
- />
+ <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%"
- >
+ <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete"
+ width="80%">
<div class="table-container" v-if="deleteDialogVisible">
<!-- <ValueTable
ref="ValueTableDataDelete"
@@ -405,57 +221,23 @@
: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 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 prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="inspectionItemSubclass"
- label="妫�楠屽瓙椤�"
- show-overflow-tooltip
- >
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="sampleType"
- label="鏍峰搧鍒嗙被"
- show-overflow-tooltip
- >
+ <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 prop="sonLaboratory" label="璇曢獙瀹�" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="tell" label="瑕佹眰鍊�" show-overflow-tooltip>
</el-table-column>
@@ -466,118 +248,46 @@
<el-button @click="handleNo">{{
deleteTilte == "鎾ら攢" ? "鍙� 娑�" : "涓嶉�氳繃"
}}</el-button>
- <el-button
- type="primary"
- @click="submitDelete"
- :loading="printLoading"
- >{{ 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-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 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 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"
- >
+ <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 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>
@@ -586,47 +296,17 @@
</el-dialog>
</div>
<div style="width: 100%; height: 100%" v-if="active > 0">
- <Add
- :active="active"
- :currentId="currentId"
- v-if="active < 4"
- :examine="examine"
- />
+ <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"
- >
+ <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>
+ <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>
@@ -634,89 +314,48 @@
<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>
+ <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="
+ <el-col style="
font-weight: bold;
text-align: left;
font-size: 14px;
- "
- ><span>鏍峰搧缂栧彿: </span
- >{{ item.sampleCode }}</el-col
- >
+ "><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-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-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-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 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="
+ <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
- >
+ "><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>
@@ -728,61 +367,40 @@
<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-button type="primary" @click="submitPrint" :loading="printLoading">鎵� 鍗�</el-button>
</el-row>
</span>
</el-dialog>
- <div
- class="el-dialog__body"
- style="
+ <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="
+ <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>
+ <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-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>
@@ -791,29 +409,19 @@
<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-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-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 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>
@@ -828,47 +436,169 @@
<script>
import limsTable from "@/components/Table/lims-table.vue";
import {
- addCustom,
- selectCustomPageList,
+ selectInsOrderParameter,
+ hasSendUrgentOrder,
delCustomById,
upCustom,
} from "@/api/business/inspectionOrder";
+import { getDicts } from "@/api/system/dict/data";
import vueQr from "vue-qr";
import getLodop from "@/utils/lodop";
import Add from "./add.vue";
+import { mapGetters } from "vuex";
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: 10,
- current: 0,
+ size: 20,
+ current: 1,
},
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" },
+ {
+ 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",
+ },
+ {
+ label: "鏍峰搧缂栧彿",
+ prop: "sampleCode",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧鍨嬪彿",
+ prop: "sampleModel",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧鏁伴噺",
+ prop: "sampleNum",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "妫�楠岃繘搴�%",
+ prop: "insProgress",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "绱ф�ョ▼搴�",
+ prop: "type",
+ minWidth: "100px",
+ width: "100px",
+ dataType: "tag",
+ formatData: (params) => {
+ let index = this.urgencyDictList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.urgencyDictList[index].dictLabel;
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ let index = this.urgencyDictList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.urgencyDictList[index].listClass;
+ } else {
+ return null;
+ }
+ },
+ },
+ {
+ label: "澶囨敞",
+ prop: "remark",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "鍒跺崟浜�",
+ prop: "custom",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "绾﹀畾鏃堕棿",
+ prop: "appointed",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "涓嬪崟鏃堕棿",
+ prop: "createTime",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "涓嬪彂鏃堕棿",
+ prop: "sendTime",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "閫�鍥炵悊鐢�",
+ prop: "tell",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "濮旀墭浜�",
+ prop: "prepareUser",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "鎾ら攢鏃ユ湡",
+ prop: "revocationTime",
+ minWidth: "120px",
+ width: "120px",
+ },
{
dataType: "action",
fixed: "right",
@@ -877,32 +607,32 @@
{
name: "鏁版嵁鏌ョ湅",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎶ュ憡涓嬭浇",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "瀹℃牳",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎾ら攢",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎾ら攢瀹℃牳",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鍒嗛厤",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
],
},
@@ -1041,23 +771,7 @@
},
tagField: {
type: {
- select: [
- {
- value: 0,
- type: "success",
- label: "鏅��",
- },
- {
- value: 1,
- type: "warning",
- label: "浼樺厛",
- },
- {
- value: 2,
- type: "danger",
- label: "绱ф��",
- },
- ],
+ select: [],
},
createUser: {
select: [],
@@ -1254,20 +968,1160 @@
checkIndexList: [],
checkDataList: [
{
- sampleCode: "11111",
+ sampleCode: "",
},
],
qrData: [],
multipleSelection: [],
sonLaboratoryList: [],
queryCount: 0,
+ urgencyDictList: [],
+ tableHeight: 0,
};
},
+ created() {
+ this.getDictList();
+ this.getTableHeight();
+ },
+ mounted() {
+ this.getList();
+ window.addEventListener("resize", this.getTableHeight);
+ },
+ beforeDestroy() {
+ window.removeEventListener("resize", this.getTableHeight);
+ },
+ watch: {
+ more() {
+ this.getTableHeight();
+ },
+ },
methods: {
+ //鑾峰彇琛ㄦ牸楂樺害
+ 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],
+ };
+ console.log("data", data);
+ this.exportCheckedLoading = true;
+ this.dialogVisible1 = false;
+ this.$axios
+ .post(this.$api.insOrder.exportChecked, data, {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ responseType: "blob",
+ })
+ .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();
+ });
+ },
+ // 鏌ョ湅璇︽儏
+ viewDetails(row) {
+ this.dialogVisible = true;
+ if (
+ row.inspectionItem.includes("鏉惧绠�") ||
+ row.inspectionItemSubclass.includes("鏉惧绠�")
+ ) {
+ this.type = "鏉惧绠�";
+ } else {
+ this.type = row.inspectionItem;
+ }
+ let data = {
+ inspectionItem: row.inspectionItem,
+ insProductId: row.insProductId,
+ insSampleId: row.insSampleId,
+ entrustCode: row.entrustCode,
+ sampleCode: row.sampleCode,
+ };
+ this.$axios
+ .post(this.$api.insOrder.viewDetails, data, {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ .then((res) => {
+ this.viewDetailsList = res.data;
+ if (res.data[0].tableHeader) {
+ this.tableHeader = res.data[0].tableHeader;
+ } else {
+ this.tableHeader = [
+ {
+ testValue0: "",
+ },
+ ];
+ }
+ });
+ },
+ selectMethod(val) {
+ this.multipleSelection = val;
+ },
+ getLabelPrinting(selection) {
+ this.loadPint = true;
+ this.$axios
+ .post(this.$api.insOrder.labelPrinting, {
+ ids: selection.map((m) => m.id).join(","),
+ })
+ .then((res) => {
+ 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;
+ });
+ },
+ //寮�濮嬫爣绛炬墦鍗�
+ 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;
+
+ // PrintJS({
+ // printable: "printMOrder", //椤甸潰
+ // type: "html", //鏂囨。绫诲瀷
+ // maxWidth: 360,
+ // style: `@page {
+ // margin:0;
+ // size: 400px 75px collapse;
+ // margin-top:3px;
+ // &:first-of-type{
+ // margin-top:0 !important;
+ // }
+ // }
+ // html{
+ // zoom:100%;
+ // }
+ // @media print{
+ // width: 400px;
+ // height: 75px;
+ // margin:0;
+ // }`,
+ // onPrintDialogClose: (this.erexcel = false),
+ // targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
+ // font_size: "0.15cm",
+ // });
+ },
+ print() {
+ if (this.multipleSelection.length == 0) {
+ this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+ return;
+ }
+ let selection = this.multipleSelection;
+ this.getLabelPrinting(selection);
+ this.printDialogVisible = true;
+ },
+ // 閫夋嫨妫�楠屽垎閰嶄汉鍛�
+ getAuthorizedPerson() {
+ this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
+ // let data = [];
+ // res.data.forEach((a) => {
+ // data.push({
+ // label: a.name,
+ // value: a.id,
+ // });
+ // });
+ this.personList = res.data;
+ });
+ },
+ refreshTable() {
+ this.getList();
+ },
+ getTableData(newData) {
+ if (newData && newData.length == 1) {
+ const insState = newData[0].state;
+ this.tabList.forEach((ele, index) => {
+ if (ele.value == insState && this.queryCount == 0) {
+ this.handleTab(ele, index);
+ this.queryCount = 1;
+ }
+ });
+ }
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy);
+ this.upIndex++;
+ this.refreshTable();
+ },
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem("power"));
+ let up = false;
+ let del = false;
+ let revoke = false;
+ let check = false;
+ let checkUpdate = false;
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == "upInsOrder") {
+ up = true;
+ }
+ if (power[i].menuMethod == "updateStatus") {
+ revoke = true;
+ }
+ if (power[i].menuMethod == "upInsOrderOfState") {
+ check = true;
+ }
+ if (power[i].menuMethod == "checkUpdate") {
+ checkUpdate = true;
+ }
+ }
+ if (!up) {
+ this.componentData.do.splice(5, 1);
+ }
+ if (!checkUpdate) {
+ this.componentData.do.splice(4, 1);
+ }
+ if (!revoke) {
+ this.componentData.do.splice(3, 1);
+ }
+ if (!check) {
+ this.componentData.do.splice(2, 1);
+ }
+ },
+ 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;
+ },
+ // 璇︽儏
+ selectAllByOne(row) {
+ this.active = 2;
+ // console.log(row);
+ // //鎵撳紑寮规
+ // this.dialogVisible = true;
+ // //row = 鐐瑰嚮瀵瑰簲琛屽��
+ // //澶嶅埗缁檉ormData
+ // this.formData = this.HaveJson(row);
+ this.currentId = row.id;
+ this.examine = 1;
+ },
+ // 鏁版嵁鏌ョ湅
+ handleDataLook(row) {
+ this.componentDataDataLook.entity.id = row.id;
+ this.dataDialogVisible = true;
+ },
+ // 涓嬭浇鎶ュ憡
+ download(row) {
+ // let url = row.urlS ? row.urlS : row.url;
+ // if (url) {
+ // url = url.split(".")[0] + ".pdf";
+ // const link = document.createElement("a");
+ // link.href = this.javaApi + url;
+ // link.target = "_blank";
+ // document.body.appendChild(link);
+ // link.click();
+ // }
+
+ // if(row.tempUrlPdf) {
+ // const link = document.createElement('a');
+ // link.href = this.javaApi + row.tempUrlPdf;
+ // link.target = '_blank';
+ // document.body.appendChild(link);
+ // link.click();
+ // }
+ this.$axios
+ .get(
+ this.$api.insReport.downReport + "?id=" + row.reportId + "&type=1",
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ responseType: "blob",
+ }
+ )
+ .then((res) => {
+ let fileName = row.tempUrlPdf;
+ if (fileName.includes("_")) {
+ fileName = fileName.split("_")[1];
+ }
+ const blob = new Blob([res], { type: "application/octet-stream" });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement("a");
+ link.href = url;
+ link.download = fileName;
+ document.body.appendChild(link);
+ link.click();
+ });
+ },
+ // 瀹℃牳
+ handleVerify(row) {
+ // this.verifyDialogVisible = true;
+ this.active = 3;
+ this.currentId = row.id;
+ this.examine = 1;
+ },
+ // 鍏ㄩ��
+ handleSelectionAll(val) {
+ if (val.length > 0 && val.length <= this.treeTableData.length) {
+ this.handleSelectionAllRecursion(this.treeTableData, true);
+ console.log("浼犺緭鐨勬暟鎹�", this.revokeData);
+ } else {
+ this.$refs.revokeTable.clearSelection();
+ this.revokeData = [];
+ }
+ },
+ handleSelectionAllRecursion(list, flag) {
+ for (let i = 0; i < list.length; i++) {
+ let item = list[i];
+ this.$refs.revokeTable.toggleRowSelection(item, flag);
+ if (flag) {
+ this.revokeData.push(item);
+ this.revokeData = this.revokeData.filter(
+ (a, index, self) => index === self.findIndex((t) => t.id === a.id)
+ );
+ }
+ if (item.children && item.children.length > 0) {
+ this.handleSelectionAllRecursion(item.children, flag);
+ }
+ }
+ },
+
+ // 閫夋嫨闇�瑕佹挙閿�鐨勬暟鎹�
+ handleSelectionChange(val, row) {
+ console.log("rwo", row);
+ this.revokeData = val;
+ // 杩涜涓�涓�掑綊鎿嶄綔
+ // 鍒ゆ柇鏄惁閫変腑 val鍖呭惈鏃㈡槸閫変腑 涓嶅寘鍚棦鏄彇娑堥�変腑
+ let flag = null;
+ if (val.includes(row)) {
+ flag = true;
+ } else {
+ flag = false;
+ }
+ if (row.children && row.children.length > 0) {
+ this.tableSelect(row, flag);
+ }
+ // 杩樿杩涜涓�涓垽鏂� 濡傛灉鍏ㄩ�変箣鍚庡張鍙栨秷浜嗛�夋嫨锛岄偅涔堢浉搴旂殑sampleId涔熻鍙栨秷
+ this.$nextTick(() => {
+ if (!flag) {
+ this.treeTableData.forEach((item) => {
+ if (item.id == row.sampleId) {
+ this.$refs.revokeTable.toggleRowSelection(item, false);
+ }
+ });
+ // 娓╁害鐐�
+ if (row.number) {
+ this.revokeData = this.revokeData.filter(
+ (a) =>
+ a.inspectionItemSubclass != row.inspectionItemSubclass &&
+ a.inspectionItem != "娓╁害寰幆" &&
+ a.inspectionItemTwo != row.number &&
+ a.id != row.sampleId
+ );
+ console.log("treeTableData", this.treeTableData);
+ this.treeTableData.forEach((item) => {
+ if (item.id == row.sampleId && item.children.length > 0) {
+ item.children.forEach((a) => {
+ if (a.inspectionItem == "娓╁害寰幆") {
+ this.$refs.revokeTable.toggleRowSelection(a, false);
+ if (a.children.length > 0) {
+ a.children.forEach((b) => {
+ if (b.inspectionItemTwo == row.number) {
+ this.$refs.revokeTable.toggleRowSelection(b, false);
+ }
+ });
+ }
+ }
+ });
+ }
+ });
+ } else if (row.temperatureNumber) {
+ // 寰幆娆℃暟
+ this.revokeData = this.revokeData.filter(
+ (a) =>
+ a.inspectionItem != "娓╁害寰幆" &&
+ a.id != row.sampleId &&
+ a.inspectionItemTwo != row.inspectionItemTwo &&
+ a.number != row.inspectionItemTwo
+ );
+ console.log("treeTableData", this.treeTableData);
+ this.treeTableData.forEach((item) => {
+ if (item.id == row.sampleId && item.children.length > 0) {
+ item.children.forEach((a) => {
+ if (a.inspectionItem == "娓╁害寰幆") {
+ this.$refs.revokeTable.toggleRowSelection(a, false);
+ }
+ });
+ }
+ });
+ } else if (row.temperature) {
+ // 濡傛灉鏄俯搴﹀惊鐜�
+ this.revokeData = this.revokeData.filter(
+ (a) =>
+ a.id != row.sampleId &&
+ a.inspectionItem != "娓╁害寰幆" &&
+ a.parentId != row.id
+ );
+ } else {
+ this.revokeData = this.revokeData.filter(
+ (a) => a.id != row.sampleId
+ );
+ }
+ }
+ console.log("鏈�缁堢粨鏋�", this.revokeData);
+ });
+ },
+ // load鐨勯�掑綊璧嬪��
+ loadRecursion(list, treeId, data) {
+ for (let i = 0; i < list.length; i++) {
+ let item = list[i];
+ if (item.id == treeId) {
+ item.children = data;
+ return;
+ }
+ if (item.children && item.children.length > 0) {
+ this.loadRecursion(item.children, treeId, data);
+ }
+ }
+ },
+ // 閫変腑鐨勯�掑綊
+ selectedRecursion(list) {
+ if (list.children && list.children.length > 0) {
+ console.log("鏈夊瓙鑺傜偣", list);
+
+ for (let i = 0; i < list.children.length; i++) {
+ let item = list.children[i];
+ this.$refs.revokeTable.toggleRowSelection(item, true);
+ this.revokeData.push(item);
+ this.revokeData = this.revokeData.filter(
+ (m, index, self) => index === self.findIndex((t) => t.id === m.id)
+ );
+ if (item.children && item.children.length > 0) {
+ this.selectedRecursion(item.children);
+ }
+ }
+ } else {
+ console.log("娌℃湁瀛愯妭鐐�", list);
+ this.$refs.revokeTable.toggleRowSelection(list, true);
+ return;
+ }
+ },
+ // 閫掑綊treeTableData
+ recursionTreeTableData(list, data) {
+ console.log("list", list);
+ // list 閫変腑鐨勬暟鎹� data浠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) {
+ this.$axios
+ .get(
+ this.$api.insOrder.selectTemperatureByProductId +
+ "?productId=" +
+ tree.id
+ )
+ .then((res) => {
+ this.loadRecursion(this.treeTableData, tree.id, res.data);
+ resolve(res.data);
+ this.recursionTreeTableData(this.revokeData, this.treeTableData);
+ treeNode.loading = false;
+ });
+ }
+ // 鏄惁鏄楠屾鏁�
+ else if (tree.temperatureNumber) {
+ this.$axios
+ .get(
+ this.$api.insOrder.selectTemperatureNumberByProductId +
+ "?parentId=" +
+ tree.parentId +
+ "&inspectionItem=" +
+ tree.inspectionItemTwo
+ )
+ .then((res) => {
+ this.loadRecursion(this.treeTableData, tree.id, res.data);
+ resolve(res.data);
+ this.recursionTreeTableData(this.revokeData, this.treeTableData);
+ treeNode.loading = false;
+ });
+ } else {
+ this.$axios
+ .get(
+ this.$api.insOrder.selectProductsBySampleId +
+ "?sampleId=" +
+ tree.id +
+ "&orderId=" +
+ this.orderId
+ )
+ .then((res) => {
+ this.treeTableData.forEach((m, index) => {
+ if (m.sampleId == tree.id) {
+ m.children = res.data;
+ }
+ });
+ resolve(res.data);
+ this.recursionTreeTableData(this.revokeData, this.treeTableData);
+ // // 濡傛灉璇ユ牱鍝佸凡缁忚鍕鹃�� 閭d箞鎵�寰楀埌鐨勬楠岄」涔熻杩涜鍕鹃��
+ // let data = this.revokeData.map((item) => item.id);
+ // if (data.includes(tree.id)) {
+ // this.treeTableData.forEach((m, index) => {
+ // if (m.children) {
+ // m.children.forEach((n, i) => {
+ // if (tree.id == n.sampleId) {
+ // this.$refs.revokeTable.toggleRowSelection(n, true);
+ // }
+ // });
+ // }
+ // });
+ // }
+ treeNode.loading = false;
+ });
+ }
+ } else if (this.deleteTilte == "鎾ら攢瀹℃牳") {
+ // 鏄惁鏄俯搴﹀惊鐜�
+ if (tree.temperature) {
+ this.$axios
+ .get(
+ this.$api.insOrder.revokeReviewTemperatureByProductId +
+ "?productId=" +
+ tree.id
+ )
+ .then((res) => {
+ resolve(res.data);
+ treeNode.loading = false;
+ });
+ }
+ // 鏄惁鏄惊鐜鏁�
+ else if (tree.temperatureNumber) {
+ this.$axios
+ .get(
+ this.$api.insOrder.revokeReviewConsistentByProductId +
+ "?parentId=" +
+ tree.parentId +
+ "&inspectionItem=" +
+ tree.inspectionItemTwo
+ )
+ .then((res) => {
+ resolve(res.data);
+ treeNode.loading = false;
+ });
+ } else {
+ this.$axios
+ .get(
+ this.$api.insOrder.revokeReviewProduct +
+ "?sampleId=" +
+ tree.id +
+ "&orderId=" +
+ this.orderId
+ )
+ .then((res) => {
+ resolve(res.data);
+ treeNode.loading = false;
+ });
+ }
+ }
+ },
+ // 鎾ら攢
+ handlEquash(row) {
+ if (this.tabIndex != 1) {
+ this.quashDialogVisible = true;
+ this.insOrderRow = row;
+ } else {
+ // this.componentDataDelete.entity.orderId = row.id
+ this.orderId = row.id;
+ this.$axios
+ .get(this.$api.insOrder.selectSampleByOrderId + "?orderId=" + row.id)
+ .then((res) => {
+ console.log("res", res);
+ this.treeTableData = res.data;
+ this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+ });
+ this.revocationInsProductIds = "";
+ this.componentDataDelete.showSelect = true;
+ this.componentDataDelete.select = true;
+ this.deleteTilte = "鎾ら攢";
+ this.deleteDialogVisible = true;
+ }
+ },
+ handleCloseDelete() {
+ this.revokeData = [];
+ this.treeTableData = [];
+ this.deleteDialogVisible = false;
+ },
+ selectDelete(arr) {
+ this.deleteList = arr;
+ },
+ submitDelete() {
+ if (this.deleteTilte == "鎾ら攢") {
+ if (this.revokeData.length == 0) {
+ this.$message.error("璇烽�夋嫨瑕佹挙閿�鐨勫叿浣撻」鐩�");
+ return;
+ }
+ //this.printLoading = true;
+ // 濡傛灉鍕鹃�変簡鏍峰搧
+ let productIds = [];
+ let sampleData = this.revokeData.filter(
+ (m) => m.hasChildren && !m.temperatureNumber && !m.temperature
+ );
+ let sampleIds = [];
+ if (sampleData.length > 0) {
+ console.log("閫夋嫨浜嗘牱鍝�", sampleData);
+ sampleIds = sampleData.map((m) => m.id);
+ let newDate = this.revokeData.filter((m) => {
+ return sampleIds.every((id) => m.sampleId != id);
+ });
+ if (newDate) {
+ productIds = newDate.map((m) => m.id);
+ }
+ } else {
+ console.log("閫夋嫨椤圭洰");
+ // 杩囨护鎺夊惊鐜鏁�
+ let data = this.revokeData.filter((item) => !item.ids);
+ // 濡傛灉鍕鹃�夊惊鐜鏁�
+ let data1 = this.revokeData.filter((item) => item.ids);
+ productIds = data.map((m) => m.id);
+ data1.forEach((item) => {
+ if (item.ids.length > 0) {
+ item.ids.forEach((a) => {
+ productIds.push(a);
+ });
+ }
+ });
+ productIds = [...new Set(productIds)];
+ console.log("data", data);
+ console.log("data1", data1);
+ }
+ //
+
+ console.log("sampleId", sampleIds);
+ console.log("productIds", productIds);
+ let data = {
+ orderId: this.orderId,
+ sampleIds: sampleIds,
+ productIds: productIds,
+ };
+ this.$axios
+ .post(this.$api.insOrder.revoke, data, {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ noQs: true,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.deleteDialogVisible = false;
+ this.printLoading = false;
+ this.revokeData = [];
+ this.refreshTable();
+ this.$message.success("鎾ら攢鎴愬姛");
+ }
+ });
+ console.log("revokeData", this.revokeData);
+ console.log("data", data);
+ // let ids = this.deleteList.map((m) => m.id).join(",");
+ // this.printLoading = true;
+ // this.axios
+ // .put(
+ // this.$api.insOrder.updateInspected +
+ // "?ids=" +
+ // ids +
+ // "&orderId=" +
+ // this.orderId
+ // )
+ // .then((res) => {
+ // if (res.code === 200) {
+ // this.printLoading = false;
+ // this.deleteDialogVisible = false;
+ // this.refreshTable("page");
+ // this.$message.success("鏇存柊鎴愬姛");
+ // }
+ // });
+ } else {
+ // this.axios
+ // .post(
+ // this.$api.insOrder.checkUpdate +
+ // "?orderId=" +
+ // this.orderId +
+ // "&state=" +
+ // 1
+ // )
+ // .then((res) => {
+ // if (res.code === 200) {
+ // this.printLoading = false;
+ // this.deleteDialogVisible = false;
+ // this.refreshTable("page");
+ // this.$message.success("鏇存柊鎴愬姛");
+ // }
+ // });
+
+ this.axios
+ .get(this.$api.insOrder.revocationPassed + "?orderId=" + this.orderId)
+ .then((res) => {
+ if (res.code === 200) {
+ this.printLoading = false;
+ this.deleteDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ });
+ }
+ },
+ handlEquashCheck(row) {
+ // // this.componentDataDelete.entity.orderId = row.id
+ // this.orderId = row.id;
+ // this.revocationInsProductIds = row.revocationInsProductIds;
+ // this.componentDataDelete.showSelect = false;
+ // this.componentDataDelete.select = false;
+ // this.deleteTilte = "鎾ら攢瀹℃牳";
+ // this.deleteDialogVisible = true;
+
+ this.orderId = row.id;
+ this.revocationInsProductIds = row.revocationInsProductIds;
+ this.componentDataDelete.showSelect = false;
+ this.componentDataDelete.select = false;
+ this.deleteTilte = "鎾ら攢瀹℃牳";
+ this.$axios
+ .get(this.$api.insOrder.revokeReviewSample + "?orderId=" + row.id)
+ .then((res) => {
+ console.log("鎾ら攢瀹℃牳鏍峰搧鏌ヨ", res);
+ this.treeTableData = res.data;
+ });
+ this.deleteDialogVisible = true;
+ },
+ handleNo() {
+ if (this.deleteTilte == "鎾ら攢") {
+ this.deleteDialogVisible = false;
+ this.revokeData = [];
+ } else {
+ // this.axios
+ // .post(
+ // this.$api.insOrder.checkUpdate +
+ // "?orderId=" +
+ // this.orderId +
+ // "&state=" +
+ // 0
+ // )
+ // .then((res) => {
+ // if (res.code === 200) {
+ // this.printLoading = false;
+ // this.deleteDialogVisible = false;
+ // this.refreshTable("page");
+ // this.$message.success("鏇存柊鎴愬姛");
+ // }
+ // });
+ this.axios
+ .get(this.$api.insOrder.revocationCancel + "?orderId=" + this.orderId)
+ .then((res) => {
+ if (res.code === 200) {
+ this.printLoading = false;
+ this.deleteDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ });
+ }
+ },
+ // 涓嬪彂
+ handleIssued(row) {
+ this.issuedDialogVisible = true;
+ this.$axios
+ .post(this.$api.insOrder.selectOrderManDay, {
+ id: row.id,
+ })
+ .then((res) => {
+ this.distributeData.orderId = row.id;
+ this.distributeData.sampleId = row.sampleId;
+ this.distributeData.appointed = res.data;
+ this.distributeData.type = row.type;
+ });
+ this.$axios
+ .post(this.$api.insOrderPlan.upPlanUser2, {
+ orderId: row.id,
+ })
+ .then((res) => {
+ if (res.code === 200 && res.data.length > 0) {
+ this.sonLaboratoryList = [];
+ res.data.forEach((m) => {
+ this.sonLaboratoryList.push({
+ value: m,
+ label: m,
+ });
+ });
+ }
+ });
+ },
+ submitForm2() {
+ if (
+ this.distributeData.appointed == null ||
+ this.distributeData.appointed == ""
+ ) {
+ this.$message.error("绾﹀畾鏃堕棿鏈~鍐�");
+ return;
+ }
+ //
+ if (
+ this.distributeData.type == 2 &&
+ (this.distributeData.userId == null || this.distributeData.userId == "")
+ ) {
+ this.$message.error("鎸囨淳浜哄憳鏈~鍐�");
+ return;
+ }
+ if (
+ this.distributeData.userId &&
+ (this.distributeData.sonLaboratory == null ||
+ this.distributeData.sonLaboratory == "")
+ ) {
+ this.$message.error("璇曢獙瀹ゆ湭濉啓");
+ return;
+ }
+ this.upLoad = true;
+ this.$axios
+ .post(
+ this.$api.insOrder.upInsOrder,
+ {
+ orderId: this.distributeData.orderId,
+ sampleId: this.distributeData.sampleId,
+ appointed: this.distributeData.appointed,
+ userIdList: [this.distributeData.userId],
+ sonLaboratory: this.distributeData.sonLaboratory,
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ if (res.code === 201) {
+ this.upLoad = false;
+ return;
+ }
+ this.$message.success("淇敼鎴愬姛");
+ this.upLoad = false;
+ this.issuedDialogVisible = false;
+ this.refreshTable();
+ })
+ .catch((e) => {
+ this.$message.error("淇敼澶辫触");
+ this.upLoad = false;
+ });
+ },
+ submitForm() {
+ this.upLoad = true;
+ if (this.tabIndex == 1) {
+ this.axios
+ .put(
+ this.$api.insOrder.updateInspected + "?id=" + this.insOrderRow.id
+ )
+ .then((res) => {
+ if (res.code === 200) {
+ this.upLoad = false;
+ this.quashDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ });
+ } else {
+ this.axios
+ .put(this.$api.insOrder.updateStatus + "?id=" + this.insOrderRow.id)
+ .then((res) => {
+ if (res.code === 200) {
+ this.upLoad = false;
+ this.quashDialogVisible = false;
+ this.refreshTable();
+ this.$message.success("鏇存柊鎴愬姛");
+ }
+ });
+ }
+ let authorizedPerson =
+ this.formData.authorizedPerson.length > 0
+ ? this.formData.authorizedPerson.join(",")
+ : "";
+ delete this.formData.createTime;
+ delete this.formData.updateTime;
+ delete this.formData.createUser;
+ delete this.formData.updateUser;
+ this.formData.authorizedPerson = authorizedPerson;
+ },
+ // 涓嬪崟
+ playOrder(num) {
+ this.$router.push({
+ name: "addOrder",
+ params: {},
+ });
+ this.active = num;
+ this.examine = 0;
+ // this.refreshTable();
+ },
+ handleTab(m, i) {
+ this.tabIndex = i;
+ this.queryParams.state = m.value;
+ this.getList();
+ },
+ getUserMenu() {
+ this.$axios.get(this.$api.user.getUserMenu).then((res) => {
+ let data = [];
+ res.data.forEach((a) => {
+ data.push({
+ label: a.name,
+ value: a.id,
+ });
+ });
+ this.componentData.tagField.createUser.select = data;
+ });
+ },
+ getInsStateDicts() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "妫�楠屼换鍔$姸鎬�",
+ })
+ .then((res) => {
+ let data = res.data;
+ this.insStateList = data;
+ data.forEach((ele) => {
+ //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
+ if (["2", "5"].includes(ele.value)) {
+ ele.type = "success";
+ } else if (["1", "3"].includes(ele.value)) {
+ ele.type = "warning";
+ } else if (["0", "4"].includes(ele.value)) {
+ ele.type = "danger";
+ }
+ });
+ this.componentDataDataLook.tagField.insState.select = data;
+ this.componentDataDelete.tagField.insState.select = data;
+ });
+ },
+ selectEnumByCategoryForOrderType() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "妫�楠岀被鍒�",
+ })
+ .then((res) => {
+ this.componentData.tagField.orderType.select = res.data;
+ });
+ },
+ changeUser() {
+ if (this.sonLaboratoryList.length > 0) {
+ this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
+ }
},
},
};
@@ -1281,7 +2135,7 @@
.search {
background-color: #fff;
- height: 80px;
+ height: 50px;
display: flex;
align-items: center;
overflow: hidden;
@@ -1315,7 +2169,8 @@
.tab {
list-style-type: none;
display: flex;
- margin-bottom: 12px;
+ /* margin-bottom: 12px; */
+ padding-inline-start: 0px;
}
.tab li {
@@ -1343,10 +2198,12 @@
.el-form-item {
margin-bottom: 16px;
}
-.box-card >>> .el-radio__inner {
+
+.box-card>>>.el-radio__inner {
border-radius: 2px !important;
}
-.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.box-card>>>.el-radio__input.is-checked .el-radio__inner::after {
content: "";
width: 8px;
height: 3px;
@@ -1362,13 +2219,16 @@
border-radius: 0px;
background: none;
}
->>> .el-radio__label {
+
+>>>.el-radio__label {
color: #000 !important;
}
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
font-size: 8px;
}
-.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after {
content: "";
width: 4px;
height: 3px;
@@ -1384,31 +2244,40 @@
border-radius: 0px;
background: none;
}
->>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+
+>>>.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 {
+
+.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
background: transparent;
}
-.el-dialog__body >>> .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__inner {
width: 8px !important;
height: 8px !important;
}
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
padding-left: 2px !important;
}
-.el-dialog__body >>> .el-card__body {
+
+.el-dialog__body>>>.el-card__body {
padding: 0 !important;
}
-.el-dialog__body >>> .el-card {
+
+.el-dialog__body>>>.el-card {
border: none;
}
-.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
+
+.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 {
+
+.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
border: none !important;
}
+
.scor {
width: 0.01cm;
height: 0.01cm;
@@ -1416,6 +2285,7 @@
border: 1px solid #000;
display: inline-block;
}
+
.ellipsis-multiline {
display: -webkit-box;
-webkit-line-clamp: 2;
@@ -1423,14 +2293,19 @@
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
- max-height: 3em; /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
- line-height: 1.5em; /* 琛岄珮 */
- height: 3em; /* 楂樺害涓鸿楂樼殑涓ゅ�� */
+ 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;
--
Gitblit v1.9.3