Browse Source

静态页面完成

master
unknown 2 months ago
parent
commit
45b89dc926
  1. 38
      pages.json
  2. 4
      pages/exercises/brushQuestions/brushQuestions.vue
  3. 2
      pages/exercises/exam/exam.vue
  4. 236
      pages/exercises/examSubjiect1/examResultsOne.vue
  5. 112
      pages/exercises/examSubjiect1/examSubjiect1.vue
  6. 136
      pages/exercises/lastPage/lastPage.vue
  7. 2
      pages/exercises/theoryStudy/theoryStudy.vue
  8. 73
      pages/vip/vipEntry/vipEntry.vue
  9. 44
      pages/vip/vipQuestions/vipQuestions.vue
  10. 0
      static/images/vip/stepTag.png

38
pages.json

@ -19,6 +19,15 @@
"enablePullDownRefresh": true,
"navigationStyle": "custom"
}
},
{
"path": "vipQuestions/vipQuestions",
"style": {
"navigationBarTitleText": "VIP常见问题说明",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
// "navigationStyle": "custom"
}
}
]
},
@ -122,9 +131,34 @@
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
},
{
"path": "lastPage/lastPage",
"style": {
"navigationBarTitleText": "顺序练习成绩",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
},
{
"path": "examSubjiect1/examSubjiect1",
"style": {
"navigationBarTitleText": "科目一成绩单",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
},
{
"path": "examSubjiect1/examResultsOne",
"style": {
"navigationBarTitleText": "模拟考试成绩",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"navigationStyle": "custom"
}
}
]
}
],

4
pages/exercises/brushQuestions/brushQuestions.vue

@ -1,6 +1,6 @@
<template>
<view class="content">
<up-navbar leftText=" " title="" :safeAreaInsetTop="false" :autoBack="true">
<up-navbar leftText=" " title="" :safeAreaInsetTop="false" :autoBack="true">
<template #center>
<view class="u-nav-slot flex">
<view class="btn" @click="changeNav(1)" :class="{active: currentNav==1}">答题模式</view>
@ -28,7 +28,7 @@
<view class="ans">您的答案是<text>B</text></view>
</view>
<view class="btn_row flex-b">
<view class="btn border">上一题</view>
<view class="btn border" @click="$goPage('/pages/exercises/lastPage/lastPage')">上一题</view>
<view class="btn bg">下一题</view>
</view>
<view class="analysis">

2
pages/exercises/exam/exam.vue

@ -75,7 +75,7 @@
<view class="rightBtnBox">
<view class="btn hui">上一题</view>
<view class="btn hui">下一题</view>
<view class="btn">交卷</view>
<view class="btn" @click="$goPage('/pages/exercises/examResults/examResults')">交卷</view>
</view>
</view>

236
pages/exercises/examSubjiect1/examResultsOne.vue

