From 4cf74834fe5ac6229035b72312b75958495e60d3 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期二, 19 八月 2025 15:35:08 +0800
Subject: [PATCH] 1
---
src/views/sampling/sampling/index.vue | 671 +++++++++++++++++++++++++++----------------------------
1 files changed, 330 insertions(+), 341 deletions(-)
diff --git a/src/views/sampling/sampling/index.vue b/src/views/sampling/sampling/index.vue
index ab8a88c..57d952b 100644
--- a/src/views/sampling/sampling/index.vue
+++ b/src/views/sampling/sampling/index.vue
@@ -1,52 +1,30 @@
<template>
<div class="app-container">
- <el-form
- :model="queryParams"
- ref="queryForm"
- size="small"
- :inline="true"
- v-show="showSearch"
- label-width="68px"
- >
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="浣撴鍙�" prop="tjNumber">
- <el-input
- ref="inputName"
- v-model="queryParams.tjNumber"
- placeholder="璇疯緭鍏ヤ綋妫�鍙�"
- clearable
- @keyup.enter.native="handleQuery"
- @blur="hb"
- style="width: 170px"
- />
+ <el-input ref="inputName" v-model="queryParams.tjNumber" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable
+ @keyup.enter.native="handleQuery" @blur="hb" style="width: 170px" />
</el-form-item>
<el-form-item label="濮撳悕" prop="name">
- <el-input
- v-model="queryParams.name"
- placeholder="璇疯緭鍏ュ鍚�"
- clearable
- @keyup.enter.native="handleQuery"
- style="width: 110px"
- />
+ <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" clearable @keyup.enter.native="handleQuery"
+ style="width: 110px" />
</el-form-item>
<el-form-item label="鐢宠鏃堕棿" prop="applicationTime">
- <el-date-picker
- v-model="createTimeList"
- @change="dateChangebirthday1"
- :default-time="['00:00:00', '23:00:00']"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- :picker-options="pickerOptions"
- ></el-date-picker>
+ <el-date-picker v-model="createTimeList" @change="dateChangebirthday1" :default-time="['00:00:00', '23:00:00']"
+ format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" :picker-options="pickerOptions"></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍗曚綅鍚嶇О" prop="compName" style="margin-left: 20px; margin-right: 500px">
+ <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
+ style="width: 200px" remote filterable placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" clearable @change="searchSelect">
+ <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
+ </el-select>
</el-form-item>
<!-- <el-form-item label="鏄惁閲囨牱" prop="isSignFor">
- <el-select style="width:100px" v-model="queryParams.isSignFor" placeholder="鏄惁閲囨牱">
+ <el-select1 style="width:100px" v-model="queryParams.isSignFor" placeholder="鏄惁閲囨牱">
<el-option v-for="dict in dict.type.sampling_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
- </el-select>
+ </el-select1>
</el-form-item> -->
<!-- <el-form-item label="浣撴鏃堕棿" prop="tjTime">
<el-date-picker clearable v-model="queryParams.tjTime" type="date" value-format="yyyy-MM-dd"
@@ -60,13 +38,7 @@
<el-input v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable @keyup.enter.native="handleQuery" style="width: 140px;"/>
</el-form-item> -->
<el-form-item>
- <el-button
- type="primary"
- icon="el-icon-search"
- size="mini"
- @click="handleQuery"
- >鏌ヨ</el-button
- >
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌ヨ</el-button>
<!-- <el-button
type="primary"
icon="el-icon-thumb"
@@ -74,31 +46,17 @@
@click="Confirmreceipt"
>纭閲囨牱</el-button
> -->
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
- >閲嶇疆</el-button
- >
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="10">
- <el-radio-group
- v-model="tjStatus"
- @input="radioChange"
- style="margin: 10px 15px"
- >
- <el-radio-button label="1" :disabled="qiehuan && disabledId === 0"
- >鏈噰鏍�</el-radio-button
- >
- <el-radio-button label="0" :disabled="qiehuan && disabledId === 1"
- >宸查噰鏍�</el-radio-button
- >
+ <el-radio-group v-model="tjStatus" @input="radioChange" style="margin: 10px 15px">
+ <el-radio-button label="1" :disabled="qiehuan && disabledId === 0">鏈噰鏍�</el-radio-button>
+ <el-radio-button label="0" :disabled="qiehuan && disabledId === 1">宸查噰鏍�</el-radio-button>
</el-radio-group>
</el-col>
- <el-col
- :span="12"
- style="margin: 10px 15px"
- v-if="samplingList.length > 0 && tjStatus == 1"
- >
+ <el-col :span="12" style="margin: 10px 15px" v-if="samplingList.length > 0 && tjStatus == 1">
<el-button type="primary" @click="Merging">鍚堝苟椤圭洰</el-button>
<!-- <el-button
type="primary"
@@ -108,62 +66,27 @@
@click="Confirmreceipt"
>纭閲囨牱</el-button
> -->
- <el-button type="primary" :disabled="!disabled" @click="Cancellation"
- >鎾ら攢鍚堝苟</el-button
- >
- <el-button
- type="primary"
- @click="Confirmreceipt"
- :disabled="!selectList.length"
- >閲囨牱鎵撶爜</el-button
- >
+ <el-button type="primary" :disabled="!disabled" @click="Cancellation">鎾ら攢鍚堝苟</el-button>
+ <el-button type="primary" @click="Confirmreceipt" :disabled="!selectList.length">閲囨牱鎵撶爜</el-button>
+ <el-button type="primary" @click="piliangPrint" :disabled="!isAllSelected">鎵归噺鎵撳嵃</el-button>
+
</el-col>
- <el-col
- :span="12"
- style="margin: 10px 15px"
- v-show="samplingList.length > 0 && tjStatus == 0"
- >
- <el-button type="primary" :disabled="!selectList.length" @click="buda"
- >琛ユ墦鏉$爜</el-button
- >
+ <el-col :span="12" style="margin: 10px 15px" v-show="samplingList.length > 0 && tjStatus == 0">
+ <el-button type="primary" :disabled="!selectList.length" @click="buda">琛ユ墦鏉$爜</el-button>
<!-- @click="Collection" -->
- <el-button type="primary" :disabled="!disabled" @click="Cancellation"
- >鎾ら攢鍚堝苟</el-button
- >
+ <el-button type="primary" :disabled="!disabled" @click="Cancellation">鎾ら攢鍚堝苟</el-button>
+ <el-button type="primary" @click="jydPrint">鎵撳嵃妫�楠屽崟</el-button>
</el-col>
</el-row>
<div style="width: 100%; margin-left: 10px; display: flex">
<div style="width: 40%; margin-right: 20px">
- <el-table
- id="ta"
- v-loading="loading1"
- ref="tb"
- :data="samplingList"
- @selection-change="handleSelectionChange"
- border
- height="520px"
- :row-class-name="tableRowClassName"
- >
- <el-table-column type="selection" width="40" align="center" />
- <el-table-column
- label="浣撴鍙�"
- align="center"
- prop="tjNumber"
- width="160px"
- />
- <el-table-column
- label="濮撳悕"
- align="center"
- prop="cusName"
- width="80px"
- />
- <el-table-column
- label="鎬у埆"
- align="center"
- prop="cusSex"
- width="60px"
- >
+ <el-table id="ta" v-loading="loading1" ref="tb" :data="samplingList" @selection-change="handleSelectionChange"
+ @current-change="handleCurrentChangess" border height="520px" :row-class-name="tableRowClassName">
+ <el-table-column type="selection" width="40" align="center" :selectable="selectable" />
+ <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" width="160px" />
+ <el-table-column label="濮撳悕" align="center" prop="cusName" width="80px" />
+ <el-table-column label="鎬у埆" align="center" prop="cusSex" width="60px">
<!-- <template slot-scope="scope">
{{ scope.row.customer.cusSex === 0 ? "鐢�" : "濂�" }}
</template> -->
@@ -173,18 +96,9 @@
<span v-if="scope.row.cusSex == '2'">鏈煡</span>
</template>
</el-table-column>
- <el-table-column
- label="鎵嬫満鍙�"
- align="center"
- prop="cusPhone"
- width="120px"
- />
- <el-table-column
- label="鐢宠鏃堕棿"
- align="center"
- prop="applicationTime"
- width="210"
- >
+ <el-table-column label="鎵嬫満鍙�" align="center" prop="cusPhone" width="120px" />
+ <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="compName" width="120px" />
+ <el-table-column label="鐢宠鏃堕棿" align="center" prop="applicationTime" width="210">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applicationTime) }}</span>
</template>
@@ -193,16 +107,9 @@
</div>
<div style="width: 50%">
<!-- v-if="this.rightTabShow" -->
- <el-table
- v-loading="loading"
- :data="tableList"
- @selection-change="handleChange"
- :span-method="objectSpanMethod"
- ref="tab1"
- :row-class-name="tableRowClassName"
- border
- height="520px"
- >
+ <el-table :key="tableKey" :row-key="getRowKey" v-if="tableList.length > 0" v-loading="loading" :data="tableList"
+ @selection-change="handleChange" :span-method="objectSpanMethod" ref="tab1"
+ :row-class-name="tableRowClassName" border height="520px">
<el-table-column type="selection" width="40" align="center" />
<!-- :selectable="selectEnable" -->
<!-- <el-table-column label="鏄惁绛炬敹" align="center" prop="isSignFor" /> -->
@@ -211,20 +118,9 @@
<span>{{ parseTime(scope.row.tjTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column> -->
- <el-table-column
- label="鏍囨湰绫诲瀷"
- align="center"
- prop="specimenType"
- width="120"
- >
+ <el-table-column label="鏍囨湰绫诲瀷" align="center" prop="specimenType" width="120">
</el-table-column>
- <el-table-column
- label="閲囨牱缂栧彿"
- align="center"
- prop="jyxh"
- :show-overflow-tooltip="true"
- width="120"
- />
+ <el-table-column label="閲囨牱缂栧彿" align="center" prop="jyxh" :show-overflow-tooltip="true" width="120" />
<el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" />
<!-- <el-table-column
label="鎬у埆"
@@ -232,16 +128,9 @@
prop="proSex"
width="90"
/> -->
- <el-table-column
- label="鏄惁鍚堝苟"
- align="center"
- prop="isMerge"
- width="90"
- >
+ <el-table-column label="鏄惁鍚堝苟" align="center" prop="isMerge" width="90">
<template slot-scope="scope">
- <span
- :style="{ color: scope.row.isMerge === 0 ? '' : '#409EFF' }"
- >
+ <span :style="{ color: scope.row.isMerge === 0 ? '' : '#409EFF' }">
{{ scope.row.isMerge === 0 ? "鏈悎骞�" : "宸插悎骞�" }}
</span>
</template>
@@ -311,17 +200,12 @@
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div> -->
- <div style="margin-right: 70%">
+ <div style="margin-right: 63%">
<!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :pager-count="5" :current-page.sync="currentPage1" :current-page="page"
:page-sizes="pageSize" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination> -->
- <pagination
- v-show="total > 0"
- :total="total"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getList"
- />
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+ @pagination="getList" />
</div>
@@ -345,7 +229,12 @@
} from "@/api/sampling/sampling";
import { getNewDateList } from "@/api/hosp/order";
import moment from "moment";
-
+import {
+ SubmitCompany,
+ getCompany,
+ queryCompany,
+ addbatch,
+} from "@/api/team/tuanti";
export default {
dicts: [
"sys_user_sex",
@@ -357,6 +246,10 @@
name: "Sampling",
data() {
return {
+ CheckBox: {},
+
+ CompanyList: [],
+ piliangList: [],
msg: "",
getNumbr: null,
valueUrl: "ws://127.0.0.1:6789/websocket",
@@ -407,7 +300,9 @@
proId: null,
proName: null,
},
+ tjNumber: null,
startTime: "",
+ tableKey: "",
pickerOptions: {
shortcuts: [
{
@@ -444,13 +339,19 @@
// 琛ㄥ崟鏍¢獙
rules: {},
// rightTabShow: false
+ allSelected: false,
+ disableSelections: false, // 鎺у埗閫夋嫨绂佺敤鐘舵��
};
},
created() {
// this.getNowTime();
getTxmmccd().then((res) => {
this.msg = Number(res.msg);
- console.log(res, 444);
+ });
+ getCompany(this.queryParams).then((response) => {
+ this.CompanyList = response.data;
+
+ this.loading = false;
});
this.getdate();
},
@@ -472,9 +373,102 @@
disabledId() {
return this.tjStatus == "1" ? 1 : 0;
},
+ isAllSelected() {
+ return this.samplingList.length > 0 && this.selectedRows.length === this.samplingList.length;
+ },
},
methods: {
+ // 閫夋鏁版嵁
+ searchSelect(val) {
+ this.CheckBox = val;
+ this.queryParams.dw = this.CheckBox.drugManufacturerId;
+ },
+ getRemoteData(query) {
+ if (query) {
+ let compName = query;
+ queryCompany(compName).then((response) => {
+ this.CompanyList = response.data;
+ this.CompanyList.forEach((item) => {
+ this.queryParams = item;
+ });
+ });
+ }
+ },
+ async piliangPrint() {
+ // 妫�鏌ユ槸鍚︽湁閫変腑鐨勬暟鎹�
+ if (this.piliangList.length === 0) {
+ this.$message.warning('璇峰厛閫夋嫨瑕佹墦鍗扮殑鏁版嵁');
+ return;
+ }
+
+ const loadingInstance = this.$loading({
+ lock: true,
+ text: '鎵撳嵃涓�...',
+ spinner: 'el-icon-loading',
+ background: 'rgba(255, 255, 255, 0.7)'
+ });
+
+ try {
+ for (const item of this.piliangList) {
+ try {
+ // 鑾峰彇鏁版嵁锛屽苟绛夊緟鏁版嵁鏇存柊瀹屾垚
+ const tableList = await this.fetchData(item.tjNumber);
+
+ // 妫�鏌� tableList 鏄惁鏈夋暟鎹�
+ if (!tableList || tableList.length === 0) {
+ console.error(`浣撴鍙� ${item.tjNumber} 鏃犵浉鍏虫暟鎹甡);
+ continue;
+ }
+
+ // 鐩存帴浣跨敤鎵�鏈夋暟鎹�
+ this.selectList = tableList;
+
+ // 妫�鏌� selectList 鏄惁鏈夋暟鎹�
+ if (this.selectList.length === 0) {
+ console.error(`浣撴鍙� ${item.tjNumber} 鐨� selectList 涓虹┖锛岃烦杩� WebSocket 鎿嶄綔`);
+ continue;
+ }
+
+ // 浣跨敤鏇存柊鍚庣殑 tableList 鑾峰彇 ids
+ let ids = this.selectList.map(row => row.id);
+ if (ids.length === 0) {
+ console.error(`浣撴鍙� ${item.tjNumber} 鏃犳湁鏁� ID`);
+ continue;
+ }
+
+ // 纭閲囨牱
+ await this.Confirmreceipt1(ids);
+
+ // 绛夊緟涓�娈垫椂闂�
+ await new Promise(resolve => setTimeout(resolve, 5000));
+ } catch (error) {
+ console.error(`澶勭悊浣撴鍙� ${item.tjNumber} 鏃跺嚭閿�:`, error);
+ }
+ }
+ } finally {
+ this.ids = []; // 娓呯┖ ids
+ this.selectList = []; // 娓呯┖ selectList
+ loadingInstance.close();
+ }
+ },
+
+
+ jydPrint() {
+ if (this.piliangList.length != 0) {
+ const tjnumber = this.piliangList[0].tjNumber;
+ const viewNum = "1086792376946569216";
+ const params = { viewNum, tjnumber };
+ this.$tab.openPage("妫�楠岀瀵兼鍗�", "/report/clinical", params);
+ this.$refs.tb.toggleRowSelection(this.piliangList[0], false);
+ this.piliangList = []
+ } else {
+ this.$message.info('璇烽噸鏂伴�夋嫨瑕佹墦鍗扮殑鏁版嵁');
+ this.$refs.tb.toggleRowSelection(this.piliangList[0], false);
+ this.piliangList = []
+ }
+
+ },
getTruncatedName(proName) {
// 鍘绘帀鎵�鏈夌┖鏍�
const trimmedProName = proName.replace(/\s+/g, "");
@@ -558,73 +552,41 @@
return ""; // 濡傛灉 applicationTime 鏃犳晥锛岃繑鍥炵┖瀛楃涓�
},
/** 鏌ヨ浣撴閲囨牱绠$悊鍒楄〃 */
+ /** 鏌ヨ浣撴閲囨牱绠$悊鍒楄〃 */
getList() {
+ this.queryParams.compId = this.CheckBox.drugManufacturerId;
this.loading1 = true;
this.queryParams.isSignFor = this.tjStatus;
if (this.createTimeList) {
this.queryParams.beginTime = this.createTimeList[0];
this.queryParams.endTime = this.createTimeList[1];
- } else if (this.createTimeList == null) {
+ } else {
this.queryParams.beginTime = null;
this.queryParams.endTime = null;
}
+
getList(this.queryParams).then((response) => {
this.loading1 = false;
- if (response.data) {
- if (!response.data.list || response.data.list.length === 0) {
- this.samplingList = [];
- this.tableList = [];
- this.loading1 = false;
- this.loading = false;
- return;
- } else {
- this.samplingList = response.data.list;
- // console.log(this.samplingList, 888);
- // 鍒ゆ柇鏄惁闇�瑕佸埛鏂板彸杈硅〃鏍�
- this.$nextTick(() => {
- this.$refs.tb.toggleRowSelection(this.samplingList[0], true);
- // this.fetchData(this.samplingList[0].tjNumber);
- // ddddddddddddddd
- // this.rightTabShow = true
- });
- }
+ if (response.data && response.data.list && response.data.list.length > 0) {
+ this.samplingList = response.data.list;
this.total = response.data.total;
- this.loading1 = false;
+ // 绉婚櫎榛樿閫変腑绗竴琛岀殑閫昏緫
+ // this.$nextTick(() => {
+ // this.$refs.tb.toggleRowSelection(this.samplingList[0], true); // 榛樿閫変腑绗竴琛�
+ // this.fetchData(this.samplingList[0].tjNumber); // 鍒锋柊鍙充晶琛ㄦ牸
+ // });
} else {
this.samplingList = [];
this.tableList = [];
- this.loading1 = false;
+ this.selectList = []; // 娓呯┖ selectList
+ this.ids = []; // 娓呯┖ ids
+ if (this.$refs.tab1) {
+ this.$refs.tab1.clearSelection(); // 娓呯┖鍙充晶琛ㄦ牸閫変腑鐘舵��
+ }
}
+ this.loading1 = false;
});
-
- /* getList(this.queryParams).then((response) => {
- if (response.data) {
- if (response.data.list == null) {
- this.samplingList = [];
- this.tableList = [];
- this.loading = false;
- } else {
- this.samplingList = response.data.list;
- console.log(this.samplingList,888);
-
- this.loading = false;
- if (this.samplingList.length != 0) {
- this.$nextTick(() => {
- this.$refs.tb.toggleRowSelection(this.samplingList[0], true);
- });
- } else {
- this.$refs.tb.clearSelection();
- }
- }
- this.total = response.data.total;
- this.loading = false;
- } else {
- this.samplingList = [];
- this.tableList = [];
- this.loading = false;
- }
- }); */
},
// 鍙栨秷鎸夐挳
cancel() {
@@ -662,79 +624,113 @@
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
- this.createTimeList = [];
- this.handleQuery();
- },
- // 鍗曢�夋閫変腑鏁版嵁
- /* handleSelectionChange(selection) {
- this.selectList = selection;
- selection.forEach((element) => {
- this.tableList = element.list;
- console.log(this.tableList, 111);
-
- if (this.tableList.length != 0) {
- this.$nextTick(() => {
- this.$refs.tab1.toggleAllSelection(this.tableList, true);
- });
- } else {
- this.$refs.tab1.clearSelection();
- }
- });
- // this.ids = selection.map(item => item.id)
- if (selection.length > 1) {
- let del_row = selection.shift();
- this.$refs.tb.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑
+ this.createTimeList = []; // 娓呯┖鏃ユ湡鑼冨洿
+ this.queryParams.tjNumber = null; // 娓呯┖浣撴鍙�
+ this.queryParams.name = null; // 娓呯┖濮撳悕
+ this.queryParams.tjCompName = null; // 娓呯┖鍗曚綅鍚嶇О
+ this.selectList = []; // 娓呯┖鍙充晶閫変腑椤�
+ this.selectedRows = []; // 娓呯┖宸︿晶閫変腑椤�
+ this.tableList = []; // 娓呯┖鍙充晶琛ㄦ牸鏁版嵁
+ this.ids = []; // 娓呯┖閫変腑鐨� ID
+ this.$refs.tb.clearSelection(); // 娓呯┖宸︿晶琛ㄦ牸閫変腑鐘舵��
+ if (this.$refs.tab1) {
+ this.$refs.tab1.clearSelection(); // 娓呯┖鍙充晶琛ㄦ牸閫変腑鐘舵��
}
- this.single = selection.length !== 1;
- this.multiple = !selection.length;
- }, */
+ this.handleQuery(); // 閲嶆柊鏌ヨ
+ },
+ handleCurrentChangess(val) {
+ if (val != null) {
+ this.$refs.tb.toggleRowSelection(val, true);
+ this.handleSelectionChange(val);
+ }
+ },
handleSelectionChange(selection) {
- // 娓呯┖鍙充晶琛ㄦ牸鐨勬暟鎹�
- this.tableList = [];
- // 鍙湁涓�涓汉琚�変腑鏃惰繘琛屾搷浣�
- if (selection.length === 1) {
- const selectedPerson = selection[0]; // 鑾峰彇閫変腑鐨勯偅涓汉
+ const selectedCount = selection.length;
+ const totalCount = this.samplingList.length;
+
+ // 濡傛灉鍙湁涓�鏉℃暟鎹紝涓嶈绂佺敤閫夋嫨锛屽苟灞曠ず鍙充晶鍒楄〃
+ if (selectedCount === 1) {
+ this.disableSelections = false;
+ const selectedPerson = selection[0];
+ this.piliangList = selection;
const tjNumber = selectedPerson.tjNumber;
- console.log(selectedPerson.tjNumber, 6363);
-
+ console.log(`閫変腑鐨勪綋妫�鍙�: ${tjNumber}`);
this.fetchData(tjNumber);
+ } else if (selectedCount === totalCount && selectedCount > 1) {
+ // 鍏ㄩ�夋椂绂佺敤閫夋嫨鏂拌
+ this.disableSelections = true;
+ this.tableList = [];
+ this.$message.info('宸插叏閫夋墍鏈夎');
} else {
- // 濡傛灉閫変腑澶氫汉锛屽垯鍙栨秷閫変腑
- if (selection.length > 1) {
+ // 闈炲叏閫夋椂鍚敤閫夋嫨
+ this.disableSelections = false;
+ if (selectedCount > 1) {
+ // 淇濈暀鍗曢�夊姛鑳斤紝鍙栨秷澶氶��
let del_row = selection.shift();
- this.$refs.tb.toggleRowSelection(del_row, false); // 璁剧疆杩欎竴琛屽彇娑堥�変腑
+ this.$refs.tb.toggleRowSelection(del_row, false);
}
}
- // 鏇存柊閫夋嫨鐘舵��
- this.single = selection.length === 1;
- this.multiple = selection.length === 0;
+ if (selectedCount === 0) {
+ this.tableList = [];
+ }
+ // 鏇存柊鍗曢�夊拰澶氶�夌姸鎬�
+ this.single = selectedCount === 1;
+ this.multiple = selectedCount === 0;
+
+ // 鏇存柊閫変腑鐨勮
this.selectedRows = selection;
+
+ // 璋冭瘯鏃ュ織
+ console.log(`褰撳墠閫変腑鏁伴噺: ${selectedCount}`);
+ console.log(`鏄惁绂佺敤閫夋嫨: ${this.disableSelections}`);
+
+ },
+
+ getRowKey(row) {
+ return row.id; // 蹇呴』鍞竴涓旂ǔ瀹�
},
fetchData(tjNumber) {
- this.loading = true; // 鏄剧ず鍔犺浇鐘舵��
+ return new Promise((resolve, reject) => {
+ this.loading = true;
+ getCusCyList(tjNumber, this.tjStatus)
+ .then((response) => {
+ if (response.data) {
+ this.tableList = response.data;
+ this.tableKey = Date.now()
+ this.$nextTick(() => {
+ if (this.$refs.tab1) {
+ this.$refs.tab1.doLayout(); // 淇敼涓烘纭殑 ref 鍚嶇О
+ this.$refs.tab1.clearSelection(); // 娓呯┖閫変腑鐘舵��
+ const headerCheckbox = this.$refs.tab1.$el.querySelector('.el-table__header .el-checkbox');
+ if (headerCheckbox) headerCheckbox.style.display = 'inline';
- getCusCyList(tjNumber, this.tjStatus) // 璋冪敤API鑾峰彇鏁版嵁
- .then((response) => {
- if (response.data) {
- console.log(response, 2525);
-
- this.tableList = response.data; // 纭 list 瀛樺湪鍚庡啀杩涜璧嬪��
- } else {
- // 濡傛灉娌℃湁鏁版嵁鎴� list 涓虹┖锛屾竻绌鸿〃鏍煎苟鎻愮ず
- this.tableList = [];
- }
- })
- .catch((error) => {
- console.error("Error fetching data:", error);
- })
- .finally(() => {
- this.loading = false; // 闅愯棌鍔犺浇鐘舵��
- });
+ }
+ });
+ resolve(this.tableList);
+ this.loading = false;
+ } else {
+ this.tableList = [];
+ this.selectList = [];
+ this.ids = [];
+ if (this.$refs.tab1) {
+ this.$refs.tab1.clearSelection();
+ }
+ resolve([]);
+ }
+ })
+ .catch((error) => {
+ console.error("Error fetching data:", error);
+ reject(error);
+ })
+ .finally(() => {
+ this.loading = false;
+ });
+ });
},
/* 鐐瑰嚮鍚堝苟鎸夐挳 */
@@ -944,12 +940,8 @@
},
handleChange(selection) {
- // console.log(selection);
-
this.selectList = selection;
- console.log(this.selectList, 9977);
var array = selection;
-
this.ids = array.map((item) => item.id);
},
buda() {
@@ -968,6 +960,7 @@
};
websocket.onopen = () => {
this.websocket = websocket;
+ console.log(this.selectList, "this.selectList")
this.dayinData = this.selectList.map((item) => ({
jyxh: item.jyxh,
proName: item.proName,
@@ -977,7 +970,7 @@
cardId: item.cardId,
tjTime: item.createTime,
}));
- console.log(this.dayinData, 2222);
+
// 杩炴帴璁惧
this.jsonObj = {
@@ -987,86 +980,60 @@
},
};
var jStr = JSON.stringify(this.jsonObj);
+ console.log(jStr, "jStr");
+
this.websocket.send(jStr);
+ this.$refs.tab1.clearSelection(); // 娓呴櫎鍙充晶琛ㄦ牸鐨勯�変腑鐘舵��
+ this.selectList = []; // 娓呯┖ selectList
+ this.ids = []; // 娓呯┖ ids
this.jsonObj = {};
// this.dialogVisible = false;
};
// this.getList();
},
-
// 纭閲囨牱
Confirmreceipt() {
const loadingInstance = this.$loading({
- lock: true, // 閿佸畾灞忓箷
- text: "鍔犺浇涓�...", // 鍔犺浇鏂囨湰
- spinner: "el-icon-loading", // 鑷畾涔夊姞杞藉浘鏍�
- background: "rgba(255, 255, 255, 0.7)", // 鑳屾櫙棰滆壊
+ lock: true,
+ text: "鍔犺浇涓�...",
+ spinner: "el-icon-loading",
+ background: "rgba(255, 255, 255, 0.7)",
});
confirmSampling(this.ids)
.then((res) => {
- console.log(this.selectList, 2222);
-
if (res.code === 200) {
- // var websocket = null;
- this.buda();
+ this.buda(); // 鎵撳嵃鏉$爜
- /* var url = this.valueUrl;
- if ("WebSocket" in window) {
- websocket = new WebSocket(url);
- } else if ("MozWebSocket" in window) {
- websocket = new MozWebSocket(url);
- }
- if (websocket == null) {
- alert("鍒涘缓WebSocket瀵硅薄澶辫触");
- }
- websocket.onerror = function () {
- alert("璇锋鏌ヨ鍗″櫒杩炴帴鏄惁姝e父");
- };
- websocket.onopen = () => {
- this.websocket = websocket;
- var list = this.selectList;
- var data = list.map((item) => ({
- jyxh: item.jyxh,
- proName: item.proName,
- cusName: item.cusName,
- cusSex: item.customer.cusSex,
- age: item.customer.age,
- cardId: item.cardId,
- tjTime: item.createTime,
- }));
-
- // 杩炴帴璁惧
- var jsonObj = {
- type: "3",
- array: {
- data: data,
- },
- };
- var jStr = JSON.stringify(jsonObj);
- this.websocket.send(jStr);
- var jsonObj = {};
- this.dialogVisible = false;
- };
- websocket.onmessage = (event) => {
- var resultObj = eval("(" + event.data + ")");
- console.log(resultObj, 9988);
- }; */
-
- // this.Collection();
- this.getList();
+ this.getList(); // 鍒锋柊宸︿晶琛ㄦ牸
+ console.log("閲囨牱鍚� - selectList:", this.selectList, "qiehuan:", this.qiehuan);
} else {
this.$message.error(res.msg);
}
- // this.getList();
})
.catch((error) => {
- // this.$message.error("閲囨牱澶辫触");
+ console.error("閲囨牱澶辫触:", error);
})
.finally(() => {
loadingInstance.close();
});
},
-
+ Confirmreceipt1(ids) {
+ confirmSampling(ids)
+ .then((res) => {
+ if (res.code === 200) {
+ this.buda();
+ this.getList();
+ } else {
+ this.$message.error(res.msg);
+ }
+ })
+ .catch((error) => {
+ })
+ .finally(() => {
+ loadingInstance.close();
+ });
+ },
+ // 鍗曢�夋寜閽�
// 鍗曢�夋寜閽�
radioChange(value) {
this.loading = true;
@@ -1080,13 +1047,14 @@
} else {
this.samplingList = response.data.list;
this.loading = false;
- if (this.samplingList.length != 0) {
- this.$nextTick(() => {
- this.$refs.tb.toggleRowSelection(this.samplingList[0], true);
- });
- } else {
- this.$refs.tb.clearSelection();
- }
+ // 绉婚櫎榛樿閫変腑绗竴琛岀殑閫昏緫
+ // if (this.samplingList.length != 0) {
+ // this.$nextTick(() => {
+ // this.$refs.tb.toggleRowSelection(this.samplingList[0], true);
+ // });
+ // } else {
+ // this.$refs.tb.clearSelection();
+ // }
}
this.total = response.data.total;
this.loading = false;
@@ -1120,7 +1088,28 @@
},
// 瀵煎嚭
- handleExport() {},
+ handleExport() { },
+
+ /** 鎺у埗琛屾槸鍚﹀彲閫� */
+ selectable(row, index) {
+ if (this.disableSelections) {
+ // 浠呭厑璁稿彇娑堝凡閫変腑鐨勮
+ return this.selectedRows.some(selectedRow => selectedRow.id === row.id);
+ }
+ return true; // 鍏佽閫夋嫨鎵�鏈夎
+ },
+
+ resetSelection() {
+ this.$refs.tb.clearSelection();
+ this.disableSelections = false;
+ this.selectedRows = [];
+ this.single = false;
+ this.multiple = true;
+ this.tableList = [];
+
+ // 璋冭瘯鏃ュ織
+ console.log(`閲嶇疆閫夋嫨锛屾槸鍚︾鐢ㄩ�夋嫨: ${this.disableSelections}`);
+ },
},
};
</script>
--
Gitblit v1.8.0