Browse Source

feat: 员工列表添加权限过滤,隐藏管理员账号

- 在 store/getters.js 中添加 user getter,用于获取当前登录用户信息
- 在员工列表页面添加 filteredUserList 计算属性实现数据过滤
- 管理员(userType=00)可查看所有数据
- 普通用户(userType00)无法查看管理员账号数据
- 解决 data 中 user 对象与 mapGetters 的命名冲突问题
xw 1 week ago
parent
commit
aafd8ca169
2 changed files with 16 additions and 1 deletions
  1. 1 0
      src/store/getters.js
  2. 15 1
      src/views/company/companyUser/index.vue

+ 1 - 0
src/store/getters.js

@@ -14,5 +14,6 @@ const getters = {
   topbarRouters:state => state.permission.topbarRouters,
   defaultRoutes:state => state.permission.defaultRoutes,
   sidebarRouters:state => state.permission.sidebarRouters,
+  user: state => state.user.user,
 }
 export default getters

+ 15 - 1
src/views/company/companyUser/index.vue

@@ -114,7 +114,7 @@
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
-        <el-table  height="500" border v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
+        <el-table  height="500" border v-loading="loading" :data="filteredUserList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="ID" align="center" prop="userId" :show-overflow-tooltip="true" />
           <el-table-column label="员工后台账号" align="center" prop="userName" :show-overflow-tooltip="true" width="100" />
@@ -645,9 +645,23 @@ import { getConfigByKey } from "@/api/company/companyConfig";
 import axios from "axios";
 import {addCodeUrl} from "../../../api/company/companyUser";
 import selectDoctor from "@/views/qw/user/selectDoctor.vue";
+import { mapGetters } from 'vuex';
 export default {
   name: "User",
   components: {selectDoctor, Treeselect ,selectUser},
+  computed: {
+    ...mapGetters({ currentUser: 'user' }),
+    // 过滤后的用户列表
+    filteredUserList() {
+      if (!this.userList) return [];
+      // 如果当前用户是管理员(userType='00'),显示所有数据
+      if (this.currentUser && this.currentUser.userType === '00') {
+        return this.userList;
+      }
+      // 如果不是管理员,过滤掉 userType='00' 的数据
+      return this.userList.filter(item => item.userType !== '00');
+    }
+  },
   data() {
     return {
       doctor: {