fix(webui): 保存配置覆写时保留投稿模板关联 (#1685)

覆写弹窗的 entity 白名单漏了 upload_streamers_id,PUT 整行覆盖后外键变 NULL,后续录像不再投稿并走默认 rm。
This commit is contained in:
Noah authored and GitHub committed 2026-09-13 15:40:03 +00:00
1 parent 9445db636b
commit 40234133e3
2 files changed
+15 -2

No files matched your search

+2
View File
@@ -99,7 +99,9 @@ export interface LiveStreamerEntity {
filename: string;
split_time?: number;
split_size?: number;
filename_prefix?: string;
upload_id?: number;
upload_streamers_id?: number | null;
status?: string;
upload_status?: string;
statusTag?: React.ReactNode;
+13 -2
View File
@@ -92,9 +92,11 @@ const OverrideModal: React.FC<TemplateModalProps> = ({ children, entity, onOk })
'url',
'remark',
'filename',
'filename_prefix',
'split_time',
'split_size',
'upload_id',
'upload_streamers_id',
'status',
'format',
'time_range',
@@ -124,7 +126,6 @@ const OverrideModal: React.FC<TemplateModalProps> = ({ children, entity, onOk })
const overrideConfig = { ...(values.override || {}) }
Object.keys(values).forEach(key => {
console.log(key, values[key])
if (!entityFields.has(key)) {
if (values[key] !== undefined) {
overrideConfig[key] = values[key] === '' ? null : values[key]
@@ -134,8 +135,18 @@ const OverrideModal: React.FC<TemplateModalProps> = ({ children, entity, onOk })
})
values.override = overrideConfig
// PUT /v1/streamers 会按整行覆盖。漏掉 upload_streamers_id 会被写成 NULL,
// 之后录像走默认 rm 且不再投稿。以当前行打底,再叠表单字段。
const payload = {
...entity,
...values,
override: overrideConfig,
upload_streamers_id:
values.upload_streamers_id ?? entity?.upload_streamers_id ?? null,
}
// 处理循环引用
const cleanValues = removeCircularReferences(values)
const cleanValues = removeCircularReferences(payload)
await onOk(cleanValues)
setVisible(false)
return