mirror of https://github.com/longtai-cn/hippo4j
parent
4abdf0a15b
commit
6f754afb9e
@ -0,0 +1,9 @@
|
|||||||
|
export enum STR_MAP {
|
||||||
|
DYNAMIC_THREAD_POOL = 'dynamicThreadPool',
|
||||||
|
THREAD_POOL = 'threadPool',
|
||||||
|
PROJECT = 'project',
|
||||||
|
SEARCH = 'search',
|
||||||
|
ADD = 'add',
|
||||||
|
SERIAL_NUMBER = 'serial_number',
|
||||||
|
TENANTRY = 'tenantry',
|
||||||
|
}
|
@ -1,5 +1,13 @@
|
|||||||
|
import { STR_MAP } from './constants';
|
||||||
|
|
||||||
const enTranslationMap: { [key: string]: string } = {
|
const enTranslationMap: { [key: string]: string } = {
|
||||||
hello: 'hello',
|
[STR_MAP.DYNAMIC_THREAD_POOL]: 'Dynamic thread pool',
|
||||||
|
[STR_MAP.THREAD_POOL]: 'Thread pool management',
|
||||||
|
[STR_MAP.PROJECT]: 'project',
|
||||||
|
[STR_MAP.SEARCH]: 'search',
|
||||||
|
[STR_MAP.ADD]: 'add',
|
||||||
|
[STR_MAP.SERIAL_NUMBER]: 'number',
|
||||||
|
[STR_MAP.TENANTRY]: 'tenantry',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default enTranslationMap;
|
export default enTranslationMap;
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
|
import { STR_MAP } from './constants';
|
||||||
|
|
||||||
const zhTranslationMap: { [key: string]: string } = {
|
const zhTranslationMap: { [key: string]: string } = {
|
||||||
hello: '你好',
|
[STR_MAP.DYNAMIC_THREAD_POOL]: '动态线程池',
|
||||||
|
[STR_MAP.THREAD_POOL]: '线程池管理',
|
||||||
|
[STR_MAP.PROJECT]: '项目',
|
||||||
|
[STR_MAP.SEARCH]: '搜索',
|
||||||
|
[STR_MAP.ADD]: '添加',
|
||||||
|
[STR_MAP.SERIAL_NUMBER]: '序号',
|
||||||
|
[STR_MAP.TENANTRY]: '租户',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default zhTranslationMap;
|
export default zhTranslationMap;
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
export * from './useThemeMode';
|
||||||
|
export * from './useTransLate';
|
@ -0,0 +1,14 @@
|
|||||||
|
import { useContext, useEffect } from 'react';
|
||||||
|
import { useLocalStorageState } from 'ahooks';
|
||||||
|
import { MyContext, THEME_NAME } from '@/context';
|
||||||
|
|
||||||
|
export const useThemeMode = (): { isDark: boolean | undefined; setIsDark: (isDark: boolean) => void } => {
|
||||||
|
const [isDark, setIsDark] = useLocalStorageState<boolean>('current-mode', { defaultValue: false });
|
||||||
|
const { setThemeName } = useContext<any>(MyContext);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
isDark ? setThemeName(THEME_NAME.DARK) : setThemeName(THEME_NAME.DEFAULT);
|
||||||
|
}, [isDark, setThemeName]);
|
||||||
|
|
||||||
|
return { isDark, setIsDark };
|
||||||
|
};
|
@ -0,0 +1,6 @@
|
|||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
|
export const useTran = (str: string): string => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
return t(str);
|
||||||
|
};
|
@ -0,0 +1,45 @@
|
|||||||
|
import { Button, Form, Select, Space, Table, Typography } from 'antd';
|
||||||
|
import { useTran } from '@/hooks';
|
||||||
|
import { STR_MAP } from '@/config/i18n/locales/constants';
|
||||||
|
import { ColumnProps } from 'antd/es/table';
|
||||||
|
const { Title } = Typography;
|
||||||
|
const { Item } = Form;
|
||||||
|
|
||||||
|
const ThreadPoll = () => {
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
const columns: ColumnProps<any>[] = [
|
||||||
|
{
|
||||||
|
title: useTran(STR_MAP.SERIAL_NUMBER),
|
||||||
|
dataIndex: 'order',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: useTran(STR_MAP.SERIAL_NUMBER),
|
||||||
|
dataIndex: 'tenantry',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: useTran(STR_MAP.SERIAL_NUMBER),
|
||||||
|
dataIndex: 'tenantry',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
return (
|
||||||
|
<Space direction="vertical" style={{ width: '100%' }} size="large">
|
||||||
|
<Title>{useTran(STR_MAP.THREAD_POOL)}</Title>
|
||||||
|
<Form form={form} layout="inline">
|
||||||
|
<Item name="project" style={{ flex: 1 }}>
|
||||||
|
<Select options={[{ label: '哈哈哈', value: 1 }]} placeholder={useTran(STR_MAP.PROJECT)}></Select>
|
||||||
|
</Item>
|
||||||
|
<Item name="thpool" style={{ flex: 1 }}>
|
||||||
|
<Select options={[{ label: '哈哈哈', value: 1 }]} placeholder={useTran(STR_MAP.PROJECT)}></Select>
|
||||||
|
</Item>
|
||||||
|
<Item style={{ flex: 4 }}>
|
||||||
|
<Space>
|
||||||
|
<Button type="primary">{useTran(STR_MAP.SEARCH)}</Button>
|
||||||
|
<Button type="primary">{useTran(STR_MAP.ADD)}</Button>
|
||||||
|
</Space>
|
||||||
|
</Item>
|
||||||
|
</Form>
|
||||||
|
<Table columns={columns}></Table>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
export default ThreadPoll;
|
@ -0,0 +1,11 @@
|
|||||||
|
import { IRouterList } from '@/typings';
|
||||||
|
import ThreadPoll from '.';
|
||||||
|
|
||||||
|
const routerList: IRouterList[] = [
|
||||||
|
{
|
||||||
|
path: '/thread-poll/index',
|
||||||
|
component: ThreadPoll,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default routerList;
|
@ -1,6 +1,7 @@
|
|||||||
import { IRouterList } from '@/typings';
|
import { IRouterList } from '@/typings';
|
||||||
import homeRouter from '@/page/home/router';
|
import homeRouter from '@/page/home/router';
|
||||||
import aboutRouter from '@/page/about/router';
|
import aboutRouter from '@/page/about/router';
|
||||||
|
import ThreadPoolRouter from '@/page/thread-pool/router';
|
||||||
|
|
||||||
const routerList: IRouterList[] = [...homeRouter, ...aboutRouter];
|
const routerList: IRouterList[] = [...homeRouter, ...aboutRouter, ...ThreadPoolRouter];
|
||||||
export default routerList;
|
export default routerList;
|
||||||
|
Loading…
Reference in new issue