新电动车

This commit is contained in:
吴鹏 2025-04-11 18:23:16 +08:00
parent 524d1ec193
commit 2a9de15785
25 changed files with 2199 additions and 1161 deletions

View File

@ -1,7 +1,7 @@
const install = (Vue, vm) => { const install = (Vue, vm) => {
uni.setStorageSync('deptId', 100); uni.setStorageSync('deptId', 100);
Vue.prototype.$u.http.setConfig({ Vue.prototype.$u.http.setConfig({
// baseUrl: 'http://192.168.2.35:4101', //键辉本地 // baseUrl: 'http://192.168.2.46:4101', //键辉本地
// baseUrl: 'http://192.168.0.102:4101', //景森本地 // baseUrl: 'http://192.168.0.102:4101', //景森本地
baseUrl: 'https://ele.ccttiot.com/prod-api', //线上 baseUrl: 'https://ele.ccttiot.com/prod-api', //线上
loadingText: '努力加载中~', loadingText: '努力加载中~',

View File

@ -23,8 +23,8 @@
<!-- 地图 --> <!-- 地图 -->
</div> </div>
<div @tap.stop="changeTabbar(2)"> <div @tap.stop="changeTabbar(2)">
<image style="width: 102rpx;height: 102rpx;position: fixed;left: 50%;transform: translateX(-50%);bottom:130rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uL8iMlSwXNfldMjGZK7n" mode="" v-show="indexs!=2"></image> <image style="width: 102rpx;height: 102rpx;position: fixed;left: 50%;transform: translateX(-50%);bottom:98rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uPWK1kW1mCc2CPVyO7JM" mode="" v-show="indexs!=2"></image>
<image style="width: 102rpx;height: 102rpx;position: fixed;left: 50%;transform: translateX(-50%);bottom:130rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uL8iMlSwXNfldMjGZK7n" mode="" v-show="indexs==2"></image> <image style="width: 102rpx;height: 102rpx;position: fixed;left: 50%;transform: translateX(-50%);bottom:98rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uPWK1kW1mCc2CPVyO7JM" mode="" v-show="indexs==2"></image>
<div class="txt" style="margin-top: 60rpx;color: #979797;font-size: 26rpx;color: #808080;">扫码用车</div> <div class="txt" style="margin-top: 60rpx;color: #979797;font-size: 26rpx;color: #808080;">扫码用车</div>
</div> </div>
<div class="tab" @tap.stop="changeTabbar(3)"> <div class="tab" @tap.stop="changeTabbar(3)">
@ -158,10 +158,22 @@
this.sn = getQueryParam(decodedValue, 's') this.sn = getQueryParam(decodedValue, 's')
this.$u.get(`/app/device/availableDetail?sn=${this.sn}`).then((res) => { this.$u.get(`/app/device/availableDetail?sn=${this.sn}`).then((res) => {
if (res.code == 200) { if (res.code == 200) {
if(res.data){
this.modelId = res.data.modelId this.modelId = res.data.modelId
uni.navigateTo({ uni.navigateTo({
url:'/page_fenbao/storedlist/trueorder?modelId=' + this.modelId + '&sn=' + this.sn url:'/page_fenbao/storedlist/trueorder?modelId=' + this.modelId + '&sn=' + this.sn
}) })
}else{
uni.showToast({
title: '当前车辆不可用',
icon: 'none'
})
}
}else{
uni.showToast({
title: res.msg,
icon: 'none'
})
} }
}) })
}, },

View File

@ -44,7 +44,7 @@
}) })
}else{ }else{
uni.showToast({ uni.showToast({
title:'车辆不可用', title:'当前车辆不可用',
icon: 'none', icon: 'none',
duration:2000 duration:2000
}) })

View File

@ -20,9 +20,7 @@
handleGetMessage:function(e){ handleGetMessage:function(e){
console.log(e) console.log(e)
if(e.detail.data[0].result == 'success'){ if(e.detail.data[0].result == 'success'){
uni.redirectTo({ uni.navigateBack()
url:'/page_fenbao/renlianzhongzhuan'
})
} }
}, },

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
账户总余额 账户总余额
</view> </view>
<view class="num"> <view class="num">
{{userInfo.balance == null ? '0.00' : userInfo.balance.toFixed(2)}} {{userInfo.balance == null ? '0.00' : userInfo.balance.toFixed(2)}}
</view> </view>
</view> </view>
<view class="li_box"> <view class="li_box">
@ -17,7 +17,7 @@
待结算金额 待结算金额
</view> </view>
<view class="num"> <view class="num">
{{userInfo.settlementAmount == null ? '0.00' : userInfo.settlementAmount}} {{waitDivideAmount == null ? '0.00' : waitDivideAmount.toFixed(2)}}
</view> </view>
</view> </view>
</view> </view>
@ -161,7 +161,8 @@
listflag: true, listflag: true,
channelId:'', channelId:'',
objobj:{}, objobj:{},
total:0 total:0,
waitDivideAmount:''
} }
}, },
onLoad(e) { onLoad(e) {
@ -208,6 +209,7 @@
this.$u.get(`/getInfo`).then((res) => { this.$u.get(`/getInfo`).then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.userInfo = res.user this.userInfo = res.user
this.waitDivideAmount = res.stat.bonus.waitDivideAmount
} }
}) })
}, },

View File

@ -10,7 +10,7 @@
<view class="info"> <view class="info">
<view class="lis"> <view class="lis">
<view class="info_li"> <view class="info_li">
说明<span>{{item.instructions}}</span> 说明<span>{{item.instructions == null ? '--' : item.instructions}}</span>
</view> </view>
<view> <view>
<view v-if="item.ridingRule==1"> <view v-if="item.ridingRule==1">

View File