@ -0,0 +1,236 @@
<template>
<view class="content">
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" title="我的学习"
:bgColor="'transparent'" :titleStyle="{color: '#fff'}">
</up-navbar>
<view class="padding">
<view class="useInfo flex">
<view class="avatar">
<image src="" mode=""></image>
</view>
<view class="rightBox">
<view class="name">用户名</view>
</view>
</view>
<view class="card">
<view class="bigNum">
<view class="num">80%</view>
<view class="lab">预测通过率</view>
</view>
<view class="huiBg">
<view class="li">
<view class="num">10:22</view>
<view class="lab">测试时长</view>
</view>
<view class="li">
<view class="num">10</view>
<view class="lab">已做题</view>
</view>
<view class="li">
<view class="num">14</view>
<view class="lab">答错题</view>
</view>
</view>
<view class="btnBox">
<oneBtn text="快速提升通过率" @oneBtnClick="$goPage('/pages/vip/vipEntry/vipEntry')"></oneBtn>
</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>
</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 currentChart = ref(1)
function changeChart(num) {
currentChart.value = num
}
</script>
<style lang="scss" scoped>
.content {
width: 100%;
min-height: 100vh;
padding: 100rpx 0rpx 30rpx 0rpx;
background: url('../../../static/images/topbg.png') #F6F7FA no-repeat;
background-size: 100% 410rpx;
.useInfo {
padding: 30rpx 0;
.avatar {
width: 140rpx;
height: 140rpx;
overflow: hidden;
border-radius: 50%;
background: url('../../../static/images/avatarbg.png') no-repeat;
background-size: 100% 100%;
image {
display: block;
width: 100%;
height: 100%;
}
}
.rightBox {
flex: 1;
width: 0;
padding-left: 30rpx;
.name {
font-size: 36rpx;
color: #FFFFFF;
font-weight: 500;
}
}
}
.bigNum {
padding: 20rpx 0 20rpx 0;
text-align: center;
.num {
font-weight: bold;
font-size: 72rpx;
color: #3776FF;
}
.lab {
font-weight: 400;
font-size: 24rpx;
color: #CCCCCC;
}
}
.huiBg {
width: 100%;
height: 164rpx;
display: flex;
justify-content: space-between;
align-items: center;
text-align: center;
padding-bottom: 30rpx ;
.li {
flex: 1;
.num {
font-family: DIN;
font-weight: bold;
font-size: 48rpx;
}
.lab {
font-size: 24rpx;
margin-top: 10rpx;
color: #999999;
}
}
}
.card {
background: #FFFFFF;
border-radius: 20rpx;
overflow: hidden;
margin-top: 20rpx;
padding: 30rpx;
}
.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;
}
}
}
.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;
}
}
}
}
</style>

112
pages/exercises/examSubjiect1/examSubjiect1.vue

