MrShi
2023-12-20 d81915d73a29e0595c1638c1344a141b28d19967
bicycle/pages/index/index.vue
@@ -3,15 +3,22 @@
      <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' }">
            <text>印象滨湖自行车</text>
         <view :style="{ height: navHeight + 'px' }"></view>
         <view class="index_nav_box" :style="{ background: top > 0 ? '#9AE2DF' : 'rgba(0,0,0,0)' }">
            <view class="index_nav_a" :style="{ height: statusbarHeight + 'px' }"></view>
            <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>
         <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">
               <view class="index_box_title_left">
                  <text>{{info.parkName}}</text>
                  <text>服务电话:{{info.serverPhone}}</text>
@@ -20,18 +27,23 @@
               </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">
               <video class="img100b" :src="info.leaseVideoUrl" enable-danmu danmu-btn controls></video>
            </view>
            <view class="index_zw"></view>
            <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 600rpx);" v-if="show5"></view>
            <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 660rpx);" v-if="show6"></view>
            <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 660rpx);" v-else-if="show2"></view>
            <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 580rpx);" v-else-if="show1"></view>
            <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 500rpx);" v-else-if="show3"></view>
            <view class="index_zw1" v-else></view>
         </view>
      </view>
      <view class="index_scancode">
@@ -47,17 +59,7 @@
         <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">
         <view class="deposit">
@@ -70,7 +72,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 +83,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">
@@ -90,14 +92,14 @@
               </view>
               <view class="loading_box_info">请按照交规行驶</view>
            </view>
            <view class="loading_box_err" @click="toFaultReporting">
            <!-- <view class="loading_box_err" @click="toFaultReporting">
               <image src="@/static/icon/ic_guzhang@2x.png" mode="widthFix"></image>
               <text>车辆故障上报</text>
            </view>
            </view> -->
         </view>
      </u-popup>
      <!-- 骑行中 -->
      <u-popup :show="show2" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
      <u-popup :show="show2" :overlay="false" overlayOpacity="0" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
         @close="show2 = false">
         <view class="ride">
            <view class="ride_head">
@@ -116,16 +118,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 +138,7 @@
         </view>
      </u-popup>
      <!-- 已还车 -->
      <u-popup :show="show6" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
      <u-popup :show="show6" :overlay="false" overlayOpacity="0" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10"
         @close="show6 = false">
         <view class="ride">
            <view class="ride_head">
@@ -155,15 +157,15 @@
            </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>
                  <text>支持中途还车,骑行时间自动累计,如更换车型,按所取车辆中最高车型计费</text>
                  <text v-if="info.tips">{{info.tips}}</text>
               </view>
            </view>
            <view class="ride_btn" @click="carRental">扫码继续骑行</view>
@@ -173,7 +175,7 @@
         </view>
      </u-popup>
      <!-- 确认结算 -->
      <u-popup :show="show3" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10" @close="show3 = false">
      <u-popup :show="show3" :overlay="false" :closeOnClickOverlay="false" mode="bottom" bgColor="#fff" :round="10" @close="show3 = false">
         <template>
            <view class="deposit1">
               <view class="deposit_text">
@@ -189,7 +191,19 @@
         </template>
      </u-popup>
      <!-- 提示 -->
      <u-modal :show="show4" :content='content' confirmColor="#01B6AD" @confirm="show4 = false"></u-modal>
      <u-modal :show="show4" :title="title" :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" :closeOnClickOverlay="false" overlayStyle="z-index: 10075;" 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>
