chuangte_bike_newxcx/pages/index/index.vue

1379 lines
33 KiB
Vue
Raw Normal View History

2023-11-27 09:57:03 +08:00
<template>
2024-01-27 16:37:52 +08:00
<view class="page">
2025-04-10 08:57:21 +08:00
<u-navbar :is-back="false" title="小鹿骑行" :border-bottom="false" back-icon-color="000" :background="bgc" title-color='#000' title-size='36'
2025-04-01 21:35:30 +08:00
height='44' id="navbar">
2024-01-27 16:37:52 +08:00
</u-navbar>
2025-04-01 21:35:30 +08:00
<view class="gonggao" @click="btntopgg">
<u-icon name="volume-fill" color="#fff" style="position: absolute;left: 20rpx;" size="32"></u-icon>
<view class="container">
<view class="scroll-text">
<view class="scroll-item">
{{announcements.noticeTitle == null ? '暂无最新公告!!!' : announcements.noticeTitle}}
</view>
</view>
</view>
<u-icon name="arrow-right" color="#fff" style="position: absolute;right: 10rpx;" size="32"></u-icon>
</view>
<!-- 公告弹窗 -->
<view class="noticetc" v-if="gonggaoflag">
<view class="name">
公告
</view>
<view class="biaoti">
{{gonggaoxq.noticeTitle}}
</view>
<!-- <view class="cont" v-html="gonggaoxq.noticeContent"></view> -->
<u-parse :html="gonggaoxq.noticeContent" style="width: 100%;height: 620rpx;background-color: #efefef;padding: 10rpx;box-sizing: border-box;margin-top: 20rpx;"></u-parse>
<view class="btn" @click="btnggtc">
我知道了
</view>
</view>
<view class="mask" v-if="gonggaoflag"></view>
<!-- 地图 -->
<view class="ditu">
<map class='map' id="map" :latitude="latitude" :longitude="longitude" :show-location="true" @click="btnzk"/>
<image @click="btnzk" src="https://api.ccttiot.com/smartmeter/img/static/up0OxngKxP5JZ3hRLvCv" class="zk" mode=""></image>
2025-04-27 17:37:23 +08:00
<!-- <view class="caozuo">
<image @click="btnpage(1)" src="https://api.ccttiot.com/smartmeter/img/static/uAGgpuC9wi9lFXZFO35G" mode=""></image>
<image @click="btnpage(2)" src="https://api.ccttiot.com/smartmeter/img/static/u4DUUUKIRR5HcB8uIkl4" mode=""></image>
<image @click="btnpage(3)" src="https://api.ccttiot.com/smartmeter/img/static/unPEUv14mgsytgeis4Fx" mode=""></image>
<image @click="btnpage(4)" style="width: 150rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uJPhQOQ3y97HIdcQVdGG" mode=""></image>
</view> -->
<view class="kuaijie">
<image @click="btnpage(2)" style="height: 100rpx;margin-top: 16rpx;" src="https://api.ccttiot.com/smartmeter/img/static/udUQI8zA1tYUEndx9guO" mode=""></image> <!-- 订单 -->
<image @click="btntiao(2)" src="https://api.ccttiot.com/smartmeter/img/static/uECTLFe6fzWgzNzVdsPs" mode=""></image> <!-- 使用帮助 -->
<image @click="btnpage(4)" src="https://api.ccttiot.com/smartmeter/img/static/uPyDAy2sWgh4UkDr3yX4" mode=""></image> <!-- 编号开锁 -->
<image @click="btntiao(3)" src="https://api.ccttiot.com/smartmeter/img/static/uxLGGshcH6nr557ffO5E" mode=""></image> <!-- 意见反馈 -->
<image @click="btnkf" src="https://api.ccttiot.com/smartmeter/img/static/up53i8F9cn9wajU8dXuS" mode=""></image> <!-- 客服 -->
2025-04-01 21:35:30 +08:00
</view>
</view>
2025-04-27 17:37:23 +08:00
2025-04-01 21:35:30 +08:00
<view class="guanggao">
2025-04-10 08:57:21 +08:00
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d" mode="aspectFill"></image> -->
2025-04-16 09:14:52 +08:00
<u-swiper :list="lists" @click="btnshangjia"></u-swiper>
2025-04-01 21:35:30 +08:00
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uEMuO2M40WcExJVSprIy" class="kefu" mode=""></image> -->
</view>
<view class="fujin">
<view class="names">
附近门店
</view>
<view class="list">
<view class="list_item" v-if="false" v-for="(item,index) in 2" :key="index" @click="btnxq">
<view class="top">
<view class="name">
云行租车汇丰公寓
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uebBGQwgvIO4BgJB5nd0" @click.stop="btntel" mode=""></image>
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<view class="dizhi">
<image src="https://api.ccttiot.com/smartmeter/img/static/uxTxqrn1kIVJEHCS57YU" mode=""></image> 2.3km | 天目山路134号
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<view class="bot">
<view class="lt">
<view class="yytime">
<text>营业时间 | </text>06:00-23:00
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<view class="songqu">
免费送取车
2024-01-27 16:37:52 +08:00
</view>
</view>
2025-04-01 21:35:30 +08:00
<view class="rt">
<view class="rizu">
<view class="price">
日均<text>69</text>
</view>
<view class="qizu">
3辆车可租
</view>
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uXOW5yZvS1fBGH7xz77A" mode=""></image>
</view>
</view>
<view class="cheliang">
<view class="quanxin" v-for="(item,index) in 2" :key="index">
<view class="qxlt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uK5bAmrXLEHVxbH6FcFD" mode=""></image>
</view>
<view class="qxrt">
<view class="name">
全新车网红...
</view>
<view class="junjia">
日均69
</view>
2024-01-27 16:37:52 +08:00
</view>
</view>
</view>
</view>
2025-04-01 21:35:30 +08:00
<view class="dibutishi">
<!-- <text>当前附近没有更多门店咯...</text> -->
<image src="https://api.ccttiot.com/smartmeter/img/static/usBtiESbpV8GIY3k4ukv" mode=""></image>
</view>
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
</view>
<!-- 平台客服弹窗 -->
<view class="kefutc" v-if="kefuflag">
2025-04-30 18:03:27 +08:00
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/uTSMnIgvw7eS13LxZjvt" mode="" @click="kefuflag = false"></image>
2025-04-01 21:35:30 +08:00
<view class="box">
2025-04-30 18:03:27 +08:00
<view class="" style="max-height: 640rpx;overflow: scroll;">
<view class="" style="font-weight: 600;color: #3D3D3D;">
2025-04-27 17:37:23 +08:00
订单要售后:
</view>
2025-04-16 09:14:52 +08:00
<view class="top" v-for="(item,index) in kefulist" :key="index">
2025-04-10 08:57:21 +08:00
<view class="dianhua">
{{item.name == null ? '--' : item.name}}{{item.contact == null ? '--' : item.contact}}
2025-04-16 09:14:52 +08:00
<view class="wz">
工作时间{{item.startTime}}~{{item.endTime}}
</view>
2025-04-10 08:57:21 +08:00
</view>
<view class="boda" @click.stop="btnptkf(item.contact)">
2025-04-30 18:03:27 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uwTYS0nZBsoaiY8EFlQA" mode=""></image>
2025-04-10 08:57:21 +08:00
<text>拨打</text>
</view>
2025-04-16 09:14:52 +08:00
</view>
2025-04-30 18:03:27 +08:00
<view class="" style="margin-top: 20rpx;font-weight: 600;color: #3D3D3D;" v-if="kefuarr.length > 0">
2025-04-27 17:37:23 +08:00
骑行前咨询:
</view>
<view class="top" v-for="(item,index) in kefuarr" :key="index">
2025-04-10 08:57:21 +08:00
<view class="dianhua">
2025-04-27 17:37:23 +08:00
{{item.name == null ? '--' : item.name}}{{item.contact == null ? '--' : item.contact}}
<view class="wz">
工作时间{{item.startTime}}~{{item.endTime}}
</view>
2025-04-10 08:57:21 +08:00
</view>
2025-04-27 17:37:23 +08:00
<view class="boda" @click.stop="btnptkf(item.contact)">
2025-04-30 18:03:27 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uwTYS0nZBsoaiY8EFlQA" mode=""></image>
2025-04-10 08:57:21 +08:00
<text>拨打</text>
</view>
2025-04-27 17:37:23 +08:00
</view>
2024-01-27 16:37:52 +08:00
</view>
2025-04-01 21:35:30 +08:00
<view class="bot">
2025-04-16 09:14:52 +08:00
<!-- <view class="wz">
客服工作时间
</view> -->
2025-04-01 21:35:30 +08:00
<view class="wzs">
客服电话高峰期可能遇忙请耐心等待
2024-03-25 19:46:07 +08:00
</view>
2024-03-13 10:54:22 +08:00
</view>
</view>
</view>
2025-06-06 11:32:12 +08:00
<!-- 有订单弹窗 -->
<view class="conts_box" v-if="orderflag" @click="btntz">
<view class="orderzt">
<view class="" style="font-size: 32rpx;font-weight: 600;">
订单状态
</view>
<view class="">
<view style="color: #333;">订单进行中<u-icon name="arrow-right" color="#333" size="28"></u-icon></view>
</view>
</view>
<view class="cont_li">
<view class="right">
<image :src="iconobj.mapimg" mode="aspectFill">
</image>
<view class="NO">
SN{{orderobj.deviceSn == null ? '--' : orderobj.deviceSn}}
</view>
</view>
<view class="left">
<view class="km">
可继续行驶{{orderobj.deviceRemainEndurance == null ? '--' : orderobj.deviceRemainEndurance}}公里
</view>
<view class="speed">
<view class="speeds" :style="{ width: orderobj.deviceRemainingPower + '%' }"></view>
</view>
<view class="NO">
电量{{orderobj.deviceRemainingPower == null ? '--' : orderobj.deviceRemainingPower}}%
</view>
</view>
</view>
<view class=""
style="display: flex;width: 100%;padding: 0 20rpx;box-sizing: border-box;justify-content: space-between;">
<view class="dh" @click.stop="danghang">
导航 <u-icon name="arrow-right" color="#333" size="28"></u-icon>
</view>
<view class="suocheanniu">
<view class="lssc" @click.stop="btnjsdd">
结束订单
</view>
<view class="lssc" @click.stop="btnqd">
{{orderobj.deviceLockStatus == 1 ? '临时锁车' : '开锁'}}
</view>
</view>
</view>
</view>
<!-- 扫码用车未在停车点内还车弹窗 -->
<view class="tingchetc" v-if="fjflag">
<view class="topname">
<image src="https://api.ccttiot.com/smartmeter/img/static/uDfEXjApmdS6ByM88pv3" mode=""></image>
{{fajinobj.manageFee > 0 ? '不在运营区' : fajinobj.dispatchFee > 0 ? '不在停车点' : ''}}
</view>
<view class="shuom">
需支付<text>{{fajinobj.manageFee > 0 ? fajinobj.manageFee : fajinobj.dispatchFee > 0 ? fajinobj.dispatchFee : ''}}</text>你可查看<text
@click="btntcd">最近停车点</text>
</view>
<image :src="iconobj.tingcheimg" class="tcimg" mode="aspectFill">
</image>
<view class="btnan">
<view class="fj" @click="btnfajin">
缴纳罚金还车
</view>
<view class="qx" @click="btnjjqx">
继续骑行
</view>
</view>
</view>
<view class="mask" v-if="fjflag"></view>
2025-04-01 21:35:30 +08:00
<view class="mask" v-if="kefuflag"></view>
2024-01-23 19:15:52 +08:00
<tab-bar :indexs='0'></tab-bar>
2023-11-27 09:57:03 +08:00
</view>
</template>
<script>
2025-04-10 08:57:21 +08:00
var xBlufi = require("@/components/blufi/xBlufi.js")
2023-11-27 09:57:03 +08:00
export default {
data() {
return {
2025-04-01 21:35:30 +08:00
bgc: {
backgroundColor: "#F4FCFF",
},
latitude:'',
longitude:'',
covers:[],
kefuflag:false,
gonggaoxq:{},
gonggaoflag:false,
announcements: {},
2025-04-10 08:57:21 +08:00
kefulist:[],
lists: [],
2025-04-21 18:00:19 +08:00
info:{},
2025-04-27 17:37:23 +08:00
tiaozhuanlist:[],
jinweidu:'',
2025-06-06 11:32:12 +08:00
kefuarr:[],
fjflag: false,
orderflag: false,
iconobj:this.$store.state.iconobj,
orderobj: {},
orderAreaReturnVerify:'',
latsc:'',
lngsc:'',
fajinobj:{}
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
},
2024-03-13 10:54:22 +08:00
onLoad() {
2025-05-10 17:54:20 +08:00
uni.getLocation({
type: 'gcj02', // 国内地图更兼容
isHighAccuracy: true,
success: (res) => {
2025-05-17 12:09:43 +08:00
console.log('精确坐标:', res)
2025-05-10 17:54:20 +08:00
},
fail: (err) => {
2025-05-17 12:09:43 +08:00
console.error('获取位置失败:', err)
2025-05-10 17:54:20 +08:00
}
2025-05-17 12:09:43 +08:00
})
2025-04-10 08:57:21 +08:00
},
// 分享到好友(会话)
onShareAppMessage: function() {
return {
title: '小鹿骑行',
path: '/pages/index/index'
}
},
// 分享到朋友圈
onShareTimeline: function() {
return {
title: '小鹿骑行',
query: '',
path: '/pages/index/index'
}
2025-04-01 21:35:30 +08:00
},
onShow() {
2025-04-10 08:57:21 +08:00
this.getinfo()
this.getlunbo()
2025-06-06 11:32:12 +08:00
this.getorderdevice()
2023-11-27 09:57:03 +08:00
},
methods: {
2025-06-06 11:32:12 +08:00
// 点击跳转到车辆
btntz() {
uni.switchTab({
url: '/pages/myorder/returned/index'
})
},
// 点击继续骑行
btnjjqx(){
this.orderflag = true
this.fjflag = false
},
// 点击跳转导航
danghang() {
if (this.orderobj.deviceLatitude && this.orderobj.deviceLongitude) {
uni.openLocation({
latitude: this.orderobj.deviceLatitude, //纬度-目的地/坐标点
longitude: this.orderobj.deviceLongitude, //经度-目的地/坐标点
name: '', //地点名称
address: '' //详细地点名称
})
} else {
uni.showToast({
title: '车辆暂无法导航',
icon: 'none',
duration: 2000
})
}
},
// 点击启动and关闭
btnqd() {
if (this.orderobj.deviceLockStatus == 0) {
let that = this
uni.showModal({
title: '提示',
content: '您是否要解锁车辆?',
showCancel: true,
success: function(res) {
if (res.confirm) {
that.$u.put(`/app/order/openDevice?orderId=${that.orderobj.orderId}`).then((
res) => {
if (res.code == 200) {
uni.showToast({
title: '解锁成功',
icon: 'success',
duration: 2000
})
that.getorderdevice()
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
} else if (res.cancel) {
console.log('取消')
}
}
})
} else if (this.orderobj.deviceLockStatus == 1) {
uni.getLocation({
type: 'wgs84',
success: (res) => {
this.latsc = res.latitude
this.lngsc = res.longitude
},
fail: (err) => {
console.error('获取位置失败:', err)
this.latsc = null
this.lngsc = null
}
})
let that = this
uni.showModal({
title: '提示',
content: '您是否要临时锁车?',
showCancel: true,
success: function(res) {
if (res.confirm) {
let query = {
orderId: that.orderobj.orderId,
lat: that.latsc,
lon: that.lngsc,
}
let url = '/app/order/closeDevice?' + that.$tansParams(query)
that.$u.put(url).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '临时锁车成功',
icon: 'success',
duration: 2000
})
that.getorderdevice()
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
} else if (res.cancel) {
console.log('取消')
}
}
})
}
},
// 点击结束订单
btnjsdd() {
if (this.orderAreaReturnVerify == true) {
uni.navigateTo({
url: '/page_user/hcshenhe?sn=' + this.orderobj.deviceSn + '&orderid=' + this.orderobj.orderId + '&orderAreaId=' + this.orderobj.orderAreaId
})
} else {
uni.getLocation({
type: 'gcj02', // 国内地图更兼容
isHighAccuracy: true,
success: (res) => {
this.latsc = res.latitude
this.lonsc = res.longitude
this.getfeiyong()
},
fail: (err) => {
console.error('获取位置失败:', err)
this.getfeiyong()
}
})
}
},
// 点击还车判断是否需要另外缴费
getfeiyong() {
let data = {
orderId: this.orderobj.orderId,
lon: this.lonsc,
lat: this.latsc,
checkLocation:true
}
this.$u.post(`/app/order/calcFee`, data).then(res => {
if (res.code == 200) {
this.fajinobj = res.data
if (res.data.manageFee > 0 || res.data.dispatchFee > 0) {
this.fjflag = true
this.orderflag = false
} else {
this.gethuan()
}
}else if(res.code == 30001){
uni.showToast({
title: '必须在停车点内还车',
icon: 'none',
duration: 5000
})
}else if(res.code == 30002){
uni.showToast({
title: '不允许在禁停区内还车',
icon: 'none',
duration: 5000
})
}else if(res.code == 30003){
uni.showToast({
title: '必须在运营区内还车',
icon: 'none',
duration: 5000
})
}
})
},
// 点击缴纳罚金继续还车
btnfajin() {
this.gethuan()
},
// 还车统一调用
gethuan() {
let that = this
uni.showModal({
title: '提示',
content: '您确定要还车吗?',
showCancel: true,
success: function(res) {
if (res.confirm) {
let data = {
orderId: that.orderobj.orderId,
picture: that.imgs,
lon: that.lonsc,
lat: that.latsc
}
that.$u.put(`/app/order/end`, data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '还车成功',
icon: 'success',
duration: 2000
})
setTimeout(()=>{
that.getorderdevice()
that.fjflag = false
that.orderflag = false
},1000)
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
} else if (res.cancel) {
}
}
})
},
// 点击跳转到最近停车点
btntcd() {
uni.navigateTo({
url: '/pages/myorder/returned/tingche?areaId=' + this.orderobj.orderAreaId
})
},
// 获取本人正在使用的订单设备
getorderdevice() {
this.$u.get("/app/orderDevice/mineUsing").then((res) => {
if (res.code == 200) {
if (res.data) {
this.orderobj = res.data
this.orderAreaReturnVerify = res.data.orderAreaReturnVerify
this.orderflag = true
} else {
this.orderflag = false
}
}
})
},
2025-04-21 18:00:19 +08:00
// 点击跳转轮播图跳转
btnshangjia(e){
console.log(e,'1212121',this.tiaozhuanlist[e].urlType);
if(this.tiaozhuanlist[e].urlType == 1){
uni.navigateTo({
url: '/page_fenbao/webview?url=' + this.tiaozhuanlist[e].url
})
}else{
uni.navigateTo({
url: '/' + this.tiaozhuanlist[e].url
})
}
2025-04-16 09:14:52 +08:00
},
// 点击显示客服
btnkf(){
if(this.kefulist.length > 0){
this.kefuflag = true
}else{
uni.showToast({
title: '当前暂无客服',
icon: 'none',
duration: 2000
})
}
},
// 获取客服
getkefu(){
2025-04-27 17:37:23 +08:00
this.$u.get(`/app/customerService/indexList?radius=1000&center=${this.jinweidu}`).then(res => {
2025-04-16 09:14:52 +08:00
if(res.code == 200){
2025-04-27 17:37:23 +08:00
this.kefulist = res.after
this.kefuarr = res.before
2025-04-16 09:14:52 +08:00
}
})
},
2025-04-10 08:57:21 +08:00
// 获取广告轮播图
getlunbo(){
this.$u.get("/app/ad").then(res => {
if(res.code == 200){
2025-04-16 09:14:52 +08:00
this.lists = []
2025-04-21 18:00:19 +08:00
this.tiaozhuanlist = res.data
2025-04-11 18:23:16 +08:00
if(res.data.length > 0 && res.data[0] != null){
res.data.forEach(item =>{
2025-04-10 08:57:21 +08:00
this.lists.push({
image:item.picture,
title: item.adId
})
})
}else{
this.lists.push({
image:"https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d",
title: ""
})
}
2025-04-28 15:40:26 +08:00
}else{
this.lists.push({
image:"https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d",
title: ""
})
2025-04-10 08:57:21 +08:00
}
})
},
// 获取个人用户信息
getinfo(){
this.$u.get("/getInfo").then(res => {
if(res.code == 200){
2025-04-16 09:14:52 +08:00
this.info = res.user
2025-04-10 08:57:21 +08:00
this.getMyLocation()
this.getgonggao()
}else if(res.code == 401){
this.getlogo()
}
})
},
// 静默登录
getlogo(){
let taht = this
wx.login({
success(res) {
if (res.code) {
let data = {
loginCode: res.code,
appId:taht.$store.state.appid
}
taht.$u.post('/wxLogin', data).then(res => {
if (res.code == 200) {
uni.setStorageSync('token', res.token)
taht.getinfo()
2025-04-27 17:37:23 +08:00
taht.getlunbo()
2025-04-10 08:57:21 +08:00
}else{
taht.getinfo()
}
})
}
},
})
},
2025-04-01 21:35:30 +08:00
// 点击头部滚动通知
btntopgg(){
this.$u.get(`/app/notice/${this.announcements.noticeId}`).then(resp =>{
if(resp.code == 200){
this.gonggaoxq = resp.data
this.gonggaoflag = true
2024-03-25 19:46:07 +08:00
}
})
},
2025-04-01 21:35:30 +08:00
// 点击公告我知道了
btnggtc(){
this.gonggaoflag = false
uni.setStorageSync('noticeId', this.announcements.noticeId)
2024-01-27 16:37:52 +08:00
},
2025-04-01 21:35:30 +08:00
// 获取最新公告
getgonggao(){
this.$u.get("/app/notice/new?noticeType=1").then(res =>{
if(res.code == 200){
this.announcements = res.data
2025-05-17 12:09:43 +08:00
if(res.data){
this.$u.get(`/app/notice/${res.data.noticeId}`).then(resp =>{
if(resp.code == 200){
this.gonggaoxq = resp.data
if(resp.data.noticeId != uni.getStorageSync('noticeId')){
this.gonggaoflag = true
}
2025-04-01 21:35:30 +08:00
}
2025-05-17 12:09:43 +08:00
})
}
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
})
2024-03-13 10:54:22 +08:00
},
2025-04-01 21:35:30 +08:00
// 点击拨打平台客服电话
2025-04-10 08:57:21 +08:00
btnptkf(tel){
2025-04-01 21:35:30 +08:00
uni.makePhoneCall({
2025-04-16 09:14:52 +08:00
phoneNumber: tel,
2025-04-01 21:35:30 +08:00
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
})
2024-03-13 10:54:22 +08:00
},
2025-04-01 21:35:30 +08:00
// 点击进行跳转页面
btntiao(num){
if(num == 1){ //跳转到地图页
uni.switchTab({
url:'/pages/nearbystores/index'
})
}else if(num == 2){ //跳转到使用帮助页
uni.navigateTo({
url:'/page_user/bangzhu'
})
}else if(num == 3){ //跳转到车辆故障上报
uni.navigateTo({
url:'/page_user/guzhang/index'
})
}else{ //跳转到意见反馈页
uni.navigateTo({
url:'/page_user/yijian'
})
}
2024-03-25 19:46:07 +08:00
},
2025-04-01 21:35:30 +08:00
// 点击附近门店跳转到门店详情页
btnxq(){
2024-03-25 19:46:07 +08:00
uni.navigateTo({
2025-04-01 21:35:30 +08:00
url:'/page_fenbao/storedlist/index'
2024-03-25 19:46:07 +08:00
})
},
2025-04-01 21:35:30 +08:00
// 点击门店拨打电话
btntel() {
uni.makePhoneCall({
phoneNumber: '18888888888',
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
}
2024-03-25 19:46:07 +08:00
})
2024-03-13 10:54:22 +08:00
},
2025-04-01 21:35:30 +08:00
// 点击跳转
btnpage(num){
if(num == 1){ //跳转到附近门店页面
uni.navigateTo({
url:'/page_fenbao/storedlist/fujinshop'
})
}else if(num == 2){ //跳转到我的订单页面
uni.navigateTo({
url:'/pages/myorder/index'
})
}else if(num == 3){ //跳转到租借车辆页面
uni.switchTab({
url:'/pages/myorder/returned/index'
})
}else{
uni.navigateTo({
url:'/page_fenbao/index'
})
}
},
// 点击跳转到地图页
btnzk(){
uni.switchTab({
url:'/pages/nearbystores/index'
2024-03-13 10:54:22 +08:00
})
},
2025-04-01 21:35:30 +08:00
// 获取自身位置
getMyLocation() {
uni.getLocation({
type: 'wgs84',
success: (res) => {
2025-04-27 17:37:23 +08:00
this.jinweidu =res.longitude + ',' + res.latitude
this.getkefu()
2025-04-01 21:35:30 +08:00
this.latitude = Number(res.latitude.toFixed(5)) - 0.005
this.longitude = Number(res.longitude.toFixed(5)) + 0.005
this.setMapScale()
},
fail: (err) => {
console.error('获取位置失败:', err)
}
2024-03-13 10:54:22 +08:00
})
},
2025-04-01 21:35:30 +08:00
// 回到地图中心点
async setMapScale(e, val) {
2025-04-10 08:57:21 +08:00
let mapContext = uni.createMapContext('map', this)
2025-04-01 21:35:30 +08:00
let setScale = () => {
return new Promise((resolve, reject) => {
mapContext.getScale({
success: r => {
resolve()
}
})
})
2025-04-10 08:57:21 +08:00
}
2025-04-01 21:35:30 +08:00
await setScale()
mapContext.moveToLocation({
success: (res) => {
const timer = setTimeout(() => {
clearTimeout(timer)
}, 500)
}
2024-03-13 10:54:22 +08:00
})
2025-04-01 21:35:30 +08:00
},
2023-11-27 09:57:03 +08:00
}
}
</script>
2024-01-27 16:37:52 +08:00
<style lang="scss">
2025-04-10 08:57:21 +08:00
/deep/ wx-swiper{
2025-04-27 17:37:23 +08:00
height: 180rpx !important;
2025-04-10 08:57:21 +08:00
}
2025-06-06 11:32:12 +08:00
.tingchetc {
width: 624rpx;
height: 610rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
top: 572rpx;
z-index: 99;
padding: 28rpx 36rpx;
box-sizing: border-box;
.btnan {
display: flex;
justify-content: space-between;
margin-top: 40rpx;
.fj {
width: 252rpx;
height: 72rpx;
border-radius: 45rpx 45rpx 45rpx 45rpx;
border: 2rpx solid #808080;
font-weight: 600;
font-size: 32rpx;
color: #808080;
text-align: center;
line-height: 72rpx;
}
.qx {
width: 252rpx;
height: 72rpx;
background: #4C97E7;
border-radius: 45rpx 45rpx 45rpx 45rpx;
text-align: center;
line-height: 72rpx;
box-sizing: border-box;
font-weight: 600;
font-size: 32rpx;
color: #FFFFFF;
}
}
.tcimg {
width: 552rpx;
height: 300rpx;
margin-top: 28rpx;
}
.shuom {
font-size: 26rpx;
color: #3D3D3D;
margin-top: 18rpx;
text {
color: #4C97E7;
}
}
.topname {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
display: flex;
align-items: center;
image {
width: 48rpx;
height: 48rpx;
margin-right: 14rpx;
}
}
}
.conts_box {
width: 680rpx;
height: 360rpx;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
margin-top: 38rpx;
background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx 20rpx 20rpx 20rpx;
padding-bottom: 20rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
bottom: 220rpx;
.orderzt {
display: flex;
justify-content: space-between;
padding: 0 20rpx;
margin-top: 20rpx;
box-sizing: border-box;
width: 100%;
}
.txtss {
margin-top: 18rpx;
padding-left: 20rpx;
width: 100%;
font-weight: 500;
font-size: 28rpx;
color: #808080;
}
.dh {
width: 160rpx;
height: 60rpx;
border-radius: 30rpx;
text-align: center;
border: 1px solid #333;
font-size: 28rpx;
padding-top: 10rpx;
box-sizing: border-box;
}
.suocheanniu {
display: flex;
align-items: center;
.lssc {
width: 160rpx;
height: 60rpx;
border-radius: 30rpx;
text-align: center;
background-color: #0D75E5;
color: #fff;
font-size: 28rpx;
box-sizing: border-box;
margin-left: 30rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
.cont_li {
width: 100%;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
padding: 0 20rpx;
box-sizing: border-box;
.left {
display: flex;
flex-wrap: wrap;
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
.km {
font-weight: 400;
font-size: 28rpx;
color: #3D3D3D;
}
.speed {
margin-top: 18rpx;
width: 226rpx;
height: 22rpx;
background: #ccc;
border-radius: 16rpx 16rpx 16rpx 16rpx;
.speeds {
height: 100%;
background: #4297F3;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
}
.NO {
width: 100%;
font-weight: 400;
font-size: 24rpx;
color: #3D3D3D;
margin-top: 18rpx;
}
}
.right {
width: 70%;
padding-right: 20rpx;
font-size: 24rpx;
color: #333;
image {
width: 160rpx;
height: 110rpx;
}
}
}
}
2025-04-01 21:35:30 +08:00
.gonggao{
width: 680rpx;
height: 60rpx;
2025-04-10 08:57:21 +08:00
position: fixed;
left: 50%;
transform: translateX(-50%);
z-index: 99;
2025-04-01 21:35:30 +08:00
display: flex;
align-items: center;
margin-bottom: 10rpx;
background-color: rgba(0, 0, 0, 0.2);
margin: auto;
2025-04-10 08:57:21 +08:00
margin-top: 30rpx;
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
.container {
width: 560rpx;
height: 60rpx; /* 根据需要调整高度 */
display: flex;
align-items: center;
margin: auto;
overflow: hidden;
position: relative;
color: #fff;
box-sizing: border-box;
}
.scroll-text {
width: 100%;
overflow: hidden;
box-sizing: border-box;
display: inline-block;
white-space: nowrap;
animation: scroll 8s linear infinite;
}
.scroll-item {
display: inline-block;
padding: 0 10px;
font-size: 16px;
}
@keyframes scroll {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
.noticetc{
width: 680rpx;
height: 950rpx;
background-color: #fff;
border-radius: 20rpx;
padding: 0 20rpx;
box-sizing: border-box;
position: fixed;
top: 340rpx;
left: 50%;
transform: translateX(-50%);
z-index: 10;
.btn{
width: 600rpx;
height: 100rpx;
line-height: 100rpx;
text-align: center;
border-radius: 50rpx;
background-color: #4297F3;
color: #fff;
font-size: 32rpx;
font-weight: 600;
margin: auto;
margin-top: 30rpx;
}
.name{
width: 100%;
text-align: center;
font-size: 36rpx;
font-weight: 600;
margin-top: 30rpx;
}
.biaoti{
font-size: 32rpx;
margin-top: 20rpx;
}
.cont{
width: 100%;
height: 620rpx;
overflow: scroll;
background-color: #ececec;
margin-top: 20rpx;
padding: 20rpx;
box-sizing: border-box;
}
}
/deep/ .u-title{
padding-bottom: 12rpx !important;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.kefutc{
animation: fadeIn 0.5s ease-in-out forwards;
position: fixed;
2025-04-30 18:03:27 +08:00
top: 580rpx;
2025-04-01 21:35:30 +08:00
left: 50%;
transform: translateX(-50%);
z-index: 10;
.bot{
margin-top: 30rpx;
.wz{
margin-top: 10rpx;
font-weight: 600;
font-size: 28rpx;
color: #3D3D3D;
}
.wzs{
margin-top: 10rpx;
font-size: 24rpx;
color: #7C7C7C;
}
}
.top{
width: 538rpx;
height: 122rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0,0,0,0.1);
border-radius: 14rpx 14rpx 14rpx 14rpx;
2024-03-13 10:54:22 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
justify-content: space-between;
2024-03-13 10:54:22 +08:00
align-items: center;
2025-04-01 21:35:30 +08:00
padding-right: 14rpx;
box-sizing: border-box;
2025-04-10 08:57:21 +08:00
margin-top: 20rpx;
2025-04-01 21:35:30 +08:00
.dianhua{
2025-04-30 18:03:27 +08:00
font-size: 24rpx;
color: #666;
2025-04-01 21:35:30 +08:00
padding-left: 26rpx;
box-sizing: border-box;
2024-01-27 16:37:52 +08:00
}
2025-04-01 21:35:30 +08:00
.boda{
width: 94rpx;
height: 94rpx;
background: #DCEDFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
text-align: center;
padding-top: 8rpx;
box-sizing: border-box;
2025-04-30 18:03:27 +08:00
image{
width: 42rpx;
height: 40rpx;
}
2025-04-01 21:35:30 +08:00
text{
display: block;
}
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
}
2025-04-30 18:03:27 +08:00
.bj{
2025-04-01 21:35:30 +08:00
position: absolute;
top: -280rpx;
z-index: -1;
left: 50%;
transform: translateX(-50%);
width: 614rpx;
2025-04-30 18:03:27 +08:00
height: 1140rpx;
2025-04-01 21:35:30 +08:00
}
}
.mask{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0,0,0,0.3);
z-index: 9;
}
.fujin{
margin-top: 28rpx;
padding: 0 26rpx;
box-sizing: border-box;
.list{
padding-bottom: 230rpx;
box-sizing: border-box;
.dibutishi{
2024-03-13 10:54:22 +08:00
width: 100%;
text-align: center;
2025-04-01 21:35:30 +08:00
margin-top: 24rpx;
color: #ccc;
image{
width: 480rpx;
height: 400rpx;
}
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
.list_item{
2024-03-13 10:54:22 +08:00
width: 670rpx;
2025-04-01 21:35:30 +08:00
height: 340rpx;
2024-03-13 10:54:22 +08:00
background: #FFFFFF;
2025-04-01 21:35:30 +08:00
box-shadow: 0rpx 2rpx 18rpx 0rpx rgba(0,0,0,0.1);
border-radius: 22rpx 22rpx 22rpx 22rpx;
padding: 24rpx;
box-sizing: border-box;
margin: auto;
margin-top: 24rpx;
.cheliang{
border-top: 1rpx solid #D8D8D8;
margin-top: 22rpx;
2024-03-13 10:54:22 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
.quanxin:nth-child(1){
border-right: 1px solid #D8D8D8;
margin-right: 24rpx;
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
.quanxin{
2024-01-27 16:37:52 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
width: 50%;
margin-top: 16rpx;
.qxrt{
.junjia{
2024-03-13 10:54:22 +08:00
font-size: 24rpx;
2025-04-01 21:35:30 +08:00
color: #3D3D3D;
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
.name{
font-weight: 600;
font-size: 28rpx;
color: #3D3D3D;
}
}
.qxlt{
margin-right: 24rpx;
image{
width: 100rpx;
height: 76rpx;
2024-03-13 10:54:22 +08:00
}
2024-01-27 16:37:52 +08:00
}
}
}
2025-04-01 21:35:30 +08:00
.bot{
2024-03-13 10:54:22 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
justify-content: space-between;
.rt{
2024-03-13 10:54:22 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
align-items: center;
image{
width: 48rpx;
height: 48rpx;
margin-left: 16rpx;
}
.rizu{
.qizu{
2024-03-13 10:54:22 +08:00
font-size: 28rpx;
2025-04-01 21:35:30 +08:00
color: #3D3D3D;
2024-03-13 10:54:22 +08:00
}
2025-04-01 21:35:30 +08:00
.price{
2024-03-13 10:54:22 +08:00
font-size: 24rpx;
2025-04-01 21:35:30 +08:00
color: #FF1C1C;
text{
font-size: 36rpx;
font-weight: 600;
}
2024-03-13 10:54:22 +08:00
}
}
}
2025-04-01 21:35:30 +08:00
.lt{
.songqu{
margin-top: 12rpx;
max-width: 140rpx;
text-align: center;
2024-01-27 16:37:52 +08:00
font-size: 24rpx;
2025-04-01 21:35:30 +08:00
color: #4297F3;
height: 38rpx;
line-height: 38rpx;
background: #DCEDFF;
border-radius: 6rpx 6rpx 6rpx 6rpx;
2024-01-27 16:37:52 +08:00
}
2025-04-01 21:35:30 +08:00
.yytime{
font-size: 24rpx;
color: #3D3D3D;
margin-top: 8rpx;
display: flex;
align-items: center;
text{
font-weight: 600;
margin-right: 4rpx;
}
}
2024-01-27 16:37:52 +08:00
}
}
2025-04-01 21:35:30 +08:00
.dizhi{
2024-01-27 16:37:52 +08:00
display: flex;
2025-04-01 21:35:30 +08:00
align-items: center;
font-size: 24rpx;
color: #3D3D3D;
margin-top: 12rpx;
image{
width: 22rpx;
height: 22rpx;
margin-right: 4rpx;
2024-01-27 16:37:52 +08:00
}
}
2025-04-01 21:35:30 +08:00
.top{
display: flex;
justify-content: space-between;
.name{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
}
image{
width: 48rpx;
height: 48rpx;
2024-01-27 16:37:52 +08:00
}
}
}
2025-04-01 21:35:30 +08:00
}
.names{
width: 142rpx;
height: 52rpx;
background: #4297F3;
border-radius: 0 30rpx 0 30rpx;
font-weight: 600;
font-size: 26rpx;
color: #fff;
text-align: center;
line-height: 52rpx;
2024-03-25 19:46:07 +08:00
}
}
2025-04-01 21:35:30 +08:00
.guanggao{
width: 700rpx;
2025-04-27 17:37:23 +08:00
height: 180rpx;
2025-04-01 21:35:30 +08:00
margin: auto;
margin-top: 34rpx;
position: relative;
.kefu{
width: 108rpx;
height: 146rpx;
position: absolute;
bottom: -80rpx;
right: 10rpx;
2024-03-25 19:46:07 +08:00
}
2025-04-10 08:57:21 +08:00
/deep/ .u-swiper-image{
width: 700rpx !important;
2025-04-27 17:37:23 +08:00
height: 180rpx !important;
2025-04-01 21:35:30 +08:00
border-radius: 10rpx;
2024-03-25 19:46:07 +08:00
}
2025-04-01 21:35:30 +08:00
}
.kuaijie{
display: flex;
justify-content: space-between;
padding: 0 26rpx;
box-sizing: border-box;
margin-top: 32rpx;
image{
width: 96rpx;
2025-04-27 17:37:23 +08:00
height: 116rpx;
2024-03-25 19:46:07 +08:00
}
2025-04-01 21:35:30 +08:00
}
.ditu{
width: 700rpx;
2025-04-27 17:37:23 +08:00
height: 580rpx;
2025-04-01 21:35:30 +08:00
background: #FFFFFF;
border-radius: 20rpx;
overflow: hidden;
margin: auto;
margin-top: 22rpx;
position: relative;
.caozuo{
display: flex;
justify-content: space-between;
padding-top: 38rpx;
padding-left: 40rpx;
padding-right: 40rpx;
2024-03-25 19:46:07 +08:00
box-sizing: border-box;
2025-04-01 21:35:30 +08:00
image{
width: 96rpx;
height: 40rpx;
}
}
.zk{
width: 80rpx;
height: 80rpx;
position: absolute;
right: 8rpx;
2025-04-27 17:37:23 +08:00
bottom: 180rpx;
2025-04-01 21:35:30 +08:00
}
map{
width: 700rpx;
2025-04-10 08:57:21 +08:00
height: 412rpx;
2024-01-27 16:37:52 +08:00
}
}
2024-03-13 10:54:22 +08:00
</style>