问题背景
在开发问卷调查/满意度调查功能时,通常支持多种问题类型:
- 单选题
- 多选题
- 评分题
当用户创建调查问卷,选择评分题类型后,点击保存草稿时出现报错。
问题复现
操作步骤:
- 进入满意度调查功能
- 点击'创建调查'
- 添加一个问题,类型选择'评分'
- 填写问题内容
- 点击'保存草稿'
- 结果:提示报错,保存失败
问题分析
通过代码分析,发现问题根源:
1. 数据模型不完整
评分题的数据结构只定义了 maxScore(最大分值),缺少 minScore(最小分值):
// 错误的数据结构
{
questionContent: "请对服务评分",
voteType: 3, // 3 = 评分题
maxScore: 5, // 缺少 minScore 字段!
}
2. UI 控件缺失
页面模板中只有'最大分值'输入框,没有'最小分值'输入框。
3. 数据提交不完整
提交给后端的数据缺少 minScore 字段,导致后端校验失败。
4. 验证逻辑不全
表单验证只检查了 maxScore,没有验证 minScore 以及两者的关系。
解决方案
方案一:完善数据模型
在表单初始化时添加完整的评分字段:
// 问卷表单数据结构
const surveyForm = ref({
title: '',
description: '',
questions: [
{
questionContent: '',
questionType: 1, // 1=单选,2=多选,3=评分
options: [
{ optionName: '', : },
],
: ,
: ,
: ,
: ,
: ,
: ,
: ,
},
],
});

