知识库增加租户隔离

This commit is contained in:
2025-11-05 17:50:02 +08:00
parent b00463cb14
commit 9c67793fc3
19 changed files with 473 additions and 87 deletions
+15 -3
View File
@@ -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;
// 转换并排序菜单数据
+15 -2
View File
@@ -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);