低代码实践:题型物料化设计(二)
文内项目 Github:XIAOJUSURVEY
实现
一个题目结构的组成如下,不同场景能力基于容器实现,不同题型差异一般在于答题区域,通过答题控件实现:
容器
提供两个内置容器:
1、QuestionContainer:搭建端、渲染端使用。
2、QuestionRuleContainer:渲染端使用。
标题控件
QuestionContainer 内置统一的标题控件。
答题控件
QuestionContainer 内置加载器动态加载不同题型的答题控件。
动态加载流程
加载器解析 schema 数据并且加载对应答题控件:
物料分层化
基于不同题型的答题控件差异诉求,采取物理分层化设计方式:
1、分类型抽离通用逻辑沉淀为基础物料,以降低具体业务逻辑对这些基础物料的依赖。
2、不同题型物料基于相应类型的基础物料进行扩展,实现特定业务逻辑以做到题型隔离。
根据题型开放题型/封闭题型/评分题型,分为以下三大类通用基础组件,不同题目的答题控件可选择相应类型的基础组件进行继承、组合和扩展:
输入类题型
输入类题型基础组件,所有输入类特性的题可以基于此基础组件扩展,如:单行输入框、多行输入框
选择类题型
选择类题型基础组件,所有选择类特性的题可以基于此基础组件扩展,如:单选题、判断题、多选题、投票题
评分类题型
评分类题基础组件,所有评分类题型可以基于此类组件扩展,如:评分题、nps 评分题
以下为题型扩展关系:
物料配置化
各个题型差异通过题型物料描述协议可自定义相关配置:
功能一览表
暂支持 7 个题型,12 类可配置项,也可自定义题型:
关于我们
感谢看到最后,我们是一个多元、包容的社区,我们已有非常多的小伙伴在共建,欢迎你的加入。
Github:XIAOJUSURVEY
社区交流群
Star
开源不易,请star一下 ❤️❤️❤️,你的支持是我们最大的动力。
版权声明: 本文为 InfoQ 作者【XIAOJUSURVEY】的原创文章。
原文链接:【http://xie.infoq.cn/article/30629ac85be1920228603bbb5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论