@@ -201,17 +215,23 @@
   export default {
      data() {
         return {
            disable: false,
            top: 0,
            title: '',
            latitude: null,
            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,21 +260,38 @@
            ],
            info: {},
            content: ''
            content: '',
            timer: null,
            isDisabled: true
         }
      },
      computed: {
         ...mapState(['navHeight', 'statusbarHeight', 'userInfo'])
      },
      async onLoad() {
      async onLoad(options) {
         if (JSON.stringify(this.userInfo) == '{}') {
            await this.$onLaunched;
         }
         console.log(decodeURIComponent(options.scene))
         this.getAddress()
         this.getHomeInfo()
         this.getSite()
      },
      onPageScroll(e) {
         this.top = e.scrollTop
      },
      methods: {
         jumpX() {
            uni.navigateTo({
               url: '/pages/leaseNotice/leaseNotice'
            });
         },
         jumpMap() {
            uni.navigateTo({
               url: '/pages/maps/maps'
            });
         },
         // 计价规则
         jumpgz() {
            uni.navigateTo({
@@ -269,15 +306,13 @@
                     res.data.forEach((item, index) => {
                        this.markers.push({
                           id: index,
                           width: 30,
                           width: 40,
                           height: 40,
                           latitude: item.latitude,
                           longitude: item.longitude,
                           title: item.name,
                           iconPath: '/static/icon/ic_bike@2x.png',
                           addr: item.addr,
                           clusterId: 1,
                           joinCluster: true
                           addr: item.addr
                        })
                     })
                  }
@@ -285,22 +320,34 @@
         },
         // 结算
         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
            if (this.isDisabled) {
               this.isDisabled = false
               this.$u.api.goodsOrderSettlement({}).then(res => {
                  if (res.code === 200) {
                     this.show3 = false
                     this.show6 = false
                     this.show7 = false
                     uni.showToast({ title: '结算申请提交成功,请耐心等待退款!', icon: 'success', duration: 2000 });
                     // this.refresh()
                  }
               }).finally(() => {
                  this.refresh()
                  this.show3 = false
               }
            })
                  this.isDisabled = true
               })
            }
         },
         minute() {
            this.show3 = false
            this.show6 = true
            if (this.info.rideStatus != -1) {
               this.show6 = true
            }
         },
         settlement() {
            if (this.info.depositStatus === 2) {
               uni.showToast({ title: '结算申请提交成功,请耐心等待退款!', icon: 'none', duration: 2000 });
               return
            }
            this.show6 = false
            this.show3 = true
         },
@@ -311,7 +358,8 @@
            });
         },
         // 跳转
         jump(item) {
         async jump(item) {
            await this.refresh()
            if (item.id === 3) {
               uni.navigateTo({
                  url: '/pages/pricingRules/pricingRules'
@@ -321,23 +369,32 @@
                  url: '/pages/consumptionDetails/consumptionDetails'
               });
            } else if (item.id === 2) {
               if (this.info.rideStatus === 1) {
                  uni.showToast({ title: '骑行中不能结算押金', icon: 'none', duration: 2000 })
                  return
               }
               if (this.info.depositStatus === 1) {
                  this.settlement1()
                  this.show3 = true
               } else if (this.info.depositStatus === 2) {
                  uni.showToast({ title: '结算申请提交成功,请耐心等待退款!', icon: 'none', duration: 2000 });
               } 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
               } else if (this.info.depositStatus === 2) {
                  uni.showToast({ title: '结算申请提交成功,请耐心等待退款!', icon: 'none', duration: 2000 });
                  return
               }
               this.show1 = true
            }
         },
         // 骑行明细
         toRidingDetails() {
            uni.navigateTo({
               url: `/pages/ridingDetails/ridingDetails?id=${this.info.goodsOrderId}`
               url: `/pages/ridingDetails/ridingDetails?id=${this.info.goodsOrderId}&price=${this.info.deposit / 100}`
            });
         },
         // 跳转故障上报
