From 11a23c92dfdccc5db703814f7b05d39cad769842 Mon Sep 17 00:00:00 2001 From: lq1405 <2769838458@qq.com> Date: Fri, 18 Oct 2024 12:46:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AF=E4=BB=B6=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/routes.ts | 14 ++ src/access.ts | 11 +- src/app.tsx | 2 - src/locales/zh-CN/menu.ts | 3 + .../LaitoolOptions/BasicOptions/index.tsx | 101 +++++++++++++ .../DubSetting/DubSettingTTsOptions/index.tsx | 64 +++++++++ .../LaitoolOptions/DubSetting/index.tsx | 51 +++++++ .../LaitoolOptions/LaitoolOptions/index.tsx | 38 +++++ .../Prompt/PromptTypeManagement/index.tsx | 2 +- src/pages/TemplateContainer.tsx | 7 +- src/pages/User/UserManagement/index.tsx | 2 - src/requestErrorConfig.ts | 12 +- src/services/enum/optionEnum.ts | 5 + src/services/services/login.ts | 6 +- src/services/services/options/optionsTool.ts | 135 ++++++++++++++++++ src/services/services/prompt.ts | 6 +- src/services/typing/access.d.ts | 7 + src/services/typing/options/dub.d.ts | 15 ++ src/services/typing/options/option.d.ts | 9 ++ src/store/options.ts | 13 ++ src/store/software.ts | 1 + 21 files changed, 482 insertions(+), 22 deletions(-) create mode 100644 src/pages/Options/LaitoolOptions/BasicOptions/index.tsx create mode 100644 src/pages/Options/LaitoolOptions/DubSetting/DubSettingTTsOptions/index.tsx create mode 100644 src/pages/Options/LaitoolOptions/DubSetting/index.tsx create mode 100644 src/pages/Options/LaitoolOptions/LaitoolOptions/index.tsx create mode 100644 src/services/enum/optionEnum.ts create mode 100644 src/services/services/options/optionsTool.ts create mode 100644 src/services/typing/options/dub.d.ts create mode 100644 src/services/typing/options/option.d.ts create mode 100644 src/store/options.ts diff --git a/config/routes.ts b/config/routes.ts index 90f2019..e3fa896 100644 --- a/config/routes.ts +++ b/config/routes.ts @@ -62,6 +62,20 @@ export default [ } ] }, + { + name: 'options', + path: '/options', + icon: 'Tool', + access: 'canOptions', + routes: [ + { + name: 'laitoolOptions', + path: '/options/laitoolOptions', + component: './Options/LaitoolOptions/LaitoolOptions/index', + access: 'canLaitoolOptions', + } + ] + }, { path: '/roleManagement', name: 'roleManagement', diff --git a/src/access.ts b/src/access.ts index fb53461..d212ec8 100644 --- a/src/access.ts +++ b/src/access.ts @@ -17,6 +17,9 @@ export default function access(initialState: { currentUser?: API.CurrentUser } | isSuperAdmin: false, isAdminOrSuperAdmin: false, + canOptions: false, + canLaitoolOptions: false, + canMachineManagement: false, canAddMachine: true, canEditMachine: false, @@ -45,7 +48,7 @@ export default function access(initialState: { currentUser?: API.CurrentUser } | access = { ...access, canUserManagement: true, - + canMachineManagement: true, canUpgradeMachine: true } @@ -61,6 +64,9 @@ export default function access(initialState: { currentUser?: API.CurrentUser } | isAdmin: true, isAdminOrSuperAdmin: true, + canOptions: true, + canLaitoolOptions: true, + canMachineManagement: true, canEditMachine: true, canDeleteMachine: true, @@ -81,6 +87,9 @@ export default function access(initialState: { currentUser?: API.CurrentUser } | isSuperAdmin: true, isAdminOrSuperAdmin: true, + canOptions: true, + canLaitoolOptions: true, + canMachineManagement: true, canEditMachine: true, canDeleteMachine: true, diff --git a/src/app.tsx b/src/app.tsx index caa19c6..107c55f 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -52,7 +52,6 @@ export async function getInitialState(): Promise<{ // 如果不是登录页面,执行 const { location } = history; - debugger; if (location.pathname !== loginPath && !location.pathname.startsWith('/user/register')) { let currentUserString = localStorage.getItem('userInfo'); let currentUser = currentUserString ? JSON.parse(currentUserString) : null; @@ -184,7 +183,6 @@ export function rootContainer(container: React.ReactNode) { */ export const request = { ...errorConfig, - prefix: "https://localhost:44362", timeout: 60000, }; diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts index d2f8633..259cf71 100644 --- a/src/locales/zh-CN/menu.ts +++ b/src/locales/zh-CN/menu.ts @@ -7,6 +7,9 @@ export default { 'menu.prompt.prompt-type': '提示词类型', 'menu.prompt.prompt-management': '提示词管理', + 'menu.options': '配置管理', + 'menu.options.laitoolOptions': 'Laitool配置', + 'menu.roleManagement': '角色管理', 'menu.userManagement': '用户管理', diff --git a/src/pages/Options/LaitoolOptions/BasicOptions/index.tsx b/src/pages/Options/LaitoolOptions/BasicOptions/index.tsx new file mode 100644 index 0000000..024426d --- /dev/null +++ b/src/pages/Options/LaitoolOptions/BasicOptions/index.tsx @@ -0,0 +1,101 @@ +import { GetOptions, getOptionsStringValue, SaveOptions } from '@/services/services/options/optionsTool'; +import { useOptionsStore } from '@/store/options'; +import { useSoftStore } from '@/store/software'; +import { Button, Card, Form, Input } from 'antd'; +import TextArea from 'antd/es/input/TextArea'; +import { message } from 'antd/lib'; +import React, { useEffect } from 'react'; + +const BasicOptions: React.FC = () => { + + const { setTopSpinning, setTopSpinTip } = useSoftStore(); + const [messageApi, messageHolder] = message.useMessage(); + const { laitoolOptions, setLaitoolOptions } = useOptionsStore(); + const [form] = Form.useForm(); + + + useEffect(() => { + setTopSpinning(true); + setTopSpinTip("加载信息中"); + // 这边加载所有的配音数据 + GetOptions("software").then((res) => { + setLaitoolOptions(res); + form.setFieldsValue({ + LaitoolHomePage: getOptionsStringValue(res, 'LaitoolHomePage', ""), + LaitoolUpdateContent: getOptionsStringValue(res, 'LaitoolUpdateContent', ""), + LaitoolNotice: getOptionsStringValue(res, 'LaitoolNotice', ""), + LaitoolVersion: getOptionsStringValue(res, 'LaitoolVersion', ""), + }); + } + ).catch((err: any) => { + messageApi.error(err.message); + }).finally(() => { + console.log('finally'); + setTopSpinning(false); + }); + + }, []); + + + async function onFinish(values: any): Promise { + setTopSpinning(true); + setTopSpinTip("正在保存通用设置"); + try { + // 这边保存所有的配音数据 + await SaveOptions(values); + // 判断Option中的key是不是在属性上 + for (let key in values) { + setLaitoolOptions(laitoolOptions.map((item: OptionModel.Option) => { + if (item.key === key) { + item.value = values[key] + } + return item + })); + } + messageApi.success('设置成功'); + } catch (error: any) { + messageApi.error(error.message); + } finally { + setTopSpinning(false); + } + } + + return ( +
+ +
+ + + + +