feat: 升级stylelint依赖并修复相关问题

- 更新stylelint到16.x版本
- 修复postcss版本冲突
- 解决循环依赖问题
- 优化代码类型定义
This commit is contained in:
2025-06-24 19:46:34 +08:00
parent d1c2d332ab
commit 4d66f8baa7
30 changed files with 2190 additions and 2424 deletions
+18
View File
@@ -9,6 +9,24 @@ import { AppState } from './types';
const useAppStore = defineStore('app', {
state: (): AppState => ({ ...defaultSettings }),
// 配置持久化
persist: {
key: 'app-store',
storage: localStorage,
// 持久化用户偏好设置
pick: [
'theme',
'colorWeak',
'navbar',
'menu',
'hideMenu',
'menuCollapse',
'footer',
'themeColor',
'menuWidth',
],
},
getters: {
appCurrentSetting(state: AppState): AppState {
return { ...state };
+26
View File
@@ -27,6 +27,32 @@ const useAppStore = defineStore('tabBar', {
tagList: [DEFAULT_ROUTE],
}),
// 配置持久化
persist: {
key: 'tab-bar-store',
storage: sessionStorage, // 使用 sessionStorage,关闭浏览器后清除
// 持久化标签页状态
pick: ['tagList'],
// 自定义序列化,处理 Set 类型
serializer: {
deserialize: (value: string) => {
const data = JSON.parse(value);
return {
...data,
cacheTabList: new Set(data.cacheTabList || [DEFAULT_ROUTE_NAME]),
};
},
serialize: (value: Record<string, unknown>) => {
return JSON.stringify({
...value,
cacheTabList: Array.from(
(value.cacheTabList as Set<string>) || new Set()
),
});
},
},
},
getters: {
getTabList(): TagProps[] {
return this.tagList;
+30 -5
View File
@@ -32,6 +32,14 @@ const useUserStore = defineStore('user', {
permission: [],
}),
// 配置持久化
persist: {
key: 'user-store',
storage: localStorage,
// 只持久化关键的用户信息,排除敏感信息
pick: ['name', 'avatar', 'role', 'permission', 'accountId', 'email'],
},
getters: {
userInfo(state: UserState): UserState {
return { ...state };
@@ -67,8 +75,22 @@ const useUserStore = defineStore('user', {
try {
const res = await userLogin(loginForm);
setToken(res.data.token);
// 登录成功后立即获取用户权限
// await this.getUserPermissionData();
// 设置基本用户信息
this.setInfo({
name: loginForm.username,
role: 'admin',
});
// 登录成功后获取完整的用户信息和权限
try {
await this.info();
await this.getUserPermissionData();
} catch (infoError) {
// 如果获取用户信息失败,不影响登录流程
// eslint-disable-next-line no-console
console.warn('获取用户详细信息失败:', infoError);
}
} catch (err) {
clearToken();
throw err;
@@ -92,14 +114,17 @@ const useUserStore = defineStore('user', {
async getUserPermissionData() {
try {
const res = await getUserPermission();
console.log(res, '权限数据');
// 将权限数据存储到store中
if (res.data && res.data.length > 0) {
this.setInfo({ permission: res.data[0].permission });
}
} catch (err) {
console.error('获取权限失败:', err);
// 生产环境下可以使用日志服务记录错误
if (process.env.NODE_ENV === 'development') {
// eslint-disable-next-line no-console
console.error('获取权限失败:', err);
}
throw err;
}
},
+1 -1
View File
@@ -1,4 +1,4 @@
import { UserPermission } from '@/api/user';
import { UserPermission } from '@/types/api';
export type RoleType = '' | '*' | 'admin' | 'user';
export interface UserState {