Skip to content

通知栏组件 INotify

介绍

这是一个用于显示通知栏浮窗提示的组件。

代码演示

不使用插槽,会根据notificationType类型匹配预制模板(目前支持的notificationType模板类型:RELEASE_NOTE,后续会新增)


使用插槽,可自定义每条消息的消息描述:


添加i18n映射字段由外部传入翻译后的文字,格式为 i18n: {'i18n-[field]': 'i18nFieldName'}


使用 i-notify-sdk 组件由外部系统直接传入api在组件内部轮询获取 notifyList


(一种实验性测试,由于传入的Promise对象response返回的数据格式每个系统设计的不一致,比如:res/res.data,组件内部无法保证能够正常的取到需要的数据,不推荐使用)


1.该实验为了验证在组件内部传入接口调用方法,用于被组件直接调用,会造成心智负担和困惑

2.还有一种假设是api地址直接传入(文档未演示),在组件内部直接fetch,但是接口依赖系统用户体系,需要使用者传入实时token,也会造成心智负担


综上,在组件内部直接调用api不是一种合理的方式,组件应该只关注数据源格式是否正确,而不处理接口逻辑,也更方便后续各个系统做定制化拓展

注意:若tabList中存在key为other的项,tabList根据notificationType匹配不到类型的数据会被归纳到该分类下

注意:组件库暂时没有支持多语言,预制模板中若存在需要i18n翻译的字段,需要添加i18n映射字段由外部传入翻译后的文字,格式为 i18n: {'i18n-[field]': 'i18nFieldName'}

属性(INotify / INotifySdk)

属性说明类型默认值
showHoverBellLine鼠标hover是否显示底部下划线Booleantrue
bellLineSpace铃铛和底部下划线的间距(可配合el-porver自带的属性offset 调整浮窗跟下划线的距离)String10px
notifyListMaxHeight消息列的最大高度(超出滚动)String300px
tabList选项卡的配置(数据格式见示例)Array[]
notifyList消息列表(数据格式见示例)Array[]
footerBtnList消息底部按钮的配置(数据格式见示例)Array[]
emptyName无数据的文字信息StringNo Data
i18ni18n映射字段由外部传入翻译后的文字,格式为 i18n: {'i18n-[field]': 'i18nFieldName'}Object{}
继承element-plus属性该组件继承el-popover的所有属性,可移步el-popover直接使用里面的属性--

属性(INotifySdk)

属性说明类型默认值
userSystemNotificationSearchApiPromisenew Promise(() => {})
intervalTime获取最新消息的轮询时间(毫秒)Number15000

事件(INotify / INotifySdk)

事件名说明类型默认值
clickNotify点击某条消息触发的回调Function(item: Object) => void
changeTab点击某条消息触发的回调Function(item: Object) => void
继承element-plus事件该组件继承el-popover的所有事件,可,可移步el-popover直接使用里面的事件--

方法(INotify)

方法名说明类型默认值
changeTab改变tab选中的项Function(item: Object) => void
notifyListGroup可直接获取到消息列表分组后的数据Object{}
currentNotifyList可直接获取到当前选中tab消息的列表数据Array[]

方法(INotifySdk)

方法名说明类型默认值
interval定时器对象Function(item: Object) => void

插槽(INotify / INotifySdk)

插槽名说明
detail用于自定义每一项消息中的消息描述展示