Przeglądaj źródła

接口联调, 团队接口, 上报接口

zhengkaixin 2 tygodni temu
rodzic
commit
35c6fdc219

+ 1 - 1
apis/pagejs/index.js

@@ -5,7 +5,7 @@ import jphelp from '@/apis/utils/mixin.js'
 
 
 export function findByOpenId(data) {
-	var url='/mobile/sysUser/findByOpenId';
+	var url='/mobile/inspectionUser/findByOpenId';
 	if(!data){
 		data={}
 	}

+ 3 - 3
apis/pagejs/pagejsIndex.js

@@ -2,7 +2,7 @@ import request from '@/apis/utils/request'
 
 
 export function errList(data) {
-	var url='/mobile/floorlockError/errList';
+	var url='/mobile/inspectionError/errList';
 	return request({
 		method: 'post',
 		data: data,
@@ -11,7 +11,7 @@ export function errList(data) {
 }
 
 export function findByOpenId(data) {
-	var url='/mobile/sysUser/findByOpenId';
+	var url='/mobile/inspectionUser/findByOpenId';
 	 
 	if(!data){
 		data={}
@@ -26,7 +26,7 @@ export function findByOpenId(data) {
 
 
 export function floorStatus(data) {
-	var url='/mobile/inspection/floorStatus';
+	var url='/mobile/inspectionUser/deviceStatus';
 	return request({
 		method: 'post',
 		data: data,

+ 11 - 0
apis/pagejs/pagesStation.js

@@ -0,0 +1,11 @@
+import request from '@/apis/utils/request'
+
+
+export function userStationList(data) {
+	var url='/mobile/inspectionUser/userStationList';
+	return request({
+		method: 'post',
+		data: data,
+		url: url
+	})
+}

+ 28 - 6
apis/pagejs/pagesTask.js

@@ -3,8 +3,20 @@
 import request from '@/apis/utils/request'
 
 
+
 export function errList(data) {
-	var url='/mobile/floorlockError/errList';
+	var url='/mobile/inspectionError/errList';
+	return request({
+		method: 'post',
+		data: data,
+		url: url
+	})
+}
+
+
+
+export function teamMembers(data) {
+	var url='/mobile/inspectionUser/teamMembers';
 	return request({
 		method: 'post',
 		data: data,
@@ -13,8 +25,8 @@ export function errList(data) {
 }
 
 
-export function findFloorLock(data) {
-	var url='/mobile/floorlock/findFloorLock';
+export function userStationList(data) {
+	var url='/mobile/inspectionUser/userStationList';
 	return request({
 		method: 'post',
 		data: data,
@@ -23,9 +35,19 @@ export function findFloorLock(data) {
 }
 
 
+// export function findFloorLock(data) {
+// 	var url='/mobile/floorlock/findFloorLock';
+// 	return request({
+// 		method: 'post',
+// 		data: data,
+// 		url: url
+// 	})
+// }
+
+
 
 export function addErr(data) {
-	var url='/mobile/floorlockError/addErr';
+	var url='/mobile/inspectionError/addErr';
 	return request({
 		method: 'post',
 		data: data,
@@ -36,7 +58,7 @@ export function addErr(data) {
 
 
 export function errDetails(data) {
-	var url='/mobile/floorlockError/errDetails';
+	var url='/mobile/inspectionError/errDetails';
 	return request({
 		method: 'post',
 		data: data,
@@ -45,7 +67,7 @@ export function errDetails(data) {
 }
 
 export function updateErr(data) {
-	var url='/mobile/floorlockError/updateErr';
+	var url='/mobile/inspectionError/updateErr';
 	return request({
 		method: 'post',
 		data: data,

+ 3 - 3
apis/pagejs/pagesTeam.js

@@ -2,8 +2,8 @@
 import request from '@/apis/utils/request'
 
 
-export function userList(data) {
-	var url='/mobile/sysUser/userList';
+export function teamMembers(data) {
+	var url='/mobile/inspectionUser/teamMembers';
 	return request({
 		method: 'post',
 		data: data,
@@ -12,7 +12,7 @@ export function userList(data) {
 }
 
 export function adduser(data) {
-	var url='/mobile/sysUser/adduser';
+	var url='/mobile/inspectionUser/teamMembers';
 	return request({
 		method: 'post',
 		data: data,

+ 3 - 3
apis/pagejs/user.js

@@ -1,6 +1,6 @@
 import requestWhite from '@/apis/utils/requestWhite'
 export function login(data) {
-	var url='/mobile/sysUser/login';
+	var url='/mobile/inspectionUser/login';
 	
 	return requestWhite({
 		method: 'POST',
@@ -10,7 +10,7 @@ export function login(data) {
 }
 
 export function findByOpenId(data) {
-	var url='/mobile/sysUser/findByOpenId';
+	var url='/mobile/inspectionUser/findByOpenId';
 	 
 	if(!data){
 		data={}
@@ -25,7 +25,7 @@ export function findByOpenId(data) {
 
 
 export function logout(data) {
-	var url='/mobile/sysUser/logout';
+	var url='/mobile/inspectionUser/logout';
 	
 	return requestWhite({
 		method: 'get',

+ 1 - 1
apis/utils/init.js

@@ -44,7 +44,7 @@ var openId = jphelp.getOpenId();
 			return
 		}
 
-		var loginurl = "/mobile/sysUser/findByOpenId"
+		var loginurl = "/mobile/inspectionUser/findByOpenId"
 	
 		var data= {
 				openId:thisopenId,

+ 1 - 1
apis/utils/request.js

@@ -25,7 +25,7 @@ const request = (options) => {
 	}
 	
 	return new Promise((resolve, reject) => {
-		 var loginurl="/mobile/sysUser/findByOpenId"
+		 var loginurl="/mobile/inspectionUser/findByOpenId"
 		 var data= {
 				openId:openId,
 			roleName:'XJ'

+ 6 - 0
assets/img/team/index0.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" width="20" height="20" style="" filter="none">
+    
+    <g>
+    <path d="M25.333 9.333h6.667v2.667h-6.667v-2.667zM22.667 16h9.333v2.667h-9.333v-2.667zM26.667 22.667h5.333v2.667h-5.333v-2.667zM2.667 29.333c0-5.891 4.776-10.667 10.667-10.667s10.667 4.776 10.667 10.667v0h-2.667c0-4.418-3.582-8-8-8s-8 3.582-8 8v0h-2.667zM13.333 17.333c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zM13.333 14.667c2.947 0 5.333-2.387 5.333-5.333s-2.387-5.333-5.333-5.333-5.333 2.387-5.333 5.333 2.387 5.333 5.333 5.333z" fill="rgba(255,255,255,1)"></path>
+    </g>
+  </svg>

+ 4 - 4
config/.env.dev.js

@@ -3,11 +3,11 @@ const UNI_APP = {
 	//BASE_URL: 'http://36.134.122.108/railroad-server/',
 
 	
-	BASE_URL: 'https://youdian-test.hbjp.com.cn/floorlock-server/',
-	//##https://youdian-test.hbjp.com.cn/floorlock-portal/#/home
+	BASE_URL: 'https://youdian.hbjp.com.cn/charging-station-server/',
+	//
+	//BASE_URL: 'http://charging.xiaoxinda.com/charging-station-test/',
+	BASE_URL: 'https://youdian-test.hbjp.com.cn/charging-station-test/',
 	
-	BASE_URL:"https://zbyj.hbjp.com.cn/floorlock-server/",
-	//BASE_URL: 'https://dgj.jzrccs.com/electric-manager-api/',
 	
 	//BASE_URL:'http://192.168.77.162:8081/electric-manager-api/', //sz
 	

+ 3 - 3
config/.env.prod.js

@@ -1,9 +1,9 @@
 const UNI_APP = {  	
 	ProjectName :"优电联盟",
 	//BASE_URL: 'http://36.134.122.108/railroad-server/',
-	BASE_URL: 'https://youdian-test.hbjp.com.cn/floorlock-server/',
-	BASE_URL:"https://zbyj.hbjp.com.cn/floorlock-server/",
-	//BASE_URL: 'https://dgj.jzrccs.com/electric-manager-api/',
+	
+	BASE_URL: 'https://youdian.hbjp.com.cn/charging-station-server/',
+	
 	
 	NODE_ENV :"prod",
 	SIMPLE_RUN:false,

+ 3 - 2
config/.env.test.js

@@ -1,8 +1,9 @@
 const UNI_APP = {  
 	ProjectName :"优电联盟",
 	//BASE_URL: 'http://36.134.122.108/railroad-server/',
-	BASE_URL: 'https://youdian-test.hbjp.com.cn/electric-manager-api/', //test
-	BASE_URL: 'https://dgj.hbjp.com.cn/electric-manager-api/',
+	
+	BASE_URL: 'https://youdian-test.hbjp.com.cn/charging-station-test/',
+	
 	NODE_ENV :"test",
 	SIMPLE_RUN:false,
 	BACK_URL:"https://xpgj.hbjp.com.cn/prod/jp-property-platform-test/index/#/master/",

+ 1 - 1
pages.json

@@ -118,7 +118,7 @@
 			}
 		},
 		{
-			"path" : "pages/task/selectLock",
+			"path" : "pages/task/selectStation",
 			"style" : 
 			{
 				"navigationBarTitleText" : ""

Plik diff jest za duży
+ 477 - 469
pages/index/index.vue


+ 60 - 60
pages/inspection/add.vue

@@ -6,7 +6,7 @@
 				@confirm="completionTimeConfirm" :default-time="taskInfo.completionTime"
 				 :params="params"></u-picker>
 
-			
+			
 			<view class="list" >
 				<view class="item">
 					荆鹏充电站
@@ -28,7 +28,7 @@
 				 
 			</view>
 			
-			
+			
 			<view class="list" >
 				<view class="item "  >
 					巡检操作记录
@@ -59,7 +59,7 @@
 						
 					</view>
 				</view>
-				
+				
 				<view class="item item-plus" style="    align-items: center;"  >
 					<view class="name">
 						处理时间
@@ -82,19 +82,19 @@
 					</view>
 				</view>
 				
-				
-				
-				<view class="item item-plus" v-if="0"  >
-					<view class="name">
+				
+				
+				<view class="item item-plus" v-if="0"  >
+					<view class="name">
 						现场照片
-
-				
-					</view>
-					<view class="value" v-if="floorlockErrorRecord.status==0" >
+
+				
+					</view>
+					<view class="value" v-if="floorlockErrorRecord.status==0" >
 						<u-upload name="photoFile"
 								ref="uUpload"
 								 :form-data="formData" :header="header" :action="action"
-								  :file-list="listPic" ></u-upload>
+								  :file-list="listPic" ></u-upload>
 					</view>
 					<view class="value"  v-else >
 						
@@ -103,18 +103,18 @@
 						 :key="i"
 						 :src="item" mode=""></img>
 						 
-					</view>
+					</view>
 				</view>
-				
-			</view>
+				
+			</view>
 			
-			
-			<view class="floating-button"  v-if="floorlockErrorRecord.status==0" >
-				<view class="button"  @click="submit" >
-					
-					提交
-				</view>
-				
+			
+			<view class="floating-button"  v-if="floorlockErrorRecord.status==0" >
+				<view class="button"  @click="submit" >
+					
+					提交
+				</view>
+				
 			</view>
 	</view>
 </template>
@@ -367,7 +367,7 @@
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss">
 	.jpmain{padding-bottom: 120rpx;}
 .list{
 		background-color: rgba(255,255,255,1);
@@ -375,7 +375,7 @@
 
 		margin: 20rpx ;
 		.item:first-child {
-		  border-bottom:1px solid rgba(232,232,232,1);
+		  border-bottom:2rpx solid rgba(232,232,232,1);
 		  font-size: 16px;
 			font-weight: bold;
 		}
@@ -401,7 +401,7 @@
 			}
 			.valueclock{
 				width: 100%;
-				border-radius: 4px;
+				border-radius: 8rpx;
 				   padding: 0 8px;
 				   height: 64rpx;
 				line-height: 64rpx;
@@ -419,61 +419,61 @@
 						width: 40rpx;
 						height: 40rpx;
 						
-					}
-					.textarea{
-						background-color: rgba(241,242,245,1);
-						width: 100%;
-						border-radius: 4px;
-					}
+					}
+					.textarea{
+						background-color: rgba(241,242,245,1);
+						width: 100%;
+						border-radius: 8rpx;
+					}
 					.typeN{
 						font-size: 24rpx;
 						margin-right: 8rpx;
 						display: flex;
 						align-items: center;
-							border-radius: 4px;
-							padding: 2px 8rpx;
+							border-radius: 8rpx;
+							padding: 4rpx 8rpx;
 							color: #fff;
 					}
 					.typeN1{
 						background-color:#1677ff;
-						//border: 1px solid #1677ff;
+						//border: 2rpx solid #1677ff;
 					}
 					.typeN2{
 						background-color:#19be6b;
-						//border: 1px solid #19be6b;
+						//border: 2rpx solid #19be6b;
 						 
 					}
 			}
-		}
+		}
 		
 		
-	}
+	}
 	.textareaclass{
 		padding:16rpx
-	}
+	}
 	.floating-button {
-		z-index: 999;
-		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;
-			}
+		z-index: 999;
+		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;
+			}
 	}
 	.viewImg{
 		width: 160rpx;

+ 72 - 72
pages/inspection/list.vue

@@ -139,7 +139,7 @@
 		methods: {
 			gotoSelectLock(){
 				uni.navigateTo({
-				  url: '/pages/task/selectLock?isAll=1',
+				  url: '/pages/task/selectStation?isAll=1',
 				  events: {
 				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
 				    acceptDataFromOpenerPage: (item)=>{
@@ -229,99 +229,99 @@
 </script>
 
 <style lang="scss" scoped>
-
-		.list {
-			padding: 24rpx 24rpx;
-			
+
+		.list {
+			padding: 24rpx 24rpx;
+			
 			.item {
 				border-radius: 8px;
-				
-				display: flex;
-				border-bottom: 1px solid rgba(232, 232, 232, 1);
-				background-color: rgba(255,255,255,1);
-				// padding: 12rpx 0;
-				 margin-bottom: 12rpx ;
-
-				.img {
-					width: 72rpx;
-					height: 72rpx;
-
-				}
-
-				.body {
-					//margin: 0 12rpx;
-					width: 100%;
+				
+				display: flex;
+				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+				background-color: rgba(255,255,255,1);
+				// padding: 12rpx 0;
+				 margin-bottom: 12rpx ;
+
+				.img {
+					width: 72rpx;
+					height: 72rpx;
+
+				}
+
+				.body {
+					//margin: 0 12rpx;
+					width: 100%;
 					.line1,.line2,.line3{
-						padding: 12px;
-					}
+						padding: 24rpx;
+					}
 					.line3{
 						text-align: end;
-					}
-					.line2 {
-						color: rgba(119,119,119,1);
+					}
+					.line2 {
+						color: rgba(119,119,119,1);
 						font-size: 24rpx;
 						//margin-top: 8rpx;
-						border-bottom:1px solid rgba(232,232,232,1);
+						border-bottom:2rpx solid rgba(232,232,232,1);
 						.value:not(:last-child) {
 							margin-bottom: 16rpx;
-						}
-					}
+						}
+					}
 					.line1 {
 						
 						display: flex;
 						justify-content: space-between;
-						 border-bottom:1px solid rgba(232,232,232,1);
-						.title {
-							color: rgba(51, 51, 51, 1);
+						 border-bottom:2rpx solid rgba(232,232,232,1);
+						.title {
+							color: rgba(51, 51, 51, 1);
 							font-size: 28rpx;
-							font-weight: bold;
-						}
-
-						.status {
-							background-color:  rgba(255, 61, 0, 1);
-							font-size: 24rpx;
-							color:#fff;
-							padding: 2rpx 8rpx;
-							//border-radius: 4px;
-
-						}
+							font-weight: bold;
+						}
+
+						.status {
+							background-color:  rgba(255, 61, 0, 1);
+							font-size: 24rpx;
+							color:#fff;
+							padding: 2rpx 8rpx;
+							//border-radius: 8rpx;
+
+						}
 						
 						.status0 {
 							background-color:  #FF7B00;
 							
-						}
-						.status1 {
-							background-color:  #007aff;
-							
-						}
-
-						.status2 {
-							background-color:  #ff9900;
-							
-						}
-
-						.status3 {
-							background-color:  #19be6b;
-							
-						}
-
-						.status4 {
-							border: 1px solid rgba(255, 61, 0, 1);
-							color: rgba(255, 61, 0, 1);
-						}
+						}
+						.status1 {
+							background-color:  #007aff;
+							
+						}
+
+						.status2 {
+							background-color:  #ff9900;
+							
+						}
+
+						.status3 {
+							background-color:  #19be6b;
+							
+						}
+
+						.status4 {
+							border: 2rpx solid rgba(255, 61, 0, 1);
+							color: rgba(255, 61, 0, 1);
+						}
 					}
 					
-					
-				}
-			}
-
-			// .item:not(:last-child) {
-			//   border-bottom:1px solid rgba(232,232,232,1);
-			// }
+					
+				}
+			}
+
+			// .item:not(:last-child) {
+			//   border-bottom:2rpx solid rgba(232,232,232,1);
+			// }
 		}
 		
 		.viewTop{
-			border-bottom: 1px solid #e8e8e8;
+			border-bottom: 2rpx solid #e8e8e8;
 			background-color: #fff;
 			    display: flex;
 			    justify-content: space-between;
@@ -351,7 +351,7 @@
 				display: flex;
 				align-items: center;
 				background: #F2F2F2;
-				padding: 1px 16rpx;
+				padding: 2rpx 16rpx;
 				border-radius: 8px;
 				justify-content: space-between;
 			}

+ 1 - 1
pages/login/login.vue

@@ -117,7 +117,7 @@
 				
 				API.login({
 					password:this.password,
-					userName:this.userName,
+					phone:this.userName,
 					openId: this.jphelp.getOpenId(),
 					noerror:true,
 					roleName:'XJ',

+ 1 - 1
pages/myTab/abnormalInfo.vue

@@ -81,7 +81,7 @@
 		.line{
 			    display: flex;
 			    justify-content: space-between;
-			padding:11px 16px;
+			padding:22rpx 16px;
 			color: rgba(51,51,51,1);
 			font-size: 16px;
 			border-bottom: 1px solid rgba(242,242,242,1);

+ 272 - 272
pages/myTab/abnormalList.vue

@@ -1,274 +1,274 @@
-<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;
-
-		}
-
-	}
-
+<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: 2rpx 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: 2rpx solid rgba(232, 232, 232, 1);
+		height: 96rpx;
+		line-height: 96rpx;
+		background-color: #fff;
+		border-top: 2rpx solid rgba(241, 241, 241, 1);
+		display: flex;
+		justify-content: space-around;
+
+		.tabsItem {
+			color: rgba(51, 51, 51, 1);
+			font-size: 14px;
+
+		}
+
+	}
+
 	.floating-button {
-		z-index: 999;
-		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;
-			}
-		}
-	}
+		z-index: 999;
+		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>

+ 1 - 1
pages/myTab/changePassword.vue

@@ -79,7 +79,7 @@
 			padding:0 32rpx;
 			display: flex;
 			align-items: center;
-			border-bottom: 1px solid rgba(221,221,221,1);
+			border-bottom: 2rpx solid rgba(221,221,221,1);
 			::v-deep.u-input__input{
 				height: 96rpx;
 			}

+ 1 - 1
pages/myTab/changePhone.vue

@@ -168,7 +168,7 @@
 			padding:0 32rpx;
 			display: flex;
 			align-items: center;
-			border-bottom: 1px solid rgba(221,221,221,1);
+			border-bottom: 2rpx solid rgba(221,221,221,1);
 			::v-deep.u-input__input{
 				height: 96rpx;
 			}

+ 1 - 1
pages/myTab/customerService.vue

@@ -107,7 +107,7 @@
 
 			// 标签
 			.tabs {
-				border-top: 1px solid rgba(232, 232, 232, 1);
+				border-top: 2rpx solid rgba(232, 232, 232, 1);
 				margin-top: 28rpx;
 				width: 522rpx;
 

+ 88 - 88
pages/myTab/dataUser.vue

@@ -1,4 +1,4 @@
-<template>
+<template>
 	<view class="jpmain  ">
 		<u-navbar title="个人信息" title-color="#101010"></u-navbar>
 		
@@ -23,10 +23,10 @@
 		
 		
 		
-		
-		
-
-		<view class="body">
+		
+		
+
+		<view class="body">
 			<view class="page">
 			
 				<view class="page-content">
@@ -47,19 +47,19 @@
 				
 				</view>
 			</view>
-			
-			<view class="page">
-
-				<view class="page-content">
-					<!-- <view class="item">
-						<view class="title">
+			
+			<view class="page">
+
+				<view class="page-content">
+					<!-- <view class="item">
+						<view class="title">
 							用户昵称
-
-						</view>
+
+						</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>
+							{{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">
@@ -70,16 +70,16 @@
 							{{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="item">
+						<view class="title">
+							手机号码
+						</view>
+						<view class="goto">
+							{{userInfo.phone}}
+						</view>
+					</view> -->
+				</view>
 			</view>
 			
 			<view class="page" @click="signOut">
@@ -93,21 +93,21 @@
 			
 			<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>
-
+			
+
+		</view>
+	</view>
+</template>
+
 <script>
 	import * as API from '@/apis/pagejs/index.js'
 	
 	export default {
 		components: {
 			
-		},
-		data() {
-			return {
+		},
+		data() {
+			return {
 				userInfo:{
 					phone:"",
 					headImg:"",
@@ -126,8 +126,8 @@
 					margin: "5px 0 ",
 					
 				},
-				
-			}
+				
+			}
 		},
 		onLoad() {
 			this.userInfo = this.jphelp.getPersonInfo()	
@@ -135,7 +135,7 @@
 		onReady() {
 			this.$refs.refLogin.findByOpenId()
 			
-		},
+		},
 		methods: {
 			signOut() {
 				this.show1 = true;
@@ -255,7 +255,7 @@
 						icon: "none"
 					})		
 				})
-			},
+			},
 			findByOpenId(res){
 				this.userInfo = this.jphelp.getPersonInfo()	
 				
@@ -329,17 +329,17 @@
 			
 					}
 				});
-			},
-		}
-	}
-</script>
+			},
+		}
+	}
+</script>
 <style>
 	page {
 		background-color: rgba(242, 244, 246, 1);
 	}
-</style>
-<style scoped lang="scss">
-	/* styles.css */
+</style>
+<style scoped lang="scss">
+	/* styles.css */
 	.showMessage{
 		padding: 40rpx 40rpx 60rpx 40rpx;
 		.carNumber {
@@ -373,47 +373,47 @@
 			    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);
-
-		
-
+	}
+
+	.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);
-			}
+			  border-bottom:2rpx 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;
+				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;
@@ -432,15 +432,15 @@
 						width: 100%;
 						height: 100%;
 					}
-				}
-			}
-		}
-
-
+				}
+			}
+		}
+
+
 		.button{
 			text-align: center;
 			color: red;
 			    padding: 32rpx 0;
-		}
-	}
+		}
+	}
 </style>

+ 2 - 2
pages/myTab/feedbackList.vue

@@ -121,7 +121,7 @@
 			.img{
 				width: 144rpx;
 				height: 144rpx;
-				border-radius: 4px;
+				border-radius: 8rpx;
 			}
 		}
 	}
@@ -136,7 +136,7 @@
 		.fill-in{
 			
 			line-height: 80rpx;
-			border-radius: 4px;
+			border-radius: 8rpx;
 			background-color: rgba(22,119,255,1);
 			color: rgba(255,255,255,1);
 			font-size: 32rpx;

+ 3 - 3
pages/myTab/feedbackSubmit.vue

@@ -83,11 +83,11 @@
 				line-height: 66rpx;
 				margin-right: 16rpx;
 				margin-bottom: 16rpx;
-				border-radius: 4px;
+				border-radius: 8rpx;
 				background-color: rgba(255,255,255,1);
 				color: rgba(16, 16, 16, 1);
 				text-align: center;
-				border: 1px solid rgba(216,223,232,1);
+				border: 2rpx solid rgba(216,223,232,1);
 			}
 			.item-checked{
 				background-color: rgba(22,119,255,1);
@@ -120,7 +120,7 @@
 		.submit{
 			
 			line-height: 80rpx;
-			border-radius: 4px;
+			border-radius: 8rpx;
 			background-color: rgba(22,119,255,1);
 			color: rgba(255,255,255,1);
 			font-size: 32rpx;

+ 2 - 2
pages/myTab/index.vue

@@ -262,7 +262,7 @@
 			}
 	
 			.item2 {
-				border-right: 1px solid rgba(187, 187, 187, 0.43);
+				border-right: 2rpx solid rgba(187, 187, 187, 0.43);
 				height: 70rpx;
 			}
 	
@@ -270,7 +270,7 @@
 	
 		.page-content {
 			.item:not(:last-child) {
-			  border-bottom:1px solid rgba(232,232,232,1);
+			  border-bottom:2rpx solid rgba(232,232,232,1);
 			}
 			.item {
 				padding: 46rpx 0;

+ 14 - 14
pages/myTab/myMessage.vue

@@ -104,15 +104,15 @@
 					recordsTotal: 1,
 				},
 			};
-		},
-		onLoad(op) {
-
-			this.getList()
-		},
-		onReachBottom() {
-			if (this.list.length < this.listForm.recordsTotal) {
-				this.myLoadmore();
-			}
+		},
+		onLoad(op) {
+
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.listForm.recordsTotal) {
+				this.myLoadmore();
+			}
 		},
 		methods: {
 		
@@ -159,7 +159,7 @@
 		
 		.line{
 			background-color: rgba(255,255,255,1);
-			border-top: 1px solid  rgba(232,232,232,1);
+			border-top: 2rpx solid  rgba(232,232,232,1);
 			    display: flex;
 			    align-items: center;
 				padding:16px;
@@ -176,21 +176,21 @@
 						  }
 						  .date{
 						  	color: rgb(140,140,140);
-						  	font-size: 12px;
+						  	font-size: 24rpx;
 						  }
-						  margin-bottom:  4px;
+						  margin-bottom:  8rpx;
 					  } 
 					
 				}
 				.message{
 					color: rgba(51,51,51,1);
-					font-size: 12px;
+					font-size: 24rpx;
 				}
 				.imgc{
 					display: flex;
 					align-items: center;
 					    justify-content: center;
-					border-radius: 12px;
+					border-radius: 24rpx;
 					margin-right: 8px;
 					width: 48px;
 					height: 48px;

+ 1785 - 1785
pages/station/stationGun.vue

@@ -1,1793 +1,1793 @@
-<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">
-								{{floorlockInfo.name}}
-							</view>
-							<view class="item-tags">
-								<view class="tag tag1" :class="'typeN typeN'+floorlockInfo.type">
-									{{floorlockInfo.typeN}}
-
-								</view>
-								<!-- <view class="tag" :class="'statusN statusN'+floorlockInfo.status">
-									{{floorlockInfo.statusN}}
-							
-								</view>
-								<view class="tag" :class="'lockStatusN lockStatusN'+floorlockInfo.lockStatus">
-									{{floorlockInfo.lockStatusN}}
-								</view> -->
-							</view>
-						</view>
-						<view class="line">
-							编号:{{floorlockInfo.lockNo}}
-						</view>
-						<view class="line" style="    color: #909399;">
-							更新时间:{{floorlockInfo.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="floorlockInfo.parkingStatus==1" style="color: #1677FF;">有车</span>
-						<span v-else-if="floorlockInfo.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="floorlockInfo.lockStatus==4||floorlockInfo.lockStatus==0">
-							错误</span>
-						<span v-else-if="floorlockInfo.lockStatus==1" style="color: #1677FF;">升起</span>
-						<span v-else-if="floorlockInfo.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="floorlockInfo.batteryLevel">{{floorlockInfo.batteryLevel}}V</span>
-						<span v-else>未知</span>
-					</view>
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span4.png">
-						<span>网络</span>
-
-						<span v-if="floorlockInfo.status==1" style="color: #00B962;">在线</span>
-						<span v-else-if="floorlockInfo.status==0" style="color: red">离线</span>
-
-
-					</view>
-
-					<view class="item-span">
-						<img src="@/assets/img/topspan/span5.png">
-						<span>雷达</span>
-
-
-						<span v-if="floorlockInfo.radarStatus==0" style="color: #00B962;">正常</span>
-						<span v-else-if="floorlockInfo.radarStatus==1" style="color: red">故障</span>
-
-
-					</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>
-
-
-
-
-
-
-			<!-- 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="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" v-show="listShow" @click="listShow=false">
-							展开<u-icon name="arrow-down" size="32" color="#AAAAAA"></u-icon>
-						</view>
-						<view class="check-all" v-if="!listShow" @click="listShow=true">
-							收起<u-icon name="arrow-up" size="32" color="#AAAAAA"></u-icon>
-						</view>
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body8">
-						<view class="body8main">
-
-							<view class="table">
-
-
-
-								<view class="row">
-									<view class="name">地锁管理者</view>
-									<view class="value">
-										{{floorlockInfo.contacts?floorlockInfo.contacts:floorlockInfo.administrator}}
-									</view>
-								</view>
-								<view class="row" v-if="floorlockInfo.contacts&&floorlockInfo.contactPhone">
-									<view class="name">联系电话</view>
-									<view class="value">{{floorlockInfo.contactPhone}}</view>
-								</view>
-
-
-
-								<view class="row">
-									<view class="name">地锁型号</view>
-									<view class="value">{{infotext(floorlockInfo.model)}}</view>
-								</view>
-
-
-								<view class="row">
-									<view class="name">出厂编号</view>
-									<view class="value">{{infotext(floorlockInfo.factoryNumber)}}</view>
-								</view>
-								<template v-if="!listShow">
-									<view class="row">
-										<view class="name">固件版号</view>
-										<view class="value">{{infotext(floorlockInfo.solidVersion)}}</view>
-									</view>
-									<view class="row">
-										<view class="name">防护等级</view>
-										<view class="value">{{infotext(floorlockInfo.protectionGrade)}}</view>
-									</view>
-
-
-
-									<view class="row">
-										<view class="name">生产日期</view>
-										<view class="value">{{infotext(floorlockInfo.manufactureDate)}}</view>
-									</view>
-
-									<view class="row">
-										<view class="name">标准依据</view>
-										<view class="value">{{infotext(floorlockInfo.standardBasis)}}</view>
-									</view>
-									<view class="row">
-										<view class="name">联网卡号</view>
-										<view class="value">{{infotext(floorlockInfo.internetCard)}}</view>
-									</view>
-									<view class="row">
-										<view class="name">有效期至</view>
-										<view class="value">
-											{{floorlockInfo.cardExpirationDate?floorlockInfo.cardExpirationDate.split(' ')[0]:''}}
-										</view>
-									</view>
-									<view class="row" v-if="floorlockInfo.tariffStandard">
-										<view class="name">资费标准</view>
-										<view class="value">{{infotext(floorlockInfo.tariffStandard)}}元/月</view>
-									</view>
-									<view class="row">
-										<view class="name">地锁启动时间</view>
-										<view class="value">{{infotext(floorlockInfo.activationTime)}}</view>
-									</view>
-									<view class="row" v-if="floorlockInfo.shelfLife">
-										<view class="name">地锁质保期</view>
-										<view class="value">{{infotext(floorlockInfo.shelfLife)}}年</view>
-									</view>
-								</template>
-
-							</view>
-
-
-						</view>
-
-					</jpContent>
-				</view>
-			</view>
-
-			<view class="statistics main_list1 panel">
-
-
-				<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/task/listTask?lockId='+floorlockInfo.id+'&lockName='+floorlockInfo.name)">
-							查看详情
-							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-						</view>
-
-
-					</view>
-
-				</view>
-
-				<view class="contentBody">
-					<jpContent :status="jpContentMap.body9">
-						<view class="body9main">
-
-							<view class="list">
-								<view class="item" v-for="(item,index) in dataerrList"
-									@click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)" :key="index">
-									<view class="icon">
-
-										<image class="img" v-if="item.errorCodeImage" :src="item.errorCodeImage"
-											mode=""></image>
-
-										<image class="img" v-else src="@/assets/img/taskstatus/status3.png" mode="">
-										</image>
-									</view>
-									<view class="body">
-										<view class="line1">
-											<view class="line1title">
-												{{item.errorCodeText}}
-
-											</view>
-											<view class="status " :class="'status'+item.status">
-												{{item.statusN}}
-
-											</view>
-										</view>
-
-										<view class="line2">
-											<view class="value">
-												{{item.createTime}}
-
-											</view>
-											<view class="value">
-												{{item.parkingName}}
-
-											</view>
-										</view>
-										<view class="errorDesc" v-if="item.errorDesc">
-											描述:{{item.errorDesc}}
-
-										</view>
-
-									</view>
-									<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-								</view>
-
-								<u-divider color="#F44336" v-if="dataerrRecordsTotal>3"
-									@click="gotoUrl('/pages/task/listTask?lockId='+floorlockInfo.id+'&lockName='+floorlockInfo.name)">故障记录{{dataerrRecordsTotal}}条,点击查看更多</u-divider>
-
-							</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: "",
-				dataerrList: [],
-				dataerrRecordsTotal: 0,
-				isReadyfloorStatus: false,
-
-				floorlockInfo: {},
-				echartsList: {},
-				lockUsageRateData: {},
-				body2data: {
-					query: {},
-					vue: {
-						queryN: "",
-						show: false,
-						params: {
-							year: true,
-							month: true,
-							day: false,
-							hour: false,
-							minute: false,
-							second: false
-						}
-					},
-					data: {}
-				},
-				listShow: true,
-				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){
-
-			// }
-
-
-		},
-		onShow() {
-
-
-			if (this.isReadyerrList) {
-				this.geterrList()
-			}
-
-		},
-		methods: {
-			geterrList() {
-			this.jpContentMap.body9 = 0
-				API.errList({
-					pageIndex: 1,
-					pageSize: 3,
+<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">
+								{{floorlockInfo.name}}
+							</view>
+							<view class="item-tags">
+								<view class="tag tag1" :class="'typeN typeN'+floorlockInfo.type">
+									{{floorlockInfo.typeN}}
+
+								</view>
+								<!-- <view class="tag" :class="'statusN statusN'+floorlockInfo.status">
+									{{floorlockInfo.statusN}}
+							
+								</view>
+								<view class="tag" :class="'lockStatusN lockStatusN'+floorlockInfo.lockStatus">
+									{{floorlockInfo.lockStatusN}}
+								</view> -->
+							</view>
+						</view>
+						<view class="line">
+							编号:{{floorlockInfo.lockNo}}
+						</view>
+						<view class="line" style="    color: #909399;">
+							更新时间:{{floorlockInfo.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="floorlockInfo.parkingStatus==1" style="color: #1677FF;">有车</span>
+						<span v-else-if="floorlockInfo.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="floorlockInfo.lockStatus==4||floorlockInfo.lockStatus==0">
+							错误</span>
+						<span v-else-if="floorlockInfo.lockStatus==1" style="color: #1677FF;">升起</span>
+						<span v-else-if="floorlockInfo.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="floorlockInfo.batteryLevel">{{floorlockInfo.batteryLevel}}V</span>
+						<span v-else>未知</span>
+					</view>
+					<view class="item-span">
+						<img src="@/assets/img/topspan/span4.png">
+						<span>网络</span>
+
+						<span v-if="floorlockInfo.status==1" style="color: #00B962;">在线</span>
+						<span v-else-if="floorlockInfo.status==0" style="color: red">离线</span>
+
+
+					</view>
+
+					<view class="item-span">
+						<img src="@/assets/img/topspan/span5.png">
+						<span>雷达</span>
+
+
+						<span v-if="floorlockInfo.radarStatus==0" style="color: #00B962;">正常</span>
+						<span v-else-if="floorlockInfo.radarStatus==1" style="color: red">故障</span>
+
+
+					</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>
+
+
+
+
+
+
+			<!-- 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="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" v-show="listShow" @click="listShow=false">
+							展开<u-icon name="arrow-down" size="32" color="#AAAAAA"></u-icon>
+						</view>
+						<view class="check-all" v-if="!listShow" @click="listShow=true">
+							收起<u-icon name="arrow-up" size="32" color="#AAAAAA"></u-icon>
+						</view>
+
+					</view>
+
+				</view>
+
+				<view class="contentBody">
+					<jpContent :status="jpContentMap.body8">
+						<view class="body8main">
+
+							<view class="table">
+
+
+
+								<view class="row">
+									<view class="name">地锁管理者</view>
+									<view class="value">
+										{{floorlockInfo.contacts?floorlockInfo.contacts:floorlockInfo.administrator}}
+									</view>
+								</view>
+								<view class="row" v-if="floorlockInfo.contacts&&floorlockInfo.contactPhone">
+									<view class="name">联系电话</view>
+									<view class="value">{{floorlockInfo.contactPhone}}</view>
+								</view>
+
+
+
+								<view class="row">
+									<view class="name">地锁型号</view>
+									<view class="value">{{infotext(floorlockInfo.model)}}</view>
+								</view>
+
+
+								<view class="row">
+									<view class="name">出厂编号</view>
+									<view class="value">{{infotext(floorlockInfo.factoryNumber)}}</view>
+								</view>
+								<template v-if="!listShow">
+									<view class="row">
+										<view class="name">固件版号</view>
+										<view class="value">{{infotext(floorlockInfo.solidVersion)}}</view>
+									</view>
+									<view class="row">
+										<view class="name">防护等级</view>
+										<view class="value">{{infotext(floorlockInfo.protectionGrade)}}</view>
+									</view>
+
+
+
+									<view class="row">
+										<view class="name">生产日期</view>
+										<view class="value">{{infotext(floorlockInfo.manufactureDate)}}</view>
+									</view>
+
+									<view class="row">
+										<view class="name">标准依据</view>
+										<view class="value">{{infotext(floorlockInfo.standardBasis)}}</view>
+									</view>
+									<view class="row">
+										<view class="name">联网卡号</view>
+										<view class="value">{{infotext(floorlockInfo.internetCard)}}</view>
+									</view>
+									<view class="row">
+										<view class="name">有效期至</view>
+										<view class="value">
+											{{floorlockInfo.cardExpirationDate?floorlockInfo.cardExpirationDate.split(' ')[0]:''}}
+										</view>
+									</view>
+									<view class="row" v-if="floorlockInfo.tariffStandard">
+										<view class="name">资费标准</view>
+										<view class="value">{{infotext(floorlockInfo.tariffStandard)}}元/月</view>
+									</view>
+									<view class="row">
+										<view class="name">地锁启动时间</view>
+										<view class="value">{{infotext(floorlockInfo.activationTime)}}</view>
+									</view>
+									<view class="row" v-if="floorlockInfo.shelfLife">
+										<view class="name">地锁质保期</view>
+										<view class="value">{{infotext(floorlockInfo.shelfLife)}}年</view>
+									</view>
+								</template>
+
+							</view>
+
+
+						</view>
+
+					</jpContent>
+				</view>
+			</view>
+
+			<view class="statistics main_list1 panel">
+
+
+				<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/task/listTask?lockId='+floorlockInfo.id+'&lockName='+floorlockInfo.name)">
+							查看详情
+							<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+						</view>
+
+
+					</view>
+
+				</view>
+
+				<view class="contentBody">
+					<jpContent :status="jpContentMap.body9">
+						<view class="body9main">
+
+							<view class="list">
+								<view class="item" v-for="(item,index) in dataerrList"
+									@click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)" :key="index">
+									<view class="icon">
+
+										<image class="img" v-if="item.errorCodeImage" :src="item.errorCodeImage"
+											mode=""></image>
+
+										<image class="img" v-else src="@/assets/img/taskstatus/status3.png" mode="">
+										</image>
+									</view>
+									<view class="body">
+										<view class="line1">
+											<view class="line1title">
+												{{item.errorCodeText}}
+
+											</view>
+											<view class="status " :class="'status'+item.status">
+												{{item.statusN}}
+
+											</view>
+										</view>
+
+										<view class="line2">
+											<view class="value">
+												{{item.createTime}}
+
+											</view>
+											<view class="value">
+												{{item.parkingName}}
+
+											</view>
+										</view>
+										<view class="errorDesc" v-if="item.errorDesc">
+											描述:{{item.errorDesc}}
+
+										</view>
+
+									</view>
+									<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+								</view>
+
+								<u-divider color="#F44336" v-if="dataerrRecordsTotal>3"
+									@click="gotoUrl('/pages/task/listTask?lockId='+floorlockInfo.id+'&lockName='+floorlockInfo.name)">故障记录{{dataerrRecordsTotal}}条,点击查看更多</u-divider>
+
+							</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: "",
+				dataerrList: [],
+				dataerrRecordsTotal: 0,
+				isReadyfloorStatus: false,
+
+				floorlockInfo: {},
+				echartsList: {},
+				lockUsageRateData: {},
+				body2data: {
+					query: {},
+					vue: {
+						queryN: "",
+						show: false,
+						params: {
+							year: true,
+							month: true,
+							day: false,
+							hour: false,
+							minute: false,
+							second: false
+						}
+					},
+					data: {}
+				},
+				listShow: true,
+				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){
+
+			// }
+
+
+		},
+		onShow() {
+
+
+			if (this.isReadyerrList) {
+				this.geterrList()
+			}
+
+		},
+		methods: {
+			geterrList() {
+			this.jpContentMap.body9 = 0
+				API.errList({
+					pageIndex: 1,
+					pageSize: 3,
 					status: 0,
-					lockId:this.id
-				}).then((response) => {
-					this.dataerrList = response.data.data
-					this.dataerrRecordsTotal = response.data.recordsTotal
+					lockId:this.id
+				}).then((response) => {
+					this.dataerrList = response.data.data
+					this.dataerrRecordsTotal = response.data.recordsTotal
 					this.isReadyerrList = true
 					if(this.dataerrRecordsTotal ){
 						this.jpContentMap.body9 = 2
 					}else{
 						this.jpContentMap.body9 = 1
 					}
-					
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-
-				})
-			},
-			infotext(text) {
-				if (text) {
-					return text
-				} else {
-					return ""
-				}
-			},
-			durationShow() {
-				if (this.lockUsageRateData.duration) {
-					var m = this.lockUsageRateData.duration % 60
-					var h = parseInt(this.lockUsageRateData.duration / 60)
-					if (h > 0) {
-						if (h > 24) {
-							var day = parseInt(h / 24)
-							h = h % 24
-							var px = uni.upx2px(12 * 2)
-							if (day > 100) {
-								return `${day}<span style='font-size: ${px}px;'>天</span>`
-							} else {
-								return `${day}<span style='font-size: ${px}px;'>天</span>${h}h`
-							}
-
-						} else {
-							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.geterrList()
-				//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.floorlockInfo = res.data.floorlockInfo
-					this.title = this.floorlockInfo.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;
-
-			/* 奇数行 */
-		}
-
-		.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;
-
-
-			}
-
-			.table_td1 {
-				width: 30%;
-			}
-
-			.table_td2 {
-				width: 30%;
-			}
-
-			.table_td3 {
-				width: 30%;
-			}
-
-			.table_td4 {
-				width: 10%;
-			}
-
-			/* 隔行变色: 偶数行设置背景色 */
-			.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;
-				/* 奇数行 */
-			}
-
-		}
-
-	}
-
-	.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;
-		
-		padding-top: 16rpx;
-		margin-top: 16rpx;
-
-		.item-span {
-			white-space: pre;
-			display: flex;
-			align-items: center;
-			margin-top: 4rpx;
-			width: 33%;
-			font-size: 28rpx;
-
-			span {
-				margin: 0 8rpx;
-			}
-
-			img {
-				width: 28rpx;
-				height: 28rpx;
-			}
-		}
-
-		.lockStatusX1 {
-			color: #00B962;
-		}
-
-		.lockStatusX2 {
-			color: #1677FF;
-		}
-
-		.statusX1 {
-			color: #00B962;
-		}
-
-		.statusX2 {
-			color: #1677FF;
-		}
-	}
-
-
-	.main_list1 {
-		margin-top: 24rpx;
-		padding: 24rpx;
-
-		.list-body {
-			padding: 24rpx 0;
-
-			.item {
-				border-bottom: 1px solid rgba(232, 232, 232, 1);
-			}
-
-			.title {
-				display: flex;
-				justify-content: space-between;
-
-				.name {
-					color: rgba(51, 51, 51, 1);
-					font-size: 32rpx;
-					font-weight: bold;
-				}
-
-				.status {}
-
-				.statusN1 {}
-
-				.statusN2 {}
-
-				.statusN3 {}
-			}
-
-			.body {
-				display: flex;
-				color: rgba(51, 51, 51, 1);
-				font-size: 28rpx;
-
-				.name {
-					width: 150rpx;
-				}
-
-				.value {}
-			}
-		}
-
-
-		.list {
-			//padding: 24rpx 0;
-
-			.item {
-				display: flex;
-				border-bottom: 1px solid rgba(232, 232, 232, 1);
-				padding: 12rpx 0;
-				margin: 12rpx 0;
-
-				.img {
-					width: 72rpx;
-					height: 72rpx;
-
-				}
-
-				.body {
-					margin: 0 12rpx;
-					width: 100%;
-
-					.line1,
-					.line2 {
-
-						display: flex;
-						justify-content: space-between;
-					}
-
-					.line2 {
-						color: rgba(119, 119, 119, 1);
-						font-size: 24rpx;
-						margin-top: 8rpx;
-					}
-
-					.line1 {
-						.line1title {
-							color: rgba(51, 51, 51, 1);
-							font-size: 28rpx;
-							font-weight: bold;
-						}
-
-						.status {
-							background-color: rgba(255, 61, 0, 1);
-							font-size: 24rpx;
-							color: #fff;
-							padding: 2rpx 8rpx;
-							//border-radius: 4px;
-
-						}
-
-						.status0 {
-							background-color: rgba(255, 61, 0, 1);
-
-						}
-
-						.status1 {
-							background-color: #007aff;
-
-						}
-
-						.status2 {
-							background-color: #ff9900;
-
-						}
-
-						.status3 {
-							background-color: #19be6b;
-
-						}
-
-						.status4 {
-							border: 1px solid rgba(255, 61, 0, 1);
-							color: rgba(255, 61, 0, 1);
-						}
-					}
-
-					.errorDesc {
-						margin: 8rpx 0;
-						width: 480rpx;
-						color: #777777;
-						font-size: 24rpx;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						white-space: nowrap;
-						/* 禁止换行,强制单行 */
-					}
-				}
-			}
-
-			// .item:not(:last-child) {
-			//   border-bottom:1px solid rgba(232,232,232,1);
-			// }
-		}
-	}
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+
+				})
+			},
+			infotext(text) {
+				if (text) {
+					return text
+				} else {
+					return ""
+				}
+			},
+			durationShow() {
+				if (this.lockUsageRateData.duration) {
+					var m = this.lockUsageRateData.duration % 60
+					var h = parseInt(this.lockUsageRateData.duration / 60)
+					if (h > 0) {
+						if (h > 24) {
+							var day = parseInt(h / 24)
+							h = h % 24
+							var px = uni.upx2px(12 * 2)
+							if (day > 100) {
+								return `${day}<span style='font-size: ${px}px;'>天</span>`
+							} else {
+								return `${day}<span style='font-size: ${px}px;'>天</span>${h}h`
+							}
+
+						} else {
+							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.geterrList()
+				//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.floorlockInfo = res.data.floorlockInfo
+					this.title = this.floorlockInfo.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 2rpx 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: 2rpx solid rgba(187, 187, 187, 1);
+						color: rgba(51, 51, 51, 1);
+
+						font-size: 24rpx;
+						padding: 2rpx 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: 24rpx;
+		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;
+
+			/* 奇数行 */
+		}
+
+		.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;
+
+
+			}
+
+			.table_td1 {
+				width: 30%;
+			}
+
+			.table_td2 {
+				width: 30%;
+			}
+
+			.table_td3 {
+				width: 30%;
+			}
+
+			.table_td4 {
+				width: 10%;
+			}
+
+			/* 隔行变色: 偶数行设置背景色 */
+			.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;
+				/* 奇数行 */
+			}
+
+		}
+
+	}
+
+	.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: 2rpx 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: 4rpx;
+				}
+
+				.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: 2rpx 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: 2rpx solid rgba(245, 245, 245, 1);
+		display: flex;
+		flex-wrap: wrap;
+		
+		padding-top: 16rpx;
+		margin-top: 16rpx;
+
+		.item-span {
+			white-space: pre;
+			display: flex;
+			align-items: center;
+			margin-top: 4rpx;
+			width: 33%;
+			font-size: 28rpx;
+
+			span {
+				margin: 0 8rpx;
+			}
+
+			img {
+				width: 28rpx;
+				height: 28rpx;
+			}
+		}
+
+		.lockStatusX1 {
+			color: #00B962;
+		}
+
+		.lockStatusX2 {
+			color: #1677FF;
+		}
+
+		.statusX1 {
+			color: #00B962;
+		}
+
+		.statusX2 {
+			color: #1677FF;
+		}
+	}
+
+
+	.main_list1 {
+		margin-top: 24rpx;
+		padding: 24rpx;
+
+		.list-body {
+			padding: 24rpx 0;
+
+			.item {
+				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+			}
+
+			.title {
+				display: flex;
+				justify-content: space-between;
+
+				.name {
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+					font-weight: bold;
+				}
+
+				.status {}
+
+				.statusN1 {}
+
+				.statusN2 {}
+
+				.statusN3 {}
+			}
+
+			.body {
+				display: flex;
+				color: rgba(51, 51, 51, 1);
+				font-size: 28rpx;
+
+				.name {
+					width: 150rpx;
+				}
+
+				.value {}
+			}
+		}
+
+
+		.list {
+			//padding: 24rpx 0;
+
+			.item {
+				display: flex;
+				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+				padding: 12rpx 0;
+				margin: 12rpx 0;
+
+				.img {
+					width: 72rpx;
+					height: 72rpx;
+
+				}
+
+				.body {
+					margin: 0 12rpx;
+					width: 100%;
+
+					.line1,
+					.line2 {
+
+						display: flex;
+						justify-content: space-between;
+					}
+
+					.line2 {
+						color: rgba(119, 119, 119, 1);
+						font-size: 24rpx;
+						margin-top: 8rpx;
+					}
+
+					.line1 {
+						.line1title {
+							color: rgba(51, 51, 51, 1);
+							font-size: 28rpx;
+							font-weight: bold;
+						}
+
+						.status {
+							background-color: rgba(255, 61, 0, 1);
+							font-size: 24rpx;
+							color: #fff;
+							padding: 2rpx 8rpx;
+							//border-radius: 4px;
+
+						}
+
+						.status0 {
+							background-color: rgba(255, 61, 0, 1);
+
+						}
+
+						.status1 {
+							background-color: #007aff;
+
+						}
+
+						.status2 {
+							background-color: #ff9900;
+
+						}
+
+						.status3 {
+							background-color: #19be6b;
+
+						}
+
+						.status4 {
+							border: 2rpx solid rgba(255, 61, 0, 1);
+							color: rgba(255, 61, 0, 1);
+						}
+					}
+
+					.errorDesc {
+						margin: 8rpx 0;
+						width: 480rpx;
+						color: #777777;
+						font-size: 24rpx;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+						/* 禁止换行,强制单行 */
+					}
+				}
+			}
+
+			// .item:not(:last-child) {
+			//   border-bottom:2rpx solid rgba(232,232,232,1);
+			// }
+		}
+	}
 </style>

+ 10 - 10
pages/station/stationInfo.vue

@@ -268,7 +268,7 @@
 	.panel{
 		border-radius: 8px;
 		background-color: rgba(255, 255, 255, 1);
-		box-shadow: 0px 1px 6px 0px rgba(0, 59, 142, 0.05);
+		box-shadow: 0px 2rpx 6px 0px rgba(0, 59, 142, 0.05);
 		margin: 24rpx 32rpx;
 		padding: 40rpx;
 		
@@ -314,11 +314,11 @@
 		
 				.tag {
 					border-radius: 4px;
-					border: 1px solid rgba(187, 187, 187, 1);
+					border: 2rpx solid rgba(187, 187, 187, 1);
 					color: rgba(51, 51, 51, 1);
 		
 					font-size: 24rpx;
-					padding: 1px 8rpx;
+					padding: 2rpx 8rpx;
 					margin-left: 8rpx;
 				}
 		
@@ -343,7 +343,7 @@
 		padding: 40rpx 0;
 		.name{
 			padding:   0 40rpx 24rpx 40rpx;
-			border-bottom: 1px solid #F5F5F5 ;
+			border-bottom: 2rpx solid #F5F5F5 ;
 			.p1{
 				color: rgba(51,51,51,1);
 				font-size: 18px;
@@ -381,7 +381,7 @@
 		padding: 24rpx 0 20rpx 0;
 		
 		.p2 {
-			border-left: 1px solid rgba(187, 187, 187, 0.43);
+			border-left: 2rpx solid rgba(187, 187, 187, 0.43);
 			height: 70rpx;
 		}
 		
@@ -425,7 +425,7 @@
 			}
 			
 			.line:not(:last-child) {
-			  border-bottom:1px solid rgba(232,232,232,1);
+			  border-bottom:2rpx solid rgba(232,232,232,1);
 			}
 			
 			.tag{
@@ -435,17 +435,17 @@
 				height: 20px;
 				padding: 0 4rpx;
 				border-radius: 4px;
-				border: 1px solid rgba(255,61,0,1);
+				border: 2rpx solid rgba(255,61,0,1);
 			}
 			.tag1{
 				color: rgba(255,61,0,1);
 				
-				border: 1px solid rgba(255,61,0,1);
+				border: 2rpx solid rgba(255,61,0,1);
 			}
 			.tag2{
 				color: #00B962;
 				
-				border: 1px solid  #00B962;
+				border: 2rpx solid  #00B962;
 			}
 		}
 	}
@@ -468,7 +468,7 @@
 					   white-space: nowrap; 
 				}
 				.line:not(:last-child) {
-				  border-bottom:1px solid rgba(232,232,232,1);
+				  border-bottom:2rpx solid rgba(232,232,232,1);
 				}
 		}
 	}

+ 222 - 212
pages/station/stationList.vue

@@ -1,41 +1,39 @@
 <template>
 	<view>
-		<u-navbar  title="地锁列表"  ></u-navbar>
+		<u-navbar title="地锁列表"></u-navbar>
 		<view class="main">
 			<view class="top">
 				<view class="search">
 					<view class="searchBox">
-						<u-search shape="square" placeholder="使用停车场名称/地锁编号搜索" maxlength="12" v-model="testName" :show-action="false"
-							:animation="true"></u-search>
+						<u-search shape="square" placeholder="使用停车场名称/地锁编号搜索" maxlength="12" 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="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>
+				<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="tabsclass" >
-				<u-tabs :list="tabslist" active-color="#333" inactive-color="#777"
-				
-				 :current="current" @change="change"></u-tabs>
+			<view class="tabsclass">
+				<u-tabs :list="tabslist" active-color="#333" inactive-color="#777" :current="current"
+					@change="change"></u-tabs>
 			</view>
 			<view class="list">
-				<view class="line"   v-for="(item,i) in list" :key="i"
-				 @click="gotoUrl('/pages/station/stationInfo?id='+item.id)" >
+				<view class="line" v-for="(item,i) in list" :key="i"
+					@click="gotoUrl('/pages/station/stationInfo?id='+item.id)">
 					<view class="body">
 						<view class="imgclass">
 							<image class="img" src="@/assets/img/station/index0.svg" mode=""></image>
@@ -46,101 +44,97 @@
 								{{item.parkingName}}
 							</view>
 							<view class="value">
-								<span class="span span1">在用8</span> / 
-								<span class="span span2">空闲18</span>/ 
-								<span class="span span3">故障8</span>/ 
-								<span class="span span4">离线8</span>/ 
-								<span class="span span5">共9台</span> 
+								<span class="span span1">在用8</span> /
+								<span class="span span2">空闲18</span>/
+								<span class="span span3">故障8</span>/
+								<span class="span span4">离线8</span>/
+								<span class="span span5">共9台</span>
 							</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="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'
-	
-	
+	import * as API from '@/apis/pagejs/pagesStation.js'
+
+
 	export default {
-		
+
 		data() {
 			return {
 				testName: "",
 				queryName: "",
-				list:[],
-				listForm:{
+				list: [],
+				listForm: {
 					pageIndex: 1,
 					pageSize: 20,
 					recordsTotal: 1,
 				},
-				title:"场站列表",
-				tabslist:[
-					{
-						name: '待处理',
-						code:"geterrList0"
-						
-					}, {
-						name: '已处理',
-						code:"geterrList1"
-					}
-				],
-				current:0,
+				title: "场站列表",
+				tabslist: [{
+					name: '待处理',
+					code: "geterrList0"
+
+				}, {
+					name: '已处理',
+					code: "geterrList1"
+				}],
+				current: 0,
 				tabsFrom: {
 					show1: false,
-					show1Index:0,
-					show2Index:'',
+					show1Index: 0,
+					show2Index: '',
 					show2: false,
 					show1Text: "全部场站",
 					show2Text: "全部类型",
 					show3Text: "全部状态",
-					selector1:[
+					selector1: [{
+							label: '全部类型',
+							value: '',
+						},
 						{
-								label: '全部类型',
-								value: '',
-							},
+							label: '线上充值',
+							value: '1',
+						},
 						{
-								label: '线上充值',
-								value: '1',
-							},
-							{
-								label: '线下充值',
-								value: '2',
-							},
+							label: '线下充值',
+							value: '2',
+						},
 					]
 				},
 			};
 		},
 		onLoad(op) {
-			if(op.companyId){
-				this.listForm.companyId=op.companyId
+			if (op.companyId) {
+				this.listForm.companyId = op.companyId
 			}
-			if(op.parkingId){
-				this.listForm.parkingId=op.parkingId
+			if (op.parkingId) {
+				this.listForm.parkingId = op.parkingId
 			}
 			this.getList()
 		},
@@ -150,51 +144,51 @@
 			}
 		},
 		methods: {
-			change(e){
-				this.current=e
-				
-			
+			change(e) {
+				this.current = e
+
+
 			},
 			testBtn() {
-			
+
 				this.list = []
 				//this.listForm.pageIndex=1
 				this.getList()
 			},
-			gotoBind(){
+			gotoBind() {
 				uni.navigateTo({
-				  url: '/pages/deviceTab/bindLock?parkingId='+this.listForm.parkingId,
-				  events: {
-				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
-				    acceptDataFromOpenerPage: (item)=>{
-						
-						this.getList(1)
-				    },
-				 
-				  }
-				  // ,
-				  // success: function(res) {
-				  //   // 通过eventChannel向被打开页面传送数据
-				  //  
-				  // }
+					url: '/pages/deviceTab/bindLock?parkingId=' + this.listForm.parkingId,
+					events: {
+						// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
+						acceptDataFromOpenerPage: (item) => {
+
+							this.getList(1)
+						},
+
+					}
+					// ,
+					// success: function(res) {
+					//   // 通过eventChannel向被打开页面传送数据
+					//  
+					// }
 				})
 			},
-			myLoadmore(){
+			myLoadmore() {
 				this.listForm.pageIndex += 1;
 				this.getList()
 			},
 			getList(bl) {
-				if(bl){
+				if (bl) {
 					this.listForm.pageIndex = 1
 				}
 				uni.showLoading({
 					title: "加载中",
 					mask: true,
 				})
-							 
-				API.findFloorLock(this.listForm).then((res) => {
-					var list=[]
-					
+
+				API.userStationList(this.listForm).then((res) => {
+					var list = []
+
 					if (this.listForm.pageIndex == 1) {
 						list = res.data.data;
 					} else {
@@ -205,9 +199,9 @@
 					}
 					this.list = res.data.floorlockInfoList
 					uni.hideLoading();
-				
+
 				}).catch(error => {
-				
+
 					uni.hideLoading();
 					uni.showToast({
 						title: error,
@@ -220,148 +214,164 @@
 </script>
 
 <style scoped lang="scss">
-	
 	.search {
-	
+
 		padding: 16rpx 32rpx;
 		background: #fff;
-	
+
 		.searchBox {
 			display: flex;
 			align-items: center;
 			background: #F2F2F2;
-			padding: 1px 16rpx;
+			padding: 2rpx 16rpx;
 			border-radius: 8px;
 			justify-content: space-between;
 		}
 	}
-	.main{
+
+	.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{
+
+		.line {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 32rpx;
+			border-bottom: 2rpx 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;
-						.dian{
-							width: 16rpx;
-							height: 16rpx;
-							 border-radius: 50px;
-							background-color: rgba(184,184,184,1);
-							 margin-right: 16rpx;
+					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;
+						font-weight: bold;
+
+						.tag {
+							border-radius: 4px;
+							background-color: rgba(22, 119, 255, 1);
+							color: rgba(255, 255, 255, 1);
+							font-size: 22rpx;
+							padding: 2rpx 8rpx;
+							margin-left: 8rpx;
 						}
-						.status1{
-							background-color: #4CAF50;
-							color:#4CAF50;
+
+						.type2 {
+							background-color: #8161ff;
 						}
-						.statusText1{
-							
-							color:#4CAF50;
+					}
+
+					.value {
+						color: #777777;
+						font-size: 24rpx;
+
+						.span {
+							margin: 0 8rpx;
 						}
-						.text{
-							 margin-right: 16rpx;
-							 font-size: 24rpx;
+
+						.span1 {
+							color: #00B962;
+							margin-left: 0px;
 
 						}
+
+						.span2 {
+							color: #777777
+						}
+
+						.span3 {
+							color: #FF3D00
+						}
+
+						.span4 {
+							color: #FF9600
+						}
+
+						.span5 {}
+
+					}
 				}
-				.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;
-															     font-weight: bold;
-															 .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: #777777;
-						 								 	font-size: 24rpx;
-															
-															.span{
-																margin:0 8rpx ;
-															}
-															.span1{
-																color:#00B962;
-																margin-left: 0px;
-																
-															}
-															.span2{
-																color:#777777
-															}
-															.span3{
-																color:#FF3D00
-															}
-															.span4{
-																color:#FF9600
-															}
-															.span5{
-																
-															}
-						 											
-						 								 }
-						 }
-						
-				}
+
+			}
 		}
-		.img{
+
+		.img {
 			width: 48rpx;
 			height: 48rpx;
 		}
 	}
-	
-	.tabs{
-		border-bottom: 1px solid rgba(232,232,232,1);
+
+	.tabs {
+		border-bottom: 2rpx solid rgba(232, 232, 232, 1);
 		height: 96rpx;
 		line-height: 96rpx;
 		background-color: #fff;
-		border-top: 1px solid rgba(241,241,241,1);
+		border-top: 2rpx solid rgba(241, 241, 241, 1);
 		display: flex;
 		justify-content: space-around;
-		.tabsItem{
-			color: rgba(51,51,51,1);
+
+		.tabsItem {
+			color: rgba(51, 51, 51, 1);
 			font-size: 14px;
 
 		}
-		
+
 	}
-	
+
 	.floating-button {
 		z-index: 999;
 		position: fixed;
 		bottom: 120rpx;
 		width: 100%;
 		display: flex;
-	
+
 		justify-content: center;
-	
+
 		.button {
 			border-radius: 50px;
 			background-color: rgba(49, 51, 52, 1);
@@ -372,7 +382,7 @@
 			align-items: center;
 			justify-content: center;
 			padding: 12rpx;
-	
+
 			.img {
 				width: 40rpx;
 				height: 40rpx;
@@ -380,8 +390,8 @@
 			}
 		}
 	}
-	
-	.tabsclass{
-		border-bottom: 1px solid rgba(232,232,232,1);
+
+	.tabsclass {
+		border-bottom: 2rpx solid rgba(232, 232, 232, 1);
 	}
-</style>
+</style>

+ 317 - 231
pages/task/addTask.vue

@@ -1,165 +1,206 @@
 <template>
-	<view  class="jpmain  " >
-			<u-navbar  title="故障上报" title-color="#101010"></u-navbar>
-			
-			<view class="list" >
-				<view class="item"  >
-					<view class="name">
-						<span>*</span>选择地锁
-				
-					</view>
-					<view class="value"  @click="gotoSelectLock()">
-						<view :style="taskInfo.lockId?'':'color:#BBB'"
-						>{{taskInfo.lockId?lockName:'选择需要上报的地锁'}}</view>
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-				<view class="item">
-					<view class="name">
-						地锁编号
-				
-					</view>
-					<view class="value">
-						<view :style="taskInfo.lockId?'':'color:#BBB'"
-						>{{taskInfo.lockId?lockNo:'选择需要上报的地锁'}}</view>
-					</view>
-				</view>
-				 
-			</view>
-			<view class="list" >
-				<view class="item"  >
-					<view class="name">
-						<span>*</span>故障类型
-				
-					</view>
-					<view class="value" @click="selectTaskInfoCodeBtn">
-						<view :style="taskInfo.code?'':'color:#BBB'"
-						>{{taskInfo.code?codeN:'请选择故障类型'}}</view>
-						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-					</view>
-				</view>
-				<view class="item item-plus"  >
-					<view class="name">
-						问题描述
-				
-					</view>
-					<view class="value" >
-						<textarea placeholder="请简单描述处理内容" 
-						v-model="taskInfo.desc" placeholder-class="textareaclass"
-						class="textarea"></textarea>
-					</view>
-				</view>
-				<view class="item item-plus"  >
-					<view class="name">
-						上传图片
-				
-					</view>
-					<view class="value" >
-						<u-upload name="photoFile"
-								ref="uUpload"
-								 :form-data="formData" :header="header" :action="action"
-								  :file-list="listPic" ></u-upload>
-					</view>
-				</view>
-			</view>
-			
-			<u-select v-model="selectTaskInfoCode"  :default-value="selectTaskInfoCodeValue"
-			value-name="value" label-name="name" @confirm="selectTaskInfoCodeConfirm"
-			:list="codeList"></u-select>
-			
-			<view class="floating-button">
-				<view class="button"  @click="submit" >
-					
-					提交
-				</view>
-				
+	<view class="jpmain  ">
+		<u-navbar title="故障上报" title-color="#101010"></u-navbar>
+
+		<view class="list">
+			<view class="item">
+				<view class="name">
+					<span>*</span>选择场站
+
+				</view>
+				<view class="value" @click="gotoSelectStation()">
+					<view :style="taskInfo.stationId?'':'color:#BBB'">{{taskInfo.stationId?stationName:'选择故障上报的场站'}}</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" @click="selectTaskInfoCodeBtn">
+					<view :style="taskInfo.code?'':'color:#BBB'">{{taskInfo.code?codeN:'请选择故障类型'}}</view>
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
 			</view>
+			<view class="item item-plus">
+				<view class="name">
+					<span>*</span>上报人员
+
+				</view>
+
+				<view class="value  ">
+
+					<u-checkbox-group>
+						<u-checkbox v-model="item.checked"  @change="memberListchange"
+						 v-for="(item, index) in memberList" :key="index"
+							:name="item.name">{{item.name}}</u-checkbox>
+					</u-checkbox-group>
+
+
+				</view>
+			</view>
+		</view>
+		<view class="list">
+			<view class="item item-plus">
+				<view class="name">
+					<span>*</span>故障描述
+
+				</view>
+				<view class="value">
+					<textarea placeholder="请简单描述故障问题" v-model="taskInfo.desc" placeholder-class="textareaclass"
+						class="textarea"></textarea>
+				</view>
+			</view>
+			<view class="item item-plus">
+				<view class="name">
+					<span>*</span>拍照上传
+
+
+				</view>
+				<view class="value">
+					<u-upload name="photoFile" ref="uUpload" :form-data="formData" :header="header" :action="action"
+						:file-list="listPic"></u-upload>
+				</view>
+			</view>
+		</view>
+
+		<u-select v-model="selectTaskInfoCode" :default-value="selectTaskInfoCodeValue" value-name="value"
+			label-name="name" @confirm="selectTaskInfoCodeConfirm" :list="codeList"></u-select>
+
+		<view class="floating-button">
+			<view class="button" @click="submit">
+
+				提交
+			</view>
+
+		</view>
 	</view>
 </template>
 
 <script>
 	import * as API from '@/apis/pagejs/pagesTask.js'
-	
+
 	export default {
 		data() {
 			return {
 				listPic: [],
-				action:"",
-				formData:{
-					
+				memberList: [],
+				action: "",
+				formData: {
+
 				},
-				header:{
-					
+				header: {
+
 				},
-				codeN:"",
-				selectTaskInfoCode:false,
-				selectTaskInfoCodeValue:[0],
-				lockNo:"",
-				lockName:"",
+				codeN: "",
+				selectTaskInfoCode: false,
+				selectTaskInfoCodeValue: [0],
 				
-				taskInfo:{
-					lockId:"",
-					code:"",
-					desc:"",
-					images:"",
-					
+				stationName: "",
+
+				taskInfo: {
+					stationId: "",
+					code: "",
+					desc: "",
+					images: "",
+
 				},
-				codeList:[]
+				codeList: []
 			};
 		},
 		onLoad() {
-			this.action=process.jphelp.BASE_URL+"uploadPicture"
-			this.formData.subFolder="/floorlock/inspection/addTask"
-			var token=this.jphelp.getToken()
-			
-			this.header={
-					
-				'Authorization':token
+			this.action = process.jphelp.BASE_URL + "uploadPicture"
+			this.formData.subFolder = "/yooudian/inspection/addTask"
+			var token = this.jphelp.getToken()
+
+			this.header = {
+
+				'Authorization': token
 			}
+			this.getteamMembers()
 			this.findByCatalogName({
-				catalogName:'设备故障类型'
-			},"codeList")
+				catalogName: '设备故障类型'
+			}, "codeList")
+
 		},
-		methods:{
-			submit(){
-				if(!this.taskInfo.lockId){
+		methods: {
+			memberListchange(e){
+				console.log(e)
+				this.$forceUpdate()
+			},
+			submit() {
+				
+				
+				
+				if (!this.taskInfo.stationId) {
+					uni.showToast({
+						title: "选择故障上报的场站"
+					})
+					return
+				}
+				if (!this.taskInfo.code) {
+					uni.showToast({
+						title: "请选择故障类型"
+					})
+					return
+				}
+				
+				var mp=this.memberList.filter(item=>{
+					return item.checked
+				}).map(item=>{
+					return item.id
+				})
+				
+				if (mp.length==0) {
 					uni.showToast({
-						title:"选择需要上报的地锁"
+						title: "请选择上报人员"
 					})
-					 return
+					return
 				}
-				if(!this.taskInfo.code){
+				
+				if (!this.taskInfo.desc) {
 					uni.showToast({
-						title:"请选择故障类型"
+						title: "请简单描述故障问题"
 					})
-					 return
+					return
 				}
 				
+				
 				let files = [];
 				// 通过filter,筛选出上传进度为100的文件(因为某些上传失败的文件,进度值不为100,这个是可选的操作)
 				files = this.$refs.uUpload.lists.filter(val => {
 					return val.progress == 100;
 				})
 				// 如果您不需要进行太多的处理,直接如下即可
-					// files = this.$refs.uUpload.lists;
-				
+				// files = this.$refs.uUpload.lists;
+
 				//(files);
-					
-				var imgUrl=files.map(item=>{
+
+				var imgUrl = files.map(item => {
 					return item.response.data;
 				})
+				if (imgUrl.length==0) {
+					uni.showToast({
+						title: "请拍照上传现场照片"
+					})
+					return
+				}
 				//(imgUrl);
 				this.taskInfo.images = imgUrl.join(',');
-				
-				
-				
+
+
+
 				uni.showLoading({
 					title: "加载中",
 					mask: true,
 				})
-				
+
 				API.addErr(this.taskInfo).then((res) => {
-					
+
 					uni.showModal({
 						title: '提示',
 						showCancel: false,
@@ -172,164 +213,209 @@
 							}
 						}
 					})
-				
+
 					uni.hideLoading();
-				
+
 				}).catch(error => {
-				
+
 					uni.hideLoading();
 					uni.showToast({
 						title: error,
 						icon: "none"
 					})
 				})
-				
-				
+
+
+			},
+			findByCatalogName(obj, listName) {
+
+				API.findByCatalogName(obj).then((res) => {
+
+					var arr = res.data.dataDictionaryList
+
+					this[listName] = arr
+
+
+				}).catch(error => {
+
+					uni.hideLoading();
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+
 			},
-			findByCatalogName(obj,listName){
+
+			getteamMembers() {
 				uni.showLoading({
 					title: "加载中",
 					mask: true,
 				})
-				
-				API.findByCatalogName(obj).then((res) => {
-					
-					var arr = res.data.dataDictionaryList
-					
-					this[listName] = arr
-				
+
+				API.teamMembers().then((res) => {
+
+					var arr = res.data.memberList
+
+					this.memberList = arr
+
+					this.memberList.forEach(item => {
+						if (item.id == this.jphelp.getPersonInfo().id) {
+							item.checked = true
+						} else {
+							item.checked = false
+						}
+					})
 					uni.hideLoading();
-				
+
 				}).catch(error => {
-				
+
 					uni.hideLoading();
 					uni.showToast({
 						title: error,
 						icon: "none"
 					})
 				})
-				
+
 			},
-			
-			selectTaskInfoCodeConfirm(e){
+
+			selectTaskInfoCodeConfirm(e) {
 				console.log(e)
-				this.codeN=e[0].label
-				this.taskInfo.code=e[0].value
+				this.codeN = e[0].label
+				this.taskInfo.code = e[0].value
 			},
-			selectTaskInfoCodeBtn(){
-				if(this.taskInfo.code){
+			selectTaskInfoCodeBtn() {
+				if (this.taskInfo.code) {
 					//this.selectTaskInfoCodeValue=[parseInt(this.bindInfo.type)-1]
-					var i =this.codeList.findIndex(item=>{
-						return item.value==this.taskInfo.code
+					var i = this.codeList.findIndex(item => {
+						return item.value == this.taskInfo.code
 					})
-					this.selectTaskInfoCodeValue=[i]
+					this.selectTaskInfoCodeValue = [i]
 				}
-				this.selectTaskInfoCode=true;
+				this.selectTaskInfoCode = true;
 			},
-			gotoSelectLock(){
+			gotoSelectStation() {
 				uni.navigateTo({
-				  url: '/pages/task/selectLock',
-				  events: {
-				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
-				    acceptDataFromOpenerPage: (item)=>{
-						console.log(item)
-						this.taskInfo.lockId=item.item.id
-						this.lockName=item.item.name
-						this.lockNo=item.item.lockNo
-						this.$forceUpdate()
-						
-				    },
-				 
-				  }
-				 
+					url: '/pages/task/selectStation',
+					events: {
+						// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
+						acceptDataFromOpenerPage: (item) => {
+							console.log(item)
+							this.taskInfo.stationId = item.item.id
+							this.stationName = item.item.stationName
+							
+							this.$forceUpdate()
+
+						},
+
+					}
+
 				})
 			}
 		}
 	}
 </script>
 
-<style lang="scss">
-	.jpmain{padding-bottom: 120rpx;}
-.list{
-		background-color: rgba(255,255,255,1);
-		
+<style lang="scss">
+	.jpmain {
+		padding-bottom: 120rpx;
+	}
+
+	.list {
+		background-color: rgba(255, 255, 255, 1);
+
 		border-radius: 8px;
-		
-		margin: 20rpx ;
+
+		margin: 20rpx;
+
 		.item:not(:last-child) {
-		  border-bottom:1px solid rgba(232,232,232,1);
+			border-bottom: 2rpx solid rgba(232, 232, 232, 1);
 		}
-		.item{
+
+		.item {
 			padding: 24rpx;
 			display: flex;
-			    justify-content: space-between;
-			.name{
-				    width: 40%;
-					font-size: 32rpx;
-					color: #777777;
-					span{
-						color:red
-					}
-					white-space: pre;
+			justify-content: space-between;
+
+			.name {
+				width: 40%;
+				font-size: 32rpx;
+				color: #777777;
+
+				span {
+					color: red
+				}
+
+				white-space: pre;
 			}
-			.value{
+
+			.value {
 				font-size: 32rpx;
-				    width: 60%;
+				width: 60%;
 				display: flex;
-				    justify-content: space-between;
-					input::placeholder{
-						color:#AAAAAA;
-					}
-					.img{
-						width: 40rpx;
-						height: 40rpx;
-						
-					}
-					.textarea{
-						background-color: rgba(241,242,245,1);
-						width: 100%;
-						border-radius: 4px;
-					}
-					
+				justify-content: space-between;
+
+				input::placeholder {
+					color: #AAAAAA;
+				}
+
+				.img {
+					width: 40rpx;
+					height: 40rpx;
+
+				}
+
+				.textarea {
+					background-color: rgba(241, 242, 245, 1);
+					width: 100%;
+					border-radius: 8rpx;
+				}
+
+			}
+		}
+
+		.item-plus {
+			flex-direction: column;
+
+			.value,
+			.name {
+				width: 100%;
+			}
+
+			.name {
+				padding-bottom: 32rpx;
 			}
-		}
-		.item-plus{
-			flex-direction: column;
-			.value,.name{
-				   width: 100%;
-			}
-			.name{
-				    padding-bottom: 32rpx;
-			}
 		}
-	}
-	
+	}
+
 	.floating-button {
-		z-index: 999;
-		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;
-			}
+		z-index: 999;
+		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;
+		}
 	}
-	
-	.textareaclass{
-		padding:16rpx
+
+	.textareaclass {
+		padding: 16rpx
 	}
-</style>
+</style>

+ 72 - 72
pages/task/listTask.vue

@@ -139,7 +139,7 @@
 		methods: {
 			gotoSelectLock(){
 				uni.navigateTo({
-				  url: '/pages/task/selectLock?isAll=1',
+				  url: '/pages/task/selectStation?isAll=1',
 				  events: {
 				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
 				    acceptDataFromOpenerPage: (item)=>{
@@ -229,99 +229,99 @@
 </script>
 
 <style lang="scss" scoped>
-
-		.list {
-			padding: 24rpx 24rpx;
-			
+
+		.list {
+			padding: 24rpx 24rpx;
+			
 			.item {
 				border-radius: 8px;
-				
-				display: flex;
-				border-bottom: 1px solid rgba(232, 232, 232, 1);
-				background-color: rgba(255,255,255,1);
-				// padding: 12rpx 0;
-				 margin-bottom: 12rpx ;
-
-				.img {
-					width: 72rpx;
-					height: 72rpx;
-
-				}
-
-				.body {
-					//margin: 0 12rpx;
-					width: 100%;
+				
+				display: flex;
+				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+				background-color: rgba(255,255,255,1);
+				// padding: 12rpx 0;
+				 margin-bottom: 12rpx ;
+
+				.img {
+					width: 72rpx;
+					height: 72rpx;
+
+				}
+
+				.body {
+					//margin: 0 12rpx;
+					width: 100%;
 					.line1,.line2,.line3{
-						padding: 12px;
-					}
+						padding: 24rpx;
+					}
 					.line3{
 						text-align: end;
-					}
-					.line2 {
-						color: rgba(119,119,119,1);
+					}
+					.line2 {
+						color: rgba(119,119,119,1);
 						font-size: 24rpx;
 						//margin-top: 8rpx;
-						border-bottom:1px solid rgba(232,232,232,1);
+						border-bottom:2rpx solid rgba(232,232,232,1);
 						.value:not(:last-child) {
 							margin-bottom: 16rpx;
-						}
-					}
+						}
+					}
 					.line1 {
 						
 						display: flex;
 						justify-content: space-between;
-						 border-bottom:1px solid rgba(232,232,232,1);
-						.title {
-							color: rgba(51, 51, 51, 1);
+						 border-bottom:2rpx solid rgba(232,232,232,1);
+						.title {
+							color: rgba(51, 51, 51, 1);
 							font-size: 28rpx;
-							font-weight: bold;
-						}
-
-						.status {
-							background-color:  rgba(255, 61, 0, 1);
-							font-size: 24rpx;
-							color:#fff;
-							padding: 2rpx 8rpx;
-							//border-radius: 4px;
-
-						}
+							font-weight: bold;
+						}
+
+						.status {
+							background-color:  rgba(255, 61, 0, 1);
+							font-size: 24rpx;
+							color:#fff;
+							padding: 2rpx 8rpx;
+							//border-radius: 8rpx;
+
+						}
 						
 						.status0 {
 							background-color:  #FF7B00;
 							
-						}
-						.status1 {
-							background-color:  #007aff;
-							
-						}
-
-						.status2 {
-							background-color:  #ff9900;
-							
-						}
-
-						.status3 {
-							background-color:  #19be6b;
-							
-						}
-
-						.status4 {
-							border: 1px solid rgba(255, 61, 0, 1);
-							color: rgba(255, 61, 0, 1);
-						}
+						}
+						.status1 {
+							background-color:  #007aff;
+							
+						}
+
+						.status2 {
+							background-color:  #ff9900;
+							
+						}
+
+						.status3 {
+							background-color:  #19be6b;
+							
+						}
+
+						.status4 {
+							border: 2rpx solid rgba(255, 61, 0, 1);
+							color: rgba(255, 61, 0, 1);
+						}
 					}
 					
-					
-				}
-			}
-
-			// .item:not(:last-child) {
-			//   border-bottom:1px solid rgba(232,232,232,1);
-			// }
+					
+				}
+			}
+
+			// .item:not(:last-child) {
+			//   border-bottom:2rpx solid rgba(232,232,232,1);
+			// }
 		}
 		
 		.viewTop{
-			border-bottom: 1px solid #e8e8e8;
+			border-bottom: 2rpx solid #e8e8e8;
 			background-color: #fff;
 			    display: flex;
 			    justify-content: space-between;
@@ -351,7 +351,7 @@
 				display: flex;
 				align-items: center;
 				background: #F2F2F2;
-				padding: 1px 16rpx;
+				padding: 2rpx 16rpx;
 				border-radius: 8px;
 				justify-content: space-between;
 			}

+ 85 - 85
pages/task/maintenanceTaks.vue

@@ -6,7 +6,7 @@
 				@confirm="completionTimeConfirm" :default-time="taskInfo.completionTime"
 				 :params="params"></u-picker>
 
-			
+			
 			<view class="list" >
 				<view class="item">
 					<view class="name">
@@ -66,8 +66,8 @@
 				</view>
 			</view>
 			
-			
-			<view class="list" >
+			
+			<view class="list" >
 				<view class="item"  @click="gotoUrl('/pages/station/stationInfo?id='+floorlockInfo.id)" >
 					<view class="name">
 						地锁编号
@@ -77,15 +77,15 @@
 						{{floorlockInfo.lockNo}}
 						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
 					</view>
-				</view>
-				<view class="item">
-					<view class="name">
-						地锁名称
-				
-					</view>
-					<view class="value">
-						{{floorlockInfo.name}}
-					</view>
+				</view>
+				<view class="item">
+					<view class="name">
+						地锁名称
+				
+					</view>
+					<view class="value">
+						{{floorlockInfo.name}}
+					</view>
 				</view>
 				
 				<view class="item">
@@ -108,9 +108,9 @@
 					<view class="value">
 						{{parkingInfo.address}}
 					</view>
-				</view>
-				
-			</view>
+				</view>
+				
+			</view>
 			<view class="list" >
 				<view class="item item-plus"  >
 					<view class="name">
@@ -137,7 +137,7 @@
 						
 					</view>
 				</view>
-				
+				
 				<view class="item item-plus" style="    align-items: center;"  >
 					<view class="name">
 						处理时间
@@ -189,17 +189,17 @@
 					</view>
 				</view>
 				
-				
-				<view class="item item-plus"  >
-					<view class="name">
-						处理结果				
-					</view>
-					<view class="value"   v-if="floorlockErrorRecord.status==0" >
+				
+				<view class="item item-plus"  >
+					<view class="name">
+						处理结果				
+					</view>
+					<view class="value"   v-if="floorlockErrorRecord.status==0" >
 						<textarea placeholder="请记录处理步骤及结果" 
 						placeholder-class="textareaclass"
 						style="    height: 100px;"
 						v-model="taskInfo.desc"
-						class="textarea"></textarea>
+						class="textarea"></textarea>
 					</view>
 					<view class="value"    v-else >
 						<textarea  style="    height: 100px;"
@@ -207,19 +207,19 @@
 						placeholder-class="textareaclass"
 						v-model="floorlockErrorRecord.repairDesc"
 						class="textarea"></textarea>
-					</view>
-				</view>
-				<view class="item item-plus"  >
-					<view class="name">
+					</view>
+				</view>
+				<view class="item item-plus"  >
+					<view class="name">
 						现场照片
-
-				
-					</view>
-					<view class="value" v-if="floorlockErrorRecord.status==0" >
+
+				
+					</view>
+					<view class="value" v-if="floorlockErrorRecord.status==0" >
 						<u-upload name="photoFile"
 								ref="uUpload"
 								 :form-data="formData" :header="header" :action="action"
-								  :file-list="listPic" ></u-upload>
+								  :file-list="listPic" ></u-upload>
 					</view>
 					<view class="value"  v-else >
 						
@@ -228,18 +228,18 @@
 						 :key="i"
 						 :src="item" mode=""></img>
 						 
-					</view>
+					</view>
 				</view>
-			
-			</view>
 			
-			
-			<view class="floating-button"  v-if="floorlockErrorRecord.status==0" >
-				<view class="button"  @click="submit" >
-					
-					提交
-				</view>
-				
+			</view>
+			
+			
+			<view class="floating-button"  v-if="floorlockErrorRecord.status==0" >
+				<view class="button"  @click="submit" >
+					
+					提交
+				</view>
+				
 			</view>
 	</view>
 </template>
@@ -510,7 +510,7 @@
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss">
 	.jpmain{padding-bottom: 120rpx;}
 .list{
 		background-color: rgba(255,255,255,1);
@@ -518,7 +518,7 @@
 
 		margin: 20rpx ;
 		.item:not(:last-child) {
-		  border-bottom:1px solid rgba(232,232,232,1);
+		  border-bottom:2rpx solid rgba(232,232,232,1);
 		}
 		.item{
 			padding: 20rpx 24rpx;
@@ -558,12 +558,12 @@
 						width: 40rpx;
 						height: 40rpx;
 						
-					}
-					.textarea{
-						background-color: rgba(241,242,245,1);
-						width: 100%;
-						border-radius: 4px;
-					}
+					}
+					.textarea{
+						background-color: rgba(241,242,245,1);
+						width: 100%;
+						border-radius: 4px;
+					}
 					.typeN{
 						font-size: 24rpx;
 						margin-right: 8rpx;
@@ -575,52 +575,52 @@
 					}
 					.typeN1{
 						background-color:#1677ff;
-						//border: 1px solid #1677ff;
+						//border: 2rpx solid #1677ff;
 					}
 					.typeN2{
 						background-color:#19be6b;
-						//border: 1px solid #19be6b;
+						//border: 2rpx solid #19be6b;
 						 
 					}
 			}
-		}
-		.item-plus{
-			flex-direction: column;
-			.value,.name{
-				   width: 100%;
-			}
-			.name{
-				    padding-bottom: 32rpx;
-			}
+		}
+		.item-plus{
+			flex-direction: column;
+			.value,.name{
+				   width: 100%;
+			}
+			.name{
+				    padding-bottom: 32rpx;
+			}
 		}
 		
-	}
+	}
 	.textareaclass{
 		padding:16rpx
-	}
+	}
 	.floating-button {
-		z-index: 999;
-		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;
-			}
+		z-index: 999;
+		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;
+			}
 	}
 	.viewImg{
 		width: 160rpx;

+ 186 - 188
pages/task/selectLock.vue → pages/task/selectStation.vue

@@ -1,16 +1,16 @@
-<template>
+<template>
 	<view>
-		<u-navbar  title="选择地锁" title-color="#101010"></u-navbar>
-		
-		<view class="top">
-			<view class="search">
-				<view class="searchBox">
-					<u-search shape="square" placeholder="使用停车场名称/地锁编号搜索" maxlength="12" v-model="testName" :show-action="false"
-						:animation="true"></u-search>
-					<u-button type="primary" size="mini" @click="testBtn">搜素</u-button>
-				</view>
-			</view>
-		</view>
+		<u-navbar  title="选择站点" title-color="#101010"></u-navbar>
+		
+		<view class="top">
+			<view class="search">
+				<view class="searchBox">
+					<u-search shape="square" placeholder="搜索站点" maxlength="12" 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-if="isAll"  @click="returnName( {id:''})">
 				<view class="v">
@@ -22,191 +22,189 @@
 					
 				</view>
 				<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-			</view>
-			<view class="item" v-for="(item,i) in list" :key="i"
-				@click="returnName( item)">
-				<view class="v">
-					
-
+			</view>
+			<view class="item" v-for="(item,i) in list" :key="i"
+				@click="returnName( item)">
+				<view class="v">
+					
+
 					<view class="v1" >
-						{{item.parkingName}}<span class="y">|</span>{{item.lockNo}}
+						{{item.stationNo}}<span class="y">|</span>{{item.stationName}}
 					</view>
-					<view class="v2" >
-						地锁名称:{{item.name}}
+					
+					<view class="v2" v-if="item.stationAddress" >
+						{{item.stationAddress}}
 					</view>
-					<view class="v2" v-if="item.locationAddress" >
-						地锁地址:{{item.locationAddress}}
-					</view>
-				</view>
-				<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-			</view>
-
-			 
-		</view>
-
-		<u-divider color="#B6BDC3" :isnone="list.length==0">已经到底了</u-divider>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/pagesTask.js'
-
-	export default {
-		data() {
-			return {
-				list: [],
-				testName: "",
-				queryName: "",
+				</view>
+				<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+			</view>
+
+			 
+		</view>
+
+		<u-divider color="#B6BDC3" :isnone="list.length==0">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/pagesTask.js'
+
+	export default {
+		data() {
+			return {
+				list: [],
+				testName: "",
+				queryName: "",
 				type: 1,
-				isAll: 0,
-			};
-		},
+				isAll: 0,
+			};
+		},
 		onLoad(op) {
 			if (op.isAll) {
 				this.isAll = op.isAll
-			}
-			if (op.type) {
-				this.type = op.type
-			}
-			this.getList()
-		},
-		methods: {
-			getList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				var obj = {
-					name: this.testName
-				}
-				if (this.type == 3) {
-					obj.buildMode = 2
-				}
-				API.findFloorLock(obj).then((res) => {
-					this.queryName = this.testName
-					var list = res.data.floorlockInfoList
-					if (list == null) {
-						list = []
-					}
-					this.list = list
-
-
-					
-
-
-					uni.hideLoading();
-
-				}).catch(error => {
-
-					uni.hideLoading();
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				})
-			},
-			returnName(  obj) {
-				const eventChannel = this.getOpenerEventChannel();
-
-				eventChannel.emit('acceptDataFromOpenerPage', {
-				 
-					item: obj
-				})
-				uni.navigateBack()
-			},
-			testBtn() {
-
-				this.list = []
-				//this.listForm.pageIndex=1
-				this.getList()
-			},
-			getInfo() {
-
-			}
-
-		}
-	}
-</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;
-		}
-	}
-
+			}
+			if (op.type) {
+				this.type = op.type
+			}
+			this.getList()
+		},
+		methods: {
+			getList() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				var obj = {
+					name: this.testName
+				}
+				if (this.type == 3) {
+					obj.buildMode = 2
+				}
+				API.userStationList(obj).then((res) => {
+					this.queryName = this.testName
+					var list = res.data.stationList
+					if (list == null) {
+						list = []
+					}
+					this.list = list
+
+
+					
+
+
+					uni.hideLoading();
+
+				}).catch(error => {
+
+					uni.hideLoading();
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			returnName(  obj) {
+				const eventChannel = this.getOpenerEventChannel();
+
+				eventChannel.emit('acceptDataFromOpenerPage', {
+				 
+					item: obj
+				})
+				uni.navigateBack()
+			},
+			testBtn() {
+
+				this.list = []
+				//this.listForm.pageIndex=1
+				this.getList()
+			},
+			getInfo() {
+
+			}
+
+		}
+	}
+</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: 2rpx 16rpx;
+			border-radius: 8px;
+			justify-content: space-between;
+		}
+	}
+
 	.body2 {
-		padding-top: 20rpx;
-		.item:not(:last-child) {
-			border-bottom: 1px solid rgba(232, 232, 232, 1);
-		}
-
-		.item {
-			padding: 24rpx 32rpx;
-			background: #fff;
-			display: flex;
-			justify-content: space-between;
-
-			.vquery {
-				display: flex;
-				align-items: center;
-			}
-
-			.buildMode {
-				font-size: 24rpx;
-				border: 1px solid #bbbbbb;
-				border-radius: 4px;
-				color: #1677ff;
-				padding: 2rpx 8rpx;
-				margin: 0 8rpx;
-
-			}
-
-			.buildMode1 {
-				color: #1677ff;
-				border: 1px solid #1677ff;
-			}
-
-			.buildMode2 {
-				color: #4CAF50;
-				border: 1px solid #4CAF50;
-			}
-
-			.qName {
-				color: #FF5100
-			}
-
-			.v1 {
-				color: rgba(16, 16, 16, 1);
-				font-size: 32rpx;
-			}
+		padding-top: 20rpx;
+		.item:not(:last-child) {
+			border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+		}
+
+		.item {
+			padding: 24rpx 32rpx;
+			background: #fff;
+			display: flex;
+			justify-content: space-between;
+
+			.vquery {
+				display: flex;
+				align-items: center;
+			}
+
+			.buildMode {
+				font-size: 24rpx;
+				border: 2rpx solid #bbbbbb;
+				border-radius: 8rpx;
+				color: #1677ff;
+				padding: 2rpx 8rpx;
+				margin: 0 8rpx;
+
+			}
+
+			.buildMode1 {
+				color: #1677ff;
+				border: 2rpx solid #1677ff;
+			}
+
+			.buildMode2 {
+				color: #4CAF50;
+				border: 2rpx solid #4CAF50;
+			}
+
+			.qName {
+				color: #FF5100
+			}
+
+			.v1 {
+				color: rgba(16, 16, 16, 1);
+				font-size: 32rpx;
+			}
 			.y{
 				margin: 0 8rpx;
-				color:rgba(119, 119, 119, 1);
+				color:rgba(119, 119, 119, 1);
 				
-			}
-			.v2 {
-				color: rgba(119, 119, 119, 1);
-				font-size: 24rpx;
-			}
-
-		}
-	}
+			}
+			.v2 {
+				color: rgba(119, 119, 119, 1);
+				font-size: 24rpx;
+			}
+
+		}
+	}
 </style>

+ 153 - 153
pages/team/teamAdd.vue

@@ -1,58 +1,58 @@
-<template>
-	<view>
-		<u-navbar title="成员信息" title-color="#101010"></u-navbar>
-		<view class="list">
-			<view class="item">
-				<view class="name">
-					<span>*</span>成员姓名
-
-				</view>
-				<view class="value">
-					<u-input v-model="addInfo.name" placeholder="请输入成员姓名"></u-input>
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					<span>*</span>登录手机号
-
-				</view>
-				<view class="value">
-					<u-input v-model="addInfo.phone"  placeholder="请输入登录手机号"></u-input>
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					登录密码
-
-				</view>
-				<view class="value">
-					<u-input placeholder="不填写默认123456" v-model="addInfo.password"></u-input>
-				</view>
-			</view>
-
-
-		</view>
-		<view class="floating-button">
-			<view class="button" @click="submit">
-
-				提交
-			</view>
-
-		</view>
-
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/pagesTeam.js'
-
-	export default {
-		data() {
-			return {
+<template>
+	<view>
+		<u-navbar title="成员信息" title-color="#101010"></u-navbar>
+		<view class="list">
+			<view class="item">
+				<view class="name">
+					<span>*</span>成员姓名
+
+				</view>
+				<view class="value">
+					<u-input v-model="addInfo.name" placeholder="请输入成员姓名"></u-input>
+				</view>
+			</view>
+			<view class="item">
+				<view class="name">
+					<span>*</span>登录手机号
+
+				</view>
+				<view class="value">
+					<u-input v-model="addInfo.phone"  placeholder="请输入登录手机号"></u-input>
+				</view>
+			</view>
+			<view class="item">
+				<view class="name">
+					登录密码
+
+				</view>
+				<view class="value">
+					<u-input placeholder="不填写默认123456" v-model="addInfo.password"></u-input>
+				</view>
+			</view>
+
+
+		</view>
+		<view class="floating-button">
+			<view class="button" @click="submit">
+
+				提交
+			</view>
+
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/pagesTeam.js'
+
+	export default {
+		data() {
+			return {
 				addInfo: {
 					roleName:"XJ"
-				}
-			};
+				}
+			};
 		},
 		methods:{
 			submit(){
@@ -103,105 +103,105 @@
 				
 				
 			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.jpmain {
-		padding-bottom: 120rpx;
-	}
-
-	.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: 24rpx;
-			display: flex;
-			align-items: center;
-			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;
-
-				}
-
-				.textarea {
-					background-color: rgba(241, 242, 245, 1);
-					width: 100%;
-					border-radius: 4px;
-				}
-
-			}
-		}
-
-		.item-plus {
-			flex-direction: column;
-
-			.value,
-			.name {
-				width: 100%;
-			}
-
-			.name {
-				padding-bottom: 32rpx;
-			}
-		}
-	}
-
+		}
+	}
+</script>
+
+<style lang="scss">
+	.jpmain {
+		padding-bottom: 120rpx;
+	}
+
+	.list {
+		background-color: rgba(255, 255, 255, 1);
+
+		margin: 20rpx 0;
+
+		.item:not(:last-child) {
+			border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+		}
+
+		.item {
+			padding: 24rpx;
+			display: flex;
+			align-items: center;
+			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;
+
+				}
+
+				.textarea {
+					background-color: rgba(241, 242, 245, 1);
+					width: 100%;
+					border-radius: 8rpx;
+				}
+
+			}
+		}
+
+		.item-plus {
+			flex-direction: column;
+
+			.value,
+			.name {
+				width: 100%;
+			}
+
+			.name {
+				padding-bottom: 32rpx;
+			}
+		}
+	}
+
 	.floating-button {
-		z-index: 999;
-		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;
-		}
-	}
+		z-index: 999;
+		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>

+ 33 - 19
pages/team/teamList.vue

@@ -20,7 +20,7 @@
 				
 				<view class="icon">
 					
-					<image class="img" v-if="item.headImg" :src="item.headImg" mode=""></image>
+					<image class="img" v-if="item.image" :src="item.image" mode=""></image>
 					
 					<image class="img" v-else src="@/assets/img/默认头像.png" mode=""></image>
 				</view>
@@ -28,7 +28,7 @@
 				<view class="body">
 					<view class="line1">
 						<view class="title">
-							{{item.realName}} ({{item.userName}})
+							{{item.name}} <span class="tag">{{item.roleName}}</span> 
 		
 						</view>
 						
@@ -37,7 +37,8 @@
 					<view class="line2">
 						<view class="value">
 							
-							{{roleNamesShow(item.roleNames)}}
+							{{item.phone}}
+							
 						</view>
 					
 					</view>
@@ -53,6 +54,8 @@
 		<view class="floating-button">
 			<view class="button"  @click="gotoUrl('/pages/team/teamAdd')" >
 				
+				<image class="img"  src="@/assets/img/team/index0.svg" mode=""></image>
+				
 				添加人员
 			</view>
 			
@@ -93,10 +96,10 @@
 		},
 		onLoad(op) {
 			
-			
+			this.getList()
 		},
 		onShow(){
-			this.getList()
+			
 		},
 		methods: {
 			roleNamesShow(str){
@@ -130,19 +133,13 @@
 					mask: true,
 				})
 					 
-				API.userList(this.listForm).then((res) => {
+				API.teamMembers(this.listForm).then((res) => {
 					this.queryName = this.testName
 					var list=[]
 					
-					if (this.listForm.pageIndex == 1) {
-						list = res.data.data;
-					} else {
-						list = [
-							...list,
-							...res.data.data
-						];
-					}
-					this.list = res.data.data
+				
+					this.list = res.data.memberList
+					console.log(this.list)
 					uni.hideLoading();
 				
 				}).catch(error => {
@@ -169,7 +166,11 @@ background-color: rgba(255,255,255,1);
 				border-bottom: 1px solid rgba(232, 232, 232, 1);
 				padding: 12rpx 0;
 				margin: 12rpx 0;
-
+				.icon{
+						    display: flex;
+						    align-items: center;
+							margin-right: 8rpx;
+					}
 				.img {
 					width: 72rpx;
 					height: 72rpx;
@@ -179,7 +180,7 @@ background-color: rgba(255,255,255,1);
 				.body {
 					margin: 0 12rpx;
 					width: 100%;
-
+					
 					.line1,
 					.line2 {
 
@@ -194,7 +195,7 @@ background-color: rgba(255,255,255,1);
 					.line1 {
 						.title {
 							color: rgba(51, 51, 51, 1);
-							font-size: 28rpx;
+							font-size: 32rpx;
 							font-weight: bold;
 						}
 
@@ -295,6 +296,19 @@ background-color: rgba(255,255,255,1);
 						color: rgba(255,255,255,1);
 						font-size: 36rpx;
 				}
+				.img{
+					width: 40rpx;
+					height: 40rpx;
+				}
+		}
+		.tag{
+			border-radius: 2pt;
+			background-color: rgba(22,119,255,1);
+			color: rgba(255,255,255,1);
+			font-size: 24rpx;
+			line-height: 24rpx;
+			padding:2rpx 8rpx;
+			margin-left: 8rpx;
+
 		}
-		
 </style>

+ 3 - 0
uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue

@@ -178,12 +178,15 @@
 				// 执行父组件u-checkbox-group的事件方法
 				// 等待下一个周期再执行,因为this.$emit('input')作用于父组件,再反馈到子组件内部,需要时间
 				setTimeout(() => {
+					
 					if(this.parent && this.parent.emitEvent) this.parent.emitEvent();
+					
 				}, 80);
 			},
 			// 设置input的值,这里通过input事件,设置通过v-model绑定的组件的值
 			setValue() {
 				// 判断是否超过了可选的最大数量
+				
 				let checkedNum = 0;
 				if(this.parent && this.parent.children) {
 					// 只要父组件的某一个子元素的value为true,就加1(已有的选中数量)

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików