2.3 KiB
2.3 KiB
代码调整记录 - 2025-07-17
基本信息
- 日期:2025-07-17 16:30:45
- 操作人:wuzilong
- 模块:后勤满意度调查系统
- 功能点:题目选项保存功能
- 调整类型:功能修复
问题描述
在满意度调查系统的题目管理页面中,当通过"设置选项"弹窗保存选项数据时,如果用户快速连续点击保存按钮,会触发服务端的幂等性控制,导致出现"不允许重复提交,请稍候再试"的错误提示,影响用户体验。
修复内容
修改了 web/src/views/hq/satQuestion/index.vue 文件,为选项保存功能添加前端防重复提交机制:
- 在
optionDialog对象中添加saveLoading状态变量 - 在
saveOptions函数开始处添加状态检查,防止重复调用 - 为保存按钮添加
:loading="optionDialog.saveLoading"绑定,在处理中禁用按钮 - 在请求完成后(无论成功或失败)重置
saveLoading状态
技术说明
这是一个前端防重复提交的典型实现方式,具体流程如下:
1. 用户点击保存按钮 -> 检查saveLoading状态
2. 如果saveLoading为true,直接返回不执行任何操作
3. 如果saveLoading为false,设置为true并禁用按钮
4. 执行保存操作
5. 操作完成后(无论成功或失败)重置saveLoading为false
此修复与前一次选项排序更新显示功能的修复配合,提供了更完整的用户体验:
- 防止重复提交错误
- 保存操作加载状态可视化
- 保存后立即显示更新的排序结果
测试方法
- 进入后勤满意度调查系统 -> 题库管理
- 选择一个单选或多选题,点击"设置选项"按钮
- 修改选项内容或排序值
- 快速连续多次点击"保存"按钮
- 验证按钮是否显示loading状态,且不会出现重复提交错误
- 验证数据保存成功后,排序值正确更新
相关日志
后端日志显示在修复前存在多个重复的PUT请求,导致幂等性控制触发:
2025-07-17 21:37:58 [XNIO-1 task-2] ERROR o.d.c.w.h.GlobalExceptionHandler
- 不允许重复提交,请稍候再试
2025-07-17 21:37:58 [XNIO-1 task-7] ERROR o.d.c.w.h.GlobalExceptionHandler
- 不允许重复提交,请稍候再试
相关API文档
该功能的API文档位于:docs/开发文档/API/后勤满意度调查API.md