Browse Source

完善报名页面

master
unknown 1 year ago
parent
commit
02973cd898
  1. 24
      common/js/utils.js
  2. 45
      components/callPhone/callPhone.vue
  3. 34
      components/mySelect/mySelect.vue
  4. 13
      manifest.json
  5. 9
      pages.json
  6. 2
      pages/indexEntry/consult/consult.vue
  7. 3
      pages/indexEntry/consult/pubComplaint/pubComplaint.vue
  8. 2
      pages/indexEntry/consult/pubConsult/pubConsult.vue
  9. 19
      pages/indexEntry/consult/record/comp/complaintItem.vue
  10. 19
      pages/indexEntry/consult/record/comp/consultItem.vue
  11. 1
      pages/indexEntry/consult/record/record.vue
  12. 2
      pages/indexEntry/credit/credit.vue
  13. 100
      pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach.vue
  14. 101
      pages/indexEntry/enroll/registInfo/comp/oldDrive.vue
  15. 102
      pages/indexEntry/enroll/registInfo/comp/searchSchool.vue
  16. 191
      pages/indexEntry/enroll/registInfo/registInfo.vue
  17. 10
      pages/indexEntry/examines/allExamines/allExamines.vue
  18. 9
      pages/indexEntry/examines/comp/examineItem.vue
  19. 1
      pages/indexEntry/examines/newsDetail/newsDetail.vue
  20. 16
      pages/indexEntry/findShcool/comp/schoolItem.vue
  21. 12
      pages/indexEntry/findShcool/findShcool.vue
  22. 27
      pages/indexEntry/findShcool/screen/screen.vue
  23. 2
      pages/indexEntry/findShcool/searchShcool/searchShcool.vue
  24. 2
      pages/indexEntry/findShcool/shcoolDetail/comp/tab1.vue
  25. 15
      pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue
  26. 4
      pages/indexEntry/iIndustryInfo/detail/detail.vue
  27. 3
      pages/indexEntry/iIndustryInfo/iIndustryInfo.vue
  28. 3
      pages/indexEntry/industryPolicy/industryPolicy.vue
  29. 364
      pages/mineEntry/carData/carData - 副本.vue
  30. 178
      pages/mineEntry/carData/carData.vue
  31. 20
      pages/mineEntry/carData/columnChart.vue
  32. BIN
      static/images/index/img_6@2x.png
  33. BIN
      static/images/index/img_7@2x.png
  34. BIN
      static/images/index/img_8@2x.png
  35. 2
      uni_modules/charts/js_sdk/u-charts/config-ucharts.js

24
common/js/utils.js

