# 选择题模型 **Repository Path**: guobinyong/option_model ## Basic Information - **Project Name**: 选择题模型 - **Description**: option-model 作为 选择题的数据、逻辑模型;支持单选、多选、限制选、默认选择、统计、汇总、测试、验证、打分 等等; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-03-07 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [本项目的Git仓库]: https://gitee.com/guobinyong/option_model [option-model的接口文档]: ./option-model的接口文档.md 目录 ======================= - 一、简介 - 二、安装方式 - 方式1:通过 npm 安装 - 方式2:直接下载原代码 - 三、概念讲解 - 四、创建一个选择题 - 五、创建一个选择组 - 四、选项 Option - 构造函数 - 创建选项 - 五、选择题 ChoiceQuestion - 构造函数 - 创建选择题 - 选择操作和设置 - 查找和删除操作 - 条件测试 - 计分 - 六、选择题组 ChoiceQuestionList - 创建选择组 - 题目汇总 - 选择操作 - 查找和删除操作 - 条件测试 内容 ================ # 一、简介 在很多需要中,选择题是很常见的功能,如:调查问卷、选项设置、选项验证 等等;无论对于什么样的业务,虽然选择题的页面效果、交互、规则 等都不一样,但是,经过合理的设置,完全可以抽离出一套选择题的逻辑、数据模型; option-model 就是这样一个模型; option-model 作为 选择题的数据、逻辑模型;支持单选、多选、限制选、默认选择、管理、统计、汇总、测试、验证、打分 等等; **相关文档:** - 《[option-model的接口文档][]》 **如果您在使用该库的过程中有遇到了问题,或者有好的建议和想法,您都可以通过以下方式联系我,期待与您的交流:** - 邮箱:guobinyong@qq.com - QQ:guobinyong@qq.com - 微信:keyanzhe # 二、安装方式 目前,安装方式有以下几种: ## 方式1:通过 npm 安装 ``` npm install --save option-model ``` ## 方式2:直接下载原代码 您可直接从 [本项目的Git仓库][] 下载,此仓库里包含了 option-model 和 下文的示例代码; option-model 库是 [本项目的Git仓库][] 项目中的 package/ChoiceQuestionModel.js 文件,您可以直接把该文件拷贝到您的项目中去;然后使用如下代码在您的项目中引入你需要的类: ``` import {ChoiceQuestion,Option,ChoiceQuestionList,ChoiceCondition} from "path/to/package/ChoiceQuestionModel.js"; ``` # 三、概念讲解 对于选择题业务,肯定会有这些概念:题、题的选项、一组题; 在 option-model 中,也这对应的概念,并把这些概念设计成了类,如下: - ChoiceQuestion : 选择题类,表示一个选择题; - Option : 选项类,表示选择题的选项; - ChoiceQuestionList : 选择题组类,表示一组选择题,即选择题列表; - ChoiceCondition : 选择题约束类,表示选择题的限制条件; 该类是个抽象类, 用于让其它类继承; 选择题类 ChoiceQuestion 也继承自 选择题约束类 ChoiceCondition ; 在 option-model 的概念中,多了个 选择题约束类 ChoiceCondition ,一般用不到这个类; **以上各类的详细信息请见《[option-model的接口文档][]》** # 四、选项 Option 在选择题中,选项就是选择题提供的供用户选择的答案;在 option-model 中,用 Option 类 表示选项; ## 构造函数 `Option(content,id,choiceQuestion)` - @param content : any 选项的内容 - @param id : any 选项的标识符,在一个题目中,需要唯一 - @param choiceQuestion : ChoiceQuestion 选择所属的题目 ## 创建选项 选项的创建和设置有2种方式 - 方式1:用构造函数创建和配置 ``` let option = new Option("河南人",1); ``` - 方式2:先创建未配置的选项,再更改相关属性: ``` let option = new Option(); //先创建选项 option.content = "安徽人"; //设置选项的内容 option.id = "A"; //设置选项的标识符 ``` # 五、选择题 ChoiceQuestion 选择题 是 问题 及 该问题提供的供用户选择的答案 一个集合;即:选择题 包含 问题 和 选项列表; 在 option-model 中,用 ChoiceQuestion 类 表示选择题; ## 构造函数 `ChoiceQuestion(subject,minSelectCount,maxSelectCount,id,options,rightAnswerIds,defaultSelectedIds,scoreValuel,type)` - @param subject : any 选择题的问题、标题; - @param minSelectCount : number 最小选择数目 - @param maxSelectCount : number 最大选择数目 - @param id : any 题目的唯一标识符 - @param options : Array