小鹿骑行 运营区展示小修改 部分页面微调

This commit is contained in:
3321822538@qq.com 2025-06-19 17:42:55 +08:00
parent b3872e12bd
commit 81559044f4
7 changed files with 154 additions and 188 deletions

View File

@ -461,7 +461,7 @@
bqlist: ['含电池', '含头盔', '含充电器', '含瓶装水', '含竹篮'],
fanganindex: 0,
zutime: 1,
checked: false,
checked: true,
mxflag: true,
modelId: '',
taocanlist: [],

View File

@ -1627,11 +1627,14 @@ import { showLoading } from "../../components/blufi/util"
}
this.$u.get(`/bst/areaSub/listByAreaId`, data).then((res) => {
if (res.code === 200) {
// status1
const filteredData = res.data.filter(item => item.status != 1);
console.log(filteredData,'000000');
//
const type1Data = []
const type2Data = []
const type3Data = []
res.data.forEach(row => {
filteredData.forEach(row => { // 使filteredDatares.data
if (row.type == 1) {
type1Data.push(row)
} else if (row.type == 2) {
@ -1643,17 +1646,22 @@ import { showLoading } from "../../components/blufi/util"
const validBoundaries = type1Data.map(row => row.boundaryStr).filter(boundary =>
typeof boundary === 'string' && boundary.trim() !== '')
const polylines = this.convertBoundaryToPolylines(validBoundaries, 1)
const validBoundaries1 = type2Data.map(row => row.boundaryStr).filter(boundary =>
typeof boundary === 'string' && boundary.trim() !== '')
const polylines1 = this.convertBoundaryToPolylines(validBoundaries1, 2)
const validBoundaries2 = type3Data.map(row => row.boundaryStr).filter(boundary =>
typeof boundary === 'string' && boundary.trim() !== '')
const polylines2 = this.convertBoundaryToPolylines(validBoundaries2, 3)
// this.polyline
this.polyline = this.polyline.concat(polylines2)
this.polyline = this.polyline.concat(polylines1)
this.polyline = this.polyline.concat(polylines)
this.parkingList = res.data
// 使
this.parkingList = filteredData
}
}).catch(error => {
console.error("Error fetching parking data:", error)

View File

@ -16,49 +16,93 @@
</map>
<view class="dingdanxx">
<view class="" style="padding-bottom: 20rpx;box-sizing: border-box;">
<view class="name"
style="display: flex;justify-content: space-between;padding-right: 20rpx;box-sizing: border-box;">
订单信息
style="display: flex;justify-content: space-between;padding-right: 20rpx;box-sizing: border-box;font-size: 26rpx;">
订单编号{{orderxqobj.no}}
<text style="color: #3A7EDB;" v-if="orderxqobj.status == 'PROCESSING'">订单进行中</text>
<text style="color: #3A7EDB;" v-if="orderxqobj.status == 'FINISHED'">订单已完成</text>
<text style="color: #ccc;" v-if="orderxqobj.status == 'CANCELED'">订单已取消</text>
</view>
<view class="dingdanbh">
订单编号<span>{{orderxqobj.no}}</span>
<view class="dingdanbh" style="display: flex;justify-content: space-between;">
开始骑行时间<span>{{orderxqobj.startTime == null ? '--' : orderxqobj.startTime}}</span>
</view>
<view class="dingdanul">
<view class="dingdanli" style="width: 100%;">
套餐名称<span v-if="orderxqobj.suitName">{{orderxqobj.suitName}}</span>
<span v-else>--</span>
<view class="dingdanli" style="width: 100%;display: flex;justify-content: space-between;">
骑行用户<span style="color: #808080;">{{orderxqobj.userName}}(<span style="color: #3A7EDB;" @click="checkbtn(1)">{{orderxqobj.userPhone}}</span>)</span>
</view>
</view>
<view class="dingdanul">
<view class="dingdanli">
计费方式<span v-if="orderxqobj.suitRidingRule == 1">起步价计费</span>
<span v-if="orderxqobj.suitRidingRule == 2">区间计费</span>
<view class="dingdanli" style="display: flex;justify-content: space-between;">
套餐名称<span style="color: #3A7EDB;">{{orderxqobj.suitName}}</span>
</view>
</view>
<view class="dingdanul">
<view class="dingdanli">
预存费用<span
style="color: #3A7EDB;font-weight: 600;">{{orderxqobj.depositFee == undefined ? '¥0.00' : '¥' + orderxqobj.depositFee}}</span>
</view>
<view class="dingdanli">
免费时长<span>{{orderxqobj.suitFreeRideTime}}分钟</span>
<view class="dingdanli" style="display: flex;justify-content: space-between;">
实收金额<span style="color: #F17F37;font-weight: 600;">{{orderxqobj.actualReceivedAmount == undefined ? '0.00' : orderxqobj.actualReceivedAmount}}</span>
</view>
</view>
<view class="dingdanul">
<view class="dingdanli">
租赁用户<span v-if="orderxqobj.userName">{{orderxqobj.userName}}</span>
<span v-else>--</span>
</view>
<view class="dingdanli">
手机号码<span v-if="orderxqobj.userPhone" style="color: #4C97E7;"
@click="checkbtn(1)">{{orderxqobj.userPhone}}</span>
<span v-else>--</span>
<view class="" style="display: flex;width: 100%;display: flex;justify-content: space-between;">
骑行时长<span style="font-size: 32rpx;">{{formattedDuration}} <span style="margin-left: 20rpx;font-size: 26rpx;">{{kmDistance}}km</span></span>
</view>
</view>
<view class="yingshouprice">
<view class="dingdanul">
<view class="dingdanli" style="display: flex;justify-content: space-between;">
支付方式<span v-if="orderxqobj.payType == 1">押金抵扣</span><span v-if="orderxqobj.payType == 2">用户支付</span>
</view>
</view>
</view>
<view class="" style="width: 100%;height: 20rpx;background-color: #F6F6F6;">
</view>
<view class="xingchengxx" style="padding-bottom: 30rpx;box-sizing: border-box;border-top: 1px solid #F3F3F3;margin-top: 0;">
<view class="name">
费用明细
</view>
<view class="dingdanul">
<view class="dingdanli" style="display: flex;justify-content: space-between;font-size: 32rpx;color: #3D3D3D;">
骑行费<span>{{orderxqobj.ridingFee}}</span>
</view>
</view>
<view class="start" style="display: flex;justify-content: space-between;font-size: 32rpx;color: #3D3D3D;">
调度费<span>{{orderxqobj.dispatchFee}}</span>
</view>
<view class="start" style="display: flex;justify-content: space-between;font-size: 32rpx;color: #3D3D3D;">
管理费<span>{{orderxqobj.manageFee}}</span>
</view>
<view class="start" style="border-bottom: 1px dashed #efefef;padding-bottom: 20rpx;box-sizing: border-box;display: flex;justify-content: space-between;font-size: 32rpx;color: #3D3D3D;">
车损费<span>{{orderxqobj.deductionFee}}</span>
</view>
<view class="start" style="display: flex;justify-content: space-between;">
<view class=""></view>
<view class="">
结算金额<span>{{orderxqobj.totalFee}}</span>
</view>
</view>
<view class="start" style="display: flex;justify-content: space-between;">
<view class=""></view>
<view class="">
优惠<span>{{orderxqobj.totalDiscountAmount}}</span>
</view>
</view>
<view class="start" style="display: flex;justify-content: space-between;">
<view class=""></view>
<view class="">
退款<span style="color: #FF4444;">{{orderxqobj.adminRefundAmount}}</span>
</view>
</view>
<view class="start" style="display: flex;justify-content: space-between;border-top: 1px dashed #D8D8D8;padding-top: 20rpx;box-sizing: border-box;">
<view class=""></view>
<view class="">
实付<span style="color: #FF7310;font-size: 32rpx;">{{orderxqobj.actualReceivedAmount}}</span>
</view>
</view>
</view>
<!-- <view class="yingshouprice">
实收金额<span style="color: #4C97E7;font-weight: 600;">{{orderxqobj.actualReceivedAmount}}</span>
</view>
<view class="dingdanul" style="display: flex;flex-wrap: wrap;padding: 0;margin-top: 0;">
@ -132,9 +176,6 @@
<view class="yingshouprice" style="border: 0;">
折扣<span>{{orderxqobj.vipDiscountValue == null ? '--' : orderxqobj.vipDiscountValue + '折'}}</span>
</view>
<!-- <view class="yingshouprice" style="border: 0;">
骑行费优惠<span>{{orderxqobj.ridingDiscount == null ? '0.00' : orderxqobj.ridingDiscount}}</span>
</view> -->
</view>
</view>
<view class="xingchengxx" style="padding-bottom: 30rpx;box-sizing: border-box;">
@ -163,7 +204,7 @@
<view class="start">
结束时间<span v-if="orderxqobj.ridePayTime">{{orderxqobj.ridePayTime}}</span>
<span v-else>--</span>
</view>
</view> -->
</view>
<view class="xingchengxx" style="max-height: 9999rpx;padding-bottom: 20rpx;box-sizing: border-box;">
@ -534,7 +575,7 @@
<view class="">
改价原因
</view>
<input type="text" style="width:440rpx;" v-model="yuanyin" :disabled="true" placeholder="请输入改价原因" />
<input type="text" style="width:440rpx;" v-model="yuanyin" placeholder="请输入改价原因" />
</view>
<view class="anniu">
<view class="qx" @click="qxqx">
@ -1205,8 +1246,7 @@
if (res.code == 200) {
this.orderxqobj = res.data
this.updateTrackData()
this.suitSeconds = res.data.suitSeconds == null ? '--' : Math.ceil(res.data.suitSeconds /
3600)
this.suitSeconds = res.data.suitSeconds == null ? '--' : Math.ceil(res.data.suitSeconds / 3600)
this.orderDeviceList = res.data.orderDeviceList
console.log(this.orderDeviceList, '12212121211124121')
}
@ -1245,7 +1285,6 @@
})
}
},
toTrack() {
let endTime = this.orderxqobj.endTime || this.formatCurrentTime()
console.log(endTime, '020202002');
@ -2333,10 +2372,11 @@
};
this.$u.get('/bst/areaSub/listByAreaId', data).then((res) => {
if (res.code === 200) {
const filteredData = res.data.filter(item => item.status != 1);
const type1Data = [];
const type2Data = [];
const type3Data = [];
res.data.forEach(row => {
filteredData.forEach(row => {
if (row.type == 1) type1Data.push(row);
else if (row.type == 2) type2Data.push(row);
else if (row.type == 3) type3Data.push(row);
@ -2366,7 +2406,7 @@
this.polygon = this.polygon.concat(polygons2);
}
this.parkingList = res.data;
this.parkingList = filteredData;
this.$forceUpdate();
}
}).catch(error => {
@ -2523,7 +2563,7 @@
max-height: 1092rpx;
background: #fff;
border-radius: 20rpx 20rpx 20rpx 20rpx;
z-index: 2;
z-index: 99;
padding: 0 30rpx;
box-sizing: border-box;
@ -2683,16 +2723,16 @@
}
.dingdanul {
font-size: 28rpx;
font-size: 32rpx;
color: #808080;
padding: 0 28rpx;
box-sizing: border-box;
margin-top: 26rpx;
margin-top: 40rpx;
display: flex;
justify-content: space-between;
view {
width: 50%;
width: 100%;
}
span {
@ -2705,7 +2745,7 @@
font-size: 32rpx;
color: #3D3D3D;
width: 100%;
border-bottom: 1rpx solid #F3F3F3;
border-bottom: 1rpx dashed #F3F3F3;
padding-top: 22rpx;
padding-left: 28rpx;
padding-bottom: 22rpx;
@ -2718,8 +2758,8 @@
max-height: 2858rpx;
background: #FFFFFF;
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding-bottom: 20rpx;
box-sizing: border-box;
// padding-bottom: 20rpx;
// box-sizing: border-box;
.yingshouprice {
border-top: 1px solid #F3F3F3;
@ -2736,7 +2776,7 @@
}
.dingdanul {
font-size: 28rpx;
font-size: 32rpx;
color: #808080;
padding: 0 28rpx;
box-sizing: border-box;
@ -2745,7 +2785,7 @@
justify-content: space-between;
view {
width: 50%;
width: 100%;
}
span {
@ -2754,7 +2794,7 @@
}
.dingdanbh {
font-size: 28rpx;
font-size: 32rpx;
color: #808080;
padding: 0 28rpx;
box-sizing: border-box;
@ -2770,7 +2810,7 @@
font-size: 32rpx;
color: #3D3D3D;
width: 100%;
border-bottom: 1rpx solid #F3F3F3;
border-bottom: 1rpx dashed #F3F3F3;
padding-top: 22rpx;
padding-left: 28rpx;
padding-bottom: 22rpx;

View File

@ -113,22 +113,6 @@
{{info.payRefunded == null ? '0.00' : info.payRefunded.toFixed(2)}}
</view>
</view>
<!-- <view class="one">
<view class="qian">
还车退款
</view>
<view class="shen">
{{info.payAutoRefund == null ? '0.00' : info.payAutoRefund.toFixed(2)}}
</view>
</view> -->
<!-- <view class="one">
<view class="qian">
商家退款
</view>
<view class="shen">
{{info.payAdminRefund == null ? '0.00' : info.payAdminRefund.toFixed(2)}}
</view>
</view> -->
</view>
<view class="xuxian">
<view class="one">
@ -357,10 +341,11 @@
};
this.$u.get('/bst/areaSub/listByAreaId', data).then((res) => {
if (res.code === 200) {
const filteredData = res.data.filter(item => item.status != 1);
const type1Data = [];
const type2Data = [];
const type3Data = [];
res.data.forEach(row => {
filteredData.forEach(row => {
if (row.type == 1) type1Data.push(row);
else if (row.type == 2) type2Data.push(row);
else if (row.type == 3) type3Data.push(row);
@ -390,7 +375,7 @@
this.polygon = this.polygon.concat(polygons2);
}
this.parkingList = res.data
this.parkingList = filteredData
this.$forceUpdate()
this.toggleIconAndCallout()
}

View File

@ -22,7 +22,6 @@
<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">
我知道了
@ -33,12 +32,6 @@
<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>
<!-- <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> <!-- 使用帮助 -->
@ -47,11 +40,8 @@
<image @click="btnkf" src="https://api.ccttiot.com/smartmeter/img/static/up53i8F9cn9wajU8dXuS" mode=""></image> <!-- 客服 -->
</view>
</view>
<view class="guanggao">
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d" mode="aspectFill"></image> -->
<u-swiper :list="lists" @click="btnshangjia"></u-swiper>
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uEMuO2M40WcExJVSprIy" class="kefu" mode=""></image> -->
</view>
<view class="fujin">
<view class="names">
@ -148,17 +138,12 @@
</view>
</view>
<view class="bot">
<!-- <view class="wz">
客服工作时间
</view> -->
<view class="wzs">
客服电话高峰期可能遇忙请耐心等待
</view>
</view>
</view>
</view>
<!-- 有订单弹窗 -->
<view class="conts_box" v-if="orderflag" @click="btntz">
<view class="orderzt">
@ -204,7 +189,6 @@
</view>
</view>
</view>
<!-- 扫码用车未在停车点内还车弹窗 -->
<view class="tingchetc" v-if="fjflag">
<view class="topname">
@ -212,11 +196,9 @@
{{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>
需支付<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>
<image :src="iconobj.tingcheimg" class="tcimg" mode="aspectFill"></image>
<view class="btnan">
<view class="fj" @click="btnfajin">
缴纳罚金还车
@ -227,7 +209,6 @@
</view>
</view>
<view class="mask" v-if="fjflag"></view>
<view class="mask" v-if="kefuflag"></view>
<tab-bar :indexs='0'></tab-bar>
</view>
@ -254,7 +235,6 @@
tiaozhuanlist:[],
jinweidu:'',
kefuarr:[],
fjflag: false,
orderflag: false,
iconobj:this.$store.state.iconobj,
@ -549,7 +529,6 @@
url: '/pages/myorder/returned/tingche?areaId=' + this.orderobj.orderAreaId
})
},
// 使
getorderdevice() {
this.$u.get("/app/orderDevice/mineUsing").then((res) => {
@ -564,7 +543,6 @@
}
})
},
//
btnshangjia(e){
console.log(e,'1212121',this.tiaozhuanlist[e].urlType);
@ -626,7 +604,6 @@
}
})
},
//
getinfo(){
this.$u.get("/getInfo").then(res => {
@ -694,7 +671,6 @@
}
})
},
//
btnptkf(tel){
uni.makePhoneCall({
@ -828,12 +804,10 @@
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;
@ -845,7 +819,6 @@
text-align: center;
line-height: 72rpx;
}
.qx {
width: 252rpx;
height: 72rpx;
@ -859,30 +832,25 @@
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;
@ -907,7 +875,6 @@
left: 50%;
transform: translateX(-50%);
bottom: 220rpx;
.orderzt {
display: flex;
justify-content: space-between;
@ -916,7 +883,6 @@
box-sizing: border-box;
width: 100%;
}
.txtss {
margin-top: 18rpx;
padding-left: 20rpx;
@ -925,7 +891,6 @@
font-size: 28rpx;
color: #808080;
}
.dh {
width: 160rpx;
height: 60rpx;
@ -936,11 +901,9 @@
padding-top: 10rpx;
box-sizing: border-box;
}
.suocheanniu {
display: flex;
align-items: center;
.lssc {
width: 160rpx;
height: 60rpx;
@ -956,7 +919,6 @@
justify-content: center;
}
}
.cont_li {
width: 100%;
display: flex;
@ -965,34 +927,29 @@
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;
@ -1001,7 +958,6 @@
margin-top: 18rpx;
}
}
.right {
width: 70%;
padding-right: 20rpx;

View File

@ -793,17 +793,7 @@
showCancel: true,
success: function(res) {
if (res.confirm) {
// if(that.ver_dataflag != 3){
// if(that.ljflag == true){
// uni.showLoading({
// title: '...',
// mask: true
// })
// that.ljflag = false
// that.findDevice()
// that.getchaoshi()
// }
// }
} else if (res.cancel) {
}
@ -938,17 +928,7 @@
showCancel: true,
success: function(res) {
if (res.confirm) {
// if(that.ver_dataflag != 3){
// if(that.ljflag == true){
// uni.showLoading({
// title: '...',
// mask: true
// })
// that.ljflag = false
// that.findDevice()
// that.getchaoshi()
// }
// }
} else if (res.cancel) {
}
@ -1038,15 +1018,7 @@
success: function(res) {
if (res.confirm) {
if(that.ver_dataflag != 3){
// if(that.ljflag == true){
// uni.showLoading({
// title: '...',
// mask: true
// })
// that.ljflag = false
// that.findDevice()
// that.getchaoshi()
// }
}
} else if (res.cancel) {
@ -1635,7 +1607,11 @@
.anniuhc {
display: flex;
justify-content: space-between;
position: fixed;
left: 0;
bottom: 210rpx;
width: 100%;
z-index: 99;
.huanche {
width: 48%;
height: 86rpx;

View File

@ -1227,13 +1227,14 @@
this.$u.get(`/app/areaSub/listByArea?areaId=${this.yyid}`).then((res) => {
if (res.code === 200 && Array.isArray(res.data)) {
//
this.cachedParkingData[this.yyid] = res.data
const filteredData = res.data.filter(item => item.status != 1);
this.cachedParkingData[this.yyid] = filteredData
const type1Data = []
const type2Data = []
const type3Data = []
res.data.forEach(row => {
filteredData.forEach(row => {
if(row.type == 1) type1Data.push(row)
else if(row.type == 2) type2Data.push(row)
else if(row.type == 3) type3Data.push(row)
@ -1274,7 +1275,7 @@
//
this.polyline = allPolylines
this.parkingList = res.data
this.parkingList = filteredData
this.isFirstLoad = false
}
})