题型物料
实现
一个题目结构的组成如下,不同场景能力基于容器实现,不同题型差异一般在于答题区域,通过答题控件实现:
容器
提供两个内置容器:
1、QuestionContainer:搭建端、渲染端使用。
2、QuestionRuleContainer:渲染端使用。
标题控件
QuestionContainer内置统一的标题控件。
答题控件
QuestionContainer内置加载器动态加载不同题型的答题控件。
动态加载流程
加载器解析schema数据并且加载对应答题控件:
物料分层化
基于不同题型的答题控件差异诉求,采取物理分层化设计方式:
1、分类型抽离通用逻辑沉淀为基础物料,以降低具体业务逻辑对这些基础物料的依赖。
2、不同题型物料基于相应类型的基础物料进行扩展,实现特定业务逻辑以做到题型隔离。
根据题型开放题型/封闭题型/评分题型,分为以下三大类通用基础组件,不同题目的答题控件可选择相应类型的基础组件进行继承、组合和扩展:
输入类题型
输入类题型基础组件,所有输入类特性的题可以基于此基础组件扩展,如:单行输入框、多行输入框
选择类题型
选择类题型基础组件,所有选择类特性的题可以基于此基础组件扩展,如:单选题、判断题、多选题、投票题
评分类题型
评分类题基础组件,所有评分类题型可以基于此类组件扩展,如:评分题、nps评分题
以下为题型扩展关系:
物料配置化
各个题型差异通过题型物料描述协议可自定义相关配置:
功能一览表
暂支持7个题型,12类可配置项,也可自定义题型:
题型\功能 | 必填 | 显示类型 | 显示序号 | 显示分割线 | 内容校验格式 | 字数/数字限制 | 引导提示文案 | 设置为多选 | 至少/至多选择 | 评分显示样式 | 评分释义 | 选项后添加输入框 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
单行 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
多行 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
单选 | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||
判断 | ✅ | ✅ | ✅ | ✅ | ||||||||
多选 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
投票 | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||
评分 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Feature |