unknown 1 year ago
parent
commit
ded49d176f
  1. 65
      components/cancelReservation/cancelReservation.vue
  2. 0
      components/commentItem/commentItem.vue
  3. 5
      components/privacyPopup/privacyPopup.vue
  4. 28
      pages.json
  5. 3
      pages/carEntry/evaluate/comp/evaluateItem.vue
  6. 4
      pages/indexEntry/findShcool/comments/comments.vue
  7. 10
      pages/mineEntry/carLearProgress/carLearProgress.vue
  8. 126
      pages/mineEntry/modelChange/modelChange.vue
  9. 2
      pages/mineEntry/myAppointment/comp/examin.vue
  10. 2
      pages/mineEntry/myAppointment/comp/imitate.vue
  11. 16
      pages/mineEntry/myAppointment/detail/detail.vue
  12. 2
      pages/mineEntry/myEvaluate/myEvaluate.vue
  13. 14
      pages/mineEntry/personaInfo/personaInfo.vue
  14. 192
      pages/mineEntry/refund/comp/myform.vue
  15. 68
      pages/mineEntry/refund/refund.vue
  16. 99
      pages/mineEntry/schoolTransfer/schoolTransfer.vue
  17. 5
      pages/tabbar/index/index.vue
  18. 14
      pages/tabbar/learnCar/comp/subject2.vue
  19. 4
      pages/tabbar/learnCar/comp/subject3.vue
  20. 30
      pages/tabbar/mine/index.vue
  21. 6
      uni_modules/uview-ui/components/u-textarea/u-textarea.vue

65
components/cancelReservation/cancelReservation.vue

@ -0,0 +1,65 @@
<template>
<view class="popupCon">
<view class="h2">确定取消预约</view>
<view class="txt">某个训练预约取消规则</view>
<view class="btnBox">
<view class="btn" @click="$emit('popupBtnClick',0)">取消</view>
<view class="btn right" @click="$emit('popupBtnClick',1)">确定</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
.popupCon {
width: 558rpx;
background: linear-gradient(180deg, #C1DFFE 0%, #FFFFFF 20%);
border-radius: 16rpx;
.h2 {
font-size: 36rpx;
color: #333;
font-weight: 600;
text-align: center;
padding: 90rpx 0 0rpx 0;
}
.txt {
text-align: center;
padding: 28rpx;
color: #686B73;
}
.btnBox {
width: 100%;
height: 110rpx;
border-top: 1rpx solid #E8E9EC;
display: flex;
padding: 30rpx 0;
.btn {
flex: 1;
text-align: center;
color: #ADADAD;
font-size: 36rpx;
}
.btn.right {
color: $themC;
position: relative;
&::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 2rpx;
height: 48rpx;
background: #E8E9EC;
}
}
}
}
</style>

0
pages/indexEntry/findShcool/comments/commentItem.vue → components/commentItem/commentItem.vue

5
components/privacyPopup/privacyPopup.vue

