可配置用户界面 CUI (Configurable User Interface)
在早期的 Aras 版本中,定制客户端界面(例如:在全局顶部工具栏增加一个按钮、在右键菜单中增加一个自定义操作、配置特定的快捷键)通常需要对底层的 JavaScript 源代码进行侵入性修改,这极大地增加了系统升级的难度。
从 Aras 11/12+ 开始,系统引入了 CUI (可配置用户界面) 框架。CUI 将界面的所有菜单、工具栏、快捷键等元素彻底元数据化(Item 化),使开发人员能够通过低代码配置,实现极具灵活性且升级安全的界面定制。
1. CUI 数据模型
CUI 框架建立在一套清晰的层级元数据关系之上:
- Presentation Configuration (呈现配置):最高级别的元数据定义,定义特定界面区域使用哪些菜单或工具栏。可以针对不同的 Identity(角色) 配置不同的呈现配置,实现“界面因人而异”。
- Command Bar Section (命令条区域):定义命令条的摆放位置(例如:全局顶部、主搜索网格顶部、零件表单底部 Tab 的工具栏等)。
- Command Bar Item (命令条单项):工具栏或菜单上具体的交互控件。
- Window Section / Control (窗口区域及控件):用来划分和控制工作窗口布局的元数据对象。
2. 命令条位置与控件类型
2.1 常见命令条展示位置 (Locations)
MainWindowMainMenu:浏览器主界面的顶部主菜单。MainWindowToolbar:主界面顶部的全局工具栏。SearchGridCardInitialization:各 ItemType 搜索网格右侧的工具栏。RelationshipsGrid:表单底部 Tab 关系网格的工具栏。
2.2 常见的 Command Bar Item 控件类型
- Button:常规点击按钮。
- Menu:下拉菜单项。
- Separator:菜单或工具栏的分隔线。
- Checkbox / Dropdown:状态勾选框或下拉选择列表。
- Shortcut (快捷键项):无形的控制项,用于绑定特定的键盘组合(如
Ctrl + Alt + N)。
3. CUI 的四种核心操作行为 (Actions)
CUI 允许在不同的配置包之间进行非破坏性的重叠加减。当我们在特定的 Section 中引入一个 Item 时,有四种行为可选:
| 动作类型 (Action) | 说明 | 典型应用场景 |
|---|---|---|
| Add (添加) | 向当前区域追加一个新的按钮或菜单。 | 在主搜索网格增加一个“批量导出到 Excel”的自定义按钮。 |
| Remove (移除) | 隐蔽现有的某个系统默认按钮。 | 针对特定的普通用户,移除关系 Tab 页工具栏上的“Delete (删除)”按钮。 |
| Replace (替换) | 用自定义的按钮替换掉现有的某个系统按钮。 | 替换系统默认的“Promote (流转)”按钮,调用自定义的流转校验逻辑。 |
| Clear All (清除所有) | 清空当前位置上所有的默认控件。 | 用于彻底重构某个关系 Tab 底部工具栏。 |
4. 排名机制与可见性过滤
4.1 排名机制 (Action Ranking)
CUI 中没有“前后兄弟节点”的物理链接,而是通过一个整型字段 Sort Order (排序 ranking) 来决定谁排在前面。
- 排序值较小的 Item 会优先显示在工具栏的左侧(或菜单的顶部)。
- 如果两个 Item 的 Ranking 相同,系统将按其元数据的创建时间或名称字符顺序排序。
4.2 精细化可见性过滤 (Access Control)
一个按钮何时应该显示在界面上?CUI 支持双重过滤机制:
- Identity Access (角色过滤):只有在 Command Bar Section 或 Item 上分配的 Identity (如
Design Lead) 才能看到该按钮。 - Classification Access (分类过滤):可以配置该按钮只在特定的 Item 分类(如只有在 Class 路径为
/Software的表单中)时才渲染加载。
5. 配置实战:添加全局 Windows 快捷键
以下演示如何通过 CUI 为用户快速配置一个一键打开“设计变更单 (ECN)”创建窗口的快捷键:
- 进入管理端 -> Client Presentations,打开全局呈现配置。
- 在 Command Bar Sections 下方,新增一行,选择位置为
MainWindowShortcuts。 - 创建 Shortcut Command Bar Item:
- 新建一个 Command Bar Item,类型选择为
Shortcut。 - 在 Key Combination(按键组合)中,填入
Ctrl+Alt+E。 - 在 Label 中输入“创建变更单快捷键”。
- 新建一个 Command Bar Item,类型选择为
- 绑定 Method 逻辑:
- 在该 Item 的 Init Method 或 Click Method 中,绑定一段客户端 JS 代码,用来弹出新建 ECN 窗口:javascript
var aras = top.aras; aras.uiNewItem("ECN");
- 在该 Item 的 Init Method 或 Click Method 中,绑定一段客户端 JS 代码,用来弹出新建 ECN 窗口:
- 保存配置,刷新浏览器。用户在主页面按下
Ctrl + Alt + E即可一键拉起新建窗口。
