Appearance
通知栏组件 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是否显示底部下划线 | Boolean | true |
bellLineSpace | 铃铛和底部下划线的间距(可配合el-porver自带的属性offset 调整浮窗跟下划线的距离) | String | 10px |
notifyListMaxHeight | 消息列的最大高度(超出滚动) | String | 300px |
tabList | 选项卡的配置(数据格式见示例) | Array | [] |
notifyList | 消息列表(数据格式见示例) | Array | [] |
footerBtnList | 消息底部按钮的配置(数据格式见示例) | Array | [] |
emptyName | 无数据的文字信息 | String | No Data |
i18n | i18n映射字段由外部传入翻译后的文字,格式为 i18n: {'i18n-[field]': 'i18nFieldName'} | Object | {} |
继承element-plus属性 | 该组件继承el-popover的所有属性,可移步el-popover直接使用里面的属性 | - | - |
属性(INotifySdk)
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
userSystemNotificationSearchApi | Promise | new Promise(() => {}) | |
intervalTime | 获取最新消息的轮询时间(毫秒) | Number | 15000 |
事件(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 | 用于自定义每一项消息中的消息描述展示 |