Procházet zdrojové kódy

答题小游戏对接接口

任一存 před 1 rokem
rodič
revize
52bb849a66
3 změnil soubory, kde provedl 84 přidání a 72 odebrání
  1. 0 30
      game/README.md
  2. 12 0
      game/src/api.js
  3. 72 42
      game/src/views/ExamPaper2.vue

+ 0 - 30
game/README.md

@@ -15,10 +15,8 @@ https://sit-cnzhengquan.4dage.com/game/index.html#/
 
 
 
-
 游戏规则
 
-题目列表
 
 
 
@@ -33,31 +31,3 @@ https://sit-cnzhengquan.4dage.com/game/index.html#/
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 12 - 0
game/src/api.js

@@ -200,3 +200,15 @@ export async function addScore(score) {
     return res.data.data
   }
 }
+
+export async function getExamQuestionList() {
+  const res = await axios({
+    method: 'get',
+    url: `${process.env.VUE_APP_API_PREFIX}/api/show/question/getList`,
+  })
+  if (res.data.code !== 0) {
+    throw (`获取答题列表失败:${res.data.msg}`)
+  } else {
+    return res.data.data
+  }
+}

+ 72 - 42
game/src/views/ExamPaper2.vue

@@ -15,7 +15,10 @@
       <button class="game-rule" />
     </div>
 
-    <div class="question-inner">
+    <div
+      v-if="!isShowLoading"
+      class="question-inner"
+    >
       <p class="question">
         {{ questionList[currentQuestionIdx].question }}
       </p>
@@ -96,6 +99,11 @@
     >
       下一题
     </button>
+    <van-loading
+      v-show="isShowLoading"
+      class="loading"
+      type="spinner"
+    />
   </div>
 </template>
 
@@ -106,7 +114,7 @@ import { useRoute, useRouter } from "vue-router"
 import { useStore } from "vuex"
 import dayjs from 'dayjs'
 import { shuffle } from 'lodash'
-import { addScore, getScore } from '@/api.js'
+import { addScore, getScore, getExamQuestionList } from '@/api.js'
 
 const route = useRoute()
 const router = useRouter()
@@ -117,6 +125,41 @@ const {
   windowSizeWhenDesignForRef,
 } = useSizeAdapt(390, 752)
 
+const isShowLoading = ref(true)
+getExamQuestionList().then((res) => {
+  questionList.value = res.map((questionItem) => {
+    const optionsAndAnswer = JSON.parse(questionItem.answer)
+    console.log(optionsAndAnswer)
+    const ret = {
+      question: questionItem.question,
+      answerOptions: optionsAndAnswer.answer.map((answerItem) => {
+        return answerItem.name
+      }),
+      rightOptionIdx: optionsAndAnswer.answer.findIndex((answerItem) => {
+        return answerItem.val === optionsAndAnswer.correct
+      }),
+      desc: questionItem.description
+    }
+    return ret
+  })
+
+  isShowLoading.value = false
+
+  timeCountIntervalId = setInterval(() => {
+    timeCount.value--
+    if (timeCount.value === 0) {
+      clearInterval(timeCountIntervalId)
+      router.replace({
+        name: 'ExamPaper3',
+        query: {
+          correntCount: correntCount.value,
+          bonusPoint: bonusPoint.value,
+        }
+      })
+    }
+  }, 1000)
+})
+
 function onClickReturnHome() {
   router.push({
     name: 'HomeView',
@@ -128,19 +171,6 @@ function onClickReturnHome() {
  */
 const timeCount = ref(store.state.gameRuleList[1].second)
 let timeCountIntervalId = null
-timeCountIntervalId = setInterval(() => {
-  timeCount.value--
-  if (timeCount.value === 0) {
-    clearInterval(timeCountIntervalId)
-    router.replace({
-      name: 'ExamPaper3',
-      query: {
-        correntCount: correntCount.value,
-        bonusPoint: bonusPoint.value,
-      }
-    })
-  }
-}, 1000)
 onBeforeUnmount(() => {
   clearInterval(timeCountIntervalId)
 })
@@ -165,33 +195,33 @@ const correntCount = ref(0)
  */
 const selectedIdx = ref(null)
 const questionList = ref([
-  {
-    question: '你是sb吗?',
-    answerOptions: [
-      '是',
-      '不是',
-    ],
-    rightOptionIdx: 0,
-    desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
-  },
-  {
-    question: '你是sb吗?',
-    answerOptions: [
-      '是',
-      '不是',
-    ],
-    rightOptionIdx: 0,
-    desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
-  },
-  {
-    question: '你是sb吗?',
-    answerOptions: [
-      '是',
-      '不是',
-    ],
-    rightOptionIdx: 0,
-    desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
-  },
+  // {
+  //   question: '你是sb吗?',
+  //   answerOptions: [
+  //     '是',
+  //     '不是',
+  //   ],
+  //   rightOptionIdx: 0,
+  //   desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
+  // },
+  // {
+  //   question: '你是sb吗?',
+  //   answerOptions: [
+  //     '是',
+  //     '不是',
+  //   ],
+  //   rightOptionIdx: 0,
+  //   desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
+  // },
+  // {
+  //   question: '你是sb吗?',
+  //   answerOptions: [
+  //     '是',
+  //     '不是',
+  //   ],
+  //   rightOptionIdx: 0,
+  //   desc: '这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本',
+  // },
 ])
 const currentQuestionIdx = ref(0)
 const isSubmitted = computed(() => {