web UI:没提交的文本框不再被状态刷新刷回原值

页面每 3 秒拉一次 /api/status 回填表单,而回填只跳过「正在聚焦」的元素,
所以文本框改完点一下别处(或按回车,输入框不在 form 里根本不会提交),
几秒后就被服务端的旧值盖回去,看起来像「改了又自己恢复」——
改合成码率时的现象就是输入框里明明是 6500、过了 3 秒自己变回 1500。
服务端日志里一条 6500 的保存记录都没有,全是前端盖的。

- 表单字段加上「未提交」标记,定时刷新不再覆盖;提交成功才清掉
- 回车等于点保存设置(主播码率框回车即提交,新增 uid 回车即添加)
- 有没提交的内容时顶栏提示「有未保存的修改」,保存按钮右上角标红点,
  离开页面前再问一次
- 保存失败保留用户填的内容,不再静默回滚,提示里带上服务端给的原因
- 开关、下拉的立即保存用服务端值填还没提交的字段,避免一个框填错
  (如成片目录不存在)把开关也一起打回去
- 主播列表里的码率框:重建列表时保留用户改过还没提交的值,填错立刻
  回填服务端值
This commit is contained in:
tamakyi
2026-09-25 15:50:34 +08:00
parent 470b7668ac
commit 0dfa224bac
2 changed files with 120 additions and 45 deletions
+3 -1
View File
@@ -156,7 +156,9 @@ web UI 默认通过`http://localhost:51880`访问(端口对应`webPort`),
| 文件 | 磁盘剩余容量、录播和成片的文件列表 |
| 设置 | 是否允许外网访问、管理口令的查看与更换 |
开关和下拉框改完立即保存;文本框(目录、地址、口令这些)填完点右上角的`保存设置`才生效,这一条在每个有文本框的分区里也写了提示。
开关和下拉框改完立即保存;文本框(目录、地址、口令这些)填完按回车或点右上角的`保存设置`才生效,这一条在每个有文本框的分区里也写了提示。
页面每 3 秒从服务端取一次状态回填表单,但**不会覆盖你改过还没提交的字段**,所以填好的数字不会过几秒又被刷回旧值;有没提交的内容时顶栏会显示`有未保存的修改`(保存按钮右上角也有个红点),此时离开或刷新页面浏览器会再问一次。保存失败(比如成片目录填了个不存在的路径)时提示里会带上原因,并且**输入框里填的内容会保留**,改对了再存即可;开关和下拉框的立即保存不会带上前述还没提交的文本框内容,所以某个框填错也不会连累开关保存失败。
顶栏右上角一直显示当前状态(`录制中 N` / `直播中 N` / `空闲`)。窄屏上按钮收起成短文案、标题居中,手机上也能正常用;页面跟随系统的深浅色设置,深色模式下日志和表单自动变深色,不用额外配置。