feat: first commit

This commit is contained in:
2024-10-26 12:10:13 +08:00
parent b244826aa1
commit b064c4cb87
158 changed files with 18888 additions and 1 deletions

101
admin/src/main.tsx Normal file
View File

@@ -0,0 +1,101 @@
import './style/global.less';
import React, { useEffect } from 'react';
import ReactDOM from 'react-dom';
import { ConfigProvider } from '@arco-design/web-react';
import zhCN from '@arco-design/web-react/es/locale/zh-CN';
import enUS from '@arco-design/web-react/es/locale/en-US';
import { BrowserRouter, Switch, Route } from 'react-router-dom';
import PageLayout from './layout';
import { GlobalContext } from './context';
import Login from './pages/login';
import checkLogin from './utils/checkLogin';
import changeTheme from './utils/changeTheme';
import useStorage from './utils/useStorage';
import { QueryClientProvider, QueryClient } from 'react-query';
import { useStore } from '@/store';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: 0
}
}
});
function Index() {
const [lang, setLang] = useStorage('arco-lang', 'zh-CN');
const [theme, setTheme] = useStorage('arco-theme', 'light');
const { fetchUserInfo, init } = useStore();
function getArcoLocale() {
switch (lang) {
case 'zh-CN':
return zhCN;
case 'en-US':
return enUS;
default:
return zhCN;
}
}
useEffect(() => {
init();
if (checkLogin()) {
fetchUserInfo();
} else if (window.location.pathname.replace(/\//g, '') !== 'login') {
window.location.pathname = '/login';
}
}, []);
useEffect(() => {
changeTheme(theme);
}, [theme]);
const contextValue = {
lang,
setLang,
theme,
setTheme
};
return (
<BrowserRouter>
<ConfigProvider
locale={getArcoLocale()}
componentConfig={{
Card: {
bordered: false
},
List: {
bordered: false
},
Table: {
border: { headerCell: true, bodyCell: true, wrapper: true }
},
Form: {
labelCol: { span: 5 },
wrapperCol: { span: 18 },
},
Modal: {
style: { width: '550px' },
autoFocus: false,
focusLock: false,
escToExit:false
}
}}
>
<GlobalContext.Provider value={contextValue}>
<Switch>
<Route path="/login" component={Login} />
<QueryClientProvider client={queryClient}>
<Route path="/" component={PageLayout} />
</QueryClientProvider>
</Switch>
</GlobalContext.Provider>
</ConfigProvider>
</BrowserRouter>
);
}
ReactDOM.render(<Index />, document.getElementById('root'));