| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <template>
- <view class="ezy-exam-page">
- <view class="icon-title-navBar-box">
- <view @click="handleBack" class="nav-bar-icon"></view>
- <text class="nav-bar-title">单元测试</text>
- </view>
- <view>
- <view>
- <view>当前学习进度</view>
- <view>{{data.current+1}}/{{data.total}}</view>
- </view>
- <progress :percent="data.current/data.total * 100" :border-radius="30" stroke-width="10" />
- </view>
- <view class="shiti-frame-box">
- <w-swiper :list="data.list" :current="data.current" class="ezy-exam-swiper" @change="onSwiperChange">
- <template v-slot:default="{item}">
- <view>
- <text v-if="item.type == '1'">单选题</text>
- <text v-if="item.type == '2'">判断题</text>
- <text v-if="item.type == '3'">填空题</text>
- </view>
- <view class="body" v-if="item.mta_show">
- <danxuan :question="item" v-if="item.type == '1'"></danxuan>
- <panduan :question="item" v-if="item.type == '2'"></panduan>
- <tiankong :question="item" v-if="item.type == '3'" :placeholders="item.placeholders"></tiankong>
- </view>
- </template>
- </w-swiper>
- </view>
- <!-- 左右滑动提示 -->
- <view>
- <view>
- < <text>左右滑动查看更多题目</text>>
- </view>
- </view>
- <!-- 填空 -->
- <FillItem :value="result" ref="popupRef" @blur="onBlur"></FillItem>
- </view>
- </template>
- <script setup>
- import mtaRadio from '@/components/question/yingyu/mtaRadio.vue'
- import FillItem from "@/components/question/FillItem.vue";
- import wSwiper from '@/components/wSwiper/wSwiper.vue';
- import danxuan from "@/components/question/danxuan.vue";
- import panduan from "@/components/question/panduan.vue";
- import tiankong from "@/components/question/tiankong.vue";
- import * as httpApi from "@/api/chanpinShuxue.js"
- import {
- reactive,
- ref
- } from "vue"
- import {
- onLoad
- } from "@dcloudio/uni-app"
- import {
- useShuxueTest
- } from "./components/useShuxueUnitTest.js"
- const {
- data
- } = useShuxueTest()
- const curTiankong = ref(null);
- const result = ref('');
- const popupRef = ref(null);
- onLoad(() => {
- uni.$on('tiankong-fillItem', (val) => {
- const {
- index,
- question
- } = val;
- curTiankong.value = val;
- result.value = question.reply[index];
- const dom = getPopupRef();
- dom && dom.showPopup();
- })
- })
- function getPopupRef() {
- return popupRef.value;
- }
- function onBlur({
- result
- }) {
- if (curTiankong.value) {
- uni.$emit('tiankong-setResult', {
- index: curTiankong.value.index,
- stId: curTiankong.value.question.stId,
- result
- });
- }
- const dom = getPopupRef();
- dom && dom.handleClear();
- }
- function handleBack() {}
- function onSwiperChange(index) {
- current.value = index;
- uni.$emit('swiper-change', index)
- }
- </script>
- <style lang="scss" scoped>
- .swiper-box {
- height: 200px;
- }
- .swiper-item {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: 200px;
- }
- </style>
|