表单模块(专业版)
需持有 ABP Team 或更高级别许可 方可使用此模块。
本模块可用于创建信息收集问卷。表单模块能够实时存储提交的回复数据,并支持将数据导出为CSV格式文件。您可通过专属链接分享表单,支持要求身份验证或允许匿名提交。其功能类似于Google表单应用,适用场景广泛:可制作满意度调查、管理活动报名、收集新闻稿邮箱地址、创建知识测验,甚至接收订单请求。
查看模块功能概览页了解详细特性。
安装指南
表单模块未预装系统,需手动安装。提供两种安装方式:
通过ABP CLI:在解决方案文件夹(含
*.sln文件的目录)中打开命令行窗口,输入以下命令:abp add-module Volo.Forms通过ABP Suite:启动ABP Suite并选择项目,通过顶部菜单进入模块页面。找到Forms功能卡,点击"作为项目添加"(含源代码)或"作为包添加"(不含源代码)。
程序包
本模块遵循模块开发最佳实践指南,由多个NuGet与NPM包构成。若需了解包结构及关联关系,请参阅该指南。
可访问表单模块程序包列表页查看相关包清单。
用户界面
菜单项
SaaS模块在根主菜单中新增以下条目:
- 表单:创建新表单、管理表单问题、删除表单
菜单项名称常量定义于FormsMenus类中。
页面
表单管理
表单页面用于管理所有表单。可通过操作菜单查看表单内容、分享表单或删除表单。
查看表单模块完整功能,请访问模块描述页。
数据种子
运行.DbMigrator应用时,本模块会向数据库注入示例初始表单(参见数据种子系统):
- 表单标题:"测试表单"
- 表单描述:"测试描述"
内部结构
领域层
聚合根
遵循实体最佳实践与规范:
表单(Form)
- 表单实体的主聚合根,存储表单配置项、标题与描述
问题基类(QuestionBase)
- 存储表单问题,通过
FormId与表单实体建立依赖关系
- 存储表单问题,通过
表单回复(FormResponse)
- 每次表单提交生成新回复记录,包含答案记录集
仓储层
遵循仓储最佳实践与规范,定义以下自定义仓储:
IFormRepositoryIQuestionRepositoryIChoiceRepositoryIResponseRepository
领域服务
遵循领域服务最佳实践与规范:
问题管理器(QuestionManager)
用于管理表单问题集合。
应用层
应用服务
FormApplicationServiceQuestionAppServiceResponseAppService
数据库支持
通用配置
表/集合前缀与模式
默认所有表/集合使用Frm前缀。可通过修改FormsDbProperties类的静态属性调整表前缀或模式名(取决于数据库提供商支持)。
连接字符串
模块使用Forms作为连接字符串名称。若未定义该名称的连接字符串,将回退至Default连接字符串。详见连接字符串文档。
Entity Framework Core / MongoDB
表/集合
FrmForms:表单列表
FrmQuestions:表单问题
FrmAnswers:表单回复答案
FrmChoices:问题选项
FrmFormResponses:用户每次提交表单时生成的回复记录
实体关系
权限管理
模块定义的所有权限详见FormsPermissions类成员。
Angular UI
表单模块暂不支持Angular用户界面。
Blazor UI
表单模块暂不支持Blazor用户界面。
Blazor-Server UI
表单模块支持Blazor-Server。该版本使用Razor页面,与MVC版本功能基本一致。
分布式事件
本模块未定义额外分布式事件,请参考标准分布式事件。
抠丁客




