Timer 計時器
更新時間:2021-10-14 16:31:49
引入元件
import Timer from '@polyv/interactions-launch-sdk-ui-default/lib/Timer';
程式碼範例
<template>
<button v-if="isTeacher" @click="timerVisible = true">计时器</button>
<div id="pane" class="c-interactions-pane">
<timer
v-if="timerCore"
:lang="lang"
:visible="timerVisible"
:main-area-id="'pane'"
:position="isTeacher ? 'center' : 'bottomLeft'"
:is-teacher="isTeacher"
:core="timerCore"
@close="handleTimerClose"
@update-visible="timerVisible = true"
/>
</div>
</template>
<script>
import * as InteractionsLaunchSDK from '@polyv/interactions-launch-sdk';
import Timer from '@polyv/interactions-launch-sdk-ui-default/lib/Timer';
export default {
components: {
Timer,
},
data() {
return {
// 中英文设置 'zh_CN'/'en'
lang: 'zh_CN',
// 计时器 SDK 实例
timerCore: null,
timerVisible: false,
};
},
mounted() {
// TODO: 关于初始化 InteractionsLaunchSDK 的其他设置
this.timerCore = new InteractionsLaunchSDK.Timer();
},
methods: {
// 关闭计时器需要二次确认
handleTimerClose(isOngoing) {
if (!isOngoing) {
this.timerVisible = false;
return;
}
if (window.confirm(this.$t('timerCloseTips'))) {
this.timerVisible = false;
}
},
}
};
</script>
Attributes
| 屬性名 | 類型 | 預設值 | 含義 |
|---|---|---|---|
| core | object | null | 計時器 SDK 實例 |
| lang | string | 'zh_CN' | 語言套件類型。取值範圍: 'zh_CN' 中文 'en' 英文 |
| canStart | boolean | true | 目前是否可以發起互動。 |
| cantStartTips | string | '目前不可以發起互動' | 如果目前不可以發起互動,點擊發起按鈕時的提示文字。 |
| visible | boolean | false | 是否顯示計時器彈窗 |
| isTeacher | boolean | false | 目前使用者是否為講師身份。只有講師身份具有發起計時器的權限。 |
| mainAreaId | string | '' | 定位上下文元素的唯一 id。計時器彈窗將會相對於該定位上下文進行定位。 |
| position | string | 'center' | 計時器彈窗相對於定位上下文的顯示位置。取值範圍: 'center' 上下左右居中 'bottomRight' 右下角對齊 'bottomLeft' 左下角對齊 'topRight' 右上角對齊 'topLeft' 左上角對齊 |
| zIndex | number | 101 | 計時器彈窗樣式的 z-index |
Events
| 事件名稱 | 說明 | 回呼參數類型 | 回呼參數含義 |
|---|---|---|---|
| close | 點擊彈窗關閉按鈕時觸發該事件。關閉彈窗後將停止計時。 | boolean | 是否還在進行計時。 |
| update-visible | 有正在進行的計時器時或計時器結束時會觸發該事件。 | boolean | 目前彈窗是否應該可見。 |
