駕校答題小程序?qū)崙?zhàn)全過程【連載】——3.順序練習(xí)和模擬考試

一绷杜、目標(biāo):

這一節(jié)做順序練習(xí)與模擬考試直秆,都屬于答題詳細(xì)頁面功能,如下圖所示:


1.png
2.png

進(jìn)度條可以根據(jù)答題進(jìn)度鞭盟,顯示進(jìn)度圾结。
這一節(jié)主要實現(xiàn)了一些邏輯計算

二、實現(xiàn)方式:

邏輯一:記錄學(xué)習(xí)題目進(jìn)度

記錄的核心代碼懊缺,在提交保存的時候調(diào)用疫稿。當(dāng)然,也可以在練習(xí)離開的時候觸發(fā)鹃两,這里給了個按鈕遗座,點擊保存即可保存學(xué)習(xí)記錄

const AddLearning = ({ num, result, type = 1 }) => {
  let current = wx.Bmob.User.current()
  return new Promise((resolve, reject) => {
    const query = wx.Bmob.Query('learning');
    query.set('bSubjects', '1')
    query.set('bModels', '1')
    query.set('num', num)
    query.set('result', result)
    query.set('type', type)
    query.set('uid', current.objectId)
    query.save().then(res => {
      resolve(res)
    }).catch(err => {
      console.error(err)
      reject(err)
    })
  });
}

邏輯二:記錄題目回答的對錯

上面的變量result記錄,格式請看上一節(jié)數(shù)據(jù)庫格式說明俊扳,是題目的對錯途蒋。這里點擊一個選擇就記錄一次,我在頁面data里面增加了一個items變量來保存馋记。
選擇答案執(zhí)行以下代碼号坡,今天先實現(xiàn)單選,我們單選與多選梯醒,判斷事件分開來做宽堆,這樣便于邏輯管理

// 單選題
  handleFruitChange ({ detail = {}, target = {} }) {
    let questionInfo = this.data.questionInfo
    // 判斷單選是否正確
    if (target.dataset.id) {
      console.log('ok')
      questionInfo.isOk = 1
    }

    this.setData({
      questionInfo: questionInfo,
      current: detail.value
    });

    // 單選自動跳到下一題
    this.statistical()

    // 顯示第幾道題
    this.setThisData(this.data.index)
    this.setData({
      index: this.data.index + 1,
      current: ''
    });
  },

邏輯三:答題相關(guān)統(tǒng)計

邏輯二講了,記錄對錯茸习,這里有一些統(tǒng)計需要拿出來計算畜隶,先做單選題,點擊選擇号胚,判斷是否正確籽慢, 如果正確,記錄到結(jié)果對象 [{" id ":" XXX ', '0'}, {" id ":" XXX ", "1"}] 猫胁,0代表回答錯誤箱亿,1正確
例如錯題個數(shù)、對題個數(shù)弃秆,頁面提示届惋,進(jìn)度條進(jìn)一步

statistical () {
    // 統(tǒng)計錯題個數(shù)
    let questionErr = this.data.questionErr  //錯題個數(shù)
    let questionOk = this.data.questionOk  //錯題個數(shù)
    let questionInfo = this.data.questionInfo
    let items = this.data.items
    let arr = { "id": questionInfo.objectId, "o": 0 }

    let t = 'error', m = '回答錯誤'
    if (questionInfo.isOk === 1) {
      // o 0代表失敗,1代表成功
      arr.o = 1
      questionOk = questionOk + 1
      t = 'success'
      m = '回答正確'
    } else {
      // 錯誤數(shù)+1
      questionErr = questionErr + 1

    }
    items.push(arr)

    // 提示
    $Message({
      content: m,
      type: t,
      duration: 2
    });


    //進(jìn)度條
    let totalW = this.data.index / this.data.total
    totalW = (totalW * 100).toFixed(2);
    totalW = totalW < 1 ? 1 : totalW

    this.setData({
      items: items,
      questionErr: questionErr,
      questionOk: questionOk,
      totalW: totalW,
    });
  },

邏輯四:上一題下一題的實現(xiàn)

頁面顯示第幾個題目菠赚,我們用數(shù)組的下面來記錄盼樟,單電機(jī)下一題,我們記錄回答對錯锈至,并且數(shù)組下標(biāo)+1

// 翻頁
  handlePageChange ({ detail }) {
    const type = detail.type;

    const current = this.data.current
    if (current == "") {
      console.log('空')
      $Toast({
        content: '請選擇答案晨缴!',
        type: 'warning'
      });
      return;
    }


    this.statistical()

    if (type === 'next') {
      this.setThisData(this.data.index)
      this.setData({
        index: this.data.index + 1,
        current: ''
      });

    } else if (type === 'prev') {
      this.setData({
        index: this.data.index - 1,
        current: ''

      });
      this.setThisData(this.data.index)
    }
  },

邏輯五:引入模式概念

因為答題頁面邏輯非常多,今天寫這么多也沒寫完一般峡捡, 除了學(xué)習(xí)模式击碗,后面還有模擬考試模式,這里不單獨使用另外的頁面來開發(fā)们拙,統(tǒng)一在一個頁面稍途。 所以,我們在頁面data里加入model變量砚婆,代表模式械拍。

/**

? * 這里有個模式突勇, 練習(xí)模式,與模擬考試模式

? * model 1.練習(xí)模式 2.模擬考試考試

? * 練習(xí)模式查詢出所有數(shù)據(jù)練習(xí)

? * 模擬考試 隨機(jī)100題 計算打分

? */

三坷虑、總結(jié)

練習(xí)模式里面的單項選擇邏輯基本已經(jīng)做好甲馋,下一節(jié)將實現(xiàn)模擬考試,計算考試成績等等功能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迄损,一起剝皮案震驚了整個濱河市定躏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芹敌,老刑警劉巖痊远,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氏捞,居然都是意外死亡碧聪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門液茎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矾削,“玉大人,你說我怎么就攤上這事豁护『呖” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵楚里,是天一觀的道長断部。 經(jīng)常有香客問我,道長班缎,這世上最難降的妖魔是什么蝴光? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮达址,結(jié)果婚禮上蔑祟,老公的妹妹穿的比我還像新娘。我一直安慰自己沉唠,他們只是感情好疆虚,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著满葛,像睡著了一般径簿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘀韧,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天篇亭,我揣著相機(jī)與錄音,去河邊找鬼锄贷。 笑死译蒂,一個胖子當(dāng)著我的面吹牛曼月,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柔昼,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼哑芹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了岳锁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蹦魔,失蹤者是張志新(化名)和其女友劉穎激率,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勿决,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡乒躺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了低缩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘉冒。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咆繁,靈堂內(nèi)的尸體忽然破棺而出讳推,到底是詐尸還是另有隱情,我是刑警寧澤玩般,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布银觅,位于F島的核電站,受9級特大地震影響坏为,放射性物質(zhì)發(fā)生泄漏究驴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一匀伏、第九天 我趴在偏房一處隱蔽的房頂上張望洒忧。 院中可真熱鬧,春花似錦够颠、人聲如沸熙侍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽核行。三九已至,卻和暖如春蹬耘,著一層夾襖步出監(jiān)牢的瞬間芝雪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工综苔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留惩系,地道東北人位岔。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像堡牡,于是被迫代替她去往敵國和親抒抬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容