Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-17-cursor-question-score.md
T

1.7 KiB

代码调整记录 2025-07-17

基本信息

  • 日期:2025-07-17 15:10:45
  • 开发者:Cursor AI
  • 类型:功能增强

调整内容

1. 增加保存题目选项时自动计算并更新题目分值功能

功能描述

在保存题目选项时,自动计算题目分值并更新到题目表中,计算规则如下:

  1. 单选题的分值是题目选项中最大的分值
  2. 多选题的分值是所有题目选项的分值之和

修改内容

  1. 在前端类型定义文件中添加题目分值字段:

    • SatQuestionVO 和 SatQuestionForm 中增加 score 字段
  2. 在saveOptions函数中添加计算和更新题目分值的逻辑:

    • 根据题目类型判断计算方式
    • 单选题:取所有选项中最大分值
    • 多选题:取所有选项分值之和
    • 调用updateSatQuestion接口更新题目分值

涉及文件

  • web/src/api/hq/satQuestion/types.ts
  • web/src/views/hq/satQuestion/index.vue

实现方式

  1. 过滤有效选项(排除空内容选项)
  2. 根据题目类型计算分值:
    • 单选题:Math.max(...validOptions.map(opt => Number(opt.optionScore) || 0))
    • 多选题:validOptions.reduce((sum, opt) => sum + (Number(opt.optionScore) || 0), 0)
  3. 调用更新接口,仅更新题目ID和分值字段

测试信息

  • 测试方式:创建/修改选项后检查题目分值是否正确更新
  • 测试内容:
    1. 单选题:确认分值为最大选项分值
    2. 多选题:确认分值为所有选项分值之和

备注

  • 此功能使题目分值能够实时反映选项的变化,方便后续在问卷中计算总分
  • 数据库表hq_sat_question中已有score字段,无需额外更改数据库结构