格式化代码,websocket功能完善

This commit is contained in:
2026-02-18 21:50:05 +08:00
parent 6543e2ccdd
commit b6c133952b
101 changed files with 15829 additions and 10739 deletions
+40 -40
View File
@@ -1,93 +1,93 @@
import { ref } from 'vue'
import { defineStore } from 'pinia'
import { resetRouter } from '../../router'
import { customStorage } from '../persist'
import userRoutes from '@/config/routes'
import { ref } from "vue";
import { defineStore } from "pinia";
import { resetRouter } from "../../router";
import { customStorage } from "../persist";
import userRoutes from "@/config/routes";
export const useUserStore = defineStore(
'user',
export const useUserStore = defineStore(
"user",
() => {
const token = ref('')
const userInfo = ref(null)
const menu = ref([])
const permissions = ref([])
const token = ref("");
const userInfo = ref(null);
const menu = ref([]);
const permissions = ref([]);
// 设置 token
function setToken(newToken) {
token.value = newToken
token.value = newToken;
}
// 设置用户信息
function setUserInfo(info) {
userInfo.value = info
userInfo.value = info;
}
// 设置菜单
function setMenu(newMenu) {
const staticMenus = userRoutes || []
const staticMenus = userRoutes || [];
// 合并静态菜单和后端菜单
// 如果后端菜单为空,只使用静态菜单
// 如果后端菜单不为空,合并两个菜单,后端菜单优先
let mergedMenus = [...staticMenus]
let mergedMenus = [...staticMenus];
if (newMenu && newMenu.length > 0) {
// 创建菜单映射,用于去重(以路径为唯一标识)
const menuMap = new Map()
const menuMap = new Map();
// 先添加静态菜单
staticMenus.forEach(menu => {
staticMenus.forEach((menu) => {
if (menu.path) {
menuMap.set(menu.path, menu)
menuMap.set(menu.path, menu);
}
})
});
// 添加后端菜单,如果路径重复则覆盖
newMenu.forEach(menu => {
newMenu.forEach((menu) => {
if (menu.path) {
menuMap.set(menu.path, menu)
menuMap.set(menu.path, menu);
}
})
});
// 转换为数组
mergedMenus = Array.from(menuMap.values())
mergedMenus = Array.from(menuMap.values());
}
menu.value = mergedMenus
menu.value = mergedMenus;
}
// 获取菜单
function getMenu() {
return menu.value
return menu.value;
}
// 清除菜单
function clearMenu() {
menu.value = []
menu.value = [];
}
// 设置权限
function setPermissions(data){
permissions.value = data
function setPermissions(data) {
permissions.value = data;
}
// 登出
function logout() {
token.value = ''
userInfo.value = null
menu.value = []
token.value = "";
userInfo.value = null;
menu.value = [];
// 重置路由
resetRouter()
resetRouter();
}
// 检查是否已登录
function isLoggedIn() {
return !!token.value
return !!token.value;
}
// 检查用户信息是否完整(用于 WebSocket 初始化)
function isUserInfoComplete() {
return !!(token.value && userInfo.value && userInfo.value.id)
return !!(token.value && userInfo.value && userInfo.value.id);
}
return {
@@ -103,13 +103,13 @@ import userRoutes from '@/config/routes'
logout,
isLoggedIn,
isUserInfoComplete,
}
};
},
{
persist: {
key: 'user-store',
key: "user-store",
storage: customStorage,
pick: ['token', 'userInfo', 'menu']
}
}
)
pick: ["token", "userInfo", "menu"],
},
},
);