From e9af167156ca9d1b404a76ab0fc8c82c26fe6a11 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 31 十月 2023 11:37:07 +0800
Subject: [PATCH] MrShi
---
bicycle/pages/index/index.vue | 265 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 187 insertions(+), 78 deletions(-)
diff --git a/bicycle/pages/index/index.vue b/bicycle/pages/index/index.vue
index cef1f8d..0e3c300 100644
--- a/bicycle/pages/index/index.vue
+++ b/bicycle/pages/index/index.vue
@@ -3,13 +3,16 @@
<view class="index_nav"
:style="{ height: 'calc(' + (statusbarHeight + navHeight) + 'px' + ' + ' + '224rpx' + ')' }">
<view class="index_nav_a" :style="{ height: statusbarHeight + 'px' }"></view>
- <view class="index_nav_b" :style="{ height: navHeight + 'px', lineHeight: navHeight + 'px' }">
+ <view :style="{ height: navHeight + 'px' }"></view>
+ <view class="index_nav_b" :style="{ height: navHeight + 'px', lineHeight: navHeight + 'px', top: statusbarHeight + 'px' }">
<text>鍗拌薄婊ㄦ箹鑷杞�</text>
</view>
<view class="index_box">
<view class="index_box_map">
- <map class="map" :markers="markers" :latitude="latitude" :longitude="longitude" />
- <image src="@/static/icon/ic_fullscreen@2x.png" mode="widthFix"></image>
+ <map class="map" :show-location="true" :markers="markers" :latitude="latitude" :longitude="longitude" />
+ <view class="index_box_icon" @click="jumpMap">
+ <image src="@/static/icon/ic_fullscreen@2x.png" mode="widthFix"></image>
+ </view>
</view>
<view class="index_box_title" :style="{ backgroundImage: 'url(' + bgImg + ')' }">
<view class="index_box_title_left">
@@ -20,12 +23,12 @@
</image>
</view>
<view class="index_box_function">
- <view class="fx1 cXYC" v-for="(item, index) in functionList" :key="index" @click="jump(item)">
+ <view class="cXYC" v-for="(item, index) in functionList" :key="index" @click="jump(item)">
<image class="img80" :src="item.icon" mode="widthFix"></image>
- <text class="f26 b c3 mt10">{{item.name}}</text>
+ <text class="f26 c3 mt10">{{item.name}}</text>
</view>
</view>
- <view class="index_box_poster">
+ <view class="index_box_poster" @click="jumpX">
<image class="imgfull" :src="info.leaseNoticeUrl" mode="widthFix"></image>
</view>
<view class="index_box_video" v-if="info.leaseVideoUrl">
@@ -47,16 +50,6 @@
<view class="index_scancode_bottom" @click="carRental" v-else>鎵爜绉熻溅</view>
<view class="index_scancode_zw"></view>
</view>
- <!-- 骞垮憡 -->
- <u-popup :show="show" mode="center" bgColor="transparent" :round="10" @close="show = false">
- <view class="popupbox">
- <view class="advertisement">
- <image :src="info.adList[0].imgurl" mode="widthFix"></image>
- </view>
- <image class="close" @click="show = false" src="@/static/images/ic_close@2x.png" mode="widthFix">
- </image>
- </view>
- </u-popup>
<!-- 缂寸撼鎶奸噾 -->
<u-popup :show="show1" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
@close="show1 = false">
@@ -70,7 +63,7 @@
<image src="@/static/icon/ic_select@2x.png" mode="widthFix" v-if="!active"></image>
<image src="@/static/icon/ic_selected@2x.png" mode="widthFix" v-else></image>
<view class="deposit_read_z">
- 鎴戝凡闃呰<text>銆婄璧侀』鐭ャ��</text>鍜�<text @click.stop="jumpgz">銆婅浠疯鍒欍��</text>
+ 鎴戝凡闃呰<text @click.stop="jumpX">銆婄璧侀』鐭ャ��</text>鍜�<text @click.stop="jumpgz">銆婅浠疯鍒欍��</text>
</view>
</view>
<view class="deposit_footer">
@@ -81,7 +74,7 @@
</u-popup>
<!-- 寮�閿� -->
<u-popup :show="show5" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
- @close="show1 = false">
+ @close="show5 = false">
<view class="loading">
<view class="loading_box">
<view class="loading_box_top">
@@ -97,7 +90,7 @@
</view>
</u-popup>
<!-- 楠戣涓� -->
- <u-popup :show="show2" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
+ <u-popup :show="show2" overlayOpacity="0" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
@close="show2 = false">
<view class="ride">
<view class="ride_head">
@@ -116,16 +109,16 @@
</view>
<view class="ride_content" v-if="info.memberRidesResponse">
<view class="ride_content_a">
- <text>寮�濮嬫椂闂达細{{info.memberRidesResponse.rideStartTime.substring(10, 16)}}</text>
- <text>鏈宸查獞琛岋細{{(info.memberRidesResponse.rideTime / 60).toFixed(1)}}鍒嗛挓</text>
+ <text>寮�濮嬫椂闂达細{{info.memberRidesResponse.rideStartTimeStr}}</text>
+ <text>鏈宸查獞琛岋細{{info.memberRidesResponse.rideTime}}鍒嗛挓</text>
</view>
<view class="ride_content_b">
<text>杞﹀瀷锛歿{info.memberRidesResponse.bikeType}}锛堢紪鍙凤細{{info.memberRidesResponse.bikeCode}}锛�</text>
- <text>璁¤垂瑙勫垯锛氳捣绉焮{(info.memberRidesResponse.baseTime / 60 ).toFixed(1)}}灏忔椂{{(info.memberRidesResponse.basePrice / 100).toFixed(2)}}鍏冿紝瓒呰繃鍚巤{(info.memberRidesResponse.unitPrice / 100).toFixed(2)}}鍏�/{{info.memberRidesResponse.unitTime}}鍒嗛挓</text>
+ <text>{{info.memberRidesResponse.priceRole}}</text>
</view>
<view class="ride_content_info">
<image src="@/static/icon/ic_tip@2x.png" mode="widthFix"></image>
- <text>鏀寔涓�旇繕杞︼紝楠戣鏃堕棿鑷姩绱锛屽鏇存崲杞﹀瀷锛屾寜鎵�鍙栬溅杈嗕腑鏈�楂樿溅鍨嬭璐�</text>
+ <text v-if="info.tips">{{info.tips}}</text>
</view>
</view>
<view class="ride_btn" @click="navigationReturn">瀵艰埅鑷冲洯鍖虹珯杩樿溅鐐�</view>
@@ -136,7 +129,7 @@
</view>
</u-popup>
<!-- 宸茶繕杞� -->
- <u-popup :show="show6" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
+ <u-popup :show="show6" overlayOpacity="0" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
@close="show6 = false">
<view class="ride">
<view class="ride_head">
@@ -155,11 +148,11 @@
</view>
<view class="ride_content" v-if="info.memberRidesResponse">
<view class="ride_content_a">
- <text>鏈�鍚庨獞琛岋細{{info.memberRidesResponse.rideStartTime.substring(5, 16)}}~{{info.memberRidesResponse.rideEndTime.substring(11, 16)}}锛坽{info.memberRidesResponse.rideTime}}鍒嗛挓)</text>
+ <text>鏈�鍚庨獞琛岋細{{info.memberRidesResponse.rideStartTimeStr}}~{{info.memberRidesResponse.rideEndTimeStr}}锛坽{info.memberRidesResponse.rideTime}}鍒嗛挓)</text>
</view>
<view class="ride_content_b">
<text>杞﹀瀷锛歿{info.memberRidesResponse.bikeType}}锛堢紪鍙凤細{{info.memberRidesResponse.bikeCode}}锛�</text>
- <text>璁¤垂瑙勫垯锛氳捣绉焮{(info.memberRidesResponse.baseTime / 60).toFixed(1)}}灏忔椂{{(info.memberRidesResponse.basePrice / 100).toFixed(2)}}鍏冿紝瓒呰繃鍚巤{(info.memberRidesResponse.unitPrice / 100).toFixed(2)}}鍏�/{{info.memberRidesResponse.unitTime}}鍒嗛挓</text>
+ <text>{{info.memberRidesResponse.priceRole}}</text>
</view>
<view class="ride_content_info">
<image src="@/static/icon/ic_tip@2x.png" mode="widthFix"></image>
@@ -190,6 +183,18 @@
</u-popup>
<!-- 鎻愮ず -->
<u-modal :show="show4" :content='content' confirmColor="#01B6AD" @confirm="show4 = false"></u-modal>
+ <!-- 纭缁撶畻寮规 -->
+ <u-modal :show="show7" title="鎻愮ず" content='纭缁撶畻鍚楋紵' :showCancelButton="true" cancelText="鍙栨秷" @confirm="settlement1" @cancel="show7 = false"></u-modal>
+ <!-- 骞垮憡 -->
+ <u-popup :show="show" mode="center" bgColor="transparent" :round="10" @close="show = false">
+ <view class="popupbox">
+ <view class="advertisement">
+ <image :src="info.adList[0].imgfullurl" mode="widthFix"></image>
+ </view>
+ <image class="close" @click="show = false" src="@/static/images/ic_close@2x.png" mode="widthFix">
+ </image>
+ </view>
+ </u-popup>
</view>
</template>
@@ -205,13 +210,14 @@
longitude: null,
bgImg: require('@/static/images/bg_service@2x.png'),
- show: false,
- show1: false,
- show2: false,
- show3: false,
- show4: false,
- show5: false,
- show6: false,
+ show: false, // 骞垮憡
+ show1: false, // 缂寸撼鎶奸噾
+ show2: false, // 楠戣涓�
+ show3: false, // 纭缁撶畻
+ show4: false, // 鎻愮ず
+ show5: false, // 寮�閿�
+ show6: false, // 宸茶繕杞�
+ show7: false, // 纭缁撶畻寮规
active: false,
@@ -240,7 +246,10 @@
],
info: {},
- content: ''
+ content: '',
+
+ timer: null,
+ isDisabled: true
}
},
computed: {
@@ -255,6 +264,16 @@
this.getSite()
},
methods: {
+ jumpX() {
+ uni.navigateTo({
+ url: '/pages/leaseNotice/leaseNotice'
+ });
+ },
+ jumpMap() {
+ uni.navigateTo({
+ url: '/pages/maps/maps'
+ });
+ },
// 璁′环瑙勫垯
jumpgz() {
uni.navigateTo({
@@ -275,9 +294,7 @@
longitude: item.longitude,
title: item.name,
iconPath: '/static/icon/ic_bike@2x.png',
- addr: item.addr,
- clusterId: 1,
- joinCluster: true
+ addr: item.addr
})
})
}
@@ -285,20 +302,24 @@
},
// 缁撶畻
settlement1() {
- this.$u.api.goodsOrderSettlement({
- orderId: this.info.goodsOrderId
- }).then(res => {
- if (res.code === 200) {
- uni.showToast({ title: '缁撶畻鎴愬姛锛�', icon: 'success', duration: 2000 });
- this.info.rideStatus = -1
- this.info.depositStatus = 0
- this.show3 = false
- }
- })
+ if (this.isDisabled) {
+ this.isDisabled = false
+ this.$u.api.goodsOrderSettlement({}).then(res => {
+ if (res.code === 200) {
+ this.refresh()
+ uni.showToast({ title: '缁撶畻鎴愬姛锛�', icon: 'success', duration: 2000 });
+ this.show3 = false
+ this.show7 = false
+ this.isDisabled = true
+ }
+ })
+ }
},
minute() {
this.show3 = false
- this.show6 = true
+ if (this.info.rideStatus !== -1) {
+ this.show6 = true
+ }
},
settlement() {
this.show6 = false
@@ -322,15 +343,15 @@
});
} else if (item.id === 2) {
if (this.info.depositStatus === 1) {
- this.settlement1()
+ this.show3 = true
} else {
- uni.showToast({
- title: '鎮ㄦ殏鏃犳娂閲戯紝鏃犻渶缁撶畻锛�',
- icon: 'none',
- duration: 2000
- });
+ uni.showToast({ title: '鎮ㄦ殏鏃犳娂閲戯紝鏃犻渶缁撶畻锛�', icon: 'none', duration: 2000 });
}
} else if (item.id === 1) {
+ if (this.info.depositStatus === 1) {
+ uni.showToast({ title: '鎶奸噾宸插厖鍊�', icon: 'none', duration: 2000 });
+ return
+ }
this.show1 = true
}
},
@@ -359,15 +380,14 @@
package: res.data.packageValue,
signType: 'MD5',
paySign: res.data.paySign,
- success(res) {
+ success (res) {
if (res.errMsg = 'requestPayment:ok') {
that.show1 = false
- uni.showToast({
- title: '鍏呭�兼垚鍔�',
- icon: 'success',
- duration: 2000
- });
that.info.depositStatus = 1
+ that.carRental()
+ that.refresh()
+ uni.showToast({ title: '鍏呭�兼垚鍔�', icon: 'success', duration: 2000 });
+
}
},
fail(err) {
@@ -395,20 +415,20 @@
code
} = loginRes;
that.$u.api.wxLogin({
- code
+ code
+ })
+ .then(res => {
+ that.$u.api.wxPhone({
+ encryptedData: e.detail.encryptedData,
+ iv: e.detail.iv,
+ sessionKey: res.data.sessionKey
+ }).then(result => {
+ if (result.code === 200) {
+ that.$store.commit('setUserInfo', result.data
+ .userResponse)
+ }
})
- .then(res => {
- that.$u.api.wxPhone({
- encryptedData: e.detail.encryptedData,
- iv: e.detail.iv,
- sessionKey: res.data.sessionKey
- }).then(result => {
- if (result.code === 200) {
- that.$store.commit('setUserInfo', result.data
- .userResponse)
- }
- })
- })
+ })
}
});
}
@@ -443,6 +463,7 @@
})
// 寮�閿佹垚鍔�
if (res1.data.status === 1) {
+ that.refresh()
clearInterval(timer)
that.show5 = false
setTimeout(() => {
@@ -451,12 +472,14 @@
}
// 寮�閿佸け璐�
if (res1.data.status === 3) {
+ that.refresh()
clearInterval(timer)
that.show5 = false
uni.showToast({ title: '寮�閿佸け璐�', icon: 'error', duration: 2000 });
}
// 寮�閿佽秴鏃�
- if (num === 10) {
+ if (num === 120) {
+ that.refresh()
clearInterval(timer)
that.show5 = false
uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
@@ -571,6 +594,25 @@
},
});
},
+ // 鍒锋柊楠戣鐘舵��
+ refreshStatus() {
+ this.timer = setInterval(async () => {
+ let res = await this.$u.api.home()
+ if (res.code === 200) {
+ this.info = res.data
+ // 楠戣涓�
+ if (res.data.rideStatus === 1) {
+ return
+ }
+ this.show2 = false
+ // 宸叉崲杞�
+ if (res.data.rideStatus === 2) {
+ this.show6 = true
+ }
+ clearInterval(this.timer)
+ }
+ }, 10000)
+ },
// 鑾峰彇棣栭〉淇℃伅
getHomeInfo() {
this.$u.api.home()
@@ -607,15 +649,17 @@
uni.showToast({ title: '寮�閿佸け璐�', icon: 'error', duration: 2000 });
}
// 寮�閿佽秴鏃�
- if (num === 10) {
+ if (num === 120) {
clearInterval(timer)
this.show5 = false
uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
}
}, 1000)
}
+ // 楠戣涓�
if (res.data.rideStatus === 1) {
this.show2 = true
+ this.refreshStatus()
}
if (res.data.rideStatus === 5) {
this.show5 = true
@@ -637,12 +681,67 @@
}
})
},
+ // 鍒锋柊棣栭〉淇℃伅
+ refresh() {
+ this.$u.api.home()
+ .then(res => {
+ if (res.code === 200) {
+ this.info = res.data
+ // 瑙i攣涓�
+ if (res.data.rideStatus === 0) {
+ this.show5 = true
+ // 寰幆娆℃暟
+ var num = 1
+ // 寰幆鏌ョ湅瑙i攣缁撴灉
+ let timer = setInterval(async () => {
+ num += 1
+ let res1 = await this.$u.api.refreshLock({
+ id: res.data.memberRidesResponse.rideId
+ })
+ // 寮�閿佹垚鍔�
+ if (res1.data.status === 1) {
+ clearInterval(timer)
+ this.show5 = false
+ setTimeout(() => {
+ this.show2 = true
+ }, 500)
+ }
+ // 寮�閿佸け璐�
+ if (res1.data.status === 3) {
+ clearInterval(timer)
+ this.show5 = false
+ uni.showToast({ title: '寮�閿佸け璐�', icon: 'error', duration: 2000 });
+ }
+ // 寮�閿佽秴鏃�
+ if (num === 120) {
+ clearInterval(timer)
+ this.show5 = false
+ uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
+ }
+ }, 1000)
+ }
+ if (res.data.rideStatus === 1) {
+ this.show2 = true
+ this.refreshStatus()
+ }
+ if (res.data.rideStatus === 5) {
+ this.show5 = true
+ }
+ if (res.data.rideStatus === 2) {
+ this.show6 = true
+ }
+ }
+ })
+ },
// 鎷ㄦ墦鐢佃瘽
calling(mobile) {
uni.makePhoneCall({
phoneNumber: mobile
});
}
+ },
+ destroyed() {
+ clearInterval(this.timer)
}
}
</script>
@@ -663,6 +762,8 @@
width: 100%;
padding: 0 30rpx;
box-sizing: border-box;
+ position: fixed;
+ z-index: 9;
text {
font-size: 38rpx;
@@ -692,15 +793,19 @@
height: 100%;
border-radius: 20rpx;
}
-
- image {
+
+ .index_box_icon {
position: absolute;
width: 80rpx;
height: 80rpx;
right: 10rpx;
bottom: 20rpx;
- z-index: 999;
+ image {
+ width: 100%;
+ height: 100%;
+ }
}
+
}
.index_box_title {
@@ -752,8 +857,12 @@
border-radius: 20rpx;
display: flex;
align-items: center;
+ justify-content: space-between;
position: relative;
top: -24rpx;
+ text {
+ font-weight: 400;
+ }
}
.index_box_poster {
--
Gitblit v1.9.3