Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
dac55f0f
authored
Apr 30, 2026
by
CaIon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ui): add classic frontend switch
parent
938dc952
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
86 additions
and
0 deletions
+86
-0
web/classic/src/components/settings/OtherSetting.jsx
+46
-0
web/classic/src/i18n/locales/en.json
+5
-0
web/classic/src/i18n/locales/fr.json
+5
-0
web/classic/src/i18n/locales/ja.json
+5
-0
web/classic/src/i18n/locales/ru.json
+5
-0
web/classic/src/i18n/locales/vi.json
+5
-0
web/classic/src/i18n/locales/zh-CN.json
+5
-0
web/classic/src/i18n/locales/zh-TW.json
+5
-0
web/classic/src/i18n/locales/zh.json
+5
-0
No files found.
web/classic/src/components/settings/OtherSetting.jsx
View file @
dac55f0f
...
...
@@ -82,6 +82,7 @@ const OtherSetting = () => {
About
:
false
,
Footer
:
false
,
CheckUpdate
:
false
,
FrontendTheme
:
false
,
});
const
handleInputChange
=
async
(
value
,
e
)
=>
{
const
name
=
e
.
target
.
id
;
...
...
@@ -278,6 +279,45 @@ const OtherSetting = () => {
}));
}
};
const
switchToDefaultFrontend
=
()
=>
{
Modal
.
confirm
({
title
:
t
(
'切换到新版前端'
),
content
:
t
(
'切换后页面会自动刷新,并进入新版前端。是否继续?'
),
okText
:
t
(
'确认切换'
),
cancelText
:
t
(
'取消'
),
onOk
:
async
()
=>
{
try
{
setLoadingInput
((
loadingInput
)
=>
({
...
loadingInput
,
FrontendTheme
:
true
,
}));
const
res
=
await
API
.
put
(
'/api/option/'
,
{
key
:
'theme.frontend'
,
value
:
'default'
,
});
const
{
success
,
message
}
=
res
.
data
;
if
(
!
success
)
{
showError
(
message
);
return
;
}
showSuccess
(
t
(
'已切换到新版前端,正在刷新页面'
));
setTimeout
(()
=>
{
window
.
location
.
reload
();
},
600
);
}
catch
(
error
)
{
console
.
error
(
'切换新版前端失败'
,
error
);
showError
(
t
(
'切换失败,请稍后重试'
));
}
finally
{
setLoadingInput
((
loadingInput
)
=>
({
...
loadingInput
,
FrontendTheme
:
false
,
}));
}
},
});
};
const
getOptions
=
async
()
=>
{
const
res
=
await
API
.
get
(
'/api/option/'
);
const
{
success
,
message
,
data
}
=
res
.
data
;
...
...
@@ -342,6 +382,12 @@ const OtherSetting = () => {
>
{
t
(
'检查更新'
)
}
</
Button
>
<
Button
onClick=
{
switchToDefaultFrontend
}
loading=
{
loadingInput
[
'FrontendTheme'
]
}
>
{
t
(
'切换到新版前端'
)
}
</
Button
>
</
Space
>
</
Col
>
</
Row
>
...
...
web/classic/src/i18n/locales/en.json
View file @
dac55f0f
...
...
@@ -928,6 +928,9 @@
"取消"
:
"Cancel"
,
"取消全选"
:
"Deselect all"
,
"取消选择"
:
"Deselect"
,
"切换到新版前端"
:
"Switch to new frontend"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"The page will refresh and open the new frontend. Continue?"
,
"切换失败,请稍后重试"
:
"Switch failed, please try again later"
,
"变换"
:
"Transform"
,
"变更"
:
"Change"
,
"变焦"
:
"zoom"
,
...
...
@@ -1357,6 +1360,7 @@
"已发起支付"
:
"Payment initiated"
,
"已发送到 Fluent"
:
"Sent to Fluent"
,
"已取消 Passkey 注册"
:
"Passkey registration cancelled"
,
"已切换到新版前端,正在刷新页面"
:
"Switched to the new frontend, refreshing page"
,
"已同步到渠道"
:
"Synced to Channel"
,
"已启用"
:
"Enabled"
,
"已启用 Passkey,无需密码即可登录"
:
"Passkey enabled, login without password"
,
...
...
@@ -2525,6 +2529,7 @@
"确认删除该规则?"
:
"Confirm delete this rule?"
,
"确认取消密码登录"
:
"Confirm cancel password login"
,
"确认启用"
:
"Confirm Enable"
,
"确认切换"
:
"Confirm switch"
,
"确认密码"
:
"Confirm Password"
,
"确认导入配置"
:
"Confirm import configuration"
,
"确认延长"
:
"Confirm Extension"
,
...
...
web/classic/src/i18n/locales/fr.json
View file @
dac55f0f
...
...
@@ -926,6 +926,9 @@
"取消"
:
"Annuler"
,
"取消全选"
:
"Annuler la sélection"
,
"取消选择"
:
"Deselect"
,
"切换到新版前端"
:
"Passer au nouveau frontend"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"La page sera actualisée et ouvrira le nouveau frontend. Continuer ?"
,
"切换失败,请稍后重试"
:
"Le changement a échoué, veuillez réessayer plus tard"
,
"变换"
:
"Variation"
,
"变更"
:
"Modification"
,
"变焦"
:
"Zoom"
,
...
...
@@ -1358,6 +1361,7 @@
"已发起支付"
:
"Paiement initié"
,
"已发送到 Fluent"
:
"Envoyé à Fluent"
,
"已取消 Passkey 注册"
:
"Enregistrement du Passkey annulé"
,
"已切换到新版前端,正在刷新页面"
:
"Passage au nouveau frontend effectué, actualisation de la page"
,
"已同步到渠道"
:
"Synced to Channel"
,
"已启用"
:
"Activé"
,
"已启用 Passkey,无需密码即可登录"
:
"Passkey activé. Connexion sans mot de passe disponible."
,
...
...
@@ -2513,6 +2517,7 @@
"确认删除该规则?"
:
"Confirm delete this rule?"
,
"确认取消密码登录"
:
"Confirmer l'annulation de la connexion par mot de passe"
,
"确认启用"
:
"Confirmer l'activation"
,
"确认切换"
:
"Confirmer le changement"
,
"确认密码"
:
"Confirmer le mot de passe"
,
"确认导入配置"
:
"Confirmer l'importation de la configuration"
,
"确认延长"
:
"Confirm Extension"
,
...
...
web/classic/src/i18n/locales/ja.json
View file @
dac55f0f
...
...
@@ -913,6 +913,9 @@
"取消"
:
"キャンセル"
,
"取消全选"
:
"すべての選択を解除"
,
"取消选择"
:
"Deselect"
,
"切换到新版前端"
:
"新しいフロントエンドに切り替え"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"ページを更新して新しいフロントエンドを開きます。続行しますか?"
,
"切换失败,请稍后重试"
:
"切り替えに失敗しました。しばらくしてからもう一度お試しください"
,
"变换"
:
"バリエーション"
,
"变更"
:
"変更"
,
"变焦"
:
"ズーム"
,
...
...
@@ -1337,6 +1340,7 @@
"已发起支付"
:
"支払いを開始しました"
,
"已发送到 Fluent"
:
"Fluentに送信されました"
,
"已取消 Passkey 注册"
:
"Passkeyの登録がキャンセルされました"
,
"已切换到新版前端,正在刷新页面"
:
"新しいフロントエンドに切り替えました。ページを更新しています"
,
"已同步到渠道"
:
"Synced to Channel"
,
"已启用"
:
"有効"
,
"已启用 Passkey,无需密码即可登录"
:
"Passkeyが有効になり、パスワードなしでログインできます"
,
...
...
@@ -2482,6 +2486,7 @@
"确认删除该规则?"
:
"このルールを削除しますか?"
,
"确认取消密码登录"
:
"パスワードログイン無効化の確認"
,
"确认启用"
:
"有効化を確認"
,
"确认切换"
:
"切り替えを確認"
,
"确认密码"
:
"パスワード(確認用)"
,
"确认导入配置"
:
"設定インポートの確認"
,
"确认延长"
:
"Confirm Extension"
,
...
...
web/classic/src/i18n/locales/ru.json
View file @
dac55f0f
...
...
@@ -934,6 +934,9 @@
"取消"
:
"Отмена"
,
"取消全选"
:
"Отменить выбор всех"
,
"取消选择"
:
"Deselect"
,
"切换到新版前端"
:
"Переключиться на новый интерфейс"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"Страница обновится и откроет новый интерфейс. Продолжить?"
,
"切换失败,请稍后重试"
:
"Не удалось переключиться, повторите попытку позже"
,
"变换"
:
"Трансформация"
,
"变更"
:
"Изменение"
,
"变焦"
:
"Масштабирование"
,
...
...
@@ -1371,6 +1374,7 @@
"已发起支付"
:
"Оплата инициирована"
,
"已发送到 Fluent"
:
"Отправлено в Fluent"
,
"已取消 Passkey 注册"
:
"Регистрация Passkey отменена"
,
"已切换到新版前端,正在刷新页面"
:
"Переключено на новый интерфейс, страница обновляется"
,
"已同步到渠道"
:
"Synced to Channel"
,
"已启用"
:
"Включено"
,
"已启用 Passkey,无需密码即可登录"
:
"Passkey включен, вход без пароля"
,
...
...
@@ -2533,6 +2537,7 @@
"确认删除该规则?"
:
"Confirm delete this rule?"
,
"确认取消密码登录"
:
"Подтвердить отмену входа по паролю"
,
"确认启用"
:
"Подтвердить включение"
,
"确认切换"
:
"Подтвердить переключение"
,
"确认密码"
:
"Подтвердить пароль"
,
"确认导入配置"
:
"Подтвердить импорт конфигурации"
,
"确认延长"
:
"Confirm Extension"
,
...
...
web/classic/src/i18n/locales/vi.json
View file @
dac55f0f
...
...
@@ -914,6 +914,9 @@
"取消"
:
"Hủy"
,
"取消全选"
:
"Bỏ chọn tất cả"
,
"取消选择"
:
"Deselect"
,
"切换到新版前端"
:
"Chuyển sang frontend mới"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"Trang sẽ được làm mới và mở frontend mới. Tiếp tục?"
,
"切换失败,请稍后重试"
:
"Chuyển đổi thất bại, vui lòng thử lại sau"
,
"变换"
:
"Biến đổi"
,
"变更"
:
"Thay đổi"
,
"变焦"
:
"thu phóng"
,
...
...
@@ -1338,6 +1341,7 @@
"已发起支付"
:
"Đã khởi tạo thanh toán"
,
"已发送到 Fluent"
:
"Đã gửi đến Fluent"
,
"已取消 Passkey 注册"
:
"Đã hủy đăng ký Passkey"
,
"已切换到新版前端,正在刷新页面"
:
"Đã chuyển sang frontend mới, đang làm mới trang"
,
"已同步到渠道"
:
"Synced to Channel"
,
"已启用"
:
"Đã bật"
,
"已启用 Passkey,无需密码即可登录"
:
"Đã bật Passkey, đăng nhập không cần mật khẩu"
,
...
...
@@ -2710,6 +2714,7 @@
"确认删除该规则?"
:
"Confirm delete this rule?"
,
"确认取消密码登录"
:
"Xác nhận hủy đăng nhập mật khẩu"
,
"确认启用"
:
"Xác nhận bật"
,
"确认切换"
:
"Xác nhận chuyển đổi"
,
"确认密码"
:
"Xác nhận mật khẩu"
,
"确认导入配置"
:
"Xác nhận nhập cấu hình"
,
"确认延长"
:
"Confirm Extension"
,
...
...
web/classic/src/i18n/locales/zh-CN.json
View file @
dac55f0f
...
...
@@ -761,6 +761,9 @@
"分组速率配置优先级高于全局速率限制。"
:
"分组速率配置优先级高于全局速率限制。"
,
"分组速率限制"
:
"分组速率限制"
,
"分钟"
:
"分钟"
,
"切换到新版前端"
:
"切换到新版前端"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"切换后页面会自动刷新,并进入新版前端。是否继续?"
,
"切换失败,请稍后重试"
:
"切换失败,请稍后重试"
,
"切换为Assistant角色"
:
"切换为Assistant角色"
,
"切换为System角色"
:
"切换为System角色"
,
"切换为单密钥模式"
:
"切换为单密钥模式"
,
...
...
@@ -1307,6 +1310,7 @@
"已停止批量测试"
:
"已停止批量测试"
,
"已关闭后续提醒"
:
"已关闭后续提醒"
,
"已分配内存"
:
"已分配内存"
,
"已切换到新版前端,正在刷新页面"
:
"已切换到新版前端,正在刷新页面"
,
"已切换为Assistant角色"
:
"已切换为Assistant角色"
,
"已切换为System角色"
:
"已切换为System角色"
,
"已切换至最优倍率视图,每个模型使用其最低倍率分组"
:
"已切换至最优倍率视图,每个模型使用其最低倍率分组"
,
...
...
@@ -2482,6 +2486,7 @@
"确认删除该规则?"
:
"确认删除该规则?"
,
"确认取消密码登录"
:
"确认取消密码登录"
,
"确认启用"
:
"确认启用"
,
"确认切换"
:
"确认切换"
,
"确认密码"
:
"确认密码"
,
"确认导入配置"
:
"确认导入配置"
,
"确认延长"
:
"确认延长"
,
...
...
web/classic/src/i18n/locales/zh-TW.json
View file @
dac55f0f
...
...
@@ -911,6 +911,9 @@
"取消"
:
"取消"
,
"取消全选"
:
"取消全選"
,
"取消选择"
:
"取消選擇"
,
"切换到新版前端"
:
"切換到新版前端"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"切換後頁面會自動重新整理,並進入新版前端。是否繼續?"
,
"切换失败,请稍后重试"
:
"切換失敗,請稍後重試"
,
"变换"
:
"變換"
,
"变更"
:
"變更"
,
"变焦"
:
"變焦"
,
...
...
@@ -1334,6 +1337,7 @@
"已发起支付"
:
"已發起支付"
,
"已发送到 Fluent"
:
"已發送到 Fluent"
,
"已取消 Passkey 注册"
:
"已取消 Passkey 註冊"
,
"已切换到新版前端,正在刷新页面"
:
"已切換到新版前端,正在重新整理頁面"
,
"已同步到渠道"
:
"已同步到管道"
,
"已启用"
:
"已啟用"
,
"已启用 Passkey,无需密码即可登录"
:
"已啟用 Passkey,無需密碼即可登錄"
,
...
...
@@ -2492,6 +2496,7 @@
"确认删除该规则?"
:
"確認刪除該規則?"
,
"确认取消密码登录"
:
"確認取消密碼登錄"
,
"确认启用"
:
""
,
"确认切换"
:
"確認切換"
,
"确认密码"
:
"確認密碼"
,
"确认导入配置"
:
"確認導入設定"
,
"确认延长"
:
"確認延長"
,
...
...
web/classic/src/i18n/locales/zh.json
View file @
dac55f0f
...
...
@@ -617,6 +617,9 @@
"取消"
:
"取消"
,
"取消全选"
:
"取消全选"
,
"取消选择"
:
"取消选择"
,
"切换到新版前端"
:
"切换到新版前端"
,
"切换后页面会自动刷新,并进入新版前端。是否继续?"
:
"切换后页面会自动刷新,并进入新版前端。是否继续?"
,
"切换失败,请稍后重试"
:
"切换失败,请稍后重试"
,
"变换"
:
"变换"
,
"变焦"
:
"变焦"
,
"变量值"
:
"变量值"
,
...
...
@@ -903,6 +906,7 @@
"已删除消息及其回复"
:
"已删除消息及其回复"
,
"已发送到 Fluent"
:
"已发送到 Fluent"
,
"已取消 Passkey 注册"
:
"已取消 Passkey 注册"
,
"已切换到新版前端,正在刷新页面"
:
"已切换到新版前端,正在刷新页面"
,
"已同步到渠道"
:
"已同步到渠道"
,
"已启用"
:
"已启用"
,
"已启用 Passkey,无需密码即可登录"
:
"已启用 Passkey,无需密码即可登录"
,
...
...
@@ -1729,6 +1733,7 @@
"确认删除"
:
"确认删除"
,
"确认删除模型"
:
"确认删除模型"
,
"确认取消密码登录"
:
"确认取消密码登录"
,
"确认切换"
:
"确认切换"
,
"确认密码"
:
"确认密码"
,
"确认导入配置"
:
"确认导入配置"
,
"确认延长"
:
"确认延长"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment