自定义表单功能

黄鹏宇 242 2023-08-21

一、需求拆解

  1. 表单分为固定项和动态项
  2. 不管是固定项和动态项,都分为可填、必填
  3. 每一个项(item),分为不同的类型,包括 文本输入框(Field),单选(Radio),多选(checkbox),文件上传(Uploader)
  4. 对于item,有不同的规则校验rule,placeholder,label,name等等,在第二章详细说明
  5. 提交记录统计
  6. 申请单模板

二、选项细分

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

暂时不做
这里的规则,指的是业务规则,而非前端校验规则,不向前端暴露

业务规则可抽象为,该字段对于一个【模板,活动,网点…】,对于【审核通过状态,全部状态】,在【】时间范围内,不能重复【】次。

四、怎么保存记录?

  1. 通过模板ID,渲染一个申请单【用于新建申请单】
  2. 通过提交记录,渲染一个申请单,并填充数据 【用于被拒绝后二次申请】
  3. 通过模板ID,渲染一个模板编辑页【用于编辑模板】

五、跟本次项目相关的业务逻辑

  1. 业务类型的概念
    一个模板关联一个业务类型,且业务类型有分组
  2. 活动的概念
    一个模板关联一个活动

六、统计需求

  1. 某网点,某客户经理,在本次活动共发了多少张券,提现多少钱,