Browse Source

静态页面

master
unknown 9 months ago
parent
commit
05748d6184
  1. 22
      common/css/app.scss
  2. 20
      pages.json
  3. 91
      pages/indexEntry/findCoach/comp/coachItem.vue
  4. 190
      pages/indexEntry/findCoach/findCoach.vue
  5. 14
      pages/indexEntry/findShcool/findShcool.vue
  6. 10
      pages/indexEntry/industryPolicy/industryPolicy.vue
  7. 3
      pages/indexEntry/signIn/signIn.vue
  8. 69
      pages/mineEntry/carLearnHours/carLearnHours.vue
  9. 42
      pages/mineEntry/modelChange/modelChange.vue
  10. 9
      pages/mineEntry/myAppointment/comp/opera.vue
  11. 75
      pages/mineEntry/myAppointment/myAppointment.vue
  12. 3
      pages/mineEntry/myContract/myContract.vue
  13. 3
      pages/mineEntry/myEvaluate/myEvaluate.vue
  14. 20
      pages/mineEntry/myOrder/comp/comp.scss
  15. 14
      pages/mineEntry/myOrder/comp/opera.vue
  16. 57
      pages/mineEntry/myOrder/myOrder.vue
  17. 14
      pages/mineEntry/refund/comp/myform.vue
  18. 39
      pages/mineEntry/refund/refund.vue
  19. 27
      pages/mineEntry/schoolTransfer/schoolTransfer.vue
  20. 2
      pages/tabbar/index/comp/informaItem.vue
  21. 2
      pages/tabbar/index/comp/schoolItem.vue
  22. 33
      pages/tabbar/index/index.vue
  23. 19
      pages/tabbar/learnCar/comp/comp.scss
  24. 29
      pages/tabbar/mine/index.vue
  25. BIN
      static/images/tabbar/btn_xueche_nor - 副本.png
  26. BIN
      static/images/tabbar/btn_xueche_nor.png

22
common/css/app.scss

