From 1a61525947d43fd7c8a6df637bf5c1c8f9cc37f3 Mon Sep 17 00:00:00 2001 From: 董国庆 <364620639@qq.com> Date: 星期四, 26 六月 2025 14:24:32 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- culture/src/components/SelectMember/index.vue | 62 +++++++++++++++++++------------ 1 files changed, 38 insertions(+), 24 deletions(-) diff --git a/culture/src/components/SelectMember/index.vue b/culture/src/components/SelectMember/index.vue index 4ddc107..d59fefe 100644 --- a/culture/src/components/SelectMember/index.vue +++ b/culture/src/components/SelectMember/index.vue @@ -1,8 +1,8 @@ <template> - <el-dialog @open="openDialog" class="select-member" :z-index="1000" :visible.sync="visible" width="53.33%" + <el-dialog @open="openDialog" class="select-member" :z-index="1000" :visible.sync="visible" width="53.33%" :close-on-click-modal="false" :show-close="false"> <template #title> - <div>{{title}}</div> + <div>{{ title }}</div> </template> <div class="select-member-content"> <el-row :gutter="16"> @@ -22,8 +22,8 @@ <div class="select-member-content-left-list"> <div class="select-member-content-left-list-title">角色列表</div> <div class="select-member-content-left-list-itemBox"> - <div @click="searchUserList(item.roleId)" v-for="item in filteredRoleList" :key="item.roleId" - class="select-member-content-left-list-itemBox-item" + <div @click="searchUserList(item.roleId)" v-for="item in filteredRoleList" + :key="item.roleId" class="select-member-content-left-list-itemBox-item" :class="roleId == item.roleId && 'active'"> {{ item.roleName }} </div> @@ -36,11 +36,12 @@ <div class="select-member-content-right-header"> <div class="select-member-content-right-header-text">人员列表</div> <div class="select-member-content-right-header-search"> - <el-input clearable v-model="nickNameOrPhone" placeholder="请输入姓名/手机号" @keyup.enter.native="searchUserList(roleId)" /> + <el-input clearable v-model="nickNameOrPhone" placeholder="请输入姓名/手机号" + @keyup.enter.native="searchUserList(roleId)" /> <el-button type="primary" @click="searchUserList(roleId)">搜索</el-button> </div> </div> - <Table ref="memberTable" :row-key="row => row.userId" :data="tableData" :total="0" + <Table ref="memberTable" :row-key="row => row.userId" height="300" :data="tableData" :total="0" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @row-click="handleRowClick"> <el-table-column type="selection" width="55" v-if="!singleSelect" /> @@ -60,7 +61,7 @@ </template> <script> -import { getRoleList, getUserList } from './service' +import { getRoleList, getUserList,getUsersList } from './service' export default { props: { projectId: { @@ -71,9 +72,9 @@ type: Boolean, default: false }, - title:{ - type:String, - default:'选择参与人员' + title: { + type: String, + default: '选择参与人员' }, }, data() { @@ -104,16 +105,22 @@ // 获取角色列表并根据项目组ID进行过滤 getRoleList().then(res => { let roles = []; - if (this.projectId) { - // 过滤出实验员和化验师角色 - roles = res.filter(item => item.roleId == 4 || item.roleId == 5); + if (this.title == '选择菌种实验员') { + if (this.title == '选择菌种实验员') { + roles = res.filter(item => item.roleId == 48) + } } else { - roles = res.filter(item => item.roleId !== 1); // 排除 roleId 为 1 的角色 + if (this.projectId) { + // 过滤出实验员和化验师角色 + roles = res.filter(item => item.roleId == 4 || item.roleId == 5); + } else { + roles = res.filter(item => item.roleId !== 1); // 排除 roleId 为 1 的角色 + } } - if(this.title=='选择菌种实验员'){ - roles = res.filter(item => item.roleId == 5) - } + + + this.roleList = roles; this.filterRoleList(); // 获取后先进行一次过滤 }); @@ -124,7 +131,7 @@ // 获取当前表格中未被选中的用户ID const unselectedInCurrentTable = this.tableData.filter(row => !val.some(selected => selected.userId === row.userId)).map(row => row.userId); // 从总的selectData中移除这些未选中的用户,保留其他角色已选中的用户 - const otherSelected = this.selectData.filter(item => !unselectedInCurrentTable.includes(item.userId)); + const otherSelected = this.selectData.filter(item => !unselectedInCurrentTable.includes(item.userId)); // 合并当前表格的选中项和其他角色已选中的项 this.selectData = [...otherSelected.filter(item => !val.some(v => v.userId === item.userId)), ...val]; } @@ -132,19 +139,27 @@ async searchUserList(roleId) { this.roleId = roleId // 根据是否有项目组ID来决定调用不同的接口 - const params = { + let params = { roleIds: roleId ? [roleId] : [], nickNameOrPhone: this.nickNameOrPhone, // 使用 nickNameOrPhone 进行搜索 pageSize: 9999, - pageNum: 1 + pageNum: 1, }; if (this.projectId) { params.projectId = this.projectId; } - - const res = await getUserList(params); - this.tableData = res.records; + let res = '' + if(this.title == '选择菌种实验员'){ + params.roleType = 2 + params.projectId = this.projectId; + res = await getUsersList(params); + this.tableData = res.data.records; + }else{ + res = await getUserList(params); + this.tableData = res.records; + } + // 数据加载完成后重新应用选中状态 this.$nextTick(() => { @@ -198,7 +213,6 @@ </script> <style scoped lang="less"> - // to fix el-message弹框被el-dialog覆盖的问题。 .select-member-content { .select-member-content-left { -- Gitblit v1.7.1