|
@@ -66,7 +66,7 @@ Page({
|
|
|
markers: [],
|
|
|
polygons: [],
|
|
|
polygons1: [],
|
|
|
- zoom: 18,
|
|
|
+ zoom: 12,
|
|
|
temporaryTime: '', //临时锁车时间
|
|
|
background: false, //位置权限弹框
|
|
|
location: false, //位置权限弹框
|
|
@@ -83,15 +83,33 @@ Page({
|
|
|
load_num: 0, //超出区域弹窗提示弹出次数控制控制弹窗弹出次数
|
|
|
isUseTK: app.globalData.isUseTK, //是否使用头盔
|
|
|
ifKnowUseTK: true, //是否已点击使用头盔
|
|
|
+ is_dev: true, //是否为开发环境是的话隐藏购卡充值
|
|
|
+ localSearchStop: app.globalData.localSearchStop, //是否开启使用当前位置查询还车点
|
|
|
+ bikeMarker: [], //当前车辆位置的mark
|
|
|
+ isUseLinTing: app.globalData.isUseLinTing, //是否使用临时停车
|
|
|
+ TKfuwei: true, //头盔是否复位
|
|
|
+ TKtipsProp: false, //头盔是否在位提示框
|
|
|
+ start_use_bike_time: 0, //开始用车的时间
|
|
|
+ noShowRefOpenLock: false,//隐藏为开锁按钮,false不隐藏
|
|
|
},
|
|
|
+
|
|
|
onShow: function () {
|
|
|
let isLearn = my.getStorageSync({
|
|
|
'key': 'videoLearn'
|
|
|
}).data
|
|
|
+ let is_dev = my.getStorageSync({
|
|
|
+ 'key': 'userInfo'
|
|
|
+ }).data
|
|
|
+ let home = my.setStorageSync({
|
|
|
+ 'key': 'home'
|
|
|
+ }).data
|
|
|
let that = this
|
|
|
that.setData({
|
|
|
polygons1: [],
|
|
|
- polygons: []
|
|
|
+ polygons: [],
|
|
|
+ is_dev: is_dev ? is_dev.is_dev : true,
|
|
|
+ markers: [],
|
|
|
+ zoom: home &&home.zoom ? home.zoom : 12
|
|
|
})
|
|
|
my.setNavigationBar({
|
|
|
title: app.globalData.title
|
|
@@ -169,9 +187,13 @@ Page({
|
|
|
},
|
|
|
onLoad: function (options) {
|
|
|
let that = this
|
|
|
-
|
|
|
- if (app.globalData.scanCode) {
|
|
|
-
|
|
|
+ console.log(options!=={},!app.globalData.scanCode)
|
|
|
+
|
|
|
+ if(options.code){
|
|
|
+ that.setData({
|
|
|
+ code: options.code
|
|
|
+ })
|
|
|
+ }else if (app.globalData.scanCode) {
|
|
|
that.setData({
|
|
|
code: app.globalData.scanCode
|
|
|
})
|
|
@@ -179,9 +201,9 @@ Page({
|
|
|
that.setData({
|
|
|
order: options.order,
|
|
|
})
|
|
|
- } else {
|
|
|
- that.setData({
|
|
|
- code: options.code
|
|
|
+ }else if(options!=={} && !app.globalData.scanCode){
|
|
|
+ my.reLaunch({
|
|
|
+ url:'/pages/index/index'
|
|
|
})
|
|
|
}
|
|
|
},
|
|
@@ -454,17 +476,24 @@ Page({
|
|
|
if (res.status == 200) {
|
|
|
var data = res.data;
|
|
|
that.setData({
|
|
|
- area_id: res.data.id
|
|
|
+ area_id: res.data.id,
|
|
|
+ zoom: data.zoom ? data.zoom : 12,
|
|
|
+ polygons: that.data.polygons.concat(data),
|
|
|
})
|
|
|
- let area_id = res.data.id
|
|
|
- that.ban_stop(area_id)
|
|
|
- that.getNotice(area_id)
|
|
|
- that.adsList(area_id)
|
|
|
- console.log(data, '区域')
|
|
|
my.setStorageSync({
|
|
|
'key': 'home',
|
|
|
data: data
|
|
|
});
|
|
|
+ let area_id = res.data.id
|
|
|
+ //原获取全部还车点接口
|
|
|
+ if (that.data.localSearchStop == false) that.ban_stop(area_id)
|
|
|
+ //根据位置请求区域
|
|
|
+ if (that.data.localSearchStop == true) that.searchStopArea(that.data.longitude, that.data.latitude)
|
|
|
+
|
|
|
+ that.getNotice(area_id)
|
|
|
+ that.adsList(area_id)
|
|
|
+ console.log(data, '区域')
|
|
|
+
|
|
|
|
|
|
}
|
|
|
console.log(data, 'tdada')
|
|
@@ -488,7 +517,35 @@ Page({
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
+ regionchange: function (e) {
|
|
|
+ if (this.data.localSearchStop == false) return
|
|
|
+ if (e.type == 'end') {
|
|
|
+ this.searchStopArea(e.longitude, e.latitude)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //添加定位点,并展示周围还车点
|
|
|
+ searchStopArea: function (longitude, latitude) {
|
|
|
+ let home = my.getStorageSync({
|
|
|
+ 'key': 'home'
|
|
|
+ }).data
|
|
|
+ if (!home || !home.id) return
|
|
|
+ let params = {
|
|
|
+ 'lat': latitude,
|
|
|
+ 'lng': longitude,
|
|
|
+ 'area_id':home.id,
|
|
|
+ }
|
|
|
+ console.log(this.data.polygons)
|
|
|
+ app.request('/parking/nearby-all', params, 'GET').then(res => {
|
|
|
+ console.log('根据位置获取区域', res)
|
|
|
+ let arr = [home]
|
|
|
+ this.setData({
|
|
|
+ markers: this.data.bikeMarker.concat(res.data.points),
|
|
|
+ polygons: arr.concat(res.data.polygons),
|
|
|
+ centerLat:latitude,
|
|
|
+ centerLon:longitude
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
//停车区域
|
|
|
ban_stop: function (area_id) {
|
|
@@ -548,6 +605,7 @@ Page({
|
|
|
load_num: that.data.load_num + 1
|
|
|
})
|
|
|
}
|
|
|
+ this.data.start_use_bike_time = res.data.start_use_bike_time
|
|
|
if (res.data.is_out_area == true && that.data.load_num == 1) {
|
|
|
my.showModal({
|
|
|
title: '提示',
|
|
@@ -579,49 +637,7 @@ Page({
|
|
|
minute: 0
|
|
|
})
|
|
|
} else {
|
|
|
- let cha = date - res.data.start_use_bike_time
|
|
|
- let setting = my.getStorageSync({
|
|
|
- 'key': 'setting'
|
|
|
- }).data;
|
|
|
- var time = parseInt(cha / 60) - setting.starting_price_time;
|
|
|
- var per_money = setting.per_money;
|
|
|
- var per_minute = setting.per_minute;
|
|
|
- // console.log('测试1',times)
|
|
|
- //页面进来时初始化金额
|
|
|
-
|
|
|
- // let money = parseFloat(parseFloat(time / per_minute * per_money + parseFloat(setting.starting_price)).toFixed(2));
|
|
|
- let money = parseInt(time / per_minute) * per_money + parseFloat(setting.starting_price)
|
|
|
-
|
|
|
- var hour = Math.floor(cha / 3600 % 24);
|
|
|
- // 分钟
|
|
|
- var minute = Math.floor(cha / 60 % 60);
|
|
|
- // let hour = parseInt(cha / 3600)
|
|
|
- console.log(hour, 'hour')
|
|
|
- console.log(minute, 'hour')
|
|
|
- hour = hour < 10 ? '0' + hour : hour
|
|
|
- minute = minute < 10 && hour > 0 ? '0' + minute : minute
|
|
|
- if (hour > 0) {
|
|
|
- // let minute=
|
|
|
-
|
|
|
- that.setData({
|
|
|
- minute: date - res.data.start_use_bike_time,
|
|
|
- times: hour + ":" + minute,
|
|
|
- estimate_money: money,
|
|
|
- isHour: true
|
|
|
- })
|
|
|
- } else {
|
|
|
- // let minute = parseInt(cha / 60)
|
|
|
- that.setData({
|
|
|
- minute: date - res.data.start_use_bike_time,
|
|
|
- times: minute,
|
|
|
- estimate_money: money,
|
|
|
- isHour: false
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // that.setData({
|
|
|
- // minute: date - res.data.start_use_bike_time
|
|
|
- // })
|
|
|
+ that.countBikeMoney()
|
|
|
}
|
|
|
that.terval()
|
|
|
my.showToast({
|
|
@@ -696,12 +712,50 @@ Page({
|
|
|
url: '../index/index',
|
|
|
})
|
|
|
}
|
|
|
- // that.bikeLocation();
|
|
|
+ that.bikeLocation();
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
console.log(err)
|
|
|
})
|
|
|
},
|
|
|
+ //获取车辆位置信息
|
|
|
+ bikeLocation: function (type) {
|
|
|
+ var that = this;
|
|
|
+ var data = {
|
|
|
+ bike_no: that.data.code
|
|
|
+ }
|
|
|
+ app.request('/order/orderBikePosition', data, 'GET').then(res => {
|
|
|
+ if (res.statusCode == 200) {
|
|
|
+ if (type == 'getPosition') {
|
|
|
+ this.data.markers.map((item, index) => {
|
|
|
+ if (item.id == 12345) {
|
|
|
+ this.setData({
|
|
|
+ ['markers[' + index + '].longitude']: res.data.lng,
|
|
|
+ ['markers[' + index + '].latitude']: res.data.lat
|
|
|
+ })
|
|
|
+ this.data.bikeMarker[0].latitude = res.data.lat
|
|
|
+ this.data.bikeMarker[0].longitude = res.data.lng
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ var array = {}
|
|
|
+ array.iconPath = '/img/dianche.png';
|
|
|
+ array.width = 28;
|
|
|
+ array.height = 28;
|
|
|
+ array.zIndex = 1111;
|
|
|
+ array.id = 12345;
|
|
|
+ array.latitude = res.data.lat;
|
|
|
+ array.longitude = res.data.lng;
|
|
|
+ this.setData({
|
|
|
+ markers:this.data.markers.concat(array)
|
|
|
+ })
|
|
|
+ this.data.bikeMarker = [array]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
//获取当前位置
|
|
|
posiLoca: function () {
|
|
|
var that = this;
|
|
@@ -784,94 +838,72 @@ Page({
|
|
|
var that = this;
|
|
|
clearInterval(interval)
|
|
|
clearInterval(huancheTime)
|
|
|
- var times = ''; //秒数
|
|
|
- var minute = Math.round(that.data.minute / 60); //分钟
|
|
|
- var minute1 = '0'; //分钟
|
|
|
- var hour = 0; //小时
|
|
|
- var hour1 = '0'; //小时
|
|
|
- var time = that.data.minute //获取当前已骑行的秒数
|
|
|
- var setting = my.getStorageSync({
|
|
|
- 'key': 'setting'
|
|
|
- }).data;
|
|
|
-
|
|
|
- if (time > 60) { //秒数大于60 分钟= 秒数/60 秒数= -1*60 40
|
|
|
- minute = parseInt(time / 60);
|
|
|
- times = time - minute * 60;
|
|
|
- //minute代表分钟 times 代表秒数
|
|
|
- } else {
|
|
|
- minute = parseInt(time / 60);
|
|
|
- times = time;
|
|
|
- }
|
|
|
+
|
|
|
interval = setInterval(function () {
|
|
|
- //定时器 秒数一秒加1
|
|
|
- minute++
|
|
|
- if (minute < 10 && hour > 0) { //如果分钟小于10 加一个0
|
|
|
- minute1 = '0' + minute
|
|
|
- } else {
|
|
|
- minute1 = minute
|
|
|
- }
|
|
|
- if (minute > 59) {
|
|
|
- //分钟大于59 让小时+1
|
|
|
- hour = parseInt(minute / 60)
|
|
|
- minute1 = minute - hour * 60;
|
|
|
- if (hour < 10) {
|
|
|
- hour1 = '0' + hour;
|
|
|
- } else {
|
|
|
- hour1 = hour
|
|
|
- }
|
|
|
- }
|
|
|
- if (minute1 < 10 && hour > 0) { //如果分钟小于10 加一个0
|
|
|
- minute1 = '0' + minute1
|
|
|
- } else {
|
|
|
- minute1 = minute1
|
|
|
- }
|
|
|
- if (hour > 0) {
|
|
|
- // //如果小时大于0 显示 时分
|
|
|
- that.setData({
|
|
|
- times: hour1 + ':' + minute1,
|
|
|
- isHour: true
|
|
|
- })
|
|
|
- } else {
|
|
|
- // //else 显示 分秒
|
|
|
- that.setData({
|
|
|
- times: minute1,
|
|
|
- isHour: false
|
|
|
- })
|
|
|
- }
|
|
|
- // that.setData({ times: minute1 + ':' + times})
|
|
|
- //计算钱 分钟除以5*5 判断秒数>30 minute = minute+1
|
|
|
- //不满12分钟按12分钟算 并且大于30秒
|
|
|
- var per_money = setting.per_money;
|
|
|
- var per_minute = setting.per_minute;
|
|
|
- // console.log(minute)
|
|
|
- // console.log(minute1)
|
|
|
- if (setting.starting_price_time > minute) {
|
|
|
- that.setData({
|
|
|
- estimate_money: setting.starting_price
|
|
|
- })
|
|
|
- } else {
|
|
|
-
|
|
|
- //起步价+(分钟数-起步时长)/ 一块钱可骑多少分钟 * 钱数
|
|
|
- var time = minute - setting.starting_price_time;
|
|
|
- // console.log('测试1',times)
|
|
|
- //页面进来时初始化金额
|
|
|
-
|
|
|
- // let money = Math.round(time / per_minute) * per_money + parseFloat(setting.starting_price)
|
|
|
- let money = parseInt(time / per_minute) * per_money + parseFloat(setting.starting_price)
|
|
|
- that.setData({
|
|
|
- estimate_money: money,
|
|
|
- onload: true
|
|
|
- })
|
|
|
- }
|
|
|
- }, 60000)
|
|
|
+ that.countBikeMoney()
|
|
|
+ }, 5000)
|
|
|
},
|
|
|
+//计算骑行费用
|
|
|
+countBikeMoney: function () {
|
|
|
+ var that = this
|
|
|
+ var setting = my.getStorageSync({
|
|
|
+ 'key': 'setting'
|
|
|
+ }).data;
|
|
|
+ var total_minute = this.data.minute
|
|
|
+ console.log("this.data.start_use_bike_time",this.data.start_use_bike_time)
|
|
|
+ let cha = (new Date()).getTime() / 1000 - this.data.start_use_bike_time
|
|
|
+ var time = 0
|
|
|
+ var _minute = Math.ceil(cha / 60); //分钟
|
|
|
+ console.log('骑行总时长分钟', _minute, cha, total_minute, setting.starting_price_time)
|
|
|
+ if (_minute == total_minute) return 0; //分钟相等
|
|
|
+ if (_minute === 0) {
|
|
|
+ time = _minute + 1 - setting.starting_price_time;
|
|
|
+ } else {
|
|
|
+ time = _minute - setting.starting_price_time;
|
|
|
+ }
|
|
|
+ var per_money = setting.per_money;
|
|
|
+ var per_minute = setting.per_minute;
|
|
|
+ // 向上取整
|
|
|
+ let money = 0
|
|
|
+ if (time <= 0) {
|
|
|
+ money = parseFloat(setting.starting_price)
|
|
|
+ } else {
|
|
|
+ money = Math.ceil(time / per_minute) * per_money + parseFloat(setting.starting_price)
|
|
|
+ }
|
|
|
+ //将全部分钟分开为小时+分钟用于显示时间
|
|
|
+ var hour = Math.floor(_minute / 60);
|
|
|
+ var minute = Math.floor(_minute % 60);
|
|
|
+ money = money.toFixed(2)
|
|
|
+ hour = hour < 10 ? '0' + hour : hour
|
|
|
+ minute = minute < 10 && hour > 0 ? '0' + minute : minute
|
|
|
+ if (app.globalData.noShowRefOpenLock == true && that.data.noShowRefOpenLock == false && minute >= 3) {
|
|
|
+ that.setData({
|
|
|
+ noShowRefOpenLock: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (hour > 0) {
|
|
|
+ that.setData({
|
|
|
+ minute: _minute, // 骑行总分钟
|
|
|
+ times: hour + ":" + minute,
|
|
|
+ estimate_money: money,
|
|
|
+ isHour: true
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ that.setData({
|
|
|
+ minute: _minute,
|
|
|
+ times: minute,
|
|
|
+ estimate_money: money,
|
|
|
+ isHour: false
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
+},
|
|
|
//获取车辆信息
|
|
|
getBikeMessage: function () {
|
|
|
my.showLoading()
|
|
|
var that = this;
|
|
|
app.request('/bike/' + that.data.code, '', 'GET').then(res => {
|
|
|
- console.log(res, '车辆信息--------------------')
|
|
|
+
|
|
|
machineNO = res.data.box_no
|
|
|
my.hideLoading()
|
|
|
if (res.status == 200) {
|
|
@@ -1037,6 +1069,9 @@ Page({
|
|
|
//开锁方法
|
|
|
openBike() {
|
|
|
var that = this;
|
|
|
+ var setting = my.getStorageSync({
|
|
|
+ 'key': 'setting'
|
|
|
+ }).data;
|
|
|
my.showLoading({
|
|
|
content: '开锁中...',
|
|
|
mask: true
|
|
@@ -1054,7 +1089,10 @@ Page({
|
|
|
if (res.status == 200) {
|
|
|
that.setData({
|
|
|
steps: 3,
|
|
|
- order: res.data.no
|
|
|
+ order: res.data.no,
|
|
|
+ ifKnowUseTK: false,
|
|
|
+ estimate_money: parseFloat(setting.starting_price),
|
|
|
+ start_use_bike_time: res.data.start_use_bike_timestamp
|
|
|
})
|
|
|
that.terval()
|
|
|
//蓝牙开锁
|
|
@@ -1332,6 +1370,7 @@ Page({
|
|
|
},
|
|
|
endUseBike: function () {
|
|
|
let that = this
|
|
|
+ this.data.TKfuwei = true
|
|
|
my.showLoading({
|
|
|
content: '加载中...'
|
|
|
})
|
|
@@ -1351,14 +1390,10 @@ Page({
|
|
|
let data1 = parseFloat(data)
|
|
|
|
|
|
if (res.data.is_app_check_helmet_status == true && res.data.helmet_status == 1) {
|
|
|
- my.showModal({
|
|
|
- title: '提示',
|
|
|
- content: '头盔未放好!请将头盔放置在头盔卡槽后重新结束用车',
|
|
|
- confirmText: '我知道了',
|
|
|
- showCancel: false,
|
|
|
- complete: (res) => {
|
|
|
-
|
|
|
- }
|
|
|
+ this.setData({
|
|
|
+ TKtipsProp: true,
|
|
|
+ dispatch_money: data1,
|
|
|
+ money: res.data,
|
|
|
})
|
|
|
} else {
|
|
|
that.setData({
|
|
@@ -1368,9 +1403,28 @@ Page({
|
|
|
parkStatus: 2
|
|
|
})
|
|
|
}
|
|
|
+ }else{
|
|
|
+ my.hideLoading()
|
|
|
}
|
|
|
+ }).catch(res => {
|
|
|
+ my.hideLoading()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //继续还车
|
|
|
+ continueHuanche: function () {
|
|
|
+ this.data.TKfuwei = false
|
|
|
+ this.setData({
|
|
|
+ chaButton: 1,
|
|
|
+ parkStatus: 2,
|
|
|
+ TKtipsProp: false,
|
|
|
})
|
|
|
},
|
|
|
+ //我知道了
|
|
|
+ tkKnow: function () {
|
|
|
+ this.setData({
|
|
|
+ TKtipsProp: false,
|
|
|
+ })
|
|
|
+ },
|
|
|
//确定结束用车
|
|
|
sureEndUseBike: util.throttle(function () {
|
|
|
|
|
@@ -1396,6 +1450,7 @@ Page({
|
|
|
lat: that.data.latitude,
|
|
|
lng: that.data.longitude
|
|
|
}
|
|
|
+ if (this.data.TKfuwei == false) data.forceCloseBike = true
|
|
|
app.request('/bike/close-lock', data, 'POST').then(res => {
|
|
|
console.log(res)
|
|
|
my.hideLoading()
|
|
@@ -1512,14 +1567,11 @@ Page({
|
|
|
},
|
|
|
//客服
|
|
|
keFu: function () {
|
|
|
- console.log('点击联系客服', my.getStorageSync({
|
|
|
- 'key': 'home'
|
|
|
- }).data.customer_service_phone)
|
|
|
let phone = my.getStorageSync({
|
|
|
'key': 'home'
|
|
|
- }).data.customer_service_phone
|
|
|
+ })
|
|
|
my.makePhoneCall({
|
|
|
- number: phone || '13203706613'
|
|
|
+ number: phone.data.customer_service_phone || '13203706613'
|
|
|
})
|
|
|
},
|
|
|
//车辆为未开锁弹框
|
|
@@ -1594,10 +1646,54 @@ Page({
|
|
|
})
|
|
|
},
|
|
|
//将地图将当前位置展示在屏幕中央,防止用户滑动查看停车区时频繁定位中心点
|
|
|
- getPosition: function () {
|
|
|
- this.setData({
|
|
|
- centerLon: this.data.longitude,
|
|
|
- centerLat: this.data.latitude,
|
|
|
+ // getPosition: function () {
|
|
|
+ // this.setData({
|
|
|
+ // centerLon: this.data.longitude,
|
|
|
+ // centerLat: this.data.latitude,
|
|
|
+ // })
|
|
|
+ // this.mapCtx.moveToLocation();
|
|
|
+ // this.bikeLocation('getPosition');
|
|
|
+ // },
|
|
|
+ getPosition:util.throttle(function () {
|
|
|
+ //点击定位
|
|
|
+ //这是一段注
|
|
|
+ var that = this;
|
|
|
+ my.showLoading({
|
|
|
+ content: '定位中'
|
|
|
})
|
|
|
- },
|
|
|
+ my.getLocation({
|
|
|
+ type: 'gcj02',
|
|
|
+ success: (res) => {
|
|
|
+ console.log('经纬度为:+++++++++++++++++++++' + res.latitude + '++++++++' + res.longitude)
|
|
|
+ my.hideLoading()
|
|
|
+ that.setData({
|
|
|
+ centerLon: res.longitude,
|
|
|
+ centerLat: res.latitude
|
|
|
+ })
|
|
|
+ this.bikeLocation('getPosition');
|
|
|
+ },
|
|
|
+ fail: function (err) {
|
|
|
+ console.log(err, '用户授权失败')
|
|
|
+ if (err.error == 11) {
|
|
|
+ my.showAuthGuide({
|
|
|
+ authType: 'LBS',
|
|
|
+ success: (res) => {
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: (error) => {
|
|
|
+ my.alert({
|
|
|
+ content: '获取位置授权失败'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ my.hideLoading()
|
|
|
+ my.showToast({
|
|
|
+ content: '定位失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }, 1000),
|
|
|
})
|