| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | import React, { useEffect, useState } from 'react';
|
| | import { Card, Spin } from '@douyinfe/semi-ui';
|
| | import SettingsGeneral from '../../pages/Setting/Operation/SettingsGeneral';
|
| | import SettingsHeaderNavModules from '../../pages/Setting/Operation/SettingsHeaderNavModules';
|
| | import SettingsSidebarModulesAdmin from '../../pages/Setting/Operation/SettingsSidebarModulesAdmin';
|
| | import SettingsSensitiveWords from '../../pages/Setting/Operation/SettingsSensitiveWords';
|
| | import SettingsLog from '../../pages/Setting/Operation/SettingsLog';
|
| | import SettingsMonitoring from '../../pages/Setting/Operation/SettingsMonitoring';
|
| | import SettingsCreditLimit from '../../pages/Setting/Operation/SettingsCreditLimit';
|
| | import SettingsCheckin from '../../pages/Setting/Operation/SettingsCheckin';
|
| | import { API, showError, toBoolean } from '../../helpers';
|
| |
|
| | const OperationSetting = () => {
|
| | let [inputs, setInputs] = useState({
|
| |
|
| | QuotaForNewUser: 0,
|
| | PreConsumedQuota: 0,
|
| | QuotaForInviter: 0,
|
| | QuotaForInvitee: 0,
|
| | 'quota_setting.enable_free_model_pre_consume': true,
|
| | PostpaidEnabled: false,
|
| | PostpaidCreditDays: 0,
|
| |
|
| |
|
| | TopUpLink: '',
|
| | 'general_setting.docs_link': '',
|
| | QuotaPerUnit: 0,
|
| | USDExchangeRate: 0,
|
| | RetryTimes: 0,
|
| | 'general_setting.quota_display_type': 'USD',
|
| | DisplayTokenStatEnabled: false,
|
| | DefaultCollapseSidebar: false,
|
| | DemoSiteEnabled: false,
|
| | SelfUseModeEnabled: false,
|
| |
|
| |
|
| | HeaderNavModules: '',
|
| |
|
| |
|
| | SidebarModulesAdmin: '',
|
| |
|
| |
|
| | CheckSensitiveEnabled: false,
|
| | CheckSensitiveOnPromptEnabled: false,
|
| | SensitiveWords: '',
|
| |
|
| |
|
| | LogConsumeEnabled: false,
|
| |
|
| |
|
| | ChannelDisableThreshold: 0,
|
| | QuotaRemindThreshold: 0,
|
| | AutomaticDisableChannelEnabled: false,
|
| | AutomaticEnableChannelEnabled: false,
|
| | AutomaticDisableKeywords: '',
|
| | AutomaticDisableStatusCodes: '401',
|
| | AutomaticRetryStatusCodes:
|
| | '100-199,300-399,401-407,409-499,500-503,505-523,525-599',
|
| | 'monitor_setting.auto_test_channel_enabled': false,
|
| | 'monitor_setting.auto_test_channel_minutes': 10 ,
|
| | 'checkin_setting.enabled': false,
|
| | 'checkin_setting.min_quota': 1000,
|
| | 'checkin_setting.max_quota': 10000,
|
| | });
|
| |
|
| | let [loading, setLoading] = useState(false);
|
| |
|
| | const getOptions = async () => {
|
| | const res = await API.get('/api/option/');
|
| | const { success, message, data } = res.data;
|
| | if (success) {
|
| | let newInputs = {};
|
| | data.forEach((item) => {
|
| | if (typeof inputs[item.key] === 'boolean') {
|
| | newInputs[item.key] = toBoolean(item.value);
|
| | } else {
|
| | newInputs[item.key] = item.value;
|
| | }
|
| | });
|
| |
|
| | setInputs(newInputs);
|
| | } else {
|
| | showError(message);
|
| | }
|
| | };
|
| | async function onRefresh() {
|
| | try {
|
| | setLoading(true);
|
| | await getOptions();
|
| |
|
| | } catch (error) {
|
| | showError('刷新失败');
|
| | } finally {
|
| | setLoading(false);
|
| | }
|
| | }
|
| |
|
| | useEffect(() => {
|
| | onRefresh();
|
| | }, []);
|
| |
|
| | return (
|
| | <>
|
| | <Spin spinning={loading} size='large'>
|
| | {/* 通用设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsGeneral options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | {/* 顶栏模块管理 */}
|
| | <div style={{ marginTop: '10px' }}>
|
| | <SettingsHeaderNavModules options={inputs} refresh={onRefresh} />
|
| | </div>
|
| | {/* 左侧边栏模块管理(管理员) */}
|
| | <div style={{ marginTop: '10px' }}>
|
| | <SettingsSidebarModulesAdmin options={inputs} refresh={onRefresh} />
|
| | </div>
|
| | {/* 屏蔽词过滤设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsSensitiveWords options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | {/* 日志设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsLog options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | {/* 监控设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsMonitoring options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | {/* 额度设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsCreditLimit options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | {/* 签到设置 */}
|
| | <Card style={{ marginTop: '10px' }}>
|
| | <SettingsCheckin options={inputs} refresh={onRefresh} />
|
| | </Card>
|
| | </Spin>
|
| | </>
|
| | );
|
| | };
|
| |
|
| | export default OperationSetting;
|
| |
|
| |
|