From a60dc30be50598fe2d1acb42f8171ec69e37b436 Mon Sep 17 00:00:00 2001 From: 13404089107 <puwei@sinata.cn> Date: 星期三, 28 五月 2025 17:29:05 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- laboratory/src/components/SelectMember/index.vue | 57 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 46 insertions(+), 11 deletions(-) diff --git a/laboratory/src/components/SelectMember/index.vue b/laboratory/src/components/SelectMember/index.vue index 39f24b7..fcde772 100644 --- a/laboratory/src/components/SelectMember/index.vue +++ b/laboratory/src/components/SelectMember/index.vue @@ -59,8 +59,14 @@ </template> <script> -import { getRoleList, getUserList } from './service' +import { getRoleList, getUserList, listByRole } from './service' export default { + props: { + projectId: { + type: [String, Number], + default: null + } + }, data() { return { visible: false, @@ -76,18 +82,26 @@ setSelection(selected) { this.selectData = selected this.$nextTick(() => { - // 设置新选中 - this.tableData.forEach(row => { - if (selected.some(i => i.userId === row.userId)) { - this.$refs.memberTable.toggleRowSelection(row, true) - } - }) + // 确保 tableData 和 memberTable 都存在 + if (this.tableData && this.$refs.memberTable) { + this.tableData.forEach(row => { + if (selected.some(i => i.userId === row.userId)) { + this.$refs.memberTable.toggleRowSelection(row, true) + } + }) + } }) }, openDialog() { + // 获取角色列表并根据项目组ID进行过滤 getRoleList().then(res => { - this.roleList = res; - }) + if (this.projectId) { + // 过滤出实验员和化验师角色 + this.roleList = res.filter(item => item.roleId == 4 || item.roleId == 5); + } else { + this.roleList = res; + } + }); this.searchUserList(null); }, handleSelectionChange(val) { @@ -95,8 +109,29 @@ }, async searchUserList(roleId) { this.roleId = roleId - const res = await getUserList({ roleIds: roleId ? [roleId] : [], nickNameOrPhone: this.searchName, pageSize: 9999, pageNum: 1 }) - this.tableData = res.records + // 根据是否有项目组ID来决定调用不同的接口 + let params = { + roleIds: roleId ? [roleId] : [], + nickNameOrPhone: this.searchName, + pageSize: 9999, + pageNum: 1 + }; + + if (this.projectId) { + params={ + ...params, + roleId: roleId?roleId:'', + projectId: this.projectId + } + delete params.roleIds; + // TODO: 这里需要替换为新的接口调用 + const res = await listByRole(params); + this.tableData = res; + } else { + const res = await getUserList(params); + this.tableData = res.records; + } + // 数据加载完成后重新应用选中状态 this.setSelection(this.selectData) }, -- Gitblit v1.7.1