@ -77,7 +77,28 @@ const install = (Vue, vm) => {
return `${year}${splitor}${addZeroPrefix(month)}${splitor}${addZeroPrefix(day)}`
}
const callPhone = (phone)=> {
phone = phone.trim()
if(!phone) {
uni.showToast({
title: '暂无联系方式',
icon: 'none'
});
return
}
uni.showModal({
content: '确定要拨打:'+phone+'?' ,
success: function (res) {
if (res.confirm) {
uni.makePhoneCall({
phoneNumber: phone //仅为示例
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
@ -90,6 +111,7 @@ const install = (Vue, vm) => {
distanceLatLng,
distanceFn,
getDate,
callPhone
}
}

45
components/callPhone/callPhone.vue

@ -0,0 +1,45 @@
<template>
<view class="box">
<view class="phoneIcon" @click.stop="show=true">
<slot></slot>
</view>
<u-action-sheet :actions="servicePhone" :show="show" @select="callPhoneClick" :closeOnClickOverlay="true" @close="show=false" cancelText="取消"></u-action-sheet>
</view>
</template>
<script>
export default {
data() {
return {
servicePhone: [
{name: '18267103167'},
{name: '18267103168'},
],
show: false
}
},
methods: {
callPhoneClick(item) {
let phone = item.name
// #ifdef MP-WEIXIN
this.$u.utils.callPhone(phone)
// #endif
// #ifdef H5
var a = document.createElement('a')
a.setAttribute('href', 'tel:'+ phone)
document.body.appendChild(a)
a.click()
console.log(phone)
// #endif
this.show =false
},
}
}
</script>
<style>
</style>

34
components/mySelect/mySelect.vue

@ -0,0 +1,34 @@
<template>
<view class="mySelect">
<view class="text hui" v-if="!value">{{ placeholder }}</view>
<view class="text" v-else>{{ value }}</view>
</view>
</template>
<script>
export default {
props: {
value: {
type: String,
default: ''
},
placeholder: {
type: String,
default: '请选择'
}
},
data() {
return {}
}
}
</script>
<style lang="scss" scoped>
.mySelect {
color: #333;
font-size: 26rpx;
.hui {
color: #ADADAD;
}
}
</style>

13
manifest.json

@ -17,7 +17,9 @@
"delay" : 0
},
/* */
"modules" : {},
"modules" : {
"Share" : {}
},
/* */
"distribute" : {
/* android */
@ -43,7 +45,14 @@
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
"sdkConfigs" : {
"share" : {
"weixin" : {
"appid" : "wxae509f512c11c039",
"UniversalLinks" : ""
}
}
}
}
},
/* */

9
pages.json

@ -89,6 +89,15 @@
}
},
{
"path": "enroll/registInfo/chooseCoach/chooseCoach",
"style": {
"navigationBarTitleText": "选择教练",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "enroll/payment/payment",
"style": {
"navigationBarTitleText": "报名缴费",

2
pages/indexEntry/consult/consult.vue

@ -52,7 +52,7 @@
<style lang="scss" scoped>
.tabBox {
display: flex;
margin-top: 20rpx;
// margin-top: 20rpx;
height: 192rpx;
.tab {
flex: 1;

3
pages/indexEntry/consult/pubComplaint/pubComplaint.vue

@ -180,9 +180,8 @@
<style lang="scss" scoped>
.pageBgImg {
.pad {}
.card {
margin-top: 20rpx;
margin-bottom: 20rpx;
.h2 {
font-size: 28rpx;
font-weight: 600;

2
pages/indexEntry/consult/pubConsult/pubConsult.vue

@ -108,7 +108,7 @@
.pageBgImg {
.pad {}
.card {
padding: 0 24rpx 24rpx 24rpx ; margin-top: 20rpx;
padding: 0 24rpx 24rpx 24rpx ;
.h2 {
font-size: 32rpx;
font-weight: 600;

19
pages/indexEntry/consult/record/comp/complaintItem.vue

@ -36,12 +36,29 @@
<view class="date">创建时间2022-01-04</view>
<!-- <view class="date">处理时间2022-01-04</view> -->
</view>
<view class="close_btn">关闭</view>
<view class="close_btn" @click="closeFn">关闭</view>
</view>
</view>
</template>
<script>
export default {
methods: {
closeFn() {
uni.showModal({
content:'确定要关闭吗?',
success: function(res) {
if (res.confirm) {
} else if (res.cancel) {
console.log('用户点击取消');
}
}
})
}
}
}
</script>
<style lang="scss" scoped>

19
pages/indexEntry/consult/record/comp/consultItem.vue

@ -18,9 +18,26 @@
</view>
</template>
<script>
export default {
methods: {
closeFn() {
uni.showModal({
content:'确定要关闭吗?',
success: function(res) {
if (res.confirm) {
} else if (res.cancel) {
console.log('用户点击取消');
}
}
})
}
}
}
</script>
<style lang="scss" scoped>
.consultItem {
width: 100%;

1
pages/indexEntry/consult/record/record.vue

@ -70,7 +70,6 @@
height: 72rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin-top: 20rpx;
.tab {
flex: 1;
text-align: center;

2
pages/indexEntry/credit/credit.vue

@ -4,7 +4,7 @@
<view class="li">
<view class="num">1</view>
<view class="con">
<schoolItme/>
<schoolItme :showPhone="false"/>
</view>
</view>
</view>

100
pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach.vue

@ -0,0 +1,100 @@
<template>
<view class="main">
<u-sticky>
<view class="searchBox">
<u-search placeholder="请输入教练姓名" v-model="params.coachName" :show-action="false" @search="searchFn"> </u-search>
</view>
</u-sticky>
<view class="ul">
<view class="li" v-for="(item,index) in list" :key="index" @click="chooseClick(item)">
<view class="leftT">{{item.coachName}}</view>
<view class="rigthT">{{item.mobilePhone}}</view>
</view>
</view>
<u-loadmore :status="status" v-if="list.length>30" :icon-type="'flower'" />
</view>
</template>
<script>
// import learnDrive from '@/api/learnDrive.js'
export default {
data() {
return {
keyword: '',
trainingSchoolId: '',
list: [
{coachName: '张教练', mobilePhone: '15698236123'}
],
params: {
pageIndex: 1,
pageSize: 30,
trainingSchoolId: ''
},
status: 'loadmore',
}
},
onLoad(options) {
this.params.trainingSchoolId = options.trainingSchoolId
this.querySchoolCoachFn()
},
onReachBottom() {
if(status=='nomore') return
this.querySchoolCoachFn()
},
methods: {
chooseClick(item) {
this.$store.commit('upDateCoachItem', item)
uni.navigateBack()
},
searchFn() {
this.list = []
this.params.pageIndex = 1
this.status = 'loadmore'
this.querySchoolCoachFn()
},
//
async querySchoolCoachFn() {
// const [nulls, res] = await learnDrive.querySchoolCoach(this.params)
// this.list.push(...res.data)
// this.params.pageIndex ++
// if(res.data.length<this.params.pageSize) {
// this.status = 'nomore'
// }
// console.log('')
// console.log(res)
},
}
}
</script>
<style lang="scss" scoped>
.main {
background-color: #f8f8f8;
.searchBox {
background-color: #fff;
padding: 16rpx 32rpx;
}
}
.ul {
width: 100%;
border-bottom: 10rpx solid #f8f8f8;
font-size: 30rpx;
padding: 0 32rpx;
color: #333333;
background-color: #fff;
.li {
width: 100%;
height: 98rpx;
line-height: 98rpx;
display: flex;
font-size: 30rpx;
justify-content: space-between;
align-center: center;
border-bottom: 1px solid #F5F7FA;
}
}
</style>

101
pages/indexEntry/enroll/registInfo/comp/oldDrive.vue

@ -0,0 +1,101 @@
<template>
<view class="carBox">
<view class="carh1">学驾车型</view>
<view v-for="(item,index) in carTypeArr" :key="index" class="carLi">
<view class="carType">{{item.lab}}</view>
<view class="carName_row">
<view class="carName" v-for="(item2,index2) in item.arr" :key="index2" @click="pickerCarClick(item2)" :class="{active: pickerCarArr.indexOf(item2) > -1}">{{item2}}</view>
</view>
</view>
<view class="payBtn_row">
<view class="btnBorder btn" @click="pickerCar()">重置</view>
<view class="btnBg btn" @click="pickerCar(1)">完成</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
carTypeArr: [
{lab: '小车',arr: ['C1','C2','C3']},
{lab: '货车',arr: ['A2','B2',]},
{lab: '客车',arr: ['A1','A3','B1']},
{lab: '摩托车',arr: ['D','E','F']},
{lab: '其它',arr: ['C4','C5','C6']},
],
pickerCarArr: [],
}
},
methods: {
pickerCar(num) {
if(num==1) {
if(!this.pickerCarArr.length) return this.$u.toast('请选择学驾车型')
let oldDriveModel = this.pickerCarArr.join(',')
this.$emit('pickerOldDrive', oldDriveModel)
}else {
this.pickerCarArr = []
this.form.oldDriveModel = ''
}
},
pickerCarClick(item) {
let index = this.pickerCarArr.indexOf(item)
if(index>-1) {
this.pickerCarArr.splice(index, 1);
}else {
this.pickerCarArr.push(item)
}
}
}
}
</script>
<style lang="scss" scoped>
.carBox {
width: 100%;
.carh1 {
font-size: 26rpx;
font-weight: 700;
text-align: center;
padding: 30rpx 0 0 0;
}
.carLi {
width: 100%;
margin-bottom: 30rpx;
padding: 0 32rpx;
}
.carType {
font-size: 26rpx;
font-weight: 500;
line-height: 40rpx;
padding: 28rpx 12rpx 12rpx 0;
}
.carName_row {
display: flex;
.carName {
margin-right: 40rpx;
width: 88rpx;
height: 56rpx;
background: #F6F7F8;
border-radius: 28rpx;
line-height: 56rpx;
text-align: center;
color: #686B73;
&.active {
background: #ECF7FE;
border: 1px solid #3593FB;
color: #1989FA;
}
}
}
}
.payBtn_row {
display: flex;
justify-content: space-between;
padding: 30rpx;
.btn {
width: 48%;
}
}
</style>

102
pages/indexEntry/enroll/registInfo/comp/searchSchool.vue

@ -0,0 +1,102 @@
<template>
<!-- 选择驾校弹出框 -->
<view class="box">
<view class="schoolTit">
选择驾校
</view>
<view class="searchBox">
<u-search placeholder="请输入驾校名称" v-model.trim="keyword" @search="searchSchool" @custom="searchSchool">
</u-search>
</view>
<scroll-view scroll-y="true" style="height: calc(100% - 180rpx);" @scrolltolower="loadMore">
<view class="ul">
<view class="li" v-for="(item,index) in list" :key="index" @click="chooseSchool(item)">
<view class="name">
{{item.schoolName}}
</view>
<view class="starText">
{{item.starLevel}}
</view>
<!-- <view class="distance">
{{ $u.utils.distanceFn(item.distance)}}
</view> -->
</view>
</view>
<u-loadmore :status="status" icon-type="circle" />
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
keyword: '',
status: 'loadmore',
list: [
{schoolName: '翔力驾校',starLevel: 5, }
]
}
},
methods: {
//
chooseSchool(item) {
this.$emit('chooseSchool', item)
},
}
}
</script>
<style lang="scss" scoped>
.schoolTit {
line-height: 90rpx;
text-align: center;
font-size: 28rpx;
}
.searchBox {
width: 100%;
padding: 0 20rpx 20rpx 20rpx;
border-bottom: 1rpx solid #ededed;
}
.ul {
width: 100%;
padding: 0 20rpx;
.li {
width: 100%;
display: flex;
align-items: center;
height: 90rpx;
font-size: 24rpx;
border-bottom: 1rpx solid #ededed;
&:last-child {
border: none;
}
.name {
width: 0;
flex: 1;
font-size: 28rpx;
}
.starText {
color: red;
width: 100rpx;
text-align: right;
flex-shrink: 0;
white-space: nowrap;
}
.distance {
width: 120rpx;
text-align: right;
flex-shrink: 0;
white-space: nowrap;
}
}
}
</style>

191
pages/indexEntry/enroll/registInfo/registInfo.vue

@ -2,22 +2,24 @@
<view class="pageBgImg">
<topNavbar title="报名信息确认"></topNavbar>
<view class="pad">
<!-- #ifndef H5 -->
<view class="card">
<view class="row">
<view class="lab">扫描教练二维码</view>
<view class="rightCon">
<view class="scan">扫一扫</view>
<view class="scan" @click="scanCodeFn">扫一扫</view>
</view>
</view>
</view>
<!-- #endif -->
<view class="card">
<view class="row">
<view class="row" >
<view class="lab">选择驾校</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showSchool=true">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.school"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -28,9 +30,9 @@
<view class="row">
<view class="lab">选择车型</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showCar=true">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.car"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -41,9 +43,9 @@
<view class="row">
<view class="lab">选择班型</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showClassModel=true">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.classModel"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -54,9 +56,9 @@
<view class="row">
<view class="lab">选择教练</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="$goPage('/pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach')">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.coach"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -109,21 +111,19 @@
<view class="card" v-if="form.radiovalue1==2">
<view class="row">
<view class="lab">原驾驶证号</view>
<view class="lab long">原驾驶证号</view>
<view class="rightCon">
<view class="row">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
</view>
<view class="val">{{ form.certificateCodeShow }}</view>
</view>
</view>
</view>
<view class="row">
<view class="lab">驾驶证初领日期</view>
<view class="rightCon" style="margin-left: 56rpx;">
<view class="row">
<view class="lab long">驾驶证初领日期</view>
<view class="rightCon">
<view class="row" @click="showFirstLicenceTime=true" >
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.firstLicenceTime"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -132,11 +132,11 @@
</view>
</view>
<view class="row">
<view class="lab">原准驾车型</view>
<view class="lab long">原准驾车型</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showOldDriveModel=true" >
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.oldDriveModel"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -146,13 +146,13 @@
</view>
</view>
<view class="card" v-if="form.radiovalue2==2">
<view class="card" v-if="form.radiovalue2==1">
<view class="row">
<view class="lab">来源城市</view>
<view class="rightCon">
<view class="row">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.classModel"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -161,11 +161,11 @@
</view>
</view>
<view class="row">
<view class="lab">已过科目</view>
<view class="lab ">已过科目</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showSubjectPass=true">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.subjectPass"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -176,9 +176,9 @@
<view class="row">
<view class="lab">待学科目</view>
<view class="rightCon">
<view class="row">
<view class="row" @click="showSubjectTreat=true">
<view class="val">
<input v-model="form.classModel" placeholder="请选择" @click="showSchool=true" disabled/></input>
<mySelect :value="form.subjectTreat"/>
</view>
<view class="arrow">
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
@ -261,17 +261,85 @@
<u-popup :show="showPopup" mode="center" :round="8" >
<comfigPopup @comfigClick="comfigClick"/>
</u-popup>
<u-popup :show="showSchool" mode="bottom" :round="8" @close="showSchool=false">
<searchSchool @chooseSchool="chooseSchool"/>
</u-popup>
<!-- 选择班型 -->
<u-picker :show="showClassModel" :columns="columnsClassModel" keyName="label" @confirm="confirmClassModel"></u-picker>
<!-- 选择车型 -->
<u-picker :show="showCar" :columns="columnsCar" keyName="label" @confirm="confirmCar"></u-picker>
<!-- 原驾驶证初领日期 -->
<u-datetime-picker :show="showFirstLicenceTime" mode="date" @confirm="confirmFirstLicenceTime"></u-datetime-picker>
<!-- 原驾驶证学驾车型 -->
<u-popup :show="showOldDriveModel" mode="bottom" :round="8" @close="showOldDriveModel=false">
<oldDrive @pickerOldDrive="pickerOldDrive"/>
</u-popup>
<!-- 已过科目 -->
<u-picker :show="showSubjectPass" :columns="columnsSubject" keyName="label" @confirm="confirmSubjectPass"></u-picker>
<!-- 待科目 -->
<u-picker :show="showSubjectTreat" :columns="columnsSubject" keyName="label" @confirm="confirmTreat"></u-picker>
</view>
</template>
<script>
import comfigPopup from './comp/comfigPopup'
import searchSchool from './comp/searchSchool'
import oldDrive from './comp/oldDrive'
export default {
components: { comfigPopup },
components: { comfigPopup, searchSchool, oldDrive },
data() {
return {
showPopup: false,
showClassModel: false,
showCar: false,
showFirstLicenceTime: false,
showOldDriveModel: false,
showSubjectPass: false,
showSubjectTreat: false,
columnsClassModel: [
[
{
label: '普通班型',
id: 1
},
{
label: 'vip班型',
id: 2
}
]
],
columnsSubject: [
[
{label: '科目一', id: 1},
{label: '科目二', id: 2},
{label: '科目三', id: 3},
]
],
columnsCar: [
[
{
label: 'C1',
id: 1
},
{
label: 'C2',
id: 2
}
]
],
form: {
school: '',
classModel: '',
car: '',
coach: '',
certificateCodeShow: '原驾驶证号xxx',
firstLicenceTime: '',
oldDriveModel: '',
subjectPass: '',
subjectTreat: '',
radiovalue2: 1,
radiovalue1: 1,
},
@ -281,7 +349,68 @@
radiolist3: [ {name: '全款', id: 1}, {name: '预付款', id: 2}]
}
},
onLoad() {
this.$on('upDateCoachItem',(item)=>{
console.log(item)
this.form.coach = item.coachName
})
},
methods: {
//
chooseSchool(item) {
this.form.school = item.schoolName
console.log(item)
this.showSchool = false
},
//
confirmClassModel(val) {
let item = val.value[0]
console.log(item)
this.showClassModel = false
this.form.classModel = item.label
},
//
confirmCar(val) {
let item = val.value[0]
console.log(item)
this.showCar = false
this.form.car = item.label
},
//
confirmFirstLicenceTime(val) {
console.log(val)
this.form.firstLicenceTime = uni.$u.timeFormat(val.value, 'yyyy-mm-dd');
this.showFirstLicenceTime = false
},
//
pickerOldDrive(val) {
this.form.oldDriveModel = val
this.showOldDriveModel = false
console.log(val)
},
//
confirmSubjectPass(val) {
let item = val.value[0]
this.form.subjectPass = item.label
this.showSubjectPass = false
},
//
confirmTreat(val) {
let item = val.value[0]
this.form.subjectTreat = item.label
this.showSubjectTreat = false
},
//
scanCodeFn() {
let _this = this
uni.scanCode({
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
}
});
},
changeVal(val) {
console.log(val)
},
@ -289,6 +418,7 @@
confirmClick() {
this.showPopup = true
},
comfigClick(val) {
console.log(val)
this.showPopup = false
@ -316,6 +446,9 @@
width: 152rpx;
line-height: 100rpx;
white-space: nowrap;
&.long {
width: 230rpx;
}
}
.scan {
margin-left: auto;

10
pages/indexEntry/examines/allExamines/allExamines.vue

@ -6,7 +6,7 @@
<searchRow placeholder="搜索考场名称"/>
</view>
<view class="navBox">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: index==0}">{{ item.text }}</view>
<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="card">
<examineItem></examineItem>
@ -28,7 +28,13 @@
{text: '理论', id: 1},
{text: '科目二', id: 2},
{text: '科目三', id: 3},
]
],
currentNav: 0
}
},
methods: {
changeNav(item) {
this.currentNav = item.id
}
}
}

9
pages/indexEntry/examines/comp/examineItem.vue

@ -12,9 +12,12 @@
</view>
<view class="modeCar">准考车型C1/C2</view>
</view>
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
<callPhone>
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
</callPhone>
</view>
<view class="redBox">
<!-- <view class="icon">

1
pages/indexEntry/examines/newsDetail/newsDetail.vue

@ -19,7 +19,6 @@
<style lang="scss" scoped>
.card {
padding: 28rpx 24rpx;
margin-top: 20rpx;
.h2 {
font-size: 28rpx;
font-weight: 500;

16
pages/indexEntry/findShcool/comp/schoolItem.vue

@ -12,13 +12,23 @@
<view class="credit">行业信用AA</view>
<view class="adr">距您1000.99公里</view>
</view>
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
<callPhone v-if="showPhone">
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
</callPhone>
</view>
</template>
<script>
export default {
props: {
showPhone: {
type: Boolean,
default: true
}
}
}
</script>
<style lang="scss" scoped>

12
pages/indexEntry/findShcool/findShcool.vue

@ -6,7 +6,7 @@
<searchRow placeholder="搜索驾校、教练…"></searchRow>
</view>
<view class="navBox">
<view class="tab" v-for="(item,index) in tabData" :key="index" :class="{active: index==0}">
<view class="tab" v-for="(item,index) in tabData" :key="index" :class="{active: currentTab==item.id}" @click="tabClick(item)">
{{ item.text }}</view>
<view class="screen" @click="$goPage('/pages/indexEntry/findShcool/screen/screen')">
<view class="txt">筛选</view>
@ -31,21 +31,22 @@
components: { schoolItme },
data() {
return {
currentTab: 0,
tabData: [{
text: '全部',
id: 0
},
{
text: '场地优先',
id: 0
id: 1
},
{
text: '距离优先',
id: 0
id: 2
},
{
text: '好评优先',
id: 0
id: 3
},
]
}
@ -54,6 +55,9 @@
goPage() {
console.log(this.$goPage)
this.$goPage('/pages/indexEntry/findShcool/shcoolDetail/shcoolDetail')
},
tabClick(item) {
this.currentTab = item.id
}
}
}

27
pages/indexEntry/findShcool/screen/screen.vue

@ -4,7 +4,7 @@
<view class="type">
<view class="h1">驾照类型</view>
<view class="tagFlex">
<view class="tab" v-for="(item,index) in tagList" :class="{active: index==1}">{{ item.text }}</view>
<view class="tab" v-for="(item,index) in tagList" :class="{active: driverTypeArr.indexOf(item.id)!=-1}" @click="driverTypeClick(item)">{{ item.text }}</view>
</view>
</view>
@ -13,7 +13,7 @@
</view>
<view class="btn_row">
<view class="btn border">重置</view>
<view class="btn border" @click="reSetFn">重置</view>
<view class="btn">确定</view>
</view>
</view>
@ -27,10 +27,25 @@
return {
tagList: [
{text: '名称', id: 1},
{text: '名称', id: 1},
{text: '名称', id: 1},
{text: '名称', id: 1},
]
{text: '名称', id: 2},
{text: '名称', id: 3},
],
driverTypeArr: []
}
},
methods: {
driverTypeClick(item) {
let index = this.driverTypeArr.indexOf(item.id)
if( index==-1) {
this.driverTypeArr.push(item.id)
}else {
this.driverTypeArr.splice(index,1)
}
console.log(index)
console.log(this.driverTypeArr)
},
reSetFn() {
}
}
}

2
pages/indexEntry/findShcool/searchShcool/searchShcool.vue

@ -35,7 +35,7 @@
<view class="li">
<view class="num">1</view>
<view class="con">
<schoolItme v-show="currentTab==1"/>
<schoolItme v-show="currentTab==1" :showPhone="false"/>
<coachItem v-show="currentTab==2"/>
</view>
</view>

2
pages/indexEntry/findShcool/shcoolDetail/comp/tab1.vue

@ -5,7 +5,7 @@
<view class="name">C2自动挡一对一VIP班</view>
<view class="flex-b">
<view class="price">2566</view>
<view class="btn">导航</view>
<view class="btn">报名</view>
</view>
</view>
</view>

15
pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue

@ -27,9 +27,11 @@
<u-icon name="arrow-right" color="#363A44" size="14"></u-icon>
</view>
</view>
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
<callPhone>
<view class="pozPhone">
<image src="@/static/images/index/telephone.png" mode=""></image>
</view>
</callPhone>
</view>
</view>
<!-- 驾校位置 -->
@ -66,6 +68,7 @@
'https://cdn.uviewui.com/uview/swiper/swiper2.png',
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
],
show: false,
navList: [
{text: '班型', id: 1},
{text: '场地', id: 2},
@ -73,12 +76,16 @@
{text: '教练车', id: 4},
],
currentNav: 1,
}
},
onLoad() {
},
methods: {
changeNav(item) {
this.currentNav = item.id
}
},
}
}
</script>

