fix(web): 系统设置 CRUD 修复 — version 乐观锁 + 语言字段映射 + JSON 显示
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

- API 层所有 Info/Request 接口添加 version 字段,update 函数传递 version
- delete 函数改为 client.delete(url, { data: { version } }) 发送 JSON body
- LanguageInfo.enabled → is_active,匹配后端 LanguageResp 字段名
- LanguageManager 编辑弹窗简化为只读详情(后端仅支持 is_active 切换)
- SystemSettings 设置值显示改用 JSON.stringify 而非 String()
- SystemSettings updateSetting 发送解析后的 JSON 对象而非字符串
This commit is contained in:
iven
2026-04-26 01:28:13 +08:00
parent b4735213c5
commit 2539e5fc44
10 changed files with 79 additions and 101 deletions

View File

@@ -6,6 +6,7 @@ export interface SettingInfo {
scope_id?: string;
setting_key: string;
setting_value: unknown;
version: number;
}
export async function getSetting(key: string, scope?: string, scopeId?: string) {
@@ -16,14 +17,14 @@ export async function getSetting(key: string, scope?: string, scopeId?: string)
return data.data;
}
export async function updateSetting(key: string, settingValue: unknown) {
export async function updateSetting(key: string, settingValue: unknown, version?: number) {
const { data } = await client.put<{ success: boolean; data: SettingInfo }>(
`/config/settings/${key}`,
{ setting_value: settingValue },
{ setting_value: settingValue, version },
);
return data.data;
}
export async function deleteSetting(key: string) {
await client.delete(`/config/settings/${encodeURIComponent(key)}`);
export async function deleteSetting(key: string, version: number) {
await client.delete(`/config/settings/${encodeURIComponent(key)}`, { data: { version } });
}