diff --git a/src/constants/urls.constants.ts b/src/constants/urls.constants.ts index 3ff3044..d35f715 100644 --- a/src/constants/urls.constants.ts +++ b/src/constants/urls.constants.ts @@ -15,6 +15,7 @@ export const URL_SYS_ROLE_LIST = '/system/role/list' export const URL_SYS_GROUP = '/system/group' export const URL_SYS_GROUP_LIST = '/system/group/list' export const URL_SYS_SETTINGS = '/system/settings' +export const URL_SYS_SETTINGS_BASE = `${URL_SYS_SETTINGS}/base` export const URL_SYS_SETTINGS_MAIL = `${URL_SYS_SETTINGS}/mail` export const URL_SYS_STATISTICS = '/system/statistics' export const URL_SYS_STATISTICS_SOFTWARE = `${URL_SYS_STATISTICS}/software` diff --git a/src/global.d.ts b/src/global.d.ts index 11865e6..54720b5 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -318,6 +318,16 @@ interface AvatarBase64Vo { base64: string } +interface BaseSettingsVo { + appName?: string + appUrl?: string +} + +interface BaseSettingsParam { + appName: string + appUrl: string +} + interface MailSettingsVo { host?: string port?: number diff --git a/src/pages/Sign.tsx b/src/pages/Sign.tsx index b3a5b5c..ffdd5c2 100644 --- a/src/pages/Sign.tsx +++ b/src/pages/Sign.tsx @@ -6,6 +6,7 @@ import { COLOR_BACKGROUND, DATABASE_DUPLICATE_KEY, PERMISSION_ACCOUNT_NEED_INIT, + PERMISSION_FORGET_SUCCESS, PERMISSION_LOGIN_SUCCESS, PERMISSION_LOGIN_USERNAME_PASSWORD_ERROR, PERMISSION_NO_VERIFICATION_REQUIRED, @@ -13,6 +14,7 @@ import { PERMISSION_RETRIEVE_CODE_ERROR_OR_EXPIRED, PERMISSION_RETRIEVE_SUCCESS, PERMISSION_USER_DISABLE, + PERMISSION_USER_NOT_FOUND, PERMISSION_USERNAME_NOT_FOUND } from '@/constants/common.constants.ts' import { getLoginStatus, getUserInfo, requestUserInfo, setToken } from '@/util/auth' @@ -457,11 +459,16 @@ const Forget: React.FC = () => { void r_auth_forget(forgetParam) .then((res) => { const response = res.data - if (response.success) { - void message.success('已发送验证邮件,请查收') - setIsSent(true) - } else { - void message.error('出错了,请稍后重试') + switch (response.code) { + case PERMISSION_FORGET_SUCCESS: + void message.success('已发送验证邮件,请查收') + setIsSent(true) + break + case PERMISSION_USER_NOT_FOUND: + void message.error('用户不存在') + break + default: + void message.error('出错了,请稍后重试') } }) .finally(() => { diff --git a/src/pages/ToolsFramework.tsx b/src/pages/ToolsFramework.tsx index 666addf..c079dd1 100644 --- a/src/pages/ToolsFramework.tsx +++ b/src/pages/ToolsFramework.tsx @@ -22,7 +22,7 @@ const ToolsFramework: React.FC = () => { <>
- + { } diff --git a/src/pages/system/Settings.tsx b/src/pages/system/Settings.tsx index f612e32..9fe36d6 100644 --- a/src/pages/system/Settings.tsx +++ b/src/pages/system/Settings.tsx @@ -4,6 +4,8 @@ import '@/assets/css/pages/system/settings.scss' import { useUpdatedEffect } from '@/util/hooks' import { hasPermission } from '@/util/auth' import { + r_sys_settings_base_get, + r_sys_settings_base_update, r_sys_settings_mail_get, r_sys_settings_mail_send, r_sys_settings_mail_update @@ -192,6 +194,80 @@ const MailSettings: React.FC = () => { ) } +const BaseSettings: React.FC = () => { + const [baseForm] = AntdForm.useForm() + const baseFormValues = AntdForm.useWatch([], baseForm) + const [loading, setLoading] = useState(false) + + const handleOnReset = () => { + getBaseSettings() + } + + const handleOnSave = () => { + void r_sys_settings_base_update(baseFormValues).then((res) => { + const response = res.data + if (response.success) { + void message.success('保存设置成功') + getBaseSettings() + } else { + void message.error('保存设置失败,请稍后重试') + } + }) + } + + const getBaseSettings = () => { + if (loading) { + return + } + + setLoading(true) + void r_sys_settings_base_get().then((res) => { + const response = res.data + if (response.success) { + const data = response.data + data && baseForm.setFieldsValue(data) + setLoading(false) + } + }) + } + + useUpdatedEffect(() => { + getBaseSettings() + }, []) + + return ( + <> + + + + + + + + + + + + + + + + + + ) +} + const Settings: React.FC = () => { return ( <> @@ -199,10 +275,12 @@ const Settings: React.FC = () => { + + + -
diff --git a/src/pages/system/Statistics.tsx b/src/pages/system/Statistics.tsx index ddf5a64..51e094c 100644 --- a/src/pages/system/Statistics.tsx +++ b/src/pages/system/Statistics.tsx @@ -976,8 +976,8 @@ const Statistics: React.FC = () => { - + diff --git a/src/router/index.tsx b/src/router/index.tsx index 4135a7f..be7068b 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -49,7 +49,7 @@ const root: RouteJsonObject[] = [ absolutePath: '/tools', id: 'toolsFramework', component: React.lazy(() => import('@/pages/ToolsFramework')), - children: setTitle(tools, '氮工具'), + children: setTitle(tools, '氧工具'), name: '工具', auth: false }, diff --git a/src/services/system.tsx b/src/services/system.tsx index 32ba2e9..d995a84 100644 --- a/src/services/system.tsx +++ b/src/services/system.tsx @@ -14,7 +14,8 @@ import { URL_SYS_STATISTICS_CPU, URL_SYS_STATISTICS_STORAGE, URL_SYS_STATISTICS_ONLINE, - URL_SYS_STATISTICS_ACTIVE + URL_SYS_STATISTICS_ACTIVE, + URL_SYS_SETTINGS_BASE } from '@/constants/urls.constants' import request from '@/services/index' @@ -71,6 +72,11 @@ export const r_sys_group_delete_list = (ids: React.Key[]) => request.delete(URL_ export const r_sys_log_get = (param: SysLogGetParam) => request.get>(URL_SYS_LOG, param) +export const r_sys_settings_base_get = () => request.get(URL_SYS_SETTINGS_BASE) + +export const r_sys_settings_base_update = (param: BaseSettingsParam) => + request.put(URL_SYS_SETTINGS_BASE, param) + export const r_sys_settings_mail_get = () => request.get(URL_SYS_SETTINGS_MAIL) export const r_sys_settings_mail_update = (param: MailSettingsParam) =>