From 4f252443f566f21e3fce80aaa74ad8dce4d3f50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=84=86=E7=9A=AE=E9=B8=AD?= <1003092440@qq.com> Date: Sat, 19 Aug 2023 17:44:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 2 + src/jtools/api/login.js | 2 +- src/jtools/api/question.js | 10 + src/jtools/store/question.js | 12 +- src/pages/index/components/Subject1.vue | 9 +- src/pages/index/index.vue | 304 +----------------------- 6 files changed, 31 insertions(+), 308 deletions(-) create mode 100644 src/jtools/api/question.js diff --git a/src/App.vue b/src/App.vue index a257c09..01475db 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,11 @@ <script> import useUserStore from '@/jtools/store/user' +import useQuestionStore from '@/jtools/store/question' //引入store export default { onLaunch: function () { useUserStore().queryVipList() if(useUserStore().isLogin) { + useQuestionStore().getQuestionList() useUserStore().getUserInfo() useUserStore().searchUserVip() } diff --git a/src/jtools/api/login.js b/src/jtools/api/login.js index 181e52a..ca2d3ca 100644 --- a/src/jtools/api/login.js +++ b/src/jtools/api/login.js @@ -30,4 +30,4 @@ export function getInfo() { url: 'driver-api/tdSysUser/info', method: 'get', }); -} \ No newline at end of file +} diff --git a/src/jtools/api/question.js b/src/jtools/api/question.js new file mode 100644 index 0000000..e41a574 --- /dev/null +++ b/src/jtools/api/question.js @@ -0,0 +1,10 @@ +import request from '../request/index.js'; + + +export function queryQuestion(data) { + return request({ + url: 'driver-api/tdQuestion/queryQuestion', + method: 'POST', + data, + }); +} \ No newline at end of file diff --git a/src/jtools/store/question.js b/src/jtools/store/question.js index 81f771f..403c057 100644 --- a/src/jtools/store/question.js +++ b/src/jtools/store/question.js @@ -1,18 +1,24 @@ import { defineStore } from 'pinia'; import http from '@/jtools/request/index'; -import constants from '@/jtools/constants'; +import { queryQuestion } from '@/jtools/api/question'; import storage from '@/jtools/storage'; const question = defineStore({ id: 'question', state: () => ({ + currentCartype: storage.get('carType') || '1001', orderQuestionList: [], //顺序做题 }), actions: { // 获取顺序做题 - getQuestionList(arr) { - this.orderQuestionList=[...arr] + getQuestionList() { + console.log(11111); + queryQuestion({carTypeId:this.currentCartype,subject:'1'}).then(res=>{ + if(res.code=='0000'){ + this.orderQuestionList=res.data + } + }) }, } }); diff --git a/src/pages/index/components/Subject1.vue b/src/pages/index/components/Subject1.vue index 953aebc..599434d 100644 --- a/src/pages/index/components/Subject1.vue +++ b/src/pages/index/components/Subject1.vue @@ -73,7 +73,7 @@ <view style="padding: 0 28rpx;margin-top: 30rpx;" @tap="toClass"> <view class="video-box"> <view class="flex jc-sb ai-c wp100"> - <text style="color: #05C341;font-size: 36rpx;">科一精品视频课</text> + <text style="color: #05C341;font-size: 36rpx;">科{{type==1?'一':'四'}}精品视频课</text> <text class="cor-666 fs12">全部10节课 ></text> </view> <view class="flex ai-c mt20"> @@ -82,7 +82,7 @@ <u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff" text="去看视频" color="linear-gradient(90deg, #11DF20 0%, #00B74F 100%)" icon="play-circle"> </u-button> - <view class="cor-333 fs15 fw600 mt10">科一易错试题</view> + <view class="cor-333 fs15 fw600 mt10">科{{type==1?'一':'四'}}易错试题</view> </view> </view> @@ -93,6 +93,11 @@ <script> export default { + props:{ + type:{ + type:[String,Number], + } + }, data() { return {} }, diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 2070e32..40eaa94 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -5,7 +5,7 @@ </u-sticky> <view style="height: 100vh;background-color: rgb(245, 245, 245);"> <template v-if="tIndex===0 || tIndex===3"> - <Subject1 /> + <Subject1 :type="tIndex+1" /> </template> <template v-else> <subject2 /> @@ -38,314 +38,14 @@ }; }, onLoad() { - this.getAllQuestion() }, methods:{ - ...mapActions(useQuestionStore, ['getQuestionList']), //映射action //切换科目 changeCategory(val){ this.tIndex=val.index console.log(this.tIndex); }, - //获取全部题库 - getAllQuestion(){ - const arr = [{ - questionId: 0, - questionTypeDesc: '单选', - questionDesc: '第一题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'C', - }, { - questionId: 1, - questionTypeDesc: '单选', - questionDesc: '第二题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'B', - }, { - questionId: 2, - questionTypeDesc: '单选', - questionDesc: '第三题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 3, - questionTypeDesc: '单选', - questionDesc: '第四题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 4, - questionTypeDesc: '单选', - questionDesc: '第5题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 5, - questionTypeDesc: '单选', - questionDesc: '第6题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 6, - questionTypeDesc: '单选', - questionDesc: '第7题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 7, - questionTypeDesc: '单选', - questionDesc: '第8题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 8, - questionTypeDesc: '单选', - questionDesc: '第9题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'C', - }, { - questionId: 9, - questionTypeDesc: '单选', - questionDesc: '第10题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'B', - }, { - questionId: 10, - questionTypeDesc: '单选', - questionDesc: '第11题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 11, - questionTypeDesc: '单选', - questionDesc: '第12题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 12, - questionTypeDesc: '单选', - questionDesc: '第13题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 13, - questionTypeDesc: '单选', - questionDesc: '第14题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 14, - questionTypeDesc: '单选', - questionDesc: '第15题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 15, - questionTypeDesc: '单选', - questionDesc: '第16题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - } - ] - this.getQuestionList(arr) - }, - } + } } </script> From a90c28f6fdd4b09a820065897485b32d5376aeab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=84=86=E7=9A=AE=E9=B8=AD?= <1003092440@qq.com> Date: Sun, 20 Aug 2023 01:59:40 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/App.vue | 2 +- src/jtools/store/question.js | 42 +- src/pages.json | 7 + src/pages/index/components/Subject1.vue | 46 +- src/pages/index/testRoom.vue | 100 +++++ .../questionBank/components/Question.vue | 402 ++++-------------- src/pages/questionBank/questionBank.vue | 11 +- src/pages/questionBank/videoDetail.vue | 53 ++- src/static/image/index/green_bg.png | Bin 0 -> 14995 bytes src/static/image/index/orange_bg.png | Bin 0 -> 13920 bytes 11 files changed, 307 insertions(+), 360 deletions(-) create mode 100644 src/pages/index/testRoom.vue create mode 100644 src/static/image/index/green_bg.png create mode 100644 src/static/image/index/orange_bg.png diff --git a/.env.development b/.env.development index 5b6f2bd..5968371 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_APP_TITLE = 金武联驾校 VITE_APP_ENV = 'development' # 金武联驾校/开发环境 -VITE_APP_BASE_API = 'http://118.31.23.45:8888/' +VITE_APP_BASE_API = 'http://192.168.1.2:8888/' # -VITE_WEB_BASE_URL = 'http://118.31.23.45:8888/' +VITE_WEB_BASE_URL = 'http://192.168.1.2:8888/' diff --git a/src/App.vue b/src/App.vue index 01475db..430980b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,7 +5,7 @@ export default { onLaunch: function () { useUserStore().queryVipList() if(useUserStore().isLogin) { - useQuestionStore().getQuestionList() + useQuestionStore().getOrderQuestion('1') useUserStore().getUserInfo() useUserStore().searchUserVip() } diff --git a/src/jtools/store/question.js b/src/jtools/store/question.js index 403c057..1018b56 100644 --- a/src/jtools/store/question.js +++ b/src/jtools/store/question.js @@ -1,26 +1,32 @@ -import { defineStore } from 'pinia'; +import { + defineStore +} from 'pinia'; import http from '@/jtools/request/index'; -import { queryQuestion } from '@/jtools/api/question'; +import { + queryQuestion +} from '@/jtools/api/question'; import storage from '@/jtools/storage'; const question = defineStore({ - id: 'question', - state: () => ({ + id: 'question', + state: () => ({ currentCartype: storage.get('carType') || '1001', - orderQuestionList: [], //顺序做题 - }), + orderQuestion: [], //顺序做题 + }), - actions: { - // 获取顺序做题 - getQuestionList() { - console.log(11111); - queryQuestion({carTypeId:this.currentCartype,subject:'1'}).then(res=>{ - if(res.code=='0000'){ - this.orderQuestionList=res.data - } - }) - }, - } + actions: { + // 获取顺序做题 + getOrderQuestion(val) { + queryQuestion({ + carTypeId: this.currentCartype, + subject: val + }).then(res => { + if (res.code == '0000') { + this.orderQuestion = res.data + } + }) + }, + } }); -export default question; +export default question; \ No newline at end of file diff --git a/src/pages.json b/src/pages.json index e0757ac..bd9bae1 100644 --- a/src/pages.json +++ b/src/pages.json @@ -124,6 +124,13 @@ "navigationBarTitleText": "章节练习", "enablePullDownRefresh": false } + }, + { + "path": "pages/index/testRoom", + "style": { + "navigationBarTitleText": "考场实况", + "enablePullDownRefresh": false + } } ], diff --git a/src/pages/index/components/Subject1.vue b/src/pages/index/components/Subject1.vue index d9f264d..01f0f2d 100644 --- a/src/pages/index/components/Subject1.vue +++ b/src/pages/index/components/Subject1.vue @@ -4,19 +4,23 @@ <image style="width: 100%;" src="../../static/image/index/index_bg.jpg"></image> <view class="center-box flex jc-sb ai-c"> <view class="box-item flex ai-c jc-c"> - <view class="btn-item flex ai-c jc-c"> - <view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toAnswer('顺序答题')"> - <view class="fs16">顺序练习</view> - <text class="fs14">0/2344</text> - </view> + <view class="flex jc-c ai-c" style="width: 230rpx;height: 230rpx;background-image: url(../../../static/image/index/green_bg.png);background-size: 100% 100%;"> + <view class="btn-item flex ai-c jc-c"> + <view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toAnswer('顺序答题')"> + <view class="fs16">顺序练习</view> + <text class="fs14">{{rightList.length+wrongList.length}}/{{orderQuestion.length}}</text> + </view> + </view> </view> </view> <view class="box-item flex ai-c jc-c"> - <view class="btn2-item flex ai-c jc-c"> - <view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toExams"> - <view class="fs16">模拟考试</view> - <text class="fs14">去考试</text> - </view> + <view class="flex jc-c ai-c" style="width: 230rpx;height: 230rpx;background-image: url(../../../static/image/index/orange_bg.png);background-size: 100% 100%;"> + <view class="btn2-item flex ai-c jc-c"> + <view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toExams"> + <view class="fs16">模拟考试</view> + <text class="fs14">去考试</text> + </view> + </view> </view> </view> </view> @@ -47,7 +51,7 @@ <view class="mt5">专项练习</view> </view> </view> - <view class="wp33 flex ai-c jc-c"> + <view class="wp33 flex ai-c jc-c" @tap="toTestRoom"> <view class="text-center wp100"> <image style="width: 72rpx;height: 72rpx;margin: 0 auto;" src="../../static/image/index/realicon.png"></image> @@ -92,6 +96,9 @@ </template> <script> + import { mapState,mapActions } from 'pinia' //引入映射函数 + import storage from '@/jtools/storage'; + import useQuestionStore from '@/jtools/store/question' //引入store export default { props:{ type:{ @@ -99,9 +106,24 @@ } }, data() { - return {} + return { + rightList:storage.get('rightList'), + wrongList:storage.get('wrongList'), + allQuestionNum:0, + } + }, + onLoad(){ + // this.allQuestionNum=useQuestionStore().orderQuestion.length + }, + computed: { + ...mapState(useQuestionStore, ["orderQuestion"]) //映射函数,取出tagslist }, methods: { + toTestRoom(){ + uni.navigateTo({ + url:"/pages/index/testRoom" + }) + }, toVip(){ uni.navigateTo({ url:"/pages/index/videoVip" diff --git a/src/pages/index/testRoom.vue b/src/pages/index/testRoom.vue new file mode 100644 index 0000000..5fe318b --- /dev/null +++ b/src/pages/index/testRoom.vue @@ -0,0 +1,100 @@ +<template> + <view> + <u-sticky bgColor="#fff"> + <u-tabs :list="categoryList" :scrollable="false" @click="changeCategory"></u-tabs> + </u-sticky> + <view class="p14"> + <view class="flex ai-c" v-if="carTypeList&&carTypeList.length"> + <view class="car_item mr10" v-for="(item,index) of carTypeList" :key="index" @tap="chooseCar(item.value)" :class="item.value===tCar?'checked_car':'unchecked_car'">{{item.label}}</view> + </view> + <view class="flex p14 bc-fff" style="border-radius: 16rpx;" v-for="(item,index) of videoList" :key="index" @tap="toDetail"> + <image class="pic" src="../../static/image/index/index_bg.png"></image> + <view class="ml10" style="width: calc(100% - 320rpx);"> + <text class="fs16 cor-000 fw600">八一考场</text> + <view class="fs14 mt40 cor-666 flex jc-sb ai-c wp100" > + <text>共9条路线视频</text> + <text>蜀山区</text> + </view> + </view> + </view> + </view> + </view> +</template> + +<script> + export default { + data(){ + return{ + tCar:0, + categoryList:[{ + name:'全部' + },{ + name:'蜀山区' + },{ + name:'长丰县' + },{ + name:'瑶海区' + },{ + name:'肥东县' + },{ + name:'庐江县' + }], + carTypeList:[], + videoList:[{ + label:"111" + },{ + label:'222' + },{ + label:'333' + },{ + label:'444' + }] + } + }, + methods:{ + chooseCar(val){ + this.tCar=val + }, + changeCategory(val){ + + }, + toDetail(){ + uni.navigateTo({ + url:'/pages/questionBank/videoDetail?type=test' + }) + } + } + } +</script> + +<style scoped> + ::v-deep .u-tabs__wrapper__nav__line { + background: linear-gradient(90deg, #11DF20 0%, #00B74F 100%) !important; + bottom: 14rpx !important; + } + .car_item{ + font-size: 28rpx; + padding:0 34rpx; + height: 58rpx; + line-height: 58rpx; + border-radius: 29rpx; + } + .checked_car{ + background-color: #05C341; + color: #fff; + } + .unchecked_car{ + border: 1px solid #DDD; + color: #666; + box-sizing: border-box; + } + .pic{ + width: 300rpx; + height: 169rpx; + background: #00B74F; + border-radius: 8rpx; + } + ::v-deep .u-tabs__wrapper__nav__item{ + padding: 0 !important; + } +</style> \ No newline at end of file diff --git a/src/pages/questionBank/components/Question.vue b/src/pages/questionBank/components/Question.vue index 25b5e61..d51f7b3 100644 --- a/src/pages/questionBank/components/Question.vue +++ b/src/pages/questionBank/components/Question.vue @@ -5,23 +5,23 @@ <view class="type_item" v-for="(item,index) of tabsList" :key="index" :class="tCurrent==item.value?'checked':'unchecked'" @tap="sectionChange(item.value)">{{item.label}}</view> </view> </view> - <swiper class="swiper mt20" :current="swiperIndex" :duration="duration" :autoplay="false" :disable-programmatic-animation="true" @change="onChange" @animationfinish="onAnimationfinish" @touchend="touchEnd" > + <swiper class="swiper mt20" :current="swiperIndex" :duration="duration" :autoplay="false" :disable-programmatic-animation="true" @change="onChange" @animationfinish="onAnimationfinish" @touchend="touchEnd" > <swiper-item v-for="(quesItem,quesIndex) in swiperList" :key="quesIndex"> <scroll-view scroll-y="true" class="swiper-scroll"> <view> <view class="m14lr"> - <text class="tag_box">{{quesItem.questionTypeDesc}}</text> - <text class="fs18">{{quesItem.questionDesc}}</text> + <text class="tag_box">{{getQuestType(quesItem.type)}}</text> + <text class="fs18">{{quesItem.question}}</text> </view> <view class="flex m14lr ai-c mt20" v-for="(item,index) in quesItem.optionList" - :key="item.op" @tap="answerQues(item.op,index)"> + :key="item.op" @tap="answerQues(item.opValue,index)"> <template - v-if="quesItem.clickAnswer&&item.op===quesItem.rightOp"> - <u-icon class="mr15" name="checkmark-circle-fill" color="#05C341" size="30"></u-icon> + v-if="quesItem.clickAnswer&&quesItem.trueAnswer.includes(item.opValue)"> + <u-icon class="mr15" name="checkmark-circle-fill" color="#05C341" size="32"></u-icon> </template> <template - v-else-if="quesItem.clickAnswer===item.op&&item.op!==quesItem.rightAnswer"> - <u-icon class="mr15" name="close-circle-fill" color="red" size="30"></u-icon> + v-else-if="quesItem.clickAnswer&&quesItem.clickAnswer.includes(item.opValue)&&!quesItem.trueAnswer.includes(item.opValue)"> + <u-icon class="mr15" name="close-circle-fill" color="red" size="32"></u-icon> </template> <template v-else-if="!item.chooseOption"> <view class="option_item">{{item.op}}</view> @@ -29,17 +29,17 @@ <text class="fs18">{{item.opDesc}}</text> </view> <view class="m14lr mt30" - v-if="quesItem.clickAnswer&&quesItem.clickAnswer!==quesItem.rightOp || tCurrent===1"> + v-if="quesItem.clickAnswer&&!quesItem.trueAnswer.includes(quesItem.clickAnswer) || tCurrent===1"> <view class="answer_box"> - <text class="fs18 fw600 cor-000">答案:{{quesItem.rightOp}}</text> - <view class="fs18 cor-000" style="text-indent:2em;"> 这里是相关解释文字,这里是相关解释文字相关解释文字</view> + <text class="fs18 fw600 cor-000">答案:{{getRightOp(quesItem.trueAnswer)}}</text> + <view class="fs18 cor-000" style="text-indent:2em;"> {{quesItem.bestAnswer}}</view> </view> </view> </view> </scroll-view> </swiper-item> </swiper> - <view class="wp100 flex jc-sb ai-c p14 bc-fff" v-if="isShowAll" style="position: fixed;bottom: 0;left: 0;"> + <view class="wp100 flex jc-sb ai-c p14 bc-fff" v-if="isShowAll" style="position: fixed;bottom: 0;left: 0;"> <view style="width: 220rpx;"> <button v-if="type==='practice'" class="btn">四步学科一</button> <view v-else class="btn" style="text-align: center;" @tap="submitPaper"> @@ -219,7 +219,7 @@ export default { rightList:[], wrongList:[], collectList:storage.get('collectList') || [], - questionList: [],//数据源 + questionList: [{isCollect:true}],//数据源 swiperList: [], // 轮播图数据列表 swiperIndex: 0, // 轮播图当前位置 isChange: false, // 是否切换 @@ -228,10 +228,33 @@ export default { } }, onLoad() { - this.getQuestionList() this.renderSwiper(0) }, methods: { + //获取正确选项 + getRightOp(val){ + let rightOp='' + this.questionList[this.topicIndex].optionList.forEach(item=>{ + if(this.questionList[this.topicIndex].trueAnswer.includes(item.opValue)){ + if(rightOp){ + rightOp=rightOp+'、'+item.op + }else{ + rightOp=item.op + } + } + }) + return rightOp + }, + //获取题类型 + getQuestType(val){ + if(val=='1'){ + return '判断' + }else if(val=='2'){ + return '单选' + }else if(val=='3'){ + return '多选' + } + }, //开通VIP toVip(){ this.showVip=true @@ -364,22 +387,37 @@ export default { this.topicIndex = index; this.renderSwiper(index); }, + isArrEqual(arr1, arr2){ + return arr1.length === arr2.length && arr1.every((ele) => arr2.includes(ele)); + }, //答题 answerQues(op, index) { - if (!this.questionList[this.topicIndex].clickAnswer) { - this.questionList[this.topicIndex].optionList[index].chooseOption = op - this.questionList[this.topicIndex].clickAnswer = op - } + const falseList =storage.get('wrongList') || [] + const trueList =storage.get('rightList') || [] + if (!this.questionList[this.topicIndex].clickAnswer) { + this.questionList[this.topicIndex].optionList[index].chooseOption =`${this.questionList[this.topicIndex].optionList[index].chooseOption?this.questionList[this.topicIndex].optionList[index].chooseOption:''}${op}` + this.questionList[this.topicIndex].clickAnswer = `${this.questionList[this.topicIndex].optionList[index].clickAnswer?this.questionList[this.topicIndex].optionList[index].clickAnswer:''}${op}` + } if(this.tCurrent!==1){ - if(this.questionList[this.topicIndex].clickAnswer===this.questionList[this.topicIndex].rightOp){ + const arr1=this.questionList[this.topicIndex].clickAnswer.split('') + const arr2=this.questionList[this.topicIndex].trueAnswer.split('') + if(this.isArrEqual(arr1,arr2)){ if(!this.rightList.includes(this.questionList[this.topicIndex].questionId)){ this.rightList.push(this.questionList[this.topicIndex].questionId) } - console.log(this.rightList); + if(!trueList.includes(this.questionList[this.topicIndex].questionId)){ + trueList.push(this.questionList[this.topicIndex].questionId) + storage.set('rightList',trueList) + } if(this.wrongList.includes(this.questionList[this.topicIndex].questionId)){ const wIndex=this.wrongList.indexOf(this.questionList[this.topicIndex].questionId) this.wrongList.splice(wIndex,1) } + if(falseList.includes(this.questionList[this.topicIndex].questionId)){ + const wIndex=falseList.indexOf(this.questionList[this.topicIndex].questionId) + falseList.splice(wIndex,1) + storage.set('wrongList',falseList) + } if(this.topicIndex<this.questionList.length-1){ this.topicIndex ++; this.qIndex=this.topicIndex @@ -403,6 +441,15 @@ export default { if(!this.wrongList.includes(this.questionList[this.topicIndex].questionId)){ this.wrongList.push(this.questionList[this.topicIndex].questionId) } + if(!falseList.includes(this.questionList[this.topicIndex].questionId)){ + falseList.push(this.questionList[this.topicIndex].questionId) + storage.set('wrongList',falseList) + } + if(trueList.includes(this.questionList[this.topicIndex].questionId)){ + const rIndex=trueList.indexOf(this.questionList[this.topicIndex].questionId) + trueList.splice(rIndex,1) + storage.set('wrongList',trueList) + } } } }, @@ -411,309 +458,18 @@ export default { this.getQuestionList() this.renderSwiper(0) }, - getQuestionList() { - this.questionList = [{ - questionId: 0, - questionTypeDesc: '单选', - questionDesc: '第一题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'C', - }, { - questionId: 1, - questionTypeDesc: '单选', - questionDesc: '第二题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'B', - }, { - questionId: 2, - questionTypeDesc: '单选', - questionDesc: '第三题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 3, - questionTypeDesc: '单选', - questionDesc: '第四题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 4, - questionTypeDesc: '单选', - questionDesc: '第5题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 5, - questionTypeDesc: '单选', - questionDesc: '第6题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 6, - questionTypeDesc: '单选', - questionDesc: '第7题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 7, - questionTypeDesc: '单选', - questionDesc: '第8题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 8, - questionTypeDesc: '单选', - questionDesc: '第9题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'C', - }, { - questionId: 9, - questionTypeDesc: '单选', - questionDesc: '第10题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'B', - }, { - questionId: 10, - questionTypeDesc: '单选', - questionDesc: '第11题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 11, - questionTypeDesc: '单选', - questionDesc: '第12题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 12, - questionTypeDesc: '单选', - questionDesc: '第13题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, - { - questionId: 13, - questionTypeDesc: '单选', - questionDesc: '第14题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 14, - questionTypeDesc: '单选', - questionDesc: '第15题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - }, { - questionId: 15, - questionTypeDesc: '单选', - questionDesc: '第16题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?', - optionList: [{ - op: 'A', - opDesc: '注意新手标志' - }, { - op: 'B', - opDesc: '注意新手标志' - }, { - op: 'C', - opDesc: '注意新手标志' - }, { - op: 'D', - opDesc: '注意新手标志' - }], - rightOp: 'A', - } - ] - if(this.tCurrent===1){ - this.questionList=this.questionList.map(item=>{ - return{ - ...item, - clickAnswer:item.rightOp - } - }) - } + getQuestionList(val) { + console.log(val); + this.questionList=val.map(item=>{ + let isCollect=false + if(this.collectList.includes(item.questionId)){ + isCollect=true + } + return { + isCollect:isCollect, + ...item + } + }) } } } diff --git a/src/pages/questionBank/questionBank.vue b/src/pages/questionBank/questionBank.vue index 7b48fdf..08cf2d9 100644 --- a/src/pages/questionBank/questionBank.vue +++ b/src/pages/questionBank/questionBank.vue @@ -3,7 +3,7 @@ <!-- <u-navbar :title="navTitle" @rightClick="rightClick" :autoBack="true"> </u-navbar> --> <j-navbar>{{navTitle}}</j-navbar> - <Question :tabsList="tabsList" :isShowAll="true" /> + <Question ref="question" :tabsList="tabsList" :isShowAll="true"></Question> </view> </template> @@ -27,16 +27,21 @@ },{ label:"背题", value:1 - }] + }], + questionArr:[] } }, onLoad(op) { if(op&&op.navTitle){ this.navTitle=op.navTitle + if(this.navTitle==='顺序答题'){ + this.questionArr=[...this.orderQuestion] + this.$refs.question.getQuestionList(this.questionArr) + } } }, computed: { - ...mapState(useQuestionStore, ["orderQuestionList"]) //映射函数,取出tagslist + ...mapState(useQuestionStore, ["orderQuestion"]) //映射函数,取出tagslist }, methods: { rightClick() { diff --git a/src/pages/questionBank/videoDetail.vue b/src/pages/questionBank/videoDetail.vue index 755c73a..a463c08 100644 --- a/src/pages/questionBank/videoDetail.vue +++ b/src/pages/questionBank/videoDetail.vue @@ -2,12 +2,18 @@ <view> <sunny-video style="width: 100%" videoHeight="422rpx" ref="sunny-video" title="测试视频" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4" @timeupdate="timeupdate" /> <view class="p14 bc-fff"> + <u-scroll-list :indicator="false" v-if="videoType=='test'"> + <view class="flex ai-c jc-sb mt15"> + <view class="tab_iem mr15" :class="videoIndex===item.value?'checked_tab':''" v-for="(item,index) of testList" :key="index" @tap="checkTest(item.value)">{{item.label}}</view> + </view> + </u-scroll-list> <view class="flex ai-c jc-sb mt10 wp100"> <text class="fs18 fw600 cor-000">C1捷达-基础操作视频讲解</text> - <view class="flex" @tap="popupShow=true"> + <view class="flex" @tap="popupShow=true" v-if="videoType!='test'"> <text class="fs14 cor-666">更多</text> <u-icon color="#666" name="arrow-right" size="18"></u-icon> </view> + <view v-else class="fs14 cor-666">共9条路线</view> </view> <view> </view> @@ -53,6 +59,30 @@ export default{ data(){ return{ + videoIndex:0, + testList:[{ + label:"八一考场", + value:0, + },{ + label:"富凯考场", + value:1 + },{ + label:"新亚考场", + value:2 + },{ + label:"庐江考场", + value:3 + },{ + label:"富凯考场", + value:4 + },{ + label:"新亚考场", + value:5 + },{ + label:"庐江考场", + value:6 + }], + videoType:'', popupShow:false, nowVideo:0, videoList:[{ @@ -82,7 +112,15 @@ }] } }, + onLoad(op){ + if(op.type){ + this.videoType=op.type + } + }, methods:{ + checkTest(val){ + this.videoIndex=val + }, checkVideo(val){ this.nowVideo=val } @@ -130,4 +168,17 @@ background: #00B74F; border-radius: 8rpx; } + .tab_iem{ + width: 145rpx; + height: 56rpx; + line-height: 56rpx; + text-align: center; + background: #F5F5F5; + border-radius: 10rpx; + color:#333 + } + .checked_tab{ + background: linear-gradient(90deg, #11DF20 0%, #01B74F 100%); + color:#fff + } </style> \ No newline at end of file diff --git a/src/static/image/index/green_bg.png b/src/static/image/index/green_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e86e4ea5382118465604b247a877b4ed035284 GIT binary patch literal 14995 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 literal 0 HcmV?d00001 diff --git a/src/static/image/index/orange_bg.png b/src/static/image/index/orange_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba375d66a67e24c2614fedc86280065f0d5906c GIT binary patch literal 13920 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 literal 0 HcmV?d00001