@ -1,6 +1,6 @@
<template>
<view class="privacyPopup">
<view class="h1">个人信息保护声明</view>
<view class="h2">个人信息保护声明</view>
<view class="content">
<view class="nickName">亲爱的用户</view>
<view class="text">
@ -28,12 +28,11 @@
<style lang="scss" scoped>
.privacyPopup {
width: 558rpx;
// height: 762rpx;
position: relative;
background: linear-gradient(180deg, #C1DFFE 0%, #FFFFFF 20%);
border-radius: 16rpx;
.h1 {
.h2 {
padding: 42rpx 0 0 0;
font-size: 36rpx;
color: #333;

28
pages.json

@ -399,7 +399,35 @@
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "schoolTransfer/schoolTransfer",
"style": {
"navigationBarTitleText": "同城转校",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "modelChange/modelChange",
"style": {
"navigationBarTitleText": "车型变更",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "refund/refund",
"style": {
"navigationBarTitleText": "申请退款",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
}
]
},

3
pages/carEntry/evaluate/comp/evaluateItem.vue

@ -39,7 +39,7 @@
<image src="@/static/images/index/edit.png" mode=""></image>
</view>
<view class="inputBox">
<u-textarea v-model="value" ref="textarea" placeholder="详细说明问题,以便获得更好的回答~"></u-textarea>
<u-textarea v-model="value" ref="textarea" placeholder="详细说明问题,以便获得更好的回答~" border="none"></u-textarea>
</view>
</view>
<view class="phoneBox">
@ -130,5 +130,6 @@
.textareaBg {
margin-top: 22rpx;
}
}
</style>

4
pages/indexEntry/findShcool/comments/comments.vue

@ -10,9 +10,9 @@
</template>
<script>
import commentItem from './commentItem'
// import commentItem from './commentItem'
export default {
components: { commentItem },
// components: { commentItem },
data() {
return {
navList: [

10
pages/mineEntry/carLearProgress/carLearProgress.vue

@ -1,9 +1,9 @@
<template>
<view class="pageBgImg">
<topNavbar title="学车进度"></topNavbar>
<scroll-view class="scroll-view_w" scroll-x="true" @scroll="scroll" >
<scroll-view class="scroll-view_w" scroll-x="true" @scroll="scroll" scroll-with-animation :scroll-into-view="'tab'+currentTab" >
<view class="tabs">
<view class="tab" v-for="(item,index) in tabData" :key="index" @click="changeTab(item)" :class="{active: currentTab==item.id}">{{ item.text }}</view>
<view class="tab" v-for="(item,index) in tabData" :key="index" @click="changeTab(item)" :class="{active: currentTab==item.id}" :id="'tab'+item.id">{{ item.text }}</view>
<view class="rightPad"></view>
</view>
</scroll-view>
@ -47,7 +47,7 @@
return {
tabData: [{
text: '全部',
id: -1
id: 10
},
{
text: '模拟器',
@ -74,8 +74,8 @@
}
},
methods: {
scroll() {
scroll(e) {
console.log(e)
},
changeTab(val) {
this.currentTab = val.id

126
pages/mineEntry/modelChange/modelChange.vue

@ -0,0 +1,126 @@
<template>
<view class="pageBgImg">
<topNavbar title="个人中心"></topNavbar>
<view class="pad">
<view class="card">
<view class="h2">现学驾信息</view>
<view class="row">
<view class="lab">学驾车型</view>
<view class="val">C1</view>
</view>
<view class="row">
<view class="lab">学车班型</view>
<view class="val">C1手动挡一对一VIP班</view>
</view>
<view class="row">
<view class="lab">学驾培训费</view>
<view class="val blue">3000</view>
</view>
</view>
<view class="card">
<view class="h2">变更学驾信息</view>
<view class="row">
<view class="lab">学驾车型</view>
<view class="val" @click="showModel=true">
<input type="text" placeholder="请选择" disabled="">
</view>
<view class="arrow" @click="showModel=true">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="row">
<view class="lab">学车班型</view>
<view class="val">
<input type="text" placeholder="请选择" disabled="">
</view>
<view class="arrow">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="row">
<view class="lab">学驾培训费</view>
<view class="val hui">-</view>
</view>
</view>
<view class="btnBg">下一步</view>
</view>
<u-picker :show="showModel" :columns="modelArr" keyName="lab" @confirm="confirmModel" @cancel="showModel=false"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
showModel: false,
modelArr: [
[
{lab: 'C1',id: 1},
{lab: 'C2',id: 2},
]
]
}
},
methods: {
confirmModel(val) {
let item = val.value[0]
this.showModel = false
}
}
}
</script>
<style lang="scss" scoped>
.card {
margin-bottom: 24rpx;
padding: 16rpx 28rpx;
.h2 {
color: $themC;
font-weight: 600;
margin: 10rpx 0 20rpx 0;
}
.row {
height: 92rpx;
line-height: 92rpx;
display: flex;
align-items: center;
.lab {
font-size: 28rpx;
color: #333;
font-weight: 600;
width: 160rpx;
}
.val {
flex: 1;
height: 100%;
input {
display: block;
height: 100%;
font-size: 28rpx;
}
&.blue {
color: $themC;
font-weight: 600;
}
&.hui {
color: #ADADAD;
font-weight: 400;
}
}
.arrow {
u-icon {
}
}
}
}
.btnBg {
width: 396rpx;
margin: 72rpx auto;
}
</style>

2
pages/mineEntry/myAppointment/comp/examin.vue

@ -38,7 +38,7 @@
<view class="date">完成时间2022-01-04</view>
<!-- <view class="date">处理时间2022-01-04</view> -->
</view>
<view class="btnBg">去评价</view>
<view class="btnBg" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
</view>
</view>
</template>

2
pages/mineEntry/myAppointment/comp/imitate.vue

@ -38,7 +38,7 @@
<view class="date">完成时间2022-01-04</view>
<!-- <view class="date">处理时间2022-01-04</view> -->
</view>
<view class="btnBg">去评价</view>
<view class="btnBg" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
</view>
</view>
</template>

16
pages/mineEntry/myAppointment/detail/detail.vue

@ -9,13 +9,15 @@
<examin v-else-if="type==3"/>
</view>
<view class="btnBox">
<view class="btnBg">去评价</view>
<view class="btnBorder">取消预约</view>
<view class="btnCon">
<view class="btnBg" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
<view class="btnBorder" @click="show=true">取消预约</view>
<view class="btnBorder">申请退款</view>
</view>
</view>
<u-popup :show="show" mode="center" :round="20" @>
<cancelReservation @popupBtnClick="show=false"/>
</u-popup>
</view>
</template>
@ -27,7 +29,8 @@
components: { imitate, opera, examin},
data() {
return {
type: 1
type: 1,
show: false
}
}
}
@ -37,7 +40,7 @@
.card {
padding: 24rpx;
}
.btnBox {
.btnCon {
display: flex;
flex-direction: column;
align-items: center;
@ -55,4 +58,5 @@
margin-bottom: 40rpx;
}
}
</style>

2
pages/mineEntry/myEvaluate/myEvaluate.vue

@ -8,9 +8,7 @@
</template>
<script>
import commentItem from '../../indexEntry/findShcool/comments/commentItem'
export default {
components: { commentItem },
data() {
return {

14
pages/mineEntry/personaInfo/personaInfo.vue

@ -42,7 +42,7 @@
</view>
</view>
<view class="logout">退出登录</view>
<view class="logout" @click="$goPage('/pages/userCenter/login/login')">退出登录</view>
</view>
</view>
@ -71,4 +71,16 @@
border-bottom: 2rpx solid #E8E9EC;
}
}
.logout {
width: 396rpx;
height: 72rpx;
background: #FFFFFF;
border-radius: 8rpx;
border: 2rpx solid #E8E9EC;
font-size: 28rpx;
color: #ADADAD;
text-align: center;
line-height: 72rpx;
margin: 88rpx auto;
}
</style>

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

@ -0,0 +1,192 @@
<template>
<view class="form">
<view class="card">
<view class="row" @click="showReason=true">
<view class="lab">退款原因</view>
<view class="val">申请同城转校</view>
<view class="icon">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<!-- <view class="tpsBlue">此操作容易造成您已有学时丢失请谨慎</view> -->
<view class="row">
<view class="lab">退款金额</view>
<view class="val">
<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>
<view class="h1">收款信息</view>
<view class="card">
<view class="row">
<view class="lab">持卡人</view>
<view class="val">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
<view class="row">
<view class="lab">手机号</view>
<view class="val">
<view class="flex-b">
<view class="inputBox">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
<view class="code" @click='goSms' :class="{active: isPhone&&!codeOn}">获取验证码</view>
</view>
</view>
</view>
<view class="row">
<view class="lab" >验证码</view>
<view class="val">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
<view class="row">
<view class="lab">卡号</view>
<view class="val">
<view class="flex-b">
<view class="inputBox">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
<view class="scan">
<image src="@/static/images/userCenter/btn_yinhangkax.png" mode=""></image>
</view>
</view>
</view>
</view>
<view class="row">
<view class="lab">开户行</view>
<view class="val">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
</view>
<u-picker :show="showReason" :columns="reasonArr" keyName="lab" @confirm="confirmReason" @cancel="showReason=false"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
FormData: {
},
showReason: false ,
codeOn: false,
reasonArr: [
[
{lab: '不想学了',id: 1},
{lab: '有事情',id: 2},
{lab: '去别的地方学',id: 3},
]
],
}
},
computed: {
isPhone() {
return uni.$u.test.mobile(this.FormData.phone)
}
},
methods: {
confirmReason(val) {
let item = val.value[0]
this.showReason = false
console.log(item)
},
//
async goSms() {
const {
FormData
} = this
if (!FormData.phone) return this.$u.toast('请输入手机号');
if (!this.isPhone) return this.$u.toast('手机号格式有误');
if (this.codeOn) return
const data = await getLoginCode({
codeType: 1,
phone: FormData.phone,
})
console.log(data)
//
var time = 60;
var timer = setInterval(() => {
time--;
this.codeText = time + "秒后重新发送"
this.codeOn = true;
if (time == 0) {
clearInterval(timer);
this.codeText = "获取验证码";
this.codeOn = false;
}
}, 1000);
},
}
}
</script>
<style lang="scss" scoped>
.h1 {
margin: 20rpx 0;
}
.card {
padding: 12rpx 28rpx;
margin-bottom: 24rpx;
.row {
display: flex;
align-items: center;
justify-content: space-between;
height: 80rpx;
line-height: 80rpx;
.lab {
font-size: 28rpx;
color: #333;
font-weight: 500;
width: 152rpx;
}
.val {
flex: 1;
&.tpsBlue {
font-size: 24rpx;
}
.flex-b {
.scan {
width: 44rpx;
height: 44rpx;
}
.code {
flex-shrink: 0;
color: #ADADAD;
&.active {
color: $themC;
}
}
}
}
.icon {
u-icon {
}
}
}
.tpsBlue {
color: $themC;
margin-bottom: 10rpx;
padding-left: 152rpx;
font-size: 24rpx;
}
.tpsHui {
font-size: 24rpx;
color: #ADADAD;
padding: 0rpx 0 16rpx 0;
}
}
</style>

68
pages/mineEntry/refund/refund.vue

@ -0,0 +1,68 @@
<template>
<view class="pageBgImg">
<topNavbar title="同城转校"></topNavbar>
<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></myform>
<view class="btnBg">提交</view>
</view>
</view>
</template>
<script>
import myform from './comp/myform'
export default {
components: { myform },
data() {
return {
}
},
methods: {
}
}
</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;
}
}
}
}
.btnBg {
width: 396rpx;
margin: 94rpx auto;
}
</style>

99
pages/mineEntry/schoolTransfer/schoolTransfer.vue

@ -1,5 +1,7 @@
<template>
<view class="pageBgImg">
<topNavbar title="同城转校"></topNavbar>
<view class="pad">
<view class="card">
<view class="tpsBox">
<view class="row">
@ -11,22 +13,19 @@
</view>
</view>
<view class="card2">
<view class="row">
<view class="card">
<view class="row" @click="showReason=true">
<view class="lab">退款原因</view>
<view class="val">申请同城转校</view>
<view class="icon">
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="row">
<view class="lab"></view>
<view class="val">此操作容易造成您已有学时丢失请谨慎</view>
</view>
<view class="tpsBlue">此操作容易造成您已有学时丢失请谨慎</view>
<view class="row">
<view class="lab">退款金额</view>
<view class="val">
<u--input placeholder="请输入手机号" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
<view class="tpsHui">退款金额不可超过¥2000.00</view>
@ -78,6 +77,8 @@
</view>
<view class="btnBg">提交</view>
</view>
<u-picker :show="showReason" :columns="reasonArr" keyName="lab" @confirm="confirmReason" @cancel="showReason=false"></u-picker>
</view>
</template>
<script>
@ -86,7 +87,22 @@
return {
FormData: {
},
showReason: false ,
reasonArr: [
[
{lab: '不想学了',id: 1},
{lab: '有事情',id: 2},
{lab: '去别的地方学',id: 3},
]
],
}
},
methods: {
confirmReason(val) {
let item = val.value[0]
this.showReason = false
console.log(item)
}
}
}
@ -94,29 +110,66 @@
<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 {
img {
}
width: 36rpx;
height: 36rpx;
}
.tps {
padding-left: 26rpx;
font-size: 28rpx;
font-weight: 600;
color: $themC;
line-height: 1.2em;
}
}
}
}
.card2 {
.h1 {
margin-bottom: 20rpx;
}
.card {
.row {
display: flex;
align-items: center;
justify-content: space-between;
height: 80rpx;
line-height: 80rpx;
.lab {
font-size: 28rpx;
color: #333;
font-weight: 500;
width: 152rpx;
}
.val {
flex: 1;
&.tpsBlue {
font-size: 24rpx;
}
.flex-b {
.scan {
width: 44rpx;
height: 44rpx;
}
.code {
flex-shrink: 0;
color: #ADADAD;
&.active {
color: $themC;
}
}
}
}
.icon {
@ -125,17 +178,23 @@
}
}
}
.tpsBlue {
color: $themC;
margin-bottom: 10rpx;
padding-left: 152rpx;
font-size: 24rpx;
}
.tpsHui {
font-size: 24rpx;
color: #ADADAD;
padding: 0rpx 0 16rpx 0;
}
}
.h1 {
}
.btnBg {
width: 396rpx;
margin: 94rpx auto;
}
</style>

