消息(Notification)
大约 2 分钟
消息(Notification)
消息部件允许用户在系统中处理各种消息。默认使用 NotificationWidget.ts
作为该组件的基类。
类型定义
消息类型
export enum NotificationTypeEnum {
WORKFLOW = "WORKFLOW", // 工作流
NOTIFICATION = "NOTIFICATION", // 站内信
COPY = "COPY", // 抄送
}
预点击回调函数类型
type ReturnBeforeClick = (
message,
messageInfo
) => Promise<Boolean | null | undefined>;
点击动作预处理类型
enum BeforeClickMapName {
wait = "wait", //审批
copy = "copy", //抄送
write = "write", //填写
mail = "mail", //站内信
}
变量
beforClickMap
: 非响应式变量,定义了默认的不同预点击回调函数。messageTextMap
: 响应式变量,定义了默认的不同消息类型的文本信息。messageType
: 响应式变量,表示当前消息的类型,默认为NotificationTypeEnum.WORKFLOW
。messageInfo
: 响应式变量,表示当前消息类型的文本信息。confirmModalTitle
: 响应式变量,表示对话框的标题,默认为 '查看消息'。currentMessage
: 响应式变量,表示当前消息的详细信息,默认值为 {}。isShowConfirmModal
: 响应式变量,控制是否显示对话框,默认为false
。currentMessageId
: 响应式变量,表示当前消息的唯一标识符。
方法
getCopyAction()
- 类型: 非响应式方法
- 描述: 获取查看工作流用户任务待办的视图动作。
public async getCopyAction() {}
getWaitAction()
- 类型: 非响应式方法
- 描述: 获取审批工作流用户任务待办的视图动作。
public async getWaitAction() {}
getWriteAction()
- 类型: 非响应式方法
- 描述: 获取填写工作流用户任务待办的视图动作。
public async getWriteAction() {}
beforeClick()
- 类型: 非响应式方法
- 描述: 覆写消息预点击的回调函数。
- 入参:
key
: (Partial<Record<BeforeClickMapKey, ReturnBeforeClick>>
): 可选键值对。key
: (BeforeClickMapKey),cb
: (ReturnBeforeClick): 单一键、值。
public async beforeClick(key: Partial<Record<BeforeClickMapKey, ReturnBeforeClick>>);
public async beforeClick(key: BeforeClickMapKey, cb: ReturnBeforeClick);
public async beforeClick(
args: BeforeClickMapKey | Partial<Record<BeforeClickMapKey, ReturnBeforeClick>>,
cb?: ReturnBeforeClick
) {}
changeMessageType()
- 类型: 非响应式方法
- 描述: 更改消息的类型。
- 入参:
type
: (NotificationTypeEnum): 消息类型。
@Widget.Method()
public changeMessageType(type: NotificationTypeEnum) {}
toggleDialog()
- 类型: 非响应式方法
- 描述: 切换对话框的显示和隐藏状态。
@Widget.Method()
public toggleDialog() {}
onWorkflowUserTask()
- 类型: 非响应式方法
- 描述: 请求工作流用户任务模型,如果该模型的视图动作中存在任务代办,则执行该视图动作。
@Widget.Method()
public async onWorkflowUserTask() {}
onDetail()
- 类型: 非响应式方法
- 描述: 对不同消息类型执行预点击后,执行相应视图动作或弹出对话框。
- 入参:
message
: 消息具体信息。messageInfo
: 消息信息。
@Widget.Method()
public async onDetail(message, messageInfo) {}
如何替换
import { NotificationWidget, SPI, MaskWidget } from "@kunlun/dependencies";
@SPI.ClassFactory(MaskWidget.Token({ widget: "notification" }))
export class CustomNotification extends NotificationWidget {}