From 9dfc54bf6e0fdb3c746815707487c6ae50e98905 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 25 二月 2025 18:30:08 +0800
Subject: [PATCH] 更新
---
bicycle/pages/index/index.vue | 521 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 350 insertions(+), 171 deletions(-)
diff --git a/bicycle/pages/index/index.vue b/bicycle/pages/index/index.vue
index 87faa72..09dfeac 100644
--- a/bicycle/pages/index/index.vue
+++ b/bicycle/pages/index/index.vue
@@ -13,10 +13,17 @@
</view>
<view class="index_box">
<view class="index_box_map">
- <map class="map" scale="15" :show-location="true" :markers="markers" :latitude="latitude" :longitude="longitude" />
+ <map
+ id="mapId"
+ class="map"
+ scale="15"
+ :show-location="true"
+ :polygons="eleBusinessArea"
+ :markers="markers"
+ :latitude="latitude"
+ :longitude="longitude" />
<view class="index_box_map_type">
- <view class="index_box_map_type_row active">鑷杞�</view>
- <view class="index_box_map_type_row">鐢靛姩杞�</view>
+ <view :class="type === item.id ? 'index_box_map_type_row active' : 'index_box_map_type_row'" v-for="(item, index) in types" :key="index" @click="clickType(item.id)">{{item.name}}</view>
</view>
<view class="index_box_icon" @click="jumpMap">
<image src="@/static/icon/ic_fullscreen@2x.png" mode="widthFix"></image>
@@ -43,18 +50,22 @@
<text @click="jumpTC">鏇村浼樻儬 ></text>
</view>
<scroll-view scroll-x class="scrollView">
- <view class="index_box_vip_row" v-for="(item, index) in 3" :key="index">
+ <view class="index_box_vip_row" v-for="(item, index) in tcList" :key="index">
<view class="vip1">
- <text>鐢靛崟杞﹀勾鍗�</text>
- <text>365</text>
+ <view class="vip1_left">
+ {{item.name || ''}}
+ </view>
+ <view class="vip1_right">
+ {{item.price || ''}}
+ </view>
</view>
<view class="vip2">
- <text>365澶╃晠楠戯紝浜彈楠戣溅涔愯叮</text>
- <u>楼699</u>
+ <text>{{item.descs || ''}}</text>
+ <u>楼{{item.linePrice || ''}}</u>
</view>
<view class="vip3">
- <view class="vip3_info">浣庤嚦1鍏�/澶�</view>
- <view class="vip3_button">璐拱</view>
+ <view class="vip3_info">浣庤嚦{{item.dayPrice}}鍏�/澶�</view>
+ <view class="vip3_button" @click="purchase(item.id)">璐拱</view>
</view>
</view>
</scroll-view>
@@ -222,7 +233,7 @@
<!-- 鑷杞�-纭缁撶畻寮规 -->
<u-modal :show="show7" title="鎻愮ず" content='纭缁撶畻鍚楋紵' :showCancelButton="true" cancelText="鍙栨秷" @confirm="settlement1" @cancel="show7 = false"></u-modal>
<!-- 骞垮憡 -->
- <u-popup :show="show" mode="center" :closeOnClickOverlay="false" overlayStyle="z-index: 10075;" bgColor="transparent" :round="10" @close="show = false">
+ <u-popup :show="show" mode="center" :closeOnClickOverlay="false" zIndex="99999" bgColor="transparent" :round="10" @close="show = false">
<view class="popupbox">
<view class="advertisement">
<image :src="info.adList[0].imgfullurl" mode="widthFix"></image>
@@ -231,6 +242,9 @@
</image>
</view>
</u-popup>
+
+ <!-- 鐢佃溅 -->
+ <tram ref="d_tram" @unlockDoor="refresh" />
</view>
</template>
@@ -238,7 +252,7 @@
import {
mapState
} from 'vuex'
-
+ import tram from '@/components/tram/tram.vue'
export default {
data() {
return {
@@ -290,9 +304,27 @@
content: '',
timer: null,
- isDisabled: true
+ isDisabled: true,
+
+ tcList: [],
+ type: 1,
+ types: [
+ { name: '鑷杞�', id: 1 },
+ { name: '鐢靛姩杞�', id: 2 }
+ ],
+ eleBusinessArea: [
+ {
+ points: [],
+ fillColor: "#0077FF12",
+ strokeColor: "#0077FF",
+ strokeWidth: 3,
+ zIndex: 7
+ }
+ ],
+ onPullDownRefresh: false
}
},
+ components: { tram },
computed: {
...mapState(['navHeight', 'statusbarHeight', 'userInfo'])
},
@@ -308,10 +340,56 @@
// this.carRentalCopy(decodeURIComponent(options.scene))
// }
},
+ onPullDownRefresh() {
+ this.onPullDownRefresh = true
+ this.refresh()
+ },
+ onShow() {
+ this.refresh()
+ },
onPageScroll(e) {
this.top = e.scrollTop
},
methods: {
+ clickcontrol(){
+ let mapObjs = uni.createMapContext('mapId', this)
+ mapObjs.moveToLocation({
+ complete: res => {
+ console.log('绉诲姩瀹屾垚:', res)
+ }
+ })
+ },
+ async getEleBikeList() {
+ let res = await this.$u.api.eleBikeList({})
+ if (res.code === 200) {
+ this.markers = []
+ res.data.forEach((item, index) => {
+ this.markers.push({
+ id: index,
+ width: 40,
+ height: 40,
+ latitude: item.latitude,
+ longitude: item.longitude,
+ title: item.name,
+ iconPath: '/static/icon/ic_bike@2x.png'
+ })
+ })
+ this.clickcontrol()
+ }
+ },
+ clickType(id) {
+ this.type = id
+ if (id === 1) {
+ this.getSite()
+ } else {
+ this.getEleBikeList()
+ }
+ },
+ purchase(id) {
+ uni.navigateTo({
+ url: `/pages/packageDetails/packageDetails?id=${id}`
+ });
+ },
jumpTC() {
uni.navigateTo({
url: '/pages/setMenu/setMenu'
@@ -386,7 +464,7 @@
},
jumpMap() {
uni.navigateTo({
- url: '/pages/maps/maps'
+ url: `/pages/maps/maps?type=${this.type}`
});
},
// 璁′环瑙勫垯
@@ -412,6 +490,7 @@
addr: item.addr
})
})
+ this.clickcontrol()
}
})
},
@@ -529,7 +608,6 @@
},
fail(err) {
that.disable = false
- console.log(err)
}
})
}
@@ -577,6 +655,8 @@
},
// 鎵爜绉熻溅
async carRental() {
+ var that = this;
+ // 鍒锋柊棣栭〉淇℃伅
await this.refresh()
// 鍒ゆ柇鏈夋病鏈変氦鎶奸噾
if (this.info.depositStatus === 0) {
@@ -586,65 +666,79 @@
uni.showToast({ title: '缁撶畻鐢宠鎻愪氦鎴愬姛锛岃鑰愬績绛夊緟閫�娆撅紒', icon: 'none', duration: 2000 });
return;
}
- var that = this;
- if (!that.disable) {
- that.disable = true
- // 鎵爜瑙i攣楠戣
- uni.scanCode({
- success: async function(result) {
- let text = decodeURIComponent(result.path)
- text = text.substring(text.lastIndexOf('?') + 7, text.length)
- // 鎵撳紑寮�閿佸脊妗�
- that.show5 = true
- // 璋冪敤寮�閿佹帴鍙�
- let res = await that.$u.api.openLock({
- code: text
- })
- if (res.code === 200) {
- that.disable = false
- that.show6 = false
+ // 鑷杞�
+ if (this.type === 1) {
+ if (!that.disable) {
+ that.disable = true
+ // 鎵爜瑙i攣楠戣
+ uni.scanCode({
+ success: async function(result) {
+ let text = decodeURIComponent(result.path)
+ text = text.substring(text.lastIndexOf('?') + 7, text.length)
+ // 鎵撳紑寮�閿佸脊妗�
that.show5 = true
- // 寰幆娆℃暟
- var num = 1
- // 寰幆鏌ョ湅瑙i攣缁撴灉
- let timer = setInterval(async () => {
- num += 1
- let res1 = await that.$u.api.refreshLock({
- id: res.data.id
- })
- // 寮�閿佹垚鍔�
- if (res1.data.status === 1) {
- that.refresh()
- clearInterval(timer)
- that.show5 = false
- setTimeout(() => {
- that.show2 = true
- }, 500)
- }
- // 寮�閿佸け璐�
- if (res1.data.status === 3) {
- that.refresh()
- clearInterval(timer)
- that.show5 = false
- uni.showToast({ title: '寮�閿佸け璐�', icon: 'error', duration: 2000 });
- }
- // 寮�閿佽秴鏃�
- if (num === 180) {
- that.refresh()
- clearInterval(timer)
- that.show5 = false
- uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
- }
- }, 1000)
- } else {
- that.show5 = false
+ // 璋冪敤寮�閿佹帴鍙�
+ let res = await that.$u.api.openLock({
+ code: text
+ })
+ if (res.code === 200) {
+ that.disable = false
+ that.show6 = false
+ that.show5 = true
+ // 寰幆娆℃暟
+ var num = 1
+ // 寰幆鏌ョ湅瑙i攣缁撴灉
+ let timer = setInterval(async () => {
+ num += 1
+ let res1 = await that.$u.api.refreshLock({
+ id: res.data.id
+ })
+ // 寮�閿佹垚鍔�
+ if (res1.data.status === 1) {
+ that.refresh()
+ clearInterval(timer)
+ that.show5 = false
+ setTimeout(() => {
+ that.show2 = true
+ }, 500)
+ }
+ // 寮�閿佸け璐�
+ if (res1.data.status === 3) {
+ that.refresh()
+ clearInterval(timer)
+ that.show5 = false
+ uni.showToast({ title: '寮�閿佸け璐�', icon: 'error', duration: 2000 });
+ }
+ // 寮�閿佽秴鏃�
+ if (num === 180) {
+ that.refresh()
+ clearInterval(timer)
+ that.show5 = false
+ uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
+ }
+ }, 1000)
+ } else {
+ that.show5 = false
+ that.disable = false
+ }
+ },
+ fail() {
that.disable = false
}
- },
- fail() {
- that.disable = false
+ });
+ }
+ } else {
+ uni.scanCode({
+ success: async function(result) {
+ let res = await that.$u.api.getBikeChargingRule({
+ code: result.result
+ })
+ if (res.code === 200) {
+ that.$refs.d_tram.info = res.data
+ that.$refs.d_tram.d_show1 = true
+ }
}
- });
+ })
}
},
// 鑾峰彇缁忕含搴�
@@ -775,58 +869,79 @@
},
// 鑾峰彇棣栭〉淇℃伅
getHomeInfo() {
+ var that = this
this.$u.api.home()
- .then(res => {
+ .then(async res => {
if (res.code === 200) {
this.info = res.data
// 鏄惁寮瑰嚭骞垮憡鍥�
- if (res.data.adList.length > 0) {
+ if (res.data.adList.length > 0 && !res.data.memberRidesResponse) {
this.show = true
}
- // 瑙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 === 180) {
- 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
- this.refreshStatus()
+ // 鑷杞�
+ if (res.data.memberRidesResponse && res.data.memberRidesResponse.ridesType === 0) {
+ this.type = 1
+ // 瑙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 === 180) {
+ 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
+ this.refreshStatus()
+ }
+ } else if (res.data.memberRidesResponse && res.data.memberRidesResponse.ridesType === 1) {
+ this.type = 2
+ that.$refs.d_tram.info = {
+ ...res.data.memberRidesResponse.discountMember,
+ ...res.data.memberRidesResponse,
+ deposit: res.data.deposit,
+ goodsOrderId: res.data.goodsOrderId
+ }
+ // 楠戣涓�
+ if (res.data.rideStatus === 1) {
+ that.$refs.d_tram.d_show3 = true
+ }
+ // 涓存椂閿佽溅
+ if (res.data.rideStatus === 4) {
+ that.$refs.d_tram.d_show4 = true
+ }
}
// 鏄惁钀ヤ笟
if (res.data.isBusiness === 0) {
@@ -841,6 +956,14 @@
this.content = res.data.stopServeTips
this.show4 = true
}
+ this.tcList = res.data.discountList
+ let arr = JSON.parse(res.data.eleBusinessArea)
+ this.eleBusinessArea[0].points = arr.map(item => {
+ return {
+ latitude: item.lat,
+ longitude: item.lng
+ }
+ })
}
})
},
@@ -848,50 +971,93 @@
refresh() {
this.$u.api.home()
.then(res => {
+ uni.stopPullDownRefresh()
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 === 180) {
- clearInterval(timer)
- this.show5 = false
- uni.showToast({ title: '寮�閿佽秴鏃�', icon: 'error', duration: 2000 });
- }
- }, 1000)
+ // 鏈煡鍒伴獞琛岃鍗�
+ if (!res.data.memberRidesResponse && this.onPullDownRefresh) {
+ this.show1 = false
+ this.show2 = false
+ this.show3 = false
+ this.show4 = false
+ this.show5 = false
+ this.show6 = false
+ this.show7 = false
+
+ that.$refs.d_tram.d_show = false
+ that.$refs.d_tram.d_show1 = false
+ that.$refs.d_tram.d_show2 = false
+ that.$refs.d_tram.d_show3 = false
+ that.$refs.d_tram.d_show4 = false
+ that.$refs.d_tram.d_show5 = false
+ that.$refs.d_tram.d_show6 = false
+ that.$refs.d_tram.d_show7 = false
+ that.$refs.d_tram.d_show8 = false
+ that.$refs.d_tram.d_show9 = false
+ this.onPullDownRefresh = false
+ return
}
- 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
+ // 鑷杞�
+ if (res.data.memberRidesResponse.ridesType === 0) {
+ // 瑙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 === 180) {
+ 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
+ }
+ } else if (res.data.memberRidesResponse.ridesType === 1) {
+ this.type = 2
+ this.$refs.d_tram.info = {
+ ...res.data.memberRidesResponse.discountMember,
+ ...res.data.memberRidesResponse,
+ deposit: res.data.deposit,
+ goodsOrderId: res.data.goodsOrderId
+ }
+ // 楠戣涓�
+ if (res.data.rideStatus === 1) {
+ this.$refs.d_tram.d_show3 = true
+ }
+ // 涓存椂閿佽溅
+ if (res.data.rideStatus === 4) {
+ this.$refs.d_tram.d_show4 = true
+ }
}
}
})
@@ -1134,22 +1300,29 @@
display: flex;
align-items: center;
justify-content: space-between;
- text {
- &:nth-child(1) {
- font-weight: 500;
- font-size: 32rpx;
- color: #303030;
- }
- &:nth-child(2) {
+ .vip1_left {
+ flex: 1;
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #303030;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ .vip1_right {
+ flex-shrink: 0;
+ margin-left: 30rpx;
+ font-weight: 400;
+ font-size: 40rpx;
+ color: #FF5A31;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ &:before {
+ content: '锟�';
font-weight: 400;
- font-size: 40rpx;
+ font-size: 26rpx;
color: #FF5A31;
- &:before {
- content: '锟�';
- font-weight: 400;
- font-size: 26rpx;
- color: #FF5A31;
- }
}
}
}
@@ -1161,14 +1334,20 @@
margin-top: 10rpx;
margin-bottom: 16rpx;
text {
+ flex: 1;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
font-weight: 400;
font-size: 26rpx;
color: #777777;
}
u {
+ flex-shrink: 0;
font-weight: 400;
font-size: 24rpx;
color: #999999;
+ text-decoration: line-through;
}
}
.vip3 {
--
Gitblit v1.9.3