公告(新版)元件
更新時間:2024-04-22 19:18:32
公告元件包含公告列表元件、置頂公告元件、置頂公告氣泡元件,三種元件皆採用相同的事件體系,因此僅需實例化一個公告 SDK,將實例傳遞給三種不同的公告元件使用。
- 公告列表元件提供列表展示、查看公告詳情的功能
- 置頂公告元件展示置頂類型公告
- 置頂公告氣泡元件是置頂公告的另一種展示類型,適用於直式觀看頁面
在引入及使用本功能元件前,需先對互動功能接收端 SDK 進行公共配置,詳情請查看:互動功能接收端 UI 元件 - 配置 SDK。
引入
線上檔案引入方式
// script 标签引入,根据版本号引入JS版本。
<script src="https://websdk.videocc.net/interactions-receive-sdk-ui-default/0.24.0/lib/PcBulletin/PcBulletin.umd.min.js"></script>
// PC端
<script>
const Bulletin = window.PolyvIRScene.PcBulletin.default;
</script>
// script 标签引入,根据版本号引入JS版本。
<script src="https://websdk.videocc.net/interactions-receive-sdk-ui-default/0.24.0/lib/MobileBulletin/MobileBulletin.umd.min.js"></script>
// 移动端
<script>
const Bulletin = window.PolyvIRScene.MobileBulletin.default;
</script>
import 方式引入(推薦)
// PC端
import Bulletin from '@polyv/interactions-receive-sdk-ui-default/lib/PcBulletin/index';
// 移动端
import Bulletin from '@polyv/interactions-receive-sdk-ui-default/lib/MobileBulletin/index';
使用方式
公告列表元件
公告列表元件內部基於 SDK 處理了大部分業務邏輯,但列表預設不顯示,接入方需透過呼叫相關介面對列表進行展示。
程式碼範例
以 PC 端接入為例:
<template>
<div>
<button type="button" @click="showBulletinList">打开公告列表</button>
<div>
<h1>{{ bulletinTitle }}</h1>
<bulletin
ref="bulletin"
:lang="lang"
:announcement-sdk="bulletinSdk"
@title-change="onTitleChange"
/>
</div>
</div>
</template>
<script>
import { Announcement as BulletinSdk } from '@polyv/interactions-receive-sdk';
import Bulletin from '@polyv/interactions-receive-sdk-ui-default/lib/PcBulletin/index';
export default {
components: {
Bulletin,
},
data() {
return {
// 公告SDK实例
bulletinSdk,
// 是否展示公告
isShowbulletin: false,
// 外部弹窗(容器)标题
bulletinTitle: '',
};
},
created() {
this.bulletinSdk = new BulletinSdk();
},
beforeDestroy() {
this.bulletinSdk.destroy();
},
methods: {
showBulletinList() {
this.$refs.bulletin && this.$refs.bulletin.showBulletinList();
},
onTitleChange(title) {
const titles = {
list: '公告列表',
detail: '公告',
};
this.bulletinTitle = titles[title] || titles.detail;
},
},
};
</script>
置頂公告元件(不區分 PC 和行動端)
<template>
<bulletin-top
class="plv-demo-pc-bulletin__top"
:announcement-sdk="bulletinSdk"
@show-top="onShowTop"
/>
</template>
<script>
import { Announcement as BulletinSdk } from '@polyv/interactions-receive-sdk';
import BulletinTop from '@polyv/interactions-receive-sdk-ui-default/lib/BulletinTop/index';
export default {
components: {
BulletinTop,
},
data() {
return {
// 公告SDK实例
bulletinSdk,
};
},
created() {
this.bulletinSdk = new BulletinSdk();
},
methods: {
onShowTop() {
// 可在此处处理自己的业务逻辑
},
},
};
</script>
置頂公告氣泡元件(不區分 PC 和行動端)
<template>
<bulletin-bubble
:announcement-sdk="announcementSdk"
@show-bubble="onShowBubble"
/>
</template>
<script>
import { Announcement as BulletinSdk } from '@polyv/interactions-receive-sdk';
import BulletinBubble from '@polyv/interactions-receive-sdk-ui-default/lib/BulletinBubble/index';
export default {
components: {
BulletinBubble,
},
data() {
return {
// 公告SDK实例
bulletinSdk,
};
},
created() {
this.bulletinSdk = new BulletinSdk();
},
methods: {
onShowBubble() {
// 可在此处处理自己的业务逻辑
},
},
};
</script>
Attributes
| 屬性名 | 類型 | 預設值 | 含義 |
|---|---|---|---|
| announcementSdk | Object | null | 公告 SDK 實例 |
| lang | string:'zh_CN', 'en' | 'zh_CN' |
語言 |
| cacheReadedEnabled | Boolean | true |
是否去除公告強提醒(已讀儲存 storage) |
公告列表元件 Events
| 事件名 | 參數類型 | 參數含義 | 說明 |
|---|---|---|---|
| title-change | String 或 Undefined | `'list' | 'detail'`,表示目前顯示的是列表還是公告詳情 |
| look-over | - | - | 點擊列表中的某條公告時觸發 |
| show-detail-from-socket | Object | 公告資料 | 當接收到新的彈窗公告訊息時觸發,表示需要彈窗展示該公告訊息 |
| show-list | - | - | 當從新接收到的公告返回列表時觸發 |
| hide | - | - | 觸發條件:1、查看新收到的公告訊息並繼續收到新的置頂或彈窗公告時;2、查看新收到的公告訊息並點擊關閉按鈕時;3、查看新收到的公告訊息並收到刪除當前公告訊息時 |
置頂公告元件 / 置頂公告氣泡元件 Events
| 事件名 | 參數類型 | 參數含義 | 說明 |
|---|---|---|---|
| show-top | Object | 公告資料(詳見 show-detail-from-socket 事件參數說明) | 接收到新的置頂公告時觸發 |
| show-bubble | Object | 公告資料(詳見 show-detail-from-socket 事件參數說明) | 接收到新的置頂公告時觸發 |
show-detail-from-socket 事件參數說明
show-detail-from-socket 事件包含一個物件類型的事件參數,該物件具體欄位如下。
| 屬性名 | 類型 | 含義 |
|---|---|---|
| content | String | 公告內容 |
| createTime | Number | 公告建立時間 |
| id | Number | 公告 ID |
| isPop | Number | 是否為彈窗公告,1 表示是彈窗公告,0 表示不是彈窗公告 |
| isTop | Number | 是否為置頂公告,1 表示是置頂公告,0 表示不是置頂公告 |
| nick | String | 發布公告者暱稱 |
| pic | String | 發布公告者頭像 |
| userId | String | 發布公告者 ID |
| roomId | String | 房間 ID |
Methods
| 方法名 | 參數 | 說明 |
|---|---|---|
| showBulletinList | 無參數 | 展示公告列表 |
| markAnnounceReaded | 無參數 | 標記已讀,下次收到相同公告不彈出 |
