需求表单完整数据(3类可用版本)
适配你截图的新建需求表单+ 之前定义的「Vue前端提交 + SpringBoot后端接收」规范,提供✅前端提交JSON、✅数据库测试SQL、✅若依字典配置三类可直接复用的数据,字段完整、格式合规、贴合业务场景。
一、✅ 前端Vue提交后端的完整JSON数据(核心)
✔️ 版本1:正式提交(完整有效值,含角色与人员)
可直接复制到前端接口请求体、Postman调试,完全匹配RequirementCreateDTO接收结构,包含需求主数据+角色人员关联数据全字段:
{"requirement":{"name":"用户中心账号体系升级需求","type":"function","description":"1. 新增手机号一键登录功能;2. 优化密码强度校验规则,支持特殊字符;3. 增加账号异地登录提醒;4. 对接企业微信扫码登录接口,实现免密登录","businessLine":"user_center","priority":"high","expectedDeliveryTime":"2026-02-28 00:00:00","functionPoint":28.5,"followerId":10001,"pullGroupType":"auto","iterationId":2001,"versionId":3002,"isDraft":0},"roleList":[{"roleCode":"PM","roleName":"项目经理","userId":10001,"userName":"张三"},{"roleCode":"RD","roleName":"研发","userId":10002,"userName":"李四"},{"roleCode":"QA","roleName":"测试","userId":10003,"userName":"王五"},{"roleCode":"UX","roleName":"UI/UX设计","userId":10004,"userName":"赵六"},{"roleCode":"Writer","roleName":"文档","userId":10005,"userName":"钱七"}]}✔️ 版本2:草稿提交(部分字段为空,标记草稿)
适配「存草稿」功能,核心必填字段有值、非必填可空,isDraft=1标记草稿状态:
{"requirement":{"name":"订单模块退款流程优化(草稿)","type":"optimize","description":"待补充详细优化方案","businessLine":"","priority":"","expectedDeliveryTime":null,"functionPoint":null,"followerId":null,"pullGroupType":"no","iterationId":null,"versionId":null,"isDraft":1},"roleList":[{"roleCode":"RD","roleName":"研发","userId":null,"userName":""}]}二、✅ 数据库测试插入SQL(直接执行初始化)
适配之前创建的requirement(需求主表)、requirement_role(角色关联表),可直接在MySQL执行,生成测试数据,关联ID完全对应:
-- 1. 插入需求主表数据INSERTINTO`requirement`(`name`,`type`,`description`,`business_line`,`priority`,`expected_delivery_time`,`function_point`,`follower_id`,`pull_group_type`,`iteration_id`,`version_id`,`is_draft`,`create_by`,`create_time`)VALUES('用户中心账号体系升级需求','function','1. 新增手机号一键登录功能;2. 优化密码强度校验规则,支持特殊字符;3. 增加账号异地登录提醒;4. 对接企业微信扫码登录接口,实现免密登录','user_center','high','2026-02-28 00:00:00',28.50,10001,'auto',2001,3002,0,'admin',NOW());-- 2. 插入角色与人员关联数据(关联上方需求ID,需替换为实际自增ID)INSERTINTO`requirement_role`(`requirement_id`,`role_code`,`role_name`,`user_id`,`user_name`)VALUES(1,'PM','项目经理',10001,'张三'),(1,'RD','研发',10002,'李四'),(1,'QA','测试',10003,'王五'),(1,'UX','UI/UX设计',10004,'赵六'),(1,'Writer','文档',10005,'钱七');三、✅ 若依字典配置SQL(枚举值标准化)
需求表单中的「需求类型、优先级」是若依字典管理的枚举字段,执行以下SQL直接初始化字典类型+字典数据,前端下拉框可直接读取:
-- 1. 新增字典类型:需求类型INSERTINTOsys_dict_type(dict_name,dict_type,status,create_by,create_time)VALUES('需求类型','requirement_type','0','admin',NOW());-- 需求类型字典数据INSERTINTOsys_dict_data(dict_type,dict_label,dict_value,sort)VALUES('requirement_type','功能需求','function',1),('requirement_type','优化需求','optimize',2),('requirement_type','BUG修复','bug_fix',3),('requirement_type','技术调研','research',4);-- 2. 新增字典类型:需求优先级INSERTINTOsys_dict_type(dict_name,dict_type,status,create_by,create_time)VALUES('需求优先级','requirement_priority','0','admin',NOW());-- 优先级字典数据INSERTINTOsys_dict_data(dict_type,dict_label,dict_value,sort)VALUES('requirement_priority','高','high',1),('requirement_priority','中','medium',2),('requirement_priority','低','low',3);四、✅ 核心字段说明&规范(前后端通用)
✅ 1. 主表核心字段取值规范
| 字段名 | 类型 | 取值说明 | 必填 |
|---|---|---|---|
name | 字符串 | 需求名称,长度≤200 | ✅是 |
type | 字符串 | 字典值:function/optimize/bug_fix/research | ✅是 |
priority | 字符串 | 字典值:high/medium/low | ❌否 |
pullGroupType | 字符串 | auto=自动拉群 / no=不拉群 / bind=绑定现有群 | ✅是 |
isDraft | 数字 | 0=正式提交 / 1=草稿 | ✅是 |
functionPoint | 小数 | 保留2位小数,估值用 | ❌否 |
✅ 2. 角色人员列表字段规范
roleList数组中每个对象固定4个核心字段,前端下拉选择后自动赋值:
{"roleCode":"角色编码(唯一)",// 如PM/RD/QA,不可重复"roleName":"角色名称",// 如项目经理/研发,与编码一一对应"userId":"用户ID",// 关联sys_user.userId,可为null"userName":"用户姓名"// 选中用户后自动填充,可为空}✅ 3. 前后端对接注意事项
- 前端提交时,
expectedDeliveryTime时间格式必须为yyyy-MM-dd HH:mm:ss(Element日期选择器可直接配置); functionPoint为数值类型,前端需用v-model.number绑定,避免传字符串;- 后端接收时,
RequirementCreateDTO自动绑定JSON层级,无需额外处理; - 角色列表去重校验:前端添加时校验
roleCode不重复,后端表中已加唯一索引uk_req_role(需求ID+角色编码)双重保障。
五、✅ 扩展:空数据模板(前端重置/初始化用)
Vue组件初始化表单、点击「取消」重置时,可直接用此空模板赋值,保证字段类型统一:
// 前端data中表单初始化模板formTemplate={name:"",type:"",description:"",businessLine:"",priority:"",expectedDeliveryTime:null,functionPoint:null,followerId:null,pullGroupType:"no",// 默认不拉群iterationId:null,versionId:null,isDraft:0}// 角色列表初始化模板roleListTemplate=[]以上所有数据开箱即用,可直接用于:
✅ Vue前端表单绑定/接口提交;
✅ SpringBoot后端接口调试;
✅ MySQL数据库初始化;
✅ 若依字典配置。