5
pages/tabbar/index/index.vue

@ -420,7 +420,7 @@
.serviceCon {
width: 100%;
padding-bottom: 20rpx;
padding: 0 20rpx 20rpx 20rpx;
.h1 {
font-size: 28rpx;
@ -431,7 +431,6 @@
}
.ul2 {
padding: 0 20rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
@ -476,7 +475,7 @@
.textCon {
// flex: 1;
padding-left: 16rpx;
padding-left: 10rpx;
.text {
font-size: 32rpx;

14
pages/tabbar/learnCar/comp/subject2.vue

@ -35,7 +35,7 @@
<view class="flex-b bg">
<view class="row">
<view class="text">考试成绩100</view>
<view class="btn">去评价</view>
<view class="btn" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
</view>
</view>
</view>
@ -90,13 +90,23 @@
<view class="text">核销时间2023/08/16 14:00</view>
</view>
</view>
<view class="cancel">取消预约</view>
<view class="cancel" @click="show=true">取消预约</view>
</view>
</view>
<u-popup :show="show" mode="center" :round="20" @>
<cancelReservation @popupBtnClick="show=false"/>
</u-popup>
</view>
</template>
<script>
export default {
data() {
return {
show: false
}
}
}
</script>
<style lang="scss" scoped>

4
pages/tabbar/learnCar/comp/subject3.vue

@ -35,7 +35,7 @@
<view class="flex-b bg">
<view class="row">
<view class="text">考试成绩100</view>
<view class="btn">去评价</view>
<view class="btn" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
</view>
</view>
</view>
@ -60,7 +60,7 @@
</view>
<view class="flex-b bg">
<view class="row oneBtn">
<view class="btn">去评价</view>
<view class="btn" @click.stop="$goPage('/pages/carEntry/evaluate/evaluate')">去评价</view>
</view>
</view>
</view>

30
pages/tabbar/mine/index.vue

@ -1,5 +1,5 @@
<template>
<view class="content pageBg">
<view class="pageBgImg">
<!-- 学员名字 -->
<view class="top_row flex-b" @click="$goPage('/pages/mineEntry/personaInfo/personaInfo')">
<view class="flex">
@ -113,14 +113,17 @@
{
text: '同城转校',
icon: require('../../../static/images/userCenter/tgzhuanxiao.png'),
url: '/pages/mineEntry/schoolTransfer/schoolTransfer'
},
{
text: '车型变更',
icon: require('../../../static/images/userCenter/biangen.png'),
url: '/pages/mineEntry/modelChange/modelChange'
},
{
text: '申请退学',
icon: require('../../../static/images/userCenter/shenqingtuixue.png'),
url: '/pages/mineEntry/refund/refund'
},
]
}
@ -138,16 +141,8 @@
</script>
<style lang="scss" scoped>
.content {
}
.content {
width: 100%;
width: 100vw;
min-height: 100vh;
background: url('../../../static/images/bigImg/topbg.png') #F6F6F6 no-repeat;
background-size: 100% 362rpx;
.pageBgImg {
.top_row {
width: 100%;
padding: 180rpx 62rpx 0 32rpx;
@ -296,22 +291,7 @@
.business {
padding: 32rpx 0;
.h1 {
font-size: 32rpx;
color: #333;
font-weight: 500;
position: relative;
padding: 0 0 0 32rpx;
margin-bottom: 24rpx;
&::before {
position: absolute;
content: '';
width: 8rpx;
height: 32rpx;
background: #1F6EFA;
border-radius: 4rpx;
top: 8rpx;
left: 0;
}
}
.card {

6
uni_modules/uview-ui/components/u-textarea/u-textarea.vue

@ -201,11 +201,11 @@ export default {
.u-textarea {
border-radius: 4px;
background-color: #fff;
background-color: #F8F8F8;
position: relative;
@include flex;
flex: 1;
padding: 9px;
// padding: 9px;
&--radius {
border-radius: 4px;
@ -221,7 +221,7 @@ export default {
&__field {
flex: 1;
font-size: 15px;
font-size: 14px;
color: $u-content-color;
width: 100%;
}

Loading…
Cancel
Save