|
@@ -2,50 +2,61 @@
|
|
|
|
|
|
<template>
|
|
|
<div class="content">
|
|
|
+ <div class="flex mb15 items-center bg-white pt10 pb10 pl50">
|
|
|
+ <div class="vertical-line mr10"></div>
|
|
|
+ <span class="font20 font-bold mr15">车型选择</span>
|
|
|
+ <div :class="{
|
|
|
+ 'bg-primary-yellow': model == 'cart'
|
|
|
+ }" @click="changeCarModel('cart')" class="lh34 ml15 select-border1 round4 pr15 pl15">
|
|
|
+ 轿车
|
|
|
+ </div>
|
|
|
+ <div :class="{
|
|
|
+ 'bg-primary-yellow': model == 'bus'
|
|
|
+ }" @click="changeCarModel('bus')" class="lh34 ml15 select-border1 round4 pr15 pl15">
|
|
|
+ 客车
|
|
|
+ </div>
|
|
|
+ <div :class="{
|
|
|
+ 'bg-primary-yellow': model == 'truck'
|
|
|
+ }" @click="changeCarModel('truck')" class="lh34 ml15 select-border1 round4 pr15 pl15">
|
|
|
+ 货车
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="bg-white pl50 pt30">
|
|
|
+
|
|
|
<div class="flex items-center">
|
|
|
<div class="vertical-line mr10"></div>
|
|
|
<span class="font20 font-bold mr15">技巧练习</span>
|
|
|
<!-- <div class="lh34 select-border1 round4 pr15 pl15">试听</div> -->
|
|
|
</div>
|
|
|
+
|
|
|
+
|
|
|
<div class="">
|
|
|
<div class="flex justify-normal flex-wrap w-11/12">
|
|
|
- <div
|
|
|
- v-for="(item, index) in list"
|
|
|
- :key="index"
|
|
|
- class="flex radius4 pt15"
|
|
|
- >
|
|
|
+ <div v-for="(item, index) in list" :key="index" class="flex radius4 pt15">
|
|
|
<div class="lh34 w185 text-left font18">
|
|
|
- {{ index + 1 }}. {{ item.classIssueName }}
|
|
|
+ {{ index + 1 }}. {{ item.title }}
|
|
|
</div>
|
|
|
- <div class="flex">
|
|
|
- <!-- <div
|
|
|
+ <div class="flex">
|
|
|
+ <!-- <div
|
|
|
class="w64 lh34 mr15 round4 overflow-hidden select-border3 bg-gray-100 text-gray-500 cursor-not-allowed"
|
|
|
>
|
|
|
- 视频
|
|
|
- </div> -->
|
|
|
- <router-link
|
|
|
- :to="
|
|
|
- '/studySkill?subject=' +
|
|
|
- ($route.query.subject || 4) +
|
|
|
- '&classIssue=' +
|
|
|
- (item.classIssue || '')
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="w64 lh34 mr15 round4 overflow-hidden select-border2 "
|
|
|
- >
|
|
|
+ 视频
|
|
|
+ </div> -->
|
|
|
+ <router-link :to="
|
|
|
+ '/studySkill?subject=' +
|
|
|
+ ($route.query.subject || 4) +
|
|
|
+ '&columnAll=' +
|
|
|
+ (item.columnId || '')
|
|
|
+ ">
|
|
|
+ <div class="w64 lh34 mr15 round4 overflow-hidden select-border2 ">
|
|
|
练习
|
|
|
</div>
|
|
|
</router-link>
|
|
|
-
|
|
|
- <div
|
|
|
- @click="checkLocalWrongList()"
|
|
|
- class="w64 lh34 mr15 round4 overflow-hidden select-border2"
|
|
|
- >
|
|
|
- 回顾
|
|
|
- </div>
|
|
|
-
|
|
|
+
|
|
|
+ <div @click="checkLocalWrongList()" class="w64 lh34 mr15 round4 overflow-hidden select-border2">
|
|
|
+ 回顾
|
|
|
+ </div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -53,38 +64,27 @@
|
|
|
<div class="flex items-center pt30 pb30">
|
|
|
<div class="vertical-line mr10"></div>
|
|
|
<span class="font20 font-bold mr15">全部错误题回顾</span>
|
|
|
-
|
|
|
- <div @click="checkLocalWrongList()" class="lh34 round4 pr15 pl15 select-border1 mr15">
|
|
|
- 错误回顾
|
|
|
- </div>
|
|
|
- <div
|
|
|
- @click="
|
|
|
- () => {
|
|
|
- dialogVisible = true;
|
|
|
- }
|
|
|
- "
|
|
|
- class="lh34 round4 pr15 pl15 select-border1"
|
|
|
- >
|
|
|
+
|
|
|
+ <div @click="checkLocalWrongList()" class="lh34 round4 pr15 pl15 select-border1 mr15">
|
|
|
+ 错误回顾
|
|
|
+ </div>
|
|
|
+ <div @click="
|
|
|
+ () => {
|
|
|
+ dialogVisible = true;
|
|
|
+ }
|
|
|
+ " class="lh34 round4 pr15 pl15 select-border1">
|
|
|
清空全部错题
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <mProblemAlert
|
|
|
- v-model:visible="alertVisible"
|
|
|
- title="开启"
|
|
|
- content="禁止重复"
|
|
|
- ></mProblemAlert>
|
|
|
- <mProblemDialog
|
|
|
- @confirm="deleteAllWrong()"
|
|
|
- v-model:visible="dialogVisible"
|
|
|
- title="提示"
|
|
|
- content="是否要清空全部错题"
|
|
|
- ></mProblemDialog>
|
|
|
+ <mProblemAlert v-model:visible="alertVisible" title="开启" content="禁止重复"></mProblemAlert>
|
|
|
+ <mProblemDialog @confirm="deleteAllWrong()" v-model:visible="dialogVisible" title="提示" content="是否要清空全部错题">
|
|
|
+ </mProblemDialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
-import { defineComponent, ref } from "vue";
|
|
|
+import { computed, defineComponent, ref } from "vue";
|
|
|
import api from "@/api";
|
|
|
import { useRoute } from "vue-router";
|
|
|
import mProblemDialog from "@/components/mProblemDialog/index.vue";
|
|
@@ -92,37 +92,45 @@ import mProblemAlert from "@/components/mProblemAlert/index.vue";
|
|
|
import { message } from "ant-design-vue";
|
|
|
import router from "@/router";
|
|
|
import store from "@/store";
|
|
|
+
|
|
|
export default defineComponent({
|
|
|
name: "practiseSelect",
|
|
|
setup() {
|
|
|
const route = useRoute();
|
|
|
const subject = route.query.subject
|
|
|
const dialogVisible = ref(false);
|
|
|
+ const model = computed(() => {
|
|
|
+ return store.state.model
|
|
|
+ })
|
|
|
let list = ref<
|
|
|
{
|
|
|
- createTime?: string;
|
|
|
- updateTime?: string;
|
|
|
- classIssue?: string;
|
|
|
- classIssueName: string;
|
|
|
+ "createTime": string,
|
|
|
+ "updateTime": null,
|
|
|
+ "id": number,
|
|
|
+ "columnId": number,
|
|
|
+ "sort": number,
|
|
|
+ "model": string,
|
|
|
+ "subject": string,
|
|
|
+ "title": string
|
|
|
}[]
|
|
|
>([]);
|
|
|
const deleteAllWrong = () => {
|
|
|
- store.dispatch('ClearDriver'+subject+'WrongList')
|
|
|
- dialogVisible.value = false;
|
|
|
+ store.dispatch('ClearDriver' + subject + 'WrongList')
|
|
|
+ dialogVisible.value = false;
|
|
|
};
|
|
|
- const checkLocalWrongList=()=>{
|
|
|
+ const checkLocalWrongList = () => {
|
|
|
const subject = route.query.subject as string
|
|
|
- let name = 'driverExam'+subject+'_local_wrong_list'
|
|
|
- let list = JSON.parse(window.localStorage.getItem(name)||'[]')
|
|
|
- if(list.length==0){
|
|
|
+ let name = 'driverExam' + subject + '_local_wrong_list'
|
|
|
+ let list = JSON.parse(window.localStorage.getItem(name) || '[]')
|
|
|
+ if (list.length == 0) {
|
|
|
message.warn({
|
|
|
- content:'没有对应的错题'
|
|
|
+ content: '没有对应的错题'
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
router.push({
|
|
|
- path:'/reviewDriverError',
|
|
|
- query:{
|
|
|
+ path: '/reviewDriverError',
|
|
|
+ query: {
|
|
|
subject
|
|
|
|
|
|
}
|
|
@@ -130,16 +138,14 @@ export default defineComponent({
|
|
|
|
|
|
|
|
|
}
|
|
|
- api.question
|
|
|
- .questionInfoSelectFlQuestionInfo({
|
|
|
- subject: Number(route.query.subject),
|
|
|
- liceBus: route.query.liceBus as string,
|
|
|
- liceCar: route.query.liceCar as string,
|
|
|
- liceMoto: route.query.liceMoto as string,
|
|
|
- liceTruck: route.query.liceTruck as string,
|
|
|
+
|
|
|
+ api.open
|
|
|
+ .question2InfoGetQuestionColumn({
|
|
|
+ subject: 'k'+(route.query.subject||'1')+'_3',
|
|
|
+ model: model.value
|
|
|
})
|
|
|
.then((res) => {
|
|
|
- res.data.shift();
|
|
|
+
|
|
|
list.value = res.data;
|
|
|
});
|
|
|
|
|
@@ -147,23 +153,39 @@ export default defineComponent({
|
|
|
dialogVisible,
|
|
|
alertVisible: ref(false),
|
|
|
list: list,
|
|
|
+ model,
|
|
|
deleteAllWrong,
|
|
|
checkLocalWrongList
|
|
|
};
|
|
|
},
|
|
|
+ methods: {
|
|
|
+ changeCarModel(model: string) {
|
|
|
+ store.commit('SET_MODEL', model)
|
|
|
+
|
|
|
+ api.open
|
|
|
+ .question2InfoGetQuestionColumn({
|
|
|
+ subject: 'k'+(this.$route.query.subject||'1')+'_3',
|
|
|
+ model: this.model
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+
|
|
|
+ this.list = res.data;
|
|
|
+ message.success({
|
|
|
+ content: '切换成功'
|
|
|
+ })
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
watch: {
|
|
|
"$route.query"(nowVal, oldVal) {
|
|
|
if (JSON.stringify(nowVal) == "{}") {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- api.question
|
|
|
- .questionInfoSelectFlQuestionInfo({
|
|
|
- subject: Number(this.$route.query.subject),
|
|
|
- liceBus: this.$route.query.liceBus as string,
|
|
|
- liceCar: this.$route.query.liceCar as string,
|
|
|
- liceMoto: this.$route.query.liceMoto as string,
|
|
|
- liceTruck: this.$route.query.liceTruck as string,
|
|
|
+ api.open
|
|
|
+ .question2InfoGetQuestionColumn({
|
|
|
+ subject: 'k1_3',
|
|
|
+ model: this.model
|
|
|
})
|
|
|
.then((res) => {
|
|
|
res.data.shift();
|
|
@@ -179,41 +201,52 @@ export default defineComponent({
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-a{
|
|
|
+.bg-primary-yellow {
|
|
|
+ background-color: #f9de5b;
|
|
|
+}
|
|
|
+
|
|
|
+a {
|
|
|
color: black;
|
|
|
text-decoration: none;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
.select-border1 {
|
|
|
border: 1px solid #f9de5b;
|
|
|
}
|
|
|
+
|
|
|
.select-border2 {
|
|
|
border: 1px solid #f9de5b;
|
|
|
color: black;
|
|
|
text-decoration: none;
|
|
|
}
|
|
|
+
|
|
|
.select-border3 {
|
|
|
border: 1px solid #d8d8d8;
|
|
|
}
|
|
|
+
|
|
|
.select-border1:hover {
|
|
|
border: 1px solid #f9de5b;
|
|
|
background-color: #f9de5b;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+
|
|
|
.select-border2:hover {
|
|
|
border: 1px solid #f9de5b;
|
|
|
background-color: rgba(255, 247, 204, 1);
|
|
|
cursor: pointer;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
.radius4 {
|
|
|
border-radius: 4px;
|
|
|
}
|
|
|
+
|
|
|
.bg-primary-yellow {
|
|
|
background-color: #f9de5b;
|
|
|
}
|
|
|
+
|
|
|
.bg-light-yellow {
|
|
|
background: #fff7cc;
|
|
|
}
|