一、需求拆解
- 表单分为固定项和动态项
- 不管是固定项和动态项,都分为可填、必填
- 每一个项(item),分为不同的类型,包括 文本输入框(Field),单选(Radio),多选(checkbox),文件上传(Uploader)
- 对于item,有不同的规则校验rule,placeholder,label,name等等,在第二章详细说明
- 提交记录统计
- 申请单模板
二、选项细分
id label name required 是公共属性,其中label为显示名,name为数据库中存放的名称,以下文字省略字段
1. 多选框 Checkbox
- maxCount
- options
- name
- value
2. 单选 RadioR
- options
- name
- value
3. 文本输入框 Field
- maxWord
- placeholder
- default 默认值
- type 输入类型
- text
- tel
- digit
- number
- password
4. 文件上传 Uploader
- maxCount
- maxSize
- onlyAcceptImage 只允许上传图片
5. 开关 Switch
三、规则 Rule
暂时不做
这里的规则,指的是业务规则,而非前端校验规则,不向前端暴露
业务规则可抽象为,该字段对于一个【模板,活动,网点…】,对于【审核通过状态,全部状态】,在【】时间范围内,不能重复【】次。
四、怎么保存记录?
- 通过模板ID,渲染一个申请单【用于新建申请单】
- 通过提交记录,渲染一个申请单,并填充数据 【用于被拒绝后二次申请】
- 通过模板ID,渲染一个模板编辑页【用于编辑模板】
五、跟本次项目相关的业务逻辑
- 业务类型的概念
一个模板关联一个业务类型,且业务类型有分组 - 活动的概念
一个模板关联一个活动
六、统计需求
- 某网点,某客户经理,在本次活动共发了多少张券,提现多少钱,