@@ -348,34 +405,40 @@
         },
         // 押金支付
         depositPayment() {
            var that = this;
            if (this.active) {
               var that = this;
               this.$u.api.createGoodsOrderPay()
                  .then(res => {
                     if (res.code === 200) {
                        wx.requestPayment({
                           timeStamp: res.data.timeStamp,
                           nonceStr: res.data.nonceStr,
                           package: res.data.packageValue,
                           signType: 'MD5',
                           paySign: res.data.paySign,
                           success(res) {
                              if (res.errMsg = 'requestPayment:ok') {
                                 that.show1 = false
                                 uni.showToast({
                                    title: '充值成功',
                                    icon: 'success',
                                    duration: 2000
                                 });
                                 that.info.depositStatus = 1
               if (!this.disable) {
                  that.disable = true
                  that.$u.api.createGoodsOrderPay()
                     .then(res => {
                        if (res.code === 200) {
                           wx.requestPayment({
                              timeStamp: res.data.timeStamp,
                              nonceStr: res.data.nonceStr,
                              package: res.data.packageVal,
                              signType: 'MD5',
                              paySign: res.data.paySign,
                              success (res) {
                                 that.disable = false
                                 if (res.errMsg = 'requestPayment:ok') {
                                    that.show1 = false
                                    that.info.depositStatus = 1
                                    that.carRental()
                                    that.refresh()
                                    uni.showToast({ title: '充值成功', icon: 'success', duration: 2000 });
                                 }
                              },
                              fail(err) {
                                 that.disable = false
                                 console.log(err)
                              }
                           },
                           fail(err) {
                              console.log(err)
                           }
                        })
                     }
                  })
                           })
                        }
                     }).catch((err) => {
                        that.disable = false
                        console.log(err)
                     })
               }
            } else {
               uni.showToast({
                  title: '请先勾选协议',
@@ -395,78 +458,93 @@
                        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)
                              }
                           })
                        })
                     })
                  }
               });
            }
         },
         // 扫码租车
         carRental() {
         async carRental() {
            await this.refresh()
            // 判断有没有交押金
            if (this.info.depositStatus === 0) {
               this.show1 = true
               return;
            } else if (this.info.depositStatus === 2) {
               uni.showToast({ title: '结算申请提交成功,请耐心等待退款!', icon: 'none', duration: 2000 });
               return;
            }
            var that = this;
            // 扫码解锁骑行
            uni.scanCode({
               success: async function(result) {
                  // 打开开锁弹框
                  that.show5 = true
                  // 调用开锁接口
                  let res = await that.$u.api.openLock({
                     code: result.result
                  })
                  if (res.code === 200) {
                     that.show6 = false
            if (!that.disable) {
               that.disable = true
               // 扫码解锁骑行
               uni.scanCode({
                  success: async function(result) {
                     // 打开开锁弹框
                     that.show5 = true
                     // 循环次数
                     var num = 1
                     // 循环查看解锁结果
                     let timer = setInterval(async () => {
                        num += 1
                        let res1 = await that.$u.api.refreshLock({
                           id: res.data.id
                        })
                        // 开锁成功
                        if (res1.data.status === 1) {
                           clearInterval(timer)
                           that.show5 = false
                           setTimeout(() => {
                              that.show2 = true
                           }, 500)
                        }
                        // 开锁失败
                        if (res1.data.status === 3) {
                           clearInterval(timer)
                           that.show5 = false
                           uni.showToast({ title: '开锁失败', icon: 'error', duration: 2000 });
                        }
                        // 开锁超时
                        if (num === 10) {
                           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: result.result
                     })
                     if (res.code === 200) {
                        that.disable = false
                        that.show6 = false
                        that.show5 = true
                        // 循环次数
                        var num = 1
                        // 循环查看解锁结果
                        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
                  }
               }
            });
               });
            }
         },
         // 获取经纬度
         getAddress() {
@@ -571,6 +649,29 @@
               },
            });
         },
         // 刷新骑行状态
         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
                     return
                  }
                  if (res.data.rideStatus === -1) {
                     this.show6 = false
                  }
                  clearInterval(this.timer)
               }
            }, 10000)
         },
         // 获取首页信息
         getHomeInfo() {
            this.$u.api.home()
@@ -607,7 +708,74 @@
                              uni.showToast({ title: '开锁失败', icon: 'error', duration: 2000 });
                           }
                           // 开锁超时
                           if (num === 10) {
                           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.isBusiness === 0) {
                        this.title = '暂停营业提醒'
                        this.content = res.data.unBusinessTips
                        this.show4 = true
                        return
                     }
                     // 是否停止服务
                     if (res.data.isStopServe === 1) {
                        this.title = '暂停服务提醒'
                        this.content = res.data.stopServeTips
                        this.show4 = true
                     }
                  }
               })
         },
         // 刷新首页信息
         refresh() {
            this.$u.api.home()
               .then(res => {
                  if (res.code === 200) {
                     this.info = res.data
                     // 解锁中
                     if (res.data.rideStatus === 0) {
                        this.show5 = true
                        // 循环次数
                        var num = 1
                        // 循环查看解锁结果
                        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 });
@@ -616,23 +784,13 @@
                     }
                     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.isBusiness === 0) {
                        this.content = res.data.unBusinessTips
                        this.show4 = true
                        return
                     }
                     // 是否停止服务
                     if (res.data.isStopServe === 1) {
                        this.content = res.data.stopServeTips
                        this.show4 = true
                     }
                  }
               })