@ -0,0 +1,112 @@
<template>
<view class="content">
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" title="我的学习"
:bgColor="'transparent'" :titleStyle="{color: '#fff'}">
<template #right>
<view class="cjd" @click="$goPage('/pages/exercises/examSubjiect1/examResultsOne')">
成绩单
</view>
</template>
</up-navbar>
<view class="padding">
<view class="useInfo flex">
<view class="avatar">
<image src="" mode=""></image>
</view>
<view class="rightBox">
<view class="name">用户名</view>
<view class="p">
<text>最高分数85</text>
<text>用时0030</text>
</view>
</view>
</view>
<view class="card">
<view class="text">考试车型小车C1</view>
<view class="text">考试时间45分钟100</view>
<view class="text">合格标准90分及格满分100分</view>
<view class="text">出题规则根据公安部规定出题规则组卷</view>
<view class="text">计分规则模拟考试下不能修改答案每错1题扣2分累计错题超过5道考试不通过系统自动提醒交卷</view>
</view>
<view class="btnBox">
<oneBtn text="开始模拟考试"></oneBtn>
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.content {
width: 100%;
min-height: 100vh;
padding: 100rpx 0rpx 30rpx 0rpx;
background: url('../../../static/images/topbg.png') #F6F7FA no-repeat;
background-size: 100% 410rpx;
.cjd {
color: #fff;
}
.useInfo {
padding: 30rpx 0;
.avatar {
width: 140rpx;
height: 140rpx;
overflow: hidden;
border-radius: 50%;
background: url('../../../static/images/avatarbg.png') no-repeat;
background-size: 100% 100%;
image {
display: block;
width: 100%;
height: 100%;
}
}
.rightBox {
flex: 1;
width: 0;
padding-left: 30rpx;
.name {
font-size: 36rpx;
color: #FFFFFF;
font-weight: 500;
}
.p {
padding-top: 30rpx;
text {
font-weight: 500;
font-size: 28rpx;
color: #FFFFFF;
margin-right: 40rpx;
}
}
}
}
.card {
background: #FFFFFF;
border-radius: 20rpx;
padding: 20rpx 30rpx;
.text {
padding: 10rpx 0;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
}
.btnBox {
padding: 100rpx 50rpx;
width: 100%;
}
}
</style>

136
pages/exercises/lastPage/lastPage.vue

@ -0,0 +1,136 @@
<template>
<view class="content">
<u-navbar leftText=" " title="顺序练习成绩" :safeAreaInsetTop="true" :autoBack="true" :fixed="false" :leftIconColor="'#fff'" :bgColor="'transparent'" :titleStyle="{color: '#fff'}"></u-navbar>
<view class="padding">
<view class="card">
<view class="echartBox">
这里是图表
</view>
<view class="huiBg">
<view class="li">
<view class="num">10:22</view>
<view class="lab">测试时长</view>
</view>
<view class="li">
<view class="num">10</view>
<view class="lab">已做题</view>
</view>
<view class="li">
<view class="num">14</view>
<view class="lab">答错题</view>
</view>
</view>
<view class="btn_row">
<view class="btn">查看全部错题</view>
<view class="btn lastBtn">继续答题</view>
</view>
</view>
<view class="card flex-b">
<view class="leftTxt">
<view class="text">查看全部错题</view>
<view class="tps">继续答题</view>
</view>
<view class="lianxi flex">
<view class="lx">去练习</view>
<u-icon name="arrow-right" color="#666" size="14"></u-icon>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.content {
background: linear-gradient(0deg, rgba(55,118,255,0) 0%, #3776FF 100%) no-repeat #F6F7FA;
background-size: 100% 720rpx;
width: 100%;
min-height: 100vh;
.card {
width: 100%;
background: #FFFFFF;
border-radius: 20rpx;
padding: 30rpx;
margin-top: 30rpx;
.echartBox {
width: 100%;
min-height: 230rpx;
}
.huiBg {
width: 100%;
height: 144rpx;
background: #F4F4F4;
border-radius: 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
text-align: center;
.li {
flex: 1;
.num {
font-family: DIN;
font-weight: bold;
font-size: 48rpx;
}
.lab {
font-size: 24rpx;
margin-top: 10rpx;
color: #999999;
}
}
}
.btn_row {
padding-top: 40rpx;
display: flex;
justify-content: space-between;
.btn {
height: 77rpx;
background: linear-gradient(90deg, #FAE0A2 0%, #F6C86F 100%);
border-radius: 39rpx;
color: #6B4229;
font-weight: 500;
font-size: 28rpx;
text-align: center;
line-height: 77rpx;
width: 48%;
&.lastBtn {
background: #3776FF;
color: #fff;
}
}
}
}
}
.card {
.leftTxt {
flex: 1;
.text {
font-weight: 500;
font-size: 28rpx;
}
.tps {
font-weight: 500;
font-size: 24rpx;
color: #666666;
margin-top: 10rpx;
}
}
.lianxi {
.lx {
font-weight: 500;
font-size: 24rpx;
color: #3776FF;
}
}
}
</style>

2
pages/exercises/theoryStudy/theoryStudy.vue

@ -58,7 +58,7 @@
<view class="text">考试次数1</view>
<view class="text">预测通过率10%</view>
<view class="btnBox flex">
<view class="btnTxt" @click="$goPage('/pages/exercises/beforeExam/beforeExam')">开始考试</view>
<view class="btnTxt" @click="$goPage('/pages/exercises/examSubjiect1/examSubjiect1')">开始考试</view>
<view class="btnIcon">
<image src="@/static/images/theory/sanjx.png" mode=""></image>
</view>

73
pages/vip/vipEntry/vipEntry.vue

@ -1,15 +1,13 @@
<template>
<view class="content">
<view class="topBg">
<view class="topBg" :class="{bigBg: curVipItem.name=='全科VIP'}">
<view class="tag">XXXX成为VIP会员</view>
<view class="tag">一次搞定</view>
<view class="tag">五大特权</view>
<view class="tag">最低仅需xx元/</view>
<view class="tag">常见问题</view>
</view>
<view class="tag" @click="$goPage('/pages/vip/vipQuestions/vipQuestions')">常见问题</view>
<view class="padding">
<view class="allSubRow">
<view class="allSubRow" v-if="curVipItem.name=='全科VIP'">
<view class="allsbItem">
<view class="icon">
<image src="@/static/images/vip/allSbu1.png" mode=""></image>
@ -29,18 +27,24 @@
</view>
<view class="allsbItem">
<view class="icon_arrow">
<image src="@/static/images/vip/allSbuL.png" mode=""></image>
<image src="@/static/images/vip/allsubL.png" mode=""></image>
</view>
</view>
<view class="allsbItem">
<view class="icon">
<image src="@/static/images/vip/allsubL.png" mode=""></image>
<image src="@/static/images/vip/allSbu3.png" mode=""></image>
</view>
<view class="text">科四VIP</view>
</view>
</view>
</view>
<view class="padding">
<view class="allVip flex-b">
<view class="vipItem" v-for="(item,index) in vipItemData" :key="index" :class="{active: index==1}">
<view class="vipItem" v-for="(item,index) in vipItemData" :key="index" :class="{active: curVipItem.name==item.name}" @click="chooseVip(item)" >
<view class="lab">{{item.name}}</view>
<view class="redT flex">
<view class="price"><text>{{item.price}}/</text></view>
@ -51,8 +55,8 @@
<view class="btnBox flex-b">
<view class="whiteT flex">
<view class="price"><text>15/</text></view>
<view class="day">100</view>
<view class="price"><text>{{ curVipItem.price }}/</text></view>
<view class="day">{{curVipItem.day}}</view>
</view>
<view class="upgra"></view>
</view>
@ -161,6 +165,7 @@
{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 curVipItem = ref({name: '全科VIP', price: 15, day: 180})
const vipItemData = ref([
{name: '全科VIP', price: 15, day: 180},
{name: '科目一VIP', price: 10, day: 180},
@ -170,9 +175,42 @@
function lookMore() {
console.log('我是一个h5')
}
function chooseVip(item) {
curVipItem.value = item
}
</script>
<style lang="scss" scoped>
.allSubRow {
display: flex;
position: absolute;
bottom: 160rpx;
left: 0;
width: 100%;
padding: 0 30px;
.allsbItem {
flex: 1;
display: flex;
justify-content: center;
flex-direction: column;
.icon {
width: 90rpx;
height: 90rpx;
}
.icon_arrow {
width: 38rpx;
height: 36rpx;
margin-top: 33rpx;
}
.text {
margin-top: 18rpx;
font-size: 28rpx;
color: #fff;
}
}
}
image {
display: block;
@ -187,6 +225,11 @@
background: url('../../../static/images/bigImg/vipbg.png') no-repeat;
background-size: 100% 100%;
position: relative;
&.bigBg {
height: 794rpx;
background: url('../../../static/images/bigImg/vipallBg.png') no-repeat;
background-size: 100% 100%;
}
.tag {
position: absolute;
font-size: 24rpx;
@ -212,7 +255,7 @@
}
&:nth-child(5) {
right: 0;
top: 225rpx;
top: 215rpx;
width: 48rpx;
height: 176rpx;
padding-top: 20rpx;
@ -389,13 +432,15 @@
.flex {
.step {
width: 125rpx;
height: 42rpx;
height: 50rpx;
font-size: 28rpx;
background: #3776FF;
border-radius: 0px 0px 30rpx 0px;
// background: #3776FF;
// border-radius: 0px 0px 30rpx 0px;
line-height: 42rpx;
color: #fff;
text-align: center;
background: url('../../../static/images/vip/stepTag.png') no-repeat;
background-size: 100% 100%;
}
.unit {

44
pages/vip/vipQuestions/vipQuestions.vue

@ -0,0 +1,44 @@
<template>
<view class="content">
<up-collapse
:value="['2']"
:border="false"
>
<up-collapse-item
title="文档指南"
>
<view class="textbg">
<text class="u-collapse-content">涵盖uniapp各个方面给开发者方向指导和设计理念让您茅塞顿开一马平川</text>
</view>
</up-collapse-item>
<up-collapse-item
title="组件全面"
>
<view class="textbg">
<text class="u-collapse-content">众多组件覆盖开发过程的各个需求组件功能丰富多端兼容让您快速集成开箱即用</text>
</view>
</up-collapse-item>
<up-collapse-item
name="2"
title="众多利器"
>
<view class="textbg">
<text class="u-collapse-content">众多的贴心小工具是您开发过程中召之即来的利器让您飞镖在手百步穿杨</text>
</view>
</up-collapse-item>
</up-collapse>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.textbg {
background: #F4F4F4;
border-radius: 10rpx;
padding: 20rpx;
}
</style>

0
static/images/微信图片_20240829100051.png → static/images/vip/stepTag.png

Before

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

After

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

Loading…
Cancel
Save