123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import {
- onLoad,
- onReady,
- } from "@dcloudio/uni-app"
- import {
- reactive,
- ref,
- computed,
- toRefs,
- onMounted,
- } from "vue";
- import {
- catchError,
- toast
- } from "@/utils/common.js"
- import request from "@/utils/request.js"
- // 获取单元测试数据
- function httpGetExamData() {
- return request({
- url: "/common/zhangjie/list",
- method: "POST",
- data: {
- nianji: 1,
- xueqi: 1
- }
- })
- }
- function useJifen() {
- const data = reactive({
- rightAnswer: 0, // 答对
- wrongAnswer: 0, // 答错
- jifen: 0, // 积分
- })
- function updateJifen({rightAnswer,wrongAnswer,jifen}) {
- data.rightAnswer = rightAnswer;
- data.wrongAnswer = wrongAnswer;
- data.jifen = jifen;
- }
-
- return {
- ...toRefs(data),
-
- updateJifen
- }
- }
- export function useExam(dom) {
- const {rightAnswer,wrongAnswer,jifen, updateJifen} = useJifen();
-
- const data = reactive({
- count: 0, // 已答题数
- total: 0, // 总题数
- current: 0, // 当前试题序列
- list: [], // 试题列表
- jieId: null, // 节Id
- })
-
- // 当前试题
- const activeQa = computed(() => data.list.length ? data.list[data.current] : null);
- // 第一题
- const isFirst = computed(() => {
- if (!activeQa.value) return false;
- return activeQa.value.id === data.list[0].id;
- })
- // 最后一题
- const isLast = computed(() => {
- if (!activeQa.value) return false;
- const clength = data.list.length;
- return activeQa.value.id === data.list[clength - 1].id;
- })
- onLoad((options) => {
- const {
- jieId
- } = options;
- data.jieId = jieId;
- // 初始化页面数据
- initPage();
- })
- // 下一题
- function nextQuestion() {
- data.current = data.current + 1;
- }
- // 前一题
- function prevQuestion() {
- data.current = data.current - 1;
- }
- // 初始化页面数据
- async function initPage() {
- const [err, data] = await catchError(httpGetExamData());
- if (err) {
- toast("单元测试数据获取异常");
- return;
- }
- refreshExam(data);
- }
- // 数据赋值
- function refreshExam(list) {
- // FIXME 模拟id 待删除
- list.forEach((item, index) => item.id = index)
- data.list = list;
- data.total = list.length;
- }
- // 交卷
- function handleSubmit() {}
- return {
- ...toRefs(data),
- activeQa,
- isFirst,
- isLast,
- isFirst,
- isLast,
-
- rightAnswer,
- wrongAnswer,
- jifen,
- nextQuestion,
- prevQuestion,
- handleSubmit,
- initPage
- }
- }
|