From eab76cd34bff799686f68e6b70f86c9001e4913f Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 23 五月 2025 09:41:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/devlop' into devlop --- rsf-admin/src/App.jsx | 107 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 71 insertions(+), 36 deletions(-) diff --git a/rsf-admin/src/App.jsx b/rsf-admin/src/App.jsx index 6d3a10a..c8601b9 100644 --- a/rsf-admin/src/App.jsx +++ b/rsf-admin/src/App.jsx @@ -1,5 +1,5 @@ import React, { useState, useRef, useEffect, useMemo } from "react"; -import { Route } from 'react-router-dom' +import { Route } from "react-router-dom"; import { Admin, Resource, @@ -9,46 +9,82 @@ StoreContextProvider, resolveBrowserLocale, } from "react-admin"; -import polyglotI18nProvider from 'ra-i18n-polyglot'; -import englishMessages from './i18n/en'; +import polyglotI18nProvider from "ra-i18n-polyglot"; +import englishMessages from "./i18n/en"; +import zhMessages from "./i18n/zh"; import { Layout } from "./layout"; import AuthProvider from "./config/authProvider"; import DataProvider from "./config/dataProvider"; -import Dashboard from "./page/dashboard/Dashboard"; -import Settings from "./page/settings/Settings"; -import Login from "./page/login/index1"; -import * as Common from './utils/common' -import { themes } from './themes/themes'; -import { SPA_NAME, SPA_VERSION, DEFAULT_THEME_NAME, DEFAULT_THEME_MODE, DATA_PROVIDER_SPRING } from "./config/setting"; +import Dashboard from "./page/dashboard"; +import Settings from "./page/settings"; +import Login from "./page/login"; +import * as Common from "./utils/common"; +import { themes } from "./themes/themes"; +import { + SPA_NAME, + SPA_VERSION, + DEFAULT_THEME_NAME, + DEFAULT_THEME_MODE, + DATA_PROVIDER_SPRING, +} from "./config/setting"; import ResourceContent from "./page/ResourceContent"; +import { getSystemInfo, getSystemDicts, tenants } from "@/api/auth"; +import chineseMessages from 'ra-language-chinese'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import { zhCN, frFR, enUS } from '@mui/material/locale'; + + +const getMaterialUILocale = (locale) => { + switch (locale) { + case 'en': + return enUS; + case 'fr': + return frFR; + default: + return zhCN; + } +}; const i18nProvider = polyglotI18nProvider( - locale => { - if (locale === 'zh') { - return import('./i18n/zh').then(messages => messages.default); + (locale) => { + if (locale === "en") { + return import("./i18n/en").then((messages) => messages.default); } - // fallback - return englishMessages; + return { ...chineseMessages, ...zhMessages }; }, - // default - // 'en', - resolveBrowserLocale('en', { fullLocale: true }), + "zh", [ - { locale: 'en', name: 'English' }, - { locale: 'zh', name: '绠�浣撲腑鏂�' }, + { locale: "en", name: "English" }, + { locale: "zh", name: "绠�浣撲腑鏂�" }, + { locale: "jp", name: "鏃ユ湰瑾�" }, + { locale: "kr", name: "頃滉淡鞚�" }, + { locale: "ru", name: "Russian" }, + { locale: "lk", name: "袪褍褋褋泻懈泄" }, + { locale: "es", name: "Espa帽ola" }, ], { // msg in console allowMissing: true, - } + }, ); + const store = localStorageStore(SPA_VERSION, SPA_NAME); const App = () => { - const [themeName] = useStore('themeName', DEFAULT_THEME_NAME); - const lightTheme = themes.find(theme => theme.name === themeName)?.light; - const darkTheme = themes.find(theme => theme.name === themeName)?.dark; + const [themeName] = useStore("themeName", DEFAULT_THEME_NAME); + const lightTheme = themes.find((theme) => theme.name === themeName)?.light; + const darkTheme = themes.find((theme) => theme.name === themeName)?.dark; + const [locale, setLocale] = useState('zh'); + const theme = createTheme( + { + ...lightTheme + }, getMaterialUILocale(locale)) + useEffect(() => { + getSystemInfo().then((data) => { + localStorage.setItem("system", JSON.stringify(data)); + }) + }, []); return ( <> @@ -60,24 +96,23 @@ lightTheme={lightTheme} darkTheme={darkTheme} defaultTheme={DEFAULT_THEME_MODE} + theme={theme} i18nProvider={i18nProvider} dataProvider={DataProvider(DATA_PROVIDER_SPRING)} loginPage={Login} dashboard={Dashboard} > - {permissions => ( + {(permissions) => ( <> - { - Common.extractNavMenus(permissions)?.map(node => { - return ( - <Resource - key={node.id} - name={node.component} - {...ResourceContent(node)} - /> - ) - }) - } + {Common.extractNavMenus(permissions)?.map((node) => { + return ( + <Resource + key={node.id} + name={node.component} + {...ResourceContent(node)} + /> + ); + })} </> )} {/* CustomRoutes don't trigger checkAuth */} @@ -87,7 +122,7 @@ </CustomRoutes> </Admin> </> - ) + ); }; const AppWrapper = () => ( -- Gitblit v1.9.1