生产管理系统 - 系统参数配置集成于首页loading

This commit is contained in:
2025-11-07 14:31:42 +08:00
parent 588f55552d
commit c34f4c8503
12 changed files with 1610 additions and 436 deletions

View File

@@ -1,8 +1,8 @@
'use client';
import React, { createContext, useContext, useState, ReactNode, useRef } from 'react';
import { getCurrentUserInfoApiV1AuthMeGet, refreshTokenApiV1AuthRefreshPost } from '@/lib/api/sdk.gen';
import { setAuthUser, getAuthUser, AuthUser } from '@/stores/modules/auth';
import { getCurrentUserInfoApiV1AuthMeGet, refreshTokenApiV1AuthRefreshPost, listAdminSettingsApiV1AdminSettingsGet } from '@/lib/api/sdk.gen';
import { setAuthUser, getAuthUser, setSettings } from '@/stores/modules/auth';
// Cookie 操作工具
const setTokenCookie = (token: string) => {
@@ -203,26 +203,47 @@ export function AuthProvider({ children }: AuthProviderProps) {
const userData = JSON.parse(storedUser);
// 使用 SDK 调用 /api/v1/auth/me 验证用户信息
const response = await getCurrentUserInfoApiV1AuthMeGet({
headers: {
'Authorization': `Bearer ${userData.token}`,
},
});
// 使用 Promise.all 并行发起两个请求
const [userResponse, settingsResponse] = await Promise.all([
// 请求1: 调用 /api/v1/auth/me 验证用户信息
getCurrentUserInfoApiV1AuthMeGet({
headers: {
'Authorization': `Bearer ${userData.token}`,
},
}),
// 请求2: 调用 /api/v1/admin/settings 获取设置信息
listAdminSettingsApiV1AdminSettingsGet({
headers: {
'Authorization': `Bearer ${userData.token}`,
},
query: {
page: 1,
size: 100,
order_by: '',
sort_order: 'desc'
}
})
]);
if (response.data) {
if (userResponse.data) {
// 更新用户信息(可能包含最新的权限、角色等)
const updatedUserData = {
...userData,
...response.data, // 合并最新的用户信息
...userResponse.data, // 合并最新的用户信息
};
setUser(updatedUserData);
// 存储到 Zustand store
setAuthUser(response.data);
console.log('✅ 用户验证成功,最新用户信息:', response.data);
setAuthUser(userResponse.data);
console.log('✅ 用户验证成功,最新用户信息:', userResponse.data);
console.log('📦 从 Zustand store 取出的用户数据:', getAuthUser());
// 存储设置数据到 Zustand store
if (settingsResponse && settingsResponse.data) {
setSettings(settingsResponse.data);
console.log('✅ 设置数据获取成功:', settingsResponse.data);
}
// 验证成功后,启动 token 自动刷新定时器
startTokenRefresh();
} else {