保利威文档中心

幫助中心

問卷元件

更新時間:2024-06-04 09:32:36

本元件為互動功能接收端的問卷元件,可實現問卷題目在觀眾端的展示、填寫提交以及問卷結果的展示。

在引入及使用本功能元件前,需要先對互動功能接收端SDK進行公共配置,詳情請查看:互動功能接收端 UI 元件 - 配置 SDK

引入

線上檔案引入方式

// script 标签引入,根据版本号引入JS版本。
<script src="https://websdk.videocc.net/interactions-receive-sdk-ui-default/0.24.0/lib/PcQuestionnarie/PcQuestionnarie.umd.min.js"></script>
// PC 端
<script>
    const Questionnaire = window.PolyvIRScene.PcQuestionnarie.default;
</script>
// script 标签引入,根据版本号引入JS版本。
<script src="https://websdk.videocc.net/interactions-receive-sdk-ui-default/0.24.0/lib/MobileQuestionnarie/MobileQuestionnarie.umd.min.js"></script>
// 移动端
<script>
    const Questionnaire = window.PolyvIRScene.MobileQuestionnarie.default;
</script>

import 方式引入(推薦)

// PC 端
import Questionnaire from '@polyv/interactions-receive-sdk-ui-default/lib/PcQuestionnarie';
// 移动端
import Questionnaire from '@polyv/interactions-receive-sdk-ui-default/lib/MobileQuestionnarie';

程式碼範例

以 行動端 接入為例:

<template>
  <!-- modal是一个弹窗组件,可根据界面风格自行设计 -->
  <modal
      :backable="hasBackBtn"
      :title="questionnaireTitle"
      :visible="isShowQuestionnaire"
      @back="onModalReturn"
      @close="onSetQuestionnaireVisible(false)"
  >
    <!-- 问卷组件主体 -->
    <questionnaire
      ref="questionnaire"
      :visible="isShowQuestionnaire"
      :questionnaire-sdk="questionnaireSdk"
      @status-changed="onStatusChanged"
      @to-show="onSetQuestionnaireVisible(true)"
      @to-hide="onSetQuestionnaireVisible(false)"
      @has-questionnaire="hasQuestionnaire"
    />
  </modal>
</template>

<script>
import { Questionnaire as QuestionnaireSDK } from '@polyv/interactions-receive-sdk';
import Questionnaire from '@polyv/interactions-receive-sdk-ui-default/lib/MobileQuestionnarie';

const AllStatus = {
  // 展示
  isShowQuestion: 'isShowQuestion',
  isShowResult: 'isShowResult',
  isShowAnswer: 'isShowAnswer',
  isShowQuestionnaireList: 'isShowQuestionnaireList'
};
export default {
  components: {
    Questionnaire,
  },

  data() {
    return {
      // 问卷SDK实例
      questionnaireSdk,
      // 是否显示问卷
      isShowQuestionnaire: false,
      // 是否显示后退键
      hasBackBtn: false,
      // 问卷状态,显示对应弹窗标题
      currentStatus: AllStatus.isShowQuestion
    };
  },
  computed: {
    questionnaireTitle() {
      const { currentStatus } = this;
      let title = '';
      this.hasBackBtn = false;
      if (currentStatus === AllStatus.isShowQuestion) {
        this.hasBackBtn = true;
        title = '问卷';
      } else if (currentStatus === AllStatus.isShowResult) {
        title = '问卷结果';
      } else if (currentStatus === AllStatus.isShowAnswer) {
        title = '问卷结果';
      } else if (currentStatus === AllStatus.isShowQuestionnaireList) {
        title = '问卷列表';
      }
      return title;
    }
  },

  created() {
    this.questionnaireSdk = new QuestionnaireSDK();
  },

  beforeDestroy() {
    this.questionnaireSdk?.destroy();
  },

  methods: {
    showList() {
      this.$refs.questionnaire.showList();
      this.onSetQuestionnaireVisible(true);
    },
    // 弹窗后退键,回到问卷列表
    onModalReturn() {
      this.showList();
    },
    onSetQuestionnaireVisible(visible) {
      this.isShowQuestionnaire = visible;
    },
  },
};
</script>

Attributes

屬性名 類型 預設值 含義
lang string:'zh_CN', 'en' 'zh_CN' 語言
questionnaireSdk Object null 問卷 SDK 實例
delayTime number 行動端 8000,PC端 2000 延遲觸發顯示時間,單位毫秒
visible boolean false 判斷問卷隱藏時,重置內部狀態

Events

事件名 參數類型 參數含義 說明
status-changed string: 'isShowQuestion', 'isShowResult', 'isShowAnswer' 問卷內部的彈窗狀態 問卷狀態改變時會觸發,可用於根據狀態展示不同UI,如自訂彈窗標題。isShowQuestion:顯示問卷題目;isShowResult:顯示問卷結果;isShowAnswer:同顯示問卷結果。
to-show 無參數 - 講師發布問卷或收到問卷結果後觸發,表示此時需要展示問卷彈窗
to-hide 無參數 - 講師終止問卷或觀眾提交問卷後觸發,表示此時需要隱藏問卷彈窗
success-submit 無參數 - 提交問卷成功後回呼
has-questionnaire boolean 是否有需要答題的問卷
联系客服,在线咨询