From 9dcad0c65f2564fc2fe43e21b23f9faf4a073d30 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期二, 28 四月 2026 13:49:47 +0800
Subject: [PATCH] fix: 修复多个页面样式、交互及路由问题
---
laboratory/src/components/chooseProject/index.vue | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 47 insertions(+), 7 deletions(-)
diff --git a/laboratory/src/components/chooseProject/index.vue b/laboratory/src/components/chooseProject/index.vue
index a55ad7c..ff467ce 100644
--- a/laboratory/src/components/chooseProject/index.vue
+++ b/laboratory/src/components/chooseProject/index.vue
@@ -24,8 +24,9 @@
<template #tableCustom>
<Table ref="memberTable" :height="null" :row-key="row => row.id" :data="tableData" :total="0"
- highlight-current-row @current-change="handleCurrentChange">
- <!-- <el-table-column type="selection" width="55" /> -->
+ highlight-current-row @row-click="handleRowClick" @select="handleSelect"
+ @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" />
<el-table-column prop="teamName" label="项目组名称"></el-table-column>
<el-table-column prop="personCharge" label="项目负责人"></el-table-column>
<el-table-column prop="staffName" label="项目组成员"></el-table-column>
@@ -66,12 +67,20 @@
endTime: '',
teamName: '',
},
- selectData: [],
+ selectData: null,
tableData: [],
total: 0
}
},
methods: {
+ setSingleSelection(row) {
+ if (!row || !this.$refs.memberTable) {
+ return;
+ }
+ this.$refs.memberTable.clearSelection();
+ this.$refs.memberTable.toggleRowSelection(row, true);
+ this.selectData = row;
+ },
open() {
if(this.form.date && this.form.date.length === 2){
this.form.startTime=this.form.date[0]
@@ -85,9 +94,11 @@
this.$nextTick(() => {
const row = this.tableData.find(item => item.id === this.selectedData.id)
if (row) {
- this.$refs.memberTable.toggleRowSelection(row, true)
+ this.setSingleSelection(row)
}
})
+ } else {
+ this.selectData = null
}
})
},
@@ -110,11 +121,40 @@
submitData(){
this.$emit('submit',this.selectData)
},
- handleCurrentChange(val) {
- this.selectData = val;
+ handleSelectionChange(selection) {
+ if (!selection || selection.length === 0) {
+ this.selectData = null;
+ }
+ },
+ handleSelect(selection, row) {
+ if (!row) {
+ return;
+ }
+ const selectedRow = selection.find((item) => item.id === row.id);
+ if (selectedRow) {
+ this.setSingleSelection(row);
+ } else {
+ this.selectData = null;
+ }
+ },
+ handleRowClick(row) {
+ if (!row) {
+ return;
+ }
+ if (this.selectData && this.selectData.id === row.id) {
+ this.$refs.memberTable.clearSelection();
+ this.selectData = null;
+ return;
+ }
+ this.setSingleSelection(row);
},
}
}
</script>
-<style lang="less" scoped></style>
\ No newline at end of file
+<style lang="less" scoped>
+::v-deep .el-table__row.current-row > td,
+::v-deep .el-table__row.selection-row > td {
+ background: #ebffff !important;
+}
+</style>
--
Gitblit v1.7.1