Timer 计时器

引入组件

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

当前弹窗是否应该可见。

Last updated