我的任务
高级任务列表视图
框架允许创建或自定义另一个页面用于查看任务。该页面是独立的,不能取代标准的 My Tasks 页面。也可以根据项目需求进行轻松定制。
-
页面左侧是一个过滤器组件,支持按任务名称、流程名称、分配人进行过滤。
-
右侧显示用户任务的列表。
创建高级任务视图
在 Jmix 中创建任务页面的过程与创建其他页面类似。Jmix Studio 中的 视图创建向导 提供了 BPM: Advanced Task List View 模板。
完成向导中的步骤后,Studio 会生成页面的 XML 描述和控制器文件。这些文件中具有详细的注释,帮助理解和编辑视图。
访问视图
与项目中的其他视图一样,用户需要有权限才能访问这个新视图及其关联实体。因此,需要给用户相应的 资源角色。
下面的代码定义了一个 BpmProcessTaskPerformerRole 角色,包含了所需的全部权限。
import io.jmix.bpm.entity.*;
import io.jmix.security.model.*;
import io.jmix.security.role.annotation.EntityAttributePolicy;
import io.jmix.security.role.annotation.EntityPolicy;
import io.jmix.security.role.annotation.ResourceRole;
import io.jmix.securityflowui.role.annotation.MenuPolicy;
import io.jmix.securityflowui.role.annotation.ViewPolicy;
@ResourceRole(name = "BPM: process task performer", code = BpmProcessTaskPerformerRole.CODE, scope = SecurityScope.UI)
public interface BpmProcessTaskPerformerRole {
String CODE = "bpm-process-task-performer";
@ViewPolicy(viewIds = {
"AdvancedTaskListView", (1)
"bpm_DefaultStartProcessForm",
"bpm_DefaultTaskProcessForm",
"bpm_InputDialogStartProcessForm",
"bpm_InputDialogTaskProcessForm"
})
@MenuPolicy(menuIds = {
"AdvancedTaskListView" (2)
})
@EntityPolicy(entityClass = ContentStorage.class, actions = {EntityPolicyAction.READ})
@EntityPolicy(entityClass = ProcessDefinitionData.class, actions = {EntityPolicyAction.READ})
@EntityPolicy(entityClass = TaskData.class, actions = {EntityPolicyAction.READ})
@EntityAttributePolicy(entityClass = ContentStorage.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
@EntityAttributePolicy(entityClass = ProcessDefinitionData.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
@EntityAttributePolicy(entityClass = TaskData.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
void bpmProcessTaskPerformer();
}
| 1 | 指定生成的视图 id。 |
| 2 | 提供该视图的菜单项 id。 |
本页是否有帮助?
感谢您的反馈