活动报名表单看起来只是若干输入框,真正影响后续运营的,是字段变化后数据还能不能解释、审核和导出。若每场活动都单独写一套页面,字段一调整就要改代码;完全依赖前端动态渲染,又容易漏掉服务端校验。
先把表单定义成有版本的配置
可将字段定义为结构化配置:稳定的字段标识、显示名称、控件类型、是否必填、校验规则和可见条件。用户提交的数据按字段标识保存,而不是按页面显示名称保存。这样即使运营人员把“联系电话”改成“手机号”,历史数据仍可正确读取。
前后端各做一次校验
- 前端根据配置显示控件并给出即时反馈。
- 服务端根据该活动当前生效的表单版本重新校验必填、长度、格式和条件联动。
- 保存提交时记录表单版本及字段快照,保证日后可以还原提交时的规则。
不能只相信浏览器传来的字段清单或“已通过校验”标记;所有字段都应由服务端确认属于该活动的有效配置。
处理字段演进
已经有人报名后,建议发布新版本而不是覆盖旧配置。新报名使用新版本,历史报名保留原始快照;导出时再按统一列映射整理。对于身份证号、手机号等敏感字段,应限制可见角色、避免写入普通日志,并在导出前再次确认权限。
落地时可以先从文本、单选、多选、日期等基础控件开始,再逐步增加条件显示。先明确数据结构和变更规则,后续扩展才不会被表单页面绑死。