11
This commit is contained in:
parent
28085e2538
commit
80f1d27aac
|
@ -122,6 +122,15 @@
|
|||
"navigationStyle": "custom",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "order/search_device",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom",
|
||||
"enablePullDownRefresh" : false
|
||||
}
|
||||
}
|
||||
|
||||
// ... 分包A的其他页面
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<view class="btn1">
|
||||
车辆扫码
|
||||
</view>
|
||||
<view class="btn2">
|
||||
<view class="btn2" @click="topage()">
|
||||
车辆搜索
|
||||
</view>
|
||||
</view>
|
||||
|
@ -163,6 +163,11 @@
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
topage(){
|
||||
uni.navigateTo({
|
||||
url:'/pages_admin/order/search_device'
|
||||
})
|
||||
},
|
||||
allVehicleNum() {
|
||||
let data = {
|
||||
powerStart: this.rangeValue[0],
|
||||
|
@ -306,7 +311,7 @@
|
|||
}
|
||||
})
|
||||
})
|
||||
setTimeout(() => {
|
||||
|
||||
this.status9.forEach(item => {
|
||||
this.markers.push({
|
||||
id: parseFloat(item.mac),
|
||||
|
@ -327,7 +332,7 @@
|
|||
}
|
||||
})
|
||||
})
|
||||
}, 200)
|
||||
|
||||
|
||||
},
|
||||
getmarks() {
|
||||
|
@ -464,7 +469,15 @@
|
|||
// 阻止事件冒泡
|
||||
|
||||
this.sn = e.markerId
|
||||
this.todetail()
|
||||
for (let i = 0; i < this.listData.length; i++) {
|
||||
|
||||
if (this.listData[i].sn == this.sn) {
|
||||
uni.navigateTo({
|
||||
url:'/pages_admin/order/device_detail?id='+this.sn
|
||||
})
|
||||
}
|
||||
}
|
||||
// this.listData
|
||||
|
||||
}
|
||||
|
||||
|
@ -489,11 +502,11 @@
|
|||
|
||||
},
|
||||
|
||||
topage() {
|
||||
uni.navigateTo({
|
||||
url: '/page_fix/repair/repair_index'
|
||||
})
|
||||
},
|
||||
// topage() {
|
||||
// uni.navigateTo({
|
||||
// url: '/page_fix/repair/repair_index'
|
||||
// })
|
||||
// },
|
||||
getordernum() {
|
||||
// 发送请求获取数据
|
||||
this.$u.get('/appVerify/adminOrder/num?adminId=' + 2).then((res) => {
|
||||
|
|
|
@ -21,12 +21,8 @@
|
|||
手机号
|
||||
</view>
|
||||
<view class="sear_ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="请输入内容"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
@input="search()">
|
||||
<input type="text" v-model="searchKeyword" placeholder="请输入内容" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="search()">
|
||||
</view>
|
||||
</view>
|
||||
<view class="tap">
|
||||
|
@ -45,12 +41,15 @@
|
|||
</view>
|
||||
<u-mask :show="show" @click="show = false" :z-index='100' />
|
||||
|
||||
<u-picker mode="time" v-model="time1" :params="params" @confirm="confirm1" :default-time='pickertime'></u-picker>
|
||||
<u-picker mode="time" v-model="time2" :params="params" @confirm="confirm2" :default-time='pickertime'></u-picker>
|
||||
<u-picker mode="time" v-model="time1" :params="params" @confirm="confirm1"
|
||||
:default-time='pickertime'></u-picker>
|
||||
<u-picker mode="time" v-model="time2" :params="params" @confirm="confirm2"
|
||||
:default-time='pickertime'></u-picker>
|
||||
<view class="warp_box">
|
||||
<swiper class="swiper" :style="{ height: swiperHeight + 'rpx' }" :current='curtitidx' @change="swiperchange" next-margin='-20rpx'>
|
||||
<swiper class="swiper" :style="{ height: swiperHeight + 'rpx' }" :current='curtitidx' @change="swiperchange"
|
||||
next-margin='-20rpx'>
|
||||
<swiper-item>
|
||||
<view class="swiper-item ">
|
||||
<view class="swiper-item " v-if="loading">
|
||||
<view class="card" v-for="(item,index) in allList" :key="index">
|
||||
<view class="line"></view>
|
||||
<view class="top_info">
|
||||
|
@ -61,7 +60,8 @@
|
|||
<view class="yuan"></view>
|
||||
进行中
|
||||
</view>
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3" style="color: orangered;">
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3"
|
||||
style="color: orangered;">
|
||||
<view class="yuan" style="background: orangered;"></view>
|
||||
待支付
|
||||
</view>
|
||||
|
@ -96,16 +96,19 @@
|
|||
<view class="btn" v-if="item.status==0||item.status==2" @click="showfzs(item)">
|
||||
辅助还车
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==1||item.status==3" @click="showgjs()">
|
||||
<view class="btn" v-if="item.status==1||item.status==3" @click="showgjs(item)">
|
||||
改价
|
||||
</view>
|
||||
<view class="btn_line" v-if="item.status!=4">
|
||||
<view class="btn" v-if="item.status==4" @click="showtks(item)">
|
||||
退款
|
||||
</view>
|
||||
<view class="btn_line">
|
||||
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==4" style="width: 100%;">
|
||||
<!-- <view class="btn" v-if="item.status==4" style="width: 100%;">
|
||||
查看详情
|
||||
</view>
|
||||
<view class="btn" v-if="item.status!=4&&item.status!=2" >
|
||||
</view> -->
|
||||
<view class="btn" @click="toOrderDetail(item.orderNo)">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
|
@ -113,7 +116,7 @@
|
|||
</view>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
<view class="swiper-item ">
|
||||
<view class="swiper-item " v-if="loading">
|
||||
<view class="card" v-for="(item,index) in ingList" :key="index">
|
||||
<view class="line"></view>
|
||||
<view class="top_info">
|
||||
|
@ -124,7 +127,8 @@
|
|||
<view class="yuan"></view>
|
||||
进行中
|
||||
</view>
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3" style="color: orangered;">
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3"
|
||||
style="color: orangered;">
|
||||
<view class="yuan" style="background: orangered;"></view>
|
||||
待支付
|
||||
</view>
|
||||
|
@ -162,13 +166,14 @@
|
|||
<view class="btn" v-if="item.status==1||item.status==3" @click="showgjs()">
|
||||
改价
|
||||
</view>
|
||||
<view class="btn_line" v-if="item.status!=4">
|
||||
<view class="btn" v-if="item.status==4" @click="showtks(item)">
|
||||
退款
|
||||
</view>
|
||||
<view class="btn_line">
|
||||
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==4" style="width: 100%;">
|
||||
查看详情
|
||||
</view>
|
||||
<view class="btn" v-if="item.status!=4" >
|
||||
|
||||
<view class="btn" @click="toOrderDetail(item.orderNo)">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
|
@ -176,8 +181,8 @@
|
|||
</view>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
<view class="swiper-item ">
|
||||
<view class="card" @click="todetail(item.id)" v-for="(item,index) in reprement" :key="index">
|
||||
<view class="swiper-item " v-if="loading">
|
||||
<view class="card" v-for="(item,index) in reprement" :key="index">
|
||||
<view class="line"></view>
|
||||
<view class="top_info">
|
||||
<view class="top_info_left">
|
||||
|
@ -187,7 +192,8 @@
|
|||
<view class="yuan"></view>
|
||||
进行中
|
||||
</view>
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3" style="color: orangered;">
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3"
|
||||
style="color: orangered;">
|
||||
<view class="yuan" style="background: orangered;"></view>
|
||||
待支付
|
||||
</view>
|
||||
|
@ -222,16 +228,17 @@
|
|||
<view class="btn" v-if="item.status==0||item.status==2" @click="showfzs(item)">
|
||||
辅助还车
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==1||item.status==3" @click="showgjs()">
|
||||
<view class="btn" v-if="item.status==1||item.status==3" @click="showgjs(item)">
|
||||
改价
|
||||
</view>
|
||||
<view class="btn_line" v-if="item.status!=4">
|
||||
<view class="btn" v-if="item.status==4" @click="showtks(item)">
|
||||
退款
|
||||
</view>
|
||||
<view class="btn_line">
|
||||
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==4" style="width: 100%;">
|
||||
查看详情
|
||||
</view>
|
||||
<view class="btn" v-if="item.status!=4" >
|
||||
|
||||
<view class="btn" @click="toOrderDetail(item.orderNo)">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
|
@ -239,7 +246,7 @@
|
|||
</view>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
<view class="swiper-item ">
|
||||
<view class="swiper-item " v-if="loading">
|
||||
|
||||
<view class="card" v-for="(item,index) in alreadyList" :key="index">
|
||||
<view class="line"></view>
|
||||
|
@ -251,7 +258,8 @@
|
|||
<view class="yuan"></view>
|
||||
进行中
|
||||
</view>
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3" style="color: orangered;">
|
||||
<view class="top_info_right" v-if="item.status==1||item.status==3"
|
||||
style="color: orangered;">
|
||||
<view class="yuan" style="background: orangered;"></view>
|
||||
待支付
|
||||
</view>
|
||||
|
@ -286,10 +294,13 @@
|
|||
<view class="btn" v-if="item.status==0||item.status==2" @click="showfzs(item)">
|
||||
辅助还车
|
||||
</view>
|
||||
<view class="btn" v-if="item.status==4" @click="showtks(item)">
|
||||
退款
|
||||
</view>
|
||||
<view class="btn_line">
|
||||
|
||||
</view>
|
||||
<view class="btn">
|
||||
<view class="btn" @click="toOrderDetail(item.orderNo)">
|
||||
查看详情
|
||||
</view>
|
||||
</view>
|
||||
|
@ -326,38 +337,50 @@
|
|||
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
租赁费
|
||||
调度费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="0.00"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
<input type="text" v-model="orderInfo.dispatchFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
租赁费
|
||||
管理费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="0.00"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
<input type="text" v-model="orderInfo.manageFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
骑行费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text" v-model="orderInfo.ridingFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
预约费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text" v-model="orderInfo.appointmentFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bot">
|
||||
<view class="bot_left" @click="closefz()">
|
||||
<view class="bot_left" @click="closegj()">
|
||||
取消
|
||||
</view>
|
||||
<view class="bot_right">
|
||||
<view class="bot_right" @click="changeMoney()">
|
||||
确定
|
||||
</view>
|
||||
</view>
|
||||
|
@ -368,31 +391,13 @@
|
|||
退款
|
||||
</view>
|
||||
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
租赁费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="0.00"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
调度费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="0.00"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
<input type="text" v-model="orderInfo.dispatchFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="checkAndUpdate('dispatchFee')">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
|
@ -401,12 +406,28 @@
|
|||
管理费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="0.00"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
<input type="text" v-model="orderInfo.manageFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="checkAndUpdate('manageFee')">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
骑行费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text" v-model="orderInfo.ridingFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="checkAndUpdate('ridingFee')">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ipt_box">
|
||||
<view class="text">
|
||||
预约费
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text" v-model="orderInfo.appointmentFee" placeholder="0.00" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="checkAndUpdate('appointmentFee')">
|
||||
元
|
||||
</view>
|
||||
</view>
|
||||
|
@ -415,21 +436,16 @@
|
|||
原因
|
||||
</view>
|
||||
<view class="ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="选填"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
>
|
||||
元
|
||||
<input type="text" v-model="orderInfo.reason" placeholder="选填" class="input"
|
||||
placeholder-style="color:#C7CDD3" @input="checkAndUpdate('reason')">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bot">
|
||||
<view class="bot_left" @click="show=false">
|
||||
<view class="bot_left" @click="closetk()">
|
||||
取消
|
||||
</view>
|
||||
<view class="bot_right">
|
||||
<view class="bot_right" @click="backMoney()">
|
||||
确定
|
||||
</view>
|
||||
</view>
|
||||
|
@ -439,6 +455,8 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
let timerId;
|
||||
let timerId1;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -456,11 +474,11 @@
|
|||
pickertime: '',
|
||||
time1: false,
|
||||
time2: false,
|
||||
lasTime:'00-00',
|
||||
firsTime:'00-00',
|
||||
lasTime: '',
|
||||
firsTime: '',
|
||||
searchKeyword: '',
|
||||
curtitidx: 0,
|
||||
swiperHeight:414*3,
|
||||
swiperHeight: 400,
|
||||
allList: [],
|
||||
ingList: [],
|
||||
reprement: [],
|
||||
|
@ -469,8 +487,11 @@
|
|||
showfz: false,
|
||||
showgj: false,
|
||||
showtk: false,
|
||||
orderInfo:{}
|
||||
orderInfo: {},
|
||||
loading: false,
|
||||
initialValues: {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
@ -480,9 +501,9 @@
|
|||
// 执行其他操作...
|
||||
});
|
||||
this.orderList()
|
||||
this.orderList1()
|
||||
this.orderList2()
|
||||
this.orderList3()
|
||||
// this.orderList1()
|
||||
// this.orderList2()
|
||||
// this.orderList3()
|
||||
},
|
||||
watch: {
|
||||
curtitidx(newValue, oldValue) {
|
||||
|
@ -505,8 +526,118 @@
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
toOrderDetail(id){
|
||||
uni.navigateTo({
|
||||
url:'/pages_admin/order/order_detail?id='+id
|
||||
})
|
||||
},
|
||||
checkAndUpdate(key) {
|
||||
clearTimeout(timerId);
|
||||
timerId = setTimeout(() => {
|
||||
let inputValue = parseFloat(this.orderInfo[key]);
|
||||
// Get the initial value corresponding to the key
|
||||
let initialValue = parseFloat(this.initialValues[key]);
|
||||
// If input value exceeds the initial value, revert back to initial value
|
||||
if (inputValue > initialValue) {
|
||||
this.orderInfo[key] = initialValue;
|
||||
}
|
||||
}, 500);
|
||||
// Convert input value to number
|
||||
|
||||
},
|
||||
// 退款
|
||||
backMoney() {
|
||||
let data = {
|
||||
orderNo: this.orderInfo.orderNo,
|
||||
dispatchFee: this.orderInfo.dispatchFee,
|
||||
manageFee: this.orderInfo.manageFee,
|
||||
ridingFee: this.orderInfo.ridingFee,
|
||||
appointmentFee: this.orderInfo.appointmentFee,
|
||||
reason: this.orderInfo.reason
|
||||
}
|
||||
|
||||
this.$u.put('/appVerify/order/refund', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.show = false
|
||||
this.showgj = false
|
||||
this.orderInfo = {}
|
||||
if (this.curtitidx == 0) {
|
||||
this.orderList()
|
||||
} else if (this.curtitidx == 3) {
|
||||
this.orderList3()
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
},
|
||||
showtks(item) {
|
||||
this.orderInfo = item
|
||||
this.show = true
|
||||
this.showtk = true
|
||||
this.initialValues.dispatchFee=this.orderInfo .dispatchFee
|
||||
this.initialValues.manageFee=this.orderInfo .manageFee
|
||||
this.initialValues.ridingFee=this.orderInfo .ridingFee
|
||||
this.initialValues.appointmentFee=this.orderInfo .appointmentFee
|
||||
},
|
||||
closetk() {
|
||||
this.show = false
|
||||
this.showtk = false
|
||||
this.orderInfo = {}
|
||||
},
|
||||
// 改价
|
||||
changeMoney() {
|
||||
let data = {
|
||||
orderNo: this.orderInfo.orderNo,
|
||||
dispatchFee: this.orderInfo.dispatchFee,
|
||||
manageFee: this.orderInfo.manageFee,
|
||||
ridingFee: this.orderInfo.ridingFee,
|
||||
appointmentFee: this.orderInfo.appointmentFee,
|
||||
}
|
||||
|
||||
this.$u.put('/appVerify/order/editPrice', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.show = false
|
||||
this.showgj = false
|
||||
this.orderInfo = {}
|
||||
if (this.curtitidx == 0) {
|
||||
this.orderList()
|
||||
} else if (this.curtitidx == 2) {
|
||||
this.orderList2()
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
},
|
||||
showgjs(item) {
|
||||
this.orderInfo = item
|
||||
this.show = true
|
||||
this.showgj = true
|
||||
},
|
||||
closegj() {
|
||||
this.show = false
|
||||
this.showgj = false
|
||||
this.orderInfo = {}
|
||||
},
|
||||
// 还车
|
||||
backDevice() {
|
||||
this.$u.post('/appVerify/device/return?orderNo='+this.orderInfo.orderNo+'&returnType=2').then((res) => {
|
||||
this.$u.post('/appVerify/device/return?orderNo=' + this.orderInfo.orderNo + '&returnType=2').then((
|
||||
res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.show = false
|
||||
|
@ -543,17 +674,20 @@
|
|||
phonenumber: this.searchKeyword,
|
||||
type: '1',
|
||||
status: '',
|
||||
beginTime:'',
|
||||
endTime:'',
|
||||
startTime: this.firsTime,
|
||||
endTime: this.lasTime,
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.loading = false
|
||||
this.$u.get('/appVerify/order/list?', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.allList = res.rows
|
||||
this.loading = true
|
||||
this.swiperHeight = (this.allList.length * 440)
|
||||
this.curtitidx = 0
|
||||
// console.log(this.polyline);
|
||||
}
|
||||
}).catch(error => {
|
||||
|
@ -565,14 +699,17 @@
|
|||
phonenumber: this.searchKeyword,
|
||||
type: '1',
|
||||
statusList: '0,2',
|
||||
beginTime:'',
|
||||
endTime:'',
|
||||
startTime: this.firsTime,
|
||||
endTime: this.lasTime,
|
||||
|
||||
}
|
||||
this.loading = false
|
||||
this.$u.get('/appVerify/order/list?', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.ingList = res.rows
|
||||
this.loading = true
|
||||
this.curtitidx = 1
|
||||
// console.log(this.polyline);
|
||||
}
|
||||
}).catch(error => {
|
||||
|
@ -584,14 +721,18 @@
|
|||
phonenumber: this.searchKeyword,
|
||||
type: '1',
|
||||
statusList: '1,3',
|
||||
beginTime:'',
|
||||
endTime:'',
|
||||
startTime: this.firsTime,
|
||||
endTime: this.lasTime,
|
||||
|
||||
|
||||
}
|
||||
this.loading = false
|
||||
this.$u.get('/appVerify/order/list?', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.reprement = res.rows
|
||||
this.loading = true
|
||||
this.curtitidx = 2
|
||||
// console.log(this.polyline);
|
||||
}
|
||||
}).catch(error => {
|
||||
|
@ -603,30 +744,36 @@
|
|||
phonenumber: this.searchKeyword,
|
||||
type: '1',
|
||||
status: '4',
|
||||
beginTime:'',
|
||||
endTime:'',
|
||||
startTime: this.firsTime,
|
||||
endTime: this.lasTime,
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
this.loading = false
|
||||
this.$u.get('/appVerify/order/list?', data).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.alreadyList = res.rows
|
||||
console.log(this.alreadyList);
|
||||
this.loading = true
|
||||
this.curtitidx = 3
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
},
|
||||
changeidx(idx){
|
||||
this.curtitidx=idx
|
||||
async changeidx(idx) {
|
||||
|
||||
if (idx == 0) {
|
||||
// this.orderList()
|
||||
this.orderList()
|
||||
} else if (idx == 1) {
|
||||
// this.orderList1()
|
||||
this.orderList1()
|
||||
} else if (idx == 2) {
|
||||
// this.orderList2()
|
||||
this.orderList2()
|
||||
} else if (idx == 3) {
|
||||
// this.orderList3()
|
||||
this.orderList3()
|
||||
}
|
||||
},
|
||||
swiperchange(e) {
|
||||
|
@ -636,24 +783,46 @@
|
|||
confirm1(e) {
|
||||
console.log(e, 'eeeeeeee');
|
||||
this.firsTime = e.year + '-' + e.month + '-' + e.day
|
||||
if (this.curtitidx == 0) {
|
||||
this.orderList()
|
||||
} else if (this.curtitidx == 1) {
|
||||
this.orderList1()
|
||||
} else if (this.curtitidx == 2) {
|
||||
this.orderList2()
|
||||
} else if (this.curtitidx == 3) {
|
||||
this.orderList3()
|
||||
}
|
||||
|
||||
},
|
||||
confirm2(e) {
|
||||
this.lasTime = e.year + '-' + e.month + '-' + e.day
|
||||
if (this.curtitidx == 0) {
|
||||
this.orderList()
|
||||
} else if (this.curtitidx == 1) {
|
||||
this.orderList1()
|
||||
} else if (this.curtitidx == 2) {
|
||||
this.orderList2()
|
||||
} else if (this.curtitidx == 3) {
|
||||
this.orderList3()
|
||||
}
|
||||
|
||||
},
|
||||
search() {
|
||||
// 根据关键字过滤 this.classlist
|
||||
if (this.searchKeyword !== '') {
|
||||
const filteredList = JSON.parse(JSON.stringify(this.orgstulist)).filter(item => {
|
||||
// 匹配 nickName 或者 id
|
||||
return item.nickName.includes(this.searchKeyword) || item.id.toString().includes(this.searchKeyword);
|
||||
});
|
||||
// 更新 this.classlist 为过滤后的列表
|
||||
this.stulist = filteredList;
|
||||
} else {
|
||||
this.fuwei();
|
||||
clearTimeout(timerId1);
|
||||
timerId1 = setTimeout(() => {
|
||||
if (this.curtitidx == 0) {
|
||||
this.orderList()
|
||||
} else if (this.curtitidx == 1) {
|
||||
this.orderList1()
|
||||
} else if (this.curtitidx == 2) {
|
||||
this.orderList2()
|
||||
} else if (this.curtitidx == 3) {
|
||||
this.orderList3()
|
||||
}
|
||||
|
||||
}, 500);
|
||||
// 根据关键字过滤 this.classlist
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -666,6 +835,7 @@
|
|||
|
||||
.page {
|
||||
width: 750rpx;
|
||||
|
||||
.tip_box {
|
||||
position: fixed;
|
||||
left: 72rpx;
|
||||
|
@ -676,19 +846,23 @@
|
|||
border-radius: 30rpx 30rpx 30rpx 30rpx;
|
||||
z-index: 110;
|
||||
padding-bottom: 100rpx;
|
||||
|
||||
.top {
|
||||
padding: 52rpx 38rpx 42rpx 36rpx;
|
||||
|
||||
.ipt_box {
|
||||
margin-top: 22rpx;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
|
||||
.text {
|
||||
width: 96rpx;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #3D3D3D;
|
||||
}
|
||||
|
||||
.ipt {
|
||||
padding: 10rpx 18rpx;
|
||||
display: flex;
|
||||
|
@ -699,11 +873,13 @@
|
|||
height: 64rpx;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
border: 2rpx solid #979797;
|
||||
|
||||
.input {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tip {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
|
@ -711,6 +887,7 @@
|
|||
font-size: 32rpx;
|
||||
color: #3D3D3D;
|
||||
}
|
||||
|
||||
.txt {
|
||||
margin-top: 32rpx;
|
||||
width: 100%;
|
||||
|
@ -730,6 +907,7 @@
|
|||
flex-wrap: nowrap;
|
||||
// height: 100%;
|
||||
bottom: -20rpx;
|
||||
|
||||
.bot_left {
|
||||
border-radius: 0rpx 0rpx 0rpx 30rpx;
|
||||
width: 50%;
|
||||
|
@ -761,6 +939,7 @@
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
.warp_box {
|
||||
.swiper {
|
||||
.swiper-item {
|
||||
|
@ -768,12 +947,14 @@
|
|||
margin: 16rpx auto;
|
||||
width: 750rpx;
|
||||
background: #fff;
|
||||
|
||||
.btn_box {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 96rpx;
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
@ -783,16 +964,19 @@
|
|||
color: #3D3D3D;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
.btn_line {
|
||||
width: 0rpx;
|
||||
height: 51rpx;
|
||||
border: 2rpx solid #4C97E7;
|
||||
}
|
||||
}
|
||||
|
||||
.order_info {
|
||||
padding: 26rpx 30rpx;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.info_li {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
@ -800,6 +984,7 @@
|
|||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #808080;
|
||||
|
||||
.half_info_li {
|
||||
width: 50%;
|
||||
font-weight: 400;
|
||||
|
@ -808,37 +993,46 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 750rpx;
|
||||
height: 22rpx;
|
||||
background: #F6F6F6;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
}
|
||||
|
||||
.lines {
|
||||
width: 750rpx;
|
||||
height: 2rpx;
|
||||
background: #D8D8D8;
|
||||
// border: 2rpx solid #D8D8D8;
|
||||
}
|
||||
|
||||
.top_info {
|
||||
padding: 24rpx 32rpx;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
|
||||
.top_info_left {
|
||||
width: 70%;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #3D3D3D;
|
||||
white-space: nowrap; /* 禁止换行 */
|
||||
overflow: hidden; /* 超出部分隐藏 */
|
||||
text-overflow: ellipsis; /* 显示省略号 */
|
||||
white-space: nowrap;
|
||||
/* 禁止换行 */
|
||||
overflow: hidden;
|
||||
/* 超出部分隐藏 */
|
||||
text-overflow: ellipsis;
|
||||
/* 显示省略号 */
|
||||
}
|
||||
|
||||
.top_info_right {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
margin-left: auto;
|
||||
|
||||
.yuan {
|
||||
margin-right: 12rpx;
|
||||
border-radius: 50%;
|
||||
|
@ -846,6 +1040,7 @@
|
|||
height: 14rpx;
|
||||
background: #4C97E7;
|
||||
}
|
||||
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #4C97E7;
|
||||
|
@ -855,6 +1050,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tap {
|
||||
margin-top: 24rpx;
|
||||
width: 750rpx;
|
||||
|
@ -872,11 +1068,13 @@
|
|||
color: #3D3D3D;
|
||||
border-bottom: 6rpx solid #fff;
|
||||
}
|
||||
|
||||
.act1 {
|
||||
border-bottom: 6rpx solid #4C97E7;
|
||||
color: #4C97E7;
|
||||
}
|
||||
}
|
||||
|
||||
.top_box {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<u-navbar title="设备详情" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
|
||||
height='36'></u-navbar>
|
||||
<map class="map" id="map" ref="map" :scale="zoomSize" :latitude="latitude" :longitude="longitude"
|
||||
:show-location='true' :polygons='polygons' :markers="markers" :polyline="polyline"></map>
|
||||
:show-location="true" :markers="markers" :polygons="polyline" ></map>
|
||||
<view class="info_card">
|
||||
<view class="info_tit">
|
||||
设备信息
|
||||
|
@ -14,23 +14,22 @@
|
|||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
车牌号:<input type="text" v-model="searchKeyword" placeholder="" class="input"
|
||||
placeholder-style="color:#C7CDD3">
|
||||
车牌号:<span>{{deviceInfos.vehicleNum}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
MAC:<span>1Km</span>
|
||||
MAC:<span>{{deviceInfos.mac}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
SN:<span>6分钟</span>
|
||||
SN:<span>{{deviceInfos.sn}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
车辆型号:<span>1Km</span>
|
||||
车辆型号:<span>{{deviceInfos.model}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
运营区域:<span>已完成</span>
|
||||
运营区域:<span>{{deviceInfos.areaName}}</span>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
@ -39,31 +38,33 @@
|
|||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
车辆状态:<span>6分钟</span>
|
||||
车辆状态:<span>{{status()}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
续航里程:<span>1Km</span>
|
||||
续航里程:<span>{{deviceInfos.remainingMileage}}Km</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
电池电量:<span>{{deviceInfos.remainingPower}}%</span>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="info_li">
|
||||
异常原因:<span>已完成</span>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="lines"></view>
|
||||
<!-- <view class="lines"></view>
|
||||
<view class="cont">
|
||||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
电池编号:<span>6分钟</span>
|
||||
</view>
|
||||
|
||||
<view class="half_infoli">
|
||||
GPRS信号:<span>1Km</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
电池电量:<span>已完成</span>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view> -->
|
||||
<view class="lines"></view>
|
||||
<view class="cont">
|
||||
|
||||
|
@ -79,7 +80,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_card" style="margin-top: 20rpx;">
|
||||
<view class="info_card" style="margin-top: 20rpx;" v-if="deviceInfos.etOrders.length>0">
|
||||
<view class="info_tit">
|
||||
订单信息
|
||||
</view>
|
||||
|
@ -88,30 +89,30 @@
|
|||
|
||||
|
||||
<view class="info_li">
|
||||
当前用户:<span>13365492512</span>
|
||||
当前用户:<span>{{deviceInfos.etOrders[0].phonenumber}}</span>
|
||||
</view>
|
||||
<view class="info_li" style="flex-wrap: wrap;display: inline-block;">
|
||||
当前订单编号:<span>2169987651526787</span>
|
||||
当前订单编号:<span>{{deviceInfos.etOrders[0].orderNo}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
最后定位时间:<span>2024-04-25 15:22:36</span>
|
||||
订单开始时间:<span>{{deviceInfos.etOrders[0].createTime}}</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bot_btn">
|
||||
<view class="btn">
|
||||
<view class="btn" @click="btn(0)">
|
||||
开锁
|
||||
</view>
|
||||
<view class="btn">
|
||||
<view class="btn" @click="btn(1)">
|
||||
关锁
|
||||
</view>
|
||||
<view class="btn">
|
||||
<view class="btn" @click="btn(2)">
|
||||
车辆禁用
|
||||
</view>
|
||||
<view class="btn">
|
||||
<view class="btn" @click="btn(3)">
|
||||
车辆解禁
|
||||
</view>
|
||||
<view class="btn">
|
||||
<view class="btn" @click="btn(4)">
|
||||
响铃寻车
|
||||
</view>
|
||||
<view class="btn" @click="tipshow=true" v-if="info.type==1">
|
||||
|
@ -121,8 +122,8 @@
|
|||
换电处理
|
||||
</view>
|
||||
</view>
|
||||
<u-mask :show="show" @click="show = false" :z-index='100' />
|
||||
<view class="tip_box" v-if="showgj">
|
||||
<u-mask :show="false" @click="show = false" :z-index='100' />
|
||||
<view class="tip_box" v-if="false">
|
||||
<view class="top">
|
||||
<view class="tip">
|
||||
修改车牌号
|
||||
|
@ -175,72 +176,341 @@
|
|||
longitude: 116.397128,
|
||||
isMap: false,
|
||||
zoomSize: 15,
|
||||
markers: [{
|
||||
id: 1,
|
||||
latitude: 39.90469,
|
||||
longitude: 116.40717,
|
||||
title: 'Marker1'
|
||||
}, {
|
||||
id: 2,
|
||||
latitude: 39.90969,
|
||||
longitude: 116.41217,
|
||||
title: 'Marker2'
|
||||
}],
|
||||
polyline: [{
|
||||
points: [{
|
||||
latitude: 39.916527,
|
||||
longitude: 116.397128
|
||||
}, {
|
||||
latitude: 39.926527,
|
||||
longitude: 116.397128
|
||||
}, {
|
||||
latitude: 39.926527,
|
||||
longitude: 116.407128
|
||||
}, {
|
||||
latitude: 39.916527,
|
||||
longitude: 116.407128
|
||||
}],
|
||||
width: 8,
|
||||
arrowLine: true,
|
||||
color: '#00AF99'
|
||||
// strokeWidth: 2,
|
||||
// strokeColor: '#00AF99',
|
||||
// fillColor: '#00AF99'
|
||||
}, ],
|
||||
polygons: [{
|
||||
points: [{
|
||||
latitude: 39.918527,
|
||||
longitude: 116.400128
|
||||
},
|
||||
{
|
||||
latitude: 39.922527,
|
||||
longitude: 116.400128
|
||||
},
|
||||
{
|
||||
latitude: 39.924527,
|
||||
longitude: 116.405128
|
||||
},
|
||||
{
|
||||
latitude: 39.912527,
|
||||
longitude: 116.402128
|
||||
}
|
||||
],
|
||||
strokeColor: '#00FF00DD', // 使用不同的颜色来区分第二个区域
|
||||
strokeWidth: 2,
|
||||
fillColor: '#00FF00DD'
|
||||
}],
|
||||
cardId: '001区域'
|
||||
markers: [],
|
||||
polyline: [],
|
||||
polygons: [],
|
||||
cardId: '001区域',
|
||||
sn:'',
|
||||
deviceInfos:{}
|
||||
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
this.sn=e.id
|
||||
this.deviceInfo()
|
||||
this.getArea()
|
||||
this.getParking()
|
||||
},
|
||||
methods: {
|
||||
btn(num){
|
||||
if(num==0){
|
||||
this.$u.post('/appVerify/admin/unlocking?sn='+this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.deviceInfo()
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}else if(num==1){
|
||||
this.$u.post('/appVerify/admin/lock?sn='+this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.deviceInfo()
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}else if(num==2){
|
||||
this.$u.post('/appVerify/device/offline?sn='+this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.deviceInfo()
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}else if(num==3){
|
||||
this.$u.post('/appVerify/device/online?sn='+this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.deviceInfo()
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}else if(num==4){
|
||||
this.$u.post('/appVerify/device/ring?sn='+this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.deviceInfo()
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}
|
||||
},
|
||||
status(){
|
||||
if(this.deviceInfos.onlineStatus==0){
|
||||
return '离线'
|
||||
}else{
|
||||
if(this.deviceInfos.status==0){
|
||||
return '未上架'
|
||||
}else if(this.deviceInfos.status==1){
|
||||
return '待租'
|
||||
}else if(this.deviceInfos.status==2){
|
||||
return '预约中'
|
||||
}else if(this.deviceInfos.status==3){
|
||||
return '骑行中'
|
||||
}else if(this.deviceInfos.status==4){
|
||||
return '临时锁车中'
|
||||
}else if(this.deviceInfos.status==8){
|
||||
return '下线'
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
deviceInfo() {
|
||||
this.$u.get('/app/device/info?sn=' + this.sn).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.deviceInfos = res.data
|
||||
this.latitude= parseFloat(this.deviceInfos.latitude)
|
||||
this.longitude= parseFloat(this.deviceInfos.longitude )
|
||||
if (this.deviceInfos.status == 0) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u76wT0QiWdAGJdF4v6AR',
|
||||
callout: {
|
||||
content: '未上架', // 修改为你想要显示的文字内容
|
||||
color: '#ffffff', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#000000', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
} else if (this.deviceInfos.status == 1) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u1UD93BU1vfshWFoDwgX',
|
||||
callout: {
|
||||
content: '待租' + this.deviceInfos.remainingPower + '%', // 修改为你想要显示的文字内容
|
||||
color: '#2679D1', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#D4ECFF', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
} else if (this.deviceInfos.status == 2) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u1UD93BU1vfshWFoDwgX',
|
||||
callout: {
|
||||
content: '预约' + this.deviceInfos.remainingPower + '%', // 修改为你想要显示的文字内容
|
||||
color: '#2679D1', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#D4ECFF', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
} else if (this.deviceInfos.status == 3) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u1UD93BU1vfshWFoDwgX',
|
||||
callout: {
|
||||
content: '骑行' + this.deviceInfos.remainingPower + '%', // 修改为你想要显示的文字内容
|
||||
color: '#2679D1', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#D4ECFF', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
} else if (this.deviceInfos.status == 4) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u1UD93BU1vfshWFoDwgX',
|
||||
callout: {
|
||||
content: '锁车' + this.deviceInfos.remainingPower + '%', // 修改为你想要显示的文字内容
|
||||
color: '#2679D1', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#D4ECFF', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
} else if (this.deviceInfos.status == 8) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u76wT0QiWdAGJdF4v6AR',
|
||||
callout: {
|
||||
content: '下线', // 修改为你想要显示的文字内容
|
||||
color: '#ffffff', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#000000', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
}
|
||||
if (this.deviceInfos.onlineStatus == 0) {
|
||||
this.markers.push({
|
||||
id: parseFloat(this.deviceInfos.sn),
|
||||
latitude: parseFloat(this.deviceInfos.latitude),
|
||||
longitude: parseFloat(this.deviceInfos.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 40,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u4UKmB47AxOj3YKIaajM',
|
||||
callout: {
|
||||
content: '离线', // 修改为你想要显示的文字内容
|
||||
color: '#ffffff', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#000000', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
convertBoundaryToPolyline(boundary) {
|
||||
if (!boundary) return null;
|
||||
|
||||
const points = JSON.parse(boundary).map(coord => ({
|
||||
latitude: coord[1],
|
||||
longitude: coord[0]
|
||||
}));
|
||||
|
||||
const polyline = {
|
||||
points: points,
|
||||
fillColor: "#55888840", //填充颜色
|
||||
strokeColor: "#22FF00", //描边颜色
|
||||
strokeWidth: 2, //描边宽度
|
||||
zIndex: 1, //层级
|
||||
};
|
||||
|
||||
return polyline;
|
||||
},
|
||||
convertBoundaryToPolylines(boundaries) {
|
||||
return boundaries.map(boundary => {
|
||||
if (!boundary) return null;
|
||||
let coords;
|
||||
try {
|
||||
coords = JSON.parse(boundary);
|
||||
} catch (error) {
|
||||
console.error("Error parsing boundary JSON:", error);
|
||||
return null;
|
||||
}
|
||||
if (!Array.isArray(coords)) {
|
||||
console.error("Parsed boundary is not an array:", coords);
|
||||
return null;
|
||||
}
|
||||
const points = coords.map(coord => ({
|
||||
latitude: coord[1],
|
||||
longitude: coord[0]
|
||||
}));
|
||||
return {
|
||||
points: points,
|
||||
fillColor: "#55888840", //填充颜色
|
||||
strokeColor: "#558888", //描边颜色
|
||||
strokeWidth: 2, //描边宽度
|
||||
zIndex: 1, //层级
|
||||
};
|
||||
}).filter(polyline => polyline !== null); // 过滤掉无效的折线数据
|
||||
},
|
||||
getParking() {
|
||||
// 发送请求获取数据
|
||||
this.$u.get('/app/parking/list').then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据
|
||||
const validBoundaries = res.rows.map(row => row.boundaryStr).filter(boundary =>
|
||||
typeof boundary === 'string' && boundary.trim() !== '');
|
||||
const polylines = this.convertBoundaryToPolylines(validBoundaries);
|
||||
|
||||
// 将处理后的数据添加到 this.polyline 中
|
||||
this.polyline = this.polyline.concat(polylines);
|
||||
// console.log(this.polyline);
|
||||
res.rows.forEach(item => {
|
||||
this.markers.push({
|
||||
id: parseFloat(item.parkingId),
|
||||
latitude: parseFloat(item.latitude),
|
||||
longitude: parseFloat(item.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 20,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u9yz0bKCWKyev0JYpTne',
|
||||
callout: {
|
||||
content: item.parkingName, // 修改为你想要显示的文字内容
|
||||
color: '#ffffff', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#000000', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching parking data:", error);
|
||||
});
|
||||
},
|
||||
getArea() {
|
||||
// 发送请求获取数据
|
||||
this.$u.get('/app/area/list').then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
const polylines = res.rows
|
||||
.filter(area => area.boundaryStr) // 过滤掉boundary为空的数据
|
||||
.map(area => this.convertBoundaryToPolyline(area.boundaryStr));
|
||||
// 更新折线数据
|
||||
this.polyline = polylines;
|
||||
// console.log(this.polyline);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
overflow-x: hidden;
|
||||
background-color: #F3F3F3;
|
||||
}
|
||||
|
||||
|
@ -406,6 +676,7 @@
|
|||
padding: 26rpx 28rpx;
|
||||
|
||||
.info_li {
|
||||
width: 98%;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
font-weight: 400;
|
||||
|
@ -415,7 +686,12 @@
|
|||
span {
|
||||
color: #3D3D3D;
|
||||
}
|
||||
|
||||
white-space: nowrap;
|
||||
/* 禁止换行 */
|
||||
overflow: hidden;
|
||||
/* 超出部分隐藏 */
|
||||
text-overflow: ellipsis;
|
||||
/* 显示省略号 */
|
||||
line-height: 48rpx;
|
||||
|
||||
.half_infoli {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<view class="page">
|
||||
<view class="page" v-if="loading">
|
||||
<u-navbar title="订单详情" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
|
||||
height='36'></u-navbar>
|
||||
<map class="map" id="map" ref="map" :scale="zoomSize" :latitude="latitude" :longitude="longitude"
|
||||
:show-location='true' :polygons='polygons' :markers="markers" :polyline="polyline"></map>
|
||||
:show-location='true' :markers="markers" :polygons="polyline"> </map>
|
||||
<view class="info_card">
|
||||
<view class="info_tit">
|
||||
基本信息
|
||||
|
@ -11,21 +11,21 @@
|
|||
<view class="lines"></view>
|
||||
<view class="cont">
|
||||
<view class="info_li">
|
||||
订单编号:<span>2169987651526787</span>
|
||||
订单编号:<span>{{orderInfo.orderNo}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
租赁用户:<span style="color:#4C97E7 ;">13056449832</span>
|
||||
租赁用户:<span style="color:#4C97E7 ;">{{orderInfo.phonenumber}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
租赁时长:<span>6分钟</span>
|
||||
租赁时长:<span>{{orderInfo.duration/60}}分钟</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
行驶距离:<span>1Km</span>
|
||||
行驶距离:<span>{{orderInfo.distance/1000}}Km</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
订单状态:<span>已完成</span>
|
||||
订单状态:<span>{{status()}}</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -38,18 +38,18 @@
|
|||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
车牌号:<span>6分钟</span>
|
||||
车牌号:<span>{{orderInfo.device.vehicleNum}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
IMIE:<span>1Km</span>
|
||||
SN:<span>{{orderInfo.device.sn}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<!-- <view class="half_infoli">
|
||||
车辆编号:<span>{{orderInfo.device.areaName}}</span>
|
||||
</view> -->
|
||||
<view class="half_infoli">
|
||||
车辆编号:<span>6分钟</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
运营区域:<span>1Km</span>
|
||||
运营区域:<span>{{orderInfo.device.areaName}}</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -63,22 +63,22 @@
|
|||
<view class="cont">
|
||||
|
||||
<view class="info_li">
|
||||
开锁时间:<span>2024-04-29 15:22:56</span>
|
||||
开锁时间:<span>{{orderInfo.unlock_time}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
开锁地点:<span>120.56189,27.12379</span>
|
||||
开锁地点:<span>{{orderInfo.unlock_time}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<!-- <view class="info_li">
|
||||
锁车时间:<span>120.56189,27.12379</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
锁车地点:<span>120.56189,27.12379</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
</view> -->
|
||||
<!-- <view class="info_li">
|
||||
解除时间:<span>120.56189,27.12379</span>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="info_li">
|
||||
关锁时间:<span>120.56189,27.12379</span>
|
||||
关锁时间:<span>{{}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
关锁地点:<span>120.56189,27.12379</span>
|
||||
|
@ -88,8 +88,8 @@
|
|||
<view class="info_card" style="margin-top: 20rpx;">
|
||||
<view class="info_tit">
|
||||
费用明细
|
||||
<view class="money">
|
||||
结算总费用:¥0.00
|
||||
<view class="money" v-if="orderInfo.totalFee">
|
||||
结算总费用:¥{{orderInfo.totalFee}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="lines"></view>
|
||||
|
@ -97,28 +97,31 @@
|
|||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
租赁费用:<span>6分钟</span>
|
||||
预约费用:<span>{{orderInfo.appointmentFee}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
调度费:<span>1Km</span>
|
||||
调度费用:<span>{{orderInfo.dispatchFee}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
管理费:<span>6分钟</span>
|
||||
管理费用:<span>{{orderInfo.manageFee}}</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
实收:<span>1Km</span>
|
||||
骑行费用:<span>{{orderInfo.ridingFee}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
支付方式:<span>120.56189,27.12379</span>
|
||||
实收:<span>{{orderInfo.totalFee}}</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
计费模板:<span>120.56189,27.12379</span>
|
||||
支付方式:<span>微信支付</span>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
支付时间:<span>120.56189,27.12379</span>
|
||||
<view class="info_li" v-if="orderInfo.rule">
|
||||
计费模板:<span>{{orderInfo.rule.name}}</span>
|
||||
</view>
|
||||
<view class="info_li" v-if="orderInfo.payTime">
|
||||
支付时间:<span>{{orderInfo.payTime}}</span>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
@ -165,66 +168,155 @@
|
|||
longitude: 116.397128,
|
||||
isMap: false,
|
||||
zoomSize: 15,
|
||||
markers: [{
|
||||
id: 1,
|
||||
latitude: 39.90469,
|
||||
longitude: 116.40717,
|
||||
title: 'Marker1'
|
||||
}, {
|
||||
id: 2,
|
||||
latitude: 39.90969,
|
||||
longitude: 116.41217,
|
||||
title: 'Marker2'
|
||||
}],
|
||||
polyline: [{
|
||||
points: [{
|
||||
latitude: 39.916527,
|
||||
longitude: 116.397128
|
||||
}, {
|
||||
latitude: 39.926527,
|
||||
longitude: 116.397128
|
||||
}, {
|
||||
latitude: 39.926527,
|
||||
longitude: 116.407128
|
||||
}, {
|
||||
latitude: 39.916527,
|
||||
longitude: 116.407128
|
||||
}],
|
||||
width: 8,
|
||||
arrowLine: true,
|
||||
color: '#00AF99'
|
||||
// strokeWidth: 2,
|
||||
// strokeColor: '#00AF99',
|
||||
// fillColor: '#00AF99'
|
||||
}, ],
|
||||
polygons: [{
|
||||
points: [{
|
||||
latitude: 39.918527,
|
||||
longitude: 116.400128
|
||||
},
|
||||
{
|
||||
latitude: 39.922527,
|
||||
longitude: 116.400128
|
||||
},
|
||||
{
|
||||
latitude: 39.924527,
|
||||
longitude: 116.405128
|
||||
},
|
||||
{
|
||||
latitude: 39.912527,
|
||||
longitude: 116.402128
|
||||
}
|
||||
],
|
||||
strokeColor: '#00FF00DD', // 使用不同的颜色来区分第二个区域
|
||||
strokeWidth: 2,
|
||||
fillColor: '#00FF00DD'
|
||||
}],
|
||||
cardId: '001区域'
|
||||
markers: [],
|
||||
polyline: [],
|
||||
polygons: [],
|
||||
|
||||
cardId: '001区域',
|
||||
orderId:'',
|
||||
orderInfo:{},
|
||||
loading:false,
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
this.orderId=e.id
|
||||
this.getOrderDetail()
|
||||
this.getArea()
|
||||
this.getParking()
|
||||
},
|
||||
components:{
|
||||
|
||||
},
|
||||
methods: {
|
||||
convertBoundaryToPolyline(boundary) {
|
||||
if (!boundary) return null;
|
||||
|
||||
const points = JSON.parse(boundary).map(coord => ({
|
||||
latitude: coord[1],
|
||||
longitude: coord[0]
|
||||
}));
|
||||
|
||||
const polyline = {
|
||||
points: points,
|
||||
fillColor: "#55888840", //填充颜色
|
||||
strokeColor: "#22FF00", //描边颜色
|
||||
strokeWidth: 2, //描边宽度
|
||||
zIndex: 1, //层级
|
||||
};
|
||||
|
||||
return polyline;
|
||||
},
|
||||
convertBoundaryToPolylines(boundaries) {
|
||||
return boundaries.map(boundary => {
|
||||
if (!boundary) return null;
|
||||
let coords;
|
||||
try {
|
||||
coords = JSON.parse(boundary);
|
||||
} catch (error) {
|
||||
console.error("Error parsing boundary JSON:", error);
|
||||
return null;
|
||||
}
|
||||
if (!Array.isArray(coords)) {
|
||||
console.error("Parsed boundary is not an array:", coords);
|
||||
return null;
|
||||
}
|
||||
const points = coords.map(coord => ({
|
||||
latitude: coord[1],
|
||||
longitude: coord[0]
|
||||
}));
|
||||
return {
|
||||
points: points,
|
||||
fillColor: "#55888840", //填充颜色
|
||||
strokeColor: "#558888", //描边颜色
|
||||
strokeWidth: 2, //描边宽度
|
||||
zIndex: 1, //层级
|
||||
};
|
||||
}).filter(polyline => polyline !== null); // 过滤掉无效的折线数据
|
||||
},
|
||||
getParking() {
|
||||
// 发送请求获取数据
|
||||
this.$u.get('/app/parking/list').then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据
|
||||
const validBoundaries = res.rows.map(row => row.boundaryStr).filter(boundary =>
|
||||
typeof boundary === 'string' && boundary.trim() !== '');
|
||||
const polylines = this.convertBoundaryToPolylines(validBoundaries);
|
||||
|
||||
// 将处理后的数据添加到 this.polyline 中
|
||||
this.polyline = this.polyline.concat(polylines);
|
||||
// console.log(this.polyline);
|
||||
res.rows.forEach(item => {
|
||||
this.markers.push({
|
||||
id: parseFloat(item.parkingId),
|
||||
latitude: parseFloat(item.latitude),
|
||||
longitude: parseFloat(item.longitude),
|
||||
// title: item.deviceName,
|
||||
width: 20,
|
||||
height: 40,
|
||||
iconPath: 'https://lxnapi.ccttiot.com/bike/img/static/u9yz0bKCWKyev0JYpTne',
|
||||
callout: {
|
||||
content: item.parkingName, // 修改为你想要显示的文字内容
|
||||
color: '#ffffff', // 修改为文字颜色
|
||||
fontSize: 14, // 修改为文字大小
|
||||
borderRadius: 10, // 修改为气泡圆角大小
|
||||
bgColor: '#000000', // 修改为气泡背景颜色
|
||||
padding: 6, // 修改为气泡内边距
|
||||
display: 'ALWAYS', // 修改为气泡的显示策略
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching parking data:", error);
|
||||
});
|
||||
},
|
||||
getArea() {
|
||||
// 发送请求获取数据
|
||||
this.$u.get('/app/area/list').then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
const polylines = res.rows
|
||||
.filter(area => area.boundaryStr) // 过滤掉boundary为空的数据
|
||||
.map(area => this.convertBoundaryToPolyline(area.boundaryStr));
|
||||
// 更新折线数据
|
||||
this.polyline = polylines;
|
||||
// console.log(this.polyline);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
},
|
||||
status(){
|
||||
if(this.orderInfo!=''){
|
||||
if(this.orderInfo.status==0){
|
||||
return '预约中'
|
||||
}else if(this.orderInfo.status==1){
|
||||
return '取消预约'
|
||||
}else if(this.orderInfo.status==2){
|
||||
return '开始骑行'
|
||||
}else if(this.orderInfo.status==3){
|
||||
return '骑行结束'
|
||||
}else if(this.orderInfo.status==4){
|
||||
return '订单完成'
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
getOrderDetail(){
|
||||
this.$u.get('/appVerify/order/'+this.orderId).then((res) => {
|
||||
if (res.code === 200) {
|
||||
// 处理接口返回的数据,将边界数据转换为地图组件需要的折线结构
|
||||
this.orderInfo=res.data
|
||||
this.loading=true
|
||||
this.latitude= parseFloat(this.orderInfo.device.latitude)
|
||||
this.longitude= parseFloat(this.orderInfo.device.longitude )
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error("Error fetching area data:", error);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
291
pages_admin/order/search_device.vue
Normal file
291
pages_admin/order/search_device.vue
Normal file
|
@ -0,0 +1,291 @@
|
|||
<template>
|
||||
<view class="page">
|
||||
<u-navbar title="车辆搜索" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
|
||||
height='36'></u-navbar>
|
||||
<view class="" style="background: #FFFFFF;width: 750rpx;padding-bottom: 36rpx;">
|
||||
|
||||
<view class="top_box" style="margin-top: 20rpx;">
|
||||
<view class="left_text">
|
||||
车辆编号 <view class="iconfont icon-xiangxia1"></view>
|
||||
</view>
|
||||
<view class="sear_ipt">
|
||||
<input type="text"
|
||||
v-model="searchKeyword"
|
||||
placeholder="请输入内容"
|
||||
class="input"
|
||||
placeholder-style="color:#C7CDD3"
|
||||
@input="search()">
|
||||
</view>
|
||||
</view>
|
||||
<view class="data_box">
|
||||
<view class="data_cont " :class="typeindex==0?'act1':''" @click="changeType(0)">
|
||||
按日期
|
||||
</view>
|
||||
<view class="data_cont" :class="typeindex==1?'act1':''" @click="changeType(1)">
|
||||
按车辆
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view class="info_card" style="margin-top: 20rpx;">
|
||||
<view class="info_tit">
|
||||
2024-04-28
|
||||
</view>
|
||||
<view class="lines"></view>
|
||||
<view class="cont">
|
||||
|
||||
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
支付金额:<span>¥0.00</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
已退款:<span>¥0.00</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info_li">
|
||||
<view class="half_infoli">
|
||||
手续费:<span>¥0.00</span>
|
||||
</view>
|
||||
<view class="half_infoli">
|
||||
收入:<span style="color:#4C97E7 ;">¥0.00</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<u-picker mode="time" v-model="time1" :params="params" @confirm="confirm1"
|
||||
:default-time='pickertime'></u-picker>
|
||||
<u-picker mode="time" v-model="time2" :params="params" @confirm="confirm2"
|
||||
:default-time='pickertime'></u-picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
bgc: {
|
||||
backgroundColor: "#fff",
|
||||
},
|
||||
time1: false,
|
||||
time2: false,
|
||||
lasTime: '00-00',
|
||||
firsTime: '00-00',
|
||||
params: {
|
||||
year: true,
|
||||
month: true,
|
||||
day: true,
|
||||
hour: false,
|
||||
minute: false,
|
||||
second: false
|
||||
},
|
||||
typeindex:0,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
confirm1(e) {
|
||||
console.log(e, 'eeeeeeee');
|
||||
this.firsTime = e.year + '-' + e.month + '-' + e.day
|
||||
|
||||
},
|
||||
confirm2(e) {
|
||||
this.lasTime = e.year + '-' + e.month + '-' + e.day
|
||||
|
||||
},
|
||||
changeType(num){
|
||||
this.typeindex=num
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #F6F6F6;
|
||||
}
|
||||
|
||||
.page {
|
||||
width: 750rpx;
|
||||
.lines{
|
||||
width: 748rpx;
|
||||
height: 22rpx;
|
||||
background: #F6F6F6;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
}
|
||||
.info_card {
|
||||
background: #FFFFFF;
|
||||
|
||||
.info_tit {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
padding: 22rpx 28rpx;
|
||||
font-weight: 600;
|
||||
font-size: 32rpx;
|
||||
color: #3D3D3D;
|
||||
|
||||
.money {
|
||||
margin-left: auto;
|
||||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #4C97E7;
|
||||
}
|
||||
}
|
||||
|
||||
.lines {
|
||||
width: 750rpx;
|
||||
height: 2rpx;
|
||||
border: 2rpx solid #ccc;
|
||||
}
|
||||
|
||||
.cont {
|
||||
padding: 26rpx 28rpx;
|
||||
|
||||
.info_li {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #808080;
|
||||
|
||||
span {
|
||||
color: #3D3D3D;
|
||||
}
|
||||
|
||||
line-height: 48rpx;
|
||||
|
||||
.half_infoli {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
width: 50%;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #808080;
|
||||
|
||||
span {
|
||||
color: #3D3D3D;
|
||||
}
|
||||
.input{
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.cont_box {
|
||||
padding: 14rpx 30rpx;
|
||||
width: 750rpx;
|
||||
background: #E2F2FF;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
|
||||
.cont_info {
|
||||
margin-top: 8rpx;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.info_li {
|
||||
width: 50%;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #3D3D3D;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.data_box {
|
||||
width: 672rpx;
|
||||
margin: 36rpx auto;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
// justify-content: space-between;
|
||||
|
||||
.data_cont {
|
||||
margin-right: 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 150rpx;
|
||||
height: 60rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
|
||||
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #3D3D3D;
|
||||
border: 2rpx solid #fff;
|
||||
}
|
||||
|
||||
.act1 {
|
||||
background: #E2F2FF;
|
||||
box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
|
||||
color: #4C97E7;
|
||||
border: 2rpx solid #4C97E7;
|
||||
}
|
||||
}
|
||||
|
||||
.top_box {
|
||||
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
padding: 28rpx 30rpx;
|
||||
// padding: 20rpx 0;
|
||||
|
||||
margin: 0 auto;
|
||||
width: 672rpx;
|
||||
height: 100rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
|
||||
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||
|
||||
.left_text {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
width: 25%;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #3D3D3D;
|
||||
.icon-xiangxia1{
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.timebox {
|
||||
width: 75%;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
margin-left: 34rpx;
|
||||
|
||||
.left_time {
|
||||
text-align: center;
|
||||
margin-right: 6rpx;
|
||||
height: 50rpx;
|
||||
width: 45%;
|
||||
border: 2rpx solid #ccc;
|
||||
border-radius: 12rpx;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #979797;
|
||||
}
|
||||
|
||||
.right_time {
|
||||
text-align: center;
|
||||
margin-left: 6rpx;
|
||||
height: 50rpx;
|
||||
width: 45%;
|
||||
border: 2rpx solid #ccc;
|
||||
border-radius: 12rpx;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #979797;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<view class="page">
|
||||
<u-navbar title="用户管理" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
|
||||
<u-navbar title="用户详情" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
|
||||
height='36'></u-navbar>
|
||||
<view class="userinfo" style="background: #FFFFFF;width: 750rpx;padding-bottom: 36rpx;">
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user