# 创建客户模型的维护表单
表单是系统中的重要组件,所有的数据管理都在对应的表单上进行。我们将为客户模型创建如下的维护表单:
- 列表表单,并为它创建一个访问菜单
- 新建表单
- 编辑表单
# 创建列表表单
打开「开发配置 > 表单 > 表单」,点击「创建」,填写:
| 字段 | 值 |
|---|---|
| 类型 | LIST |
| 名称 | List of Customers |
| 显示名称 | 客户列表 |
| 描述 | 客户信息列表 |
| 关联对象类型 | Customers |
点击「保存并关闭」。「名称」在系统内必须唯一,后面的菜单、CSV 都通过名称引用这个表单。
# 创建访问菜单
打开「开发配置 > 界面显示 > 菜单」,点击「创建」,在右侧填写:
| 字段 | 值 |
|---|---|
| 上级菜单 | 留空(作为一级菜单) |
| 名称 | Customers |
| 类型 | Form |
| 显示名称 | 客户管理 |
| 图标 | TeamOutlined |
| 关联表单 | List of Customers |
| 显示顺序 | 5 |
点击「保存」后,左侧菜单树中出现「客户管理」。它和内置的「业务配置」显示顺序都是 5,当前排在「业务配置」下方;想让它排到最上面,把显示顺序改成小于 5 的值即可。
注意
1.0.0-beta18 中菜单页左侧的菜单树显示的是菜单的原始显示名称(系统菜单多为英文,例如 Configurations、Development),「类型」下拉框的选项也是英文(Menu Group、External Link、Internal Link、Form)。页面左侧导航栏中的菜单名称不受影响,仍按当前语言显示。
# 创建新建和编辑表单
回到「开发配置 > 表单 > 表单」,用同样的方式再创建两个表单:
| 类型 | 名称 | 显示名称 | 关联对象类型 |
|---|---|---|---|
| CREATE | Create Customers | 新建客户 | Customers |
| UPDATE | Update Customers | 编辑客户 | Customers |
列表页的「创建」按钮会打开该模型的 CREATE 表单,行上的「修改」会打开 UPDATE 表单。
# 为表单设置访问权限
表单和菜单的创建、修改界面上没有访问权限字段,而没有设置访问权限的表单是打不开的:点击「客户管理」后,页面会一直停留在加载状态(后端对该表单返回 403 NoPermission)。
表单的访问权限只能通过 CSV 的 accessRequirement.name 列设置。在 codes/data/csv 下新建 DynamicForm_crm.csv:
name(*),accessRequirement.name
;; CRM 教程:为界面上创建的表单补充访问权限(界面上没有该字段)
List of Customers,USER
Create Customers,USER
Update Customers,USER
2
3
4
5
name(*) 按名称找到刚才在界面上创建的三个表单,只更新 accessRequirement 这一列,其他属性保持不变。保存后重启后端服务。
提示
菜单不需要单独设置权限:类型为 Form 的菜单,没有设置访问权限时,只要用户能访问它关联的表单就会显示。菜单组(Menu Group)则不同,没有设置访问权限的菜单组对所有人隐藏,所以本教程把菜单建在一级。
如果希望整套表单和菜单都放在插件里维护,可以直接用 DynamicForm.csv、DynamicMenu.csv 定义,列说明见 CSV 导入模板。
注意
「表单」「菜单」界面缺少访问权限字段、表单没有权限时页面一直加载而不提示错误,是 1.0.0-beta18 的已知问题。
# 录入客户数据
点击左侧的「客户管理」,再点「创建」,录入一个客户:
录入几个客户后,列表如下:
可以看到:
- 我们没有给表单添加任何字段。表单中没有定义表单字段时,系统默认显示该模型的所有字段,字段标题就是字段名(name、contactInfo 等)。第 5 步会为它们设置中文名称。
- 列表的每一行只有「详情」和「修改」,没有「删除」,因为第 1 步没有给客户模型设置删除权限。
- 新建、编辑表单中,客户分组显示为带选项的标签输入框,选项来自字段的
options。
注意
1.0.0-beta18 中,带可选值的字符串字段在默认表单里显示为可以多选的标签输入框。group 是单值字段,请只选择一个选项。
下一步,我们将对销售机会进行建模,并演示如何在建模时建立对象间关联,请点击这里继续我们的 CRM 构建之旅。
# 进一步阅读
我们的平台是牧言低代码平台,专为帮助用户快速构建信息化系统而设计。了解更多关于我们平台的信息,请访问 牧言低代码平台 (opens new window)。