From 935fb7d81edc893059dacc81f864e417a47a4efb Mon Sep 17 00:00:00 2001
From: unknown <331404948@qq.com>
Date: Mon, 5 Jun 2023 16:42:42 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1=E6=94=AF?=
=?UTF-8?q?=E4=BB=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/index.js | 24 +
common/js/utils.js | 209 +++---
pages.json | 17 +-
pages/application/entry.vue | 31 +-
pages/application/fillRegistInfo.vue | 174 +++--
pages/application/payment.vue | 818 ++++++++++++---------
pages/application/registrationPhone.vue | 15 +-
pages/application/success.vue | 7 +-
pages/application/webView.vue | 160 ++++
pages/index/index.vue | 61 +-
pages/learnDriveStep/chooseCoach/chooseCoach.vue | 99 ---
.../confirmClassHour/confirmClassHour.vue | 138 ----
.../learnDriveStep/confirmClassHour/signature.vue | 228 ------
pages/learnDriveStep/learnDriveStep.scss | 135 ----
pages/learnDriveStep/learnDriveStep.vue | 253 -------
pages/learnDriveStep/payMoney/payMoney.vue | 625 ----------------
pages/learnDriveStep/payMoney/payMoneySuccess.vue | 97 ---
pages/learnDriveStep/realName/realName.vue | 142 ----
pages/learnDriveStep/step/step0.vue | 147 ----
pages/learnDriveStep/step/step1.vue | 225 ------
pages/learnDriveStep/step/step2.vue | 63 --
pages/learnDriveStep/step/step3.vue | 524 -------------
pages/learnDriveStep/step/step3formValidation.vue | 121 ---
pages/learnDriveStep/step/step4.vue | 174 -----
.../webView/webView - 副本 (2).vue | 148 ----
pages/learnDriveStep/webView/webView.vue | 160 ----
pages/schoolDetails/details.vue | 2 +-
static/images/avatar.png | Bin 0 -> 5562 bytes
static/images/jiaofei_wxIphone@2x.png | Bin 0 -> 1909 bytes
static/images/third_icon_gengduoIphone@2x.png | Bin 0 -> 3750 bytes
static/images/third_img_tuijianIphone@2x.png | Bin 0 -> 2763 bytes
31 files changed, 984 insertions(+), 3813 deletions(-)
create mode 100644 pages/application/webView.vue
delete mode 100644 pages/learnDriveStep/chooseCoach/chooseCoach.vue
delete mode 100644 pages/learnDriveStep/confirmClassHour/confirmClassHour.vue
delete mode 100644 pages/learnDriveStep/confirmClassHour/signature.vue
delete mode 100644 pages/learnDriveStep/learnDriveStep.scss
delete mode 100644 pages/learnDriveStep/learnDriveStep.vue
delete mode 100644 pages/learnDriveStep/payMoney/payMoney.vue
delete mode 100644 pages/learnDriveStep/payMoney/payMoneySuccess.vue
delete mode 100644 pages/learnDriveStep/realName/realName.vue
delete mode 100644 pages/learnDriveStep/step/step0.vue
delete mode 100644 pages/learnDriveStep/step/step1.vue
delete mode 100644 pages/learnDriveStep/step/step2.vue
delete mode 100644 pages/learnDriveStep/step/step3.vue
delete mode 100644 pages/learnDriveStep/step/step3formValidation.vue
delete mode 100644 pages/learnDriveStep/step/step4.vue
delete mode 100644 pages/learnDriveStep/webView/webView - 副本 (2).vue
delete mode 100644 pages/learnDriveStep/webView/webView.vue
create mode 100644 static/images/avatar.png
create mode 100644 static/images/jiaofei_wxIphone@2x.png
create mode 100644 static/images/third_icon_gengduoIphone@2x.png
create mode 100644 static/images/third_img_tuijianIphone@2x.png
diff --git a/api/index.js b/api/index.js
index d51fa29..3868b87 100644
--- a/api/index.js
+++ b/api/index.js
@@ -67,5 +67,29 @@ class indexApi {
async queryRegionByParentCode(data) {
return await Ajax1('/util/manage/queryRegionByParentCode.do?regionCode=330100', data,'post');
}
+ // 提交表单
+ async createTrainingApplyDetails(data) {
+ return await Ajax1('/apply/manage/createTrainingApplyDetails.do', data,'post');
+ }
+ // 获取签约链接
+ async signContract(data) {
+ return await Ajax1('/apply/manage/signContract.do', data,'post');
+ }
+ // 查询订单详情-1
+ async getOrderDetails(data) {
+ return await Ajax1('/order/manage/getOrderDetails.do', data,'post');
+ }
+ // 创建订单
+ async createOrder(data) {
+ return await Ajax1('/order/manage/createOrder.do', data,'post');
+ }
+ // 创建变更车型银行预支付订单-4
+ async createChangeModelPrepaid(data) {
+ return await http('/order/manage/createChangeModelPrepaid.do', data,'post');
+ }
+ // 创建银行预支付订单
+ async createPrepaid(data) {
+ return await Ajax1('/order/manage/createPrepaid.do', data,'post');
+ }
}
export default new indexApi();
\ No newline at end of file
diff --git a/common/js/utils.js b/common/js/utils.js
index 1428209..12f3d01 100644
--- a/common/js/utils.js
+++ b/common/js/utils.js
@@ -3,55 +3,31 @@ import learnDriveApi from '@/api/learnDrive.js'; // 引入
import store from '@/store';
const install = (Vue, vm) => {
- 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('用户点击取消');
- }
- }
- });
- }
-
-
-
+
// 打开地图
- const openMap = (lat,lng)=>{
+ const openMap = (lat, lng) => {
uni.openLocation({
latitude: lat,
longitude: lng
})
}
-
+
// 距离换算
- const distanceFn = (val)=> {
- if(val*1<1000) {
+ const distanceFn = (val) => {
+ if (val * 1 < 1000) {
return val + '米'
- }else {
+ } else {
return (val / 1000).toFixed(2) + '公里'
}
}
// 价格计算
- const priceTo = (price = 0)=> {
+ const priceTo = (price = 0) => {
// return (price / 100).toFixed(2)
- return ( parseInt( price * 100 ) / 100 / 100 ).toFixed(2)
-
+ return (parseInt(price * 100) / 100 / 100).toFixed(2)
+
}
-
- const distanceLatLng = (lat1, lng1)=> {
+
+ const distanceLatLng = (lat1, lng1) => {
var that = this;
let lat2 = store.state.latLng.lat;
let lng2 = store.state.latLng.lng;
@@ -68,29 +44,29 @@ const install = (Vue, vm) => {
s = s.toString();
s = s.substring(0, s.indexOf('.') + 2);
return s
-
- }
-
- const getLocation = ()=> {
- return new Promise((resolve,reject)=>{
+
+ }
+
+ const getLocation = () => {
+ return new Promise((resolve, reject) => {
uni.getLocation({
type: 'wgs84',
- success: function (res) {
+ success: function(res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
let obj = {
lat: res.latitude,
lng: res.longitude
}
- store.commit('updateLatLng',obj)
+ store.commit('updateLatLng', obj)
resolve(obj)
}
});
}).catch((e) => {})
}
-
+
// 查询用户信息
- let getOwnerAccountBase = async ()=> {
+ let getOwnerAccountBase = async () => {
const [err, data] = await loginApi.getOwnerAccountBase();
if (data.code != 0) {
uni.removeStorageSync('Authorization')
@@ -100,46 +76,50 @@ const install = (Vue, vm) => {
uni.setStorageSync('userInfo', data.data);
return data.data;
}
-
+
// 查看是否有未支付订单
- let checkOrderPay = async ()=>{
+ let checkOrderPay = async () => {
// 这一步判断是否有实名,避免接口报错
let userInfo = await getOwnerAccountBase()
-
+
uni.setStorageSync('userInfo', userInfo);
- if(!userInfo||!userInfo.idcard) return false
-
+ if (!userInfo || !userInfo.idcard) return false
+
// 1查询报名驾校
const [nulls, res] = await learnDriveApi.queryTrainingApplyByOwner()
- if(!res.data) return false
- let trainingApplyId = res.data[0].trainingApplyId
- let transfer = res.data[0].transfer
- if(!trainingApplyId) {
+ if (!res.data) return false
+ let trainingApplyId = res.data[0].trainingApplyId
+ let transfer = res.data[0].transfer
+ if (!trainingApplyId) {
return {}
}
-
-
-
+
+
+
// 2查询订单id
- let [err, res2] = await learnDriveApi.getTrainingApplyDetails({trainingApplyId: trainingApplyId})
+ let [err, res2] = await learnDriveApi.getTrainingApplyDetails({
+ trainingApplyId: trainingApplyId
+ })
let detail = res2.data
- if(!detail.trainingOrderId) {
+ if (!detail.trainingOrderId) {
return {}
}
-
+
// 查询订单详情
- let [err3, res3] = await learnDriveApi.getOwnerStudentStatus({trainingOrderId: detail.trainingOrderId})
-
+ let [err3, res3] = await learnDriveApi.getOwnerStudentStatus({
+ trainingOrderId: detail.trainingOrderId
+ })
+
console.log('详情')
console.log(res3.data)
res3.data.trainingOrderId = detail.trainingOrderId
-
+
// 有同城转样没有完成 用这个?transferStatus 还是用transfer
- if(res3.haveTransfer==2) {
+ if (res3.haveTransfer == 2) {
uni.showModal({
content: '您有转校入学申请等完成',
confirmText: '去完成',
- success: function (res) {
+ success: function(res) {
if (res.confirm) {
uni.navigateTo({
url: '/pages/user/businessHandling/transferAppliRecord/transferAppliRecord'
@@ -149,43 +129,81 @@ const install = (Vue, vm) => {
});
}
return res3.data
-
+
}
-
+
function addZeroPrefix(number) {
- return number < 10 ? `0${number}`:number
+ return number < 10 ? `0${number}` : number
}
-
- let getDate = (date, splitor = '-')=> {
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- return `${year}${splitor}${addZeroPrefix(month)}${splitor}${addZeroPrefix(day)}`
+
+ let getDate = (date, splitor = '-') => {
+ const year = date.getFullYear()
+ const month = date.getMonth() + 1
+ const day = date.getDate()
+ return `${year}${splitor}${addZeroPrefix(month)}${splitor}${addZeroPrefix(day)}`
}
-
- var lastTime = 0
- var audioContext = uni.createInnerAudioContext() // 播放音频的
-
- let shakeFn = (res)=>{
- if(!store.state.havePay) return false
- let nowTimer = new Date().getTime()
- if (nowTimer - lastTime < 1000) return
- lastTime = nowTimer
- // 自己根据自己的力度调节 变量大小 满足自己设定的值后触发自己的逻辑
- if ((Math.abs(res.x) > 20 || Math.abs(res.y) > 20 || Math.abs(res.z) > 20) ) {
- console.log('yayaoyaoya6666666666666666')
- // 进入判断后 相当于摇一摇成功
- audioContext.src = 'https://lg-fe2b58o2-1255788064.cos.ap-shanghai.myqcloud.com/shark.mp3' // 播放音频
- audioContext.play() // 播放
- uni.navigateTo({
- url: '/pages/user/studentIdImg/studentIdImg'
- })
+
+ const browser = {
+ versions: function() {
+ const u = navigator.userAgent;
+ return {
+ ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
+ android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
+ }
+ }()
+ };
+
+
+
+ //调⽤APP交互
+ //apiName:⽅法名称
+ //parameter:参数
+ function appPostMessage(apiName, parameter) {
+ // console.log(browser.versions)
+ if (browser.versions.ios) { //判读iOS或安卓
+ try {
+ //参数类型可以为对象类型
+ var par = {
+ "type": apiName,
+ "callBack": {
+ //回调函数⾃定义参数
+ "callBackName": 'arouseNativeMsg',
+ },
+ "postParameter": parameter
+ };
+ //iOS调⽤格式
+ window.webkit.messageHandlers.requestApp.postMessage(par);
+ return "ios"
+ } catch (err) {
+ // on catch
+ }
+ } else if (browser.versions.android) {
+ try {
+ //par参数格式为json字符串
+ var par = {
+ "type": apiName,
+ "callBack": {
+ //
+ "callBackName": "arouseNativeMsg", //固定参数arouseNativeMsg
+ "callBackParms": parameter
+ }
+ };
+ //转jsonString
+ var parString = JSON.stringify(par);
+ //Android调⽤格式window.forJs.requestApp(par);
+ window.forJs.requestApp(parString);
+ return "android"
+ } catch (err) {
+ // on catch
+ }
+ } else {
+ alert("不是安卓或者IOS")
}
}
-
- vm.$u.utils={
- callPhone,
+
+
+ vm.$u.utils = {
openMap,
getLocation,
getOwnerAccountBase,
@@ -194,8 +212,7 @@ const install = (Vue, vm) => {
distanceLatLng,
distanceFn,
getDate,
- shakeFn
-
+ appPostMessage
}
}
diff --git a/pages.json b/pages.json
index ed19f95..407939f 100644
--- a/pages.json
+++ b/pages.json
@@ -103,15 +103,18 @@
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black" //状态栏字体颜色
}
+ },
+ {
+ "path": "pages/application/webView",
+ "style": {
+ "navigationBarTitleText": "报名成功",
+ "enablePullDownRefresh": false,
+ "bounce": "none",
+ "navigationBarBackgroundColor": "#FFFFFF",
+ "navigationBarTextStyle": "black" //状态栏字体颜色
+ }
}
-
-
-
-
-
-
-
],
"globalStyle": {
"navigationBarTextStyle": "black",
diff --git a/pages/application/entry.vue b/pages/application/entry.vue
index 34dd437..f633513 100644
--- a/pages/application/entry.vue
+++ b/pages/application/entry.vue
@@ -9,7 +9,7 @@
请选择
以下两种报名方式,均享受会员价
-
+
@@ -22,7 +22,7 @@
-
+
@@ -40,16 +40,37 @@
diff --git a/pages/application/fillRegistInfo.vue b/pages/application/fillRegistInfo.vue
index 620c523..d1513e0 100644
--- a/pages/application/fillRegistInfo.vue
+++ b/pages/application/fillRegistInfo.vue
@@ -48,8 +48,8 @@
-
-
+
+
学员信息 请准确填写学员真实信息
-
+
-
+
+
-
+
-
-
-
+
+
+
中国
-
+
身份证
-
+
-
+
+
-
-
+
+
+
-
-
+
+
+
@@ -124,19 +132,21 @@
总额:
- ¥266.00
+ ¥{{ $u.utils.priceTo(newPrice)}}
- 300.00
+ {{$u.utils.priceTo(totalPrice)}}
- 享9.5折,已减271元!
+ 享9.5折,已减{{$u.utils.priceTo(totalPrice - newPrice)}}元!
- 下一步
+ 下一步
-
+
+
+
@@ -180,11 +190,27 @@
showOldDriveModel: false,
form: {
classModel: '',
+ businessType: 0,//业务类型
+ firstLicenceTime: '',//原驾驶证初领日期
+ avatar: '',//上传头像
+ certificateType: 1,//证件类型
+ trainingClassId: '',//班型
+ realName: '',
+ certificateCode: '',
+ sex: '',
+ nationality: '中国',
+ oldDriveModel: '',//原驾驶证车型
+
+ address: '',
+ adaptability: 0,
+
+ businessTypeName: '',
+ sexName: '',
trainingClassLable: '',
- businessType: 0,
- firstLicenceTime: '',
- avatar: [],//上传头像
+ idcardA: '',
+ idcardB: ''
},
+ showSex: false,
info: {},
selectorTrainingClasss: [],//班型数据
selectorDriveModels: [],//车型数据
@@ -192,6 +218,10 @@
{name: '初领', id: 0},
{name: '增领', id: 1}
],
+ sexArr: [
+ {id: 1, lab: '男'},
+ {id: 2, lab: '女'},
+ ],
carTypeArr: [
{lab: '小车',arr: ['C1','C2','C3']},
{lab: '货车',arr: ['A2','B2',]},
@@ -205,15 +235,88 @@
month: true,
day: true,
},
+ trainingApplyId: '',
+ totalPrice: '',
+ newPrice: 0
}
},
- onLoad() {
+ onLoad(options) {
+ this.trainingApplyId = options.trainingApplyId
// totalPrice trainingClassId
- this.createTrainingApplySimpleFn()
this.form.classModel = this.classChooseItem.className
+ this.totalPrice = this.classChooseItem.totalPrice
+ this.newPrice = this.totalPrice * 0.95
+ this.form.trainingClassId = this.classChooseItem.trainingClassId
this.form.trainingClassLable = this.classChooseItem.classModel
+
+ this.InitFn()
+
},
methods: {
+ async InitFn() {
+ await this.getTrainingApplyDetailsFn()
+ this.queryTrainingClasssFn()
+ this.queryDriveModelsFn()
+ },
+ // 确认提交表单还是继续修改
+ async oneBtnConfirm() {
+ this.form.trainingSchoolId = this.info.trainingSchoolId
+ this.form.trainingApplyId = this.trainingApplyId
+ let obj = {}
+ for(let key in this.form) {
+ if(this.form[key]!=='') {
+ obj[key] = this.form[key]
+ }
+ }
+ if(this.form.businessType) {
+ // 如果是增驾——原驾驶证号==身份证
+ obj.driveLicence = obj.certificateCode
+ }
+ delete obj.businessTypeName
+ delete obj.sexName
+ delete obj.trainingClassLable
+
+ console.log(obj)
+ const [nulls, res] = await indexApi.createTrainingApplyDetails(obj)
+ setTimeout(()=>{
+ uni.navigateTo({
+ url: '/pages/application/payment'
+ })
+ },2000)
+ this.$store.commit('upDateCoachItem', {})
+ console.log('表单已提交')
+ console.log(res)
+ if(res.code==0) {
+ this.signContractFn()
+ }
+ },
+ // 获取签约链接
+ async signContractFn() {
+ uni.showLoading({
+ title: '请稍后',
+ mask: true
+ })
+ const [nulls, res] = await indexApi.signContract({trainingApplyId: this.trainingApplyId})
+ console.log('获取签约链接')
+ console.log(res)
+ if(res.code!=0) return this.$u.toast(res.message)
+ // this.showWebView = true
+ // this.webVeiwUrl = res.data.url
+ // console.log(this.webVeiwUrl)
+ uni.hideLoading()
+ this.$store.commit('updateWebVeiwUrl',res.data.url)
+ this.showSignConfirmPopup = false
+ uni.navigateTo({
+ url: 'pages/application/webView?id='+ this.trainingApplyId
+ })
+ },
+ // 选择性别
+ confirmSex(i) {
+ let index = i[0]
+ let item = this.sexArr[index]
+ this.form.sex = item.id
+ this.form.sexName = item.lab
+ },
// 选择原驾驶证学驾车型
pickerCarClick(item) {
let index = this.pickerCarArr.indexOf(item)
@@ -298,18 +401,7 @@
}
}
},
- // 第一步先报名
- async createTrainingApplySimpleFn() {
- let trainingSchoolId = this.$store.state.currentSchool.trainingSchoolId
- let trainingClassId = this.$store.state.classChooseItem.trainingClassId
- const [nulls, res] = await indexApi.createTrainingApplySimple({trainingSchoolId, trainingClassId})
- if(res.code==0) {
- this.trainingOrderId = res.data
- }else if(res.code==502) {
- // 已经报名过这个学校了 存在未支付订单
- this.$u.toast(res.message)
- }
- },
+
//选择图片
chooseImages(type) {
uni.chooseImage({
@@ -322,11 +414,11 @@
title: '图片上传中...'
});
- this.uploadImgApi(res.tempFilePaths[0])
+ this.uploadImgApi(res.tempFilePaths[0],type)
}
})
},
- uploadImgApi(filePath) {
+ uploadImgApi(filePath,type) {
console.log(filePath)
let _this = this
// 上传图片到服务器
@@ -348,7 +440,7 @@
let res2 = JSON.parse(res.data)
console.log(res2)
if(res2.code==0) {
- _this.form.avatar = res2.data
+ _this.form[type] = res2.data
}
uni.hideLoading();
},
diff --git a/pages/application/payment.vue b/pages/application/payment.vue
index 81348fd..e0aca6b 100644
--- a/pages/application/payment.vue
+++ b/pages/application/payment.vue
@@ -1,363 +1,457 @@
-
-
-
-
- ¥ {{ $u.utils.priceTo(info.balance) }}
-
-
- {{ info.schoolName}}
-
-
-
-
-
- 学车类型
- {{ info.trainingModel}}
-
-
- 学车班型
- {{info.trainingClassName}}
-
-
-
-
-
-
-
-
-
-
-
-
- 支付宝支付
-
-
-
-
-
-
-
-
-
-
-
-
-
- 确认支付
-
-
-
-
-
-
-
-
diff --git a/pages/application/registrationPhone.vue b/pages/application/registrationPhone.vue
index e0f4411..6041c1b 100644
--- a/pages/application/registrationPhone.vue
+++ b/pages/application/registrationPhone.vue
@@ -102,7 +102,7 @@
uni.setStorageSync('Authorization', data.data.token);
uni.setStorageSync('studentId', data.data.studentId);
await this.getOwnerAccountBase()
- this.$goPage('/pages/application/fillRegistInfo')
+ this.createTrainingApplySimpleFn()
},
//获取用户信息
@@ -111,6 +111,19 @@
if (data.code != 0) return uni.$u.toast(data.message);
uni.setStorageSync('userInfo', data.data);
},
+ // 第一步先报名
+ async createTrainingApplySimpleFn() {
+ let trainingSchoolId = this.$store.state.currentSchool.trainingSchoolId
+ let trainingClassId = this.$store.state.classChooseItem.trainingClassId
+ const [nulls, res] = await indexApi.createTrainingApplySimple({trainingSchoolId, trainingClassId})
+ if(res.code==0) {
+ this.$goPage('/pages/application/fillRegistInfo?trainingApplyId='+ res.data)
+ }else if(res.code==502) {
+ // 已经报名过这个学校了 存在未支付订单
+ this.$u.toast(res.message)
+ this.$goPage('/pages/application/fillRegistInfo?trainingApplyId='+ res.data)
+ }
+ }
}
}
diff --git a/pages/application/success.vue b/pages/application/success.vue
index 4f4b90b..e8c206c 100644
--- a/pages/application/success.vue
+++ b/pages/application/success.vue
@@ -5,7 +5,7 @@
浙里学车APP
- 立即下载
+ 立即下载
@@ -27,7 +27,7 @@
- 确认支付
+ 立即下载
@@ -51,6 +51,9 @@
console.log(platform)
const [err, res] = await indexApi.getLastVersion({appType, version:'1.0.0'})
console.log(res)
+ },
+ download() {
+ this.$u.toast('需要下载接口')
}
}
}
diff --git a/pages/application/webView.vue b/pages/application/webView.vue
new file mode 100644
index 0000000..adb7e08
--- /dev/null
+++ b/pages/application/webView.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 3386736..852bbc5 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,6 +1,6 @@
-
+
@@ -49,13 +49,14 @@
-
+
-
+
@@ -88,22 +89,34 @@
this.listInit()
this.queryRegionByParentCodeFn()
const latLng = this.$u.utils.getLocation()
- console.log(latLng)
+ this.queryParams.lat = latLng.lat
+ this.queryParams.lng = latLng.lng
+
+ this.$u.utils.appPostMessage("encryption_user_msg_type");
+
+ //Android和iOS获取⽤户信息回调
+ window.arouseNativeMsg = function(data) {
+ if(data) {
+
+ }
+ }
},
onReachBottom() {
- if(this.status=='nomore') return
+ if (this.status == 'nomore') return
this.queryTrainingSchoolListFromAppFn()
},
onPullDownRefresh() {
this.listInit()
- setTimeout(()=>{
+ setTimeout(() => {
uni.stopPullDownRefresh()
- },1500)
+ }, 1500)
},
methods: {
-
+ goApp() {
+ this.$u.utils.appPostMessage("backToApp");
+ },
listInit() {
- this.status=='loadmore'
+ this.status == 'loadmore'
this.queryParams.pageIndex = 1
this.listData = []
this.queryTrainingSchoolListFromAppFn()
@@ -119,22 +132,22 @@
// 获取区域数据
async queryRegionByParentCodeFn() {
const [nulls, res] = await indexApi.queryRegionByParentCode()
- this.region = res.data
+ this.region = res.data
},
// 列表
async queryTrainingSchoolListFromAppFn() {
let obj = {}
- for(let key in this.queryParams) {
- if(this.queryParams[key]) {
+ for (let key in this.queryParams) {
+ if (this.queryParams[key]) {
obj[key] = this.queryParams[key]
}
}
- const [nulls,res] = await indexApi.queryTrainingSchoolListFromApp(obj)
- this.queryParams.pageIndex ++
+ const [nulls, res] = await indexApi.queryTrainingSchoolListFromApp(obj)
+ this.queryParams.pageIndex++
this.listData.push(...res.data)
console.log('驾校列表')
console.log(res.data)
- if(res.data.length
\ No newline at end of file
diff --git a/pages/learnDriveStep/chooseCoach/chooseCoach.vue b/pages/learnDriveStep/chooseCoach/chooseCoach.vue
deleted file mode 100644
index 4ff6918..0000000
--- a/pages/learnDriveStep/chooseCoach/chooseCoach.vue
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{item.coachName}}
- {{item.mobilePhone}}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/confirmClassHour/confirmClassHour.vue b/pages/learnDriveStep/confirmClassHour/confirmClassHour.vue
deleted file mode 100644
index e37f667..0000000
--- a/pages/learnDriveStep/confirmClassHour/confirmClassHour.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/confirmClassHour/signature.vue b/pages/learnDriveStep/confirmClassHour/signature.vue
deleted file mode 100644
index 542685c..0000000
--- a/pages/learnDriveStep/confirmClassHour/signature.vue
+++ /dev/null
@@ -1,228 +0,0 @@
-
-
- 需要您签名确认学时
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/learnDriveStep/learnDriveStep.scss b/pages/learnDriveStep/learnDriveStep.scss
deleted file mode 100644
index 76dbd8b..0000000
--- a/pages/learnDriveStep/learnDriveStep.scss
+++ /dev/null
@@ -1,135 +0,0 @@
-.main {
- width: 100vw;
- display: flex;
- flex-direction: column;
- min-height: 100vh;
- padding-bottom: 160rpx;
- .card {
- background: #fff;
- z-index: 99;
- }
- .step-row {
- display: flex;
- width: 100vw;
- padding: 30rpx;
- background: #fff;
- z-index: 99;
- .step {
- flex-direction: column;
- flex: 1;
- display: flex;
- align-items: center;
- position: relative;
- padding: 4rpx;
-
- .okIcon {
- position: absolute;
- left: 60%;
- top: 0;
- z-index: 9;
- image {
- display: block;
- width: 38rpx;
- height: 38rpx;
- }
- }
- .arrow {
- position: absolute;
- left: 90%;
- top: 40%;
- transform: translateY(-50%);
- image {
- display: block;
- width: 24rpx;
- height: 22rpx;
- }
- }
- .icon {
- padding: 6rpx;
- border-radius: 50%;
- &.active {
- border: 1px solid #1989FA;
- }
- image {
- display: block;
- width: 80rpx;
- height: 80rpx;
- }
- }
-
- .text {
- margin-top: 12rpx;
- font-size: 24rpx;
- color: #333;
- }
- }
- }
- }
- .checkCon {
- padding: 96rpx 30rpx 24rpx 30rpx;
- }
- .btnBg {
- width: 100%;
- height: 128rpx;
- padding: 16rpx 30rpx;
- background: #fff;
- .btn {
- width: 100%;
- height: 96rpx;
- background: linear-gradient(180deg, #3593FB 0%, #53D3E5 100%);
- border-radius: 48rpx;
- font-size: 36rpx;
- color: #fff;
- text-align: center;
- line-height: 96rpx;
- }
- }
- .select_row {
- display: flex;justify-content: flex-end;width: 100%;
- }
-
- .line {
- position: relative;
- &::before {
- content: '';
- height: 20rpx;
- width: 100vw;
- background-color: #f7f7f7;
- position: absolute;
- left: -30rpx;
- bottom: -20rpx;
- }
- }
- .flex1 {
- flex: 1
- }
- .stepBtn_row {
- display: flex;
- padding: 30rpx;
- position: fixed;
- width: 100%;
- bottom: 0;
- left: 0;
- justify-content: space-between;
- background-color: #fff;
- z-index: 9;
- .stepBtn {
- width: 48%;
- height: 96rpx;
- border: 2rpx solid rgba(53, 147, 251, 1);
- color: #1989FA;
- border-radius: 50rpx;
- text-align: center;
- line-height: 96rpx;
- font-size: 36rpx;
- text-align: center;
- &.bg {
- color: #fff;
- border:none;
- }
- &.opacity {
- opacity: 0.5;
- }
- }
- }
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/learnDriveStep.vue b/pages/learnDriveStep/learnDriveStep.vue
deleted file mode 100644
index 73f6015..0000000
--- a/pages/learnDriveStep/learnDriveStep.vue
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{item.text}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 上一步
- 下一步
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/payMoney/payMoney.vue b/pages/learnDriveStep/payMoney/payMoney.vue
deleted file mode 100644
index ed1d202..0000000
--- a/pages/learnDriveStep/payMoney/payMoney.vue
+++ /dev/null
@@ -1,625 +0,0 @@
-
-
-
-
- 驾校
培训费支付
-
- 场地
培训费支付
-
-
-
- 驾校名称
- {{ info.schoolName}}
-
-
- 班型
- {{ info.className }}
-
-
- 学费
- {{ $u.utils.priceTo(schoolPayInfo.price) }}
-
-
- 训练费
- {{ $u.utils.priceTo(info.examinationPrice) }}
-
-
-
-
-
-
-
-
- 请选择支付方式
-
-
-
-
-
-
- 支付宝支付
-
-
-
-
-
-
-
-
-
-
-
-
- 其它付款方式
-
-
-
-
-
-
-
-
-
-
- 微信支付
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 场训时间使用说明:
- 一、您选择的场训时间可抵扣科目二培训学时,在考前学员驾驶有教练员随车施教的教练车,进入考场进行适应性训练:
- 二、选择场训时间的学员可提前预约公安的科目二考试;
- 三、享受优先安排进场考前训练
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/learnDriveStep/payMoney/payMoneySuccess.vue b/pages/learnDriveStep/payMoney/payMoneySuccess.vue
deleted file mode 100644
index 3fecdcf..0000000
--- a/pages/learnDriveStep/payMoney/payMoneySuccess.vue
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
- 缴费完成
- 恭喜您成为我校正式学员
-
- 推广
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/realName/realName.vue b/pages/learnDriveStep/realName/realName.vue
deleted file mode 100644
index 44e75e1..0000000
--- a/pages/learnDriveStep/realName/realName.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- 报名驾校前
-
-
- 请按提示完成实名认证
-
-
-
-
-
- 手持身份证准备拍摄,并保持光线充足和网络良好
-
-
- 点击开始实名认证
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/step/step0.vue b/pages/learnDriveStep/step/step0.vue
deleted file mode 100644
index a353632..0000000
--- a/pages/learnDriveStep/step/step0.vue
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
- 预报名信息
-
-
-
-
- 驾校名称
-
-
- {{info.schoolName}}
-
-
-
-
-
- 班型
-
-
- {{$store.state.classChooseItem.className}}
-
-
-
-
-
-
-
-
-
-
-
- 查看地图
-
-
-
-
-
-
-
-
- 联系我们
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/step/step1.vue b/pages/learnDriveStep/step/step1.vue
deleted file mode 100644
index 5cde55d..0000000
--- a/pages/learnDriveStep/step/step1.vue
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- {{item.hospitalName}}
-
-
- 距离{{item.distance||0}}km
-
-
-
-
- {{item.address}}
-
-
- 拨打电话
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/learnDriveStep/step/step2.vue b/pages/learnDriveStep/step/step2.vue
deleted file mode 100644
index a338ff1..0000000
--- a/pages/learnDriveStep/step/step2.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
- 关于面签
-
-
- 未面签
-
-
-
-
- 请等待驾校联系您进行面签
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/step/step3.vue b/pages/learnDriveStep/step/step3.vue
deleted file mode 100644
index 8791898..0000000
--- a/pages/learnDriveStep/step/step3.vue
+++ /dev/null
@@ -1,524 +0,0 @@
-
-
-
-
-
-
- {{info.schoolName}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 85元/小时
-
-
-
-
-
-
-
-
-
-
-
-
- ¥{{ $u.utils.priceTo(totalPrice) }}
-
-
-
-
- {{form.realName}}
-
-
-
- {{form.sex==2?'女':'男'}}
-
-
- 中国
-
-
- 身份证
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 我承诺已完成且通过报考驾驶培训所需体检流程
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 学驾车型
-
- {{item.lab}}
-
- {{item2}}
-
-
-
- 重置
- 完成
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/learnDriveStep/step/step3formValidation.vue b/pages/learnDriveStep/step/step3formValidation.vue
deleted file mode 100644
index 8580bf3..0000000
--- a/pages/learnDriveStep/step/step3formValidation.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
- 您的报名信息如下:请确定无误后提交
-
-
-
- 真实姓名
- {{info.realName}}
-
-
- 报名驾校
- {{schoolName}}
-
-
- 班型
- {{info.trainingClassLable}}
-
-
- 考场训练时长
- {{info.timeName}}
-
-
- 性别
- {{info.sex==2?'女':'男'}}
-
-
- 证件类型
- 身份证
-
-
- 证件号码
- {{info.certificateCodeShow}}
-
-
- 业务类型
- {{info.businessTypeName}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/step/step4.vue b/pages/learnDriveStep/step/step4.vue
deleted file mode 100644
index bbc45f3..0000000
--- a/pages/learnDriveStep/step/step4.vue
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
-
- 您的学费将由第三方银行资金监管账户进行资金监管,学车过程中提供详细的扣费明细记录,请放心学车。
- 请认谁正规渠道报名学车,谨慎在其它网络平台报名缴费,以免造成损失!
-
-
-
-
- 班型名称
-
-
- {{info.schoolName}}
-
-
-
-
-
- 班型学费
-
-
- ¥{{$u.utils.priceTo(info.price)}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/learnDriveStep/webView/webView - 副本 (2).vue b/pages/learnDriveStep/webView/webView - 副本 (2).vue
deleted file mode 100644
index 3efebec..0000000
--- a/pages/learnDriveStep/webView/webView - 副本 (2).vue
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/learnDriveStep/webView/webView.vue b/pages/learnDriveStep/webView/webView.vue
deleted file mode 100644
index adb7e08..0000000
--- a/pages/learnDriveStep/webView/webView.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/schoolDetails/details.vue b/pages/schoolDetails/details.vue
index 1f0a95b..62234e8 100644
--- a/pages/schoolDetails/details.vue
+++ b/pages/schoolDetails/details.vue
@@ -240,7 +240,7 @@
}
.rightCon {
- width: 96rpx;
+ min-width: 96rpx;
text-align: center;
margin-right: 32rpx;
diff --git a/static/images/avatar.png b/static/images/avatar.png
new file mode 100644
index 0000000000000000000000000000000000000000..248c61298d3d4b11df7c90ed92be41122456b804
GIT binary patch
literal 5562
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
Vu}2~9l7Gg6bTkc-73%hp{|AnyXZQdB
literal 0
HcmV?d00001
diff --git a/static/images/jiaofei_wxIphone@2x.png b/static/images/jiaofei_wxIphone@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf648d30c7d59359680696a9e3b84f0794e84bf6
GIT binary patch
literal 1909
zcmV-*2a5QKP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@
z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NI-$_J4RA>d&T5D_+RTMtw&TO{}
zTTx0V5{wuhF;-D5EfjpTRG>n^H&LP@CMt=Ks6>gPrtybAjPaK*^oLKBpd`prp#@JE@D!CjJT`@i2pB24@TF>e(uOIuQ{Ei{*0gNw~$>dNtFM~aJAq2FaBhBAmR
zAZA6&4|VOmd+Xf2-O5GhQ?Sz
zX4YCoG_$F4losnr0Js;tqG5Sp+~&{<^d?ptweGod{dGHj
z4J*{Ee|=)&6-d|K#iAPP)$T_#3WW7SqJ)-p{F=G8P~Z)?b+g;HxSY9~S-$iG>qif%
zfF#zX+U{z`4{cNN96FMs!yRLah6`rm72U&G&Lf&l9E2#BxD(#jdhsxlX4Wo3GpcLk{qa
zHD#+%u8f0%eO`GLKoal|rJZ$NT&AzCYOriIOLuiHX`cJt0k1xWR=2vc(jxT`3pD`L
z>8NW>S!mLY9i-hSy4!|)nrv)6A(ptB)<%l>8J+1{gZv6G@9OBFLtfwzNq3ROD|**I%WQ0p=Jn360JDF7gQE>6k$Krt_D%2@
zV}$kVu(+#OTiMl}n|*8}{Ov+D{&>r*FPh*c^E%1yXqPUb;XS?itQYnyEl406f}U9;
zdU0_&;;m@ja-NRxi5C%$id%j_=_LBN}_@#ydf_R5H(e0)9}6XerD
zTp3fdX{>Lem0XZaiQ_CqiJh}|mJ?2*Otk(m!|6-cH*9+@S^JacGV~Ekj_Zzq2Q2k#
z&(ZTPA#tQUrq4j#><{3umHK3;4BZdwmf?2b*SBkjmu$Gcbwf^2*taE&z;=R7JXz$O
z0eG3X&P1v_NB0u9G<@?HR`t_ZuODlX1?i!&DFXq2%L
zt0GZhJko!9Oc{4G-SP2ss12Dv+dgS|82b
zYZ_~8Yuw>spWd+T00LQ`(FakzIMP*i6*w(IHd||wJ%B&LxF65Z$0|o;NJn!+o2gv|
zHNiP3|6Woe^+5hTXl?AuP6WU`T1%G_t;Dv5v8D?EcmmECC&S_;P_zH2dliMe&Hb7I
zjNe)DdWBuO#+s*;dI274L@%Cl04o=h(%~|x9o%|0q0CN8_JOwSJKJTzkNzpZeE!I@
zi`JqjsWWAv=T$(Ep8R`>{Zl}w45eOKUyM&yTR*(e$$}P4j`8a!X|jU>3e^k9&Cd`W
zp#}}6&MbeJld#VR6Q(d&n02elXkI#Sj~qs9f%+=?n{55Q+K7LgKncG5R8qp67LwLW
zn(NztQ|7ce72CG}@#ZBc;pf#0WVQmZv0!(@=Z1jWQW{0Mh3
vzQzk6t}rZ&pTvem2;asL_dR3z9OHihJrI4^GSnUQ00000NkvXXu0mjf()5o7
literal 0
HcmV?d00001
diff --git a/static/images/third_icon_gengduoIphone@2x.png b/static/images/third_icon_gengduoIphone@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..defcd9f5ac635f9d8437e01da9068f65404d1386
GIT binary patch
literal 3750
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
Q@c;k-07*qoM6N<$f`f@EJ^%m!
literal 0
HcmV?d00001
diff --git a/static/images/third_img_tuijianIphone@2x.png b/static/images/third_img_tuijianIphone@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbb597160b161453c4791af9ce25e2f8cef8521b
GIT binary patch
literal 2763
zcmV;+3N-bJP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@
z1ONa40RR91K%fHv1ONa40RR91A^-pY0Hvd5od5s|HAzH4RA>dYSbL0B#Toz2xr#wGCoDYhnIJ2jjj-`
zcpzivf$0cYU>-X=6rdFpd04uzucdvOv=#&%#*}5f%dgM@1)pl-qUWKVdhL7emjq=q
zYNE!AOxOqn;8I|{@aV$63j3s@t3rN7HUSD$_ST@-b;-yOJO>@nbi`2?n8z18LKeKx
zGv+b`D_Mdr`byeIZ6*OahjQ_!-LDuB`~FxIl%fm&<9>a;{#f*upcA<~lK=!FRphH}
zq!O@{zJm%wEILMsj^Ksej@&h{pADDGrPPxnNBLo?=?%bl9|5}eNZ>7x_@T|&pgIBeI@i{;xZy+J<&)uR%H83qlY#}
z_n>kJRLxZ2#*U6Ae01poJn#@OjgrJp-E-0Zf^i
zwIh7ufiTX#(7mtl*|ylvECJdB$S3xMK+!whb0h;Xir7%HjhzUU%OU*ZOC|xw{|3DC
zHZZXcYR!*=Y;t0;Kgl;CB%dv+Qc8|Y2TffAsbe*?V#E@|q3;761U
zY44o?j@twGeKLy14=&?f3yDhG~54NOQ^e=*&0Ps1p`|Bl|>z
zzIN)m_o8YW3Vr${CC^l#0Xa!4BU7DFapA1f)gWkhI-+z^f+W7iTIZP!K=
z1xY)7(0?%Wt{uSPH=@c=lcqrp9u~_DprlY!HPeA1pEdM+9(v1qcgW!4dFaO)6B!{G
zSJv`%(FUrY{62IlK}JoxZ#jtsC~>lSSAN2zuf(6gCAg*=&nO*YRg<9KISRe?X{d2@
zDWRsu-EM&1TTQql)_<{$WY&9#wEbYggHX3rB7FIm(8u;c^&bR`9Gj6z5jX%&?lx~z
zOo7axEcfi5hYRznxY(Mc;#}Zt5!B$ivn7i2NE!EMjEzsLbBtQbB
z7|K{dZZjp}9!`R4G71G@MlRZZ1EGdjLyf4WGPmVT7nE@0O6a}6BL_*N4M?ADp}PUC
zS#BKYc}fmS($~L+uJVy5f!Z@4KNeY>MQ~^THZQT8E{!5>0lCl5Q+cqFP`(NO|E~vR*gPL@g
zF(S@!0M=G8Z9a6h*$;S%RqxM4>eTcFz=S)EYN{T+;Stm4H(`QB%b}>!!o#$DP8@-{
zV}9C3jCPfyrp`rBI~#>fbjN7^RTeK5RwNIp1h8%`Ws@`{{oijfJyv9u$tl2$h$Oq?
zz!6Y7G|qtdi8Q32S*gsUHdJ{Yf6
zRXYc{IrL*_)lxdj_QpyR_QI`ep$_dPzS%tG|BuK;{jGSqO}dW4*W
zs9EO{s7wV!)9B+Q@+4jQ{7nSmoc8Fcgo&&;B4b^k6M}-b`jiOqxAim%P4h$|^;MH*
zBB-Gy@Kh7Y)O6y9GEQXg%a@mNnh#pJCi6MN>*Prkx
z5;1%y6X~SnoIDXLkQD?
zV$`U~^e0AtMwsPNVb|&CDL_BE%t$-+9`yd5W+ZlmXZ1#jV7*qiu-(_v&3@#lr3J(e
z$z>B@_Nt^7*H^>npPt*sL=mas6U;Gn{!CnAtk^mejH`EY$xbkSMskSo;Gdum>@>7w
zBAH@!MHQCxi|nu;nvXiVW2oDzjC@G{G_j1x8ERZ9KArfP1h}$eJ;`cdWu!m?&}|*i>rE?b$mS@+ojH@`*LEZ6y2AX
zv5z-&`W@SvNdTRh{2%g6fka=Cmnkmku#w8XouFZfJ^>0_=rR^NrRXBx?$;?y+gE7L
zB%my(8uJ=8G|OGv)thmwU5WoM;419X?6;IDG