Compare commits
11 Commits
90ffd2e4ff
...
a90c28f6fd
| Author | SHA1 | Date | |
|---|---|---|---|
| a90c28f6fd | |||
| e635b5c431 | |||
| 02591755f0 | |||
| 89e073098a | |||
|
|
1f304a6895 | ||
| 4f252443f5 | |||
| 741244ad8d | |||
|
|
55394e8487 | ||
| 58928d301a | |||
|
|
129b9808fb | ||
| d74abad722 |
@@ -5,7 +5,7 @@ VITE_APP_TITLE = 金武联驾校
|
|||||||
VITE_APP_ENV = 'development'
|
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/'
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import useUserStore from '@/jtools/store/user'
|
||||||
|
import useQuestionStore from '@/jtools/store/question' //引入store
|
||||||
export default {
|
export default {
|
||||||
onLaunch: function () {
|
onLaunch: function () {
|
||||||
console.log('App Launch')
|
useUserStore().queryVipList()
|
||||||
|
if(useUserStore().isLogin) {
|
||||||
|
useQuestionStore().getOrderQuestion('1')
|
||||||
|
useUserStore().getUserInfo()
|
||||||
|
useUserStore().searchUserVip()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onShow: function () {
|
onShow: function () {
|
||||||
console.log('App Show')
|
console.log('App Show')
|
||||||
|
|||||||
@@ -353,6 +353,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.actived {
|
.actived {
|
||||||
color: #05C341;
|
color: #05C341 !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -21,6 +21,21 @@ export function getCode(data) {
|
|||||||
export function logout() {
|
export function logout() {
|
||||||
return request({
|
return request({
|
||||||
url: 'driver-api/tdSysUser/loginOut',
|
url: 'driver-api/tdSysUser/loginOut',
|
||||||
method: 'get',
|
method: 'get'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getInfo() {
|
||||||
|
return request({
|
||||||
|
url: 'driver-api/tdSysUser/queryUserMessage',
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function bindSchool(data) {
|
||||||
|
return request({
|
||||||
|
url: 'driver-api/tdSysUser/bindSchool',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
10
src/jtools/api/question.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import request from '../request/index.js';
|
||||||
|
|
||||||
|
|
||||||
|
export function queryQuestion(data) {
|
||||||
|
return request({
|
||||||
|
url: 'driver-api/tdQuestion/queryQuestion',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -6,4 +6,12 @@ export function queryVip(data) {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
data,
|
data,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getVipList(data) {
|
||||||
|
return request({
|
||||||
|
url: 'driver-api/tdMember/queryMember',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,7 @@ function service(options = {}) {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
options.header = {
|
options.header = {
|
||||||
Authorization: `Bearer ${token}`
|
Authorization: `${token}`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ function service(options = {}) {
|
|||||||
if (res.data.code == 'E403') {
|
if (res.data.code == 'E403') {
|
||||||
// 未登录
|
// 未登录
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: res.data.message,
|
title: res?.data?.message || '请重新登录',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
});
|
});
|
||||||
useUserStore().logout()
|
useUserStore().logout()
|
||||||
@@ -34,7 +34,7 @@ function service(options = {}) {
|
|||||||
resolved(res.data);
|
resolved(res.data);
|
||||||
} else if(res.data.code != '0000') {
|
} else if(res.data.code != '0000') {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: resp.message,
|
title: res?.data?.message || '访问出错',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
resolved(res.data)
|
resolved(res.data)
|
||||||
|
|||||||
@@ -1,20 +1,32 @@
|
|||||||
import { defineStore } from 'pinia';
|
import {
|
||||||
|
defineStore
|
||||||
|
} from 'pinia';
|
||||||
import http from '@/jtools/request/index';
|
import http from '@/jtools/request/index';
|
||||||
import constants from '@/jtools/constants';
|
import {
|
||||||
|
queryQuestion
|
||||||
|
} from '@/jtools/api/question';
|
||||||
import storage from '@/jtools/storage';
|
import storage from '@/jtools/storage';
|
||||||
|
|
||||||
const question = defineStore({
|
const question = defineStore({
|
||||||
id: 'question',
|
id: 'question',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
orderQuestionList: [], //顺序做题
|
currentCartype: storage.get('carType') || '1001',
|
||||||
}),
|
orderQuestion: [], //顺序做题
|
||||||
|
}),
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
// 获取顺序做题
|
// 获取顺序做题
|
||||||
getQuestionList(arr) {
|
getOrderQuestion(val) {
|
||||||
this.orderQuestionList=[...arr]
|
queryQuestion({
|
||||||
},
|
carTypeId: this.currentCartype,
|
||||||
}
|
subject: val
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code == '0000') {
|
||||||
|
this.orderQuestion = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
export default question;
|
export default question;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import { login,logout } from '@/jtools/api/login';
|
import { login,logout,getInfo } from '@/jtools/api/login';
|
||||||
|
import { queryVip,getVipList } from '@/jtools/api/vip'
|
||||||
import constants from '@/jtools/constants';
|
import constants from '@/jtools/constants';
|
||||||
import storage from '@/jtools/storage';
|
import storage from '@/jtools/storage';
|
||||||
|
|
||||||
@@ -9,11 +10,13 @@ const useUserStore = defineStore({
|
|||||||
token: storage.get('token'),
|
token: storage.get('token'),
|
||||||
isLogin: storage.get('isLogin'), // 是否登陆
|
isLogin: storage.get('isLogin'), // 是否登陆
|
||||||
userInfo: storage.get('userInfo'), // 用户信息
|
userInfo: storage.get('userInfo'), // 用户信息
|
||||||
|
currentCartype: storage.get('carType') || '1001',
|
||||||
|
vipOnList: [],
|
||||||
|
vipAllList: []
|
||||||
}),
|
}),
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
login(params) {
|
login(params) {
|
||||||
// commit('isLogin', true);
|
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
const resp = await login(params);
|
const resp = await login(params);
|
||||||
if (resp.code === '0000') {
|
if (resp.code === '0000') {
|
||||||
@@ -40,13 +43,39 @@ const useUserStore = defineStore({
|
|||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 获取用户信息
|
||||||
|
getUserInfo() {
|
||||||
|
getInfo().then(resp => {
|
||||||
|
if(resp.code == '0000') {
|
||||||
|
this.userInfo = resp.data
|
||||||
|
storage.set('userInfo', resp.data)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
resetUserData() {
|
resetUserData() {
|
||||||
this.isLogin = false;
|
this.isLogin = false;
|
||||||
this.token = '';
|
this.token = '';
|
||||||
this.userInfo = {}
|
this.userInfo = {}
|
||||||
|
this.vipOnList = []
|
||||||
storage.remove('isLogin')
|
storage.remove('isLogin')
|
||||||
storage.remove('token')
|
storage.remove('token')
|
||||||
storage.remove('userInfo')
|
storage.remove('userInfo')
|
||||||
|
},
|
||||||
|
// 查询当前用户的vip开通情况
|
||||||
|
searchUserVip() {
|
||||||
|
queryVip({ carTypeId: this.currentCartype,memberId: null, subject:'' }).then(resp => {
|
||||||
|
if(resp.code == '0000') {
|
||||||
|
this.vipOnList = resp.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 查询所有的vip
|
||||||
|
queryVipList() {
|
||||||
|
getVipList({ carTypeId: this.currentCartype,memberId: null, subject:'' }).then(resp => {
|
||||||
|
if(resp.code == '0000') {
|
||||||
|
this.vipAllList = resp.data
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -124,6 +124,13 @@
|
|||||||
"navigationBarTitleText": "章节练习",
|
"navigationBarTitleText": "章节练习",
|
||||||
"enablePullDownRefresh": false
|
"enablePullDownRefresh": false
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/index/testRoom",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "考场实况",
|
||||||
|
"enablePullDownRefresh": false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<view class="box-nav">
|
<view class="box-nav">
|
||||||
<image style="width: 100%;" src="../../static/image/index/index_bg.png"></image>
|
<image style="width: 100%;" src="../../static/image/index/index_bg.jpg"></image>
|
||||||
<view class="center-box flex jc-sb ai-c">
|
<view class="center-box flex jc-sb ai-c">
|
||||||
<view class="box-item flex ai-c jc-c">
|
<view class="box-item flex ai-c jc-c">
|
||||||
<view class="btn-item flex ai-c jc-c">
|
<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="text-center cor-fff" style="line-height: 40rpx;" @tap="toAnswer('顺序答题')">
|
<view class="btn-item flex ai-c jc-c">
|
||||||
<view class="fs16">顺序练习</view>
|
<view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toAnswer('顺序答题')">
|
||||||
<text class="fs14">0/2344</text>
|
<view class="fs16">顺序练习</view>
|
||||||
</view>
|
<text class="fs14">{{rightList.length+wrongList.length}}/{{orderQuestion.length}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="box-item flex ai-c jc-c">
|
<view class="box-item flex ai-c jc-c">
|
||||||
<view class="btn2-item flex ai-c jc-c">
|
<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="text-center cor-fff" style="line-height: 40rpx;" @tap="toExams">
|
<view class="btn2-item flex ai-c jc-c">
|
||||||
<view class="fs16">模拟考试</view>
|
<view class="text-center cor-fff" style="line-height: 40rpx;" @tap="toExams">
|
||||||
<text class="fs14">去考试</text>
|
<view class="fs16">模拟考试</view>
|
||||||
</view>
|
<text class="fs14">去考试</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -47,7 +51,7 @@
|
|||||||
<view class="mt5">专项练习</view>
|
<view class="mt5">专项练习</view>
|
||||||
</view>
|
</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">
|
<view class="text-center wp100">
|
||||||
<image style="width: 72rpx;height: 72rpx;margin: 0 auto;"
|
<image style="width: 72rpx;height: 72rpx;margin: 0 auto;"
|
||||||
src="../../static/image/index/realicon.png"></image>
|
src="../../static/image/index/realicon.png"></image>
|
||||||
@@ -73,16 +77,16 @@
|
|||||||
<view style="padding: 0 28rpx;margin-top: 30rpx;" @tap="toClass">
|
<view style="padding: 0 28rpx;margin-top: 30rpx;" @tap="toClass">
|
||||||
<view class="video-box">
|
<view class="video-box">
|
||||||
<view class="flex jc-sb ai-c wp100">
|
<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>
|
<text class="cor-666 fs12">全部10节课 ></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex ai-c mt20">
|
<view class="flex ai-c mt20">
|
||||||
<image class="contain-box" src="../../static/image/index/index_bg.png"></image>
|
<image class="contain-box" src="../../static/image/index/index_bg.jpg"></image>
|
||||||
<view class="ml15 text-center">
|
<view class="ml15 text-center">
|
||||||
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff"
|
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff"
|
||||||
text="去看视频" color="linear-gradient(90deg, #11DF20 0%, #00B74F 100%)" icon="play-circle">
|
text="去看视频" color="linear-gradient(90deg, #11DF20 0%, #00B74F 100%)" icon="play-circle">
|
||||||
</u-button>
|
</u-button>
|
||||||
<view class="cor-333 fs15 fw600 mt10">科一易错试题</view>
|
<view class="cor-333 fs15 fw600 mt10">科{{type==1?'一':'四'}}易错试题</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -92,11 +96,34 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { mapState,mapActions } from 'pinia' //引入映射函数
|
||||||
|
import storage from '@/jtools/storage';
|
||||||
|
import useQuestionStore from '@/jtools/store/question' //引入store
|
||||||
export default {
|
export default {
|
||||||
|
props:{
|
||||||
|
type:{
|
||||||
|
type:[String,Number],
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
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: {
|
methods: {
|
||||||
|
toTestRoom(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url:"/pages/index/testRoom"
|
||||||
|
})
|
||||||
|
},
|
||||||
toVip(){
|
toVip(){
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url:"/pages/index/videoVip"
|
url:"/pages/index/videoVip"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
</u-sticky>
|
</u-sticky>
|
||||||
<view style="height: 100vh;background-color: rgb(245, 245, 245);">
|
<view style="height: 100vh;background-color: rgb(245, 245, 245);">
|
||||||
<template v-if="tIndex===0 || tIndex===3">
|
<template v-if="tIndex===0 || tIndex===3">
|
||||||
<Subject1 />
|
<Subject1 :type="tIndex+1" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<subject2 />
|
<subject2 />
|
||||||
@@ -38,314 +38,14 @@
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getAllQuestion()
|
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
...mapActions(useQuestionStore, ['getQuestionList']), //映射action
|
|
||||||
//切换科目
|
//切换科目
|
||||||
changeCategory(val){
|
changeCategory(val){
|
||||||
this.tIndex=val.index
|
this.tIndex=val.index
|
||||||
console.log(this.tIndex);
|
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>
|
</script>
|
||||||
|
|
||||||
|
|||||||
100
src/pages/index/testRoom.vue
Normal file
@@ -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>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="relative" style="height: 100vh;">
|
<view class="relative" style="height: 100vh;">
|
||||||
<image style="width: 100%;height: 600rpx;" src="../../static/image/index/vip_bg.png"></image>
|
<image style="width: 100%;height: 600rpx;" src="../../static/image/index/vip_bg.jpg"></image>
|
||||||
<view class="p14">
|
<view class="p14">
|
||||||
<view class="flex jc-sb ai-c">
|
<view class="flex jc-sb ai-c">
|
||||||
<view class="option_tem relative" :class="checkedPrice===item.priceId?'checked_item':''" v-for="(item,index) of priceList" :key="index" @click="checkPrice(item.priceId,item.money)">
|
<view class="option_tem relative" :class="checkedPrice===item.priceId?'checked_item':''" v-for="(item,index) of priceList" :key="index" @click="checkPrice(item.priceId,item.money)">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="header">
|
<view class="header">
|
||||||
<image src="/static/image/login/logo.png" mode="widthFix"></image>
|
<image src="/static/image/login/logo.jpg" mode="widthFix"></image>
|
||||||
<view class="mt21 fs16 cor-333 fwb text-center">欢迎使用金联武驾考!</view>
|
<view class="mt21 fs16 cor-333 fwb text-center">欢迎使用金联武驾考!</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -57,19 +57,19 @@
|
|||||||
getCode({
|
getCode({
|
||||||
phone: this.login.phone
|
phone: this.login.phone
|
||||||
}).then(resp => {
|
}).then(resp => {
|
||||||
if (resp.code == '0000') {
|
// if (resp.code == '0000') {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '发送成功!',
|
title: '发送成功!',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
this.countDown = 60
|
this.countDown = 60
|
||||||
this.js = setInterval(() => {
|
this.js = setInterval(() => {
|
||||||
this.countDown;
|
this.countDown--;
|
||||||
if (this.countDown == 0) {
|
if (this.countDown == 0) {
|
||||||
this.clear()
|
this.clear()
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
// }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
<view class="ml12">
|
<view class="ml12">
|
||||||
<view class="flex ai-c fs18 cor-333 fwb">
|
<view class="flex ai-c fs18 cor-333 fwb">
|
||||||
<text class="mr10">{{ user.userName }}{{user.userId}}</text>
|
<text class="mr10">{{ user.userName }}{{user.userId}}</text>
|
||||||
<image src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;"></image>
|
<image v-if="vipOn.length" src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="mt5 fs14 cor-666">陪您学车 第{{ user.count }}天</view>
|
<view class="mt5 fs14 cor-666">陪您学车 第{{ user.days }}天</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="info flex ai-c" v-else @tap="toLogin">
|
<view class="info flex ai-c" v-else @tap="toLogin">
|
||||||
@@ -26,47 +26,52 @@
|
|||||||
<view class="p15lr" style="transform: translateY(-90px);">
|
<view class="p15lr" style="transform: translateY(-90px);">
|
||||||
<view class="relative mb10" @tap="handleVip">
|
<view class="relative mb10" @tap="handleVip">
|
||||||
<image src="/static/image/mine/vip_bg.png" mode="widthFix" style="width: 100%;"></image>
|
<image src="/static/image/mine/vip_bg.png" mode="widthFix" style="width: 100%;"></image>
|
||||||
<view class="absolute p15lr p10tb flex ai-c jc-sb" style="left: 0;top: 0;right: 0;height: 40px;">
|
<view class="absolute p15lr p10tb flex ai-c jc-sb" style="left: 0;top: 0;right: 0;height: 40px;">
|
||||||
<view class="flex ai-c">
|
<view class="flex ai-c">
|
||||||
<view class="p3 br-p50" style="background-color: #873E1D;">
|
<view class="p3 br-p50" style="background-color: #873E1D;">
|
||||||
<image src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;height: 15px;"></image>
|
<image src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;height: 15px;"></image>
|
||||||
</view>
|
</view>
|
||||||
<text class="ml5 fs16 fwb" style="color: #7E4012FF;">VIP会员</text>
|
<text class="ml5 fs16 fwb" style="color: #7E4012FF;">VIP会员</text>
|
||||||
</view>
|
</view>
|
||||||
<text class="fs12" style="color: #7E4012FF;">2024-12-12到期</text>
|
<text v-if="vipOn.length" class="fs12" style="color: #7E4012FF;">{{expireTime}}到期</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="absolute flex ai-c jc-c" style="left: 0;top: 40px;right: 0;bottom: 0;">
|
<view class="absolute flex ai-c jc-c" style="left: 0;top: 40px;right: 0;bottom: 0;">
|
||||||
<view class="text-center">
|
<view class="text-center">
|
||||||
<view class="fs18 fwb" style="color: #7E4012FF;">尊享科目一二三四全部付费权益</view>
|
<view v-if="vipOn.length" class="fs18 fwb" style="color: #7E4012FF;">{{vipText}}</view>
|
||||||
<view class="study fs16 text-center" style="margin: 25px auto 0;color: #F6E99FFF;">
|
<view class="study fs16 text-center" style="margin: 25px auto 0;color: #F6E99FFF;">
|
||||||
马上学习
|
{{ vipOn.length?'马上学习':'开通会员'}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="br8 bc-fff p15 z-index2">
|
<view class="br8 bc-fff p15 z-index2">
|
||||||
<text class="fs16 cor-333">我的驾校</text>
|
<text class="fs16 cor-333">我的驾校</text>
|
||||||
<div class="mt12 flex ai-c jc-sb">
|
<view v-if="user.schoolId">
|
||||||
<text class="fs18 cor-000 fwb">合肥八一驾校</text>
|
<div class="mt12 flex ai-c jc-sb">
|
||||||
<u-button text="切换驾校" shape="circle" @click="handleChangeSchool"></u-button>
|
<text class="fs18 cor-000 fwb">{{user.schoolName}}</text>
|
||||||
</div>
|
<u-button text="切换驾校" shape="circle" @click="handleChangeSchool"></u-button>
|
||||||
<u-line margin="14px 0 18px 0"></u-line>
|
</div>
|
||||||
<view class="flex ai-c" @tap="handleCallPhone">
|
<u-line margin="14px 0 18px 0"></u-line>
|
||||||
<view class="flex ai-c jc-c phone">
|
<view class="flex ai-c" @tap="handleCallPhone">
|
||||||
<img src="/static/image/mine/phone.png" style="width: 12px;height: 12px;">
|
<view class="flex ai-c jc-c phone">
|
||||||
<text class="ml2 fs12 cor-fff">客服热线</text>
|
<img src="/static/image/mine/phone.png" style="width: 12px;height: 12px;">
|
||||||
|
<text class="ml2 fs12 cor-fff">客服热线</text>
|
||||||
|
</view>
|
||||||
|
<text class="ml5 fs26 cor-333 fwb" style="line-height: 26px;">{{user.schoolPhone}}</text>
|
||||||
</view>
|
</view>
|
||||||
<text class="ml5 fs26 cor-333 fwb" style="line-height: 26px;">0551-12345678</text>
|
</view>
|
||||||
|
<view v-else class="pt30 pb15">
|
||||||
|
<u-button text="绑定驾校" shape="circle" @click="handleChangeSchool"></u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mt12 bc-fff br8">
|
<view class="mt12 bc-fff br8">
|
||||||
<u-cell-group>
|
<u-cell-group>
|
||||||
<u-cell size="large" title="我的资料" value="修改" isLink @tap="handleInfo">
|
<u-cell size="large" title="我的资料" isLink @tap="handleInfo">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<img src="/static/image/mine/wdzl.png" style="width: 24px;height: 24px;">
|
<img src="/static/image/mine/wdzl.png" style="width: 24px;height: 24px;">
|
||||||
</template>
|
</template>
|
||||||
</u-cell>
|
</u-cell>
|
||||||
<u-cell size="large" title="我的体检" value="查看报告" isLink @tap="handleTJ">
|
<u-cell size="large" title="我的体检" isLink @tap="handleTJ">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<img src="/static/image/mine/wdtj.png" style="width: 24px;height: 24px;">
|
<img src="/static/image/mine/wdtj.png" style="width: 24px;height: 24px;">
|
||||||
</template>
|
</template>
|
||||||
@@ -78,7 +83,7 @@
|
|||||||
</u-cell>
|
</u-cell>
|
||||||
</u-cell-group>
|
</u-cell-group>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex ai-c jc-c mt12 br8 bc-fff" style="height: 50px;" @tap="handleLogout">
|
<view v-if="isLogin" class="flex ai-c jc-c mt12 br8 bc-fff" style="height: 50px;" @tap="handleLogout">
|
||||||
<text class="fs16" style="color: #A09F9F;">退出登录</text>
|
<text class="fs16" style="color: #A09F9F;">退出登录</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -86,7 +91,6 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import useUserStore from '@/jtools/store/user'
|
import useUserStore from '@/jtools/store/user'
|
||||||
import { queryVip } from '@/jtools/api/vip'
|
|
||||||
export default {
|
export default {
|
||||||
components: {},
|
components: {},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -95,6 +99,34 @@ export default {
|
|||||||
},
|
},
|
||||||
user() {
|
user() {
|
||||||
return useUserStore().userInfo
|
return useUserStore().userInfo
|
||||||
|
},
|
||||||
|
vipOn() {
|
||||||
|
return useUserStore().vipOnList
|
||||||
|
},
|
||||||
|
expireTime() {
|
||||||
|
if(this.vipOn.length) {
|
||||||
|
const t = this.vipOn.reduce((pre, cur) => {
|
||||||
|
if(Date.parse(pre) > Date.parse(cur.endDate)) {
|
||||||
|
return cur.endDate
|
||||||
|
}
|
||||||
|
return pre
|
||||||
|
}, '2099-12-31')
|
||||||
|
return t.split(' ')[0]
|
||||||
|
}else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vipText() {
|
||||||
|
if(this.vipOn.length) {
|
||||||
|
const t = this.vipOn.reduce((pre, cur) => {
|
||||||
|
return [...pre, ...cur.subjects.split(',').map(it =>['','一','二','三','四'][it])]
|
||||||
|
}, [])
|
||||||
|
let val = Array.from(new Set(t))
|
||||||
|
val = val.length == 4 ? val.join('')+'全部':val.join('')
|
||||||
|
return `尊享科目${val}付费权益`
|
||||||
|
}else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -102,30 +134,36 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.searchVip()
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
searchVip() {
|
|
||||||
queryVip().then(resp => {
|
|
||||||
if(resp.code == '0000') {
|
|
||||||
debugger
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleVip() {
|
handleVip() {
|
||||||
uni.navigateTo({
|
if(this.isLogin) {
|
||||||
url: '/pages/me/vip'
|
if(this.vipOn.length) {
|
||||||
})
|
uni.navigateTo({
|
||||||
|
url: '/pages/me/vip'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/index/videoVip'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.toLogin()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleCallPhone() {
|
handleCallPhone() {
|
||||||
uni.makePhoneCall({
|
uni.makePhoneCall({
|
||||||
phoneNumber: '17318531354'
|
phoneNumber: this.user.schoolPhone
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleChangeSchool() {
|
handleChangeSchool() {
|
||||||
uni.navigateTo({
|
if(this.isLogin) {
|
||||||
url: '/pages/me/school'
|
uni.navigateTo({
|
||||||
})
|
url: '/pages/me/school'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.toLogin()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleInfo() {
|
handleInfo() {
|
||||||
if(this.isLogin) {
|
if(this.isLogin) {
|
||||||
@@ -152,7 +190,7 @@ export default {
|
|||||||
},
|
},
|
||||||
handleLogout() {
|
handleLogout() {
|
||||||
useUserStore().logout()
|
useUserStore().logout()
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,45 +1,53 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<IndexList :dataList="dataList" nameKey="schoolName" v-model:current="current" @click="click"></IndexList>
|
<IndexList :dataList="dataList" nameKey="schoolName" idKey="schoolId" v-model:current="current" @click="click"></IndexList>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import IndexList from '@/components/liu-indexed-list/liu-indexed-list.vue'
|
import IndexList from '@/components/liu-indexed-list/liu-indexed-list.vue'
|
||||||
|
import { bindSchool } from '@/jtools/api/login.js'
|
||||||
|
import useUserStore from '@/jtools/store/user.js'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
IndexList
|
IndexList
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
current: '1',
|
current: useUserStore().userInfo.schoolId,
|
||||||
dataList: [{
|
dataList: []
|
||||||
id: '1',
|
|
||||||
schoolName: '爱尚学车驾校长安分校',
|
|
||||||
},{
|
|
||||||
id: '2',
|
|
||||||
schoolName: '八一驾校',
|
|
||||||
},{
|
|
||||||
id: '3',
|
|
||||||
schoolName: '八零驾校',
|
|
||||||
},{
|
|
||||||
id: '4',
|
|
||||||
schoolName: '畅通驾校',
|
|
||||||
},{
|
|
||||||
id: '5',
|
|
||||||
schoolName: '金灵驾校',
|
|
||||||
},{
|
|
||||||
id: '6',
|
|
||||||
schoolName: '通顺驾校',
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this._getSchoolOptions()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
_getSchoolOptions() {
|
||||||
|
uni.request({
|
||||||
|
url: 'https://xueche.ahduima.com/duima/applet/school/list'
|
||||||
|
}).then(resp => {
|
||||||
|
if(resp.data.code == 200) {
|
||||||
|
this.dataList = resp.data.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
click() {
|
click() {
|
||||||
// 设置用户驾校
|
// 设置用户驾校
|
||||||
|
const {schoolId,schoolName,phone } = this.dataList.find(it=>it.schoolId == this.current)
|
||||||
// 然后返回
|
const params = {schoolId, schoolName, schoolPhone: phone}
|
||||||
uni.navigateBack()
|
bindSchool(params).then(resp => {
|
||||||
|
if(resp.code == '0000') {
|
||||||
|
useUserStore().userInfo.schoolId = schoolId
|
||||||
|
useUserStore().userInfo.schoolName = schoolName
|
||||||
|
useUserStore().userInfo.schoolPhone = phone
|
||||||
|
uni.showToast({
|
||||||
|
title: '绑定驾校成功!',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
// 然后返回
|
||||||
|
uni.navigateBack()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,34 +2,37 @@
|
|||||||
<view class="flex fld-c p15">
|
<view class="flex fld-c p15">
|
||||||
<u-sticky>
|
<u-sticky>
|
||||||
<view class="flex ai-c">
|
<view class="flex ai-c">
|
||||||
<view v-for="(item,index) in list" :key="index" class="km-item" :class="{ actived: index==current }"
|
<view v-for="(item,index) in vipAllList" :key="index" class="km-item" :class="{ actived: index==current }"
|
||||||
@click="current=index">
|
@click="current=index">
|
||||||
{{ item.name }}
|
{{ getKmTitle(item.subjects) }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-sticky>
|
</u-sticky>
|
||||||
<view class="mt15">
|
<view class="mt15">
|
||||||
<swiper class="swiper" :current="current" style="height: 120px;" :autoplay="false" :display-multiple-items="1.45"
|
<swiper class="swiper" :current="current" style="height: 120px;" :autoplay="false" :display-multiple-items="1.45"
|
||||||
:disable-programmatic-animation="true" @change="onChange">
|
:disable-programmatic-animation="true" @change="onChange">
|
||||||
<swiper-item v-for="(item,index) in list" :key="index">
|
<swiper-item v-for="(item,index) in vipAllList" :key="index">
|
||||||
<view class="relative">
|
<view class="relative">
|
||||||
<image src="../../static/image/mine/vip_card.png" mode="widthFix" style="width:95%;"></image>
|
<image src="../../static/image/mine/vip_card.png" mode="widthFix" style="width:95%;"></image>
|
||||||
<view class="vip-info">
|
<view class="vip-info">
|
||||||
<u-avatar class="br-p50 overflow-h" style="border: 3px solid #873E1D;" :size="35" mp-avatar></u-avatar>
|
<u-avatar class="br-p50 overflow-h" style="border: 3px solid #873E1D;" :size="35" mp-avatar></u-avatar>
|
||||||
<view class="ml10">
|
<view class="ml10">
|
||||||
<view class="fs16 fwb" style="color: #7E4012;line-height: 16px;">
|
<view class="fs16 fwb" style="color: #7E4012;line-height: 16px;">
|
||||||
{{item.name}}尊享VIP
|
{{item.memberName}}
|
||||||
</view>
|
</view>
|
||||||
<view class="mt5 fs12" style="color: #7E4012;line-height: 12px;">
|
<view class="mt5 fs12" style="color: #7E4012;line-height: 12px;">
|
||||||
2024-12-12到期
|
{{getExpireText(item)}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="corner">
|
<view v-if="vipHasOpened(item)" class="corner">
|
||||||
VIP已开通
|
VIP已开通
|
||||||
</view>
|
</view>
|
||||||
<view class="renew">
|
<view v-if="vipHasOpened(item)" class="renew">
|
||||||
98元立即续费
|
{{item.price}}元立即续费
|
||||||
|
</view>
|
||||||
|
<view v-else class="buy">
|
||||||
|
立即充值
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
@@ -40,10 +43,10 @@
|
|||||||
<view class="mt20">
|
<view class="mt20">
|
||||||
<swiper class="swiper" :current="current" style="height: 300px;" :autoplay="false"
|
<swiper class="swiper" :current="current" style="height: 300px;" :autoplay="false"
|
||||||
:disable-programmatic-animation="true" @change="onChange">
|
:disable-programmatic-animation="true" @change="onChange">
|
||||||
<swiper-item v-for="(item,index) in list" :key="index">
|
<swiper-item v-for="(item,index) in vipAllList" :key="index">
|
||||||
<view v-if="index == 0 || index == 3" class="p15 br8 cor-fff">
|
<view v-if="index == 0 || index == 3" class="p15 br8 cor-fff">
|
||||||
<view class="fs18 cor-000 fwb">
|
<view class="fs18 cor-000 fwb">
|
||||||
3步轻松学{{item.name}}
|
3步轻松学{{getKmTitle(item.subjects)}}
|
||||||
</view>
|
</view>
|
||||||
<view class="mt25 flex ai-c jc-sb">
|
<view class="mt25 flex ai-c jc-sb">
|
||||||
<view class="flex ai-c">
|
<view class="flex ai-c">
|
||||||
@@ -57,7 +60,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="study">
|
<view class="study" @tap="to500(item)">
|
||||||
去学习
|
去学习
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -73,7 +76,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="study">
|
<view class="study" @tap="toRealExam(item)">
|
||||||
去学习
|
去学习
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -89,7 +92,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="study">
|
<view class="study" @tap="toSpecExam(item)">
|
||||||
去学习
|
去学习
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -104,7 +107,7 @@
|
|||||||
<image src="../../static/image/index/index_bg.png" mode="widthFix" style="flex: 1;border-radius: 33rpx;"></image>
|
<image src="../../static/image/index/index_bg.png" mode="widthFix" style="flex: 1;border-radius: 33rpx;"></image>
|
||||||
<view class="ml18 text-center">
|
<view class="ml18 text-center">
|
||||||
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff"
|
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff"
|
||||||
text="去看视频" color="linear-gradient(90deg, #E66501 0%, #F8A42C 100%)" icon="play-circle">
|
text="去看视频" color="linear-gradient(90deg, #E66501 0%, #F8A42C 100%)" icon="play-circle" @click="toPlaceLive(item)">
|
||||||
</u-button>
|
</u-button>
|
||||||
<view class="cor-333 fs15 mt17">真实考场模拟</view>
|
<view class="cor-333 fs15 mt17">真实考场模拟</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -120,24 +123,92 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import useUserStore from '@/jtools/store/user'
|
||||||
export default {
|
export default {
|
||||||
|
computed: {
|
||||||
|
vipAllList() {
|
||||||
|
return useUserStore().vipAllList.filter(it=>[1,2,3,4].includes(Number(it.subjects)))
|
||||||
|
},
|
||||||
|
vipOnList() {
|
||||||
|
return useUserStore().vipOnList
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [{
|
|
||||||
name: '科一'
|
|
||||||
}, {
|
|
||||||
name: '科二'
|
|
||||||
}, {
|
|
||||||
name: '科三'
|
|
||||||
}, {
|
|
||||||
name: '科四'
|
|
||||||
}],
|
|
||||||
current: 0
|
current: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onChange(e) {
|
onChange(e) {
|
||||||
this.current = e.detail.current
|
this.current = e.detail.current
|
||||||
|
},
|
||||||
|
getKmTitle(km) {
|
||||||
|
return {
|
||||||
|
'1': '科一',
|
||||||
|
'2': '科二',
|
||||||
|
'3': '科三',
|
||||||
|
'4': '科四',
|
||||||
|
}[km]
|
||||||
|
},
|
||||||
|
getExpireText(item) {
|
||||||
|
const vipOn = this.vipOnList.find(it => it.memberId == item.memberId)
|
||||||
|
if(vipOn) {
|
||||||
|
return `${vipOn.endDate.split(' ')[0]}到期`
|
||||||
|
} else {
|
||||||
|
return '开通vip助您快速拿证'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vipHasOpened(item) {
|
||||||
|
return !!this.vipOnList.find(it => it.memberId == item.memberId)
|
||||||
|
},
|
||||||
|
// 去精选500题 item=> 当前科目vip信息
|
||||||
|
to500(item) {
|
||||||
|
// 当前vip是否已开通
|
||||||
|
if(this.vipHasOpened(item)) {
|
||||||
|
// 跳转
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 去真实考场 item=> 当前科目vip信息
|
||||||
|
toRealExam(item) {
|
||||||
|
// 当前vip是否已开通
|
||||||
|
if(this.vipHasOpened(item)) {
|
||||||
|
// 跳转
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 去秘卷 item=> 当前科目vip信息
|
||||||
|
toSpecExam(item) {
|
||||||
|
// 当前vip是否已开通
|
||||||
|
if(this.vipHasOpened(item)) {
|
||||||
|
// 跳转
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 去考场实况 item=> 当前科目vip信息
|
||||||
|
toPlaceLive(item) {
|
||||||
|
// 当前vip是否已开通
|
||||||
|
if(this.vipHasOpened(item)) {
|
||||||
|
// 跳转
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,6 +274,21 @@
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #F6E99F;
|
color: #F6E99F;
|
||||||
}
|
}
|
||||||
|
.buy {
|
||||||
|
position: absolute;
|
||||||
|
left: 45%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
bottom: 15px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 200rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
background: #873E1D;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #F6E99F;
|
||||||
|
}
|
||||||
|
|
||||||
.study {
|
.study {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -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 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>
|
||||||
</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">
|
<swiper-item v-for="(quesItem,quesIndex) in swiperList" :key="quesIndex">
|
||||||
<scroll-view scroll-y="true" class="swiper-scroll">
|
<scroll-view scroll-y="true" class="swiper-scroll">
|
||||||
<view>
|
<view>
|
||||||
<view class="m14lr">
|
<view class="m14lr">
|
||||||
<text class="tag_box">{{quesItem.questionTypeDesc}}</text>
|
<text class="tag_box">{{getQuestType(quesItem.type)}}</text>
|
||||||
<text class="fs18">{{quesItem.questionDesc}}</text>
|
<text class="fs18">{{quesItem.question}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex m14lr ai-c mt20" v-for="(item,index) in quesItem.optionList"
|
<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
|
<template
|
||||||
v-if="quesItem.clickAnswer&&item.op===quesItem.rightOp">
|
v-if="quesItem.clickAnswer&&quesItem.trueAnswer.includes(item.opValue)">
|
||||||
<u-icon class="mr15" name="checkmark-circle-fill" color="#05C341" size="30"></u-icon>
|
<u-icon class="mr15" name="checkmark-circle-fill" color="#05C341" size="32"></u-icon>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template
|
||||||
v-else-if="quesItem.clickAnswer===item.op&&item.op!==quesItem.rightAnswer">
|
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="30"></u-icon>
|
<u-icon class="mr15" name="close-circle-fill" color="red" size="32"></u-icon>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="!item.chooseOption">
|
<template v-else-if="!item.chooseOption">
|
||||||
<view class="option_item">{{item.op}}</view>
|
<view class="option_item">{{item.op}}</view>
|
||||||
@@ -29,17 +29,17 @@
|
|||||||
<text class="fs18">{{item.opDesc}}</text>
|
<text class="fs18">{{item.opDesc}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="m14lr mt30"
|
<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">
|
<view class="answer_box">
|
||||||
<text class="fs18 fw600 cor-000">答案:{{quesItem.rightOp}}</text>
|
<text class="fs18 fw600 cor-000">答案:{{getRightOp(quesItem.trueAnswer)}}</text>
|
||||||
<view class="fs18 cor-000" style="text-indent:2em;"> 这里是相关解释文字,这里是相关解释文字相关解释文字</view>
|
<view class="fs18 cor-000" style="text-indent:2em;"> {{quesItem.bestAnswer}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</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;">
|
<view style="width: 220rpx;">
|
||||||
<button v-if="type==='practice'" class="btn">四步学科一</button>
|
<button v-if="type==='practice'" class="btn">四步学科一</button>
|
||||||
<view v-else class="btn" style="text-align: center;" @tap="submitPaper">
|
<view v-else class="btn" style="text-align: center;" @tap="submitPaper">
|
||||||
@@ -219,7 +219,7 @@ export default {
|
|||||||
rightList:[],
|
rightList:[],
|
||||||
wrongList:[],
|
wrongList:[],
|
||||||
collectList:storage.get('collectList') || [],
|
collectList:storage.get('collectList') || [],
|
||||||
questionList: [],//数据源
|
questionList: [{isCollect:true}],//数据源
|
||||||
swiperList: [], // 轮播图数据列表
|
swiperList: [], // 轮播图数据列表
|
||||||
swiperIndex: 0, // 轮播图当前位置
|
swiperIndex: 0, // 轮播图当前位置
|
||||||
isChange: false, // 是否切换
|
isChange: false, // 是否切换
|
||||||
@@ -228,10 +228,33 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getQuestionList()
|
|
||||||
this.renderSwiper(0)
|
this.renderSwiper(0)
|
||||||
},
|
},
|
||||||
methods: {
|
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
|
//开通VIP
|
||||||
toVip(){
|
toVip(){
|
||||||
this.showVip=true
|
this.showVip=true
|
||||||
@@ -364,22 +387,37 @@ export default {
|
|||||||
this.topicIndex = index;
|
this.topicIndex = index;
|
||||||
this.renderSwiper(index);
|
this.renderSwiper(index);
|
||||||
},
|
},
|
||||||
|
isArrEqual(arr1, arr2){
|
||||||
|
return arr1.length === arr2.length && arr1.every((ele) => arr2.includes(ele));
|
||||||
|
},
|
||||||
//答题
|
//答题
|
||||||
answerQues(op, index) {
|
answerQues(op, index) {
|
||||||
if (!this.questionList[this.topicIndex].clickAnswer) {
|
const falseList =storage.get('wrongList') || []
|
||||||
this.questionList[this.topicIndex].optionList[index].chooseOption = op
|
const trueList =storage.get('rightList') || []
|
||||||
this.questionList[this.topicIndex].clickAnswer = op
|
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.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)){
|
if(!this.rightList.includes(this.questionList[this.topicIndex].questionId)){
|
||||||
this.rightList.push(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)){
|
if(this.wrongList.includes(this.questionList[this.topicIndex].questionId)){
|
||||||
const wIndex=this.wrongList.indexOf(this.questionList[this.topicIndex].questionId)
|
const wIndex=this.wrongList.indexOf(this.questionList[this.topicIndex].questionId)
|
||||||
this.wrongList.splice(wIndex,1)
|
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){
|
if(this.topicIndex<this.questionList.length-1){
|
||||||
this.topicIndex ++;
|
this.topicIndex ++;
|
||||||
this.qIndex=this.topicIndex
|
this.qIndex=this.topicIndex
|
||||||
@@ -403,6 +441,15 @@ export default {
|
|||||||
if(!this.wrongList.includes(this.questionList[this.topicIndex].questionId)){
|
if(!this.wrongList.includes(this.questionList[this.topicIndex].questionId)){
|
||||||
this.wrongList.push(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.getQuestionList()
|
||||||
this.renderSwiper(0)
|
this.renderSwiper(0)
|
||||||
},
|
},
|
||||||
getQuestionList() {
|
getQuestionList(val) {
|
||||||
this.questionList = [{
|
console.log(val);
|
||||||
questionId: 0,
|
this.questionList=val.map(item=>{
|
||||||
questionTypeDesc: '单选',
|
let isCollect=false
|
||||||
questionDesc: '第一题,在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?',
|
if(this.collectList.includes(item.questionId)){
|
||||||
optionList: [{
|
isCollect=true
|
||||||
op: 'A',
|
}
|
||||||
opDesc: '注意新手标志'
|
return {
|
||||||
}, {
|
isCollect:isCollect,
|
||||||
op: 'B',
|
...item
|
||||||
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
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- <u-navbar :title="navTitle" @rightClick="rightClick" :autoBack="true">
|
<!-- <u-navbar :title="navTitle" @rightClick="rightClick" :autoBack="true">
|
||||||
</u-navbar> -->
|
</u-navbar> -->
|
||||||
<j-navbar>{{navTitle}}</j-navbar>
|
<j-navbar>{{navTitle}}</j-navbar>
|
||||||
<Question :tabsList="tabsList" :isShowAll="true" />
|
<Question ref="question" :tabsList="tabsList" :isShowAll="true"></Question>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -27,16 +27,21 @@
|
|||||||
},{
|
},{
|
||||||
label:"背题",
|
label:"背题",
|
||||||
value:1
|
value:1
|
||||||
}]
|
}],
|
||||||
|
questionArr:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(op) {
|
onLoad(op) {
|
||||||
if(op&&op.navTitle){
|
if(op&&op.navTitle){
|
||||||
this.navTitle=op.navTitle
|
this.navTitle=op.navTitle
|
||||||
|
if(this.navTitle==='顺序答题'){
|
||||||
|
this.questionArr=[...this.orderQuestion]
|
||||||
|
this.$refs.question.getQuestionList(this.questionArr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(useQuestionStore, ["orderQuestionList"]) //映射函数,取出tagslist
|
...mapState(useQuestionStore, ["orderQuestion"]) //映射函数,取出tagslist
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
rightClick() {
|
rightClick() {
|
||||||
|
|||||||
@@ -2,12 +2,18 @@
|
|||||||
<view>
|
<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" />
|
<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">
|
<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">
|
<view class="flex ai-c jc-sb mt10 wp100">
|
||||||
<text class="fs18 fw600 cor-000">C1捷达-基础操作视频讲解</text>
|
<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>
|
<text class="fs14 cor-666">更多</text>
|
||||||
<u-icon color="#666" name="arrow-right" size="18"></u-icon>
|
<u-icon color="#666" name="arrow-right" size="18"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
|
<view v-else class="fs14 cor-666">共9条路线</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
</view>
|
</view>
|
||||||
@@ -53,6 +59,30 @@
|
|||||||
export default{
|
export default{
|
||||||
data(){
|
data(){
|
||||||
return{
|
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,
|
popupShow:false,
|
||||||
nowVideo:0,
|
nowVideo:0,
|
||||||
videoList:[{
|
videoList:[{
|
||||||
@@ -82,7 +112,15 @@
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad(op){
|
||||||
|
if(op.type){
|
||||||
|
this.videoType=op.type
|
||||||
|
}
|
||||||
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
checkTest(val){
|
||||||
|
this.videoIndex=val
|
||||||
|
},
|
||||||
checkVideo(val){
|
checkVideo(val){
|
||||||
this.nowVideo=val
|
this.nowVideo=val
|
||||||
}
|
}
|
||||||
@@ -130,4 +168,17 @@
|
|||||||
background: #00B74F;
|
background: #00B74F;
|
||||||
border-radius: 8rpx;
|
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>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
src/static/image/index/green_bg.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/static/image/index/index_bg.jpg
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 67 KiB |
BIN
src/static/image/index/orange_bg.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 332 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
src/static/image/index/vip_bg.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
src/static/image/login/logo.jpg
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 17 KiB |