@ -71,6 +71,7 @@
}; };
}, },
onShow() { onShow() {
this.pageNum = 1
this.getlist(); this.getlist();
}, },
onReachBottom() { onReachBottom() {
@ -93,7 +94,7 @@
id:item.id, id:item.id,
handle:num handle:num
} }
this.$u.put('/app/fault', data).then((res) => { this.$u.put('/bst/fault/handle', data).then((res) => {
if (res.code === 200) { if (res.code === 200) {
uni.showToast({ uni.showToast({
title: '操作成功', title: '操作成功',
@ -159,12 +160,10 @@
clearTimeout(timerId1); clearTimeout(timerId1);
timerId1 = setTimeout(() => { timerId1 = setTimeout(() => {
// //
this.pageNum = 1; this.pageNum = 1
this.list = []; // this.list = [] //
this.getlist(); this.getlist()
}, 500)
}, 500);
}, },
todetail() { todetail() {
@ -238,8 +237,6 @@
.tips { .tips {
margin-top: 24rpx; margin-top: 24rpx;
width: 100%; width: 100%;
// display: flex;
// justify-content: center;
text-align: center; text-align: center;
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 28rpx;
@ -283,7 +280,7 @@
margin-top: 10rpx; margin-top: 10rpx;
background: #D8D8D8; background: #D8D8D8;
width: 256rpx; width: 256rpx;
height: 134rpx; height: 256rpx;
} }
} }

View File

@ -198,6 +198,9 @@ export default {
{ {
value: '8', value: '8',
label: '下线' label: '下线'
},{
value: '9',
label: '强制锁车'
}], }],
tit: '全部', tit: '全部',
typeidx: '', typeidx: '',
@ -409,6 +412,8 @@ export default {
return '#986cf0' // return '#986cf0' //
} else if (item.status == 7) { } else if (item.status == 7) {
return '#343a40' // return '#343a40' //
}else if (item.status == 9) {
return '#ff7429' //
} }
}, },
getStatusColors(item) { getStatusColors(item) {
@ -459,6 +464,8 @@ export default {
return '未绑定' return '未绑定'
} else if (item.status == 8) { } else if (item.status == 8) {
return '禁用中' return '禁用中'
} else if (item.status == 9) {
return '强制锁车'
} }
}, },
statuss(item) { statuss(item) {

View File

@ -290,7 +290,7 @@
let data = {} let data = {}
if (this.typeidx == 1) { if (this.typeidx == 1) {
data = { data = {
phonenumber: this.searchKeyword, userPhone: this.searchKeyword,
status: this.zhuangtai, status: this.zhuangtai,
createDateRange:this.firsTime == '' ? '' : this.lasTime == '' ? '' : this.firsTime + ',' + this.lasTime, createDateRange:this.firsTime == '' ? '' : this.lasTime == '' ? '' : this.firsTime + ',' + this.lasTime,
areaId: this.areaId, areaId: this.areaId,
@ -299,7 +299,7 @@
}; };
} else if (this.typeidx == 2) { // this.typeidx == 2 } else if (this.typeidx == 2) { // this.typeidx == 2
data = { data = {
vehicleNum: this.searchKeyword, deviceVehicleNum: this.searchKeyword,
type: '1', type: '1',
status:this.zhuangtai, status:this.zhuangtai,
createDateRange:this.firsTime == '' ? '' : this.lasTime == '' ? '' : this.firsTime + ',' + this.lasTime, createDateRange:this.firsTime == '' ? '' : this.lasTime == '' ? '' : this.firsTime + ',' + this.lasTime,

View File

@ -307,7 +307,7 @@ export default {
points: points, points: points,
fillColor: colors[num].fill, fillColor: colors[num].fill,
strokeColor: colors[num].stroke, strokeColor: colors[num].stroke,
strokeWidth: 2, strokeWidth: 1,
zIndex: 1 zIndex: 1
} }
}).filter(Boolean) }).filter(Boolean)
@ -355,7 +355,7 @@ export default {
points: points, points: points,
fillColor: "#55888840", fillColor: "#55888840",
strokeColor: "#22FF00", strokeColor: "#22FF00",
strokeWidth: 2, strokeWidth: 1,
zIndex: 1 zIndex: 1
} }
}, },
@ -384,7 +384,7 @@ export default {
// 线 // 线
this.currentPolyline = [{ this.currentPolyline = [{
points: this.trackPoints.slice(0, index + 1), points: this.trackPoints.slice(0, index + 1),
width: 8, width: 4,
arrowLine: true, arrowLine: true,
color: '#00AF99' color: '#00AF99'
}] }]

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="page"> <view class="page">
<u-navbar title="设备详情" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36' <u-navbar title="车辆详情" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
height='45'></u-navbar> height='45'></u-navbar>
<map class="map" id="map" ref="map" :scale="zoomSize" :latitude="latitude" :longitude="longitude" <map class="map" id="map" ref="map" :scale="zoomSize" :latitude="latitude" :longitude="longitude"
:show-location="true" :markers="markers" :polygons="polyline"> :show-location="true" :markers="markers" :polygons="polyline">
@ -8,144 +8,73 @@
<cover-image class="img" src="https://lxnapi.ccttiot.com/bike/img/static/uRiYQZQEb3l2LsltEsyW" <cover-image class="img" src="https://lxnapi.ccttiot.com/bike/img/static/uRiYQZQEb3l2LsltEsyW"
mode=""></cover-image> mode=""></cover-image>
</cover-view> </cover-view>
<cover-view class="track" @click="toTrack"> <!-- <cover-view class="track" @click="toTrack">
<cover-image class="img" src="https://lxnapi.ccttiot.com/bike/img/static/ufaAAtlirJYs1QwJF25P" <cover-image class="img" src="https://lxnapi.ccttiot.com/bike/img/static/ufaAAtlirJYs1QwJF25P"
mode=""></cover-image> mode=""></cover-image>
</cover-view> </cover-view> -->
</map> </map>
<view class="info_card">
<view class="info_tit"> <view class="new_infocard">
设备信息 <view class="topsn">
<view class="lt">
SN{{deviceInfos.sn}}
</view> </view>
<view class="lines"></view> <view class="rt">
<view class="cont"> <view class="stutas">
<view class="info_li"> <span style="background-color: #979797;" v-if="deviceInfos.status == 0">仓库中</span>
<view class="half_infoli"> <span style="background-color: #4c97e7;" v-if="deviceInfos.status == 1">待租</span>
SN<span>{{deviceInfos.sn}}</span> <span style="background-color: #28c445;" v-if="deviceInfos.status == 2">预约中</span>
<span style="background-color: #ffc757;" v-if="deviceInfos.status == 3">骑行中</span>
<span style="background-color: #ff7429;" v-if="deviceInfos.status == 4">临时锁车中</span>
<span style="background-color: #986cf0;" v-if="deviceInfos.status == 6">调度中</span>
<span style="background-color: #343a40;" v-if="deviceInfos.status == 8">下线</span>
<span style="background-color: #ff7429;" v-if="deviceInfos.status == 9">强制锁车</span>
</view> </view>
<view class="half_infoli"> <view class="issuo" v-if="deviceInfos.lockStatus == 0">
MAC<span>{{deviceInfos.mac}}</span> 锁已关
</view> </view>
</view> <view class="issuo" style="background-color: #4C97E7;color: #fff;" v-if="deviceInfos.lockStatus == 1">
<view class="info_li"> 锁已开
<view class="half_infoli">
车牌号<span v-if="deviceInfos.vehicleNum">{{deviceInfos.vehicleNum}}</span>
<span v-else>--</span>
</view>
<view class="half_infoli">
车辆型号
<span v-if="deviceInfos.modelName">{{deviceInfos.modelName}}</span>
<span v-else>--</span>
</view>
</view>
<view class="info_li">
运营区域
<span v-if="deviceInfos.areaName">{{deviceInfos.areaName}}</span>
<span v-else>--</span>
</view>
</view>
<view class="lines"></view>
<view class="cont">
<view class="info_li">
<view class="half_infoli">
车辆状态<span v-if="deviceInfos.status == 0">仓库中</span>
<span v-if="deviceInfos.status == 1">待租</span>
<span v-if="deviceInfos.status == 2">预约中</span>
<span v-if="deviceInfos.status == 3">骑行中</span>
<span v-if="deviceInfos.status == 4">临时锁车中</span>
<span v-if="deviceInfos.status == 6">调度中</span>
<span v-if="deviceInfos.status == 8">下线</span>
</view>
<view class="half_infoli" v-if="deviceInfos.onlineStatus==0">
网络状态<span>离线</span>
</view>
<view class="half_infoli" v-if="deviceInfos.onlineStatus==1">
网络状态<span>在线</span>
</view>
</view>
<view class="info_li">
<view class="half_infoli">
电池电量
<span>{{deviceInfos.remainingPower == null ? '--' : deviceInfos.remainingPower}}%</span>
</view>
<view class="half_infoli">
续航里程
<span>{{deviceInfos.remainEndurance == null ? '--' : deviceInfos.remainEndurance}} KM</span>
</view>
</view>
<view class="info_li">
<view class="half_infoli">
电池电压
<span>{{deviceInfos.voltage == null ? '--' : deviceInfos.voltage}}V</span>
</view>
<view class="half_infoli">
4G信号
<span>{{deviceInfos.satellites == null ? '--' : deviceInfos.satellites}}</span>
</view> </view>
</view> </view>
</view> </view>
<view class="lines"></view> <view class="bikexx">
<view class="cont"> <view class="dianliang">
<view class="info_li"> <image src="https://api.ccttiot.com/smartmeter/img/static/ucFiREWFvUepgFX0LR1h" mode=""></image>
最后定位坐标 <view class="dl">
<span v-if="deviceInfos.latitude">{{deviceInfos.latitude}},{{deviceInfos.longitude}}</span> 电量<span>{{deviceInfos.remainingPower == null ? '--' : deviceInfos.remainingPower}}%</span>
<span v-else>--</span>
</view> </view>
<view class="info_li" style="flex-wrap: wrap;display: inline-block;"> <view class="dy">
最后定位地址 电压<span>{{deviceInfos.voltage == null ? '--' : deviceInfos.voltage.toFixed(2)}}V</span>
<span v-if="deviceInfos.location">{{deviceInfos.location}}</span>
<span v-else>--</span>
</view> </view>
<view class="info_li"> </view>
最后定位时间 <view class="xuhang">
<span v-if="deviceInfos.lastTime">{{deviceInfos.lastTime}}</span> <view class="">
<span v-else>--</span> <image src="https://api.ccttiot.com/smartmeter/img/static/uBueutMzheLZWktEFWVR" mode=""></image> 续航 {{deviceInfos.remainEndurance == null ? '--' : deviceInfos.remainEndurance}}km
</view>
<view class="" style="margin-top: 20rpx;">
<image src="https://api.ccttiot.com/smartmeter/img/static/ur7Q7YC9AOkkTpvaLEUU" mode=""></image> 车型 {{deviceInfos.modelName}}
</view>
</view>
<view class="ewm">
<view class="" @click="generateQrcode()">
<image src="https://api.ccttiot.com/smartmeter/img/static/uiCssXpb4SpuFAQYOp2A" mode=""></image> 二维码
</view>
<view class="" style="margin-top: 14rpx;" @click="toTrack">
<image src="https://api.ccttiot.com/smartmeter/img/static/uJtMZ16iR2q8agQ4iLm3" mode=""></image> 轨迹
</view>
<view class="" style="margin-top: 14rpx;" @click="btndaohang">
<image src="https://api.ccttiot.com/smartmeter/img/static/u3De0EsfW6ZctTFCH9p7" mode=""></image> 导航
</view> </view>
</view> </view>
</view> </view>
<!-- <view class="info_card" style="margin-top: 20rpx;" v-if="deviceInfos.etOrders[0]&&deviceInfos.sn"> <view class="caozuoanniu">
<view class="info_tit"> <view class="dangeanniu" @click="checkbtn(0)">
最后订单信息 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uuHHQU2Yg2sReTadF51Y" mode=""></image>
</view> </view>
<view class="lines"></view>
<view class="cont">
<view class="info_li">
最后用户姓名
<span v-if="deviceInfos.etOrders[0].realName &&deviceInfos.sn">{{deviceInfos.etOrders[0].realName}}</span>
<span v-else>--</span>
</view>
<view class="info_li">
最后用户电话
<span v-if="deviceInfos.etOrders[0].phonenumber &&deviceInfos.sn">{{deviceInfos.etOrders[0].phonenumber}}</span>
<span v-else>--</span>
</view>
<view class="info_li" style="flex-wrap: wrap;display: inline-block;">
最后订单编号
<span v-if="deviceInfos.etOrders[0].orderNo &&deviceInfos.sn">{{deviceInfos.etOrders[0].orderNo}}</span>
<span v-else>--</span>
</view>
<view class="info_li">
订单开始时间
<span v-if="deviceInfos.etOrders[0].createTime&&deviceInfos.sn">{{deviceInfos.etOrders[0].createTime}}</span>
<span v-else>--</span>
</view>
<view class="info_li">
<view class="info_li" v-if="deviceInfos.sn">
订单状态<span>{{statuss()}}</span>
</view>
</view>
</view>
</view> -->
<view class="bot_btn">
<view class="btn" @click="checkbtn(0)">
开锁 开锁
</view> </view>
<view class="btn" @click="checkbtn(1)">
关锁
</view>
<view class="btn" @click="btn(4)">
响铃寻车
</view>
<!-- <view class="btn" @click="lanya(1)"> <!-- <view class="btn" @click="lanya(1)">
蓝牙开锁 蓝牙开锁
</view> </view>
@ -155,42 +84,115 @@
<view class="btn" @click="lanya(3)"> <view class="btn" @click="lanya(3)">
蓝牙响铃 蓝牙响铃
</view> --> </view> -->
<view class="btn" @click="btn(8)"> <view class="dangeanniu" @click="checkbtn(1)">
设备重启 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uKear247uKM7Axwgh3Jc" mode=""></image>
</view> </view>
<view class="btn" @click="btn(2)" v-if="deviceInfos.status!=8"> 关锁
车辆禁用
</view> </view>
<view class="btn" @click="btn(3)" v-if="deviceInfos.status==8"> <view class="dangeanniu" @click="btn(4)">
车辆解禁 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uE7zUe5bXdtGGyWA9WGG" mode=""></image>
</view> </view>
<view class="btn" @click="btn(5)" v-if="deviceInfos.status!=0"> 响铃寻车
车辆回仓
</view> </view>
<view class="btn" @click="btn(6)" v-if="deviceInfos.status==0"> <view class="dangeanniu" v-if="this.deviceInfos.hardwareVersion && this.deviceInfos.hardwareVersion.toLowerCase().includes('x')" @click="btn(9)">
车辆出仓 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/ujhsaJeL6KVrYgFSEKkj" mode=""></image>
</view> </view>
<view class="btn" @click="btn(7)">
车牌修改
</view>
<view class="btn"
v-if="this.deviceInfos.hardwareVersion && this.deviceInfos.hardwareVersion.toLowerCase().includes('x')"
@click="btn(9)">
坐垫锁 坐垫锁
</view> </view>
<view class="btn" @click="btn(10)"> <view class="dangeanniu" @click="btn(8)">
定位更新 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uWnOOwRQYpZxB14stYl8" mode=""></image>
</view>
重启
</view>
<view class="dangeanniu" @click="btn(2)" v-if="deviceInfos.status!=8">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/u1PlutiYn3alAcF2VuTH" mode=""></image>
</view>
禁用
</view>
<view class="dangeanniu" @click="btn(3)" v-if="deviceInfos.status==8">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/u1PlutiYn3alAcF2VuTH" mode=""></image>
</view>
解禁
</view>
<view class="dangeanniu" @click="btn(5)" v-if="deviceInfos.status!=0">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uJvI9lLyEkA2QdSr74LX" mode=""></image>
</view>
回仓
</view>
<view class="dangeanniu" @click="btn(6)" v-if="deviceInfos.status==0">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uJvI9lLyEkA2QdSr74LX" mode=""></image>
</view>
出仓
</view>
<view class="dangeanniu" @click="btn(7)">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/u277Tj0k5M7I8EO4V3ki" mode=""></image>
</view>
车牌修改
</view>
<view class="dangeanniu" @click="changeShwoList">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/ua7Xl6Eew8AvjeKJFKXI" mode=""></image>
</view> </view>
<view class="btn" @click="changeShwoList">
修改车型 修改车型
</view> </view>
<view class="btn" @click="generateQrcode()"> <view class="dangeanniu" v-if="this.deviceInfos.hardwareVersion && this.deviceInfos.hardwareVersion.toLowerCase().includes('x')" @click="btnjingyin">
设备二维码 <view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uUJGVRpPIRC34vF7240K" mode=""></image>
</view>
静音:{{jytxt}}
</view>
<view class="dangeanniu" @click="btn(10)">
<view class="pic">
<image src="https://api.ccttiot.com/smartmeter/img/static/uuuFxDo4XNzXJDTOQIeZ" mode=""></image>
</view>
定位更新
</view>
</view>
<view class="bikejcxx">
<view class="wai">
<view class="lt">
MAC<span>{{deviceInfos.mac}}</span>
</view>
<view class="lt">
网络状态<span v-if="deviceInfos.onlineStatus==0">离线</span><span v-if="deviceInfos.onlineStatus==1">在线</span>
</view>
</view>
<view class="wai">
<view class="lt">
车牌号<span>{{deviceInfos.vehicleNum}}</span>
</view>
<view class="lt">
续航里程<span>{{deviceInfos.remainEndurance == null ? '--' : deviceInfos.remainEndurance}}km</span>
</view>
</view>
<view class="wai">
<view class="lt">
运营区域<span>{{deviceInfos.areaName}}</span>
</view>
<view class="lt">
4G信号/GPS<span>{{deviceInfos.signalStrength == null ? '--' : deviceInfos.signalStrength}}/{{deviceInfos.satellites == null ? '--' : deviceInfos.satellites}}</span>
</view>
</view>
</view>
<view class="zuche">
<view class="one">
最近租车人<image src="https://api.ccttiot.com/smartmeter/img/static/uCa86z0tr5WHiymtRJYt" mode=""></image> <span>--</span>
</view>
<view class="">
最后定位坐标<span>{{deviceInfos.latitude}},{{deviceInfos.longitude}}</span>
</view>
<view class="">
最后定位时间<span>{{deviceInfos.lastTime}}</span>
</view> </view>
<view class="btn"
v-if="this.deviceInfos.hardwareVersion && this.deviceInfos.hardwareVersion.toLowerCase().includes('x')"
@click="btnjingyin">
静音{{jytxt}}
</view> </view>
</view> </view>
<u-mask :show="false" @click="show = false" :z-index='100' /> <u-mask :show="false" @click="show = false" :z-index='100' />
@ -394,6 +396,16 @@
} }
}, },
methods: { methods: {
//
btndaohang(){
uni.openLocation({
latitude: this.deviceInfos.latitude, //-/
longitude: this.deviceInfos.longitude, //-/
name: '', //
address:'' //
})
},
//
lanya(num) { lanya(num) {
if (num == 1) { if (num == 1) {
xBlufi.notifySendCustomData({ xBlufi.notifySendCustomData({
@ -990,7 +1002,7 @@
display: 'ALWAYS', // display: 'ALWAYS', //
} }
}) })
} else if (this.deviceInfos.status == 4) { } else if (this.deviceInfos.status == 4 || this.deviceInfos.status == 9) {
this.markers.push({ this.markers.push({
id: parseFloat(this.deviceInfos.sn), id: parseFloat(this.deviceInfos.sn),
latitude: this.deviceInfos.latitude, latitude: this.deviceInfos.latitude,
@ -1273,6 +1285,198 @@
padding-bottom: 400rpx; padding-bottom: 400rpx;
width: 750rpx; width: 750rpx;
.new_infocard{
width: 750rpx;
max-height: 1384rpx;
overflow: scroll;
background: #FFFFFF;
border-radius: 30rpx;
padding: 30rpx;
box-sizing: border-box;
position: absolute;
z-index: 99;
top: 900rpx;
.zuche{
margin-top: 26rpx;
.one{
display: flex;
align-items: center;
image{
width: 32rpx;
height: 32rpx;
margin-right: 4rpx;
}
span{
font-size: 28rpx;
color: #4C97E7;
}
}
view{
font-size: 28rpx;
color: #808080;
margin-bottom: 26rpx;
span{
color: #3D3D3D;
}
}
}
.bikejcxx{
margin-top: 26rpx;
border-bottom: 1rpx solid #D8D8D8;
.wai{
display: flex;
justify-content: space-between;
margin-bottom: 26rpx;
.lt{
width: 46%;
text-align: left;
font-size: 28rpx;
color: #808080;
span{
color: #3D3D3D;
}
}
}
}
.caozuoanniu{
display: flex;
flex-wrap: wrap;
margin-top: 26rpx;
border-bottom: 1rpx solid #D8D8D8;
.dangeanniu{
width: 20%;
text-align: center;
margin-bottom: 28rpx;
.pic{
width: 88rpx;
height: 88rpx;
background: #F1F1F1;
border-radius: 6rpx 6rpx 6rpx 6rpx;
margin: auto;
margin-bottom: 14rpx;
image{
width: 32rpx;
height: 32rpx;
margin-top: 28rpx;
}
}
}
}
.ewm{
view{
width: 140rpx;
height: 44rpx;
background: #4C97E7;
border-radius: 6rpx 6rpx 6rpx 6rpx;
font-size: 24rpx;
color: #FFFFFF;
display: flex;
align-items: center;
padding: 0 8rpx;
padding-left: 18rpx !important;
text-align: center;
box-sizing: border-box;
image{
width: 26rpx;
height: 26rpx;
margin-right: 10rpx;
}
}
}
.xuhang{
view{
width: 284rpx;
height: 70rpx;
background: #F1F1F1;
border-radius: 8rpx 8rpx 8rpx 8rpx;
display: flex;
align-items: center;
font-size: 24rpx;
color: #3D3D3D;
padding-left: 18rpx;
box-sizing: border-box;
image{
width: 32rpx;
height: 32rpx;
margin-right: 14rpx;
}
}
}
.bikexx{
margin-top: 26rpx;
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid #D8D8D8;
padding-bottom: 26rpx;
box-sizing: border-box;
.dianliang{
position: relative;
.dl{
margin-top: 66rpx;
}
.dy{
margin-top: 2rpx;
}
view{
padding-left: 14rpx;
box-sizing: border-box;
font-size: 24rpx;
color: #3D3D3D;
span{
font-size: 32rpx;
}
}
image{
position: absolute;
width: 222rpx;
height: 160rpx;
z-index: -1;
}
}
}
.topsn{
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid #D8D8D8;
padding-bottom: 26rpx;
box-sizing: border-box;
.lt{
font-weight: 600;
font-size: 32rpx;
color: #3D3D3D;
}
.rt{
display: flex;
.issuo{
width: 104rpx;
height: 42rpx;
background: #F1F1F1;
border-radius: 6rpx 6rpx 6rpx 6rpx;
text-align: center;
line-height: 42rpx;
margin-left: 28rpx;
font-size: 24rpx;
color: #3D3D3D;
}
.stutas{
span{
display: inline-block;
width: 104rpx;
height: 42rpx;
// background: #DBFDD6;
border-radius: 6rpx 6rpx 6rpx 6rpx;
text-align: center;
line-height: 42rpx;
margin-left: 28rpx;
font-size: 24rpx;
color: #fff;
}
}
}
}
}
.tip_box { .tip_box {
position: fixed; position: fixed;
left: 72rpx; left: 72rpx;
@ -1385,101 +1589,6 @@
} }
} }
.info_card {
background: #FFFFFF;
margin: 20rpx;
border-radius: 16rpx;
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
overflow: hidden;
.info_tit {
display: flex;
flex-wrap: nowrap;
padding: 28rpx 32rpx;
font-weight: 600;
font-size: 32rpx;
color: #2C3E50; //
.money {
margin-left: auto;
font-weight: 500;
font-size: 32rpx;
color: #3498DB; //
}
}
.lines {
width: 100%;
border-bottom: 1rpx solid #EEF2F6; // 线
}
.cont {
padding: 32rpx;
.info_li {
width: 100%;
display: flex;
flex-wrap: nowrap;
font-weight: 400;
font-size: 28rpx;
color: #94A3B8; //
margin-bottom: 16rpx; //
span {
color: #334155; //
margin-left: 8rpx;
}
.half_infoli {
display: flex;
flex-wrap: nowrap;
width: 50%;
font-weight: 400;
font-size: 28rpx;
color: #94A3B8;
span {
color: #334155;
margin-left: 8rpx;
}
}
}
}
}
.bot_btn {
position: fixed;
bottom: 0;
display: flex;
flex-wrap: wrap;
padding: 24rpx;
width: 750rpx;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(10rpx);
box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.05);
.btn {
margin: 8rpx;
display: flex;
align-items: center;
justify-content: center;
width: 160rpx;
height: 72rpx;
background: #F1F5F9; //
border-radius: 12rpx;
border: 1rpx solid #E2E8F0;
font-weight: 500;
font-size: 28rpx;
color: #475569;
transition: all 0.3s ease;
&:active {
transform: scale(0.98);
background: #E2E8F0;
}
}
}
.map { .map {
position: relative; position: relative;
width: 750rpx; width: 750rpx;

View File

@ -110,7 +110,7 @@
记录{{index + 1}} 记录{{index + 1}}
</view> </view>
<view class="two"> <view class="two">
{{item.startTime}} {{item.startTime == null ? '--' : item.startTime}}
</view> </view>
</view> </view>
<view class="bianhao"> <view class="bianhao">
@ -125,9 +125,10 @@
</view> </view>
</view> </view>
<view class="imgs"> <view class="imgs">
<view class="" v-for="(img, imgidx) in item.pictures" :key="imgidx"> <!-- <view class="" v-for="(img, imgidx) in item.pictures" :key="imgidx"> -->
<image :src="img" mode="aspectFill" @click="preview(img, item)"></image> <!-- <image :src="img" mode="aspectFill" @click="preview(img, item)"></image> -->
</view> <video v-if="item.finishPicture != null" :src="item.finishPicture"></video>
<!-- </view> -->
</view> </view>
</view> </view>
<view class="btn_cont" v-if="orderxqobj.status == 'WAIT_VERIFY'"> <view class="btn_cont" v-if="orderxqobj.status == 'WAIT_VERIFY'">

View File

@ -20,10 +20,10 @@
账户余额 账户余额
</view> </view>
<view class="price"> <view class="price">
{{infoobj.balance == null ? '--' : '¥' + qbobj.user.balance}} {{infoobj.balance == null ? '¥0.00' : '¥' + infoobj.balance.toFixed(2)}}
</view> </view>
<view class="ljtx"> <view class="ljtx">
累积提现3456.23 累积提现{{successAmount == null ? '¥0.00' : '¥' + successAmount.toFixed(2)}}
</view> </view>
</view> </view>
<view class="rt"> <view class="rt">
@ -46,7 +46,7 @@
</view> </view>
<view class="li"> <view class="li">
<view class="top"> <view class="top">
{{(Number(qbobj.bonus.amount) - Number(qbobj.bonusRefund.amount)).toFixed(2) == null ? '--' : '¥' + (Number(qbobj.bonus.amount) - Number(qbobj.bonusRefund.amount)).toFixed(2)}} {{(Number(qbobj.bonus.amount) - Number(qbobj.bonusRefund.amount)).toFixed(2) == null ? '¥0.00' : '¥' + (Number(qbobj.bonus.amount) - Number(qbobj.bonusRefund.amount)).toFixed(2)}}
</view> </view>
<view class="bot"> <view class="bot">
累计分成 累计分成
@ -54,7 +54,7 @@
</view> </view>
<view class="li"> <view class="li">
<view class="top"> <view class="top">
{{(Number(qbobj.order.payAmount) - Number(qbobj.orderRefund.amount)).toFixed(2) == null ? '--' : '¥' + (Number(qbobj.order.payAmount) - Number(qbobj.orderRefund.amount)).toFixed(2)}} {{(Number(qbobj.order.payAmount) - Number(qbobj.orderRefund.amount)).toFixed(2) == null ? '¥0.00' : '¥' + (Number(qbobj.order.payAmount) - Number(qbobj.orderRefund.amount)).toFixed(2)}}
</view> </view>
<view class="bot"> <view class="bot">
订单金额 订单金额
@ -62,7 +62,7 @@
</view> </view>
<view class="li"> <view class="li">
<view class="top"> <view class="top">
{{qbobj.order.count == null ? '--' : qbobj.order.count + '笔'}} {{qbobj.order.count == null ? '0' : qbobj.order.count + '笔'}}
</view> </view>
<view class="bot"> <view class="bot">
订单数量 订单数量
@ -107,7 +107,7 @@
<image src="https://api.ccttiot.com/smartmeter/img/static/uUjJxrOO6zHPzjT0Srl4" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uUjJxrOO6zHPzjT0Srl4" mode=""></image>
<view class="top"> <view class="top">
<view class="topwz"> <view class="topwz">
{{yunyingobj.order.count == null ? '--' : yunyingobj.order.count + '笔'}} {{yunyingobj.order.count == null ? '0' : yunyingobj.order.count + '笔'}}
</view> </view>
<view class="botwz"> <view class="botwz">
订单数量 订单数量
@ -115,7 +115,7 @@
</view> </view>
<view class="top"> <view class="top">
<view class="topwz"> <view class="topwz">
{{yunyingobj.order.payAmount == null ? '--' : '¥' + yunyingobj.order.payAmount.toFixed(2)}} {{yunyingobj.order.payAmount == null ? '¥0.00' : '¥' + yunyingobj.order.payAmount.toFixed(2)}}
</view> </view>
<view class="botwz"> <view class="botwz">
订单金额 订单金额
@ -134,7 +134,7 @@
<image src="https://api.ccttiot.com/smartmeter/img/static/uCWFSrIsbEaQdKHWZv7U" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uCWFSrIsbEaQdKHWZv7U" mode=""></image>
<view class="top"> <view class="top">
<view class="topwz"> <view class="topwz">
{{yunyingobj.bonus.count == null ? '--' : yunyingobj.bonus.count + '笔'}} {{yunyingobj.bonus.count == null ? '0' : yunyingobj.bonus.count + '笔'}}
</view> </view>
<view class="botwz"> <view class="botwz">
分成数量 分成数量
@ -142,7 +142,7 @@
</view> </view>
<view class="top"> <view class="top">
<view class="topwz"> <view class="topwz">
{{(Number(yunyingobj.bonus.amount) - Number(yunyingobj.bonusRefund.amount)).toFixed(2) == null ? '--' : '¥' + (Number(yunyingobj.bonus.amount) - Number(yunyingobj.bonusRefund.amount)).toFixed(2)}} {{(Number(yunyingobj.bonus.amount) - Number(yunyingobj.bonusRefund.amount)).toFixed(2) == null ? '¥0.00' : '¥' + (Number(yunyingobj.bonus.amount) - Number(yunyingobj.bonusRefund.amount)).toFixed(2)}}
</view> </view>
<view class="botwz"> <view class="botwz">
分成金额 分成金额
@ -387,6 +387,7 @@
backgroundColor: "#fff", backgroundColor: "#fff",
}, },
index:0, index:0,
successAmount:'',
riqiindex:0, riqiindex:0,
oneparams: { oneparams: {
year: true, year: true,
@ -417,10 +418,8 @@
}, },
onShow() { onShow() {
this.getqb()
this.getinfo() this.getinfo()
this.getCurrentDate(this.riqiindex) this.getCurrentDate(this.riqiindex)
this.gettongji()
}, },
methods: { methods: {
// //
@ -428,13 +427,16 @@
this.$u.get(`/getInfo`).then(res => { this.$u.get(`/getInfo`).then(res => {
if (res.code == 200) { if (res.code == 200) {
this.infoobj = res.user this.infoobj = res.user
this.successAmount = res.stat.withdraw.successAmount
this.gettongji()
this.getqb()
} }
}) })
}, },
// //
getqb() { getqb() {
let StatKeys = 'order_user_count,order_count,order_pay_amount,order_refund_amount,bonus_count,bonus_amount,bonus_refund_amount,bonus_refund_amount,user_balance' let StatKeys = 'order_user_count,order_count,order_pay_amount,order_refund_amount,bonus_count,bonus_amount,bonus_refund_amount,bonus_refund_amount,user_balance'
this.$u.get(`/dashboard/stat?keys=${StatKeys}&dateRange=`).then(res => { this.$u.get(`/dashboard/stat?keys=${StatKeys}&dateRange=&bonusUserId=${this.infoobj.userId}`).then(res => {
if (res.code == 200) { if (res.code == 200) {
this.qbobj = res.data this.qbobj = res.data
} }
@ -443,7 +445,7 @@
// //
gettongji() { gettongji() {
let StatKeys = 'order_user_count,order_count,order_pay_amount,order_refund_amount,bonus_count,bonus_amount,bonus_refund_amount,bonus_refund_amount,user_balance' let StatKeys = 'order_user_count,order_count,order_pay_amount,order_refund_amount,bonus_count,bonus_amount,bonus_refund_amount,bonus_refund_amount,user_balance'
this.$u.get(`/dashboard/stat?keys=${StatKeys}&dateRange=${this.kstime + ',' + this.jstime}`).then(res => { this.$u.get(`/dashboard/stat?keys=${StatKeys}&dateRange=${this.kstime + ',' + this.jstime}&bonusUserId=${this.infoobj.userId}`).then(res => {
if (res.code == 200) { if (res.code == 200) {
this.yunyingobj = res.data this.yunyingobj = res.data
} }

View File

@ -33,10 +33,11 @@
<view class="icon"> <view class="icon">
<view class="imgbox" v-for="(item,index) in imglist " :key="index"> <view class="imgbox" v-for="(item,index) in imglist " :key="index">
<image :src="item" mode=""></image> <image :src="item" mode="aspectFill"></image>
</view> </view>
<view class="imgbox" @click="btn"> <view class="imgbox" @click="btn">
<image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode="aspectFill"></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode="aspectFill">
</image>
</view> </view>
</view> </view>
@ -57,15 +58,16 @@
bgc: { bgc: {
backgroundColor: "#fff", backgroundColor: "#fff",
}, },
cbgz: ['车头','车灯'], cbgz: ['车头', '车灯'],
csgz: ['车座','车把','轮胎'], csgz: ['车座', '车把', '轮胎'],
tsgz: ['其他'], tsgz: ['其他'],
textValue: '', textValue: '',
currentCount: 0, currentCount: 0,
imglist: [], imglist: [],
token: '', token: '',
sn:'', sn: '',
upurl:'' upurl: '',
btnflag: true
} }
}, },
onShow() { onShow() {
@ -102,47 +104,52 @@
}, },
methods: { methods: {
// //
btnzgjl(){ btnzgjl() {
uni.navigateTo({ uni.navigateTo({
url:'/page_user/guzhang/guzhanglv' url: '/page_user/guzhang/guzhanglv'
}) })
}, },
sub(){ sub() {
if (this.btnflag == true) {
this.btnflag = false
let data = { let data = {
faultDetail:this.textValue, faultDetail: this.textValue,
vehicleCode:this.sn, vehicleCode: this.sn,
faultSite:'', faultSite: '',
picture:this.imglist.join(',') picture: this.imglist.join(',')
} }
console.log(data,'dadadad'); console.log(data, 'dadadad');
this.$u.post("/app/fault",data).then((res) => { this.$u.post("/app/fault", data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
title: '提交成功', title: '提交成功',
icon: 'success', icon: 'success',
duration: 1000 duration: 1000
}) })
setTimeout(()=>{ setTimeout(() => {
this.btnflag = true
uni.navigateBack({ uni.navigateBack({
delta: 1, delta: 1,
}) })
},1100) }, 1100)
}else if(res.code == 401){ } else if (res.code == 401) {
this.btnflag = true
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '您当前未登录,是否前去登录?', content: '您当前未登录,是否前去登录?',
showCancel: true, showCancel: true,
success: function (res) { success: function(res) {
if (res.confirm) { if (res.confirm) {
uni.reLaunch({ uni.reLaunch({
url:'/pages/login/login' url: '/pages/login/login'
}) })
} else if (res.cancel) { } else if (res.cancel) {
} }
} }
}) })
} else{ } else {
this.btnflag = true
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
icon: 'none', icon: 'none',
@ -150,22 +157,32 @@
}) })
} }
}) })
}
}, },
getQiniuToken() { getQiniuToken() {
this.$u.get("/common/qiniuToken").then((res) => { this.$u.get("/common/qiniuToken").then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.token=res.data this.token = res.data
console.log(res,'resres') console.log(res, 'resres')
} }
}) })
}, },
getlist(){ getlist() {
// checked // checked
this.$u.get("/appVerify/fault/allList?dictType=et_fault_type").then((res) => { this.$u.get("/appVerify/fault/allList?dictType=et_fault_type").then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.cbgz = res.data.headstock.map(item => ({...item, checked: false})) this.cbgz = res.data.headstock.map(item => ({
this.csgz = res.data.body.map(item => ({...item, checked: false})) ...item,
this.tsgz = res.data.special.map(item => ({...item, checked: false})) checked: false
}))
this.csgz = res.data.body.map(item => ({
...item,
checked: false
}))
this.tsgz = res.data.special.map(item => ({
...item,
checked: false
}))
} else { } else {
uni.showToast({ uni.showToast({
title: '未登录,请登录后尝试', title: '未登录,请登录后尝试',
@ -179,10 +196,10 @@
this.cbgz[index].checked = !this.cbgz[index].checked this.cbgz[index].checked = !this.cbgz[index].checked
this.$forceUpdate() this.$forceUpdate()
}, },
csCheckbox(index){ csCheckbox(index) {
this.csgz[index].checked = !this.csgz[index].checked this.csgz[index].checked = !this.csgz[index].checked
}, },
tsCheckbox(index){ tsCheckbox(index) {
this.tsgz[index].checked = !this.tsgz[index].checked this.tsgz[index].checked = !this.tsgz[index].checked
}, },
hidePlaceholder() { hidePlaceholder() {
@ -237,10 +254,10 @@
key: 'smartmeter/img/' + math key: 'smartmeter/img/' + math
}, },
success: function(res) { success: function(res) {
console.log(res,'resres'); console.log(res, 'resres');
let str = JSON.parse(res.data) let str = JSON.parse(res.data)
console.log(str.key) console.log(str.key)
_this.userImgs = 'https://api.ccttiot.com/'+ str.key _this.userImgs = 'https://api.ccttiot.com/' + str.key
console.log(_this.userImgs) console.log(_this.userImgs)
_this.imglist.push(_this.userImgs) _this.imglist.push(_this.userImgs)
} }
@ -270,7 +287,8 @@
.page { .page {
width: 750rpx; width: 750rpx;
padding-bottom: 200rpx; padding-bottom: 200rpx;
.sbjl{
.sbjl {
width: 750rpx; width: 750rpx;
margin-top: 20rpx; margin-top: 20rpx;
justify-content: center; justify-content: center;
@ -278,12 +296,14 @@
align-items: center; align-items: center;
font-size: 28rpx; font-size: 28rpx;
color: #3D3D3D; color: #3D3D3D;
image{
image {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
} }
} }
.btn{
.btn {
position: fixed; position: fixed;
left: 34rpx; left: 34rpx;
bottom: 80rpx; bottom: 80rpx;
@ -299,6 +319,7 @@
font-size: 40rpx; font-size: 40rpx;
color: #FFFFFF; color: #FFFFFF;
} }
.cardbox { .cardbox {
margin: 30rpx auto; margin: 30rpx auto;
width: 680rpx; width: 680rpx;
@ -306,6 +327,7 @@
background: #FFFFFF; background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08); box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
.tip { .tip {
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
@ -313,6 +335,7 @@
font-size: 32rpx; font-size: 32rpx;
color: #3D3D3D; color: #3D3D3D;
line-height: 44rpx; line-height: 44rpx;
.ipnt { .ipnt {
margin-top: 10rpx; margin-top: 10rpx;
margin-right: 12rpx; margin-right: 12rpx;
@ -320,6 +343,7 @@
font-size: 48rpx; font-size: 48rpx;
} }
} }
.iptbox { .iptbox {
display: flex; display: flex;
align-items: center; align-items: center;
@ -328,10 +352,12 @@
height: 80rpx; height: 80rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 2rpx solid #979797; border: 2rpx solid #979797;
.ips { .ips {
margin-left: 30rpx; margin-left: 30rpx;
width: 80%; width: 80%;
} }
.iptbtn { .iptbtn {
display: flex; display: flex;
align-items: center; align-items: center;
@ -340,25 +366,30 @@
height: 80rpx; height: 80rpx;
background: #4C97E7; background: #4C97E7;
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
image { image {
width: 37rpx; width: 37rpx;
height: 37rpx; height: 37rpx;
} }
} }
} }
.txt { .txt {
margin-top: 18rpx; margin-top: 18rpx;
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 28rpx;
color: #3D3D3D; color: #3D3D3D;
} }
.icon { .icon {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; align-items: center;
margin-top: 40rpx; margin-top: 40rpx;
.imgbox { .imgbox {
width: 33%; width: 33%;
image { image {
width: 142rpx; width: 142rpx;
height: 142rpx; height: 142rpx;
@ -366,6 +397,7 @@
} }
} }
} }
.checkbox { .checkbox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -381,7 +413,8 @@
height: 65rpx; height: 65rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 2rpx solid #C7C7C7; border: 2rpx solid #C7C7C7;
image{
image {
position: absolute; position: absolute;
right: 0; right: 0;
bottom: 0; bottom: 0;
@ -389,15 +422,18 @@
height: 20rpx; height: 20rpx;
} }
} }
.check_li:nth-child(4n) { .check_li:nth-child(4n) {
margin-right: 0; margin-right: 0;
} }
.act1 { .act1 {
width: 142rpx; width: 142rpx;
height: 65rpx; height: 65rpx;
border: 2rpx solid #1E807A; border: 2rpx solid #1E807A;
} }
} }
.input-container { .input-container {
position: relative; position: relative;
width: 612rpx; width: 612rpx;
@ -421,6 +457,7 @@
pointer-events: none; pointer-events: none;
/* 确保点击事件可以穿透到textarea上 */ /* 确保点击事件可以穿透到textarea上 */
} }
.custom-textarea { .custom-textarea {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="page"> <view class="page">
<u-navbar title="拍照还车" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36' height='45' <u-navbar title="还车" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36' height='45'
back-icon-color='#fff'></u-navbar> back-icon-color='#fff'></u-navbar>
<view class="tip_box"> <view class="tip_box">
请将车辆正确停放指定停车点后环绕车拍摄视 押金将在审核通过后退还账户 请将车辆正确停放指定停车点后环绕车拍摄视 押金将在审核通过后退还账户
@ -10,23 +10,39 @@
我们将在12小时内完成审核 我们将在12小时内完成审核
</view> </view>
<view class="vadio_png1"> <view class="vadio_png1">
<image class="backimg" src="https://lxnapi.ccttiot.com/bike/img/static/uEP0UPJw6a1WuxA7ZlMo" mode="" v-if="videoUrl==''"></image> <image @click="recordVideo" class="backimg" src="https://api.ccttiot.com/smartmeter/img/static/uTwV4aH6HbxqmM1ssvTs" mode="" v-if="videoUrl==''"></image>
<image @click="recordVideo" class="tip_img" src="https://lxnapi.ccttiot.com/bike/img/static/uXFG7Vee8MWx5y7pha2U" mode="" v-if="videoUrl==''"></image>
<video class="vad" :src="videoUrl" controls="controls" style="width: 100%;" v-if="videoUrl!=''"></video> <video class="vad" :src="videoUrl" controls="controls" style="width: 100%;" v-if="videoUrl!=''"></video>
<!-- <view class="glass" v-if="videoUrl!=''"></view>
<image class="tip_img" src="https://lxnapi.ccttiot.com/bike/img/static/uXFG7Vee8MWx5y7pha2U" mode="" v-if="videoUrl!=''"></image> -->
</view> </view>
<view class="tip_txt" style="font-weight: 500;font-size: 32rpx;color: #3D3D3D;"> <view class="tip_txt" style="font-weight: 500;font-size: 32rpx;color: #3D3D3D;margin-top: 30rpx;">
保持车辆录像的完整清晰,不要随意拍摄确保视频中车辆出境并且出现车牌号 保持车辆录像的完整清晰,不要随意拍摄确保视频中车辆出境并且出现车牌号
</view> </view>
<view class="vadio_png"> <view class="vadio_png">
<image src="https://lxnapi.ccttiot.com/bike/img/static/uVuGMvfe3xlz3x8WSmcC" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/unL4myQWRXAKWCmKof4j" mode=""></image>
</view> </view>
<view class="btn" @click="sub" :class='videoUrl!="" ? "act1": ""'> <view class="btn" @click="sub" :class='videoUrl!="" ? "act1": ""'>
还车 还车
</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="https://api.ccttiot.com/smartmeter/img/static/uzRrRFiToK3bb3IurIHU" class="tcimg" mode=""></image>
<view class="btnan">
<view class="fj" @click="btnfajin">
缴纳罚金还车
</view>
<view class="qx" @click="fjflag = false">
继续骑行
</view>
</view>
</view>
<view class="mask" v-if="fjflag"></view>
</view> </view>
</template> </template>
@ -43,18 +59,32 @@
upurl:'', upurl:'',
orderinfo:{}, orderinfo:{},
userId:'', userId:'',
videoUrl:'' videoUrl:'',
fjflag:false,
fajinobj:{},
orderAreaId:''
} }
}, },
onLoad(e) { onLoad(e) {
this.orderId = e.orderid this.orderId = e.orderid
this.orderAreaId = e.orderAreaId
}, },
onShow() { onShow() {
this.getQiniuToken() this.getQiniuToken()
// this.getuserInfo() // this.getuserInfo()
}, },
methods: { methods: {
//
btnfajin(){
this.fjflag = false
this.gethc()
},
//
btntcd(){
uni.navigateTo({
url:'/pages/myorder/returned/tingche?areaId=' + this.orderAreaId
})
},
sub(){ sub(){
uni.getLocation({ uni.getLocation({
type: 'wgs84', type: 'wgs84',
@ -70,7 +100,27 @@
} }
}) })
}, },
//
getfeiyong(){ getfeiyong(){
let data = {
orderId:this.orderId,
lon:this.lat,
lat:this.lon
}
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.gethc()
}else{
// this.fjflag = true
this.gethc()
}
}
})
},
gethc(){
let data = { let data = {
orderId:this.orderId, orderId:this.orderId,
picture:this.videoUrl, picture:this.videoUrl,
@ -209,7 +259,81 @@
page { page {
background-color: #F7FAFE; background-color: #F7FAFE;
} }
.mask{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .3);
z-index: 9;
}
.tingchetc{
width: 624rpx;
height: 610rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
top: 572rpx;
z-index: 10;
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;
}
}
}
.page { .page {
// width: 750rpx; // width: 750rpx;
width: 750rpx; width: 750rpx;

View File

@ -85,15 +85,22 @@
<view class="cont_box" v-show="checkIdx == 2 || orderobj.orderAreaReturnVerify == true"> <view class="cont_box" v-show="checkIdx == 2 || orderobj.orderAreaReturnVerify == true">
<view class="tit"> <view class="tit">
<image src="https://lxnapi.ccttiot.com/bike/img/static/uByIrgaV23PDGZWReKHW" mode=""></image> <image src="https://lxnapi.ccttiot.com/bike/img/static/uByIrgaV23PDGZWReKHW" mode=""></image>
请对车辆部位拍 请对车辆部位拍摄视频
</view> </view>
<view class="icon"> <!-- <view class="icon">
<view class="imgbox" v-for="(item, index) in imglist " :key="index"> <view class="imgbox" v-for="(item, index) in imglist " :key="index">
<image :src="item" mode=""></image> <image :src="item" mode=""></image>
</view> </view>
<view class="imgbox" @click="btn"> <view class="imgbox" @click="btn">
<image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode=""></image>
</view> </view>
</view> -->
<view class="vadio_png1">
<image @click="recordVideo" class="backimg" src="https://api.ccttiot.com/smartmeter/img/static/uTwV4aH6HbxqmM1ssvTs" mode="" v-if="videoUrl==''"></image>
<video class="vad" :src="videoUrl" controls="controls" style="width: 100%;" v-if="videoUrl!=''"></video>
</view>
<view class="tip_txt" style="font-weight: 500;font-size: 32rpx;color: #3D3D3D;margin-top: 30rpx;">
保持车辆录像的完整清晰,不要随意拍摄确保视频中车辆出境并且出现车牌号
</view> </view>
</view> </view>
@ -124,7 +131,9 @@ export default {
feiyong:'', feiyong:'',
timeRemaining: "", timeRemaining: "",
latitude:'', latitude:'',
longitude:'' longitude:'',
videoPath:'',
} }
}, },
onLoad(e) { onLoad(e) {
@ -151,6 +160,48 @@ export default {
}, },
methods: { methods: {
recordVideo() {
// API
uni.chooseVideo({
sourceType: ['camera'], // 使
camera: 'back', // 使frontback
maxDuration: 15, //
success: (res) => {
//
this.videoPath = res.tempFilePath;
console.log(res.tempFilePath);
this.upload()
},
fail: (err) => {
console.log('录像失败:', err);
}
});
},
upload(){
uni.showLoading({
title:'上传中'
})
let _this=this
let math='static/'+_this.$u.guid(20)
wx.uploadFile({
url: 'https://up-z2.qiniup.com',
name: 'file',
filePath: this.videoPath,
formData: {
token: _this.token, //token
key:'bike/video/'+math
},
success: function(res) {
uni.hideLoading()
console.log(res,'resres');
let str = JSON.parse(res.data)
console.log(str.key)
_this.videoUrl = 'https://api.ccttiot.com/' + str.key
// console.log(_this.userImgs)
// _this.imglist.push(_this.userImgs)
}
});
},
// //
subs(){ subs(){
uni.showLoading({ uni.showLoading({
@ -163,15 +214,15 @@ export default {
}else{ }else{
reason = 'DEVICE_FAULT' reason = 'DEVICE_FAULT'
} }
if(this.imglist.length > 0){ // if(this.imglist.length > 0){
faultPicture = this.imglist.join(',') // faultPicture = this.imglist.join(',')
} // }
let data = { let data = {
orderId:this.orderid, orderId:this.orderid,
deviceSn:this.bikesn, deviceSn:this.bikesn,
reason:reason, reason:reason,
faultDetail:this.textValue, faultDetail:this.textValue,
faultPicture:faultPicture, faultPicture:this.videoUrl,
lat:this.latitude, lat:this.latitude,
lon:this.longitude lon:this.longitude
} }
@ -707,7 +758,48 @@ page {
background: #FFFFFF; background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08); box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
.vadio_png1{
position: relative;
width: 100%;
height: 340rpx;
margin-top: 30rpx;
.backimg{
width: 100%;
height: 340rpx;
}
.tip_img{
position: absolute;
top: 72rpx;
left: 210rpx;
width: 252rpx;
height: 194rpx;
z-index: 11;
}
.vad{
width: 100%;
height: 370rpx;
border-radius: 40rpx;
z-index: 1;
}
.glass{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 340rpx;
background: rgba(255, 255, 255, 0.2);
border-radius: 40rpx;
// box-shadow: 0 rgba(0, 0, 0, 0.1);
backdrop-filter: blur(10rpx);
-webkit-backdrop-filter: blur(10rpx); /* For Safari */
// border: 1rpx solid rgba(255, 255, 255, 0.3);
z-index: 10;
}
}
.tit { .tit {
width: 100%; width: 100%;
display: flex; display: flex;

View File

@ -42,7 +42,8 @@
</view> </view>
<view class="img"> <view class="img">
<view class="" v-for="(img, imgidx) in parsePictures(pic.finishPicture)" :key="imgidx"> <view class="" v-for="(img, imgidx) in parsePictures(pic.finishPicture)" :key="imgidx">
<image :src="img" mode="aspectFill" @click="preview(img, pic)"></image> <!-- <image :src="img" mode="aspectFill" @click="preview(img, pic)"></image> -->
<video :src="img"></video>
</view> </view>
</view> </view>
</view> </view>

View File

@ -54,7 +54,8 @@
tel:'', tel:'',
name:'', name:'',
zfzh:'', zfzh:'',
isReal:false isReal:false,
backData: null
} }
}, },
onLoad(option) { onLoad(option) {
@ -66,12 +67,54 @@
this.zfzh = JSON.parse(option.user).realIdCard this.zfzh = JSON.parse(option.user).realIdCard
} }
}, },
onShow() {
if (this.backData == true) {
console.log('接收数据:', this.backData);
this.getshuaxin();
this.backData = null; //
}
},
methods: { methods: {
//
getshuaxin(){
this.$u.get('/app/realName/refreshRealName').then(res => {
if(res.code == 200){
if(res.data.pass == true){
let realNameType = res.data.realNameType
let infoId = res.data.infoId
uni.showModal({
title: '温馨提示',
content: `人脸认证成功`,
showCancel: false,
success: function(res) {
uni.navigateBack()
}
})
}else{
uni.showModal({
title: '温馨提示',
content: `人脸认证失败`,
showCancel: false,
success: function(res) {
uni.navigateBack()
}
})
}
}else{
uni.showModal({
title: '温馨提示',
content: `人脸认证失败`,
showCancel: false,
success: function(res) {
uni.navigateBack()
}
})
}
})
},
// //
btnfh(){ btnfh(){
uni.switchTab({ uni.navigateBack()
url:'/pages/my'
})
}, },
// //
btnshiming(){ btnshiming(){
@ -83,6 +126,7 @@
this.$u.put(`/app/realName/realName`,data).then(res =>{ this.$u.put(`/app/realName/realName`,data).then(res =>{
if(res.code == 200){ if(res.code == 200){
let https = encodeURIComponent(res.data.jumpUrl) let https = encodeURIComponent(res.data.jumpUrl)
this.backData = true
uni.navigateTo({ uni.navigateTo({
url:'/page_fenbao/renlian?https=' + https url:'/page_fenbao/renlian?https=' + https
}) })

View File

@ -74,7 +74,8 @@
token: '', token: '',
contact: '', contact: '',
picdomain:'', picdomain:'',
userId:'' userId:'',
btnflag:true
} }
}, },
computed: { computed: {
@ -135,25 +136,8 @@
this.currentCount = this.textValue.trim().replace(/\s+/g, '').length this.currentCount = this.textValue.trim().replace(/\s+/g, '').length
}, },
sub() { sub() {
if (this.cutidx == -1) { if(this.btnflag == true){
uni.showToast({ this.btnflag = false
title: '请选择反馈类型',
icon: 'none',
duration: 2000
})
} else if (this.textValue == '') {
uni.showToast({
title: '请输入问题描述',
icon: 'none',
duration: 2000
})
} else if (this.contact == '') {
uni.showToast({
title: '请输入联系方式',
icon: 'none',
duration: 2000
})
} else {
var imgString = this.imglist.join(',') var imgString = this.imglist.join(',')
let data = { let data = {
userId:this.userId, userId:this.userId,
@ -170,8 +154,32 @@
duration: 2000 duration: 2000
}) })
setTimeout(()=>{ setTimeout(()=>{
this.btnflag = true
uni.navigateBack() uni.navigateBack()
},1500) },1500)
}else if(res.code == 401){
this.btnflag = true
uni.showModal({
title: '提示',
content: '您当前未登录,是否前去登录?',
showCancel: true,
success: function(res) {
if (res.confirm) {
uni.reLaunch({
url: '/pages/login/login'
})
} else if (res.cancel) {
}
}
})
}else{
this.btnflag = true
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
} }
}) })
} }

View File

@ -198,8 +198,8 @@
getlunbo(){ getlunbo(){
this.$u.get("/app/ad").then(res => { this.$u.get("/app/ad").then(res => {
if(res.code == 200){ if(res.code == 200){
if(res.rows.length > 0 && res.rows[0] != null){ if(res.data.length > 0 && res.data[0] != null){
res.rows.forEach(item =>{ res.data.forEach(item =>{
this.lists.push({ this.lists.push({
image:item.picture, image:item.picture,
title: item.adId title: item.adId

View File

@ -14,9 +14,9 @@
快捷登录 快捷登录
</button> </button>
<!-- <view class="tipss" @click="pageindex=1" style="width: 100%;text-align: center;margin-top: 50rpx;color: #ccc;"> <view class="tipss" @click="bdl" style="width: 100%;text-align: center;margin-top: 50rpx;color: #333;position: fixed;z-index: 99;bottom: 60rpx;">
手机号登录 暂不登录
</view> --> </view>
</view> </view>
<view class="page3" v-if="pageindex == 2"> <view class="page3" v-if="pageindex == 2">
<view class="tit"> <view class="tit">
@ -279,6 +279,11 @@
}, },
}, },
methods: { methods: {
bdl(){
uni.switchTab({
url:'/pages/index/index'
})
},
page3(){ page3(){
this.pageindex=3 this.pageindex=3
this.phone1='' this.phone1=''

View File

@ -68,7 +68,8 @@
</view> </view>
</view> </view>
<view class="gg"> <view class="gg">
<image src="https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d" mode=""></image> <!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d" mode=""></image> -->
<u-swiper :list="lists"></u-swiper>
</view> </view>
</view> </view>
@ -153,7 +154,8 @@
guanliflag:false, guanliflag:false,
adminflag:false, adminflag:false,
user:{}, user:{},
kefulist:[] kefulist:[],
lists:[]
} }
}, },
onLoad() { onLoad() {
@ -162,8 +164,29 @@
onShow() { onShow() {
this.getareaList() this.getareaList()
this.getkefu() this.getkefu()
this.getlunbo()
}, },
methods: { methods: {
// 广
getlunbo(){
this.$u.get("/app/ad").then(res => {
if(res.code == 200){
if(res.data.length > 0 && res.data[0] != null){
res.data.forEach(item =>{
this.lists.push({
image:item.picture,
title: item.adId
})
})
}else{
this.lists.push({
image:"https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d",
title: ""
})
}
}
})
},
// //
getkefu(){ getkefu(){
this.$u.get(`/app/customerService/list?pageNum=1&pageSize=999`).then(res =>{ this.$u.get(`/app/customerService/list?pageNum=1&pageSize=999`).then(res =>{
@ -347,6 +370,9 @@
</script> </script>
<style lang="scss"> <style lang="scss">
/deep/ wx-swiper{
height: 286rpx !important;
}
page { page {
background: linear-gradient( 180deg, #CCE5FF 0%, rgba(204,229,255,0) 40%); background: linear-gradient( 180deg, #CCE5FF 0%, rgba(204,229,255,0) 40%);
} }
@ -550,7 +576,7 @@
.li{ .li{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
height: 80rpx; height: 100rpx;
align-items: center; align-items: center;
.lt{ .lt{
display: flex; display: flex;

View File

@ -50,7 +50,7 @@
</view> </view>
<view class="" @click="btnqd"> <view class="" @click="btnqd">
<image src="https://api.ccttiot.com/smartmeter/img/static/uqTfyigsAuNX67k5QY4m" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uqTfyigsAuNX67k5QY4m" mode=""></image>
{{deivceobj.deviceLockStatus == 0 ? '已锁车' : '已开启'}} {{deivceobj.deviceLockStatus == 0 ? '点击开锁' : '临时锁车'}}
</view> </view>
<view class="" @click="btndaohang"> <view class="" @click="btndaohang">
<image src="https://api.ccttiot.com/smartmeter/img/static/uNYGQSPt1pxciP1CDp1b" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uNYGQSPt1pxciP1CDp1b" mode=""></image>
@ -106,22 +106,6 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 还车牌照 -->
<!-- <view class="cont_box" v-if="orderAreaReturnVerify">
<view class="tit">
<image src="https://lxnapi.ccttiot.com/bike/img/static/uByIrgaV23PDGZWReKHW" mode=""></image>
还车请拍摄车辆照片
</view>
<view class="icon">
<view class="imgbox" v-for="(item, index) in imglist " :key="index">
<image :src="item" @click="previewImage(index)" mode="aspectFill"></image>
<image @click="btnscpic(index)" src="https://api.ccttiot.com/smartmeter/img/static/uupDDn1ykO99dIgh961m" class="text" mode=""></image>
</view>
<view class="imgbox" @click="btn">
<image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode=""></image>
</view>
</view>
</view> -->
<!-- 还车换车按钮 --> <!-- 还车换车按钮 -->
<view class="anniuhc"> <view class="anniuhc">
<view class="huanche" style="background-color: #fff;border: 1px solid #4297F3;color: #4297F3;" @click="btnghbike"> <view class="huanche" style="background-color: #fff;border: 1px solid #4297F3;color: #4297F3;" @click="btnghbike">
@ -163,7 +147,7 @@
data() { data() {
return { return {
bgc: { bgc: {
backgroundColor: "rgb(235,240,254)", backgroundColor: "",
}, },
cheflag:true, cheflag:true,
qdtxt:'已关闭', qdtxt:'已关闭',
@ -190,7 +174,6 @@
} }
}, },
onShow() { onShow() {
this.getQiniuToken()
setTimeout(()=>{ setTimeout(()=>{
this.getorderdevice() this.getorderdevice()
},100) },100)
@ -226,52 +209,6 @@
} }
}) })
}, },
//
previewImage(index) {
uni.previewImage({
current: this.imglist[index],
urls: this.imglist
})
},
//
btnscpic(index){
this.imglist.splice(index, 1)
},
//
getQiniuToken() {
this.$u.get("/common/qiniuToken").then((res) => {
if (res.code == 200) {
this.token = res.data
}
})
},
//
btn() {
let _this = this
let math = 'static/' + _this.$u.guid(20)
uni.chooseImage({
count: 9,
type: 'all',
success(res) {
const tempFilePaths = res.tempFiles
wx.uploadFile({
url: 'https://up-z2.qiniup.com',
name: 'file',
filePath: tempFilePaths[0].path,
formData: {
token: _this.token, //token
key: 'smartmeter/img/' + math
},
success: function (res) {
let str = JSON.parse(res.data)
let userImgs = 'https://api.ccttiot.com/' + str.key
console.log(userImgs)
_this.imglist.push(userImgs)
}
})
}
})
},
// //
btnghbike(){ btnghbike(){
uni.navigateTo({ uni.navigateTo({
@ -300,7 +237,7 @@
btnhc(){ btnhc(){
if(this.orderAreaReturnVerify == true){ if(this.orderAreaReturnVerify == true){
uni.navigateTo({ uni.navigateTo({
url:'/page_user/hcshenhe?sn=' + this.deivceobj.deviceSn + '&orderid=' + this.deivceobj.orderId url:'/page_user/hcshenhe?sn=' + this.deivceobj.deviceSn + '&orderid=' + this.deivceobj.orderId + '&orderAreaId=' + this.deivceobj.orderAreaId
}) })
}else{ }else{
uni.getLocation({ uni.getLocation({
@ -421,14 +358,14 @@
let that = this let that = this
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '您是否要开启车辆?', content: '您是否要解锁车辆?',
showCancel: true, showCancel: true,
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
that.$u.put(`/app/order/openDevice?orderId=${that.deivceobj.orderId}`).then((res) => { that.$u.put(`/app/order/openDevice?orderId=${that.deivceobj.orderId}`).then((res) => {
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
title: '开启成功', title: '解锁成功',
icon: 'success', icon: 'success',
duration: 2000 duration: 2000
}) })
@ -447,17 +384,28 @@
} }
}) })
}else if(this.deivceobj.deviceLockStatus == 1){ }else if(this.deivceobj.deviceLockStatus == 1){
uni.getLocation({
type: 'wgs84',
success: (res) => {
console.log(res);
this.lat = res.latitude
this.lon = res.longitude
},
fail: (err) => {
console.error('获取位置失败:', err)
}
})
let that = this let that = this
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '您是否要临时关闭车辆?', content: '您是否要临时锁车',
showCancel: true, showCancel: true,
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
that.$u.put(`/app/order/closeDevice?orderId=${that.deivceobj.orderId}`).then((res) => { that.$u.put(`/app/order/closeDevice?orderId=${that.deivceobj.orderId}&lat=${that.lat}&lon=${that.lon}`).then((res) => {
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
title: '临时关闭成功', title: '临时锁车成功',
icon: 'success', icon: 'success',
duration: 2000 duration: 2000
}) })
@ -544,49 +492,6 @@
padding-bottom: 240rpx; padding-bottom: 240rpx;
box-sizing: border-box; box-sizing: border-box;
} }
.cont_box {
margin: 0 auto;
padding: 24rpx 32rpx;
width: 680rpx;
margin-top: 38rpx;
background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx 20rpx 20rpx 20rpx;
.icon {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-top: 40rpx;
.imgbox {
width: 200rpx;
position: relative;
margin-top: 20rpx !important;
.text{
width: 40rpx;
height: 40rpx;
position: absolute;
top: -10rpx;
right: 10rpx;
}
image {
width: 180rpx;
height: 180rpx;
border-radius: 10rpx;
}
}
}
.tit {
width: 100%;
display: flex;
flex-wrap: nowrap;
align-items: center;
image {
margin-right: 12rpx;
width: 24rpx;
height: 24rpx;
}
}
}
.mask{ .mask{
width: 100%; width: 100%;
height: 100vh; height: 100vh;
@ -666,6 +571,10 @@
margin-top: 24rpx; margin-top: 24rpx;
padding: 0 26rpx; padding: 0 26rpx;
box-sizing: border-box; box-sizing: border-box;
height: 78vh;
overflow: scroll;
padding-bottom: 80rpx;
box-sizing: border-box;
.anniuhc{ .anniuhc{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

File diff suppressed because it is too large Load Diff