4
pages/indexEntry/iIndustryInfo/detail/detail.vue

@ -20,9 +20,7 @@
<style lang="scss" scoped>
.pageBgImg {
min-height: 100vh;
.pad {
margin-top: 24rpx;
}
.card {
padding: 28rpx 24rpx;
.tit {

3
pages/indexEntry/iIndustryInfo/iIndustryInfo.vue

@ -43,9 +43,6 @@
<style lang="scss" scoped>
.pageBgImg {
min-height: 100vh;
.pad {
margin-top: 24rpx;
}
.card {
width: 100%;
padding: 0 24rpx 10rpx 24rpx;

3
pages/indexEntry/industryPolicy/industryPolicy.vue

@ -43,9 +43,6 @@
<style lang="scss" scoped>
.pageBgImg {
min-height: 100vh;
.pad {
margin-top: 24rpx;
}
.card {
width: 100%;
padding: 0 24rpx 10rpx 24rpx;

364
pages/mineEntry/carData/carData - 副本.vue

@ -0,0 +1,364 @@
<template>
<view class="myData pad" id="app">
<topNavbar title=""></topNavbar>
<view class="topText">
<view class="h3">专属您的</view>
<view class="h4">学车数据</view>
</view>
<view class="card">
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaxiao.png" mode=""></image>
</view>
<view class="text">我的驾校</view>
</view>
<view class="value">翔力驾校</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaolian.png" mode=""></image>
</view>
<view class="text">我的教练</view>
</view>
<view class="value">xxx</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_chexing.png" mode=""></image>
</view>
<view class="text">所学车型</view>
</view>
<view class="value">xxx</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_shijian.png" mode=""></image>
</view>
<view class="text">报名时间</view>
</view>
<view class="value">xxx</view>
</view>
</view>
<!-- 学驾共历时 -->
<view class="card">
<view class="chart_row">
<view class="leftText">
<view class="lab">学驾共历时</view>
<view class="val">33</view>
</view>
<view class="rightChart">
<ringChart />
</view>
</view>
</view>
<!-- 考试通过率 -->
<view class="card">
<view class="chart_row">
<view class="leftText" style="width: 200rpx;">
<view class="lab">考试通过率</view>
<view class="val">90%</view>
</view>
<view class="rightChart pad28">
<view class="blueBg">
<columnChart/>
</view>
</view>
</view>
</view>
<view class="flex-b">
<view class="count card">
<view class="lab">实操练习次数</view>
<view class="val">20</view>
</view>
<view class="count card">
<view class="lab">模拟训练次数</view>
<view class="val">20</view>
</view>
</view>
<view class="btnBorder" @click="destImgFn">立即分享</view>
<!-- <button @click="shareFn" open-type="share">立即分享</button> -->
<canvas canvas-id="canvas" style="width: 350px; height: 350px;" class="canvas">3333</canvas>
<view class="img" style="width: 300px; height: 300px;">
<image :src="shareImageUrl" mode=""></image>
</view>
</view>
</template>
<script>
import ringChart from './ringChart.vue'
import columnChart from './columnChart'
export default {
components: { ringChart, columnChart },
data() {
return {
shareImageUrl: ''
}
},
onReady() {
this.destImgFn()
},
methods: {
captureCanvas() {
// Canvas
const canvas = uni.createCanvasContext('myCanvas', this);
//
canvas.setFontSize(20);
canvas.fillText('Hello, Canvas!', 50, 50);
//
canvas.draw(true, () => {
uni.canvasToTempFilePath({
canvasId: 'myCanvas',
fileType: 'png',
success: (res) => {
console.log('截屏成功', res.tempFilePath);
},
fail: (err) => {
console.log('截屏失败', err);
}
}, this);
});
},
destImgFn() {
this.$nextTick(()=>{
// uni.canvasToTempFilePath({
// x: 0,
// y: 0,
// width: 350,
// height: 350,
// destWidth: 350,
// destHeight: 350,
// canvasId: 'canvas',
// success: function(res) {
// // H5tempFilePath base64
// console.log(res.tempFilePath)
// }
// },this)
// return
let _this = this
uni.createSelectorQuery().select('#app').boundingClientRect((rect) => {
console.log(rect)
const context = uni.createCanvasContext('canvas')
context.draw(true, () => {
setTimeout(()=>{
uni.canvasToTempFilePath({
x: 0,
y: 0,
fileType:'png',
width: 200,
height: 200,
// destWidth: rect.width * uni.getSystemInfoSync().pixelRatio,
// destHeight: rect.height * uni.getSystemInfoSync().pixelRatio,
canvasId: 'canvas',
success: (res) => {
console.log('截图成功')
console.log(res)
uni.showToast({
title: '截图成功',
icon: 'none'
})
// uni.hideToast()
// storage便使
_this.shareImageUrl = res.tempFilePath
console.log(_this.shareImageUrl)
},
fail: (error) => {
console.log('截图失败')
console.log(error)
// uni.hideToast()
uni.showToast({
title: '截图失败',
icon: 'none'
})
},
})
},2000)
})
}).exec()
})
},
shareFn() {
let _this = this
// uni.share({
// provider: "weixin",
// scene: "WXSceneSession",
// type: 2,
// imageUrl: _this.shareImageUrl,
// success: function (res) {
// console.log("success:" + JSON.stringify(res));
// },
// fail: function (err) {
// console.log("fail:" + JSON.stringify(err));
// }
// });
uni.showShareMenu({
withShareTicket: true,
success: () => {
uni.showShareImageMenu({
path: _this.shareImageUrl,
success: (res) => {
console.log('分享成功', res)
},
fail: (error) => {
console.log('分享失败', error)
}
})
}
})
},
// API
onShareImageBtnClick() {
wx.showShareMenu({
withShareTicket: true,
success: () => {
wx.shareAppMessage({
imageUrl: '/image/share-image.jpg',
success: (res) => {
console.log('分享成功', res)
},
fail: (error) => {
console.log('分享失败', error)
}
})
}
})
}
}
}
</script>
<style lang="scss" scoped>
.myData {
width: 100%;
background: url('http://192.168.1.20:81/zhili/image/20230818/409dca21dfec44eb8477e056ee23e437.png') #f6f6f6 no-repeat;
background-size: 100% 544rpx;
min-height: 100vh;
font-size: 28rpx;
padding-bottom: 40rpx;
.topText {
padding: 56rpx 34rpx 84rpx 34rpx;
color: #fff;
font-weight: 600;
.h3 {
font-size: 42rpx;
}
.h4 {
font-size: 64rpx;
}
}
.card {
padding: 0 24rpx;
margin-bottom: 20rpx;
.row {
display: flex;
border-bottom: 2rpx solid #E8E9EC;
height: 102rpx;
align-items: center;
.leftCon {
display: flex;
align-items: center;
.icon {
width: 40rpx;
height: 40rpx;
}
.text {
font-size: 28rpx;
padding: 0 40rpx 0 12rpx;
}
}
.value {
font-size: 28rpx;
color: #1989FA;
flex: 1;
}
}
}
.count {
width: 48%;
height: 196rpx;
background: #FFFFFF;
border-radius: 16rpx;
text-align: center;
.lab {
margin: 36rpx 0 28rpx 0;
}
.val {
font-weight: 500;
font-size: 40rpx;
color: $themC;
}
}
.btnBorder {
width: 396rpx;
margin: 48rpx auto 0 auto;
}
}
.chart_row {
height: 300rpx;
border-radius: 16rpx;
display: flex;
.leftText {
width: 270rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.lab {
margin: 0rpx 0 24rpx 0;
}
.val {
font-weight: 500;
font-size: 40rpx;
color: $themC;
}
}
.rightChart {
width: 0;
flex: 1;
&.pad28 {
padding: 28rpx 0;
}
.blueBg {
padding: 20rpx 0 10rpx 0;
width: 100%;
height: 100%;
background-color: #F2F8FF;
}
}
}
.img {
width: 100vw;
height: 100vh;
}
</style>

178
pages/mineEntry/carData/carData.vue

@ -1,87 +1,93 @@
<template>
<view class="myData pad">
<topNavbar title=""></topNavbar>
<view class="topText">
<view class="h3">专属您的</view>
<view class="h4">学车数据</view>
</view>
<view class="card">
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaxiao.png" mode=""></image>
<view class="myData" id="app">
<topNavbar title=" "></topNavbar>
<view class="pad">
<view class="topText">
<view class="h3">专属您的</view>
<view class="h4">学车数据</view>
</view>
<view class="card">
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaxiao.png" mode=""></image>
</view>
<view class="text">我的驾校</view>
</view>
<view class="text">我的驾校</view>
<view class="value">翔力驾校</view>
</view>
<view class="value">翔力驾校</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaolian.png" mode=""></image>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_jiaolian.png" mode=""></image>
</view>
<view class="text">我的教练</view>
</view>
<view class="text">我的教练</view>
<view class="value">xxx</view>
</view>
<view class="value">xxx</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_chexing.png" mode=""></image>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_chexing.png" mode=""></image>
</view>
<view class="text">所学车型</view>
</view>
<view class="text">所学车型</view>
<view class="value">xxx</view>
</view>
<view class="value">xxx</view>
</view>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_shijian.png" mode=""></image>
<view class="row">
<view class="leftCon">
<view class="icon">
<image src="@/static/images/userCenter/ic_shijian.png" mode=""></image>
</view>
<view class="text">报名时间</view>
</view>
<view class="text">报名时间</view>
<view class="value">xxx</view>
</view>
<view class="value">xxx</view>
</view>
</view>
<!-- 学驾共历时 -->
<view class="card">
<view class="chart_row">
<view class="leftText">
<view class="lab">学驾共历时</view>
<view class="val">33</view>
</view>
<view class="rightChart">
<ringChart />
<!-- 学驾共历时 -->
<view class="card">
<view class="chart_row">
<view class="leftText">
<view class="lab">学驾共历时</view>
<view class="val">33</view>
</view>
<view class="rightChart">
<ringChart />
</view>
</view>
</view>
</view>
<!-- 考试通过率 -->
<view class="card">
<view class="chart_row">
<view class="leftText" style="width: 200rpx;">
<view class="lab">考试通过率</view>
<view class="val">90%</view>
</view>
<view class="rightChart pad28">
<view class="blueBg">
<columnChart/>
<!-- 考试通过率 -->
<view class="card">
<view class="chart_row">
<view class="leftText" style="width: 200rpx;">
<view class="lab">考试通过率</view>
<view class="val">90%</view>
</view>
<view class="rightChart pad28">
<view class="blueBg">
<columnChart/>
</view>
</view>
</view>
</view>
</view>
<view class="flex-b">
<view class="count card">
<view class="lab">实操练习次数</view>
<view class="val">20</view>
</view>
<view class="count card">
<view class="lab">模拟训练次数</view>
<view class="val">20</view>
<view class="flex-b">
<view class="count card">
<view class="lab">实操练习次数</view>
<view class="val">20</view>
</view>
<view class="count card">
<view class="lab">模拟训练次数</view>
<view class="val">20</view>
</view>
</view>
</view>
<view class="btnBorder">立即分享</view>
<!-- <view class="btnBorder" @click="destImgFn">立即分享</view>
<canvas canvas-id="canvas" style="width: 350px; height: 350px;" class="canvas">3333</canvas>
<view class="img" style="width: 300px; height: 300px;">
<image :src="shareImageUrl" mode=""></image>
</view> -->
</view>
</template>
@ -92,35 +98,15 @@
components: { ringChart, columnChart },
data() {
return {
gaueData: {
series: [{
"data": [{
"name": "科目一",
"value": 7
},
{
"name": "模拟器",
"value": 0
},
{
"name": "科目二",
"value": 10
},
{
"name": "科目三",
"value": 20
}
]
}]
},
opts: {
dataLabel: false,
width: 300,
height: 300
}
}
},
onReady() {
},
methods: {
}
}
}
</script>
<style lang="scss" scoped>
@ -241,4 +227,8 @@
}
}
}
.img {
width: 100vw;
height: 100vh;
}
</style>

20
pages/mineEntry/carData/columnChart.vue

@ -21,7 +21,7 @@ export default {
rotateLock: false,
color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
padding: [15,15,0,5],
fontSize: 13,
fontSize: 12,
fontColor: "#1989FA",
dataLabel: true,
dataPointShape: true,
@ -42,7 +42,7 @@ export default {
fontColor: "#666666",
lineHeight: 11,
hiddenColor: "#CECECE",
itemGap: 10
itemGap: 10,
},
xAxis: {
disableGrid: true,
@ -72,13 +72,13 @@ export default {
titleOffsetY: 0,
titleOffsetX: 0,
titleFontColor: "#666666",
format: ""
},
yAxis: {
data: [
{
min: 0
}
min: 0,
format: "yAxisDemo1",
},
],
disabled: true,
disableGrid: false,
@ -87,7 +87,7 @@ export default {
dashLength: 8,
gridColor: "#E8E9EC",
padding: 10,
showTitle: false
showTitle: false,
},
extra: {
column: {
@ -103,7 +103,8 @@ export default {
colorStop: 0,
meterBorder: 1,
meterFillColor: "#FFFFFF",
labelPosition: "outside"
labelPosition: "outside",
},
tooltip: {
showBox: false,
@ -130,7 +131,7 @@ export default {
yAxisLabel: false,
labelBgColor: "#FFFFFF",
labelBgOpacity: 0.7,
labelFontColor: "#666666"
labelFontColor: "#666666",
},
markLine: {
type: "solid",
@ -154,7 +155,8 @@ export default {
series: [
{
name: "目标值",
data: [35,36,31,33,]
data: [35,36,31,33,],
format: "yAxisDemo1",
}
]
};

BIN
static/images/index/img_6@2x.png

Before

Width: 80  |  Height: 80  |  Size: 2.6 KiB

After

Width: 80  |  Height: 80  |  Size: 3.4 KiB

BIN
static/images/index/img_7@2x.png

After

Width: 80  |  Height: 80  |  Size: 3.4 KiB

BIN
static/images/index/img_8@2x.png

After

Width: 80  |  Height: 80  |  Size: 2.4 KiB

2
uni_modules/charts/js_sdk/u-charts/config-ucharts.js

@ -54,7 +54,7 @@ const cfu = {
"option":{},
//下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
"formatter":{
"yAxisDemo1":function(val, index, opts){return val+''},
"yAxisDemo1":function(val, index, opts){return val+''},
"yAxisDemo2":function(val, index, opts){return val.toFixed(2)},
"xAxisDemo1":function(val, index, opts){return val+'年';},
"xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')},

Loading…
Cancel
Save