@ -50,18 +50,7 @@ view {
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-01-29/1706500065446-0') #F6F7FA no-repeat;
background-size: 100% ;
}
.h1 {
text {
color: #999;
}
.active {
color: #333;
&::before {
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-01-29/1706510133553-0') #F6F7FA no-repeat;
background-size: 100% 100%;
}
}
}
.pad {
padding: 0 28rpx;
}
@ -99,19 +88,19 @@ image {
.h1 {
font-size: 32rpx;
color: #333;
font-weight: 500;
font-weight: 700;
padding: 0 0 0 32rpx;
padding-bottom: 10rpx;
text {
position: relative;
color: #999;
&.active {
color: #333;
&::before {
position: absolute;
content: '';
width: 54rpx;
height: 12rpx;
// background: url('../../static/images/icon/h1Active.png') no-repeat;
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-01-29/1706510133553-0') #F6F7FA no-repeat;
background-size: 100% 100%;
left: 50%;
transform: translateX(-50%);
@ -147,6 +136,7 @@ image {
left: 0;
width: 100%;
bottom: 30rpx;
padding: 0 28rpx ;
.btnBg {
width: 100%;
text-align: center;

20
pages.json

@ -194,6 +194,15 @@
}
},
{
"path": "findCoach/findCoach",
"style": {
"navigationBarTitleText": "找教练",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "findShcool/shcoolDetail/shcoolDetail",
"style": {
"navigationBarTitleText": "找驾校",
@ -451,7 +460,6 @@
"path": "myAppointment/myAppointment",
"style": {
"navigationBarTitleText": "我的预约",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
@ -478,7 +486,7 @@
"path": "myOrder/myOrder",
"style": {
"navigationBarTitleText": "我的订单",
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#fff",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
@ -503,8 +511,7 @@
{
"path": "carLearnHours/carLearnHours",
"style": {
"navigationBarTitleText": "学车进度",
"navigationStyle": "custom",
"navigationBarTitleText": "我的学时",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
@ -531,7 +538,6 @@
"path": "myEvaluate/myEvaluate",
"style": {
"navigationBarTitleText": "我的评价",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
@ -540,7 +546,6 @@
"path": "myContract/myContract",
"style": {
"navigationBarTitleText": "我的合同",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
@ -549,7 +554,6 @@
"path": "schoolTransfer/schoolTransfer",
"style": {
"navigationBarTitleText": "同城转校",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
@ -558,7 +562,6 @@
"path": "modelChange/modelChange",
"style": {
"navigationBarTitleText": "车型变更",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
@ -567,7 +570,6 @@
"path": "refund/refund",
"style": {
"navigationBarTitleText": "申请退款",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}

91
pages/indexEntry/findCoach/comp/coachItem.vue

@ -0,0 +1,91 @@
<template>
<view class="itemBox" >
<view class="img">
<image src="@/static/images/index/img_7@2x.png" mode="" ></image>
</view>
<view class="textCon">
<view class="name">{{item.shortName}}</view>
<view class="flex-b">
<view class="starBox">
<view class="num">{{item.stars}}</view>
</view>
<callPhone v-if="showPhone" :servicePhone="[{name: item.phone}]">
<view class="pozPhone">
<image src="@/static/images/indexIcon/phone.png" mode=""></image>
</view>
</callPhone>
</view>
<view class="adr"><text style="margin-right: 6rpx;">{{item.districtName}}</text> 距您{{ $u.utils.distanceFn(item.distance)}}</view>
<!-- <view class="credit">行业信用 <text v-if="item.creditrating">{{item.creditrating}}</text></view> -->
</view>
</view>
</template>
<script>
export default {
props: {
showPhone: {
type: Boolean,
default: true
},
item: {
type: Object,
default: {}
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.itemBox {
background: #FFFFFF;
border-radius: 16rpx;
padding: 20rpx;
position: relative;
display: flex;
// border-bottom: 1px solid #F4F4F4;
margin-bottom: 20rpx;
}
.img {
width: 200rpx;
height: 135rpx;
background: #f6f6f6;
border-radius: 20rpx;
overflow: hidden;
}
.textCon {
flex: 1;
font-size: 24rpx;
padding: 0 0 0 36rpx;
.name {
font-size: 28rpx;
margin-top: 4rpx;
color: #363A44;
}
.starBox {
margin: 10rpx 0;
}
.credit {
color: #1989FA;
margin-bottom: 4rpx;
}
.adr {
color: #999;
font-size: 24rpx;
}
}
.pozPhone {
width: 55rpx;
height: 55rpx;
}
</style>

190
pages/indexEntry/findCoach/findCoach.vue

@ -0,0 +1,190 @@
<template>
<view class="pageBg">
<view class="topBg">
<topNavbar title="找教练"></topNavbar>
<view class="searchCon pad">
<searchRow placeholder="搜索驾校名称" @searchFn="$goPage('/pages/indexEntry/findShcool/searchShcool/searchShcool')" :disable="true"></searchRow>
</view>
</view>
<view class="pad">
<view class="navBox">
<view class="tab" v-for="(item,index) in tabData" :key="index" :class="{active: (params.sercheType==item.id&&!(params.businessScope||params.district))}" @click="tabClick(item)">
{{ item.text }}</view>
</view>
<view class="ul">
<view class="li" v-for="(item,index) in listData" :key="index" >
<coachItem :item="item" @click.native="goPage(item)"/>
</view>
</view>
</view>
<view style="padding-bottom: 20rpx;" v-if="listData.length">
<u-loadmore :status="status" />
</view>
<nodata v-if="!listData.length&&status=='nomore'"></nodata>
</view>
</template>
<script>
import coachItem from './comp/coachItem.vue'
import { schoolPage } from '@/config/api.js'
export default {
components: { coachItem },
data() {
return {
currentTab: 0,
tabData: [{
text: '全部',
id: 1
},
{
text: 'C1',
id: 2
},
{
text: 'C2',
id: 3
},
],
params: {
pageNo: 1,
pageSize: 20,
lat: '',
lng: '',
sercheType: 1,
businessScope: '',
district: '',
name: ''
},
total: 20,
listData: [],
status: 'loading'
}
},
onLoad() {
let vuex_cityInfo = this.$store.state.user.vuex_cityInfo
if(!vuex_cityInfo.lat) {
this.$store.dispatch('getCity')
}else {
this.params.lat = vuex_cityInfo.lat
this.params.lng = vuex_cityInfo.lng
}
this.schoolPageFn()
uni.$on('screenConfirm',(obj)=>{
this.params = Object.assign(this.params, obj)
this.listInit()
})
},
onPullDownRefresh() {
this.listInit()
},
onReachBottom() {
if(this.total>this.listData.length) {
this.schoolPageFn()
}
},
methods: {
searchFn(val) {
this.params.name = val
this.listInit()
},
goScreen() {
let url = `/pages/indexEntry/findShcool/screen/screen?businessScope=${this.params.businessScope}&district=${this.params.district}`
this.$goPage(url)
},
goPage(item) {
this.$goPage('/pages/indexEntry/findShcool/shcoolDetail/shcoolDetail?schoolId='+ item.id)
},
tabClick(item) {
this.params.sercheType = item.id
this.params.businessScope = ''
this.params.district = ''
this.listInit()
},
async listInit() {
this.listData = []
this.params.pageNo = 1
await this.schoolPageFn()
uni.stopPullDownRefresh()
},
//
async schoolPageFn() {
let obj = {}
for(let key in this.params) {
if(this.params[key]) {
obj[key] = this.params[key]
}
}
const {data: res} = await schoolPage(obj)
this.params.pageNo ++
this.listData.push(...res.list)
this.total = res.total
if(this.listData.length>=this.total) this.status = 'nomore'
console.log(res)
}
}
}
</script>
<style lang="scss" scoped>
.pageBg {
width: 100%;
.navBox {
display: flex;
// justify-content: space-between;
padding: 20rpx 0;
.tab {
font-size: 28rpx;
color: #999;
line-height: 50rpx;
border-radius: 10rpx;
background: #fff;
text-align: center;
height: 50rpx;
width: 126rpx;
margin-right: 30rpx;
&.active {
background: $themC;
color: #fff;
}
}
.screen {
width: 150rpx;
display: flex;
justify-content: center;
align-items: center;
position: relative;
background: #fff;
color: #999;
border-radius: 10rpx;
&.active {
background: $themC;
color: #fff;
}
.txt {
font-size: 28rpx;
margin-right: 10rpx;
}
.screenIcon {
width: 18rpx;
height: 12rpx;
}
}
}
.ul {
width: 100%;
.li {
}
}
}
.topBg {
padding-bottom: 20rpx;
}
</style>

14
pages/indexEntry/findShcool/findShcool.vue

@ -13,9 +13,7 @@
{{ item.text }}</view>
<view class="screen" @click="goScreen" :class="{active: (params.businessScope||params.district)}">
<view class="txt">筛选</view>
<view class="screenIcon">
<image src="@/static/images/carIcon/screeIcon.png" mode=""></image>
</view>
<u-icon name="arrow-down-fill" :color="(params.businessScope||params.district)?'#fff':'#999'" size="8"></u-icon>
</view>
</view>
@ -138,6 +136,9 @@
</script>
<style lang="scss" scoped>
/deep/ .itemBox {
padding: 20rpx !important;
}
.pageBg {
width: 100%;
.navBox {
@ -145,7 +146,7 @@
justify-content: space-between;
padding: 20rpx 0;
.tab {
font-size: 28rpx;
font-size: 24rpx;
color: #999;
line-height: 50rpx;
border-radius: 10rpx;
@ -174,7 +175,7 @@
color: #fff;
}
.txt {
font-size: 28rpx;
font-size: 24rpx;
margin-right: 10rpx;
}
@ -188,8 +189,7 @@
.ul {
width: 100%;
.li {
margin-bottom: 20rpx;
}
}
}

10
pages/indexEntry/industryPolicy/industryPolicy.vue

@ -1,6 +1,6 @@
<template>
<view class="pageBgImg">
<topNavbar title="行业政策"></topNavbar>
<topNavbar :title="params.type==1?'行业资讯':'政策法规'"></topNavbar>
<view class="pad">
<view class="card" >
<view class="li" v-for="(item,index) in listData" :key="index" @click="$goPage('/pages/indexEntry/iIndustryInfo/detail/detail?id='+item.id)">
@ -28,14 +28,16 @@
params: {
pageNo: 1,
pageSize: 20,
type: 2
type: 1
},
listData: [],
total: 20,
status: 'loading'
status: 'loading',
}
},
onLoad() {
onLoad(options) {
this.params.type = options.type
this.getarticlezcListFn()
},
onPullDownRefresh() {

3
pages/indexEntry/signIn/signIn.vue

@ -58,9 +58,8 @@
padding-bottom: 30rpx;
}
.card {
padding-top: 20rpx;
padding: 20rpx;
.ul {
padding: 10rpx 30rpx;
.li {
padding: 30rpx 0;
border-bottom: 1px solid #f4f4f4;

69
pages/mineEntry/carLearnHours/carLearnHours.vue

@ -1,27 +1,20 @@
<template>
<view class="pageBgImg">
<topNavbar title="学车学时"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="box" v-for="(item,index) in list" :key="index" :style="{ backgroundImage: `url(${imgUrl})`, backgroundSize: backgroundSize }">
<view class="card" v-for="(item,index) in list" :key="index" >
<view class="h2">{{ item.text }}</view>
<view class="con">
<view class="item_row">
<view class="item">
<view class="lab">总学时</view>
<view class="val">{{ item.total }}分钟</view>
<view class="val">{{ item.total||366 }} <text>分钟</text></view>
<view class="lab">已完成学时</view>
</view>
<view class="item">
<view class="lab">已完成</view>
<view class="val">{{ item.time }}分钟</view>
<view class="val">{{ item.time }} <text>分钟</text></view>
<view class="lab">应完成学时</view>
</view>
</view>
</view>
<view class="chain left" v-if="index!=0">
<image src="@/static/images/index/chain.png" mode=""></image>
</view>
<view class="chain right" v-if="index!=0">
<image src="@/static/images/index/chain.png" mode=""></image>
</view>
</view>
</view>
</view>
@ -51,7 +44,6 @@
const {data: res} = await getStudentProcess({studentId: this.studentId})
console.log('基础不劳')
this.list = [
{total: res.simulateTotalTime, time: res.simulateValidTtime, text: '模拟器'},
{total: res.subjectOneTotalTime, time: res.subjectOneValidTtime, text: '科目一'},
{total: res.subjectTwoTotalTime, time: res.subjectTwoValidTtime, text: '科目二'},
{total: res.subjectThreeTotalTime, time: res.subjectOneValidTtime, text: '科目三'},
@ -65,50 +57,57 @@
.pad {
marginp: 20rpx 0;
}
.box {
.card {
width: 100%;
height: 400rpx;
height: 224rpx;
margin-bottom: 20rpx;
padding: 0 16rpx 52rpx 16rpx;
background: url('http://192.168.1.20:81/zhili/image/20230822/ca8f14281ac9412987b23ad43bfb50a1.png') no-repeat;
background-size: 100% 400rpx;
position: relative;
padding: 0 20rpx;
// background: url('http://192.168.1.20:81/zhili/image/20230822/ca8f14281ac9412987b23ad43bfb50a1.png') no-repeat;
.h2 {
width: 489rpx;
height: 75rpx;
line-height: 70rpx;
margin: 0 auto;
height: 92rpx;
line-height: 92rpx;
text-align: center;
// background-color: #A6E2FF;
color: #fff;
color: #333;
font-size: 32rpx;
font-weight: 600;
font-weight: 700;
border-bottom: 1rpx solid #F6F7FA;
}
.con {
border-radius: 16rpx;
width: 100%;
padding: 20rpx 0 0 0;
.item_row {
display: flex;
width: 100%;
height: 256rpx;
height: 90rpx;
align-items: center;
.item {
flex: 1;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
&:first-child {
border-right: 1rpx solid #F6F7FA;
}
.lab {
font-size: 28rpx;
color: #363A44;
font-size: 24rpx;
color: #999;
}
.val {
margin-top: 20rpx;
font-size: 40rpx;
color: $themC;
font-weight: 500;
font-size: 36rpx;
color: #333;
font-weight: 700;
margin-bottom: 6rpx;
text {
color: #999;
font-weight: 400;
font-size: 18rpx;
margin-left: 10rpx;
margin-top: -6rpx;
}
}
}
}

42
pages/mineEntry/modelChange/modelChange.vue

@ -1,9 +1,8 @@
<template>
<view class="pageBgImg">
<topNavbar title="个人中心"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="card">
<view class="h2">现学驾信息</view>
<view class="h1"><text class="active">现学驾信息</text></view>
<view class="row">
<view class="lab">学驾车型</view>
<view class="val">C1</view>
@ -18,7 +17,7 @@
</view>
</view>
<view class="card">
<view class="h2">变更学驾信息</view>
<view class="h1"><text class="active">变更学驾信息</text></view>
<view class="row">
<view class="lab">学驾车型</view>
<view class="val" @click="showModel=true">
@ -42,8 +41,16 @@
<view class="val hui">-</view>
</view>
</view>
<view class="card">
<view class="row">
<view class="lab">补交金额</view>
<view class="val hui">-</view>
</view>
</view>
<view class="footerBtn">
<view class="btnBg">下一步</view>
</view>
</view>
<u-picker :show="showModel" :columns="modelArr" keyName="lab" @confirm="confirmModel" @cancel="showModel=false"></u-picker>
</view>
</template>
@ -71,24 +78,24 @@
</script>
<style lang="scss" scoped>
.card {
margin-bottom: 24rpx;
padding: 16rpx 28rpx;
.h2 {
color: $themC;
font-weight: 600;
margin: 10rpx 0 20rpx 0;
.h1 {
margin-bottom: 10rpx;
}
.card {
margin-bottom: 20rpx;
padding: 20rpx 20rpx 10rpx 20rpx;
.row {
height: 92rpx;
line-height: 92rpx;
height: 88rpx;
line-height: 88rpx;
display: flex;
align-items: center;
border-bottom: 1rpx solid #F6F7FA;
&:last-child {
border-bottom: none;
}
.lab {
font-size: 28rpx;
color: #333;
font-weight: 600;
width: 160rpx;
}
@ -118,9 +125,4 @@
}
}
.btnBg {
width: 396rpx;
margin: 72rpx auto;
}
</style>

9
pages/mineEntry/myAppointment/comp/opera.vue

@ -17,27 +17,18 @@
<view class="target">
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">预约教练</view>
</view>
<view class="name">{{item.coachName}}</view>
</view>
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">预约车辆</view>
</view>
<view class="name">{{item.carNumber}}</view>
</view>
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/car/ic_shijian.png" mode=""></image>
</view>
<view class="lab">预约日期</view>
</view>
<view class="name">{{item.classDate}}</view>

75
pages/mineEntry/myAppointment/myAppointment.vue

@ -1,35 +1,18 @@
<template>
<view class="pageBgImg">
<topNavbar title="我的预约"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="searcBox">
<searchRow placeholder="搜索考场名称、车牌号" @searchFn="searchFn" ref="searchRef"/>
</view>
<view class="tabs">
<view class="tab" v-for="(item,index) in tabList" :key="index" :class="{active: currentTab==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="navs">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: currentNav===item.id}" @click="changeNav(item)">{{ item.text }}</view>
</view>
<view class="recordTotal" v-if="total">{{total}}条记录</view>
<view class="tabCon" v-show="currentTab==1">
<view class="card" v-for="(item,index) in list" :key="index" @click="$goPage('/pages/mineEntry/myAppointment/detail/detail?type=1&id='+item.id)">
<imitate :item="item"></imitate>
</view>
</view>
<view class="tabCon" v-if="currentTab==2">
<view class="card" v-for="(item,index) in list" :key="index" @click="$goPage('/pages/mineEntry/myAppointment/detail/detail?type=2&id='+item.id)">
<opera :item="item"></opera>
</view>
</view>
<view class="tabCon" v-if="currentTab==3">
<view class="card" v-for="(item,index) in list" :key="index" @click="$goPage('/pages/mineEntry/myAppointment/detail/detail?type=3&id='+item.id)">
<examin :item="item"></examin>
</view>
</view>
<view style="padding: 10rpx 0 20rpx 0;" v-if="list.length">
<u-loadmore :status="status" />
@ -49,11 +32,7 @@
components: { imitate, opera, examin},
data() {
return {
tabList: [
{text: '模拟器',id: 1},
{text: '实操训练',id: 2},
{text: '考场模拟',id: 3},
],
navList: [
{text: '全部', id: -1},
{text: '已签到', id: 1},
@ -65,13 +44,12 @@
currentTab: 2,
currentNav: 0,
params: { "pageNo": 1, "pageSize": 10, "keyWord": "", "status": '0',studentId: '', keyWord: ''},
list: [],
list: [{id: 1}],
total: 20,
status: 'loading'
}
},
onLoad(options) {
if(options.currentTab) this.currentTab = options.currentTab
this.params.studentId = this.studentId
},
onShow() {
@ -79,7 +57,7 @@
},
onReachBottom() {
if(this.total>this.list.length) {
this.inintList('onReachBottom')
this.masterPageFn()
}
},
onPullDownRefresh() {
@ -87,26 +65,12 @@
},
methods: {
inintList(type) {
if(!type) {
this.params.pageNo = 1
this.list = []
this.total = 0
}
if(this.currentTab==3) {
this.examSimulationRecordFn()
}else if(this.currentTab==1) {
this.simulationPageFn()
}else {
this.masterPageFn()
}
},
changeTab(item) {
this.params.keyWord = ''
this.currentTab = item.id
this.$refs.searchRef.keyword = ''
this.inintList()
},
changeNav(item) {
this.currentNav = item.id
this.list = []
@ -118,28 +82,7 @@
}
this.inintList()
},
//
async examSimulationRecordFn() {
const {data: res} = await examSimulationRecord(this.params)
this.params.pageNo ++
this.list.push(...res.list)
this.total = res.total
if(this.list.length>=this.total) this.status = 'nomore'
},
//
async simulationPageFn() {
let obj = {}
for(let k in this.params) {
if(this.params[k]!=='') {
obj[k] = this.params[k]
}
}
const {data: res} = await simulationPage(obj)
this.params.pageNo ++
this.list.push(...res.list)
this.total = res.total
if(this.list.length>=this.total) this.status = 'nomore'
},
//
async masterPageFn() {
let obj = {}
@ -166,7 +109,7 @@
<style lang="scss" scoped>
.searcBox {
margin: 0 0 20rpx 0;
margin: 0 0 10rpx 0;
}
.card {
padding: 0 24rpx;
@ -198,7 +141,7 @@
justify-content: space-between;
color: #fff;
font-size: 28rpx;
padding: 24rpx 0 40rpx 0;
padding:0rpx 0 40rpx 0;
color: $themC;
.nav {
height: 80rpx;

3
pages/mineEntry/myContract/myContract.vue

@ -1,6 +1,5 @@
<template>
<view class="pageBgImg ">
<topNavbar title="我的合同"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="card">
<image :src="pdfUrl" mode="widthFix"></image>

3
pages/mineEntry/myEvaluate/myEvaluate.vue

@ -1,6 +1,5 @@
<template>
<view class="pageBgImg ">
<topNavbar title="我的评价"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="card" v-for="(item,index) in list" :key="index">
<commentItem :item="item"/>

20
pages/mineEntry/myOrder/comp/comp.scss

@ -5,7 +5,7 @@
display: flex;
width: 100%;
height: 116rpx;
border-bottom: 2rpx dashed #E8E9EC;
border-bottom: 1rpx solid #F6F7FA;
justify-content: space-between;
align-items: center;
@ -44,7 +44,8 @@
}
.target {
border-bottom: 2rpx dashed #E8E9EC;
border-bottom: 1rpx solid #F6F7FA;
}
.row {
@ -52,20 +53,9 @@
justify-content: space-between;
padding: 24rpx 0;
.leftLab {
display: flex;
align-items: center;
.icon {
width: 30rpx;
height: 30rpx;
}
.lab {
margin-left: 10rpx;
font-size: 28rpx;
color: #ADADAD;
}
color: #333;
}
.name {
@ -75,7 +65,7 @@
}
.border_bottom {
border-top: 2rpx dashed #E8E9EC;
border-top: 1rpx solid #F6F7FA;
padding: 10rpx 10rpx 16rpx 0;
.dateBox {

14
pages/mineEntry/myOrder/comp/opera.vue

@ -19,21 +19,11 @@
</view>
<view class="target">
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/car/ic_chexing.png" mode=""></image>
</view>
<view class="lab">学驾车型</view>
</view>
<view class="name">{{item.trainType}}</view>
</view>
<view class="row">
<view class="leftLab">
<view class="icon">
<image src="@/static/images/car/ic_banxing.png" mode=""></image>
</view>
<view class="lab">所选班型</view>
</view>
<view class="name">{{item.className}}</view>
</view>
</view>
@ -43,10 +33,6 @@
</view> -->
<!-- <view class="btnBg">去评价</view> -->
<view class="rows">
<view class="label">培训费总价</view>
<view class="value">{{ $u.utils.priceTo(item.totalAmount) }}</view>
</view>
<view class="rows">
<view class="label hui">实际支付</view>
<view class="value blue">暂无字段</view>
</view>

57
pages/mineEntry/myOrder/myOrder.vue

@ -1,17 +1,10 @@
<template>
<view class="pageBgImg">
<topNavbar title="我的订单"></topNavbar>
<view class="pad">
<view class="searcBox">
<searchRow placeholder="搜索" @searchFn="searchFn"/>
</view>
<view class="tabs">
<view class="tab" v-for="(item,index) in tabList" :key="index" :class="{active: params.orderStatus==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="pageBg">
<view class="navs">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: params.orderType==item.id}" @click="changeNav(item)">{{ item.text }}</view>
<view class="nav" v-for="(item,index) in tabList" :key="index" :class="{active: params.orderStatus==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="recordTotal"> <text v-if="total">{{total}}条记录</text></view>
<view class="pad">
<view class="tabCon">
<view class="card" v-for="(item,index) in list" :key="index" @click="goDetail(item)">
@ -37,8 +30,8 @@
data() {
return {
tabList: [
{text: '已',id: 1},
{text: '待付',id: 0},
{text: '已完成',id: 1},
{text: '待付',id: 0},
{text: '退款',id: 3},
],//01-12
navList: [
@ -53,14 +46,14 @@
orderType: 0,
sercheValue: ''
},
list: [],
list: [{id: 1}],
total: 0,
status: 'loading'
}
},
onLoad() {
this.params.studentId = this.studentId
this.applyOrderPageFn()
// this.applyOrderPageFn()
},
onPullDownRefresh() {
this.initList()
@ -123,45 +116,26 @@
</script>
<style lang="scss" scoped>
.searcBox {
margin: 0 0 20rpx 0;
}
.card {
padding: 0 24rpx;
margin-bottom: 20rpx;
}
.tabs {
display: flex;
width: 100%;
height: 72rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin-top: 20rpx;
.tab {
flex: 1;
text-align: center;
line-height: 72rpx;
color: #ADADAD;
&.active {
background: rgba(25,137,250,0.1);
border-radius: 16rpx;
border: 2rpx solid #1989FA;
color: $themC;
font-weight: 600;
}
}
}
.navs {
display: flex;
justify-content: space-between;
color: #fff;
font-size: 28rpx;
padding: 10rpx 30rpx 24rpx 30rpx;
padding: 10rpx 30rpx 20rpx 30rpx;
color: $themC;
background: #fff;
.nav {
height: 80rpx;
line-height: 80rpx;
padding: 0 20rpx;
flex: 1;
text-align: center;
&.active {
font-weight: 500;
position: relative;
@ -179,6 +153,9 @@
}
}
}
.tabCon {
padding: 20rpx 0 0 0;
}
.recordTotal {
font-size: 24rpx;
padding: 0rpx 0 28rpx 0;

14
pages/mineEntry/refund/comp/myform.vue

@ -15,10 +15,10 @@
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.amount" @blur="changePrice"></u--input>
</view>
</view>
<view class="tpsHui">退款金额不可超过¥ {{$u.utils.priceTo(info.totalAmount)}}</view>
<!-- <view class="tpsHui">退款金额不可超过¥ {{$u.utils.priceTo(info.totalAmount)}}</view> -->
</view>
<view class="h1">收款信息</view>
<view class="card">
<view class="h1"><text class="active">收款信息</text></view>
<view class="row">
<view class="lab">持卡人</view>
<view class="val">
@ -62,7 +62,10 @@
</view>
</view>
</view>
<view class="footerBtn">
<view class="btnBg" @click="applyOnlineFundFn">提交</view>
</view>
<u-picker :show="showReason" :columns="reasonArr" keyName="label" @confirm="confirmReason" @cancel="showReason=false"></u-picker>
</view>
</template>
@ -259,7 +262,7 @@
margin: 20rpx 0;
}
.card {
padding: 12rpx 28rpx;
padding: 4rpx 20rpx 28rpx 20rpx;
margin-bottom: 24rpx;
.row {
display: flex;
@ -312,10 +315,7 @@
padding: 0rpx 0 16rpx 0;
}
}
.btnBg {
width: 396rpx;
margin: 94rpx auto;
}

39
pages/mineEntry/refund/refund.vue

@ -1,17 +1,7 @@
<template>
<view class="pageBgImg">
<topNavbar :title="title"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="card">
<view class="tpsBox">
<view class="row">
<view class="icon">
<image src="@/static/images/userCenter/warn.png" mode=""></image>
</view>
<view class="tps">请与教练协商确认达成一致后填写协商好的退款金额</view>
</view>
</view>
</view>
<myform :info="info" :orderId="orderId"></myform>
</view>
</view>
@ -47,31 +37,10 @@
</script>
<style lang="scss" scoped>
.card {
padding: 12rpx 28rpx;
margin-bottom: 24rpx;
.tpsBox {
height: 140rpx;
background: #FFFFFF;
border-radius: 16rpx;
.row {
height: 100%;
display: flex;
align-items: center;
.icon {
width: 36rpx;
height: 36rpx;
}
.tps {
padding-left: 26rpx;
font-size: 28rpx;
font-weight: 600;
color: $themC;
line-height: 1.2em;
}
}
}
font-size: 24rpx;
color: #FF7270;
padding: 20rpx 0;
}

27
pages/mineEntry/schoolTransfer/schoolTransfer.vue

@ -1,19 +1,7 @@
<template>
<view class="pageBgImg">
<topNavbar title="同城转校"></topNavbar>
<view class="pageBg">
<view class="pad">
<view class="card">
<view class="tpsBox">
<view class="row">
<view class="icon">
<image src="@/static/images/userCenter/warn.png" mode=""></image>
</view>
<view class="tps">请与教练协商确认达成一致后填写协商好的退款金额</view>
</view>
</view>
</view>
<view class="card">
<view class="row" @click="showReason=true">
<view class="lab">退款原因</view>
<view class="val">申请同城转校</view>
@ -28,9 +16,8 @@
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
<view class="tpsHui">退款金额不可超过¥2000.00</view>
<view class="tpsBlue">退款金额不可超过¥2000.00</view>
</view>
<view class="h1">收款信息</view>
<view class="card">
<view class="row">
<view class="lab">持卡人</view>
@ -75,8 +62,10 @@
</view>
</view>
</view>
<view class="footerBtn">
<view class="btnBg">提交</view>
</view>
</view>
<u-picker :show="showReason" :columns="reasonArr" keyName="lab" @confirm="confirmReason" @cancel="showReason=false"></u-picker>
</view>
</template>
@ -179,7 +168,7 @@
}
}
.tpsBlue {
color: $themC;
color: #FF7270;
margin-bottom: 10rpx;
padding-left: 152rpx;
font-size: 24rpx;
@ -191,10 +180,4 @@
}
}
.btnBg {
width: 396rpx;
margin: 94rpx auto;
}
</style>

2
pages/tabbar/index/comp/informaItem.vue

@ -1,5 +1,5 @@
<template>
<view class="flex-b">
<view class="flex-b" @click="$goPage('pages/indexEntry/iIndustryInfo/detail/detail?id='+item.id)">
<view class="imgBox">
<image :src="item.picture" mode="aspectFill"></image>
</view>

2
pages/tabbar/index/comp/schoolItem.vue

@ -44,7 +44,7 @@
.itemBox {
background: #FFFFFF;
border-radius: 16rpx;
padding: 30rpx;
padding: 20rpx 0rpx;
position: relative;
display: flex;
border-bottom: 1px solid #F4F4F4;

33
pages/tabbar/index/index.vue

@ -54,7 +54,7 @@
<!-- 优质驾校 -->
<view class="schoolCon card">
<view class="h1_row">
<view class="h1" style="margin: 28rpx 0;"><text class="active">优质驾校</text></view>
<view class="h1" ><text class="active">优质驾校</text></view>
<moreRight text="查看全部"/>
</view>
<view class="li" v-for="(item,index) in 3" :key="index">
@ -65,7 +65,7 @@
<!-- 推荐教练 -->
<view class="coachCon">
<view class="h1_row">
<view class="h1" style="margin: 28rpx 0;"><text class="active">推荐教练</text></view>
<view class="h1" ><text class="active">推荐教练</text></view>
<moreRight text="查看全部"/>
</view>
@ -83,9 +83,9 @@
<view class="h1_row">
<view class="tabs">
<view class="h1" @click="changeInforma(1)"><text :class="{active: informa==1}">行业资讯</text></view>
<view class="h1" @click="changeInforma(2)"><text :class="{active: informa==2}">政策法规</text></view>
<view class="h1" @click="changeInforma(2)"><text :class="{active: informa==2}" style="margin-left: 30rpx;">政策法规</text></view>
</view>
<moreRight text="查看全部" @click.native="$goPage('/pages/indexEntry/industryPolicy/industryPolicy')"/>
<moreRight text="查看全部" @click.native="$goPage('/pages/indexEntry/industryPolicy/industryPolicy?type='+ informa)"/>
</view>
<view class="ul2">
@ -159,7 +159,7 @@
{
text: '找教练',
icon: require('../../../static/images/indexIcon/entryIcon (1).png'),
url: '/pages/indexEntry/examines/examines',
url: '/pages/indexEntry/findCoach/findCoach',
goPage: ((item)=>{
this.$goPage(item.url)
})
@ -175,7 +175,7 @@
{
text: '理论学习',
icon: require('../../../static/images/indexIcon/entryIcon (2).png'),
url: '/pages/carEntry/simulateAppointment/simulateAppointment',
url: '/pages/indexEntry/theory/theory',
goPage: ((item)=>{
this.$goPage(item.url)
})
@ -297,6 +297,7 @@
this.$goPage(item.url)
},
changeInforma(val) {
if(this.informa == val) return
this.informa = val
this.getarticleListFn()
},
@ -387,21 +388,11 @@
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 20rpx;
}
.h1 {
padding-top: 10rpx;
.active {
&::before {
background: url('../../../static/images/icon/h1Active.png') #F6F7FA no-repeat;
background-size: 52rpx 12rpx;
}
padding: 20rpx 0 20rpx 0;
}
}
.ul2 {
padding: 10rpx 20rpx 0 20rpx;
}
.main {
width: 100%;
background: url('../../../static/images/bigImg/homeBg.png') #F6F7FA no-repeat;
@ -460,13 +451,12 @@
background: #FFFFFF;
border-radius: 16rpx;
margin-bottom: 20rpx;
padding: 0 20rpx;
.ul {
height: 164rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20rpx;
.li {
flex: 1;
@ -492,14 +482,13 @@
.tabs {
display: flex;
padding: 20rpx 0 10rpx 0;
}
.severCon {
display: flex;
align-items: center;
justify-content: space-between;
padding: 40rpx 20rpx 20rpx 20rpx;
padding: 20rpx 0rpx 20rpx 0rpx;
}
.severItem {
width: 320rpx;
@ -539,6 +528,6 @@
}
.ul3 {
display: flex;
margin-bottom: 20rpx;
margin: 20rpx 0;
}
</style>

19
pages/tabbar/learnCar/comp/comp.scss

@ -2,24 +2,7 @@
.h1 {
font-size: 32rpx;
color: #333;
font-weight: 500;
position: relative;
padding: 0 0 0 32rpx;
line-height: 108rpx;
height: 108rpx;
&::before {
position: absolute;
content: '';
width: 8rpx;
height: 32rpx;
background: #1F6EFA;
border-radius: 4rpx;
top: 50%;
left: 0;
transform: translateY(-50%);
}
padding: 30rpx 0 30rpx 0;
}
.card {

29
pages/tabbar/mine/index.vue

@ -6,7 +6,7 @@
<view class="avatar">
<image src="@/static/images/mineIcon/emtryIcon (3).png" mode=""></image>
</view>
<view class="rightInfo">
<view class="rightInfo" @click="topClick">
<view class="name-row">
<view class="leftTxt">
<view class="name">JOE宝宝</view>
@ -33,7 +33,7 @@
</view>
<view class="ul2">
<view class="li2" v-for="(item,index) in ulData2" :key="index">
<view class="li2" v-for="(item,index) in ulData2" :key="index" @click="$goPage(item.url)">
<view class="icon">
<image :src="item.icon" mode=""></image>
</view>
@ -56,20 +56,29 @@
return {
ulData: [
{name: '学车进度', icon: require('@/static/images/mineIcon/emtryIcon (4).png'),url: '/pages/mineEntry/carLearProgress/carLearProgress'},
{name: '我的预约', icon: require('@/static/images/mineIcon/emtryIcon (1).png'),url: ''},
{name: '我的订单', icon: require('@/static/images/mineIcon/emtryIcon (2).png'),url: ''},
{name: '我的合同', icon: require('@/static/images/mineIcon/emtryIcon (3).png'),url: ''},
{name: '我的预约', icon: require('@/static/images/mineIcon/emtryIcon (1).png'),url: '/pages/mineEntry/myAppointment/myAppointment'},
{name: '我的订单', icon: require('@/static/images/mineIcon/emtryIcon (2).png'),url: '/pages/mineEntry/myOrder/myOrder'},
{name: '我的合同', icon: require('@/static/images/mineIcon/emtryIcon (3).png'),url: '/pages/mineEntry/myContract/myContract'},
],
ulData2: [
{name: '学时查询', icon: require('@/static/images/mineIcon/minIcon (4).png'),url: ''},
{name: '我的评价', icon: require('@/static/images/mineIcon/minIcon (1).png'),url: ''},
{name: '退款申请', icon: require('@/static/images/mineIcon/minIcon (3).png'),url: ''},
{name: '变更车型', icon: require('@/static/images/mineIcon/minIcon (7).png'),url: ''},
{name: '同城转校', icon: require('@/static/images/mineIcon/minIcon (5).png'),url: ''},
{name: '学时查询', icon: require('@/static/images/mineIcon/minIcon (4).png'),url: '/pages/mineEntry/carLearnHours/carLearnHours'},
{name: '我的评价', icon: require('@/static/images/mineIcon/minIcon (1).png'),url: '/pages/mineEntry/myEvaluate/myEvaluate'},
{name: '退款申请', icon: require('@/static/images/mineIcon/minIcon (3).png'),url: '/pages/mineEntry/refund/refund'},
{name: '变更车型', icon: require('@/static/images/mineIcon/minIcon (7).png'),url: '/pages/mineEntry/modelChange/modelChange'},
{name: '同城转校', icon: require('@/static/images/mineIcon/minIcon (5).png'),url: '/pages/mineEntry/schoolTransfer/schoolTransfer'},
{name: '退款申请记录', icon: require('@/static/images/mineIcon/minIcon (6).png'),url: ''},
{name: '关于我们', icon: require('@/static/images/mineIcon/minIcon (2).png'),url: ''},
]
}
},
methods: {
topClick() {
if(!this.vuex_userInfo.phone) {
this.$goPage('/pages/userCenter/login/login')
}else {
this.$goPage('/pages/mineEntry/personaInfo/personaInfo')
}
},
}
}
</script>

BIN
static/images/tabbar/btn_xueche_nor - 副本.png

After

Width: 40  |  Height: 40  |  Size: 1.5 KiB

BIN
static/images/tabbar/btn_xueche_nor.png

Before

Width: 40  |  Height: 40  |  Size: 1.5 KiB

After

Width: 40  |  Height: 40  |  Size: 1.7 KiB

Loading…
Cancel
Save