Backend:
• ConsoleSetting
- Introduce `ApiInfoEnabled`, `UptimeKumaEnabled`, `AnnouncementsEnabled`, `FAQEnabled` (default true).
• misc.GetStatus
- Refactor to build response map dynamically.
- Return the four *_enabled flags.
- Only append `api_info`, `announcements`, `faq` when their respective flags are true.
Frontend:
• Detail page
- Remove all `self_use_mode_enabled` checks.
- Render API, Announcement, FAQ and Uptime panels based on the new *_enabled flags.
• Dashboard → Settings
- Added `Switch` controls in:
· SettingsAPIInfo.js
· SettingsAnnouncements.js
· SettingsFAQ.js
· SettingsUptimeKuma.js
- Each switch persists its state via `/api/option` to the corresponding
`console_setting.<panel>_enabled` key and reflects current status on load.
- DashboardSetting.js now initialises and refreshes the four *_enabled keys so
child components receive accurate panel states.
Fixes:
• Switches previously defaulted to “on” because *_enabled keys were missing.
They are now included, ensuring correct visual state when panels are disabled.
No breaking changes; existing functionality remains untouched aside from the
new per-panel visibility control.
41 lines
1.6 KiB
Go
41 lines
1.6 KiB
Go
package console_setting
|
||
|
||
import "one-api/setting/config"
|
||
|
||
type ConsoleSetting struct {
|
||
ApiInfo string `json:"api_info"` // 控制台 API 信息 (JSON 数组字符串)
|
||
UptimeKumaUrl string `json:"uptime_kuma_url"` // Uptime Kuma 服务地址(如 https://status.example.com )
|
||
UptimeKumaSlug string `json:"uptime_kuma_slug"` // Uptime Kuma Status Page Slug
|
||
Announcements string `json:"announcements"` // 系统公告 (JSON 数组字符串)
|
||
FAQ string `json:"faq"` // 常见问题 (JSON 数组字符串)
|
||
ApiInfoEnabled bool `json:"api_info_enabled"` // 是否启用 API 信息面板
|
||
UptimeKumaEnabled bool `json:"uptime_kuma_enabled"` // 是否启用 Uptime Kuma 面板
|
||
AnnouncementsEnabled bool `json:"announcements_enabled"` // 是否启用系统公告面板
|
||
FAQEnabled bool `json:"faq_enabled"` // 是否启用常见问答面板
|
||
}
|
||
|
||
// 默认配置
|
||
var defaultConsoleSetting = ConsoleSetting{
|
||
ApiInfo: "",
|
||
UptimeKumaUrl: "",
|
||
UptimeKumaSlug: "",
|
||
Announcements: "",
|
||
FAQ: "",
|
||
ApiInfoEnabled: true,
|
||
UptimeKumaEnabled: true,
|
||
AnnouncementsEnabled: true,
|
||
FAQEnabled: true,
|
||
}
|
||
|
||
// 全局实例
|
||
var consoleSetting = defaultConsoleSetting
|
||
|
||
func init() {
|
||
// 注册到全局配置管理器,键名为 console_setting
|
||
config.GlobalConfig.Register("console_setting", &consoleSetting)
|
||
}
|
||
|
||
// GetConsoleSetting 获取 ConsoleSetting 配置实例
|
||
func GetConsoleSetting() *ConsoleSetting {
|
||
return &consoleSetting
|
||
} |