@@ -643,6 +801,9 @@
               phoneNumber: mobile
            });
         }
      },
      destroyed() {
         clearInterval(this.timer)
      }
   }
</script>
@@ -654,22 +815,36 @@
<style lang="scss" scoped>
   .index {
      width: 100%;
      height: auto;
      .index_nav {
         width: 100%;
         height: auto;
         background: repeating-linear-gradient(to bottom, #9AE2DF, #ffffff);
         .index_nav_b {
         .index_nav_box {
            width: 100%;
            padding: 0 30rpx;
            box-sizing: border-box;
            text {
               font-size: 38rpx;
               font-family: PingFangSC-Semibold, PingFang SC;
               font-weight: 600;
               color: #222222;
            height: auto;
            position: fixed;
            top: 0;
            left: 0;
            z-index: 999;
            .index_nav_b {
               width: 100%;
               padding: 0 30rpx;
               box-sizing: border-box;
               position: fixed;
               z-index: 9;
               text {
                  font-size: 38rpx;
                  font-family: PingFangSC-Semibold, PingFang SC;
                  font-weight: 600;
                  color: #222222;
               }
            }
         }
         .index_box {
@@ -692,15 +867,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 {
@@ -713,6 +892,12 @@
               align-items: center;
               position: relative;
               top: -16rpx;
               // filter: blur(3px);
               // -webkit-filter: blur(3px);
               background: linear-gradient(270deg, #C5FAF7 0%, rgba(10,201,192,0.63) 65%, rgba(214,251,249,0.81) 100%);
               box-shadow: inset 0rpx 1rpx 0rpx 0rpx #E3FFFE;
               border-radius: 20rpx 20rpx 0rpx 0rpx;
               backdrop-filter: blur(3px);
               .index_box_title_left {
                  flex: 1;
@@ -752,8 +937,12 @@
               border-radius: 20rpx;
               display: flex;
               align-items: center;
               justify-content: space-between;
               position: relative;
               top: -24rpx;
               text {
                  font-weight: 400;
               }
            }
            .index_box_poster {
@@ -769,10 +958,16 @@
               overflow: hidden;
               margin-top: 20rpx;
            }
            .index_zw1 {
               width: 100%;
               height: calc(env(safe-area-inset-bottom) + 310rpx);
            }
            .index_zw {
               width: 100%;
               height: 336rpx;
               // height: 336rpx;
               height: 680rpx;
            }
         }
      }
@@ -885,6 +1080,7 @@
            .red {
               color: #FC2525 !important;
               font-size: 30rpx !important;
            }
            text {