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