diff --git a/web/src/components/OperationSetting.js b/web/src/components/OperationSetting.js
index 2e650a5e..d33f0146 100644
--- a/web/src/components/OperationSetting.js
+++ b/web/src/components/OperationSetting.js
@@ -7,7 +7,6 @@ import SettingsLog from '../pages/Setting/Operation/SettingsLog.js';
import SettingsDataDashboard from '../pages/Setting/Operation/SettingsDataDashboard.js';
import SettingsMonitoring from '../pages/Setting/Operation/SettingsMonitoring.js';
import SettingsCreditLimit from '../pages/Setting/Operation/SettingsCreditLimit.js';
-import SettingsMagnification from '../pages/Setting/Operation/SettingsMagnification.js';
import ModelSettingsVisualEditor from '../pages/Setting/Operation/ModelSettingsVisualEditor.js';
import GroupRatioSettings from '../pages/Setting/Operation/GroupRatioSettings.js';
import ModelRatioSettings from '../pages/Setting/Operation/ModelRatioSettings.js';
diff --git a/web/src/components/RateLimitSetting.js b/web/src/components/RateLimitSetting.js
index b6c92917..26d583b9 100644
--- a/web/src/components/RateLimitSetting.js
+++ b/web/src/components/RateLimitSetting.js
@@ -1,16 +1,5 @@
import React, { useEffect, useState } from 'react';
import { Card, Spin, Tabs } from '@douyinfe/semi-ui';
-import SettingsGeneral from '../pages/Setting/Operation/SettingsGeneral.js';
-import SettingsDrawing from '../pages/Setting/Operation/SettingsDrawing.js';
-import SettingsSensitiveWords from '../pages/Setting/Operation/SettingsSensitiveWords.js';
-import SettingsLog from '../pages/Setting/Operation/SettingsLog.js';
-import SettingsDataDashboard from '../pages/Setting/Operation/SettingsDataDashboard.js';
-import SettingsMonitoring from '../pages/Setting/Operation/SettingsMonitoring.js';
-import SettingsCreditLimit from '../pages/Setting/Operation/SettingsCreditLimit.js';
-import SettingsMagnification from '../pages/Setting/Operation/SettingsMagnification.js';
-import ModelSettingsVisualEditor from '../pages/Setting/Operation/ModelSettingsVisualEditor.js';
-import GroupRatioSettings from '../pages/Setting/Operation/GroupRatioSettings.js';
-import ModelRatioSettings from '../pages/Setting/Operation/ModelRatioSettings.js';
import { API, showError, showSuccess } from '../helpers';
diff --git a/web/src/pages/Setting/Model/SettingClaudeModel.js b/web/src/pages/Setting/Model/SettingClaudeModel.js
index 1cddd839..1c82d4dd 100644
--- a/web/src/pages/Setting/Model/SettingClaudeModel.js
+++ b/web/src/pages/Setting/Model/SettingClaudeModel.js
@@ -88,7 +88,7 @@ export default function SettingClaudeModel(props) {
>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
setShowQuotaWarning(true)}
/>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
{
- console.log('Validation passed');
- const updateArray = compareObjects(inputs, inputsRow);
- if (!updateArray.length) return showWarning('你似乎并没有修改什么');
- const requestQueue = updateArray.map((item) => {
- let value = '';
- if (typeof inputs[item.key] === 'boolean') {
- value = String(inputs[item.key]);
- } else {
- value = inputs[item.key];
- }
- return API.put('/api/option/', {
- key: item.key,
- value
- });
- });
- setLoading(true);
- Promise.all(requestQueue)
- .then((res) => {
- if (requestQueue.length === 1) {
- if (res.includes(undefined)) return;
- } else if (requestQueue.length > 1) {
- if (res.includes(undefined))
- return showError('部分保存失败,请重试');
- }
- for (let i = 0; i < res.length; i++) {
- if (!res[i].data.success) {
- return showError(res[i].data.message)
- }
- }
- showSuccess('保存成功');
- props.refresh();
- })
- .catch(error => {
- console.error('Unexpected error in Promise.all:', error);
-
- showError('保存失败,请重试');
- })
- .finally(() => {
- setLoading(false);
- });
- }).catch((error) => {
- console.error('Validation failed:', error);
- showError('请检查输入');
- });
- } catch (error) {
- showError('请检查输入');
- console.error(error);
- }
- }
-
- async function resetModelRatio() {
- try {
- let res = await API.post(`/api/option/rest_model_ratio`);
- // return {success, message}
- if (res.data.success) {
- showSuccess(res.data.message);
- props.refresh();
- } else {
- showError(res.data.message);
- }
- } catch (error) {
- showError(error);
- }
- }
-
- useEffect(() => {
- const currentInputs = {};
- for (let key in props.options) {
- if (Object.keys(inputs).includes(key)) {
- currentInputs[key] = props.options[key];
- }
- }
- setInputs(currentInputs);
- setInputsRow(structuredClone(currentInputs));
- refForm.current.setValues(currentInputs);
- }, [props.options]);
-
- return (
-
-
-
-
- {
- return verifyJSON(value);
- },
- message: '不是合法的 JSON 字符串'
- }
- ]}
- onChange={(value) =>
- setInputs({
- ...inputs,
- ModelPrice: value
- })
- }
- />
-
-
-
-
- {
- return verifyJSON(value);
- },
- message: '不是合法的 JSON 字符串'
- }
- ]}
- onChange={(value) =>
- setInputs({
- ...inputs,
- ModelRatio: value
- })
- }
- />
-
-
-
-
- {
- return verifyJSON(value);
- },
- message: '不是合法的 JSON 字符串'
- }
- ]}
- onChange={(value) =>
- setInputs({
- ...inputs,
- CompletionRatio: value
- })
- }
- />
-
-
-
-
- {
- return verifyJSON(value);
- },
- message: '不是合法的 JSON 字符串'
- }
- ]}
- onChange={(value) =>
- setInputs({
- ...inputs,
- GroupRatio: value
- })
- }
- />
-
-
-
-
- {
- return verifyJSON(value);
- },
- message: '不是合法的 JSON 字符串'
- }
- ]}
- onChange={(value) =>
- setInputs({
- ...inputs,
- UserUsableGroups: value
- })
- }
- />
-
-
-
-
-
-
- {
- resetModelRatio();
- }}
- >
-
-
-
-
- );
-}
diff --git a/web/src/pages/Setting/Operation/SettingsMonitoring.js b/web/src/pages/Setting/Operation/SettingsMonitoring.js
index 18c368aa..5cd3a592 100644
--- a/web/src/pages/Setting/Operation/SettingsMonitoring.js
+++ b/web/src/pages/Setting/Operation/SettingsMonitoring.js
@@ -78,7 +78,7 @@ export default function SettingsMonitoring(props) {
>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+