unknown 3 weeks ago
parent
commit
2d9acc7f6d
  1. 6
      components/nodata/nodata.vue
  2. 1
      main.js
  3. 36
      pages.json
  4. 1
      pages/exercises/beforeExam/beforeExam.vue
  5. 25
      pages/exercises/brushQuestions/brushQuestions.vue
  6. 68
      pages/exercises/categoryExercises/categoryExercises.vue
  7. 84
      pages/exercises/examIntroduction/comp/card.scss
  8. 94
      pages/exercises/examIntroduction/comp/tab1.vue
  9. 63
      pages/exercises/examIntroduction/comp/tab2.vue
  10. 50
      pages/exercises/examIntroduction/comp/tab3.vue
  11. 39
      pages/exercises/examIntroduction/comp/tab4.vue
  12. 127
      pages/exercises/examIntroduction/examIntroduction.vue
  13. 303
      pages/exercises/myStudy/myStudy.vue
  14. 84
      pages/exercises/queTypeExercises/queTypeExercises.vue
  15. 47
      pages/exercises/theoryStudy/theoryStudy.vue
  16. 273
      pages/index/index - 副本 (2).vue
  17. 11
      pages/index/index - 副本.vue
  18. 89
      pages/vip/vipEntry/vipEntry - 副本.vue
  19. 53
      pages/vip/vipEntry/vipEntry.vue
  20. BIN
      static/images/bigImg/banner1.png
  21. BIN
      static/images/bigImg/banner2.png
  22. BIN
      static/images/bigImg/exambg.png
  23. BIN
      static/images/bigImg/vipallBg.png
  24. 0
      static/images/bigImg/vipbg.png
  25. BIN
      static/images/circular1.png
  26. BIN
      static/images/circular2.png
  27. BIN
      static/images/greetab.png
  28. BIN
      static/images/mystudy1.png
  29. BIN
      static/images/mystudy2.png
  30. BIN
      static/images/nodata.png
  31. BIN
      static/images/numbg.png
  32. BIN
      static/images/vip/allSbu1.png
  33. BIN
      static/images/vip/allSbu2.png
  34. BIN
      static/images/vip/allSbu3.png
  35. BIN
      static/images/vip/allsubL.png
  36. BIN
      static/images/vip/allsubR.png
  37. BIN
      static/images/vip/组 84@2x(1).png
  38. BIN
      static/images/vip/组 84@2x.png
  39. BIN
      static/images/vipbtn.png
  40. BIN
      static/images/微信图片_20240829100051.png

6
components/nodata/nodata.vue

@ -23,7 +23,7 @@
padding: 40rpx 0;
}
.img {
width: 396rpx;height: 227rpx;
width: 300rpx;height: 313rpx;
image {
display: block;
width: 100%;
@ -31,8 +31,8 @@
}
}
.text {
font-size: 26rpx;
font-size: 32rpx;
color: #999;
margin-top: 60rpx;
margin-top: -100rpx;
}
</style>

1
main.js

@ -12,6 +12,7 @@ import { goPage } from '@/utils/utils.js'
// })
// app.$mount()
// // #endif
//
// #ifdef VUE3

36
pages.json

@ -52,6 +52,15 @@
}
},
{
"path": "examIntroduction/examIntroduction",
"style": {
"navigationBarTitleText": "考试简介",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
},
{
"path": "beforeExam/beforeExam",
"style": {
"navigationBarTitleText": "考试须知",
@ -86,6 +95,33 @@
"backgroundTextStyle": "dark" ,
"navigationStyle": "custom"
}
},
{
"path": "categoryExercises/categoryExercises",
"style": {
"navigationBarTitleText": "分类练习",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
// "navigationStyle": "custom"
}
},
{
"path": "queTypeExercises/queTypeExercises",
"style": {
"navigationBarTitleText": "题型练习",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
// "navigationStyle": "custom"
}
},
{
"path": "myStudy/myStudy",
"style": {
"navigationBarTitleText": "我的学习",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
}

1
pages/exercises/beforeExam/beforeExam.vue

@ -45,7 +45,6 @@
})
function goBack() {
console.log('返回吧')
uni.navigateBack()
}

25
pages/exercises/brushQuestions/brushQuestions.vue

