知识库增加租户隔离
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
import { ref, computed, onMounted, onUnmounted } from 'vue';
|
||||
import { useRouter, useRoute } from 'vue-router';
|
||||
import { useAllDataStore } from '@/stores';
|
||||
import { getAllMenus } from '@/api/menu';
|
||||
import { getAllMenus, getTenantMenus } from '@/api/menu';
|
||||
import MenuTreeItem from './MenuTreeItem.vue';
|
||||
|
||||
const emit = defineEmits(['menu-click']);
|
||||
@@ -196,8 +196,20 @@ const transformMenuData = (menus) => {
|
||||
const fetchMenus = async () => {
|
||||
loading.value = true;
|
||||
try {
|
||||
// 直接从接口获取菜单数据,不使用缓存
|
||||
const res = await getAllMenus();
|
||||
// 获取用户信息,判断登录类型
|
||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
||||
const loginType = userInfo.type; // "user" 或 "employee"
|
||||
const roleId = userInfo.role; // 角色ID
|
||||
|
||||
let res;
|
||||
if (loginType === "employee" && roleId) {
|
||||
// 员工登录,使用getTenantMenus接口
|
||||
res = await getTenantMenus(roleId);
|
||||
} else {
|
||||
// 用户登录,使用getAllMenus接口
|
||||
res = await getAllMenus();
|
||||
}
|
||||
|
||||
if (res && res.success && res.data) {
|
||||
const menuData = res.data;
|
||||
// 转换并排序菜单数据
|
||||
|
||||
@@ -62,7 +62,7 @@ import { useRouter, useRoute } from "vue-router";
|
||||
import { useAllDataStore } from "@/stores";
|
||||
import { useAuthStore } from "@/stores/auth";
|
||||
import { User, SwitchButton, Sunny, Moon, Refresh } from '@element-plus/icons-vue';
|
||||
import { getAllMenus } from '@/api/menu';
|
||||
import { getAllMenus, getTenantMenus } from '@/api/menu';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
const router = useRouter();
|
||||
@@ -111,7 +111,20 @@ function saveMenuToCache(menus: Menu[]) {
|
||||
// 从API加载菜单
|
||||
async function loadMenuFromAPI(updateCache = true) {
|
||||
try {
|
||||
const res = await getAllMenus();
|
||||
// 获取用户信息,判断登录类型
|
||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
||||
const loginType = userInfo.type; // "user" 或 "employee"
|
||||
const roleId = userInfo.role; // 角色ID
|
||||
|
||||
let res;
|
||||
if (loginType === "employee" && roleId) {
|
||||
// 员工登录,使用getTenantMenus接口
|
||||
res = await getTenantMenus(roleId);
|
||||
} else {
|
||||
// 用户登录,使用getAllMenus接口
|
||||
res = await getAllMenus();
|
||||
}
|
||||
|
||||
const menus = res.data || [];
|
||||
if (updateCache && menus.length > 0) {
|
||||
saveMenuToCache(menus);
|
||||
|
||||
Reference in New Issue
Block a user