# 销售机会对象建模及表单
在前面的步骤中,我们已经定义了客户对象及其属性,并定义了其列表、创建和更新表单。 现在我们将进行销售机会的建模及表单定义。
参考这里 CRM 系统设计, 我们将定义销售机会的属性如下:
# 销售机会表 (SalesOpportunities)
# 模型定义
# 互动记录表 (InteractionRecord)
字段名 | 类型 | 是否可为空 | 默认值 | 可选项 | 备注 | 关联对象类型 |
---|---|---|---|---|---|---|
name | STRING | 否 | 无 | 无 | 互动记录业务主键 | 无 |
interactionType | STRING | 否 | 无 | 无 | 互动类型 | 无 |
interactionDate | LOCAL_DATE | 否 | 无 | 无 | 互动日期 | 无 |
notes | STRING | 是 | 无 | 无 | 备注 | 无 |
# 任务表 (Task)
字段名 | 类型 | 是否可为空 | 默认值 | 可选项 | 备注 | 关联对象类型 |
---|---|---|---|---|---|---|
name | STRING | 否 | 无 | 无 | 任务业务主键 | 无 |
description | STRING | 否 | 无 | 无 | 任务描述 | 无 |
dueDate | LOCAL_DATE | 否 | 无 | 无 | 截止日期 | 无 |
status | STRING | 否 | 无 | 无 | 任务状态 | 无 |
# 销售机会表 (SalesOpportunities)
字段名 | 类型 | 是否可为空 | 默认值 | 可选项 | 备注 | 关联对象类型 |
---|---|---|---|---|---|---|
name | STRING | 否 | 无 | 无 | 销售机会业务主键 | 无 |
customer | DOMAIN_OBJECT | 否 | 无 | 无 | 关联客户 | Customers |
stage | STRING | 否 | 无 | 无 | 机会阶段 | 无 |
expectedAmount | BIG_DECIMAL | 否 | 无 | 无 | 预期金额 | 无 |
expectedCloseDate | LOCAL_DATE | 否 | 无 | 无 | 预计关闭日期 | 无 |
interactionRecords | DOMAIN_OBJECT_LIST | 是 | 无 | 无 | 客户交流记录 | InteractionRecord |
tasks | DOMAIN_OBJECT_LIST | 是 | 无 | 无 | 客户交流记录 | Task |
以下是其创建过程及相关说明
- customer 字段会关联到我们之前定义的客户对象,在创建该字段时,需要选择类型为
DOMAIN_OBJECT
, 并设定其引用到的对象类型为 Customers。 - 我们为 InteractionRecord 的 interactionType 字段,Task 的 status 字段, SalesOpportunities 的 stage 字段均设置了可选项,在其 Options 列中直接输入选项 即可,按回车依次输入所有选项即可。
- SalesOpportunities 中引用了互动记录表和任务表,分别用于记录与客户的某次互动或
者待办的任务,这种类型的对象关系使用
DOMAIN_OBJECT_LIST
进行配置。
# 表单定义
创建模型定义完成后,我们将继续定义其列表、创建和更新表单,步骤如下:
# 优化 Customer 关联对象显示
从视频我们可以看到,Customer 字段在销售机会的列表中,显示的是其 ID,而不是其名称,
这对用户不太友好,我们现在将会使用 DomainClass 的 extInfo 功能,设置 Customer 对
象在引用其的其他对象表单中,显示其 name
属性。
具体步骤如下所示:
在 Customer 模型的 DomainClass 定义的 extension information 字段中,设置。
{
"labelField": "name"
}
2
3
即可指定 Customer 对象在引用其的其他对象表单中,显示其 name
属性。
# 使用子表进行关联数据维护
如下的数据,与销售机会 SalesOpportunities 之间是一对多关系,平台默认支持以子表形式现实关联对象。
- 互动记录表 (InteractionRecords)
- 任务表 (Tasks)
但此时,从销售机会 SalesOpportunities 列表页面,点击创建按钮,打开创建表单,会发 现无法创建关联的 InteractionRecord 和 Task 对象。具体界面如下图所示:
这是因为,我们并没有将 InteractionRecord 与 Task 对象的创建和编辑权限赋予用户。
下面我们来修复这个权限问题,修复的方法是,为 InteractionRecord 和 Task 模型创建 Create 及 Update 表单,并设置其中的 Enable Roles 为应具有权限的角色列表。
具体操作如下视频所示,视频中也展示了给予用户权限后,进行 SalesOpportunity 对象的 数据维护的演示:
# 进一步阅读
我们的平台是 LCDP.ai Infinite Code 牧言低代码平台,专为帮助用户快速构建信息化系 统而设计。了解更多关于我们平台的信息,请访问 LCDP.ai (opens new window)。