@ -9,7 +9,6 @@
</template>
</up-navbar>
<u-button type="primary" text="去考试页面" @click="goEmam"></u-button>
<view class="con padding">
<view class="h1_row">
@ -28,6 +27,10 @@
<view class="ans">正确答案是<text>B</text></view>
<view class="ans">您的答案是<text>B</text></view>
</view>
<view class="btn_row flex-b">
<view class="btn border">上一题</view>
<view class="btn bg">下一题</view>
</view>
<view class="analysis">
<view class="tit">题目解析</view>
<view class="txt">解析解析解析解析解析解析解析解析解析解析解析解析</view>
@ -37,7 +40,6 @@
</template>
<script>
//
export default {
data() {
return {
@ -51,6 +53,7 @@
this.currentNav = val
},
goEmam() {
uni.navigateTo({
// url: '/pages/exercises/exam/exam',
// url: '/pages/exercises/beforeExam/beforeExam',
@ -89,7 +92,25 @@
}
}
}
.btn_row {
padding: 100rpx 0 50rpx 0;
.btn {
width: 44%;
height: 76rpx;
border-radius: 38rpx;
border: 1rpx solid $themC;
line-height: 76rpx;
text-align: center;
font-size: 28rpx;
color: $themC;
&.bg {
background: #3776FF;
border-radius: 38rpx;
color: #fff;
}
}
}
.con {
.h1_row {
margin-bottom: 50rpx;

68
pages/exercises/categoryExercises/categoryExercises.vue

@ -0,0 +1,68 @@
<template>
<view class="content padding">
<view class="con" v-for="(item,index) in 5" :key="index">
<view class="h5">交通信息</view>
<view class="ul">
<view class="li" v-for="(item,index) in 6" :key="index" @click="goPage">
<view class="icon">
<!-- <image src="../../../static/images/avatarbg.png" mode=""></image> -->
</view>
<view class="text">交通信号</view>
</view>
</view>
</view>
</view>
</template>
<script setup>
function goPage() {
uni.navigateTo({
url: '/pages/exercises/brushQuestions/brushQuestions'
})
}
</script>
<style lang="scss" scoped>
image {
display: block;
width: 100%;
height: 100%;
}
.content {
width: 100%;
.con {
padding: 50rpx 0 20rpx 0;
.h5 {
font-weight: bold;
margin-bottom: 10rpx;
font-size: 32rpx;
}
.ul {
display: flex;
flex-wrap: wrap;
.li {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
padding: 30rpx 0;
.icon {
width: 68rpx;
height: 68rpx;
background: #EF8F4C;
box-shadow: 0px 2rpx 5rpx 0px rgba(239,143,76,0.5);
border-radius: 26rpx;
}
.text {
font-weight: 500;
margin-top: 20rpx;
font-size: 28rpx;
}
}
}
}
}
</style>

84
pages/exercises/examIntroduction/comp/card.scss

@ -0,0 +1,84 @@
.leftLineH {
width: 100%;
height: auto;
position: relative;
&:before {
content: '';
position: absolute;
left: 22rpx;
height: 100%;
width: 2rpx;
background-color: #F6F7FA;
}
.tit_row {
.num {
width: 44rpx;
height: 50rpx;
text-align: center;
line-height: 44rpx;
color: #fff;
font-weight: 500;
font-size: 32rpx;
background: url('../../../../static/images/numbg.png') no-repeat;
background-size: 100% 100%;
position: relative;
z-index: 2;
}
.tit {
font-weight: bold;
font-size: 32rpx;
padding-left: 40rpx;
}
}
.tables {
border: 1px solid #F6F7FA;
margin-top: 30rpx;
border-radius: 8rpx;
.th {
border-bottom: 1px solid #F6F7FA;
height: 64rpx;
line-height: 64rpx;
display: flex;
font-weight: 500;
font-size: 24rpx;
text-align: center;
.td {
border-right: 1px solid #F6F7FA;
&:first-child {
width: 0;
flex: 1;
}
&:last-child {
border: none;
width: 145rpx;
}
}
}
}
}
.con {
padding-left: 62rpx;
padding-top: 20rpx;
margin-bottom: 78rpx;
.text {
font-weight: 500;
font-size: 28rpx;
text {
color: #EE890C;
}
}
}

94
pages/exercises/examIntroduction/comp/tab1.vue

@ -0,0 +1,94 @@
<template>
<view class="">
<view class="leftLineH">
<view class="tit_row flex">
<view class="num">1</view>
<view class="tit">什么是科目一考试</view>
</view>
<view class="con">
<view class="text">科目一考试全称为道路交通安全法律法规和相关知识考试科目</view>
</view>
<view class="tit_row flex">
<view class="num">2</view>
<view class="tit">科目一考试出题形式</view>
</view>
<view class="con">
<view class="text">科目一试题是以文本或图片视频等形式表现的判断题单项选择题构成比例为
<text>判断题占比40%单项选择题占60%</text>
</view>
</view>
<view class="tit_row flex">
<view class="num">3</view>
<view class="tit">科目一考试内容</view>
</view>
<view class="con">
<view class="text">考试内容及组卷比例见下表</view>
<view class="tables">
<view class="th" style="width: 100%;">
<view class="td"> C1C2C5准驾车型科目一考试内容</view>
</view>
<view class="th">
<view class="td">试题内容</view>
<view class="td">组卷比例</view>
</view>
<view class="th">
<view class="td">驾驶证和机动车管理规范</view>
<view class="td">20%</view>
</view>
<view class="th">
<view class="td">道路通行条件及通行规范</view>
<view class="td">25%</view>
</view>
<view class="th">
<view class="td">道路交通安全违法行为及处罚</view>
<view class="td">25%</view>
</view>
<view class="th">
<view class="td">道路交通事故处理相关规定</view>
<view class="td">10%</view>
</view>
<view class="th">
<view class="td">机动车基础知识</view>
<view class="td">10%</view>
</view>
<view class="th">
<view class="td">地方性法规</view>
<view class="td">10%</view>
</view>
<view class="th">
<view class="td">合计</view>
<view class="td">100%</view>
</view>
</view>
</view>
<view class="tit_row flex">
<view class="num">4</view>
<view class="tit">科目一考试合格标准</view>
</view>
<view class="con">
<view class="text">科目一考试每场试题数量为100题
<text>满分100分成绩达到90分</text>
以上合格考试时间45分钟考试不合格的可当场补考一次
</view>
</view>
<view class="tit_row flex">
<view class="num">5</view>
<view class="tit">科目一考试次数限制</view>
</view>
</view>
<view class="con">
<view class="text">
<text>科目一考试预约没有次数限制</text>
考试只有通过科目一考试后才能获得学习证明
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
@import url("./card.scss");
</style>

63
pages/exercises/examIntroduction/comp/tab2.vue

@ -0,0 +1,63 @@
<template>
<view class="">
<view class="leftLineH">
<view class="tit_row flex">
<view class="num">1</view>
<view class="tit">预约考试</view>
</view>
<view class="con">
<view class="text">考生可通过 <text>互联网电话窗口</text>等方式申请预约考场考试时间考试场次等预约成功后方可参加考试
互联网预约<br>
1通过12123手机App预约<br>
2通过交通安全综合服务管理平台预约</view>
</view>
<view class="tit_row flex">
<view class="num">2</view>
<view class="tit">签到</view>
</view>
<view class="con">
<view class="text">到达预约的考场后考试须持本人身份证件前往
<text>自动签到机或人工签到台</text>完成签到
</view>
</view>
<view class="tit_row flex">
<view class="num">3</view>
<view class="tit">候考</view>
</view>
<view class="con">
<view class="text">考试按照考试工作人员安排有序进入候考区候考时应留意 <text>电子显示屏或语音信息提示</text>请注意遵守候考区纪律</view>
</view>
<view class="tit_row flex">
<view class="num">4</view>
<view class="tit">考试</view>
</view>
<view class="con">
<view class="text">考试根据广播叫号和大屏幕显示的信息顺序通过安全检查后进入考场找到对应的考台核验身份开始考试第一次考试不合格的可当场补考一次</view>
</view>
<view class="tit_row flex">
<view class="num">5</view>
<view class="tit">签字确认成绩</view>
</view>
<view class="con">
<view class="text">考试结束后考生应按照考场工作人员引导 <text>签字确认考试成绩</text></view>
</view>
<view class="tit_row flex">
<view class="num">6</view>
<view class="tit">离开考场</view>
</view>
</view>
<view class="con">
<view class="text">考生签字确认考试成绩后按照规定通道有序离开考场不得在考场内逗留
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
@import url("./card.scss");
</style>

50
pages/exercises/examIntroduction/comp/tab3.vue

@ -0,0 +1,50 @@
<template>
<view class="">
<view class="leftLineH">
<view class="tit_row flex">
<view class="num">1</view>
<view class="tit">完成课程学习</view>
</view>
<view class="con">
<view class="text">考生按照培训考试大纲进行科目一相关知识学习掌握机动车驾驶人道路交通安全法律法规和相关知识</view>
</view>
<view class="tit_row flex">
<view class="num">2</view>
<view class="tit">携带身份证件</view>
</view>
<view class="con">
<view class="text">携带身份证并确认
<text>身份证状态正常可用</text>
</view>
</view>
<view class="tit_row flex">
<view class="num">3</view>
<view class="tit">提前到达考场</view>
</view>
<view class="con">
<view class="text">
1牢记考场考试时间考试场次等信息<br>
2了解天气情况和路况提前到达考场准备考试
</view>
</view>
<view class="tit_row flex">
<view class="num">4</view>
<view class="tit">做好考前准备</view>
</view>
</view>
<view class="con">
<view class="text">1考生在候考时应认真听考试员考前讲解有疑问的及时提问<br>
2<text>不得携带不符合规定的电子设备</text>等物品进入考场
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
@import url("./card.scss");
</style>

39
pages/exercises/examIntroduction/comp/tab4.vue

@ -0,0 +1,39 @@
<template>
<view class="">
<view class="leftLineH">
<view class="tit_row flex">
<view class="num">1</view>
<view class="tit">参加考试时</view>
</view>
<view class="con">
<view class="text">
1进入考场后应按照考试工作人员指挥对号入座<br>
2<text>认真核对考生信息</text>确认无误后开始考试<br>
3<text>留意剩余考试时间</text>把握答题速度<br>
4考试过程中注意不要遮挡摄像头<text>个人头像需保持在摄像头拍摄范围内<br>
</text>
5如有问题请及时举手向考试工作人员反映
</view>
</view>
<view class="tit_row flex">
<view class="num">2</view>
<view class="tit">考试完成后</view>
</view>
</view>
<view class="con">
<view class="text">
1考试后无论成绩是否通过都应按照考场工作人员引导签字确认考试成绩<br>
2考试结束后及时离开考场不得逗留不得妨碍其他考生考试
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
@import url("./card.scss");
</style>

127
pages/exercises/examIntroduction/examIntroduction.vue

@ -0,0 +1,127 @@
<template>
<view class="content">
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" :fixed="false"
:bgColor="'transparent'" title="考试" :titleStyle="{color: '#fff'}"></up-navbar>
<view class="padding">
<view class="tabs flex-b">
<view class="btn" @click="changeNav(item)" :class="{active: currentNav==item.name}"
v-for="(item,index) in tabData" :key="index">{{ item.name }}</view>
</view>
<view class="card">
<view class="title">
<view class="titlebg">{{ currentNav }}</view>
</view>
<tab1 v-if="currentNav=='考试简介'"/>
<tab2 v-if="currentNav=='考试流程'"/>
<tab3 v-if="currentNav=='考试准备'"/>
<tab4 v-if="currentNav=='注意事项'"/>
</view>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
onLoad,
} from '@dcloudio/uni-app'
import tab1 from './comp/tab1.vue'
import tab2 from './comp/tab2.vue'
import tab3 from './comp/tab3.vue'
import tab4 from './comp/tab4.vue'
const value = ref(false)
const currentNav = ref('考试简介')
function changeNav(val) {
currentNav.value = val.name
}
onLoad((option) => {
if (option.tab) currentNav.value = option.tab
})
const tabData = ref([{
name: '考试简介',
id: 1
},
{
name: '考试准备',
id: 3
},
{
name: '考试流程',
id: 2
},
{
name: '注意事项',
id: 4
},
])
</script>
<style lang="scss" scoped>
.tabs {
display: flex;
padding: 20rpx 0 10rpx 0;
.btn {
color: #fff;
position: relative;
// padding: 0 20rpx;
&.active {
&::before {
content: '';
position: absolute;
left: 50%;
bottom: -20rpx;
width: 40rpx;
height: 6rpx;
background: #F6F7F8;
border-radius: 3rpx;
transform: translateX(-50%);
}
}
}
}
.content {
width: 100%;
// background-color: #F6F7FA;
min-height: 100vh;
// padding: 0rpx 30rpx 30rpx 30rpx;
padding-bottom: 30rpx;
background: url('../../../static/images/bigImg/exambg.png') #F6F7FA no-repeat;
background-size: 100% 800rpx;
.card {
background: #FFFFFF;
border-radius: 20rpx;
padding: 0 30rpx 30rpx 30rpx;
margin-top: 50rpx;
.title {
height: 116rpx;
display: flex;
justify-content: center;
.titlebg {
width: 260rpx;
height: 70rpx;
font-weight: bold;
font-size: 36rpx;
background: url('../../../static/images/greetab.png') no-repeat;
background-size: 100% 100%;
text-align: center;
line-height: 70rpx;
color: #fff;
}
}
}
}
</style>

303
pages/exercises/myStudy/myStudy.vue

@ -0,0 +1,303 @@
<template>
<view class="content">
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" title="我的学习" :bgColor="'transparent'" :titleStyle="{color: '#fff'}">
</up-navbar>
<view class="studyDay">已坚持学习8天</view>
<view class="card">
<view class="tabs">
<view class="tab" @click="changeNav(1)" :class="{active: currentNav==1}">科一</view>
<view class="tab" @click="changeNav(2)" :class="{active: currentNav==2}">科四</view>
</view>
<view class="pd20">
<view class="statistics">
<view class="statisticsItem" v-for="(item,index) in statisticsData" :key="index">
<view class="num">{{ item.num }}</view>
<view class="text">{{ item.name }}</view>
</view>
</view>
<view class="h3">刷题进度</view>
<view class="bgCard_row">
<view class="bgCard">
<view class="lab">顺序练习</view>
<view class="tps">已完成</view>
<view class="num">140/500</view>
</view>
<view class="bgCard">
<view class="lab">精选试题</view>
<view class="tps">已完成</view>
<view class="num">110/500</view>
</view>
</view>
</view>
</view>
<view class="card card2">
<view class="chartTab">
<view class="h3">刷题进度</view>
<view class="btn_row">
<view class="btn" @click="changeChart(1)" :class="{bg: currentChart==1}">曲线</view>
<view class="btn" @click="changeChart(2)" :class="{bg: currentChart==2}">明细</view>
</view>
</view>
<view class="tip">近30次科目一模拟考试成绩</view>
<view class="con" v-if="currentChart==1">
图表
<view class="tips">按住可左右滑动查看更多成绩</view>
</view>
<view class="con" v-if="currentChart==2">
<view class="tables">
<view class="fristTab li">
<view class="item">考试成绩</view>
<view class="item">考试用时</view>
<view class="item">考试时间</view>
</view>
<view class="li">
<view class="item">90</view>
<view class="item">10分30秒</view>
<view class="item">2024-8-28</view>
</view>
</view>
</view>
</view>
<!-- 如果是科目四并且没有数据 -->
<view class="subject4 card2 card" v-if="currentNav==2">
<view class="h3">模拟考试</view>
<nodata>暂无考试记录</nodata>
<view class="btnE">
<oneBtn text="去考试" @oneBtnClick="$goPage('/pages/exercises/beforeExam/beforeExam')"></oneBtn>
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
import nodata from '@/components/nodata/nodata.vue'
const value = ref(false)
const currentNav = ref(1)
function changeNav(val) {
currentNav.value = val
}
const statisticsData = ref([
{name: '我的收藏', num: 0},
{name: '我的错题', num: 1},
{name: '考试记录', num: 2},
{name: '预计合格率', num: '100%'},
])
const currentChart = ref(1)
function changeChart(num) {
currentChart.value = num
}
</script>
<style lang="scss" scoped>
.u-nav-slot {
display: flex;
.btn {
color: #fff;
position: relative;
padding: 0 20rpx;
&.active {
&::before {
content: '';
position: absolute;
left: 50%;
bottom: -20rpx;
width: 30rpx;
height: 4rpx;
background: #F6F7F8;
border-radius: 2rpx;
transform: translateX(-50%);
}
}
}
}
.content {
width: 100%;
// background-color: #F6F7FA;
min-height: 100vh;
padding: 100rpx 30rpx 30rpx 30rpx;
background: url('../../../static/images/topbg.png') #F6F7FA no-repeat;
background-size: 100% 410rpx;
.studyDay {
font-weight: bold;
font-size: 36rpx;
color: #FFFFFF;
padding: 40rpx 0;
}
.card {
background: #FFFFFF;
border-radius: 20rpx;
overflow: hidden;
margin-top: 20rpx;
&.card2 {
padding: 20rpx;
}
.pd20 {
padding: 20rpx;
}
.tabs {
height: 84rpx;
background: #F6F7FA;
border-radius: 20rpx 20rpx 0px 0px;
display: flex;
line-height: 84rpx;
text-align: center;
.tab {
width: 160rpx;
font-weight: 500;
font-size: 28rpx;
&.active {
background: #fff;
}
}
}
.statistics {
display: flex;
.statisticsItem {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 152rpx;
&:last-child {
background: linear-gradient(0deg, rgba(55,118,255,0) 0%, #EDF3FF 100%);
border-radius: 10px;
color: $themC;
.text {
color: $themC;
}
}
.num {
font-family: DIN;
font-weight: bold;
font-size: 38rpx;
margin-bottom: 6rpx;
}
.text {
font-size: 24rpx;
color: #CCCCCC;
margin-bottom: 16rpx;
}
}
}
.h3 {
font-weight: 500;
font-size: 30rpx;
}
.bgCard_row {
display: flex;
justify-content: space-between;
margin-top: 20rpx;
.bgCard {
padding: 20rpx 0 0 30rpx;
height: 172rpx;
width: 48%;
&:first-child {
background: url('../../../static/images/mystudy1.png') no-repeat;
background-size: 100% 100%;
color: #24CBBA;
}
&:last-child {
background: url('../../../static/images/mystudy2.png') no-repeat;
background-size: 100% 100%;
color: #F07634;
}
.lab {
font-size: 28rpx;
}
.tps {
font-size: 24rpx;
opacity: 0.3;
padding: 6rpx 0;
}
.num {
font-family: DIN;
font-weight: bold;
font-size: 36rpx;
}
}
}
}
.tip {
font-size: 24rpx;
color: #ccc;
padding: 10rpx 0 30rpx;
}
.tips {
width: 360rpx;
height: 48rpx;
background: #DCE7FF;
border-radius: 24rpx;
font-size: 24rpx;
color: $themC;
text-align: center;
line-height: 48rpx;
margin-top: 30rpx;
}
.chartTab {
display: flex;
justify-content: space-between;
.btn_row {
display: flex;
width: 170rpx;
height: 44rpx;
border-radius: 8rpx;
overflow: hidden;
border: 1px solid $themC;
.btn.bg {
background: #3776FF;
color: #fff;
}
.btn {
color: $themC;
text-align: center;
font-size: 28rpx;
flex: 1;
}
}
}
.tables {
width: 100%;
.fristTab.li {
background: #F4F4F4;
border-radius: 8rpx 8rpx 0 0;
.item {
color: $themC;
}
}
.li {
height: 76rpx;
line-height: 76rpx;
border-bottom: 1rpx solid #F4F4F4;
display: flex;
.item {
text-align: center;
flex: 1;
font-size: 28rpx;
}
}
}
}
.btnE {
width: 240rpx;
margin: 30rpx auto 60rpx auto;
}
</style>

84
pages/exercises/queTypeExercises/queTypeExercises.vue

@ -0,0 +1,84 @@
<template>
<view class="content">
<view class="ul padding">
<view class="li" v-for="(item,index) in tabData" :key="index" @click="goPage(index)">
<view class="num" :style="{background: colorArr[index]}">{{index+1}}</view>
<view class="rightTxt">
<view class="h1">{{ item.name }}</view>
<view class="flex">
<view class="proccess">
<up-line-progress :percentage="80" height="8" activeColor="#3776FF" :showText="false"></up-line-progress>
</view>
<view class="rate">{{ item.num1 }}/{{ item.num2 }}</view>
<view class="rate">正确率 {{ item.acc }}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
const colorArr = ref([
'#3776FF', '#64C76C', '#8484FF', '#F05C1C', '#FDD650', '#6FD568', '#52C1D0'
])
const tabData = ref([
{name: '单选题', num1: '60', num2: '260', acc: '100%'},
{name: '多选题', num1: '60', num2: '260', acc: '100%'},
{name: '判断题', num1: '60', num2: '260', acc: '100%'},
{name: '文本题', num1: '60', num2: '260', acc: '100%'},
{name: '图片题', num1: '60', num2: '260', acc: '100%'},
])
function goPage(index) {
uni.navigateTo({
url: '/pages/exercises/brushQuestions/brushQuestions'
})
}
</script>
<style lang="scss" scoped>
.content {
width: 100%;
.ul {
width: 100%;
.li {
width: 100%;
display: flex;
padding: 30rpx 0;
border-bottom: 1px solid #F4F4F4;
.num {
height: 34rpx;
width: 34rpx;
// padding: 10rpx 10rpx;
text-align: center;
background: #3776FF;
border-radius: 50%;
font-size: 24rpx;
color: #fff;
line-height: 34rpx;
margin-top: 8rpx;
}
.h1 {
font-size: 32rpx;
color: #333;
margin-bottom: 20rpx;
}
.rightTxt {
padding-left: 20rpx;
}
.flex {
.proccess {
margin-right: 20rpx;
width: 120rpx;
}
.rate {
font-size: 24rpx;
color: #CCCCCC;
margin-right: 30rpx;
}
}
}
}
}
</style>

47
pages/exercises/theoryStudy/theoryStudy.vue

@ -1,6 +1,6 @@
<template>
<view class="content">
<up-navbar title="理论学习" :leftIconColor="'#333'" :safeAreaInsetTop="true" :autoBack="true" :bgColor="'transparent'">
<up-navbar title="理论学习" :leftIconColor="'#333'" :safeAreaInsetTop="true" :autoBack="true" >
<template #right>
<view class="u-nav-slot flex">
<view class="txt">小车</view>
@ -11,11 +11,11 @@
<view class="tabs flex">
<view class="tab" @click="changeTab(1)" :class="{active: currentTab==1}">科目一</view>
<view class="tab" @click="changeTab(2)" :class="{active: currentTab==2}">收藏夹</view>
<view class="tab" @click="changeTab(2)" :class="{active: currentTab==2}">科目四</view>
</view>
<view class="swiperBox">
<u-swiper :list="list1" @click="swiperClick" :dots-styles="dotsStyles" indicatorMode="dot"></u-swiper>
<u-swiper :list="list1" @click="swiperClick" :dots-styles="dotsStyles" indicatorMode="dot" imgMode="" height="160rpx"></u-swiper>
</view>
<view class="notice">
@ -25,7 +25,7 @@
<view class="iconBox">
<view class="iconComl">
<view class="item" v-for="(item,index) in leftItem" :key="index">
<view class="item" v-for="(item,index) in leftItem" :key="index" @click="$goPage(item.url)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
@ -33,17 +33,17 @@
</view>
</view>
<view class="centerComl">
<view class="ctItem">
<view class="ctItem" @click="$goPage('/pages/exercises/brushQuestions/brushQuestions')">
<view class="txt">顺序练习</view>
<view class="txt">0/1700</view>
</view>
<view class="ctItem">
<view class="ctItem" @click="$goPage('/pages/vip/vipEntry/vipEntry')">
<view class="txt">精选试题</view>
<view class="txt">0/1700</view>
</view>
</view>
<view class="iconComl">
<view class="item" v-for="(item,index) in rightItem" :key="index">
<view class="item" v-for="(item,index) in rightItem" :key="index" @click="$goPage(item.url)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
@ -71,7 +71,7 @@
</view>
<view class="ul flex">
<view class="li" v-for="(item,index) in bottomItem" :key="index">
<view class="li" v-for="(item,index) in bottomItem" :key="index" @click="$goPage('pages/exercises/examIntroduction/examIntroduction?tab='+item.name)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
@ -85,9 +85,8 @@
<script setup>
import { ref } from 'vue'
const list1 = [
'https://cdn.uviewui.com/uview/swiper/swiper1.png',
'https://cdn.uviewui.com/uview/swiper/swiper2.png',
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
new URL('@/static/images/bigImg/banner1.png', import.meta.url).href,
new URL('@/static/images/bigImg/banner2.png', import.meta.url).href,
]
function swiperClick(val) {
console.log(val)
@ -102,17 +101,17 @@
})
const leftItem = ref([
{name: '分类学习', icon: new URL('@/static/images/theory/theoryIcon1.png', import.meta.url).href, url: ''},
{name: '章节练习', icon: new URL('@/static/images/theory/theoryIcon7.png', import.meta.url).href, url: ''},
{name: '精选试题', icon: new URL('@/static/images/theory/theoryIcon9.png', import.meta.url).href, url: ''},
{name: '考前密卷', icon: new URL('@/static/images/theory/theoryIcon11.png', import.meta.url).href, url: ''},
{name: '分类学习', icon: new URL('@/static/images/theory/theoryIcon1.png', import.meta.url).href, url: '/pages/exercises/categoryExercises/categoryExercises'},
{name: '章节练习', icon: new URL('@/static/images/theory/theoryIcon7.png', import.meta.url).href, url: '/pages/exercises/chapter/chapter'},
{name: '精选试题', icon: new URL('@/static/images/theory/theoryIcon9.png', import.meta.url).href, url: '/pages/exercises/brushQuestions/brushQuestions'},
{name: '考前密卷', icon: new URL('@/static/images/theory/theoryIcon11.png', import.meta.url).href, url: '/pages/exercises/brushQuestions/brushQuestions'},
])
const rightItem = ref([
{name: '题型练习', icon: new URL('@/static/images/theory/theoryIcon6.png', import.meta.url).href, url: ''},
{name: '错题收藏', icon: new URL('@/static/images/theory/theoryIcon8.png', import.meta.url).href, url: ''},
{name: '仿真考试', icon: new URL('@/static/images/theory/theoryIcon10.png', import.meta.url).href, url: ''},
{name: '我的学习', icon: new URL('@/static/images/theory/theoryIcon12.png', import.meta.url).href, url: ''},
{name: '题型练习', icon: new URL('@/static/images/theory/theoryIcon6.png', import.meta.url).href, url: '/pages/exercises/queTypeExercises/queTypeExercises'},
{name: '错题收藏', icon: new URL('@/static/images/theory/theoryIcon8.png', import.meta.url).href, url: '/pages/exercises/wrongQuestion/wrongQuestion'},
{name: '仿真考试', icon: new URL('@/static/images/theory/theoryIcon10.png', import.meta.url).href, url: '/pages/exercises/beforeExam/beforeExam'},
{name: '我的学习', icon: new URL('@/static/images/theory/theoryIcon12.png', import.meta.url).href, url: '/pages/exercises/myStudy/myStudy'},
])
const bottomItem = ref([
@ -121,6 +120,10 @@
{name: '考试流程', icon: new URL('@/static/images/theory/theoryIcon4.png', import.meta.url).href, url: ''},
{name: '注意事项', icon: new URL('@/static/images/theory/theoryIcon5.png', import.meta.url).href, url: ''},
])
function changeTab(num) {
currentTab.value = num
}
</script>
<style lang="scss" scoped>
@ -226,7 +229,8 @@
.ctItem {
width: 230rpx;
height: 230rpx;
background: linear-gradient(0deg, #4FACFE 0%, #00F2FE 100%);
background: url('../../../static/images/circular1.png') no-repeat;
background-size: 100% 100%;
border-radius: 50%;
// border: 10px solid;
// opacity: 0.1;
@ -236,7 +240,8 @@
justify-content: center;
flex-direction: column;
&:last-child {
background: linear-gradient(45deg, #0FE25C 0%, #1FF2CA 100%);
background: url('../../../static/images/circular2.png') no-repeat;
background-size: 100% 100%;
}
.txt {
font-size: 32rpx;

273
pages/index/index - 副本 (2).vue

@ -1,273 +0,0 @@
<template>
<div class="w-table">
<table id="cus-table" cellspacing="0">
<!-- 综掘 -->
<tr>
<td rowspan="7">综掘</td>
<td>序号</td>
<td>名称</td>
<td>设计断面(m)</td>
<td>巷高(m)</td>
<td>巷宽(m)</td>
<td>日计划(m)</td>
<td>日完成(m)</td>
<td>月累计(m)</td>
<td>欠完原因</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td rowspan="6">
<u-textarea
type="textarea"
:autosize="{ minRows: 10}"
placeholder="请输入"
v-model="diggReasonText">
</u-textarea>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- 综采 -->
<tr>
<td rowspan="3">综采</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td rowspan="7">
<u-textarea
type="textarea"
:autosize="{ minRows: 10}"
placeholder="请输入"
v-model="miniingReasonText">
</u-textarea>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- 原煤产量 -->
<tr>
<td colspan="2">原煤产量()</td>
<td>日计</td>
<td></td>
<td>月累计</td>
<td></td>
<td></td>
<td>库存量</td>
<td></td>
</tr>
<!-- 销售量 -->
<tr>
<td colspan="2">销售量()</td>
<td>日计</td>
<td></td>
<td>月累计</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- 洗煤产量 -->
<tr>
<td colspan="2">洗煤产量()</td>
<td>日计</td>
<td></td>
<td>月累计</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- 矿值班领导 -->
<tr>
<td>矿值班领导</td>
<td></td>
<td>生产口</td>
<td colspan="2"></td>
<td colspan="2">行政口</td>
<td colspan="2"></td>
</tr>
<!-- 带班领导 -->
<tr>
<td>带班领导</td>
<td>0点班</td>
<td colspan="2"></td>
<td>8点班</td>
<td colspan="2"></td>
<td>4点班</td>
<td colspan="2"></td>
</tr>
<!-- 下井人数 -->
<tr>
<td>下井人数</td>
<td>0点班</td>
<td></td>
<td>8点班</td>
<td></td>
<td>4点班</td>
<td></td>
<td>合计</td>
<td></td>
<td></td>
</tr>
<!-- 安全生产信息汇总 -->
<tr>
<td rowspan="6">安全生产信息汇总</td>
<td rowspan="2">生产影响:</td>
<td colspan="8"></td>
</tr>
<tr>
<td colspan="8"></td>
</tr>
<tr>
<td rowspan="2">安全事故</td>
<td colspan="8"></td>
</tr>
<tr>
<td colspan="8"></td>
</tr>
<tr>
<td rowspan="2">其他:</td>
<td colspan="8"></td>
</tr>
<tr>
<td colspan="8"></td>
</tr>
<tr>
<td>调度主任</td>
<td colspan="6">
<u-textarea
type="textarea"
:autosize="{ minRows: 1}"
placeholder="请输入"
v-model="directorReasonText">
</u-textarea>
</td>
<td>填写人</td>
<td colspan="2">
<u-textarea
type="textarea"
:autosize="{ minRows: 1}"
placeholder="请输入"
v-model="filledBy">
</u-textarea>
</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data() {
return {
diggReasonText: '什么?', //
miniingReasonText: '', //
directorReasonText: '', //
filledBy: '' //
};
},
};
</script>
<style scoped>
.w-table {
width: 100%;
height: 100%;
}
table td {
width: 168px;
height: 30px;
border: 1px solid rgba(0, 118, 200, .3);
background: transparent;
color: #7a9cc2;
font-size: 14px;
text-align: center;
padding: 0;
margin: 0;
}
::v-deep .el-textarea__inner {
background: transparent;
color: #fff;
border-radius: 0;
border: 1px solid rgba(0, 118, 200, .5);
}
::v-deep .el-textarea .u-textarea__count {
background: transparent;
}
</style>

11
pages/index/index - 副本.vue

@ -1,11 +0,0 @@
<template>
<view class="content">
<up-button type="primary" text="点我啊" @click="$goPage('/pages/exercises/chapter/chapter')"></up-button>
</view>
</template>
<script setup>
import { ref,reactive } from 'vue';
import {onLoad,onReady} from "@dcloudio/uni-app"
</script>

89
pages/vip/vipEntry/vipEntry - 副本.vue

@ -1,89 +0,0 @@
<template>
<view class="content">
<view class="topBg">
<view class="tag">XXXX成为VIP会员</view>
<view class="tag">一次搞定</view>
<view class="tag">常见问题</view>
<view class="tag">五大特权</view>
<view class="tag">最低仅需xx元/</view>
</view>
<view class="allVip">
<view class="vipItem" v-for="(item,index) in 3" :key="index">
<view class="lab">全科VIP</view>
<view class="redT flex">
<view class="price"><text>15</text></view>
<view class="day">100</view>
</view>
</view>
</view>
<view class="btnBox flex-b">
<view class="whiteT flex">
<view class="price"><text>15</text></view>
<view class="day">100</view>
</view>
<view class="upgra">升级为VIP</view>
</view>
<view class="card">
<view class="h1_row">
<view class="h1">尊享权益</view>
<view class="moreBox">
<moreRight text="查看全部"/>
</view>
</view>
<view class="tit_row flex">
<view class="round">
<image src="" mode=""></image>
</view>
<view class="tit">五大权益助力高效领证</view>
<view class="round">
<image src="" mode=""></image>
</view>
</view>
<view class="tps">180天内无限使用</view>
<view class="ul">
<view class="li" v-for="(item,index) in 5" :key="index">
<view class="icon">
<image src="" mode=""></image>
</view>
<view class="txt">精选试题</view>
</view>
</view>
</view>
<view class="learning">
<view class="h1">四步高效学习法</view>
<view class="blueBg">
<view class="blueTxt">拒绝费时费力 高效备考理论</view>
<view class="ul">
<view class="li">
<view class="flex">
<view class="step">第一步</view>
<view class="unit"></view>
</view>
<view class="flex-b">
<view class="leftImg">
<image src="" mode=""></image>
</view>
<view class="rightTxt">
<view class="lab">精选试题</view>
<view class="txt">提炼易错易考试题减少相似题目练习缩短备考时间</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style>
</style>

53
pages/vip/vipEntry/vipEntry.vue

@ -9,13 +9,42 @@
</view>
<view class="padding">
<view class="allSubRow">
<view class="allsbItem">
<view class="icon">
<image src="@/static/images/vip/allSbu1.png" mode=""></image>
</view>
<view class="text">科一VIP</view>
</view>
<view class="allsbItem">
<view class="icon_arrow">
<image src="@/static/images/vip/allsubR.png" mode=""></image>
</view>
</view>
<view class="allsbItem">
<view class="icon">
<image src="@/static/images/vip/allSbu2.png" mode=""></image>
</view>
<view class="text">全科VIP</view>
</view>
<view class="allsbItem">
<view class="icon_arrow">
<image src="@/static/images/vip/allSbuL.png" mode=""></image>
</view>
</view>
<view class="allsbItem">
<view class="icon">
<image src="@/static/images/vip/allsubL.png" mode=""></image>
</view>
<view class="text">科四VIP</view>
</view>
</view>
<view class="allVip flex-b">
<view class="vipItem" v-for="(item,index) in 3" :key="index" :class="{active: index==1}">
<view class="lab">全科VIP</view>
<view class="vipItem" v-for="(item,index) in vipItemData" :key="index" :class="{active: index==1}">
<view class="lab">{{item.name}}</view>
<view class="redT flex">
<view class="price"><text>15/</text></view>
<view class="day">100</view>
<view class="price"><text>{{item.price}}/</text></view>
<view class="day">{{item.day}}</view>
</view>
</view>
</view>
@ -25,7 +54,7 @@
<view class="price"><text>15/</text></view>
<view class="day">100</view>
</view>
<view class="upgra">升级为VIP</view>
<view class="upgra"></view>
</view>
<view class="h1_row flex-b">
@ -132,7 +161,11 @@
{name: '考前秘卷', num: '三', oneTxt: '冲', txt: '考前精选 高频难题 直击考点 稳上高分', icon: new URL('@/static/images/vip/coved.png', import.meta.url).href, id: '1'},
{name: '温故高频错题', num: '四', oneTxt: '复', txt: '汇总您的专属高频错题,全力攻破最后的难关', icon: new URL('@/static/images/vip/covea.png', import.meta.url).href, id: '1'},
])
const vipItemData = ref([
{name: '全科VIP', price: 15, day: 180},
{name: '科目一VIP', price: 10, day: 180},
{name: '科目四VIP', price: 10, day: 180},
])
let show = ref(false)
function lookMore() {
console.log('我是一个h5')
@ -151,7 +184,7 @@
.topBg {
width: 100%;
height: 550rpx;
background: url('../../../static/images/vip/vipbg.png') no-repeat;
background: url('../../../static/images/bigImg/vipbg.png') no-repeat;
background-size: 100% 100%;
position: relative;
.tag {
@ -262,7 +295,9 @@
.upgra {
width: 230rpx;
height: 80rpx;
background: linear-gradient(0deg, #F7D0A5 0%, #FCEDD1 100%);
// background: linear-gradient(0deg, #F7D0A5 0%, #FCEDD1 100%);
background: url('../../../static/images/vipbtn.png') no-repeat;
background-size: 100% 100%;
border-radius: 40rpx;
font-size: 36rpx;
line-height: 80rpx;

BIN
static/images/bigImg/banner1.png

After

Width: 1420  |  Height: 320  |  Size: 441 KiB

BIN
static/images/bigImg/banner2.png

After

Width: 1420  |  Height: 320  |  Size: 400 KiB

BIN
static/images/bigImg/exambg.png

After

Width: 1500  |  Height: 1600  |  Size: 562 KiB

BIN
static/images/bigImg/vipallBg.png

After

Width: 750  |  Height: 794  |  Size: 165 KiB

0
static/images/vip/vipbg.png → static/images/bigImg/vipbg.png

Before

Width: 1500  |  Height: 1102  |  Size: 475 KiB

After

Width: 1500  |  Height: 1102  |  Size: 475 KiB

BIN
static/images/circular1.png

After

Width: 230  |  Height: 230  |  Size: 43 KiB

BIN
static/images/circular2.png

After

Width: 230  |  Height: 230  |  Size: 32 KiB

BIN
static/images/greetab.png

After

Width: 520  |  Height: 140  |  Size: 48 KiB

BIN
static/images/mystudy1.png

After

Width: 650  |  Height: 344  |  Size: 122 KiB

BIN
static/images/mystudy2.png

After

Width: 650  |  Height: 344  |  Size: 171 KiB

BIN
static/images/nodata.png

After

Width: 600  |  Height: 626  |  Size: 86 KiB

BIN
static/images/numbg.png

After

Width: 88  |  Height: 100  |  Size: 7.3 KiB

BIN
static/images/vip/allSbu1.png

After

Width: 180  |  Height: 180  |  Size: 9.0 KiB

BIN
static/images/vip/allSbu2.png

After

Width: 180  |  Height: 180  |  Size: 9.6 KiB

BIN
static/images/vip/allSbu3.png

After

Width: 180  |  Height: 180  |  Size: 10 KiB

BIN
static/images/vip/allsubL.png

After

Width: 76  |  Height: 52  |  Size: 2.1 KiB

BIN
static/images/vip/allsubR.png

After

Width: 76  |  Height: 52  |  Size: 2.1 KiB

BIN
static/images/vip/组 84@2x(1).png

After

Width: 180  |  Height: 180  |  Size: 9.6 KiB

BIN
static/images/vip/组 84@2x.png

After

Width: 180  |  Height: 180  |  Size: 9.0 KiB

BIN
static/images/vipbtn.png

After

Width: 230  |  Height: 80  |  Size: 16 KiB

BIN
static/images/微信图片_20240829100051.png

After

Width: 125  |  Height: 47  |  Size: 465 B

Loading…
Cancel
Save