Ver Fonte

首页样式

zkx há 1 mês atrás
pai
commit
ff3b14df99

+ 0 - 439
pages/deviceTab/bindLock.vue

@@ -1,439 +0,0 @@
-<template>
-	
-	<view class="jpmain  ">
-		<u-navbar  title="绑定地锁"  ></u-navbar>
-		<u-picker mode="selector"
-		 v-model="isswitchshow" 
-		 :range="columns" range-key="label"
-		  :default-selector="columnsindex"
-		   @confirm="switchBtn" ></u-picker>
-		
-	
-			<view class="list" @click="gotoscan">
-				<view class="item">
-					<view class="name">
-						<span>*</span>地锁编号
-
-					</view>
-					<view class="value">
-						<view>{{bindInfo.lockNo?bindInfo.lockNo:'请扫码识别地锁'}}</view>
-						<view><img class="img" src="@/assets/img/deviceTab/index2-3.svg" alt=""></view>
-					</view>
-				</view>
-			</view>
-
-			<view class="list">
-				<view class="item">
-					<view class="name">
-						<span>*</span>用户名
-
-					</view>
-					<view class="value">
-						<input v-model="bindInfo.name" placeholder="请填写用户真实姓名" />
-					</view>
-				</view>
-				<view class="item">
-					<view class="name">
-						<span>*</span>联系电话
-
-					</view>
-					<view class="value">
-						<input v-model="bindInfo.phone" placeholder="请填写用户联系电话" />
-					</view>
-				</view>
-			</view>
-
-			<view class="list">
-				<!-- <view class="item" >
-					<view class="name">
-						所属停车场
-
-					</view>
-					<view class="value" @click="isswitchshowBtn">
-						<view>{{bindInfo.parkingIdN?bindInfo.parkingIdN:'请选择所属停车场'}}</view>
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view> -->
-				<view class="item" v-if="bindInfo.lockNo">
-					<view class="name">
-						车位类型
-
-
-					</view>
-					<view class="value">
-						<view>{{bindInfo.typeN}}</view>
-						<!-- <u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon> -->
-					</view>
-				</view>
-				<view class="item">
-					<view class="name">
-						<span>*</span>车位编号
-
-
-					</view>
-					<view class="value">
-						<input placeholder="如1号车位" v-model="bindInfo.parkingNumber" />
-					</view>
-				</view>
-				<view class="item">
-					<view class="name">
-						位置描述
-
-					</view>
-					<view class="value">
-						<input placeholder="请描述车位位置信息" />
-					</view>
-				</view>
-			<view class="floating-button">
-				<view class="button"  @click="submit" >
-					
-					提交绑定
-				</view>
-				
-			</view>
-
-		</view>
-	</view>
-</template>
-
-<script>
-
-	import * as API from '@/apis/pagejs/deviceTab.js'
-	
-	import * as WxJsApi from '@/apis/utils/wxJsApi.js'
-	export default {
-		data() {
-			return {
-				current: 0,
-				
-				columnsindex:[0],
-				bindInfo:{
-					name:"",
-					phone:"",
-					lockNo:"",
-					type:"",
-					remark:""
-				},
-				isswitchshow:false,
-				allList:[],
-				numList: [{
-					name: '绑定地锁'
-				}, {
-					name: '等待审核'
-				}, {
-					name: '完成绑定'
-				}],
-			};
-		},
-		onLoad(op) {
-			this.bindInfo.parkingId=op.parkingId
-			this.userInfo = this.jphelp.getPersonInfo()
-			this.bindInfo.phone=this.userInfo.phone
-		},
-		onReady() {
-				WxJsApi.getWxConfig([ 'scanQRCode']).then((res) => {
-					// //(res)
-				}).catch(error => {
-					//(res)
-				})
-		},
-		computed:{
-			columns(){
-				var sz=[]
-				for(var i in this.allList){
-					var obj=this.allList[i]
-					
-					
-					sz.push({
-						value:obj.id,
-						label:obj.name
-					})
-				}
-				
-				return sz
-			}
-		},
-		methods:{
-			switchBtn(e){
-				this.columnsindex=[e[0]]
-				var obj=this.columns[e[0]]
-				this.bindInfo.parkingId=obj.value
-				this.bindInfo.parkingIdN=obj.label
-			},
-			isswitchshowBtn(){
-				if(this.allList.length){
-					this.isswitchshow=true
-				}else{
-					this.getParkingList()
-				}
-				
-			},
-			getParkingList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				var obj = {
-					pageIndex: 1,
-					pageSize: 900,
-					type:"bindLock"
-					
-				}
-				
-				API.parkingList(obj).then((res) => {
-			
-					this.allList = res.data.data
-					this.isswitchshow=true
-					uni.hideLoading();
-			
-				}).catch(error => {
-			
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-			
-				})
-			},
-			submit(){
-				
-				if(!this.bindInfo.lockNo){
-					uni.showToast({
-						title: "请扫码识别地锁",
-						icon: "none"
-					})
-					return
-				}
-				
-				if(!this.bindInfo.name){
-					uni.showToast({
-						title: "请填写用户真实姓名",
-						icon: "none"
-					})
-					return
-				}
-				if(!this.bindInfo.phone){
-					uni.showToast({
-						title: "请填写用户联系电话",
-						icon: "none"
-					})
-					return
-				}
-			
-				
-				
-				if(!this.bindInfo.parkingNumber){
-					uni.showToast({
-						title: "请填写车位编号",
-						icon: "none"
-					})
-					return
-				}
-				
-				
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.add( this.bindInfo ).then((res) => {
-				
-					
-					uni.hideLoading();
-					uni.showModal({
-						title: '提示',
-						showCancel: false,
-						content: "操作成功",
-						success: res1 => {
-							if (res1.confirm) {
-								uni.navigateBack()
-							} else if (res1.cancel) {
-								//('用户点击取消');
-							}
-						}
-					})
-					const eventChannel = this.getOpenerEventChannel();
-					
-					eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })
-							 
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			gotoscanMP(){
-				// 允许从相机和相册扫码
-				var _this=this
-				uni.scanCode({
-					success: function (res) {
-						console.log('条码类型:' + res.scanType);
-						console.log('条码内容:' + res.result);
-						_this.getscan(res.result)
-					}
-				});
-			},
-			gotoscan() {
-				
-				// // #ifdef H5
-				// 
-				// // #endif
-				
-				// // #ifdef MP-WEIXIN
-					
-				// 		this.gotoscanMP()
-				// // #endif
-				if (process.env.NODE_ENV === "development"){
-						this.gotoscanH5()
-				}else{
-					WxJsApi.scanQRCode(1).then(res => {
-						var url=res;
-						this.getscan(url)
-					}).catch(error => {
-					
-					})
-				}
-				
-					
-			},
-			getscan(val) {
-			 	
-			 	
-			 	uni.showLoading({
-			 		title: "加载中",
-			 		mask: true,
-			 	})
-			 	API.bindStatusByNo({
-			 		lockNo: val,
-			 
-			 	}).then((res) => {
-			 		uni.hideLoading();
-			 		if (res.data.openBind||1) {
-			 			
-			 			var nowscan=res.data.floorlockInfoList;
-						if(nowscan&&nowscan.length){
-							this.bindInfo.lockNo=nowscan[0].lockNo
-							this.bindInfo.type=nowscan[0].type
-							this.bindInfo.typeN=nowscan[0].typeN
-						}
-						
-			 			uni.showToast({
-			 				title: "扫码成功",
-			 				icon: "none"
-			 			})
-			 
-			 
-			 		} else {
-			 			uni.showToast({
-			 				title: "当前地锁不可绑定",
-			 				icon: "none"
-			 			})
-						
-			 		}
-			 
-			 	}).catch(error => {
-			 		uni.showToast({
-			 			title: error,
-			 			icon: "none"
-			 		})
-			 	})
-			 },
-			gotoscanH5() {
-				console.log('111')
-				
-				var _this = this;
-				uni.showModal({
-					title: '提示',
-					editable: true,
-					//content: '这是一个模态弹窗',
-					success: function(res) {
-						if (res.confirm) {
-							_this.getscan(res.content)
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
-					}
-				});
-			
-			
-			},
-		}
-	}
-</script>
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-</style>
-<style lang="scss" scoped>
-	 
-
-	.body {
-		padding: 32rpx;
-	}
-	.list{
-		background-color: rgba(255,255,255,1);
-		
-		margin: 20rpx 0;
-		.item:not(:last-child) {
-		  border-bottom:1px solid rgba(232,232,232,1);
-		}
-		.item{
-			padding: 32rpx;
-			display: flex;
-			    justify-content: space-between;
-			.name{
-				    width: 40%;
-					font-size: 32rpx;
-					color: #777777;
-					span{
-						color:red
-					}
-					white-space: pre;
-			}
-			.value{
-				font-size: 32rpx;
-				    width: 60%;
-				display: flex;
-				    justify-content: space-between;
-					input::placeholder{
-						color:#AAAAAA;
-					}
-					.img{
-						width: 40rpx;
-						height: 40rpx;
-						
-					}
-			}
-		}
-	}
-	.uni-input-placeholder{
-		color:#AAAAAA;
-	}
-	
-	.floating-button {
-		position: fixed; 
-		  bottom: 0;    /* 距离底部 20px */
-		    width: 100%;
-			 display: flex;
-			  height: 120rpx;
-			    justify-content: center;
-			background-color: rgba(255,255,255,1);
-			.button{
-				margin-top: 24rpx;
-				border-radius: 50px;
-			 height: 80rpx;
-				width: 80%;
-				display: flex;
-				    align-items: center;
-				    justify-content: center;
-					padding:12rpx;
-					
-					background-color: rgba(22,119,255,1);
-					color: rgba(255,255,255,1);
-					font-size: 36rpx;
-			}
-	}
-	
-</style>

+ 0 - 123
pages/deviceTab/bindLockStatus.vue

@@ -1,123 +0,0 @@
-<template>
-	<view class="jpmain  ">
-		<view class="body">
-			<u-steps :list="numList" mode="number" :current="current" un-active-color="#999999"></u-steps>
-		</view>
-		<view class="data">
-<!-- 			<u-icon name="clock-fill" color="#1677FF" size="128"></u-icon>-->
-			<u-icon name="checkmark-circle-fill" color="#00B962" size="128"></u-icon>
-			<view class="t1">等待审核中</view>
-			<view class="t2">绑定申请已提交,等待后台审核完成建站</view>
-		</view>
-		<view class="floating-button" @click="goBack()">
-			<view class="button button2">
-				返回
-			</view>
-
-		</view>
-
-	</view>
-	</view>
-</template>
-
-<script >
-	import * as API from '@/apis/pagejs/index.js'
-	
-	export default {
-		data() {
-			return {
-				bindInfo:{},
-				current: 1,
-				numList: [{
-					name: '绑定地锁'
-				}, {
-					name: '等待审核'
-				}, {
-					name: '完成绑定'
-				}],
-			};
-		},
-		onLoad(op) {
-			this.id=op.id
-			this.getInfo()
-		},
-		methods:{
-			goBack(){
-				uni.navigateBack()
-			},
-			getInfo(){
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.details( {
-					id:this.id
-				} ).then((res) => {
-					this.bindInfo=res.data.applicationRecord;
-					if(this.bindInfo.status==0){
-						this.current= 1
-					}
-					if(this.bindInfo.status==1){
-						this.current= 2
-					}
-					uni.hideLoading();
-					
-							 
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	
-	.body {
-		padding: 32rpx;
-		background-color: rgba(242, 244, 246, 1);
-	}
-	.data{
-		text-align: center;
-		padding-top:120rpx;
-		.t1{
-			color: #101010;
-			font-weight: bold;
-			margin-top: 40rpx;
-			font-size: 40rpx;
-
-		}
-		.t2{
-			margin-top: 8rpx;
-			color: rgba(119,119,119,1);
-			font-size: 24rpx;
-		}
-	}
-
-
-	.floating-button {
-		padding-top:120rpx;
-	text-align: center;
-		.button {
-			    margin: 0 auto;
-			
-			border-radius: 50px;
-			height: 80rpx;
-			width: 80%;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			padding: 12rpx;
-
-			background-color: rgba(22, 119, 255, 1);
-			color: rgba(255, 255, 255, 1);
-			font-size: 36rpx;
-		}
-		.button2{
-			background-color:  #00B962
-		}
-	}
-</style>

+ 0 - 1799
pages/deviceTab/dataLock.vue

@@ -1,1799 +0,0 @@
-<template>
-	<view>
-		<u-navbar :title="title" :backIconColor="'#ffffff'" title-color="#ffffff"
-			:background="backgroundObj"></u-navbar>
-		<view class="gradient-header">
-			<view class="jpback">
-
-			</view>
-		</view>
-		<u-picker title="日期选择" :maskCloseAble="true" v-model="body0data.tabsFrom.show" :defaultTime="body0data.tabsFrom.showIndex+'-1'" 
-			mode="time" :params="body0data.tabsFrom.params"  @confirm="selector2confirm" @cancel="selector2cancel"
-			>
-		</u-picker>
-		
-		<view class="main">
-			<view class="statistics ">
-				<view class="data1">
-					<view class="item">
-						<view class="line">
-							<view class="name">
-								{{info.name}}
-							</view>
-							<view class="item-tags">
-								<view class="tag tag1" :class="'typeN typeN'+info.type">
-									{{info.typeN}}
-							
-								</view>
-								<!-- <view class="tag" :class="'statusN statusN'+info.status">
-									{{info.statusN}}
-							
-								</view>
-								<view class="tag" :class="'lockStatusN lockStatusN'+info.lockStatus">
-									{{info.lockStatusN}}
-								</view> -->
-							</view>
-						</view>
-						<view class="line">
-							编号:{{info.lockNo}}
-						</view>
-						<view class="line" style="    color: #909399;">
-							更新时间:{{info.lastOnlineTime}}
-						</view>
-					</view>
-					<view class="value" v-if="0">
-						<u-button type="primary" size="mini" shape="circle">
-							<img class="img" src="@/assets/img/button/lock.svg" alt="">
-							降锁
-						</u-button>
-					</view>
-				</view>
-				
-				<view class="top-span">
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span1.png">
-						<span>车位</span>
-						<span v-if="info.parkingStatus==1" style="color: #1677FF;" >有车</span>
-						<span v-else-if="info.parkingStatus==0" style="color: #00B962;" >无车</span>
-					</view>
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span2.png">
-						<span>地锁</span>
-						<span  style="color: red;"
-						v-if="info.lockStatus==4||info.lockStatus==0">
-						错误</span>
-						<span v-else-if="info.lockStatus==1" style="color: #1677FF;"  >升起</span>
-						<span v-else-if="info.lockStatus==2" style="color: #00B962;"  >降落</span>
-						<span v-else   >其他</span>
-						
-					</view>
-					
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span3.png">
-						<span>电压</span>
-						<span v-if="info.batteryLevel">{{info.batteryLevel}}V</span>
-						<span v-else>未知</span>
-					</view>
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span4.png">
-						<span>网络</span>
-						
-						<span v-if="info.status==1" style="color: #00B962;" >在线</span>
-						<span v-else-if="info.status==0" style="color: red" >离线</span>
-						
-						
-					</view>
-					
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span5.png">
-						<span>雷达</span>
-						
-						
-						<span v-if="info.radarStatus==0" style="color: #00B962;" >正常</span>
-						<span v-else-if="info.radarStatus==1" style="color: red" >故障</span>
-						
-						
-					</view>
-				</view>
-			</view>
-			<view class=" no_statistics">
-				<view class="data2">
-					<view class="top">
-						<view class="item">
-							<view class="name">
-								停车时长
-							</view>
-							<view class="value">
-								{{durationShow()}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="name">
-								使用率
-							</view>
-							<view class="value" v-if="lockUsageRateData&&lockUsageRateData.usageRate">
-								{{lockUsageRateData.usageRate=='∞'?'/':lockUsageRateData.usageRate+'%'}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="name">
-								异常次数
-							</view>
-							<view class="value">
-								0
-							</view>
-						</view>
-					</view>
-					<view class="body">
-						<u-radio-group v-model="radiovalue" @change="radioGroupChange">
-							<u-radio @change="radioChange" v-for="(item, index) in radiolist" :key="index"
-								:name="item.value">
-								{{item.name}}
-							</u-radio>
-						</u-radio-group>
-					</view>
-				</view>
-			</view>
-			
-			<u-picker v-model="body2data.vue.show" :params="body2data.vue.params" :default-time="body2data.query.startTime"
-				@confirm="body2dataconfirm" mode="time"></u-picker>
-			
-			
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>车位平均占用率(%)</view>
-						<view class="tag" @click="body2data.vue.show=true">{{body2data.vue.queryN}}<u-icon
-								name="arrow-down"></u-icon></view>
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body2">
-						<view class="body2lineChart">
-
-							<view id="body2line1" class="body2line">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics " v-if="0">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>地锁历史异常状态</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body1">
-						<view class="body1pieChart">
-
-							<view id="body1pie1" class="body1pie">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>高频使用时段分布</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body3">
-						<view class="body3barChart">
-
-							<view id="body3bar1" class="body3bar">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>用户停留时长分群特征</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body4">
-						<view class="body4pieChart">
-
-							<view id="body4pie1" class="body4pie">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics " v-if="0">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>高频使用用户TOP</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body5">
-						<view class="body5data">
-							<view class="line">
-								<view class="data">
-									<view class="item">
-										王二
-									</view>
-									<view class="value">
-										鄂DDT1268
-
-									</view>
-									<view class="value">
-										28次
-
-									</view>
-								</view>
-								<view class="goto">
-									<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-								</view>
-							</view>
-							<view class="line">
-								<view class="data">
-									<view class="item">
-										王三
-									</view>
-									<view class="value">
-										鄂DDT1268
-
-									</view>
-									<view class="value">
-										8次
-
-									</view>
-								</view>
-								<view class="goto">
-									<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-								</view>
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-			<!-- end-->
-
-			<view class="statistics " v-if="0">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>白名单用户清单</view>
-						<view class="check-all">查看全部<u-icon name="arrow-right"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body7">
-						<view class="body7data">
-							<view class="line">
-
-								<view class="value">
-									用户姓名
-								</view>
-								<view class="value">
-									车主身份
-
-								</view>
-								<view class="value">
-									使用次数
-
-								</view>
-
-							</view>
-							<view class="line">
-
-								<view class="value">
-									孙培军
-								</view>
-								<view class="value">
-									车位所有人
-
-								</view>
-								<view class="value">
-									22
-
-								</view>
-
-							</view>
-							<view class="line">
-
-								<view class="value">
-									刘洋
-								</view>
-								<view class="value">
-									白名单用户
-
-								</view>
-								<view class="value">
-									11
-
-								</view>
-
-							</view>
-
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-			<!-- end-->
-			<view class="statistics " v-if="0" >
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>车位异常记录</view>
-
-						<view class="check-all">查看全部<u-icon name="arrow-right"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody" >
-					<jpContent :status="jpContentMap.body6">
-						<view class="body6main">
-							<view class="line" v-for="(item,index) in abnormalRecordsList" :key="index">
-								<view class="abnormal-item">
-									<!-- @click="gotoUrl('/pages/abnormal/abnormalAlarmDetails?id='+item.id)"
-								 -->
-									<view class="item-title">
-
-										<view class="name">
-											<span v-if="item.level==1" class="level level1 ">一级</span>
-											<span v-if="item.level==2" class="level level2">二级</span>
-
-											{{item.content}}
-										</view>
-										<view class="date"
-											style="display: flex;    justify-content: space-between;margin-top: 4rpx;">
-											<view>{{item.title}}</view>
-											<view>{{item.createTime}}</view>
-
-										</view>
-									</view>
-
-								</view>
-								<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-			<!-- end-->
-			
-			<view class="body8data-popup">
-			<u-popup v-model="body8data.popup" mode="bottom" height="80%"  border-radius="12">
-				<view class="content">
-					<view class="headline">
-						地锁信息
-					</view>
-					<view class="infos">
-						<view class="item">
-							<view class="item-title">
-								地锁名称
-							</view>
-							<view class="item-value">
-								{{info.name}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								地锁管理者
-							</view>
-							<view class="item-value">
-								{{info.administrator}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								车位类型
-							</view>
-							<view class="item-value">
-								{{info.typeN}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								地锁状态
-							</view>
-							<view class="item-value">
-								{{info.lockStatusN}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								地锁型号
-							</view>
-							<view class="item-value">
-								{{info.model}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								出厂编号
-							</view>
-							<view class="item-value">
-								<span>{{info.factoryNumber}}</span>
-								
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								固件版号
-							</view>
-							<view class="item-value">
-								{{info.solidVersion}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								防护等级
-							</view>
-							<view class="item-value">
-								{{info.protectionGrade}}
-							</view>
-						</view>
-						
-						<view class="item">
-							<view class="item-title">
-								生产日期
-							</view>
-							<view class="item-value">
-								{{info.manufactureDate}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								标准依据
-							</view>
-							<view class="item-value">
-								{{info.enablingTime}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								联网卡号
-							</view>
-							<view class="item-value">
-								{{info.standardBasis}}
-							</view>
-						</view>
-						<view class="item" v-if="info.tariffStandard">
-							<view class="item-title">
-								资费标准
-							</view>
-							<view class="item-value">
-								{{info.tariffStandard}}元/月
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								地锁启动时间
-							</view>
-							<view class="item-value">
-								{{info.activationTime}}
-							</view>
-						</view>
-						<view class="item">
-							<view class="item-title">
-								地锁质保期
-							</view>
-							<view class="item-value">
-								{{info.shelfLife}}年
-							</view>
-						</view>
-						
-						
-					
-					</view>
-					<button class="get" @click="body8data.popup=false">知道了</button>
-				</view>
-			</u-popup>
-			</view>
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>地锁信息</view>
-
-						<view class="check-all" @click="body8data.popup=true" >查看全部<u-icon name="arrow-right"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body8">
-						<view class="body8main">
-							<view class="line">
-								<view class="value">
-									地锁型号
-
-								</view>
-								<view class="value">
-									出厂编号
-
-								</view>
-								<view class="value">
-									固件版号
-
-
-								</view>
-
-
-							</view>
-							<view class="line">
-								<view class="value">
-									{{info.model}}
-
-								</view>
-								<view class="value">
-									{{info.factoryNumber}}
-
-
-								</view>
-								<view class="value">
-									{{info.solidVersion}}
-
-
-								</view>
-
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-			<!-- end-->
-			<u-divider border-color="#CFD2D5">已经到底了</u-divider>
-
-		</view>
-
-	</view>
-</template>
-
-<script>
-	import jpContent from '@/components/JPcontent.vue'
-	import * as echarts from 'echarts';
-	import * as API from '@/apis/pagejs/deviceTab.js'
-	import * as API_index from '@/apis/pagejs/index.js'
-	import {
-		parseUnixTime,
-		beforeTimeStamp,
-		newDate
-	} from '@/apis/utils'
-	
-	export default {
-		components: {
-
-			jpContent
-		},
-		data() {
-			return {
-				id:"",
-				info:{},
-				echartsList: {},
-				lockUsageRateData:{},
-				body2data: {
-					query: {},
-					vue: {
-						queryN: "",
-						show: false,
-						params: {
-							year: true,
-							month: true,
-							day: false,
-							hour: false,
-							minute: false,
-							second: false
-						}
-					},
-					data: {}
-				},
-				body0data: {
-					query: {},
-					data: {},
-					tabsFrom:{
-						show:false,
-						showIndex:"",
-						params:{
-							year: true,
-							month: true,
-							day: false,
-							hour: false,
-							minute: false,
-							second: false
-						}
-					}
-				
-				},
-				body4data: {
-					query: {},
-					data: {}
-				},
-				body8data: {
-					query: {},
-					data: {},
-					popup:false,
-				},
-				body3data: {
-					query: {},
-					data: {}
-				},
-				jpContentMap: {
-					body1: 2,
-					body2: 2,
-					body3: 2,
-					body4: 2,
-					body5: 2,
-					body6: 2,
-					body7: 2,
-					body8: 2,
-					body9: 2,
-					body10: 2,
-				},
-				title: "",
-				backgroundObj: {
-					background: '#307AF6'
-				},
-				radiovalue: "1",
-				radiolist: [{
-						name: '上月',
-						value: "3"
-					},
-					{
-						name: '当月',
-						value: "1"
-					},
-					{
-						name: '今日',
-						value: "2"
-					}, {
-						name: '当年',
-
-						value: "4"
-					}, {
-						name: '合计',
-
-						value: "5"
-					},
-					{
-						name: '指定月份',
-						value: "0"
-					}
-				],
-				abnormalRecordsList: [{
-						level: 1,
-						content: "1111111",
-						title: "11",
-						createTime: "123:123"
-					},
-					{
-						level: 2,
-						content: "1111111",
-						title: "11",
-						createTime: "123:123"
-					}
-				],
-			};
-		},
-		onLoad(op) {
-			if(op.id){
-				this.id=op.id
-				this.init();
-			}
-			this.body0data.tabsFrom.showIndex=new Date().getFullYear()+'-'+(new Date().getMonth()+1)
-		},
-		onReady() {
-			// if(this.id){
-				
-			// }
-			
-		},
-		methods: {
-			
-			durationShow(){
-				if(this.lockUsageRateData.duration){
-					var m=this.lockUsageRateData.duration%60
-					var h=parseInt(this.lockUsageRateData.duration/60)
-					if(h>0){
-						return `${h}h${m}m`
-					}else{
-						return `${m}m`
-					}
-				}else{
-					return '0m'
-				}
-			},
-			radioChange(e) {
-				// console.log(e);
-			},
-			// 选中任一radio时,由radio-group触发
-			selector2confirm(e){
-				var time=e.year + "-" + e.month
-				this.radiolist[5].name=e.year + "年" + e.month+"月"
-				this.body0data.tabsFrom.showIndex=time
-				this.getLockUsageRate()
-			},
-			selector2cancel(){
-				this.radiovalue= "1"
-				this.radiolist[5].name="指定月份"
-				this.getLockUsageRate()
-			},
-			radioGroupChange(e) {
-				 console.log(e);
-				if(e==0){
-					this.body0data.tabsFrom.show=true
-				}else{
-					this.radiolist[5].name="指定月份"
-					this.getLockUsageRate()
-				}
-				
-			},
-			init() {
-				this.getInfo()
-				this.getLockUsageRate()
-				this.occupancyByTime(1)
-				//this.getbody1()
-				//this.getbody2()
-				this.occupancyByTimeBar(1);
-				//this.getbody3()
-				//this.getbody4()
-				this.durationDistribution()
-			},
-			occupancyByTime(init) {
-				if (init) {
-					var date = new Date();
-			
-					this.body2data.vue.queryN = date.getFullYear() + "年" + (date.getMonth() + 1) + '月';
-					this.body2data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-			
-					var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-					this.body2data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-			
-				}
-				this.jpContentMap.body2 = 0
-				this.body2data.query.floorId = this.id
-				
-				API_index.occupancyByTime(
-					this.body2data.query
-				).then((response) => {
-					this.body2data.data = [
-						...response.data.locksTimeList,
-						//	...response.data.locksTimeList,
-					];
-			
-					if (this.body2data.data.length == 0) {
-						this.jpContentMap.body2 = 1
-			
-			
-					} else {
-						this.jpContentMap.body2 = 2
-			
-						this.getbody2()
-			
-			
-					}
-			
-			
-			
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-			
-				})
-			},
-			body2dataconfirm(e) {
-			
-				var date = new Date(e.year + "-" + e.month + "-1");
-				this.body2data.vue.queryN = date.getFullYear() + "年" + (date.getMonth() + 1) + '月';
-				this.body2data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-			
-				var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-				this.body2data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-			
-				this.occupancyByTime()
-			},
-			getLockUsageRate(){
-				var obj = {
-					floorId: this.id,
-					queryType:this.radiovalue
-				}
-				if(this.radiovalue==0){
-					obj.queryMonth=this.body0data.tabsFrom.showIndex
-				}
-				API.lockUsageRate(obj).then((res) => {
-					this.lockUsageRateData=res.data
-					
-				}).catch(error => {
-							
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			durationDistribution() {
-				this.jpContentMap.body4 = 0
-			
-				var date = new Date();
-				//test
-				//this.body4data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-			
-				var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-			//	this.body4data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-			
-			
-				this.body4data.query.floorId = this.id
-				API_index.durationDistribution(
-					this.body4data.query
-				).then((response) => {
-					this.body4data.data = response.data.distribution;
-			
-					if (this.body4data.data.length == 0) {
-						this.jpContentMap.body4 = 1
-			
-					} else {
-						this.jpContentMap.body4 = 2
-						//this.getbody3()
-						this.getbody4()
-					}
-			
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-			
-				})
-			},
-			getInfo(){
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				var obj = {
-					id: this.id
-				}
-				this.jpContentMap.body8	=0		
-				API.lockDetails(obj).then((res) => {
-					this.info = res.data.floorlockInfo
-					this.title	=this.info.parkingName
-					uni.hideLoading();
-					this.jpContentMap.body8	=2
-					//this.getWhiteList()
-				}).catch(error => {
-							
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			getbody1() {
-				var key = "body1pie1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-
-				}
-				myChart.clear()
-
-
-				var option = {
-
-					grid: {
-						top: 20,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-
-						type: 'pie',
-						radius: ['80%', '50%'],
-						radius: [35, 50],
-						data: [{
-								itemStyle: {
-									color: "#EB3C31"
-								},
-								value: 1048,
-								name: '0.5小时\n20%',
-
-							},
-							{
-								itemStyle: {
-									color: "#EF8132"
-								},
-
-								value: 735,
-								name: '2小时\n10%'
-							},
-							{
-								itemStyle: {
-									color: "#929292"
-								},
-								value: 580,
-								name: '2-6小时\n30%'
-							},
-
-
-						]
-
-					}]
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody4() {
-				var key = "body4pie1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-
-				}
-				myChart.clear()
-				var dataApi = this.body4data.data;
-				
-				var data = []
-				var num = 0
-				var sum = 0
-				Object.keys(dataApi).forEach(key1 => {
-					num += dataApi[key1]
-				});
-				var i = 0
-				Object.keys(dataApi).forEach(key1 => {
-					var value = dataApi[key1]
-					if(value!=0){
-						var obj = {
-							value: value,
-							name: key1
-						}
-					
-						if (num != 0) {
-							var valueInt = parseInt(value / num * 100)
-							if (valueInt == 0 && value != 0) {
-								valueInt = 1
-							}
-							sum += valueInt;
-					
-							if (i == Object.keys(dataApi).length - 1) {
-								if (sum != 100) {
-									valueInt += (100 - sum)
-								}
-							}
-							obj.name += '\n' + (valueInt) + '%'
-						}
-						data.push(obj)
-					}
-					i++;
-				});
-
-				var option = {
-
-					grid: {
-						top: 20,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-
-						type: 'pie',
-						radius: ['80%', '50%'],
-						radius: [45, 60],
-						data: data
-						
-					}]
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			occupancyByTimeBar(init) {
-				if (init) {
-					var date = new Date();
-					//test
-					//this.body3data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-			
-					var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-					//this.body3data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-			
-				}
-				this.jpContentMap.body3 = 0
-				
-				this.body3data.query.floorId = this.id
-				API_index.occupancyByTimeBar(
-					this.body3data.query
-				).then((response) => {
-					this.body3data.data = [
-						...response.data.locksTimeList,
-						//	...response.data.locksTimeList,
-					];
-			
-					if (this.body3data.data.length == 0) {
-						this.jpContentMap.body3 = 1
-			
-					} else {
-						this.jpContentMap.body3 = 2
-						this.getbody3()
-			
-					}
-			
-			
-			
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-			
-				})
-			},
-			getbody3() {
-				var key = "body3bar1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-
-				}
-				var dataApi = this.body3data.data;
-				
-				myChart.clear()
-
-				var data1 = []
-				var data2 = [] //useDays
-				var i = 0
-				dataApi[0].timeUseList.forEach(item => {
-				
-					Object.keys(item).forEach(key1 => {
-				
-						data1.push(key1 + '点')
-						var num = 0
-				
-						dataApi.forEach(item2 => {
-							num += item2.timeUseList[i][key1].useDays
-				
-						})
-						data2.push(num)
-					});
-					i += 1
-				
-				})
-				
-				var axisLabel = {
-					rotate: 40,
-					interval: 0,
-					textStyle: {
-						color: "#333"
-					}
-				}
-				if (data1.length < 7) {
-					axisLabel = {
-						interval: 0,
-						textStyle: {
-							color: "#333"
-						},
-					}
-				} else {
-					axisLabel.interval = 0;
-				}
-				var option = {
-					xAxis: {
-						type: 'category',
-						data: data1,
-						axisLabel: axisLabel,
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						},
-						formatter: function(params) {
-							var result = params[0].name + '<br/>';
-							for (var i = 0; i < params.length; i++) {
-								result += params[i].marker+ ' ' + params[i].value + '次<br/>';
-							}
-							return result;
-						}
-					},
-					yAxis: {
-						type: 'value'
-					},
-					grid: {
-						top: 20,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-						itemStyle: {
-							color: "#5A88E5"
-						},
-							data: data2,
-						type: 'bar'
-					}]
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody2() {
-				var key = "body2line1"
-				var myChart = this.echartsList[key];
-				var dataApi = this.body2data.data;
-				
-				var head = 20 * (parseInt(dataApi.length / 4)) + 20
-				
-				
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px((170 + head) * 2)
-					})
-				
-				}
-				myChart.clear()
-				
-				var data1 = []
-				var series = [];
-				
-				dataApi.forEach(item => {
-				
-					var obj = {
-						name: item.lockName,
-						areaStyle: {},
-						itemStyle: {
-							color: "#BBD4FB"
-						},
-						label: {
-							show: true,
-							position: 'top',
-								color: "#307AF6"
-						},
-						data: [],
-						type: 'line'
-					}
-					if (dataApi.length == 1) {
-						obj.label.color = "#307AF6"
-						obj.areaStyle = {}
-						obj.itemStyle = {
-							color: "#BBD4FB"
-						}
-					}
-				
-					item.timeUseList.forEach(item2 => {
-						Object.keys(item2).forEach(key1 => {
-				
-							obj.data.push(item2[key1].useRate)
-						});
-					})
-					series.push(obj)
-				})
-				dataApi[0].timeUseList.forEach(item => {
-				
-					Object.keys(item).forEach(key1 => {
-						data1.push(key1)
-				
-					});
-				
-				})
-				var axisLabel = {
-					rotate: 40,
-					interval: 0,
-					textStyle: {
-						color: "#333"
-					}
-				}
-				if (data1.length < 7) {
-					axisLabel = {
-						interval: 0,
-						textStyle: {
-							color: "#333"
-						},
-					}
-				} else {
-					axisLabel.interval = 0;
-				}
-				var option = {
-					xAxis: {
-						type: 'category',
-						data: data1,
-						axisLabel: axisLabel,
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						},
-						
-						formatter: function(params) {
-							var result = params[0].name + '点<br/>';
-							for (var i = 0; i < params.length; i++) {
-								result += params[i].marker+params[i].seriesName + ': ' + params[i].value + '%<br/>';
-							}
-							return result;
-						}
-					},
-					yAxis: {
-						type: 'value'
-					},
-					grid: {
-						top: (20 + head),
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: series,
-					 
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.gradient-header {
-		height: 0px;
-	}
-
-	.jpback {
-		height: 268rpx;
-		background: linear-gradient(180deg, rgba(22, 119, 255, 1) 20%, rgba(121, 177, 255, 1) 100%);
-	}
-
-	.main {
-
-		padding: 32rpx;
-
-		.no_statistics {
-			margin-bottom: 24rpx;
-		}
-
-		.statistics {
-			border-radius: 8px;
-			background-color: rgba(255, 255, 255, 1);
-			box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
-			margin-bottom: 24rpx;
-			padding: 40rpx;
-
-			.title {
-				display: flex;
-				align-items: center;
-				margin-bottom: 32rpx;
-				font-weight: bold;
-
-				.img {
-					width: 36rpx;
-					height: 36rpx;
-					vertical-align: middle;
-					border-radius: 999px;
-
-				}
-
-				.change {
-					display: flex;
-					align-items: center;
-
-					.change-img {
-						width: 32rpx;
-						height: 32rpx;
-						vertical-align: middle;
-					}
-
-					text {
-
-						margin-left: 8rpx;
-					}
-				}
-
-
-				.text {
-					color: rgba(16, 16, 16, 1);
-					font-size: 36rpx;
-					margin-left: 16rpx;
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					width: 100%;
-
-					.tag {
-						border-radius: 4px;
-						border: 1px solid rgba(187, 187, 187, 1);
-						color: rgba(51, 51, 51, 1);
-
-						font-size: 24rpx;
-						padding: 1px 8rpx;
-						margin-left: 8rpx;
-					}
-
-				}
-
-				.change {
-					margin-left: 16rpx;
-					font-size: 24rpx;
-					color: #838383;
-
-				}
-
-				.check-all {
-					margin-left: auto;
-					color: rgba(131, 131, 131, 1);
-					font-size: 24rpx;
-				}
-			}
-		}
-	}
-
-	.data1 {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-
-		.item {
-			.line{
-				    display: flex;
-				    align-items: center;
-			}
-			.name {
-				color: rgba(51, 51, 51, 1);
-				font-size: 36rpx;
-				font-weight: bold;
-				margin-right: 8rpx;
-			}
-
-			.item-tags {
-				display: flex;
-
-				.tag {
-					border-radius: 4px;
-
-					background-color: rgba(39, 177, 72, 1);
-					color: rgba(255, 255, 255, 1);
-					font-size: 24rpx;
-					padding: 2rpx 8rpx;
-					margin-right: 8rpx;
-				}
-
-				.typeN1 {
-					background-color: rgba(22, 119, 255, 1);
-				}
-				.typeN2{
-					background-color: #8161ff;
-																				 background-color: #8161ff;
-				}
-				.statusN{
-					background-color:#838383
-				}
-				.lockStatusN {
-				
-					background-color: rgba(153, 153, 153, 1);
-				}
-				
-				.lockStatusN2 {
-					background-color: #03A9F4
-				}
-				
-			}
-		}
-
-		.value {
-			.img {
-				margin-right: 8rpx;
-				width: 32rpx;
-				height: 32rpx;
-			}
-		}
-	}
-
-	.data2 {
-		height: 336rpx;
-		padding: 32rpx;
-		border-radius: 12px;
-		background: linear-gradient(180deg, rgba(222, 222, 222, 1) 3%, rgba(255, 255, 255, 1) 5%, rgba(232, 232, 232, 1) 56%, rgba(255, 255, 255, 1) 59%, rgba(236, 236, 236, 1) 95%, rgba(215, 215, 215, 1) 98%);
-
-		.top {
-			background-repeat: round;
-			background-image: url('@/assets/img/deviceTab/index3-2.png');
-			display: flex;
-			justify-content: space-around;
-			text-align: center;
-			height: 152rpx;
-			align-items: center;
-
-			.item {
-				.name {
-					color: rgba(16, 16, 16, 1);
-					font-size: 32rpx;
-				}
-
-				.value {
-					color: rgba(16, 16, 16, 1);
-					font-size: 48rpx;
-					font-weight: bold;
-				}
-			}
-		}
-
-		.body {
-			padding: 16rpx;
-		}
-	}
-
-	.body5data {
-		.line {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-
-			.data {
-				display: flex;
-				width: 80%;
-				justify-content: space-between;
-
-				.item {
-					color: rgba(51, 51, 51, 1);
-					font-size: 16px;
-				}
-
-				.value {
-					color: rgba(119, 119, 119, 1);
-					font-size: 16px;
-				}
-			}
-		}
-	}
-
-	.body7data {
-		.line {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-
-			.value {
-				width: 33%;
-				padding: 16rpx;
-				color: rgba(51, 51, 51, 1);
-
-
-			}
-
-			.value:nth-child(3) {
-
-				text-align: center;
-
-			}
-		}
-
-		/* 隔行变色: 偶数行设置背景色 */
-		.line:nth-child(odd) {
-			background-color: #F2F2F2;
-			/* 偶数行 */
-		}
-
-		.line:nth-child(even) {
-			background-color: #FFFFFF
-				/* 奇数行 */
-		}
-
-	}
-
-	.body8main {
-		.line {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-
-			.value {
-				width: 33%;
-				padding: 16rpx;
-
-				text-align: center;
-				
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
-			}
-
-		}
-
-		/* 隔行变色: 偶数行设置背景色 */
-		.line:nth-child(odd) {
-			color: rgba(119, 119, 119, 1);
-			font-size: 14px;
-			/* 偶数行 */
-		}
-
-		.line:nth-child(even) {
-			color: rgba(16, 16, 16, 1);
-			font-size: 16px;
-
-			/* 奇数行 */
-		}
-
-	}
-
-	.body6main {
-		.line {
-			display: flex;
-			justify-content: space-between;
-		}
-
-		.abnormal-item:last-of-type {
-			border-bottom: none !important;
-			padding-bottom: 0;
-		}
-
-		.abnormal-item {
-			width: 100%;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 16rpx;
-			border-bottom: 1px solid rgba(245, 245, 245, 1);
-
-
-			.item-title {
-				.level {
-					color: #fff;
-
-					border-radius: 8rpx;
-					font-weight: 400;
-					padding: 4rpx 8rpx;
-					font-size: 22rpx;
-					margin-right: 2px;
-				}
-
-				.level1 {
-					background: red;
-				}
-
-				.level2 {
-					background-color: rgba(255, 123, 0, 1);
-				}
-
-				color: rgba(51, 51, 51, 1);
-				width: 100%;
-
-				.img {
-					width: 32rpx;
-					height: 32rpx;
-					margin-right: 8rpx;
-				}
-
-				.name {
-					color: rgba(51, 51, 51, 1);
-					font-weight: bold;
-					overflow: hidden;
-					white-space: nowrap;
-					text-overflow: ellipsis;
-				}
-
-				.date {
-					color: rgba(119, 119, 119, 1);
-					font-size: 24rpx;
-				}
-			}
-
-			.item-value {
-				text-align: right;
-				display: flex;
-				align-items: center;
-
-				.more {
-					margin-left: 8rpx;
-				}
-
-				.value1 {
-					font-weight: bold;
-					color: rgba(51, 51, 51, 1);
-				}
-
-				.value2 {
-					color: rgba(119, 119, 119, 1);
-					font-size: 24rpx;
-				}
-			}
-		}
-	}
-	
-	// 地锁信息弹窗
-	.body8data-popup {
-	
-		.content {
-	
-			padding: 32rpx;
-	
-			.headline {
-				color: rgba(16, 16, 16, 1);
-				font-size: 36rpx;
-				text-align: center;
-				font-weight: bold;
-				margin-bottom: 24rpx;
-			}
-	
-			.infos {
-				//padding-bottom: 100rpx;
-	
-				.item:last-of-type {
-					border: none;
-				}
-	
-				.item {
-					display: flex;
-					align-items: center;
-	
-					//line-height: 48rpx;
-					padding: 20rpx 0;
-					border-bottom: 1px solid #cccccc;
-	
-					.item-title {
-						color: rgba(51, 51, 51, 1);
-						width: 200rpx;
-					}
-	
-					.item-value {
-						color: #666666;
-						flex: 1;
-						margin-left: 16rpx;
-						display: flex;
-						align-items: center;
-						justify-content: space-between;
-						
-						.img{
-							width: 32rpx;
-							height: 32rpx;
-							transform: rotate(90deg);
-							margin-left: 96rpx;
-						}
-					}
-				}
-	
-			}
-	
-			.get {
-				height: 80rpx;
-				line-height: 80rpx;
-				border-radius: 4px;
-				background-color: rgba(22, 119, 255, 1);
-				color: rgba(255, 255, 255, 1);
-				font-size: 32rpx;
-			}
-		}
-	}
-	
-	.top-span{
-		border-top: 1px solid rgba(245, 245, 245, 1);
-		display: flex;
-		flex-wrap: wrap;
-		justify-content: space-between;
-		padding-top: 16rpx;
-		margin-top: 16rpx;
-		.item-span{
-			white-space: pre;
-			    display: flex;
-			    align-items: center;
-				   margin-top: 4rpx;
-				width: 30%;
-				 font-size: 28rpx;
-				 span{
-					 margin: 0 8rpx;
-				 }
-
-			img{
-				width: 28rpx;
-				height: 28rpx;
-			}
-		}
-		
-		.lockStatusX1{
-			color: #00B962;
-		}
-		.lockStatusX2{
-			color: #1677FF;
-		}
-		
-		.statusX1{
-			color: #00B962;
-		}
-		.statusX2{
-			color: #1677FF;
-		}
-	}
-</style>

+ 0 - 324
pages/deviceTab/deviceList.vue

@@ -1,324 +0,0 @@
-<template>
-	<view>
-		<u-navbar  title="地锁列表"  ></u-navbar>
-		<view class="main">
-			<view class="tabs" v-if="0">
-				<u-picker  v-model="tabsFrom.show1"
-				  :default-selector="[tabsFrom.show1Index]"
-				 mode="selector" :range="tabsFrom.selector1"  range-key="label" @confirm="selector1confirm" ></u-picker>
-				<u-picker-select title="日期选择" v-model="tabsFrom.show2"
-				 :defaultTime="tabsFrom.show2Index" :endYear="endYear"
-				 mode="time" :params="params"  @confirm="selector2confirm" @reset="selector2reset" ></u-picker-select>
-				
-				<view class="tabsItem" @click="tabsFrom.show1=!tabsFrom.show1">{{tabsFrom.show1Text}} <u-icon name="arrow-up"
-						v-if="tabsFrom.show1"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-				<view class="tabsItem" @click="tabsFrom.show2=!tabsFrom.show2">{{tabsFrom.show2Text}} <u-icon name="arrow-up"
-						v-if="tabsFrom.show2"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-						
-				<view class="tabsItem" @click="tabsFrom.show3=!tabsFrom.show3">{{tabsFrom.show3Text}} <u-icon name="arrow-up"
-						v-if="tabsFrom.show3"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-			</view>
-			
-			<view class="list">
-				<view class="line"   v-for="(item,i) in list" :key="i"
-				 @click="gotoUrl('/pages/deviceTab/dataLock?id='+item.id)" >
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index2-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								<view class="text">{{item.name}}</view>
-								<view class="tag" :class="'type'+item.type">{{item.typeN}}</view>
-							</view>
-							<view class="value">
-								{{item.parkingName}}
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-						<view class="dian" :class="'status'+item.status"></view>
-						<view  class="text" :class="'statusText'+item.status" >{{item.status==1?'在线':'离线'}}</view>
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-				
-			<!-- 	<view class="line">
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index2-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								<view class="text">软件园</view>
-								<view class="tag">私人车位</view>
-							</view>
-							<view class="value">
-								占用9<span>/</span>
-								占用9<span>/</span>
-								共9台
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view> -->
-				
-			</view>
-			
-			<view class="floating-button" 
-			  @click="gotoBind" v-if="0" >
-				<view class="button">
-					<img class="img" src="@/assets/img/deviceTab/index2-2.svg" alt="">
-			
-					绑定新地锁
-				</view>
-			
-			</view>
-			
-			
-		</view>
-		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-		
-		
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/deviceTab.js'
-	
-	
-	export default {
-		
-		data() {
-			return {
-				list:[],
-				listForm:{
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				},
-				title:"场站列表",
-				tabsFrom: {
-					show1: false,
-					show1Index:0,
-					show2Index:'',
-					show2: false,
-					show1Text: "全部场站",
-					show2Text: "全部类型",
-					show3Text: "全部状态",
-					selector1:[
-						{
-								label: '全部类型',
-								value: '',
-							},
-						{
-								label: '线上充值',
-								value: '1',
-							},
-							{
-								label: '线下充值',
-								value: '2',
-							},
-					]
-				},
-			};
-		},
-		onLoad(op) {
-			if(op.companyId){
-				this.listForm.companyId=op.companyId
-			}
-			if(op.parkingId){
-				this.listForm.parkingId=op.parkingId
-			}
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-			gotoBind(){
-				uni.navigateTo({
-				  url: '/pages/deviceTab/bindLock?parkingId='+this.listForm.parkingId,
-				  events: {
-				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
-				    acceptDataFromOpenerPage: (item)=>{
-						
-						this.getList(1)
-				    },
-				 
-				  }
-				  // ,
-				  // success: function(res) {
-				  //   // 通过eventChannel向被打开页面传送数据
-				  //  
-				  // }
-				})
-			},
-			myLoadmore(){
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-			getList(bl) {
-				if(bl){
-					this.listForm.pageIndex = 1
-				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-							 
-				API.floorlockList(this.listForm).then((res) => {
-					var list=[]
-					
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
-					uni.hideLoading();
-				
-				}).catch(error => {
-				
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.main{
-		background-color: #fff;
-		.line{
-			    display: flex;
-			    justify-content: space-between;
-				    align-items: center;
-					padding: 32rpx;
-					border-bottom: 1px solid rgba(245,245,245,1);
-				.goto{
-					display: flex;
-					    align-items: center;
-						.dian{
-							width: 16rpx;
-							height: 16rpx;
-							 border-radius: 50px;
-							background-color: rgba(184,184,184,1);
-							 margin-right: 16rpx;
-						}
-						.status1{
-							background-color: #4CAF50;
-							color:#4CAF50;
-						}
-						.statusText1{
-							
-							color:#4CAF50;
-						}
-						.text{
-							 margin-right: 16rpx;
-							 font-size: 24rpx;
-
-						}
-				}
-				.body{
-					 display: flex;
-					     align-items: center;
-						 
-						 .imgclass{
-						 							     display: flex;
-						 							     align-items: center;
-						 							     justify-content: center;
-						 							width: 72rpx;
-						 							height: 72rpx;
-						 							     border-radius: 4px;
-						 							     background-color: rgba(219,234,255,1);
-						 }
-						 .item{
-						 							    margin-left: 16rpx;
-						 								
-						 								 .name{
-						 									 color: rgba(51,51,51,1);
-						 									 font-size: 28rpx;
-															 display: flex;
-															 align-items: center;
-															 .tag{
-																border-radius: 4px;
-																background-color: rgba(22,119,255,1);
-																color: rgba(255,255,255,1);
-																font-size: 22rpx;
-																padding:1px 8rpx;
-																margin-left: 8rpx;
-															 }
-															 .type2{
-																 background-color: #8161ff;
-															 }
-						 								 }
-						 								 .value{
-						 								 	color: rgba(119,119,119,1);
-						 								 	font-size: 24rpx;
-						 											
-						 								 }
-						 }
-						
-				}
-		}
-		.img{
-			width: 48rpx;
-			height: 48rpx;
-		}
-	}
-	
-	.tabs{
-		border-bottom: 1px solid rgba(232,232,232,1);
-		height: 96rpx;
-		line-height: 96rpx;
-		background-color: #fff;
-		border-top: 1px solid rgba(241,241,241,1);
-		display: flex;
-		justify-content: space-around;
-		.tabsItem{
-			color: rgba(51,51,51,1);
-			font-size: 14px;
-
-		}
-		
-	}
-	
-	.floating-button {
-		position: fixed;
-		bottom: 120rpx;
-		width: 100%;
-		display: flex;
-	
-		justify-content: center;
-	
-		.button {
-			border-radius: 50px;
-			background-color: rgba(49, 51, 52, 1);
-			color: rgba(255, 255, 255, 1);
-			font-size: 28rpx;
-			width: 240rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			padding: 12rpx;
-	
-			.img {
-				width: 40rpx;
-				height: 40rpx;
-				margin-right: 8rpx;
-			}
-		}
-	}
-</style>

+ 0 - 153
pages/deviceTab/index.vue

@@ -1,153 +0,0 @@
-<template>
-	<view>
-		<u-navbar  :title="title" :is-back="0" ></u-navbar>
-		<view class="main">
-			<view class="list">
-				<view class="line"  v-for="(item,i) in list" :key="i"
-				  @click="gotoUrl('/pages/deviceTab/deviceList?parkingId='+item.id)" >
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index1-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								{{item.name}}
-							</view>
-							<view class="value"  >
-							
-								<span>空闲{{item.idleNum}} / 共{{item.totalNum}}台</span>
-								<!-- <span>{{item.contacts}}</span> -->
-								<span>{{item.openStatusN}}</span>
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-				
-				
-				
-			</view>
-		</view>
-		<u-divider  :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-		
-		<tabbar :current="1"></tabbar>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/deviceTab.js'
-	
-	import Tabbar from '@/components/Tabbar.vue'
-	export default {
-		components: {
-			Tabbar
-		},
-		data() {
-			return {
-				title:"场站列表",
-				list:[],
-				listForm:{
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				},
-			};
-		},
-		onLoad() {
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-			
-			myLoadmore(){
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-			getList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-							 
-				API.parkingList(this.listForm).then((res) => {
-					
-					var list=this.list 
-					
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.parkingInfoList;
-					} else {
-						list = [
-							...list,
-							...res.data.parkingInfoList
-						];
-					}
-					this.list=list
-					uni.hideLoading();
-				
-				}).catch(error => {
-				
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.main{
-		background-color: #fff;
-		.line{
-			    display: flex;
-			    justify-content: space-between;
-				    align-items: center;
-					padding: 32rpx;
-					border-bottom: 1px solid rgba(245,245,245,1);
-					
-				.body{
-					 display: flex;
-					     align-items: center;
-						 
-						 .imgclass{
-						 							     display: flex;
-						 							     align-items: center;
-						 							     justify-content: center;
-						 							width: 72rpx;
-						 							height: 72rpx;
-						 							     border-radius: 4px;
-						 							     background-color: rgba(219,234,255,1);
-						 }
-						 .item{
-						 							    margin-left: 16rpx;
-						 								
-						 								 .name{
-						 									 color: rgba(51,51,51,1);
-						 									 font-size: 28rpx;
-						 								 }
-						 								 .value{
-						 								 	color: rgba(119,119,119,1);
-						 								 	font-size: 24rpx;
-						 											 span{
-						 												  margin-right: 16rpx;
-						 											 }
-						 								 }
-						 }
-						
-				}
-		}
-		.img{
-			width: 48rpx;
-			height: 48rpx;
-		}
-	}
-</style>

+ 0 - 651
pages/deviceTab/infoLock.vue

@@ -1,651 +0,0 @@
-<template>
-	<view class="jpmain  ">
-		<view class="gradient-header">
-			<view class="jpback">
-
-			</view>
-		</view>
-		<view class="body">
-			<view class="page-top">
-				<!-- <view class="text1">地锁名称</view> -->
-				<!-- @click="gotoUrl('/pages/mylock/editLock?id='+id)" -->
-				<view class="text2"   >{{
-					floorlockInfo.name
-				}}<!-- <u-icon name="edit-pen" size="32" color="#FFFFFF"></u-icon> -->
-				</view>
-			</view>
-			<view class="page">
-				<view class="info-title">
-					<view class="name">地锁信息</view>
-					<view class="value">
-						<view class="pack-up" v-show="listShow" @click="listShow=false">
-							收起<u-icon name="arrow-up" size="32" color="#AAAAAA"></u-icon>
-						</view>
-						<view class="pack-up" v-if="!listShow" @click="listShow=true">
-							展开<u-icon name="arrow-down" size="32" color="#AAAAAA"></u-icon>
-						</view>
-					</view>
-				</view>
-				<view class="table">
-					<view class="row">
-						<view class="name">地锁型号</view>
-						<view class="value">{{floorlockInfo.model}}</view>
-					</view>
-
-
-					<view class="row">
-						<view class="name">出厂编号</view>
-						<view class="value">{{floorlockInfo.factoryNumber}}</view>
-					</view>
-					<template v-if="!listShow">
-						<view class="row">
-							<view class="name">固件版号</view>
-							<view class="value">{{floorlockInfo.solidVersion}}</view>
-						</view>
-						<view class="row">
-							<view class="name">防护等级</view>
-							<view class="value">{{floorlockInfo.protectionGrade}}</view>
-						</view>
-
-						<view class="row"  v-if="0">
-							<view class="name">输入电压</view>
-							<view class="value">{{floorlockInfo.inputVoltage}}</view>
-						</view>
-						<view class="row" v-if="0">
-							<view class="name">输出电压</view>
-							<view class="value">{{floorlockInfo.outputVoltage}}</view>
-						</view>
-
-						<view class="row"  v-if="0">
-							<view class="name">输出电流</view>
-							<view class="value">{{floorlockInfo.outputCurrent}}</view>
-						</view>
-						<view class="row"  v-if="0">
-							<view class="name">输出功率</view>
-							<view class="value">{{floorlockInfo.outputPower}}</view>
-						</view>
-
-						<view class="row">
-							<view class="name">生产日期</view>
-							<view class="value">{{floorlockInfo.manufactureDate}}</view>
-						</view>
-
-						<view class="row">
-							<view class="name">标准依据</view>
-							<view class="value">{{floorlockInfo.standardBasis}}</view>
-						</view>
-						<view class="row">
-							<view class="name">联网卡号</view>
-							<view class="value">{{floorlockInfo.internetCard}}</view>
-						</view>
-						<view class="row"  v-if="floorlockInfo.tariffStandard">
-							<view class="name">资费标准</view>
-							<view class="value">{{floorlockInfo.tariffStandard}}元/月</view>
-						</view>
-						<view class="row">
-							<view class="name">地锁启动时间</view>
-							<view class="value">{{floorlockInfo.activationTime}}</view>
-						</view>
-						<view class="row"  v-if="floorlockInfo.shelfLife">
-							<view class="name">地锁质保期</view>
-							<view class="value">{{floorlockInfo.shelfLife}}年</view>
-						</view>
-					</template>
-
-				</view>
-			</view>
-			<view class="page">
-				<view class="info-title">
-					<view class="name">联网信息</view>
-					<view class="value">
-
-					</view>
-				</view>
-				<view class="table">
-					<view class="row">
-						<view class="name">联网卡号</view>
-						<view class="value">{{floorlockInfo.internetCard}}</view>
-					</view>
-					<view class="row">
-						<view class="name">有效期至</view>
-						<view class="value">{{floorlockInfo.cardExpirationDate?floorlockInfo.cardExpirationDate.split(' ')[0]:''}}
-
-						</view>
-
-					</view>
-					<view class="tips"  v-if="floorlockInfo.tariffStandard">
-						<u-icon style="    margin-top: 2px;" size="30" name="info-circle"></u-icon>
-						<view>
-							地锁内含物联网卡,此卡随地锁出厂时赠送三年免费使用时长,三年后将按{{floorlockInfo.tariffStandard}}元/月资费标准收取费用。
-
-						</view>
-
-					</view>
-				</view>
-			</view>
-			<view class="page">
-				<view class="info-title">
-					<view class="name">充电白名单<span class="span">({{whiteList.length}}/3)</span></view>
-					<view class="value" @click="addUser()">
-						<u-icon style="    margin-top: 2px;" size="30" name="plus"></u-icon> 添加
-					</view>
-				</view>
-				<view class="table">
-					<view class="table_v">
-						<view class="table_tr">
-							<view class="table_td">姓名</view>
-							<view class="table_td">手机号</view>
-							<view class="table_td">车牌号</view>
-							<view class="table_td">操作</view>
-						</view>
-						<view class="table_tr" v-for="(item,i) in whiteList" :key="i">
-							<view class="table_td">{{item.nickName}}</view>
-							<view class="table_td">{{item.phone}}</view>
-							<view class="table_td">{{item.carNumber==0?'':item.carNumber}}</view>
-							<view class="table_td" style="color:#1677FF;white-space: pre;" @click="editUser(item)">修改</view>
-						</view>
-
-					</view>
-
-				</view>
-			</view>
-		</view>
-
-		<u-popup v-model="popupShow" mode="bottom" :closeable="true" border-radius="30">
-			<view class="popup-screen">
-
-						<u-keyboard ref="uKeyboard"  @change="valChange" @backspace="backspace"
-						:tips="vipUser.carNumber?vipUser.carNumber:'请输入车牌号'"
-						mode="car" v-model="carshow"  :abc="abc" ></u-keyboard>
-
-
-				<view class="popup-title">{{vipUser.id?'修改':'添加'}}白名单信息</view>
-				<view style="padding: 4px;">白名单车主姓名<span style="color: red;">*</span></view>
-				<u-input :customStyle="customStyle" v-model="vipUser.nickName" placeholder="白名单车主姓名(必填)"></u-input>
-				<view style="padding: 4px;">白名单车主手机号码<span style="color: red;">*</span></view>
-				<u-input :customStyle="customStyle" type="number" v-model="vipUser.phone"
-					placeholder="白名单车主手机号码(必填)"></u-input>
-				<view style="padding: 4px;">白名单车主车牌号</view>
-				<!-- 						<u-input :customStyle="customStyle" v-model="vipUser.carNumber" placeholder="白名单车主车牌号"></u-input> -->
-
-				<view class="carNumber"  @click="carshow=true,valInit(1)"
-				:class="{
-								'carNumber1':!vipUser.carNumber
-							}">
-					{{vipUser.carNumber?vipUser.carNumber:'白名单车主车牌号'}}
-				</view>
-				<view v-if="vipUser.id" style="display: flex;">
-					<u-button type="info" style="margin-top: 10px;width: 49%;" shape="circle"
-						@click="delUser()">删除</u-button>
-					<u-button type="success" style="margin-top: 10px;width: 49%;" shape="circle"
-						@click="submitUser()">保存</u-button>
-				</view>
-				<view v-else>
-
-					<u-button type="success" style="margin-top: 10px;" shape="circle"
-						@click="submitUser()">保存</u-button>
-				</view>
-
-
-			</view>
-		</u-popup>
-		<u-modal v-model="delShow" @confirm="confirmDelete" confirm-color="#fa3534" :show-cancel-button="true"
-			ref="uModal" title="删除白名单用户" content="是否删除当前白名单用户?" confirm-text="删除"></u-modal>
-
-		<view class="floating-button">
-			<view class="button" @click="gotoUrl('/pages/deviceTab/dataLock?id='+id)" >
-
-				查看地锁
-			</view>
-
-		</view>
-
-
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/index.js'
-
-	export default {
-		data() {
-			return {
-				id: "",
-				floorlockInfo: {},
-				listShow: true,
-				popupShow: false,
-				customStyle: {
-					"border-radius": "50px",
-					"background-color": 'rgba(242, 244, 246, 1)',
-					padding: "5px 20px",
-					margin: "5px 0 ",
-					
-				},
-				abc:false,
-				whiteList: [],
-				vipUser: {},
-				delShow: false,
-				obj: {},
-				carshow: false,
-			};
-		},
-		onLoad(op) {
-			this.id = op.id
-			this.getFloorlockDetails()
-
-		},
-		methods: {
-			valInit(bl){
-				if(bl){
-					this.abc=this.vipUser.carNumber.length>0
-				}else{
-					if(this.vipUser.carNumber.length==1&&this.abc==false){
-						this.abc=true
-					}
-					if(this.vipUser.carNumber.length==0&&this.abc==true){
-						this.abc=false
-					}
-				}
-				
-			},
-			valChange(val){
-				
-				if(this.vipUser.carNumber.length>=8){
-					return
-				}
-				this.vipUser.carNumber+=val
-				this.valInit()
-				this.$forceUpdate()
-			},
-			backspace(){
-				//
-				var value=this.vipUser.carNumber
-				if(value.length){
-					value = value.substr(0, value.length - 1);
-					
-				}
-				this.vipUser.carNumber=value
-				this.valInit()
-				
-
-			},
-			getFloorlockDetails() {
-
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				var obj = {
-					id: this.id
-				}
-
-				API.floorlockDetails(obj).then((res) => {
-					this.floorlockInfo = res.data.floorlockInfo
-
-					uni.hideLoading();
-					this.getWhiteList()
-				}).catch(error => {
-
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			getWhiteList(bl) {
-
-				if (bl) {
-					uni.showLoading({
-						title: "加载中",
-						mask: true,
-					})
-				}
-				API.whiteList({
-					floorlockId: this.id
-				}).then((res) => {
-					this.whiteList = res.data.whiteList
-
-					if (bl) {
-						uni.hideLoading()
-						uni.showToast({
-							title: "操作成功"
-						})
-					}
-
-
-
-
-				}).catch(error => {
-
-					uni.showToast({
-						title: error
-					})
-				})
-
-
-			},
-			submitUser() {
-				if (!this.vipUser.nickName) {
-					uni.showToast({
-						title: "请填写白名单车主姓名"
-					})
-					return
-				}
-				if (!this.vipUser.phone) {
-					uni.showToast({
-						title: "请填写白名单车主手机号码"
-					})
-					return
-				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				this.vipUser.name = this.vipUser.nickName
-				API.addWhite(this.vipUser).then((res) => {
-					//this.obj = res.data
-					uni.hideLoading()
-
-					this.delShow = false
-					this.popupShow = false
-					this.getWhiteList(1)
-
-				}).catch(error => {
-
-					uni.showToast({
-						title: error
-					})
-				})
-
-
-			},
-			confirmDelete() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.deleteWhite({
-					id: this.vipUser.id
-				}).then((res) => {
-					//this.obj = res.data
-					uni.hideLoading()
-					this.delShow = false
-					this.popupShow = false
-					uni.showToast({
-						title: "操作成功"
-					})
-					this.getWhiteList(1)
-
-				}).catch(error => {
-
-					uni.showToast({
-						title: error
-					})
-				})
-			},
-			delUser() {
-				this.delShow = true;
-			},
-			editUser(item) {
-				this.popupShow = true;
-				this.vipUser = item;
-				this.vipUser.nickName = item.nickName
-
-
-				this.vipUser.floorlockId = this.id
-				if (this.vipUser.carNumber == 0) {
-					this.vipUser.carNumber = ''
-				}
-			},
-			addUser() {
-				if (this.whiteList.length >= 3) {
-					uni.showToast({
-						title: "添加白名单用户已达到上限"
-					})
-					return
-				}
-				this.popupShow = true;
-				this.vipUser = {
-					carNumber:""
-				}
-
-				this.vipUser.floorlockId = this.id
-
-			},
-
-
-		}
-	}
-</script>
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-</style>
-<style lang="scss" scoped>
-	.gradient-header {
-		height: 0px;
-	}
-
-	.jpback {
-		height: 360rpx;
-		background: linear-gradient(180deg, rgba(22, 119, 255, 1) 11%, rgba(242, 244, 246, 1) 100%);
-	}
-
-	.body {
-		padding: 32rpx 32rpx 120rpx 32px;
-		//padding-bottom: ;
-	}
-
-	.page-top {
-		color: rgba(255, 255, 255, 1);
-		margin: 48rpx 0;
-
-		.text1 {
-			font-size: 36rpx;
-			margin-bottom: 12rpx;
-		}
-
-		.text2 {
-			font-size: 40rpx;
-
-		}
-	}
-
-	.page {
-		border-radius: 16rpx;
-		background-color: rgba(255, 255, 255, 1);
-		color: rgba(16, 16, 16, 1);
-
-		padding: 32rpx;
-		margin-bottom: 32rpx;
-		font-size: 32rpx;
-		color: rgb(16, 16, 16);
-
-		.info-title {
-			display: flex;
-			justify-content: space-between;
-			padding-bottom: 24rpx;
-
-			.name {
-				font-size: 36rpx;
-				color: rgba(51, 51, 51, 1);
-				font-weight: bold;
-
-				.span {
-					font-weight: 400;
-					font-size: 28rpx;
-					color: rgba(119, 119, 119, 1);
-				}
-			}
-
-			.value {
-				font-size: 28rpx;
-				color: rgba(119, 119, 119, 1);
-			}
-		}
-
-		.pack-up {
-
-
-			color: rgba(119, 119, 119, 100);
-		}
-
-		.tips {
-			margin-top: 12rpx;
-			display: flex;
-			align-items: flex-start;
-			font-size: 24rpx;
-		}
-
-		.table {
-			.table_v {
-				width: 100%;
-			}
-			.table_tr {
-				
-				 display: flex;
-				justify-content: space-between;
-			}
-
-			.row {
-				display: flex;
-				align-items: center;
-				height: 72rpx;
-				font-size: 28rpx;
-				padding: 0 24rpx;
-
-				.name {
-					width: 240rpx;
-				}
-
-			}
-
-			.table_td {
-
-				height: 72rpx;
-				font-size: 28rpx;
-				    display: flex;
-				    align-items: center;
-
-
-			}
-
-			/* 隔行变色: 偶数行设置背景色 */
-			.row:nth-child(odd) {
-				background-color: #f9f9f9;
-				/* 偶数行 */
-			}
-
-			.table_tr:nth-child(odd) {
-				background-color: #f9f9f9;
-				/* 偶数行 */
-			}
-
-			.row:nth-child(even) {
-				background-color: #ffffff;
-				/* 奇数行 */
-			}
-
-			.table_tr:nth-child(even) {
-				background-color: #ffffff;
-				/* 奇数行 */
-			}
-
-		}
-	}
-::v-deep.u-keyboard-grids-btn:nth-child(15){
-			background-color: red;
-		}
-	.popup-screen {
-		padding: 40rpx 40rpx 60rpx 40rpx;
-		.carNumber {
-			background-color: #F2F4F6;
-			padding: 5px 20px;
-			margin: 5px 0 15px 0;
-			height: 90rpx;
-			display: flex;
-			align-items: center;
-			border-radius: 50px;
-			
-		}
-		.carNumber1{
-			color: #bcbcbc;
-		}
-		
-
-		
-
-		.popup-title {
-			font-size: 36rpx;
-			color: rgba(51, 51, 51, 1);
-			font-weight: bold;
-			padding-bottom: 10px;
-		}
-
-		.cardList {
-			display: flex;
-			justify-content: space-evenly;
-
-			.cardInfo {
-				display: flex;
-				flex-direction: column;
-				justify-content: center;
-				width: 160rpx;
-				height: 160rpx;
-				border-radius: 8px;
-				background-color: rgba(255, 255, 255, 1);
-				text-align: center;
-				border: 1px solid rgba(187, 187, 187, 1);
-
-				.name {
-					color: rgba(16, 16, 16, 1);
-					font-size: 28rpx;
-				}
-
-				.price {
-					color: rgba(16, 16, 16, 1);
-					font-size: 48rpx;
-					font-weight: bold;
-				}
-			}
-
-			.cardInfoCk {
-				background-color: rgba(225, 247, 237, 1);
-				border: 1px solid rgba(0, 185, 98, 1);
-
-				.price {
-					color: rgba(0, 161, 85, 1);
-
-				}
-			}
-		}
-	}
-
-	.floating-button {
-		position: fixed;
-		bottom: 0;
-		/* 距离底部 20px */
-		width: 100%;
-		display: flex;
-		height: 120rpx;
-		justify-content: center;
-		background-color: rgba(255, 255, 255, 1);
-
-		.button {
-			margin-top: 24rpx;
-			border-radius: 50px;
-			height: 80rpx;
-			width: 80%;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			padding: 12rpx;
-
-			background-color: rgba(22, 119, 255, 1);
-			color: rgba(255, 255, 255, 1);
-			font-size: 36rpx;
-		}
-	}
-</style>

+ 370 - 2178
pages/index/index.vue

@@ -1,2179 +1,371 @@
-<template>
-	<view>
-		<u-navbar v-show="false" title="首页" title-color="#101010"></u-navbar>
-
-		<u-picker v-model="body2data.vue.show" :params="body2data.vue.params" :default-time="body2data.query.startTime"
-			@confirm="body2dataconfirm" mode="time"></u-picker>
-
-		<!-- <u-picker v-model="body5data.vue.show" :default-time="body5data.query.queryDate" :params="body5data.vue.params"
-			@confirm="body5dataconfirm" mode="time"></u-picker> -->
-			
-			<u-calendar v-model="body5data.vue.show" mode="date" @change="body5dataconfirm"></u-calendar>
-
-
-		<view class="navbar">
-			智泊e家 运管端
-
-		</view>
-		<view class="tabs-box">
-
-			<u-picker-jp v-model="showselect1" range-key="name" :num="3" @confirm="showselect1confirm"
-				:range="companyList"></u-picker-jp>
-
-			<template v-if="companyListTabs.length>2">
-				<u-tabs ref="tabs" :list="companyListTabs" bg-color="#1677ff" :current="current1" inactive-color="#fff"
-					@change="utabsChange1" item-width="180" height="70" gutter="10" active-color="#fff"></u-tabs>
-				<view class="tabs-box-other" v-if="companyList.length>3" @click="utabsChange1other">
-					更多
-				</view>
-			</template>
-
-		</view>
-
-		<view class="main">
-
-			<u-picker-jp v-model="showselect2" range-key="name" :num='3' @confirm="showselect2confirm"
-				:range="parkingList"></u-picker-jp>
-
-			<view class="tabs-box2" v-show="parkingListTabs.length>2">
-				<u-tabs ref="tabs2" gutter="10" :list="parkingListTabs" :current="current2" @change="utabsChange2"
-					item-width="180" bg-color="#f2f4f6" height="70"></u-tabs>
-				<view v-if="parkingList.length>3" class="tabs-box-other" @click="utabsChange2other">
-					更多
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						综合统计
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body1">
-						<view class="body1pie-table">
-							<view class="tr">
-								<view class="td td1">
-									<view id="body1pie1" class="body1pie">
-
-									</view>
-								</view>
-								<view class="td td2">
-									<view class="td td3">
-										<view class="td td4">空闲<span
-												class="body1pie-num color53B56B">{{body1data.data.idleNum}}</span>台
-										</view>
-										<view class="td td4">占用<span
-												class="body1pie-num colorAAAAAA">{{body1data.data.useNum}}</span>台
-										</view>
-									</view>
-									<view class="td td3">
-
-										<view class="td td4">公共车位<span
-												class="body1pie-num colorEF8132">{{body1data.data.publicNum}}</span>台
-										</view>
-										<view class="td td4">私家车位<span
-												class="body1pie-num colorDC4441">{{body1data.data.privateNum}}</span>台
-										</view>
-									</view>
-								</view>
-
-							</view>
-
-							<view class="tr">
-								<view class="td td1">
-									<view id="body1pie2" class="body1pie">
-
-									</view>
-								</view>
-								<view class="td td2">
-									<view class="td td3">
-
-										<view class="td td4">正常<span
-												class="body1pie-num color53B56B">{{body1data.data.normalNum}}</span>台
-										</view>
-										<view class="td td4">离线<span
-												class="body1pie-num colorAAAAAA">{{body1data.data.loseNum}}</span>台
-										</view>
-									</view>
-									<view class="td td3">
-
-										<view class="td td4">故障<span
-												class="body1pie-num colorEF8132">{{body1data.data.errorNum}}</span>台
-										</view>
-										<view class="td td4" v-if="0">低电量<span
-												class="body1pie-num colorDC4441">5</span>台</view>
-									</view>
-								</view>
-							</view>
-
-							<view class="tr" v-if="0">
-								<view class="td td1">
-									<view id="body1pie3" class="body1pie">
-
-									</view>
-								</view>
-								<view class="td td2">
-									<view class="td td3">
-
-										<view class="td td4">管理员<span class="body1pie-num color307AF6">5</span>人</view>
-										<view class="td td4">白名单<span class="body1pie-num color53B56B">5</span>人</view>
-									</view>
-									<view class="td td3">
-
-										<view class="td td4">游客<span class="body1pie-num colorEF8375">5</span>人次</view>
-										<view class="td td4"></view>
-									</view>
-								</view>
-
-							</view>
-
-
-						</view>
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics " v-show="1||companyId">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>地锁列表</view>
-			
-						<view class="check-all" @click="gotoDeviceList()">查看全部<u-icon name="arrow-right"></u-icon>
-						</view>
-			
-					</view>
-			
-				</view>
-			
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body7">
-						<view class="body7main">
-							<view class="line" v-for="(item,index) in equipmentList"
-								@click="gotoUrl('/pages/deviceTab/dataLock?id='+item.id)" :key="index">
-								<view class="item">
-									<!-- 
-								 -->
-									<view class="item-title">
-										
-										<view class="item-name">
-											{{item.name}}
-										</view>
-										<view class="item-tags">
-											<view class="tag  " :class="'tag'+item.type">
-												{{item.typeN}}
-													
-											</view>
-											
-											<view class="tag" :class="'lockStatus lockStatus'+item.lockStatus">
-												{{item.lockStatusN}}
-											</view>
-										</view>
-									</view>
-									<view class="item-body">
-										<span>编号:{{item.lockNo}}</span> <span v-if="item.batteryLevel" style="    margin-left: 16rpx;">电压:{{item.batteryLevel}}V</span>
-									</view>
-			
-								</view>
-								<view class="goto">
-									<view  :class="'statusN statusN'+item.status">
-										{{item.status==1?'在线':'离线'}}
-											
-									</view>
-									<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-								</view>
-								
-							</view>
-							<u-divider border-color="#CFD2D5" @click="gotoDeviceList()"
-								v-if="equipmentList.length==10">最多显示10条,点击查看更多</u-divider>
-			
-						</view>
-			
-			
-			
-					</jpContent>
-				</view>
-			</view>
-			
-			<view class="statistics " v-show="1||companyId">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>停车记录</view>
-			
-						<view class="check-all" @click="gotoUrl('/pages/record/parkingRecord?compamyId='+companyId+'&parkingId='+parkingId)">查看全部<u-icon name="arrow-right"></u-icon>
-						</view>
-			
-					</view>
-			
-				</view>
-			
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body8">
-						<view class="body8main">
-							<view class="line" v-for="(item,index) in parkingRecord"
-								@click="gotoUrl('/pages/record/parkingInfo?id='+item.id)" :key="index">
-								
-								<view class="data">
-									
-									<view class="view3">
-										<u-icon name="clock"></u-icon>
-										{{showTime(item.startTime)}}
-										<template v-if="item.status!=0">
-											{{item.endTime?'-'+showTime(item.endTime):'-当前'}}
-										</template>
-										
-									</view>
-									<view class="view1">
-										{{item.parkingName}} {{item.lockName}}
-									</view>
-								</view>
-								<view class="goto " :class="'status'+item.status">
-									{{item.status==2?getTime(item):''}}
-									{{item.status==1?'使用中':''}}
-									{{item.status==0?'启动中':''}}
-								
-									<u-icon name="arrow-right" size="24" style="margin-left: 8rpx;" color="#BBBBBB"></u-icon>
-								
-								</view>
-								
-								
-							</view>
-							<u-divider border-color="#CFD2D5" @click="gotoUrl('/pages/record/parkingRecord?compamyId='+companyId+'&parkingId='+parkingId)"
-								v-if="parkingRecord.length==5">最多显示5条,点击查看更多</u-divider>
-			
-						</view>
-			
-			
-			
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>时空矩阵图</view>
-
-						<view class="tag" @click="body5data.vue.show=true">{{body5data.vue.queryN}}<u-icon
-								name="arrow-down"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body5">
-						<view class="body5main">
-
-							<view id="body5echart" class="body5class">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics " v-show="companyId">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>车位异常记录</view>
-
-						<view class="check-all" @click="gotoUrl('/pages/myTab/abnormalList?companyId='+companyId)">
-							查看全部<u-icon name="arrow-right"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body6">
-						<view class="body6main">
-							<view class="line" v-for="(item,index) in abnormalRecordsList" :key="index">
-								<view class="abnormal-item">
-									<!-- @click="gotoUrl('/pages/abnormal/abnormalAlarmDetails?id='+item.id)"
-								 -->
-									<view class="item-title">
-
-										<view class="name">
-											<span v-if="item.level==1" class="level level1 ">一级</span>
-											<span v-if="item.level==2" class="level level2">二级</span>
-
-											{{item.content}}
-										</view>
-										<view class="date"
-											style="display: flex;    justify-content: space-between;margin-top: 4rpx;">
-											<view>{{item.title}}</view>
-											<view>{{item.createTime}}</view>
-
-										</view>
-									</view>
-
-								</view>
-								<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>车位平均占用率(%)</view>
-						<view class="tag" @click="body2data.vue.show=true">{{body2data.vue.queryN}}<u-icon
-								name="arrow-down"></u-icon></view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body2">
-						<view class="body2lineChart">
-
-							<view id="body2line1" class="body2line">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>高频使用时段分布</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body3">
-						<view class="body3barChart">
-
-							<view id="body3bar1" class="body3bar">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>用户停留时长分群特征</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body4">
-						<view class="body4pieChart">
-
-							<view id="body4pie1" class="body4pie">
-
-							</view>
-
-						</view>
-
-
-
-					</jpContent>
-				</view>
-			</view>
-
-
-			
-			<u-divider border-color="#CFD2D5">已经到底了</u-divider>
-
-		</view>
-		<tabbar :current="0"></tabbar>
-
-	</view>
-</template>
-
-<script>
-	import Tabbar from '@/components/Tabbar.vue'
-	import jpContent from '@/components/JPcontent.vue'
-	import * as echarts from 'echarts';
-
-	import * as API from '@/apis/pagejs/index.js'
-
-	import {
-		parseUnixTime,
-		beforeTimeStamp,
-		newDate
-	} from '@/apis/utils'
-
-
-	export default {
-		components: {
-			Tabbar,
-			jpContent
-		},
-		data() {
-			return {
-				current1: 0,
-				showselect1: false,
-				current2: 0,
-				showselect2: false,
-				isReady: false,
-				companyList: [],
-				parkingList: [],
-				//companyListIndex:0,
-				companyId: "",
-				parkingId: "",
-				echartsList: {},
-				parkingRecord:[],
-				equipmentList: [],
-				abnormalRecordsList: [{
-						level: 1,
-						content: "1111111",
-						title: "11",
-						createTime: "123:123"
-					},
-					{
-						level: 2,
-						content: "1111111",
-						title: "11",
-						createTime: "123:123"
-					}
-				],
-				body2data: {
-					query: {},
-					vue: {
-						queryN: "",
-						show: false,
-						params: {
-							year: true,
-							month: true,
-							day: false,
-							hour: false,
-							minute: false,
-							second: false
-						}
-					},
-					data: {}
-				},
-				body1data: {
-					query: {},
-					data: {},
-					data1: {}
-				},
-				body4data: {
-					query: {},
-					data: {}
-				},
-				body3data: {
-					query: {},
-					data: {}
-				},
-
-				body5data: {
-					query: {},
-					data: {},
-					vue: {
-						queryN: "",
-						show: false,
-						params: {
-							year: true,
-							month: true,
-							day: true,
-							hour: false,
-							minute: false,
-							second: false
-						}
-					},
-				},
-				jpContentMap: {
-					body1: 0,
-					body2: 0,
-					body3: 0,
-					body4: 0,
-					body5: 0,
-					body6: 1,
-					body7: 0,
-					body8: 0,
-					body9: 0,
-					body10: 0,
-				}
-			}
-		},
-		onLoad() {
-
-		},
-		onReady() {
-			this.getfindByOpenId();
-		},
-		computed: {
-			companyListTabs() {
-				var sz = []
-
-				if (this.companyList.length > 3) {
-					sz = [{
-						id: "",
-						name: '全部'
-					}]
-					sz.push(this.companyList[0])
-					sz.push(this.companyList[1])
-				} else {
-					sz = [{
-							id: "",
-							name: '全部'
-						},
-						...this.companyList
-					]
-				}
-
-				return sz
-			},
-			parkingListTabs() {
-				var sz = []
-				if (this.parkingList.length > 3) {
-					sz = [{
-						id: "",
-						name: '综合查询'
-					}]
-					sz.push(this.parkingList[0])
-					sz.push(this.parkingList[1])
-				} else {
-					sz = [{
-							id: "",
-							name: '综合查询'
-						},
-						...this.parkingList
-					]
-				}
-
-				return sz
-			},
-		},
-		methods: {
-			
-			showTime(time){
-					if(time){
-						return time.substr(5).replace('-','.')
-					}else{
-						return ''
-					}
-			},
-			getTime(item){
-				if(item.startTime&&item.endTime){
-					var stime=newDate(item.startTime)
-					var etime=newDate(item.endTime)
-					//etime=new Date()
-					var k=(etime.getTime()-stime.getTime())/1000/60
-					
-					var H=k/60
-					var fen=k%(60)
-					var str="";
-					if(k>60){
-						str+=parseInt(H)+'小时'
-					}
-					if(fen==0&&str!=''){
-						
-					}else{
-						str+=parseInt(fen)+'分钟'
-					}
-					return str
-				}else{
-					return '已完成'
-				}
-			},
-			
-			gotoDeviceList() {
-				if (this.parkingId) {
-					this.gotoUrl('/pages/deviceTab/deviceList?parkingId=' + this.parkingId)
-				} else {
-					
-					uni.switchTab({
-							url: '/pages/deviceTab/index'
-						})
-					
-				}
-			},
-			getfloorStatus() {
-				this.jpContentMap.body1 = 0
-
-				API.floorStatus({
-					companyId: this.companyId,
-					parkingId: this.parkingId
-				}).then((response) => {
-					this.body1data.data = response.data
-					uni.hideLoading();
-					this.jpContentMap.body1 = 2
-
-					this.getbody1pie1()
-					this.getbody1pie2()
-					this.getbody1pie3()
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-
-			},
-			getParkingRecordList() {
-				this.jpContentMap.body8 = 0
-			
-				API.parkingRecordList({
-					companyId: this.companyId,
-					parkingId: this.parkingId,
-					pageSize: 5
-				}).then((response) => {
-					
-					uni.hideLoading();
-					if (response.data.totalPage) {
-						this.jpContentMap.body8 = 2
-						this.parkingRecord = response.data.data
-					
-					} else {
-						this.jpContentMap.body8 = 1
-					}
-			
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-			
-				})
-			
-			},
-			getfloorlockList() {
-				this.jpContentMap.body7 = 0
-
-				API.floorlockList({
-					companyId: this.companyId,
-					parkingId: this.parkingId,
-					pageSize: 10
-				}).then((response) => {
-
-					uni.hideLoading();
-					if (response.data.totalPage) {
-						this.jpContentMap.body7 = 2
-						this.equipmentList = response.data.data
-					
-
-					} else {
-						this.jpContentMap.body7 = 1
-					}
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			getApi1() {
-
-				if (this.companyId == "") {
-
-					this.getApi2()
-				} else {
-					this.parkingInfoList()
-				}
-
-			},
-			getApi2() {
-				this.getfloorStatus()
-				this.getfloorlockList()
-				this.occupancyByTime(1);
-				this.occupancyByTimeBar(1);
-				this.occupancyByDay(1);
-				this.durationDistribution();
-				this.getParkingRecordList()
-				if (this.parkingId == "") {
-
-				} else {
-
-				}
-			},
-			change1companyList(i) {
-				//this.companyListIndex=i
-				var companyId = ""
-
-				if (i == -1) {
-					if (this.companyId == companyId) {
-
-					} else {
-						this.companyId = ""
-						this.parkingList = [];
-						this.getApi1()
-					}
-				} else {
-					var item = this.companyList[i]
-					companyId = item.id
-					if (this.companyId == companyId) {
-
-					} else {
-						this.companyId = companyId
-
-						this.parkingId = "";
-						this.current2 = 0;
-						this.$refs.tabs2.showBar = true
-
-						this.getApi1()
-					}
-				}
-
-			},
-			change2parkingList(i) {
-
-				var parkingId = ""
-
-				if (i == -1) {
-
-					if (this.parkingId == parkingId) {
-
-					} else {
-						this.parkingId = "";
-						this.getApi2()
-
-					}
-				} else {
-					var item = this.parkingList[i]
-					parkingId = item.id
-					if (this.parkingId == parkingId) {
-
-					} else {
-						this.parkingId = parkingId;
-						this.getApi2()
-					}
-				}
-
-			},
-			showselect2confirm(e) {
-
-				this.change2parkingList(e[0])
-			},
-			utabsChange2other() {
-				this.$refs.tabs2.showBar = false
-				this.current2 = -1;
-				this.showselect2 = true;
-			},
-			utabsChange2(index) {
-				this.current2 = index;
-				this.change2parkingList(index - 1)
-				this.$refs.tabs2.showBar = true
-			},
-
-			showselect1confirm(e) {
-
-				this.change1companyList(e[0])
-			},
-
-			utabsChange1other() {
-				this.$refs.tabs.showBar = false
-				this.current1 = -1;
-				this.showselect1 = true;
-			},
-			utabsChange1(index) {
-				this.current1 = index;
-				this.change1companyList(index - 1)
-				this.$refs.tabs.showBar = true
-			},
-			parkingInfoList() {
-
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				this.parkingList = [];
-
-				API.parkingList({
-					companyId: this.companyId,
-					pageSize: 999
-				}).then((response) => {
-
-					uni.hideLoading();
-					var parkingInfoList = response.data.parkingInfoList
-					this.parkingList = [
-						...parkingInfoList,
-					];
-
-					if (this.parkingList.length == 1) {
-
-						this.change2parkingList(0)
-
-					} else {
-						this.change2parkingList(-1)
-						this.getApi2()
-					}
-
-					this.getfloorlockList()
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			companyInfoList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				this.companyList = [];
-
-				API.companyInfoList({
-
-				}).then((response) => {
-
-					uni.hideLoading();
-					var companyInfoList = response.data.companyInfoList
-					this.companyList = [
-						...companyInfoList,
-
-					];
-
-					if (this.companyList.length == 1) {
-						this.change1companyList(0)
-					} else {
-						this.change1companyList(-1)
-						this.getApi1()
-					}
-
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			init() {
-				this.companyInfoList()
-
-				//this.occupancyByTime();
-
-				//this.getbody3()
-				//this.getbody4()
-
-				//this.getbody5()
-
-
-			},
-			body2dataconfirm(e) {
-
-				var date = new Date(e.year + "-" + e.month + "-1");
-				this.body2data.vue.queryN = date.getFullYear() + "年" + (date.getMonth() + 1) + '月';
-				this.body2data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-
-				var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-				this.body2data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-
-				this.occupancyByTime()
-			},
-			body5dataconfirm(e) {
-				console.log(e)
-				var date = new Date(e.year + "-" + e.month + "-" + e.day);
-				this.body5data.query.queryDate = parseUnixTime(date, '{y}-{m}-{d}')
-				this.body5data.vue.queryN = parseUnixTime(date, '{y}年{m}月{d}日');
-
-				this.occupancyByDay()
-			},
-			occupancyByTimeBar(init) {
-				if (init) {
-					var date = new Date();
-					//test
-					//this.body3data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-
-					var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-					//this.body3data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-
-				}
-				this.jpContentMap.body3 = 0
-				this.body3data.query.companyId = this.companyId
-				this.body3data.query.parkingId = this.parkingId
-				API.occupancyByTimeBar(
-					this.body3data.query
-				).then((response) => {
-					this.body3data.data = [
-						...response.data.locksTimeList,
-						//	...response.data.locksTimeList,
-					];
-
-					if (this.body3data.data.length == 0) {
-						this.jpContentMap.body3 = 1
-
-					} else {
-						this.jpContentMap.body3 = 2
-						this.getbody3()
-
-					}
-
-
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			durationDistribution() {
-				this.jpContentMap.body4 = 0
-
-				var date = new Date();
-				//test
-				//this.body4data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-
-				var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-			//	this.body4data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-
-
-
-				this.body4data.query.companyId = this.companyId
-				this.body4data.query.parkingId = this.parkingId
-				API.durationDistribution(
-					this.body4data.query
-				).then((response) => {
-					this.body4data.data = response.data.distribution;
-
-					if (this.body4data.data.length == 0) {
-						this.jpContentMap.body4 = 1
-
-					} else {
-						this.jpContentMap.body4 = 2
-						//this.getbody3()
-						this.getbody4()
-					}
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			occupancyByDay(init) {
-				if (init) {
-					var date = new Date();
-
-					this.body5data.query.queryDate = parseUnixTime(date, '{y}-{m}-{d}')
-					this.body5data.vue.queryN = parseUnixTime(date, '{y}年{m}月{d}日');
-
-				}
-				this.jpContentMap.body5 = 0
-				this.body5data.query.companyId = this.companyId
-				this.body5data.query.parkingId = this.parkingId
-				API.occupancyByDay(
-					this.body5data.query
-				).then((response) => {
-					this.body5data.data = [
-						...response.data.locksTimeList,
-
-					];
-
-					if (this.body5data.data.length == 0) {
-						this.jpContentMap.body5 = 1
-
-					} else {
-						this.jpContentMap.body5 = 2
-						//this.getbody3()
-						this.getbody5()
-					}
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			occupancyByTime(init) {
-				if (init) {
-					var date = new Date();
-
-					this.body2data.vue.queryN = date.getFullYear() + "年" + (date.getMonth() + 1) + '月';
-					this.body2data.query.startTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-1"
-
-					var endOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-					this.body2data.query.endTime = parseUnixTime(endOfMonth, '{y}-{m}-{d}')
-
-				}
-				this.jpContentMap.body2 = 0
-				this.body2data.query.companyId = this.companyId
-				this.body2data.query.parkingId = this.parkingId
-				API.occupancyByTime(
-					this.body2data.query
-				).then((response) => {
-					this.body2data.data = [
-						...response.data.locksTimeList,
-						//	...response.data.locksTimeList,
-					];
-
-					if (this.body2data.data.length == 0) {
-						this.jpContentMap.body2 = 1
-
-
-					} else {
-						this.jpContentMap.body2 = 2
-
-						this.getbody2()
-
-
-					}
-
-
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			getbody5() {
-				// 颜色映射
-				var colorMap = [
-
-					'#FFA500',
-					'#00FF00',
-					'#F44336',
-					'#E91E63',
-					'#9C27B0',
-					'#673AB7',
-					'#3F51B5',
-					'#2196F3',
-					'#03A9F4',
-					'#00BCD4',
-					'#009688',
-					'#CDDC39',
-					'#FFEB3B',
-					'#FFC107',
-					'#FF9800',
-					'#FF5722',
-					'#795548',
-					'#607D8B'
-				];
-
-				var key = "body5echart"
-				var dataApi = this.body5data.data;
-
-				var head = 40 * (parseInt(dataApi.length / 4)) + 20
-				var body = 20 * (parseInt(dataApi.length))
-
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px((170 + head) * 2 + body)
-					})
-
-				}
-				myChart.clear()
-				var dataName = []
-				var dataTime = []
-				var series = []
-				var i = 0;
-				var isPush=false
-				dataApi.forEach(item => {
-
-					dataName.push(item.lockName)
-					var itemList = []
-					var j = 0
-					item.timeUseList.forEach(item2 => {
-
-						Object.keys(item2).forEach(key1 => {
-							console.log(item2[key1])
-							if (item2[key1]) {
-								var ob = [j, i, i]
-								itemList.push(ob)
-								isPush=true
-							} else {
-								// var ob=[j,i,i]
-								// itemList.push(ob)
-							}
-						});
-						j += 1;
-
-					})
-
-
-					var obj = {
-						tooltip: {
-							trigger: 'item',
-							axisPointer: {
-								type: 'shadow'
-							},
-							formatter: function(params) {
-								console.log(params)
-								var result = params.marker+params.name +'点<br/>' + params.seriesName  + ' 占用 ';
-								
-								return result;
-							}
-						},
-						//silent: true,
-						type: 'custom',
-						"name": item.lockName,
-						// tooltip: {
-						// 	//trigger: 'none',
-						// 	show: false
-						// },
-						itemStyle: {
-							color: colorMap[i % colorMap.length]
-						},
-						renderItem: function(params, api) {
-							var xIndex = api.value(0); // x轴索引
-							var yIndex = api.value(1); // y轴索引
-							var value = api.value(2); // 值
-
-							// 获取颜色
-							var color = colorMap[value % colorMap.length] || '#ffffff';
-
-							// 计算矩形的位置和大小
-							var x = api.coord([xIndex, yIndex])[0];
-							var y = api.coord([xIndex, yIndex])[1];
-							var width = api.size([1, 0])[0];
-							var height = api.size([0, 1])[1];
-
-							return {
-								type: 'rect',
-
-								shape: {
-									x: x - uni.upx2px(25),
-									y: y - uni.upx2px(20),
-									width: width,
-									height: 20,
-								},
-								style: {
-									fill: color
-								}
-							};
-						},
-
-					}
-					obj.data = itemList
-					series.push(obj)
-					i += 1;
-
-				})
-				dataApi[0].timeUseList.forEach(item => {
-
-					Object.keys(item).forEach(key1 => {
-						dataTime.push(key1)
-					});
-
-				})
-
-				var option = {
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						}
-					},
-					grid: {
-						top: 30 + head,
-						left: -10+(isPush?0:20),
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					legend: {
-						data: dataName
-					},
-					xAxis: {
-						type: 'category',
-						data: dataTime
-					},
-					yAxis: {
-						type: 'category',
-
-					},
-					series: series
-				};
-
-
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody4() {
-				var key = "body4pie1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-
-				}
-				myChart.clear()
-				var dataApi = this.body4data.data;
-
-				var data = []
-				var num = 0
-				var sum = 0
-				Object.keys(dataApi).forEach(key1 => {
-					num += dataApi[key1]
-				});
-				var i = 0
-				Object.keys(dataApi).forEach(key1 => {
-					var value = dataApi[key1]
-					if(value!=0){
-						
-					
-						var obj = {
-							value: value,
-							name: key1
-						}
-
-						if (num != 0) {
-							var valueInt = parseInt(value / num * 100)
-							if (valueInt == 0 && value != 0) {
-								valueInt = 1
-							}
-							sum += valueInt;
-
-							if (i == Object.keys(dataApi).length - 1) {
-								if (sum != 100) {
-									valueInt += (100 - sum)
-								}
-							}
-							obj.name += '\n' + (valueInt) + '%'
-						}
-						data.push(obj)
-					}
-					i++;
-				});
-
-
-
-				var option = {
-					
-					grid: {
-						top: 20,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-
-						type: 'pie',
-						radius: ['80%', '50%'],
-						radius: [45, 60],
-						data: data
-
-					}]
-				};
-				console.log(option)
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody3() {
-				var key = "body3bar1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-
-				}
-				var dataApi = this.body3data.data;
-
-				myChart.clear()
-
-				var data1 = []
-				var data2 = [] //useDays
-				var i = 0
-				dataApi[0].timeUseList.forEach(item => {
-
-					Object.keys(item).forEach(key1 => {
-
-						data1.push(key1 + '点')
-						var num = 0
-
-						dataApi.forEach(item2 => {
-							num += item2.timeUseList[i][key1].useDays
-
-						})
-						data2.push(num)
-					});
-					i += 1
-
-				})
-
-				var axisLabel = {
-					rotate: 40,
-					interval: 0,
-					textStyle: {
-						color: "#333"
-					}
-				}
-				if (data1.length < 7) {
-					axisLabel = {
-						interval: 0,
-						textStyle: {
-							color: "#333"
-						},
-					}
-				} else {
-					axisLabel.interval = 0;
-				}
-				var option = {
-					xAxis: {
-						type: 'category',
-						data: data1,
-						axisLabel: axisLabel,
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						},
-						formatter: function(params) {
-							var result = params[0].name + '<br/>';
-							for (var i = 0; i < params.length; i++) {
-								result += params[i].marker+ ' ' + params[i].value + '次<br/>';
-							}
-							return result;
-						}
-					},
-					yAxis: {
-						type: 'value'
-					},
-					grid: {
-						top: 20,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-						itemStyle: {
-							color: "#5A88E5"
-						},
-						data: data2,
-						type: 'bar'
-					}]
-				};
-
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody2() {
-				var key = "body2line1"
-				var myChart = this.echartsList[key];
-				var dataApi = this.body2data.data;
-
-				var head = 20 * (parseInt(dataApi.length / 4)) + 20
-
-
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px((170 + head) * 2)
-					})
-
-				}
-				myChart.clear()
-
-				var data1 = []
-				var series = [];
-
-				dataApi.forEach(item => {
-
-					var obj = {
-						name: item.lockName,
-						//areaStyle: {},
-						// itemStyle: {
-						// 	color: "#BBD4FB"
-						// },
-						label: {
-							show: true,
-							position: 'top',
-							//	color: "#307AF6"
-						},
-						data: [],
-						type: 'line'
-					}
-					if (dataApi.length == 1) {
-						obj.label.color = "#307AF6"
-						obj.areaStyle = {}
-						obj.itemStyle = {
-							color: "#BBD4FB"
-						}
-					}
-
-					item.timeUseList.forEach(item2 => {
-						Object.keys(item2).forEach(key1 => {
-
-							obj.data.push(item2[key1].useRate)
-						});
-					})
-					series.push(obj)
-				})
-				dataApi[0].timeUseList.forEach(item => {
-
-					Object.keys(item).forEach(key1 => {
-						data1.push(key1)
-
-					});
-
-				})
-
-				var axisLabel = {
-					rotate: 40,
-					interval: 0,
-					textStyle: {
-						color: "#333"
-					}
-				}
-				if (data1.length < 7) {
-					axisLabel = {
-						interval: 0,
-						textStyle: {
-							color: "#333"
-						},
-					}
-				} else {
-					axisLabel.interval = 0;
-				}
-				var option = {
-					legend: {},
-					xAxis: {
-						type: 'category',
-						data: data1,
-						axisLabel: axisLabel,
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						},
-
-						formatter: function(params) {
-							var result = params[0].name + '点<br/>';
-							for (var i = 0; i < params.length; i++) {
-								result += params[i].marker+params[i].seriesName + ': ' + params[i].value + '%<br/>';
-							}
-							return result;
-						}
-					},
-					yAxis: {
-						type: 'value'
-					},
-					grid: {
-						top: (20 + head),
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					series: series
-				};
-
-
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody1pie1() {
-				var img = require("@/assets/img/index/pie1-1.svg")
-				var key = "body1pie1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(88),
-						height: uni.upx2px(88)
-					})
-
-				}
-				myChart.clear()
-				var option = {
-
-					series: [{
-						silent: true,
-						type: 'pie',
-						radius: ['70%', '100%'],
-						label: {
-							show: false,
-						},
-
-						data: [{
-								value: this.body1data.data.useNum,
-								itemStyle: {
-									color: '#AAAAAA'
-								}
-							},
-							{
-								value: this.body1data.data.idleNum,
-								itemStyle: {
-									color: '#53B56B'
-								}
-							}
-						]
-					}],
-					grid: {
-						top: 0,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					graphic: [{
-						type: 'image',
-						id: 'logo',
-						left: 'center',
-						top: 'center',
-						style: {
-							image: img, // 图片路径
-							width: uni.upx2px(40),
-							height: uni.upx2px(40)
-						}
-					}]
-				}
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody1pie2() {
-				var img = require("@/assets/img/index/pie1-2.svg")
-
-				var key = "body1pie2"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(88),
-						height: uni.upx2px(88)
-					})
-
-				}
-				myChart.clear()
-				var option = {
-
-					series: [{
-						silent: true,
-						type: 'pie',
-						radius: ['70%', '100%'],
-						label: {
-							show: false,
-						},
-
-						data: [{
-								value: this.body1data.data.loseNum,
-								itemStyle: {
-									color: '#AAAAAA'
-								}
-							},
-							{
-								value: this.body1data.data.normalNum,
-								itemStyle: {
-									color: '#53B56B'
-								}
-							},
-							{
-								value: this.body1data.data.errorNum,
-								itemStyle: {
-									color: '#EF8132'
-								}
-							}
-							//, {
-							// 	value: 735,
-							// 	itemStyle: {
-							// 		color: '#DC4441'
-							// 	}
-							// }
-						]
-					}],
-					grid: {
-						top: 0,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					graphic: [{
-						type: 'image',
-						id: 'logo',
-						left: 'center',
-						top: 'center',
-						style: {
-							image: img, // 图片路径
-							width: uni.upx2px(40),
-							height: uni.upx2px(40)
-						}
-					}]
-				}
-
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody1pie3() {
-				var img = require("@/assets/img/index/pie1-3.svg")
-
-				var key = "body1pie3"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(88),
-						height: uni.upx2px(88)
-					})
-
-				}
-				myChart.clear()
-				var option = {
-
-					series: [{
-						type: 'pie',
-						silent: true, // 禁用交互效果
-
-						radius: ['70%', '100%'],
-						label: {
-							show: false,
-						},
-
-						data: [{
-								value: 735,
-								itemStyle: {
-									color: '#53B56B'
-								}
-							},
-							{
-								value: 735,
-								itemStyle: {
-									color: '#EF8375'
-								}
-							},
-							{
-								value: 735,
-								itemStyle: {
-									color: '#307AF6'
-								}
-							}
-						]
-					}],
-					grid: {
-						top: 0,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-					graphic: [{
-						type: 'image',
-						id: 'logo',
-						left: 'center',
-						top: 'center',
-						style: {
-							image: img, // 图片路径
-							width: uni.upx2px(40),
-							height: uni.upx2px(40)
-						}
-					}]
-				}
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-
-			getfindByOpenId() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.findByOpenId({
-					openId: this.jphelp.getOpenId(),
-				}).then((response) => {
-
-					uni.hideLoading();
-					this.isReady = true;
-					this.loginset(response)
-					try {
-						this.init()
-					} catch (e) {
-
-						uni.showToast({
-							title: e,
-							icon: "none"
-						})
-					}
-
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-					uni.redirectTo({
-						url: '/pages/login/login'
-					})
-				})
-			}
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.color307AF6 {
-		color: #307AF6
-	}
-
-	.color53B56B {
-		color: #53B56B
-	}
-
-	.colorAAAAAA {
-		color: #AAAAAA
-	}
-
-	.colorEF8132 {
-		color: #EF8132
-	}
-
-	.colorDC4441 {
-		color: #DC4441
-	}
-
-	.colorEF8375 {
-		color: #EF8375
-	}
-
-	.body1pie-table {
-		color: rgba(51, 51, 51, 1);
-		font-size: 32rpx;
-		font-weight: bold;
-
-		.tr {
-			.td1 {
-				padding-right: 24rpx;
-			}
-
-			display: flex;
-			margin-bottom: 40rpx;
-
-			.td2 {
-
-				width: 100%;
-
-				.td3 {
-					display: flex;
-
-					.td4 {
-						width: 120px;
-					}
-				}
-			}
-		}
-
-		// td{
-		// 	padding-right: 24rpx;
-
-		// }
-		.body1pie {}
-
-		.body1pie-num {
-			margin: 0 8rpx;
-		}
-	}
-
-	// 导航栏
-	.navbar {
-
-		box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.15);
-		background-color: rgba(22, 119, 255, 1);
-		color: #fff;
-		line-height: 88rpx;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding: 0 32rpx;
-		color: rgba(255, 255, 255, 1);
-		font-size: 36rpx;
-		position: fixed;
-		left: 0;
-		right: 0;
-		top: 0;
-		z-index: 999999;
-		font-weight: bold;
-
-	}
-
-	.main {
-		border-radius: 16px 16px 0px 0px;
-		background: linear-gradient(180deg, rgba(242, 244, 246, 1) 61%, rgba(255, 255, 255, 0) 100%);
-		margin-top: -24rpx;
-		padding: 32rpx;
-
-		.statistics {
-			border-radius: 8px;
-			background-color: rgba(255, 255, 255, 1);
-			box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
-			margin-bottom: 24rpx;
-			padding: 40rpx;
-
-			.title {
-				display: flex;
-				align-items: center;
-				margin-bottom: 32rpx;
-				font-weight: bold;
-
-				.img {
-					width: 36rpx;
-					height: 36rpx;
-					vertical-align: middle;
-					border-radius: 999px;
-
-				}
-
-				.change {
-					display: flex;
-					align-items: center;
-
-					.change-img {
-						width: 32rpx;
-						height: 32rpx;
-						vertical-align: middle;
-					}
-
-					text {
-
-						margin-left: 8rpx;
-					}
-				}
-
-
-				.text {
-					color: rgba(16, 16, 16, 1);
-					font-size: 36rpx;
-					margin-left: 16rpx;
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					width: 100%;
-
-					.tag {
-						border-radius: 4px;
-						border: 1px solid rgba(187, 187, 187, 1);
-						color: rgba(51, 51, 51, 1);
-
-						font-size: 24rpx;
-						padding: 1px 8rpx;
-						margin-left: 8rpx;
-					}
-
-				}
-
-				.change {
-					margin-left: 16rpx;
-					font-size: 24rpx;
-					color: #838383;
-
-				}
-
-				.check-all {
-					margin-left: auto;
-					color: rgba(131, 131, 131, 1);
-					font-size: 24rpx;
-					font-weight: 400;
-				}
-			}
-		}
-
-		.statistics-end {
-			padding-bottom: 0;
-		}
-	}
-
-	.tabs-box2 {
-		margin-bottom: 8rpx;
-		padding-right: 16rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-
-		.tabs-box-other {
-			padding-bottom: 12rpx;
-
-		}
-	}
-
-	.tabs-box {
-		padding: 42rpx 0;
-		margin-top: 66rpx;
-		padding-right: 32rpx;
-		background-color: rgba(22, 119, 255, 1);
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-
-		.tabs {
-			width: 97%;
-		}
-
-		.more {
-			padding-right: 12rpx;
-		}
-
-		.tabs-box-other {
-			padding-bottom: 12rpx;
-			height: 80rpx;
-			line-height: 70rpx;
-			font-size: 30rpx;
-			color: rgb(255, 255, 255);
-		}
-
-	}
-
-	.body6main {
-		.line {
-			display: flex;
-			justify-content: space-between;
-		}
-
-		.abnormal-item:last-of-type {
-			border-bottom: none !important;
-			padding-bottom: 0;
-		}
-
-		.abnormal-item {
-			width: 100%;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 16rpx;
-			border-bottom: 1px solid rgba(245, 245, 245, 1);
-
-
-			.item-title {
-				.level {
-					color: #fff;
-
-					border-radius: 8rpx;
-					font-weight: 400;
-					padding: 4rpx 8rpx;
-					font-size: 22rpx;
-					margin-right: 2px;
-				}
-
-				.level1 {
-					background: red;
-				}
-
-				.level2 {
-					background-color: rgba(255, 123, 0, 1);
-				}
-
-				color: rgba(51, 51, 51, 1);
-				width: 100%;
-
-				.img {
-					width: 32rpx;
-					height: 32rpx;
-					margin-right: 8rpx;
-				}
-
-				.name {
-					color: rgba(51, 51, 51, 1);
-					font-weight: bold;
-					overflow: hidden;
-					white-space: nowrap;
-					text-overflow: ellipsis;
-				}
-
-				.date {
-					color: rgba(119, 119, 119, 1);
-					font-size: 24rpx;
-				}
-			}
-
-			.item-value {
-				text-align: right;
-				display: flex;
-				align-items: center;
-
-				.more {
-					margin-left: 8rpx;
-				}
-
-				.value1 {
-					font-weight: bold;
-					color: rgba(51, 51, 51, 1);
-				}
-
-				.value2 {
-					color: rgba(119, 119, 119, 1);
-					font-size: 24rpx;
-				}
-			}
-		}
-	}
-
-	.body7main {
-		border-radius: 4px;
-		background-color: rgba(245, 245, 245, 1);
-		padding: 32rpx;
-
-		.line {
-			display: flex;
-			display: flex;
-			justify-content: space-between;
-			margin-bottom: 24rpx;
-			.goto{
-				    display: flex;
-				    align-items: center;
-			}
-			.item-body{
-				font-size: 24rpx;
-			}
-			
-			.item-title {
-				color: rgba(51, 51, 51, 1);
-				font-size: 28rpx;
-				    display: flex;
-				    align-items: center;
-					.item-name{
-						margin-right: 8rpx;
-						font-size: 32rpx;
-						font-weight: bold;
-					}
-			}
-			.statusN{
-				border-radius: 4px;
-				font-size: 24rpx;
-				padding: 2rpx 8rpx;
-				margin-right: 8rpx;
-			}
-			.statusN1 {
-				
-				color: rgba(0,185,98,1);
-				border: 1px solid rgba(0,185,98,1);
-			
-			}
-			
-			.statusN0 {
-				color: rgba(51,51,51,1);
-				border: 1px solid rgba(119,119,119,1);
-			
-			}
-			.item-tags {
-				display: flex;
-
-				.tag {
-					border-radius: 4px;
-					white-space: pre;
-					background-color: rgba(39, 177, 72, 1);
-					color: rgba(255, 255, 255, 1);
-					font-size: 20rpx;
-					padding: 2rpx 8rpx;
-					margin-right: 8rpx;
-				}
-
-				.tag1 {
-					background-color: rgba(22, 119, 255, 1);
-				}
-
-				.tag2 {
-					background-color: rgba(129, 97, 255, 1);
-				}
-
-				
-
-				.lockStatus {
-
-					background-color: rgba(153, 153, 153, 1);
-				}
-
-				.lockStatus2 {
-					background-color: #03A9F4
-				}
-			}
-		}
-	}
-	
-	
-	.body8main{
-		
-		.line{
-			    display: flex;
-			    justify-content: space-between;
-			    align-items: center;
-				background: #fff;
-				padding:16rpx 0rpx;
-				border-top: 1px solid rgba(232,232,232,1);
-				.data{
-					.view1{
-						color: rgba(16,16,16,1);
-						font-size: 32rpx;
-						font-weight: bold;
-					}
-					.view3{
-						color: rgba(119,119,119,1);
-						font-size: 28rpx;
-					}
-				}
-				.goto{
-					display: flex;
-					font-size: 32rpx;
-	
-				}
-				.status1{
-					color:#FF5100 
-				}
-				.status2{
-					color: rgba(22,119,255,1);
-	 
-				}
-			
-		}
-		.line:first-child{
-			border-top: 0px ;
-			    padding-top: 0px;
-		}
-	}
+<template>
+	<view>
+		<u-navbar v-show="false" title="首页" title-color="#101010"></u-navbar>
+		<view class="back-blue">
+			<view class="back-color">
+
+			</view>
+		</view>
+		<view class="main_top">
+			<view class="main_top1">
+				<view class="logo_img">
+					<image class="img" src="@/assets/img/logo/logo.png" mode=""></image>
+				</view>
+				<view class="logo_text">
+					<view class="logo_text1">
+						智泊e家
+
+					</view>
+					<view class="logo_text2">
+						巡检端
+					</view>
+				</view>
+			</view>
+			<view class="main_top2">
+				<!-- 消息提醒位置 -->
+			</view>
+		</view>
+		<view class="main_navigation panel">
+			<view class="item-na">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-1.png" mode=""></image>
+				</view>
+				<view class="na-text">
+					故障上报
+				</view>
+			</view>
+			<view class="item-na-b">
+
+			</view>
+			<view class="item-na">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-2.png" mode=""></image>
+				</view>
+				<view class="na-text">
+					申请管理
+				</view>
+			</view>
+			<view class="item-na-b">
+
+			</view>
+			<view class="item-na end">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-3.png" mode=""></image>
+				</view>
+				<view class="na-text">
+					团队管理
+				</view>
+			</view>
+		</view>
+		<view class="main_statuspanel panel">
+			<view class="top-main">
+				<view class="title-main">
+					设备状态
+
+				</view>
+				<view class="goto-main">
+					查看详情
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
+			</view>
+			<view class="body">
+				<view class="pie">
+					<view id="body1pie1" class="body1pie">
+
+					</view>
+				</view>
+				<view class="item-list">
+					<view class="item-status">
+						<view class="num">
+							160
+						</view>
+						<view class="statusN">
+							<view class="statusC status1">
+
+							</view>
+							<view class="statusT">
+								在线
+							</view>
+						</view>
+					</view>
+					<view class="item-status">
+						<view class="num">
+							160
+						</view>
+						<view class="statusN">
+							<view class="statusC status2">
+
+							</view>
+							<view class="statusT">
+								故障
+
+							</view>
+						</view>
+					</view>
+					<view class="item-status">
+						<view class="num">
+							160
+						</view>
+						<view class="statusN">
+							<view class="statusC status3">
+
+							</view>
+							<view class="statusT">
+								离线
+
+							</view>
+						</view>
+					</view>
+					<view class="item-status">
+						<view class="num">
+							160
+						</view>
+						<view class="statusN">
+							<view class="statusC status4">
+
+							</view>
+							<view class="statusT">
+								维护
+
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="main_list1">
+
+		</view>
+
+
+
+		<u-divider border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/index.js'
+
+	import * as echarts from 'echarts';
+
+
+	export default {
+		data() {
+			return {
+				echartsList: {},
+			};
+		},
+		onLoad() {
+
+		},
+		onReady() {
+			this.getbody1pie1()
+		},
+		methods: {
+			getbody1pie1() {
+				var key = "body1pie1"
+				var myChart = this.echartsList[key];
+				if (!myChart) {
+					myChart = echarts.init(document.getElementById(key), null, {
+						width: uni.upx2px(88 * 2),
+						height: uni.upx2px(88 * 2)
+					})
+
+				}
+				myChart.clear()
+				var option = {
+
+					series: [{
+						silent: true,
+						type: 'pie',
+						radius: ['70%', '100%'],
+						label: {
+							show: false,
+						},
+
+						data: [{
+								value: 99,
+								itemStyle: {
+									color: '#AAAAAA'
+								}
+							},
+							{
+								value: 88,
+								itemStyle: {
+									color: '#53B56B'
+								}
+							}
+						]
+					}],
+					grid: {
+						top: 0,
+						left: 0,
+						right: 0,
+						bottom: 0,
+						containLabel: true
+					},
+
+				}
+				myChart.setOption(option);
+				this.echartsList[key] = myChart;
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.back-blue {
+		height: 0px;
+
+		.back-color {
+			height: 656rpx;
+			background: linear-gradient(180deg, rgba(22, 119, 255, 1) 53%, rgba(203, 234, 255, 0) 100%);
+
+		}
+	}
+
+	.top-main {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.title-main {
+			color: rgba(51, 51, 51, 1);
+			font-size: 32rpx;
+			font-weight: bold;
+		}
+
+		.goto-main {
+			color: rgba(131, 131, 131, 1);
+			font-size: 24rpx;
+		}
+	}
+
+	.panel,
+	.main_top {
+		margin: 0 32rpx;
+	}
+
+	.panel {
+		border-radius: 8px;
+		background-color: rgba(255, 255, 255, 1);
+		box-shadow: 0px 4px 8px 0px rgba(22, 119, 255, 0.1);
+	}
+
+	.main_top {
+		margin-top: 32rpx;
+		display: flex;
+		justify-content: space-between;
+
+		.main_top1 {
+			display: flex;
+			align-items: center;
+
+			.logo_img {
+				.img {
+					border-radius: 8px;
+					width: 96rpx;
+					height: 96rpx;
+				}
+
+				margin-right: 16rpx;
+			}
+
+			.logo_text {
+				color: #fff;
+
+				.logo_text1 {
+					font-size: 20px;
+				}
+
+				.logo_text2 {
+					font-size: 16px;
+
+				}
+			}
+		}
+
+		.main_top2 {}
+	}
+
+	.main_navigation {
+		margin-top: 32rpx;
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+		padding: 24rpx 0 20rpx 0;
+
+		.item-na-b {
+			border-left: 1px solid rgba(187, 187, 187, 0.43);
+			height: 70rpx;
+		}
+
+		.item-na {
+			width: 32%;
+			text-align: center;
+
+			.na-img {
+				display: flex;
+				justify-content: center;
+
+				.img {
+					width: 80rpx;
+					height: 80rpx;
+				}
+			}
+		}
+	}
+
+	.main_statuspanel {
+		margin-top: 24rpx;
+		padding: 24rpx;
+
+		.body {
+			display: flex;
+			padding: 24rpx;
+			.item-list {
+				margin-left: 48rpx;
+				display: flex;
+				width: 100%;
+				flex-wrap: wrap;
+
+				.item-status {
+					width: 50%;
+					.num{
+						color: rgba(51,51,51,1);
+						font-size: 36rpx;
+						font-weight: bold;
+					}
+				}
+				.statusN{
+					    display: flex
+					;
+					    align-items: center;
+					.statusC{
+						margin-right: 8rpx;
+						width: 16rpx;
+						height: 16rpx;
+						background-color: rgba(153,153,153,1);
+					}
+					.status1{
+						background-color: rgba(0,185,98,1);
+					}
+					.status2{
+						background-color: rgba(255,123,0,1);
+					}
+					.status3{
+						background-color: rgba(153,153,153,1);
+					}
+					.status4{
+						background-color: rgba(129,97,255,1);
+					}
+				}
+
+			}
+		}
+	}
+
+	.main_list1 {
+		margin-top: 24rpx;
+	}
 </style>

+ 0 - 227
pages/login/findBackPassword.vue

@@ -1,227 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="找回密码" title-color="#101010"></u-navbar>
-		<view class="main">
-			<view class="original-password">
-				<text>手机号码</text><u-input  v-model="form.telephone" style="padding: 0 0 0 20px"  maxlength="11" type="number"  placeholder="请填写手机号"  />
-			</view>
-			<view class="new-password">
-				<text>验证码</text><u-input  v-model="form.verifyCode" style="padding: 0 0 0 20px" maxlength="6" type="number"  placeholder="6位验证码"  />
-				<text class="verification-code" :style="isCodeTipsColor ? 'color: #999999;' : ''" @click="getCode" >{{codeTips}}</text>
-			</view>
-			<view class="new-password">
-				<text>新密码</text><u-input  v-model="form.password" style="padding: 0 0 0 20px" class="password-input" type="password"  placeholder="创建6-16位组合新密码" :password-icon="true" />
-			</view>
-		</view>
-		<u-verification-code :seconds="sendMsgSecond" ref="uCode" @change="codeChange" @end="end" @start="start"
-			change-text="(Xs)">
-		</u-verification-code>
-		<!-- 确认修改 -->
-		<button class="confirm"  @click="retrievePassword" >提交</button>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/user.js'
-	import {
-		checkPhone
-	} from '@/apis/utils'
-	export default {
-		data() {
-			return {
-				form: {
-					verifyCode:"",
-					telephone: '',
-					password: '',
-				},
-				isSendMsgIng: false,
-				isCodeTipsColor: false,
-				sendMsgSecond: 60,
-				codeTips: '',
-			}
-		},
-		onReady() {
-			var time = this.carhelp.get("getvcodetime");
-			if (time) {
-				//this.$refs.uCode.start();
-				var nowtime = new Date().getTime()
-				var differ = (nowtime - time) / 1000
-				if (differ < 2 * 60) {
-					this.sendMsgSecond = 2 * 60 - parseInt(differ)
-					this.isSendMsgIng = true;
-					this.$refs.uCode.start();
-					this.isCodeTipsColor = true;
-				}
-			}
-		},
-		methods: {
-			retrievePassword(){
-				
-				var checkPhoneResult = checkPhone(this.form.telephone);
-				
-				if (!this.form.telephone || checkPhoneResult != true) {
-					uni.showToast({
-						title: checkPhoneResult,
-						icon: "none"
-					})
-					return;
-				}
-				
-				if (!this.form.telephone) {
-					uni.showToast({
-						title: "请输入手机号",
-						icon: "none"
-					})
-					return
-				}
-				if (!this.form.verifyCode) {
-					uni.showToast({
-						title: "请输入验证码",
-						icon: "none"
-					})
-					return
-				}
-				if (!this.form.password) {
-					uni.showToast({
-						title: "请输入新密码",
-						icon: "none"
-					})
-					return
-				}
-				if (this.form.password.length<6||this.form.password.length>16) {
-					uni.showToast({
-						title: "请输入6-16位组合新密码",
-						icon: "none"
-					})
-					return
-				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.retrievePassword(this.form).then((response) => {
-					uni.hideLoading();
-					// this.form.password=""
-					// this.form.oldPassword=""
-					uni.showModal({
-						title:"提示",
-						content:"密码修改成功!",
-						showCancel:false,
-						success() {
-							uni.reLaunch({
-								url:"/pages/login/login"
-							})
-						}
-					})
-					
-					
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-				
-			},
-			codeChange(text) {
-				this.codeTips = text;
-			},
-			//倒计时
-			end() {
-				this.sendMsgSecond = 60;
-				this.isSendMsgIng = false;
-				this.isCodeTipsColor = false;
-			},
-			// 获取验证码
-			getCode() {
-				if (this.$refs.uCode.canGetCode) {} else {
-					uni.showToast({
-						title: '倒计时结束后再发送',
-						icon: "none"
-					})
-					return
-				}
-			
-				var checkPhoneResult = checkPhone(this.form.telephone);
-			
-				if (checkPhoneResult !== true) {
-					uni.showToast({
-						icon: "none",
-						title: checkPhoneResult,
-					})
-					return;
-				}
-				this.$refs.uCode.start();
-				this.isCodeTipsColor = true;
-			},
-			start() {
-				if (!this.isSendMsgIng) {
-					uni.showLoading({
-						title: "加载中",
-						mask: true,
-					})
-					API.getVerifyCode(this.form).then((response) => {
-						uni.hideLoading();
-						this.carhelp.set("getvcodetime", new Date().getTime());
-			
-						if (!"") {
-							//倒计时
-							uni.showToast({
-								icon: "none",
-								title: "发送成功"
-							})
-						} else {
-							uni.showToast({
-								icon: "none",
-								title: "您的验证码已经发送[5分钟有效],请勿重复点击"
-							})
-						}
-					}).catch(error => {
-						uni.showToast({
-							title: error,
-							icon: "none"
-						})
-					})
-				}
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.main{
-		background-color: #fff;
-		margin-top: 24rpx;
-		.original-password,.new-password{
-			line-height: 96rpx;
-			padding:0 32rpx;
-			display: flex;
-			align-items: center;
-			border-bottom: 1px solid rgba(221,221,221,1);
-			::v-deep .u-input__input{
-				height: 96rpx;
-			}
-			
-		}
-		text{
-			display: inline-block;
-			width: 128rpx;
-			color: rgba(51,51,51,1);
-			font-size: 32rpx;
-		}
-		.verification-code{
-			width: 160rpx;
-			color: rgba(22,119,255,1);
-			font-size: 32rpx;
-		}
-	}
-  // 确认修改
-  .confirm{
-	  border-radius: 8px;
-	  background-color: rgba(22,119,255,1);
-	  color: rgba(255,255,255,1);
-	  font-size: 32rpx;
-	  line-height: 88rpx;
-	  margin: 24rpx 32rpx;
-  }
-</style>

+ 1 - 1
pages/login/login.vue

@@ -6,7 +6,7 @@
 		</view>
 		<view  class="logoText">
 			<view>智泊e家</view>
-			<view>运管端</view>
+			<view>巡检端</view>
 			
 			
 

+ 0 - 107
pages/myTab/abnormalInfo.vue

@@ -1,107 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="异常告警记录"></u-navbar>
-		<view class="main">
-			<view class="line line1">
-				<view class="name">
-					告警单号:A100001
-
-				</view>
-				<view class="value value1">
-					电量过低
-				</view>
-			</view>
-			
-			<view class="line">
-				<view class="name">
-					告警地锁
-
-			
-				</view>
-				<view class="value">
-					荆鹏软件园-A01
-
-				</view>
-			</view>
-			<view class="line">
-				<view class="name">
-					告警内容
-
-			
-				</view>
-				<view class="value value2">
-					电量过低 <20%
-
-				</view>
-			</view>
-			<view class="line">
-				<view class="name">
-					地址
-
-			
-				</view>
-				<view class="value">
-					沙市区江津东路附155号
-
-				</view>
-			</view>
-			<view class="line">
-				<view class="name">
-					告警时间
-			
-				</view>
-				<view class="value">
-					2024-02-04 20:00:00
-
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.main{
-		background-color: rgba(255,255,255,1);
-		.line1{
-			box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
-		}
-		.line{
-			    display: flex;
-			    justify-content: space-between;
-			padding:11px 16px;
-			color: rgba(51,51,51,1);
-			font-size: 16px;
-			border-bottom: 1px solid rgba(242,242,242,1);
-			.value{
-				color: rgba(16,16,16,1);
-
-			}
-			.value1{
-				border-radius: 4px;
-				background-color: rgba(255,255,255,1);
-				color: rgba(255,61,0,1);
-				border: 1px solid rgba(255,61,0,1);
-				padding: 2px;
-				font-size: 12px;
-			
-			}
-			.value2{
-				color: rgba(255,61,0,1);
-
-			}
-		}
-	}
-</style>

+ 0 - 273
pages/myTab/abnormalList.vue

@@ -1,273 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="异常告警记录"></u-navbar>
-		<view class="main">
-			<view class="tabs">
-				<u-picker v-model="tabsFrom.show1" :default-selector="[tabsFrom.show1Index]" mode="selector"
-					:range="tabsFrom.selector1" range-key="label" @confirm="selector1confirm"></u-picker>
-				<u-picker-select title="日期选择" v-model="tabsFrom.show2" :defaultTime="tabsFrom.show2Index"
-					:endYear="endYear" mode="time" :params="params" @confirm="selector2confirm"
-					@reset="selector2reset"></u-picker-select>
-
-				<view class="tabsItem" @click="tabsFrom.show1=!tabsFrom.show1">{{tabsFrom.show1Text}} <u-icon
-						name="arrow-up" v-if="tabsFrom.show1"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-				<view class="tabsItem" @click="tabsFrom.show2=!tabsFrom.show2">{{tabsFrom.show2Text}} <u-icon
-						name="arrow-up" v-if="tabsFrom.show2"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-
-				<view class="tabsItem" @click="tabsFrom.show3=!tabsFrom.show3">{{tabsFrom.show3Text}} <u-icon
-						name="arrow-up" v-if="tabsFrom.show3"></u-icon><u-icon v-else name="arrow-down"></u-icon></view>
-			</view>
-
-			<view class="list" v-if="0">
-				<view class="line" @click="gotoUrl('/pages/myTab/abnormalInfo?id=1')">
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index2-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								<view class="text1">软件园</view>
-								<view class="text2">私人车位</view>
-							</view>
-							<view class="value">
-								<view class="text1">2024-02-14 09:00:01</view>
-								<view class="text2">私人车位</view>
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-				<view class="line" @click="gotoUrl('/pages/myTab/abnormalInfo?id=1')">
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index2-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								<view class="text1">软件园</view>
-								<view class="text2">私人车位</view>
-							</view>
-							<view class="value">
-								<view class="text1">软件园</view>
-								<view class="text2">私人车位</view>
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-
-
-
-			</view>
-
-
-
-		</view>
-		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-
-
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/deviceTab.js'
-
-
-	export default {
-
-		data() {
-			return {
-				title: "场站列表",
-				list: [],
-				listForm: {
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				},
-				tabsFrom: {
-					show1: false,
-					show1Index: 0,
-					show2Index: '',
-					show2: false,
-					show1Text: "全部场站",
-					show2Text: "全部类型",
-					show3Text: "全部状态",
-					selector1: [{
-							label: '全部类型',
-							value: '',
-						},
-						{
-							label: '线上充值',
-							value: '1',
-						},
-						{
-							label: '线下充值',
-							value: '2',
-						},
-					]
-				},
-			};
-		},
-		onLoad(op) {
-
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-
-			myLoadmore() {
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-			getList() {
-				return
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-
-				API.floorlockList(this.listForm).then((res) => {
-					var list = []
-
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
-					uni.hideLoading();
-
-				}).catch(error => {
-
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.main {
-		background-color: #fff;
-
-		.line {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 32rpx;
-			border-bottom: 1px solid rgba(245, 245, 245, 1);
-
-			.goto {
-				margin-left: 16rpx;
-			}
-
-			.body {
-				display: flex;
-				align-items: center;
-				width: 100%;
-
-				.imgclass {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 72rpx;
-					height: 72rpx;
-					border-radius: 4px;
-					background-color: rgba(219, 234, 255, 1);
-				}
-
-				.item {
-					margin-left: 16rpx;
-					width: 100%;
-
-					.name {
-						color: rgba(51, 51, 51, 1);
-						font-weight: bold;
-
-						font-size: 28rpx;
-						display: flex;
-						align-items: center;
-						justify-content: space-between;
-
-					}
-
-					.value {
-						color: rgba(119, 119, 119, 1);
-						font-size: 24rpx;
-						display: flex;
-						align-items: center;
-						justify-content: space-between;
-
-					}
-				}
-
-			}
-		}
-
-		.img {
-			width: 48rpx;
-			height: 48rpx;
-		}
-	}
-
-	.tabs {
-		border-bottom: 1px solid rgba(232, 232, 232, 1);
-		height: 96rpx;
-		line-height: 96rpx;
-		background-color: #fff;
-		border-top: 1px solid rgba(241, 241, 241, 1);
-		display: flex;
-		justify-content: space-around;
-
-		.tabsItem {
-			color: rgba(51, 51, 51, 1);
-			font-size: 14px;
-
-		}
-
-	}
-
-	.floating-button {
-		position: fixed;
-		bottom: 120rpx;
-		width: 100%;
-		display: flex;
-
-		justify-content: center;
-
-		.button {
-			border-radius: 50px;
-			background-color: rgba(49, 51, 52, 1);
-			color: rgba(255, 255, 255, 1);
-			font-size: 28rpx;
-			width: 240rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			padding: 12rpx;
-
-			.img {
-				width: 40rpx;
-				height: 40rpx;
-				margin-right: 8rpx;
-			}
-		}
-	}
-</style>

+ 0 - 103
pages/myTab/changePassword.vue

@@ -1,103 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="修改密码" title-color="#101010"></u-navbar>
-		<view class="main">
-			<view class="original-password">
-				<text>原密码	</text><u-input  v-model="form.oldPassword" style="padding: 0 0 0 20px" class="password-input" type="password"  placeholder="填写原密码" :password-icon="true" />
-			</view>
-			<view class="new-password">
-				<text>新密码</text><u-input  v-model="form.password" style="padding: 0 0 0 20px" class="password-input" type="password"  placeholder="创建6-16位组合新密码" :password-icon="true" />
-			</view>
-		</view>
-		<!-- 确认修改 -->
-		<button class="confirm" @click="changePassword">确认修改</button>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/user.js'
-	
-	export default {
-		data() {
-			return {
-				form: {
-					oldPassword: '',
-					password: '',
-				},
-			}
-		},
-		methods: {
-			changePassword(){
-				
-				if (!this.form.oldPassword) {
-					uni.showToast({
-						title: "请输入原密码",
-						icon: "none"
-					})
-					return
-				}
-				
-				if (!this.form.password) {
-					uni.showToast({
-						title: "请输入新密码",
-						icon: "none"
-					})
-					return
-				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.changePassword(this.form).then((response) => {
-					uni.hideLoading();
-					this.form.password=""
-					this.form.oldPassword=""
-					uni.showModal({
-						title:"提示",
-						content:"密码修改成功!",
-						showCancel:false
-					})
-					
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-				
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.main{
-		background-color: #fff;
-		margin-top: 24rpx;
-		.original-password,.new-password{
-			line-height: 96rpx;
-			padding:0 32rpx;
-			display: flex;
-			align-items: center;
-			border-bottom: 1px solid rgba(221,221,221,1);
-			::v-deep.u-input__input{
-				height: 96rpx;
-			}
-		}
-		text{
-			display: inline-block;
-			width: 128rpx;
-			color: rgba(51,51,51,1);
-			font-size: 32rpx;
-		}
-	}
-  // 确认修改
-  .confirm{
-	  border-radius: 8px;
-	  background-color: rgba(22,119,255,1);
-	  color: rgba(255,255,255,1);
-	  font-size: 32rpx;
-	  line-height: 88rpx;
-	  margin: 24rpx 32rpx;
-  }
-</style>

+ 0 - 198
pages/myTab/changePhone.vue

@@ -1,198 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="修改手机号" title-color="#101010"></u-navbar>
-		<view class="main">
-			<view class="original-password">
-				<text>新手机号</text><u-input  v-model="form.telephone" style="padding: 0 0 0 20px"  maxlength="11" type="number"  placeholder="请填写新手机号"  />
-			</view>
-			<view class="new-password">
-				<text>验证码</text><u-input  v-model="form.verifyCode" style="padding: 0 0 0 20px" maxlength="6" type="number"  placeholder="6位验证码"  />
-				<text class="verification-code" :style="isCodeTipsColor ? 'color: #999999;' : ''" @click="getCode" >{{codeTips}}</text>
-			</view>
-			<u-verification-code :seconds="sendMsgSecond" ref="uCode" @change="codeChange" @end="end" @start="start"
-				change-text="(Xs)">
-			</u-verification-code>
-		</view>
-		<!-- 确认修改 -->
-		<button class="confirm" @click="changePhone">确认修改</button>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/user.js'
-	
-	import {
-		checkPhone
-	} from '@/apis/utils'
-	
-	export default {
-		data() {
-			return {
-				form: {
-					telephone: '',
-					verifyCode: '',
-				},
-				isSendMsgIng: false,
-				isCodeTipsColor: false,
-				sendMsgSecond: 60,
-				codeTips: '',
-			}
-		},
-		onReady() {
-			var time = this.carhelp.get("getvcodetime");
-			if (time) {
-				//this.$refs.uCode.start();
-				var nowtime = new Date().getTime()
-				var differ = (nowtime - time) / 1000
-				if (differ < 2 * 60) {
-					this.sendMsgSecond = 2 * 60 - parseInt(differ)
-					this.isSendMsgIng = true;
-					this.$refs.uCode.start();
-					this.isCodeTipsColor = true;
-				}
-			}
-		},
-		methods: {
-			
-			changePhone() {
-				
-				var checkPhoneResult = checkPhone(this.form.telephone);
-				
-				if (!this.form.telephone || checkPhoneResult != true) {
-					uni.showToast({
-						title: checkPhoneResult,
-						icon: "none"
-					})
-					return;
-				}
-				if (!this.form.verifyCode) {
-					uni.showToast({
-						title: "请输入验证码",
-						icon: "none"
-					})
-					return
-				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-			
-				
-			
-				API.changePhone(this.form).then((response) => {
-					uni.hideLoading();
-					
-					this.carhelp.logoff()
-					uni.redirectTo({
-						url: '/pages/login/login'
-					})
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			
-			},
-			codeChange(text) {
-				this.codeTips = text;
-			},
-			//倒计时
-			end() {
-				this.sendMsgSecond = 60;
-				this.isSendMsgIng = false;
-				this.isCodeTipsColor = false;
-			},
-			// 获取验证码
-			getCode() {
-				if (this.$refs.uCode.canGetCode) {} else {
-					uni.showToast({
-						title: '倒计时结束后再发送',
-						icon: "none"
-					})
-					return
-				}
-			
-				var checkPhoneResult = checkPhone(this.form.telephone);
-			
-				if (checkPhoneResult !== true) {
-					uni.showToast({
-						icon: "none",
-						title: checkPhoneResult,
-					})
-					return;
-				}
-				this.$refs.uCode.start();
-				this.isCodeTipsColor = true;
-			},
-			start() {
-				if (!this.isSendMsgIng) {
-					uni.showLoading({
-						title: "加载中",
-						mask: true,
-					})
-					API.getVerifyCode(this.form).then((response) => {
-						uni.hideLoading();
-						this.carhelp.set("getvcodetime", new Date().getTime());
-			
-						if (!"") {
-							//倒计时
-							uni.showToast({
-								icon: "none",
-								title: "发送成功"
-							})
-						} else {
-							uni.showToast({
-								icon: "none",
-								title: "您的验证码已经发送[5分钟有效],请勿重复点击"
-							})
-						}
-					}).catch(error => {
-						uni.showToast({
-							title: error,
-							icon: "none"
-						})
-					})
-				}
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.main{
-		background-color: #fff;
-		margin-top: 24rpx;
-		.original-password,.new-password{
-			line-height: 96rpx;
-			padding:0 32rpx;
-			display: flex;
-			align-items: center;
-			border-bottom: 1px solid rgba(221,221,221,1);
-			::v-deep.u-input__input{
-				height: 96rpx;
-			}
-			
-		}
-		text{
-			display: inline-block;
-			width: 128rpx;
-			color: rgba(51,51,51,1);
-			font-size: 32rpx;
-		}
-		.verification-code{
-			width: 160rpx;
-			color: rgba(22,119,255,1);
-			font-size: 32rpx;
-		}
-	}
-  // 确认修改
-  .confirm{
-	  border-radius: 8px;
-	  background-color: rgba(22,119,255,1);
-	  color: rgba(255,255,255,1);
-	  font-size: 32rpx;
-	  line-height: 88rpx;
-	  margin: 24rpx 32rpx;
-  }
-</style>

+ 0 - 38
pages/myTab/cropImage.vue

@@ -1,38 +0,0 @@
-<template>
-	<view class="content" >
-		<limeClipper :width="options.width" :scale-ratio="2" :is-lock-width="false" :is-lock-height="false" :height="options.height" :image-url="path"  
-			@success="successFn" @cancel="cancel"  />
-	</view>
-</template>
-<script>
-import limeClipper from '@/pages/myTab/as-components/limeClipper/limeClipper.vue';
-export default {
-	components: {limeClipper},
-	data() {return {path: '',options:{"width":600,"height":600}}},
-	onLoad({path,options}) {
-		this.path = path
-		//('path-path-path-path',path);
-		if(options){
-			this.options = JSON.parse(options)
-		}
-	},
-	methods:{
-		successFn(e){
-			this.getOpenerEventChannel().emit('success',e.url)
-			uni.navigateBack()
-		},
-		cancel(){
-			uni.navigateBack()
-		}
-	}
-}
-</script>
-
-<style>
-	.box{
-		width: 400rpx;
-	}
-	.mt{
-		margin-top: -10px;
-	}
-</style>

+ 0 - 153
pages/myTab/customerService.vue

@@ -1,153 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="联系客服" title-color="#101010"></u-navbar>
-		<u-divider :isnone="queryList.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-		<view class="background" v-if="false">
-			<view class="common-problem">
-				<view class="headline">
-					常见问题
-				</view>
-				<!-- 标签 -->
-				<view class="tabs">
-					<u-tabs :list="list" font-size="28" :is-scroll="false" :current="current" @change="change"></u-tabs>
-				</view>
-				<!-- 问题 -->
-				<view class="problems">
-					<u-collapse accordion="false">
-						<u-collapse-item :title="item.head" v-for="(item, index) in itemList" :open="item.open" :key="index">
-							{{item.body}}
-						</u-collapse-item>
-					</u-collapse>
-				</view>
-			</view>
-		</view>
-
-		<u-modal v-model="openModalBl" @confirm="confirmPhone" confirm-text="拨打电话" confirm-color="#606266"
-			:show-cancel-button="true" ref="uModal" :asyncClose="true" title="客服电话" :content="content"
-			:content-style="{fontSize: '24px',color: '#101010'}"></u-modal>
-
-		<!-- 底部 -->
-		<view class="bottom">
-			<button class="service" @click="openModalBl=true">
-				<view>
-					<u-icon name="server-fill"></u-icon>
-				</view>
-				客服电话(7:00-24:00)
-			</button>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				content: "400-8899-619",
-				
-				openModalBl: false,
-				queryList: [],
-				list: [{
-					name: '软件使用'
-				}, {
-					name: '地锁状态及参数'
-				}, {
-					name: '工单相关',
-
-				}],
-				itemList: [{
-					head: "常见问题1",
-					body: "只要我们正确择取一个合适的参照物乃至稍降一格去看待他人,值得赏识的东西便会扑面而来",
-					open: true,
-
-				}, {
-					head: "常见问题2",
-					body: "学会欣赏,实际是一种积极生活的态度,是生活的调味品,会在欣赏中发现生活的美",
-					open: false,
-				}, {
-					head: "常见问题3",
-					body: "但是据说雕刻大卫像所用的这块大理石,曾被多位雕刻家批评得一无是处,有些人认为这块大理石采凿得不好,有些人嫌它的纹路不够美",
-					open: false,
-				}],
-				current: 0
-			}
-		},
-		methods: {
-			confirmPhone() {
-				this.openModalBl = false;
-				uni.makePhoneCall({
-					phoneNumber: this.content //仅为示例
-				});
-			},
-			change(index) {
-				this.current = index;
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.background {
-		position: relative;
-		height: 200px;
-		background: linear-gradient(180deg, rgba(203, 234, 255, 1) 0%, rgba(203, 234, 255, 0) 100%);
-
-		.common-problem {
-			position: absolute;
-			top: 24rpx;
-			left: 32rpx;
-			right: 32rpx;
-			background-color: #fff;
-			border-radius: 8px;
-			padding: 40rpx 32rpx;
-
-			.headline {
-				color: rgba(16, 16, 16, 1);
-				font-size: 36rpx;
-			}
-
-			// 标签
-			.tabs {
-				border-top: 1px solid rgba(232, 232, 232, 1);
-				margin-top: 28rpx;
-				width: 522rpx;
-
-				::v-deep.u-tab-item {
-
-					font-size: 24rpx !important;
-				}
-			}
-
-			.problems {
-				margin-top: 8rpx;
-			}
-		}
-	}
-
-	// 底部
-	.bottom {
-		background-color: #fff;
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		right: 0;
-		padding: 24rpx 32rpx;
-
-		.service {
-			display: flex;
-			justify-content: center;
-			align-items: center;
-
-			color: rgba(255, 255, 255, 1);
-			font-size: 32rpx;
-			border-radius: 50px;
-			background: linear-gradient(-88.46deg, rgba(34, 109, 198, 1) 2.59%, rgba(9, 158, 237, 1) 97.02%);
-		}
-
-		.img {
-			width: 40rpx;
-			height: 40rpx;
-			vertical-align: middle;
-			margin-right: 16rpx;
-		}
-	}
-</style>

+ 0 - 446
pages/myTab/dataUser.vue

@@ -1,446 +0,0 @@
-<template>
-	<view class="jpmain  ">
-		<u-navbar title="个人信息" title-color="#101010"></u-navbar>
-		
-		<u-popup v-model="showMessage" mode="bottom" border-radius="30" >
-			<view class="showMessage">
-				<view class="title">用户昵称</view>
-				<view class="body">
-					<u-input :customStyle="customStyle"
-					placeholder="请填写用户昵称"
-					  v-model="nickName"></u-input>
-				</view>
-				<view class="botton">
-					<u-button @click="showMessage=false"  style="width: 35%;"   shape="square" >取消</u-button>
-					
-					<u-button  @click="updateName" style="width: 60%;" type="primary"  shape="square" >确认</u-button>
-				</view>
-			</view>
-		</u-popup>
-		<u-keyboard ref="uKeyboard"  @change="valChange" @backspace="backspace"
-		:tips="carNumber?carNumber:'请输入车牌号'" @confirm="updateCarNumber()"
-		mode="car" v-model="showCarNumber"  :abc="abc" ></u-keyboard>
-		
-		
-		
-		
-		
-
-		<view class="body">
-			<view class="page">
-			
-				<view class="page-content">
-					<view class="item">
-						<view class="title">
-							头像
-						</view>
-						<view class="goto "  @click="uploadPhoto" >
-							<view class="photo">
-								
-								<img class="img" :src="userInfo.headImg" v-if="userInfo.headImg"  alt="">
-							</view>
-							
-							
-							<u-icon name="arrow-right"  style="margin-left: 8rpx;"  size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-				
-				</view>
-			</view>
-			
-			<view class="page">
-
-				<view class="page-content">
-					<!-- <view class="item">
-						<view class="title">
-							用户昵称
-
-						</view>
-						<view class="goto" @click="showMessage=true,nickName=userInfo.nickName">
-							{{userInfo.nickName?userInfo.nickName:'未设置'}}
-							<u-icon name="arrow-right" style="margin-left: 8rpx;" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view> -->
-					<view class="item">
-						<view class="title">
-							车牌号
-					
-						</view>
-						<view class="goto" @click="carNumberBtn">
-							{{userInfo.carNumber?userInfo.carNumber:'未设置'}}
-							<u-icon name="arrow-right" style="margin-left: 8rpx;" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-					<!-- <view class="item">
-						<view class="title">
-							手机号码
-						</view>
-						<view class="goto">
-							{{userInfo.phone}}
-						</view>
-					</view> -->
-				</view>
-			</view>
-			
-			<view class="page" @click="signOut">
-			
-				<view class="button">
-					退出账号
-				
-				</view>
-			</view>
-			
-			
-			<u-modal v-model="show1" @confirm="confirm" confirm-color="#FF3D00" :show-cancel-button="true" ref="uModal"
-				:asyncClose="true" title="退出账号" content="是否退出当前账号?" :content-style="{color: '#333333'}"></u-modal>
-			
-
-		</view>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/index.js'
-	
-	export default {
-		components: {
-			
-		},
-		data() {
-			return {
-				userInfo:{
-					phone:"",
-					headImg:"",
-					carNumber:"",
-				},
-				showMessage:false,
-				showCarNumber:false,
-				carNumber:"",
-				nickName:"",
-				abc:false,
-				show1:false,
-				customStyle: {
-					"border-radius": "50px",
-					"background-color": 'rgba(242, 244, 246, 1)',
-					padding: "5px 20px",
-					margin: "5px 0 ",
-					
-				},
-				
-			}
-		},
-		onLoad() {
-			this.userInfo = this.jphelp.getPersonInfo()	
-		},
-		onReady() {
-			this.$refs.refLogin.findByOpenId()
-			
-		},
-		methods: {
-			signOut() {
-				this.show1 = true;
-			},
-			confirm() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				userApi.logout().then((res) => {
-					uni.hideLoading();
-					this.show1 = false;
-					this.jphelp.logoff()
-					uni.redirectTo({
-						url: '/pages/login/login'
-					})
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			carNumberBtn(){
-				 
-					this.showCarNumber=1;
-					this.carNumber=this.userInfo.carNumber;
-					if(!this.carNumber){
-						this.carNumber=""
-					}
-					this.valInit(1)
-			},
-		
-			valInit(bl){
-				if(bl){
-					this.abc=this.carNumber.length>0
-				}else{
-					if(this.carNumber.length==1&&this.abc==false){
-						this.abc=true
-					}
-					if(this.carNumber.length==0&&this.abc==true){
-						this.abc=false
-					}
-				}
-				
-			},
-			valChange(val){
-				
-				if(this.carNumber.length>=8){
-					return
-				}
-				this.carNumber+=val
-				this.valInit()
-				this.$forceUpdate()
-			},
-			backspace(){
-				//
-				var value=this.carNumber
-				if(value.length){
-					value = value.substr(0, value.length - 1);
-					
-				}
-				this.carNumber=value
-				this.valInit()
-				
-			
-			},
-			updateCarNumber(){
-				this.userInfo.carNumber=this.carNumber
-				this.showCarNumber=false;
-				this.updatePersonInformation()
-			},
-			
-			updateName(){
-				if(this.nickName){
-					this.userInfo.nickName=this.nickName
-					this.showMessage=false;
-					this.updatePersonInformation()
-				}else{
-					this.showMessage=true;
-					uni.showToast({
-						title: "用户昵称不能为空",
-						icon: "none"
-					})	
-				}
-				
-			},
-			updatePersonInformation(){
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				if(!this.userInfo.nickName){
-					this.userInfo.nickName=""
-				}
-				if(!this.userInfo.headImg){
-					this.userInfo.headImg=""
-				}
-				if(!this.userInfo.carNumber){
-					this.userInfo.carNumber=""
-				}
-				var obj={
-					nickName:this.userInfo.nickName,
-					headImg:this.userInfo.headImg,
-					carNumber:this.userInfo.carNumber,
-				}
-				
-				API.updatePersonInformation(obj).then((res) => {
-					
-					uni.hideLoading();
-					this.$refs.refLogin.findByOpenId()
-				}).catch(error => {
-				
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})		
-				})
-			},
-			findByOpenId(res){
-				this.userInfo = this.jphelp.getPersonInfo()	
-				
-			},
-			saveRecordConfirmMethod(fileData) {
-			
-				var token = this.jphelp.getToken()
-			
-				uni.uploadFile({
-					url: process.jphelp.BASE_URL + "uploadPicture", //仅为示例,非真实的接口地址
-					filePath:fileData,
-					header: {
-						'Authorization': token,
-						//'Content-Type': 'multipart/form-data',
-						'X-Requested-With': 'XMLHttpRequest',
-						//	'content-type': 'multipart/form-data'
-					},
-					name: 'photoFile',
-					formData: {
-						subFolder: "headimg"
-					},
-					success: (uploadFileRes) => {
-						
-						
-						var obj = JSON.parse(uploadFileRes.data)
-						//.log(obj);
-						//this.src = obj.data;
-						this.userInfo.headImg=obj.data;
-						this.updatePersonInformation();
-						// uni.hideLoading();
-					}
-				});
-			},
-			uploadPhoto() {
-				let _self = this;
-			
-				const crop = {
-					quality: 100,
-					width: 600,
-					height: 600,
-					resize: true
-				};
-			
-				// 上传图片
-				uni.chooseImage({
-					count: 1,
-					crop,
-					success: async (res) => {
-						//(res);
-						let tempFile = res.tempFiles[0];
-			
-						var filePath = res.tempFilePaths[0]
-			
-						let fileData = await new Promise((callback) => {
-							uni.navigateTo({
-								url: './cropImage?path=' + filePath +
-									`&options=${JSON.stringify(crop)}`,
-								animationType: "fade-in",
-								events: {
-									success: url => {
-										callback(url)
-									}
-								}
-							});
-						})
-			
-						this.saveRecordConfirmMethod(fileData);
-			
-			
-			
-			
-					}
-				});
-			},
-		}
-	}
-</script>
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-</style>
-<style scoped lang="scss">
-	/* styles.css */
-	.showMessage{
-		padding: 40rpx 40rpx 60rpx 40rpx;
-		.carNumber {
-			background-color: #F2F4F6;
-			padding: 5px 20px;
-			margin: 5px 0 15px 0;
-			height: 90rpx;
-			display: flex;
-			align-items: center;
-			border-radius: 50px;
-			
-		}
-		.carNumber1{
-			color: #bcbcbc;
-		}
-		
-		
-		.title{
-			color: rgba(16,16,16,1);
-			font-size: 36rpx;
-			margin-top: 32rpx;
-			
-			font-weight: bold;
-		}
-		.body{
-			color: rgba(16,16,16,1);
-			font-size: 32rpx;
-			padding-bottom: 66rpx;
-		}
-		.botton{
-			    display: flex;
-				justify-content: space-between;
-		}
-	}
-
-	.body {
-		padding: 32rpx;
-	}
-
-
-
-	
-
-	.page {
-
-		border-radius: 16rpx;
-		background-color: rgba(255, 255, 255, 1);
-		color: rgba(16, 16, 16, 1);
-
-		padding:0 32rpx;
-		margin-bottom: 32rpx;
-		font-size: 32rpx;
-		color: rgb(16, 16, 16);
-
-		
-
-		.page-content {
-			.item:not(:last-child) {
-			  border-bottom:1px solid rgba(232,232,232,1);
-			}
-			.item {
-				padding: 32rpx 0;
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				font-size: 32rpx;
-				.title {
-					display: flex;
-					justify-content: space-between;
-					display: flex;
-					align-items: center;
-					color: rgba(51,51,51,1);
-					
-					
-				}
-				.goto{
-					display: flex;
-					align-items: center;
-					color: rgba(119,119,119,1);
-					
-				}
-				.photo {
-					border-radius: 50px;
-					background-color: rgba(229, 229, 229, 1);
-					height: 80rpx;
-					width: 80rpx;
-					overflow: hidden;
-					  
-					.img {
-						width: 100%;
-						height: 100%;
-					}
-				}
-			}
-		}
-
-
-		.button{
-			text-align: center;
-			color: red;
-			    padding: 32rpx 0;
-		}
-	}
-</style>

+ 0 - 146
pages/myTab/feedbackList.vue

@@ -1,146 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="反馈记录" title-color="#101010"></u-navbar>
-		<view class="record" v-if="0">
-			<view class="title">
-				<view class="classify">
-					功能异常
-				</view>
-				<view class="date">
-					2024-02-04 20:00:00
-				</view>
-			</view>
-			<view class="content">
-				在使用用电监控APP时,发现数据刷新偶有延迟,实时性不足;电量消耗统计与实际存在偏差,准确性有待提升。影响用户体验,建议优化性能并校准数据准确性。
-			</view>
-			
-			<view class="picture">
-				<!-- <image class="img" src="../../assets/img/feedbackPic.png"  mode=""></image> -->
-			</view>
-		</view>
-		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-		
-		<!-- 底部 -->
-		<view class="bottom" v-if='0'>
-			<button class="fill-in">填写反馈</button>
-		</view>
-	</view>
-</template>
-
-<script>
-	
-	export default {
-	
-		data() {
-			return {
-				title: "场站列表",
-				list: [],
-				listForm: {
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				},
-				
-			};
-		},
-		onLoad(op) {
-	
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-	
-			myLoadmore() {
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-			getList() {
-				return
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-	
-				API.floorlockList(this.listForm).then((res) => {
-					var list = []
-	
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
-					uni.hideLoading();
-	
-				}).catch(error => {
-	
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.record{
-		margin-top: 24rpx;
-		background-color: #fff;
-		padding: 32rpx;
-		.title{
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-			.classify{
-				color: rgba(22,119,255,1);
-				font-size: 32rpx;
-			}
-			.date{
-				color: rgba(119,119,119,1);
-			}
-		}
-		.content{
-			color: rgba(51,51,51,1);
-			line-height: 44rpx;
-			margin-top: 16rpx;
-		}
-		.picture{
-			margin-top:24rpx;
-			display: flex;
-			justify-content: space-between;
-			.img{
-				width: 144rpx;
-				height: 144rpx;
-				border-radius: 4px;
-			}
-		}
-	}
-	// 底部
-	.bottom{
-		position: fixed;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		background-color: #fff;
-		padding: 20rpx 32rpx;
-		.fill-in{
-			
-			line-height: 80rpx;
-			border-radius: 4px;
-			background-color: rgba(22,119,255,1);
-			color: rgba(255,255,255,1);
-			font-size: 32rpx;
-		}
-	}
-
-</style>

+ 0 - 130
pages/myTab/feedbackSubmit.vue

@@ -1,130 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="意见反馈" title-color="#101010"></u-navbar>
-		<view class="main">
-			<view class="title">
-				<text>*</text>请选择反馈问题类型:
-			</view>
-			<!-- 类型 -->
-			<view class="classify">
-				<view class="classify-item item-checked">
-					功能异常
-				</view>
-				<view class="classify-item">
-					产品建议
-				</view>
-				<view class="classify-item">
-					安全问题
-				</view>
-				<view class="classify-item">
-					其他问题
-				</view>
-			</view>
-		</view>
-		<!-- 问题描述 -->
-		  <view class="main">
-		  	<view class="title">
-		  		问题描述(必填)
-		  	</view>
-			<view class="textarea">
-				<textarea placeholder="请填写15字以上描述,以便我们更好地为您提供帮助~" ></textarea>
-			</view>
-		  </view>
-		  <!-- 上传照片 -->
-		  <view class="main">
-		  	<view class="title">
-		  		上传图片(最多3张)
-		  	</view>
-			<view class="upload">
-					<u-upload  width="144" height="144" :action="action" :file-list="fileList" max-count="3" ></u-upload>
-			</view>
-		  </view>
-		  <!-- 底部 -->
-		  <view class="bottom">
-		  	<button class="submit">提交反馈</button>
-		  </view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.main{
-		background-color: #fff;
-		padding: 32rpx;
-		margin-bottom: 24rpx;
-		.title{
-			color: rgb(16,16,16);
-			font-size: 32rpx;
-			font-weight: bold;
-			text{
-				color: rgba(255,0,9,1);
-			}
-		}
-		// 类型
-		.classify{
-			display: flex;
-			align-items: center;
-			flex-wrap: wrap;
-			margin-top: 24rpx;
-			.classify-item{
-				padding:0 16rpx;
-				line-height: 66rpx;
-				margin-right: 16rpx;
-				margin-bottom: 16rpx;
-				border-radius: 4px;
-				background-color: rgba(255,255,255,1);
-				color: rgba(16, 16, 16, 1);
-				text-align: center;
-				border: 1px solid rgba(216,223,232,1);
-			}
-			.item-checked{
-				background-color: rgba(22,119,255,1);
-				color: rgba(255,255,255,1);
-			}
-		}
-		.textarea{
-			margin-top: 24rpx;
-			uni-textarea{
-				width: 100%;
-				height: 200rpx;
-			}
-			::v-deep.uni-textarea-placeholder{
-				color: #b2b2b2;
-				font-size: 32rpx;
-			}
-		}
-		.upload{
-			margin-top: 24rpx;
-		}
-	}
-	// 底部
-	.bottom{
-		position: fixed;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		background-color: #fff;
-		padding: 20rpx 32rpx;
-		.submit{
-			
-			line-height: 80rpx;
-			border-radius: 4px;
-			background-color: rgba(22,119,255,1);
-			color: rgba(255,255,255,1);
-			font-size: 32rpx;
-		}
-	}
-
-</style>

+ 0 - 304
pages/myTab/index.vue

@@ -1,304 +0,0 @@
-<template>
-	<view>
-		<view class="gradient-header">
-			<view class="jpback">
-		
-			</view>
-		</view>
-		
-		<view class="body">
-		
-			<view class="page-top" >
-		
-				<view class="name">
-					<view class="photo">
-						<img class="img" :src="userInfo.headImg" v-if="userInfo.headImg" alt="">
-						<img class="img" src="@/assets/img/默认头像.png" v-else alt="">
-						
-						
-					</view>
-					<view class="text">
-						<view class="text1">{{userInfo.realName}}</view>
-						<view class="text2">{{userInfo.userName}}</view>
-					</view>
-				</view>
-				<view class="value">
-					<!-- <u-icon name="arrow-right" size="24" color="#fff"></u-icon> -->
-				</view>
-			</view>
-			<view class="page" v-if="0">
-				<view class="page-main">
-		
-					<view class="item"   @click="gotoUrl('/pages/mylock/myLock')" 
-					v-if="userInfoPlus&&userInfoPlus.myAllList" >
-						<view class="name">{{userInfoPlus.myAllList.length}}</view>
-						<view class="value">车位</view>
-					</view>
-					<view class="item2">
-		
-					</view>
-					<view class="item"  @click="gotoUrl('/pages/mylock/myWhite')"  >
-						<view class="name">{{whiteNum}}</view>
-						<view class="value">白名单</view>
-					</view>
-		
-				</view>
-			</view>
-			<view class="page">
-		
-				<view class="page-content">
-					<view class="item" @click="gotoUrl('/pages/myTab/myMessage')" >
-						<view class="title">
-							<!-- <img class="img" src="@/assets/img/myTab/icon1.svg" alt=""> -->
-							<u-icon size="40" :marginLeft="12"  label-size="32"  name="chat" label="我的消息" ></u-icon>
-							
-						</view>
-						<view class="goto">
-							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-					<view class="item" @click="gotoUrl('/pages/myTab/feedbackList')" >
-						<view class="title">
-							
-							<u-icon name="email"  size="40"  label-size="32"  :marginLeft="12" label="意见反馈"></u-icon>
-							
-						</view>
-						<view class="goto">
-							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-					<view class="item" @click="gotoUrl('/pages/myTab/customerService')" >
-						<view class="title">
-						
-						<u-icon name="server-fill"  size="40"  label-size="32"  :marginLeft="12" label="客服热线"></u-icon>
-							
-						</view>
-						<view class="goto">
-							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-					<view class="item" @click="gotoUrl('/pages/myTab/abnormalList')" >
-						<view class="title">
-						
-						<u-icon name="error-circle"  size="40" label-size="32" :marginLeft="12" label="异常告警"></u-icon>
-							
-						</view>
-						<view class="goto">
-							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-						</view>
-					</view>
-					
-				</view>
-				</view>
-				<view class="page" @click="signOut">
-				
-					<view class="button">
-						退出账号
-					
-					</view>
-				</view>
-				
-				<u-modal v-model="show1" @confirm="confirm" confirm-color="#FF3D00" :show-cancel-button="true" ref="uModal"
-					:asyncClose="true" title="退出账号" content="是否退出当前账号?" :content-style="{color: '#333333'}"></u-modal>
-				
-				
-		
-		</view>
-		<tabbar :current="3"></tabbar>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/user.js'
-	
-	import Tabbar from '@/components/Tabbar.vue'
-	export default {
-		components: {
-			Tabbar
-		},
-		data() {
-			return {
-				show1:false,
-				isReady:false,
-				userInfo:{},
-				userInfoPlus:{
-					whiteList:[],
-					myAllList:[]
-				},
-				whiteNum:0,
-			};
-		},
-		onLoad() {
-			this.userInfo=this.jphelp.getPersonInfo()
-			console.log(this.userInfo)
-		},
-		methods:{
-			signOut() {
-				this.show1 = true;
-			},
-			confirm() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API.logout().then((res) => {
-					uni.hideLoading();
-					this.show1 = false;
-					this.jphelp.logoff()
-					uni.redirectTo({
-						url: '/pages/login/login'
-					})
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-	.body {
-		padding: 32rpx;
-	}
-	
-	.gradient-header {
-		height: 0px;
-	}
-	
-	.jpback {
-		height: 268rpx;
-		background: linear-gradient(180deg, rgba(22, 119, 255, 1) 20%, rgba(121, 177, 255, 1) 100%);
-	}
-	
-	.page-top {
-	
-		color: #fff;
-		display: flex;
-		justify-content: space-between;
-		margin: 48rpx 0;
-	
-		.name {
-	
-			display: flex;
-			align-items: flex-end;
-	
-			.photo {
-				border-radius: 50px;
-				background-color: rgba(229, 229, 229, 1);
-				height: 100rpx;
-				width: 100rpx;
-				overflow: hidden;
-	
-				.img {
-					width: 100%;
-					height: 100%;
-				}
-			}
-	
-			.text {
-				margin-left: 24rpx;
-	
-				.text1 {
-					font-weight: bold;
-					font-size: 40rpx;
-				}
-	
-				.text2 {
-	
-					font-size: 32rpx;
-	
-				}
-			}
-	
-		}
-	
-		.value {
-			margin-top: 24rpx;
-			font-size: 40rpx;
-			font-weight: bold;
-			color: #333333;
-		}
-	}
-	
-	.page {
-	
-		border-radius: 16rpx;
-		background-color: rgba(255, 255, 255, 1);
-		color: rgba(16, 16, 16, 1);
-	
-		padding:0 32rpx;
-		margin-bottom: 32rpx;
-		font-size: 32rpx;
-		color: rgb(16, 16, 16);
-	
-		.page-main {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-			padding:24rpx;
-			.item {
-				.name {
-					font-size: 56rpx;
-					color: #333333;
-					font-weight: bold;
-				}
-	
-				.value {
-					color: rgba(146, 146, 176, 1);
-					font-size: 32rpx;
-				}
-	
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-	
-	
-			}
-	
-			.item2 {
-				border-right: 1px solid rgba(187, 187, 187, 0.43);
-				height: 70rpx;
-			}
-	
-		}
-	
-		.page-content {
-			.item:not(:last-child) {
-			  border-bottom:1px solid rgba(232,232,232,1);
-			}
-			.item {
-				padding: 46rpx 0;
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-	
-				.title {
-					display: flex;
-					justify-content: space-between;
-					display: flex;
-					align-items: center;
-					color: rgba(51,51,51,1);
-					.img {
-						width: 32rpx;
-						height: 32rpx;
-						
-						margin-right: 16rpx;
-					}
-				}
-			}
-		}
-	
-		.button{
-			text-align: center;
-			color: red;
-			    padding: 32rpx 0;
-		}
-	
-	}
-</style>

+ 0 - 215
pages/myTab/myMessage.vue

@@ -1,215 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="我的消息" ></u-navbar>
-		<view class="main"  v-if="0">
-			<view class="line">
-				<view class="imgc img1">
-					<img class="img" src="@/assets/img/myTab/message1.svg">
-				</view>
-				<view class="text">
-					<view class="info"> 
-						<view class="title">
-							故障告警
-
-						</view>
-						<view class="date">
-							02-02
-
-						</view>
-					</view>
-					<view class="message">
-						A01车位地锁于2025-02-02 23:00:01离线断网...
-
-					</view>
-				</view>
-			</view>
-			<view class="line">
-				<view class="imgc img2">
-					<img class="img" src="@/assets/img/myTab/message2.svg">
-				</view>
-				<view class="text">
-					<view class="info"> 
-						<view class="title">
-							故障告警
-			
-						</view>
-						<view class="date">
-							02-02
-			
-						</view>
-					</view>
-					<view class="message">
-						A01车位地锁于2025-02-02 23:00:01离线断网...
-			
-					</view>
-				</view>
-			</view>
-			<view class="line">
-				<view class="imgc img3">
-					<img class="img" src="@/assets/img/myTab/message3.svg">
-				</view>
-				<view class="text">
-					<view class="info"> 
-						<view class="title">
-							故障告警
-			
-						</view>
-						<view class="date">
-							02-02
-			
-						</view>
-					</view>
-					<view class="message">
-						A01车位地锁于2025-02-02 23:00:01离线断网...
-			
-					</view>
-				</view>
-			</view>
-			<view class="line">
-				<view class="imgc img4">
-					<img class="img" src="@/assets/img/myTab/message4.svg">
-				</view>
-				<view class="text">
-					<view class="info"> 
-						<view class="title">
-							故障告警
-			
-						</view>
-						<view class="date">
-							02-02
-			
-						</view>
-					</view>
-					<view class="message">
-						A01车位地锁于2025-02-02 23:00:01离线断网...
-			
-					</view>
-				</view>
-			</view>
-			
-		</view>
-		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
-		
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				list: [],
-				listForm: {
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				},
-			};
-		},
-		onLoad(op) {
-
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-		
-			myLoadmore() {
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-			getList() {
-				return
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-		
-				API.floorlockList(this.listForm).then((res) => {
-					var list = []
-		
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
-					uni.hideLoading();
-		
-				}).catch(error => {
-		
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.main{
-		
-		.line{
-			background-color: rgba(255,255,255,1);
-			border-top: 1px solid  rgba(232,232,232,1);
-			    display: flex;
-			    align-items: center;
-				padding:16px;
-				
-				.text{
-					  .info{
-						  display: flex;
-						  justify-content: space-between;
-						  .title{
-						  
-						  	color: rgba(16,16,16,1);
-						  	font-size: 16px;
-						  font-weight: bold;
-						  }
-						  .date{
-						  	color: rgb(140,140,140);
-						  	font-size: 12px;
-						  }
-						  margin-bottom:  4px;
-					  } 
-					
-				}
-				.message{
-					color: rgba(51,51,51,1);
-					font-size: 12px;
-				}
-				.imgc{
-					display: flex;
-					align-items: center;
-					    justify-content: center;
-					border-radius: 12px;
-					margin-right: 8px;
-					width: 48px;
-					height: 48px;
-					.img{
-						width: 28px;
-						height: 28px;
-					}
-					
-
-				}
-				.img1{
-					background: linear-gradient(180.29deg, rgba(255,214,125,1) 0.9%,rgba(255,150,0,1) 100.4%);
-				}
-				.img2{
-				background: linear-gradient(180.29deg, rgba(255,124,112,1) 0.9%,rgba(255,79,63,1) 100.4%);}
-				.img3{
-				background: linear-gradient(179.2deg, rgba(168,178,238,1) 6.28%,rgba(123,123,240,1) 96.94%);}
-				.img4{
-				background: linear-gradient(180deg, rgba(121,172,255,1) 0%,rgba(57,132,255,1) 100%);}
-		}
-	}
-</style>

+ 0 - 92
pages/myTab/setting.vue

@@ -1,92 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="设置" title-color="#101010"></u-navbar>
-		<u-cell-group>
-			<!-- <u-cell-item title="个人信息" @click="gotoUrl('/pages/mine/personInfos')"></u-cell-item> -->
-			<u-cell-item title="修改密码" @click="gotoUrl('/pages/mine/changePassword')"></u-cell-item>
-			<u-cell-item title="修改手机号" :value="personInfo.phone" @click="gotoUrl('/pages/mine/changePhone')"></u-cell-item>
-			<u-cell-item title="注销账号" @click="gotoUrl('/pages/mine/cancelAccount')"></u-cell-item>
-		</u-cell-group>
-
-		<view class="exit" @click="signOut">
-			退出账号
-		</view>
-
-		<u-modal v-model="show1" @confirm="confirm" confirm-color="#FF3D00" :show-cancel-button="true" ref="uModal"
-			:asyncClose="true" title="退出账号" content="是否退出当前账号?" :content-style="{color: '#333333'}"></u-modal>
-
-	</view>
-
-
-</template>
-
-<script>
-	import * as userApi from '@/apis/pagejs/user.js'
-	// import * as API from '@/apis/pagejs/index.js'
-
-	export default {
-		data() {
-			return {
-				personInfo: {},
-				show1: false,
-			}
-		},
-		onLoad() {
-			if(this.carhelp.getPersonInfoPlus()) {
-				var data = this.carhelp.getPersonInfoPlus();
-				this.personInfo = data.regUser;
-				if(this.personInfo.phone != null) {
-					var phone = this.personInfo.phone;
-					phone = phone.slice(0,3) + '****' + phone.slice(-4);
-					this.personInfo.phone = phone;
-				}
-			}
-			//this.homePage()
-		},
-		methods: {
-			signOut() {
-				this.show1 = true;
-			},
-			confirm() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				userApi.logout().then((res) => {
-					uni.hideLoading();
-					this.show1 = false;
-					this.carhelp.logoff()
-					uni.redirectTo({
-						url: '/pages/login/login'
-					})
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	::v-deep.u-cell_title {
-		color: rgba(51, 51, 51, 1);
-	}
-
-	::v-deep.u-cell__value {
-		color: #777777;
-	}
-
-	;
-
-	.exit {
-		background-color: #fff;
-		margin: 24rpx 0 0 0;
-		text-align: center;
-		line-height: 96rpx;
-		color: rgba(238, 49, 56, 1);
-		font-size: 32rpx;
-	}
-</style>

+ 0 - 326
pages/record/parkingInfo.vue

@@ -1,326 +0,0 @@
-<template>
-	<view>
-			<u-navbar title="停车记录"></u-navbar>
-		<view class="top-step">
-			<u-steps :list="numList" activeColor="#00B962"
-			 mode="number" :current="current" un-active-color="#999999"></u-steps>
-		</view>
-		<view class="top" :class="'top'+current">
-			
-			<view class="view1 viewa">
-				<view class="name">
-					扫码订单
-				</view>
-				<view class="time">
-					{{showTime(info.userParkingRecord.createTime)}}
-				</view>
-			</view>
-			<view class="view1 viewb">
-				<view class="name">
-					落锁使用
-				</view>
-				<view class="time">
-					{{showTime(info.userParkingRecord.startTime)}}
-				</view>
-			</view>
-			<view class="view1 viewc">
-				<view class="name">
-					结束抬锁
-				</view>
-				<view class="time">
-					{{showTime(info.userParkingRecord.endTime)}}
-				</view>
-			</view>
-		</view>
-		<view class="main">
-			<view class="item">
-				<view class="name">
-					停车状态
-
-				</view>
-				<view class="value" :class="'userParkingRecord-status'+info.userParkingRecord.status">
-					{{(info.userParkingRecord.statusN)}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					停车时长
-
-				</view>
-				<view class="value">
-					{{getTime(info.userParkingRecord)}}
-				</view>
-			</view>
-			<view class="item" v-if="info.parkingInfo">
-				<view class="name">
-					停车场
-
-				</view>
-				<view class="value">
-					{{info.parkingInfo.name}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					车位号
-
-				</view>
-				<view class="value">
-					{{info.floorlockInfo.name}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					车位类型
-
-				</view>
-				<view class="value">
-					{{info.floorlockInfo.typeN}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					停车单号
-			
-				</view>
-				<view class="value">
-					{{info.userParkingRecord.orderNo}}
-				</view>
-			</view>
-			
-
-			
-		</view>
-		
-		<view class="main">
-			<view class="item">
-				<view class="name">
-					地锁状态
-
-				</view>
-				<view class="value">
-					{{info.floorlockInfo.lockStatusN}}
-				</view>
-			</view>
-			<view class="item" v-if="0">
-				<view class="name">
-					电池电量
-
-				</view>
-				<view class="value">
-					123
-				</view>
-			</view>
-			
-			
-		</view>
-		
-		<view class="main" v-if="info.recordUser">
-			<view class="item">
-				<view class="name">
-					用户名
-
-				</view>
-				<view class="value">
-					{{info.recordUser.nickName?info.recordUser.nickName:'未填写'}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					用户类型
-
-				</view>
-				<view class="value">
-					停车用户
-
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					联系方式
-
-				</view>
-				<view class="value">
-					{{info.recordUser.phone?info.recordUser.phone:'未填写'}}
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					车牌号
-
-				</view>
-				<view class="value">
-					{{info.recordUser.carNumber?info.recordUser.carNumber:'未填写'}}
-				</view>
-			</view>
-			
-			
-		</view>
-	</view>
-</template>
-
-
-<script>
-	import * as API from '@/apis/pagejs/record.js'
-	import {
-		newDate,
-	
-	} from '@/apis/utils'
-	export default {
-		data() {
-			return {
-				current: 0,
-				numList: [{
-					name: ''
-				}, {
-					name: ''
-				}, {
-					name: ''
-				}],
-				info:{
-					parkingInfo:{},
-					userParkingRecord:{},
-					recordUser:{},
-					floorlockInfo:{}
-				}
-			};
-		},
-		onLoad(op) {
-			this.id = op.id
-			this.getInfo()
-		
-		},
-		methods: {
-			getTime(item){
-				if(item.startTime&&item.endTime){
-					var stime=newDate(item.startTime)
-					var etime=newDate(item.endTime)
-					//etime=new Date()
-					var k=(etime.getTime()-stime.getTime())/1000/60
-					
-					var H=k/60
-					var fen=k%(60)
-					var str="";
-					if(k>60){
-						str+=parseInt(H)+'小时'
-					}
-					if(fen==0&&str!=''){
-						
-					}else{
-						str+=parseInt(fen)+'分钟'
-					}
-					return str
-				}else{
-					return '未结束'
-				}
-			},
-			showTime(time){
-					if(time){
-						return time.substr(5).replace('-','.')
-					}else{
-						return ''
-					}
-			},
-			getInfo() {
-			
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				var obj = {
-					id: this.id
-				}
-			
-				API.parkingRecordDetails(obj).then((res) => {
-					this.info = res.data
-			
-					uni.hideLoading();
-					this.current=this.info.userParkingRecord.status
-					
-					//this.getWhiteList()
-				}).catch(error => {
-			
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-		}
-		
-	}
-</script>
-
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-</style>
-<style lang="scss" scoped>
-	.top-step{
-		margin-top: 40rpx;
-	}
-	.top{
-		margin-bottom: 40rpx;
-		display: flex;
-		    justify-content: space-between;
-			
-			.view1{
-				width: 33%;
-				    text-align: center;
-					.name{
-						color: rgba(51,51,51,1);
-						font-size: 28rpx;
-					}
-					.time{
-						color: rgba(119,119,119,1);
-						font-size: 20rpx;
-					}
-			}
-	}
-	.top0{
-		.viewb,.viewc{
-			.name{
-				color: rgba(119,119,119,1);
-			}
-			
-		}
-	}
-	.top1{
-		.viewc{
-			.name{
-				color: rgba(119,119,119,1);
-			}
-			
-		}
-	}
-	.main{
-		margin-bottom: 24rpx;
-		background: #fff;
-		.item{
-			display: flex;
-			    justify-content: space-between;
-				padding: 20rpx 32rpx;
-				border-top: 1px solid rgba(232,232,232,1);
-				color: rgba(51,51,51,1);
-				font-size: 16px;
-			.name{
-				white-space: pre;
-				
-			}
-			.value{
-				
-			}
-			.userParkingRecord-status0{
-				
-			}
-			.userParkingRecord-status1{
-				color: #FF5100 ;
-			}
-			.userParkingRecord-status2{
-				color: rgba(22,119,255,1);
-			}
-		}
-	}
-</style>

+ 0 - 208
pages/record/parkingRecord.vue

@@ -1,208 +0,0 @@
-<template>
-	
-	<view class="jpmain  ">
-			<u-navbar title="停车记录"></u-navbar>
-		<view class="top" v-if="0">
-			<view class="search">
-				<view class="searchBox">
-					<u-search shape="square" placeholder="搜索停车场" v-model="testName" :show-action="false" :animation="true"></u-search>
-					<u-button type="primary" size="mini" @click="testBtn">搜素</u-button>
-				</view>
-			</view>
-		</view>
-		<view class="body2">
-			<view class="item" v-for="(item,i) in list"
-			 @click="gotoUrl('/pages/record/parkingInfo?id='+item.id)"
-				:key="i">
-				<view class="data">
-					<view class="view1">
-						{{item.parkingName}} {{item.lockName}}
-					</view>
-					<view class="view2">
-						
-					</view>
-					<view class="view3">
-						{{showTime(item.startTime)}}
-						<template v-if="item.status!=0">
-							{{item.endTime?'-'+showTime(item.endTime):'-当前'}}
-						</template>
-						
-					</view>
-				</view>
-				<view class="goto " :class="'status'+item.status">
-					{{item.status==2?getTime(item):''}}
-					{{item.status==1?'使用中':''}}
-					{{item.status==0?'启动中':''}}
-
-					<u-icon name="arrow-right" size="24" style="margin-left: 8rpx;" color="#BBBBBB"></u-icon>
-
-				</view>
-			</view>
-			
-		</view>
-		<u-divider  color="#B6BDC3"  :isnone="list.length==0"
-			>已经到底了</u-divider>
-
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/record.js'
-	import {
-		newDate,
-	
-	} from '@/apis/utils'
-	export default {
-		data() {
-			return {
-				list: [],
-				testName:"",
-				listForm: {
-					name: "",
-					pageIndex: 1,
-					pageSize: 20,
-					recordsTotal: 1,
-				}
-			};
-		},
-		onLoad() {
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
-		},
-		methods: {
-			testBtn(){
-				this.listForm.name=this.testName;
-				this.list=[]
-				this.listForm.pageIndex=1
-				this.getList()
-			},
-			showTime(time){
-					if(time){
-						return time.substr(5).replace('-','.')
-					}else{
-						return ''
-					}
-			},
-			getTime(item){
-				if(item.startTime&&item.endTime){
-					var stime=newDate(item.startTime)
-					var etime=newDate(item.endTime)
-					//etime=new Date()
-					var k=(etime.getTime()-stime.getTime())/1000/60
-					
-					var H=k/60
-					var fen=k%(60)
-					var str="";
-					if(k>60){
-						str+=parseInt(H)+'小时'
-					}
-					if(fen==0&&str!=''){
-						
-					}else{
-						str+=parseInt(fen)+'分钟'
-					}
-					return str
-				}else{
-					return '已完成'
-				}
-			},
-			myLoadmore() {
-				this.listForm.pageIndex += 1;
-				this.getList()
-			},
-
-			getList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-
-				API.parkingRecordList(this.listForm).then((res) => {
-					var list = []
-
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
-					uni.hideLoading();
-
-				}).catch(error => {
-
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			}
-		}
-	}
-</script>
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
-</style>
-<style lang="scss" scoped >
-	::v-deep .u-content{
-		width: 380% !important;
-	}
-	.search {
-	
-		padding: 16rpx 32rpx;
-		background: #fff;
-	
-		.searchBox {
-			display: flex;
-			align-items: center;
-			background: #F2F2F2;
-			padding: 1px 16rpx;
-			border-radius: 8px;
-			    justify-content: space-between;
-		}
-	}
-	.body2{
-		
-		.item{
-			    display: flex;
-			    justify-content: space-between;
-			    align-items: center;
-				background: #fff;
-				padding:24rpx 32rpx;
-				border-top: 1px solid rgba(232,232,232,1);
-				.data{
-					.view1{
-						color: rgba(16,16,16,1);
-						font-size: 36rpx;
-						font-weight: bold;
-					}
-					.view3{
-						color: rgba(119,119,119,1);
-						font-size: 28rpx;
-					}
-				}
-				.goto{
-					display: flex;
-					font-size: 32rpx;
-
-				}
-				.status1{
-					color:#FF5100 
-				}
-				.status2{
-					color: rgba(22,119,255,1);
- 
-				}
-			
-		}
-	}
-</style>

+ 0 - 603
pages/userTab/dataUser.vue

@@ -1,603 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="用户详情"></u-navbar>
-		<view class="gradient-header">
-			<view class="jpback">
-
-			</view>
-		</view>
-		<view class="main">
-			<view class="statistics ">
-				<view class="data1">
-					<view class="imgclass">
-						<img class="img" src="@/assets/img/默认头像.png" mode=""></img>
-
-					</view>
-					<view class="item">
-						<view class="name">
-							<view>软件园</view>
-							<view class="tag">停车用户</view>
-						</view>
-						<view class="value">
-							<image class="img img1" src="@/assets/img/userTab/index1-2.svg" mode=""></image>
-							123111
-						</view>
-						<view class="value">
-							<image class="img img2" src="@/assets/img/userTab/index1-1.svg" mode=""></image>
-							123111
-
-						</view>
-					</view>
-
-
-				</view>
-			</view>
-			<!--end-->
-
-			<view class="statistics ">
-				<view class="data2">
-					<view class="line line1">
-						<view class="item1">
-							累计停车时长
-
-						</view>
-						<view class="item">
-							使用次数
-
-						</view>
-						<view class="item">
-							异常次数
-
-						</view>
-					</view>
-					<view class="line line2">
-						<view class="item1">
-							205h13m
-
-						</view>
-						<view class="item">
-							22
-						</view>
-						<view class="item">
-							2
-						</view>
-					</view>
-
-				</view>
-			</view>
-			<!--end-->
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>常用时段雷达图</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body3">
-						<view class="body3">
-
-							<view id="body3echart" class="body3echart">
-
-							</view>
-
-						</view>
-
-					</jpContent>
-				</view>
-			</view>
-			<!--end-->
-
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>停留时长次数统计</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body4">
-						<view class="body4">
-
-							<view id="body4echart" class="body4echart">
-
-							</view>
-
-						</view>
-
-					</jpContent>
-				</view>
-			</view>
-			<!--end-->
-
-			<view class="statistics ">
-				<view class="title">
-					<view class="icon">
-						<image class="img" src="@/assets/img/circleCopy1@1x.png" mode=""></image>
-					</view>
-					<view class="text">
-						<view>常用停车场</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body5">
-						<view class="body5data">
-							<view class="line">
-
-								<view class="value value1">
-									停车场
-								</view>
-								<view class="value value2">
-									车主身份
-
-								</view>
-								<view class="value value3">
-									使用次数
-
-								</view>
-								<view class="value value4">
-									操作
-
-								</view>
-
-							</view>
-							<view class="line line2">
-
-								<view class="value value1">
-									荆鹏软件园荆鹏软件园荆鹏软件园
-								</view>
-								<view class="value value2">
-									车位所有人
-
-								</view>
-								<view class="value value3">
-									22
-
-								</view>
-								<view class="value value4">
-									查看
-								</view>
-
-							</view>
-							<view class="line line2">
-
-								<view class="value value1">
-									荆州院子
-								</view>
-								<view class="value value2">
-									白名单用户
-
-								</view>
-								<view class="value value3">
-									11
-
-								</view>
-								<view class="value value4">
-									查看
-								</view>
-
-							</view>
-
-
-						</view>
-
-					</jpContent>
-				</view>
-			</view>
-			<!--end-->
-
-			<u-divider border-color="#CFD2D5">已经到底了</u-divider>
-
-		</view>
-	</view>
-</template>
-
-<script>
-	import jpContent from '@/components/JPcontent.vue'
-	import * as echarts from 'echarts';
-	export default {
-		components: {
-
-			jpContent
-		},
-		data() {
-			return {
-				echartsList: {},
-				jpContentMap: {
-					body1: 2,
-					body2: 2,
-					body3: 2,
-					body4: 2,
-					body5: 2,
-					body6: 2,
-					body7: 2,
-					body8: 2,
-					body9: 2,
-					body10: 2,
-				},
-			};
-		},
-		onLoad() {
-		
-		},
-		onReady() {
-			this.init();
-		},methods: {
-			init() {
-				
-				this.getbody3()
-				this.getbody4()
-			
-			},
-			getbody4(){
-				var key = "body4echart"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-							
-				}
-				myChart.clear()
-							
-				var data1 = ['0.5小时', '2小时', '2-6小时','6小时以上']
-				
-				var option = {
-					xAxis: {
-						
-						  type: 'category',
-						
-						 data: data1,
-					
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						}
-					},
-					yAxis: {
-						type: 'value',
-						
-						
-					},
-					grid: {
-						top: 20,
-						left: 0,
-						right: 20,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-						label: {
-							show: true,
-							position: 'top',
-							color: "#307AF6"
-						},
-						itemStyle: {
-							color: "#5A88E5"
-						},
-						data: [120, 200, 150,22],
-						type: 'bar'
-					}]
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-			getbody3() {
-				var key = "body3echart"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(300 * 2),
-						height: uni.upx2px(170 * 2)
-					})
-			
-				}
-				myChart.clear()
-			
-				var data1 = ['0-7点', '7-14点', '14-24点']
-				
-				var option = {
-					xAxis: {
-						
-						type: 'value',
-						 boundaryGap: [0, 0.01]
-					
-					},
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							type: 'shadow'
-						}
-					},
-					yAxis: {
-						
-						  type: 'category',
-						data: data1,
-					},
-					grid: {
-						top: 20,
-						left: 0,
-						right: 20,
-						bottom: 0,
-						containLabel: true
-					},
-					series: [{
-						label: {
-							show: true,
-							position:'right' ,
-							color: "#307AF6"
-						},
-						itemStyle: {
-							color: "#5A88E5"
-						},
-						data: [120, 200, 150],
-						type: 'bar'
-					}]
-				};
-				myChart.setOption(option);
-				this.echartsList[key] = myChart;
-			},
-		}
-		
-	}
-</script>
-
-<style lang="scss">
-	.gradient-header {
-		height: 0px;
-	}
-
-	.jpback {
-		height: 268rpx;
-		background: linear-gradient(180deg, rgba(203, 234, 255, 1) 0%, rgba(203, 234, 255, 0) 100%);
-	}
-
-	.main {
-
-		padding: 32rpx;
-
-		.no_statistics {
-			margin-bottom: 24rpx;
-		}
-
-		.statistics {
-			border-radius: 8px;
-			background-color: rgba(255, 255, 255, 1);
-			box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
-			margin-bottom: 24rpx;
-			padding: 40rpx;
-
-			.title {
-				display: flex;
-				align-items: center;
-				margin-bottom: 32rpx;
-				font-weight: bold;
-
-				.img {
-					width: 36rpx;
-					height: 36rpx;
-					vertical-align: middle;
-					border-radius: 999px;
-
-				}
-
-				.change {
-					display: flex;
-					align-items: center;
-
-					.change-img {
-						width: 32rpx;
-						height: 32rpx;
-						vertical-align: middle;
-					}
-
-					text {
-
-						margin-left: 8rpx;
-					}
-				}
-
-
-				.text {
-					color: rgba(16, 16, 16, 1);
-					font-size: 36rpx;
-					margin-left: 16rpx;
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					width: 100%;
-
-					.tag {
-						border-radius: 4px;
-						border: 1px solid rgba(187, 187, 187, 1);
-						color: rgba(51, 51, 51, 1);
-
-						font-size: 24rpx;
-						padding: 1px 8rpx;
-						margin-left: 8rpx;
-					}
-
-				}
-
-				.change {
-					margin-left: 16rpx;
-					font-size: 24rpx;
-					color: #838383;
-
-				}
-
-				.check-all {
-					margin-left: auto;
-					color: rgba(131, 131, 131, 1);
-					font-size: 24rpx;
-				}
-			}
-		}
-	}
-
-	.data1 {
-		display: flex;
-
-		.imgclass {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 160rpx;
-			height: 160rpx;
-
-			.img {
-				width: 160rpx;
-				height: 160rpx;
-			}
-
-			border-radius: 4px;
-			background-color: #E5E5E5;
-		}
-
-		.item {
-			margin-left: 16rpx;
-			display: flex;
-			flex-direction: column;
-			justify-content: space-around;
-
-			.name {
-				font-size: 40rpx;
-				color: rgba(16, 16, 16, 1);
-				display: flex;
-				align-items: center;
-
-				.tag {
-					border-radius: 4px;
-					background-color: rgba(255, 255, 255, 1);
-					color: rgba(22, 119, 255, 1);
-					font-size: 12px;
-					border: 1px solid rgba(22, 119, 255, 1);
-					padding: 1px 2px;
-					margin-left: 8rpx;
-				}
-			}
-
-			.value {
-				display: flex;
-				align-items: center;
-				color: rgba(119, 119, 119, 1);
-				font-size: 28rpx;
-
-				.img {
-					width: 32rpx;
-					height: 32rpx;
-					margin-right: 8rpx;
-				}
-
-				.img1 {}
-
-				.img2 {}
-			}
-		}
-	}
-
-	.data2 {
-		.line {
-			display: flex;
-
-			.item1 {
-				width: 50%;
-			}
-
-			.item {
-				width: 25%;
-			}
-
-		}
-
-		.line1 {
-
-			color: rgba(51, 51, 51, 1);
-
-			font-size: 16px;
-		}
-
-		.line2 {
-			color: rgba(16, 16, 16, 1);
-			font-weight: bold;
-			font-size: 24px;
-		}
-	}
-
-	.body5data {
-		
-		.line {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-
-			.value {
-				 
-				padding: 16rpx 4rpx;
-				color: rgba(51, 51, 51, 1);
-
-
-			}
-			.value1{
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
-			}
-			.value1{
-				
-				width: 120px;
-				padding-left: 16rpx;
-			}
-			.value2{
-				width: 75px;
-			}
-			.value3{
-				width: 60px;
-				text-align: center;
-			}
-			.value4{
-				width: 40px;
-				
-
-			}
-
-			 
-		}
-		.line2{
-			.value4{
-				
-				color: #1677FF;
-			
-			}
-		}
-		/* 隔行变色: 偶数行设置背景色 */
-		.line:nth-child(odd) {
-			background-color: #F2F2F2;
-			/* 偶数行 */
-		}
-
-		.line:nth-child(even) {
-			background-color: #FFFFFF
-				/* 奇数行 */
-		}
-
-	}
-</style>

+ 0 - 159
pages/userTab/index.vue

@@ -1,159 +0,0 @@
-<template>
-	<view>
-		<u-navbar title="用户管理" :is-back="0"></u-navbar>
-		<view class="main">
-			<view class="search">
-				<view class="searchBox">
-					<u-search shape="square" 
-					 placeholder="搜索姓名/车牌/手机号" :animation="true"></u-search>
-					<u-button type="primary" size="mini">搜素</u-button>
-				</view>
-			</view>
-
-			<view class="list">
-				<view class="line" @click="gotoUrl('/pages/userTab/dataUser?id=1')">
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/默认头像.png" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								软件园
-							</view>
-							<view class="value">
-								<image class="img img1" src="@/assets/img/userTab/index1-2.svg" mode=""></image>
-								123111
-								<image class="img img2" src="@/assets/img/userTab/index1-1.svg" mode=""></image>
-								123111
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-
-				<view class="line">
-					<view class="body">
-						<view class="imgclass">
-							<image class="img" src="@/assets/img/deviceTab/index1-1.svg" mode=""></image>
-						</view>
-						<view class="item">
-							<view class="name">
-								软件园
-							</view>
-							<view class="value">
-								占用9<span>/</span>
-								占用9<span>/</span>
-								共9台
-							</view>
-						</view>
-					</view>
-					<view class="goto">
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-
-			</view>
-		</view>
-		<u-divider border-color="#CFD2D5">已经到底了</u-divider>
-
-		<tabbar :current="2"></tabbar>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/userTab.js'
-
-	import Tabbar from '@/components/Tabbar.vue'
-	export default {
-		components: {
-			Tabbar
-		},
-		data() {
-			return {
-				title: "场站列表"
-			};
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.main {
-		background-color: #fff;
-
-		.line {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 32rpx;
-			border-bottom: 1px solid rgba(245, 245, 245, 1);
-
-			.body {
-				display: flex;
-				align-items: center;
-
-				.imgclass {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 72rpx;
-					height: 72rpx;
-					border-radius: 4px;
-					background-color: #E5E5E5;
-				}
-
-				.item {
-					margin-left: 16rpx;
-
-					.name {
-
-						font-size: 36rpx;
-						color: rgba(16, 16, 16, 1);
-
-
-					}
-
-					.value {
-						display: flex;
-						align-items: center;
-						color: rgba(119, 119, 119, 1);
-						font-size: 24rpx;
-
-						.img {
-							width: 32rpx;
-							height: 32rpx;
-							margin-right: 8rpx;
-						}
-
-						.img1 {}
-
-						.img2 {
-							margin-left: 20rpx;
-						}
-					}
-				}
-
-			}
-		}
-
-		.img {
-			width: 48rpx;
-			height: 48rpx;
-		}
-	}
-
-	.search {
-
-		padding: 16rpx 32rpx;
-		border-bottom: 1px solid whitesmoke;
-
-		.searchBox {
-			display: flex;
-			align-items: center;
-			background: #F2F2F2;
-			padding: 1px 16rpx;
-			border-radius: 8px;
-		}
-	}
-</style>