zhengkaixin 4 maanden geleden
bovenliggende
commit
4002ca9916

+ 8 - 0
apis/pagejs/index.js

@@ -34,4 +34,12 @@ export function parkingFloorlockList(data) {
  		data: data,
  		url: '/mobile/floorlock/parkingFloorlockList'
  	})
+}
+
+export function operateFloorlock(data) {
+ 	return requestWhite({
+ 		method: 'post',
+ 		data: data,
+ 		url: '/mobile/floorlock/operateFloorlock'
+ 	})
 }

+ 22 - 0
apis/pagejs/mylock.js

@@ -24,4 +24,26 @@ export function application_myList(data) {
  		data: data,
  		url: '/mobile/application/myList'
  	})
+}
+
+export function whiteList(data) {
+ 	return requestWhite({
+ 		method: 'post',
+ 		data: data,
+ 		url: '/mobile/floorlock/whiteList'
+ 	})
+}
+export function addWhite(data) {
+ 	return requestWhite({
+ 		method: 'post',
+ 		data: data,
+ 		url: '/mobile/floorlock/addWhite'
+ 	})
+}
+export function deleteWhite(data) {
+ 	return requestWhite({
+ 		method: 'post',
+ 		data: data,
+ 		url: '/mobile/floorlock/deleteWhite'
+ 	})
 }

+ 1 - 6
pages.json

@@ -39,12 +39,7 @@
 						"navigationBarTitleText" : "个人中心"
 					}
 				},
-				{
-					"path" : "pages/index/main/nonwhitelist",
-					"style" : {
-						
-					}
-				},
+				
 				{
 					"path" : "pages/mylock/myLock",
 					"style" : 

+ 36 - 10
pages/index/main/lockInfo.vue

@@ -37,8 +37,8 @@
 						<view class="name">
 							{{floorlockInfo.name}}<span class="tag">{{floorlockInfo.typeN}}</span>
 						</view>
-						<view class="value">
-							<view class="jpbutton jpbutton1" @click="operateBtn"
+						<view class="value" @click="operateBtn">
+							<view class="jpbutton jpbutton1" 
 							 v-if="floorlockInfo.status==0" >
 								<img class="img" src="@/assets/img/button/lock.png" alt="">
 								降锁
@@ -120,7 +120,7 @@
 		},
 		onReady() {
 			this.setIntervalId=setInterval(()=>{
-				this.getFloorlockDetails()
+				this.getFloorlockDetails(1)
 			},1000*5)
 		},
 		onUnload() {
@@ -132,16 +132,39 @@
 		},
 		methods: {
 			operateBtn(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				var obj={
+					id:this.id
+				}
+			
+				API.operateFloorlock(obj).then((res) => {
+				
+					uni.hideLoading();
+					this.getFloorlockDetails()
+					
+				}).catch(error => {
 				
+					uni.hideLoading();
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})		
+				})
 			},
-			getFloorlockDetails() {
+			getFloorlockDetails(bl) {
 				if(!this.id){
 					return
+				}
+				if(!bl){
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
 				}
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
+				
 				var obj = {
 					id: this.id
 				}
@@ -161,8 +184,11 @@
 					}else{
 						this.permission=true
 					}
-					uni.hideLoading();
-
+					
+					
+					if(!bl){
+						uni.hideLoading();
+					}
 				}).catch(error => {
 
 					uni.hideLoading();

+ 0 - 60
pages/index/main/nonwhitelist.vue

@@ -1,60 +0,0 @@
-<template>
-	<view class="page">
-		<img class="img" src="@/assets/img/nonwhitelist/info.png" alt="">
-		<view class="text1">暂无权限</view>
-		<view class="text2">此车位仅限车主及白名单用户使用</view>
-		<view class="botton">返回首页</view>
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/index.js'
-	
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	.page {
-		padding-top: 120rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-
-		.img {
-			width: 500rpx;
-			height: 500rpx;
-		}
-
-		.text1 {
-			color: rgba(51, 51, 51, 1);
-			font-weight: bold;
-			font-size: 48rpx;
-			margin-bottom: 16rpx;
-		}
-
-		.text2 {
-			color: rgba(51, 51, 51, 1);
-			font-size: 36rpx;
-			margin-bottom: 200rpx;
-		}
-
-		.botton {
-			border-radius: 100rpx;
-			width: 360rpx;
-			text-align: center;
-			border: 1px solid rgba(187, 187, 187, 1);
-			color: rgba(22, 119, 255, 1);
-			padding: 16rpx;
-
-		}
-	}
-</style>

+ 25 - 7
pages/index/main/parkingDetails.vue

@@ -100,7 +100,8 @@
 				parkingInfo:[],
 				latitude: 30.337053,
 				longitude: 112.240222,
-				point:false,//是否获取了定位
+				point:false,//是否获取了定位
+				setIntervalId:"",
 			}
 		},
 		onLoad(op) {
@@ -108,6 +109,18 @@
 			this.getParkingDetails()
 			
 			
+		},
+		onReady() {
+			this.setIntervalId=setInterval(()=>{
+				this.getParkingFloorlockList(1)
+			},1000*5)
+		},
+		onUnload() {
+			//setInterval
+			if(this.setIntervalId){
+				clearInterval(this.setIntervalId)
+			}
+			
 		},
 		computed:{
 			idleNum(){
@@ -168,19 +181,24 @@
 					})	
 				}
 			},
-			getParkingFloorlockList(){
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
+			getParkingFloorlockList(bl){
+				if(!bl){
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+				}
+				
 				var obj={
 					parkingId:this.id
 				}
 				
 				API.parkingFloorlockList(obj).then((res) => {
 					this.floorlockInfoList=res.data.floorlockInfoList
+					if(!bl){
+						uni.hideLoading();
+					}
 					
-					uni.hideLoading();
 					
 				}).catch(error => {
 				

+ 377 - 283
pages/mylock/infoLock.vue

@@ -5,20 +5,20 @@
 
 			</view>
 		</view>
-		<view class="body">
-			<view class="page-top">
-				<view class="text1">地锁名称</view>
-				<view class="text2">地锁名称11<u-icon name="edit-pen" size="32" color="#FFFFFF" ></u-icon></view>
+		<view class="body">
+			<view class="page-top">
+				<view class="text1">地锁名称</view>
+				<view class="text2">地锁名称11<u-icon name="edit-pen" size="32" color="#FFFFFF"></u-icon></view>
 			</view>
 			<view class="page">
 				<view class="info-title">
 					<view class="name">设备信息</view>
 					<view class="value">
 						<view class="pack-up" v-show="listShow" @click="listShow=false">
-							收起<u-icon name="arrow-up" size="32" color="#AAAAAA" ></u-icon>
+							收起<u-icon name="arrow-up" size="32" color="#AAAAAA"></u-icon>
 						</view>
 						<view class="pack-up" v-if="!listShow" @click="listShow=true">
-							展开<u-icon name="arrow-down" size="32" color="#AAAAAA" ></u-icon>
+							展开<u-icon name="arrow-down" size="32" color="#AAAAAA"></u-icon>
 						</view>
 					</view>
 				</view>
@@ -116,106 +116,213 @@
 
 						</view>
 
-					</view>
-						</view>
-							</view>
-					<view class="page">
-						<view class="info-title">
-							<view class="name">充电白名单<span class="span">({{vipUserList.length}}/3)</span></view>
-							<view class="value" @click="addUser()">
-								<u-icon style="    margin-top: 2px;" size="30" name="plus"></u-icon> 添加
-							</view>
-						</view>
-						<view class="table">
-							<table>
-								<tr>
-									<td>姓名</td>
-									<td>手机号</td>
-									<td>车牌号</td>
-									<td>操作</td>
-								</tr>
-								<tr v-for="(item,i) in vipUserList" :key="i">
-									<td>{{item.userName}}</td>
-									<td>{{item.phone}}</td>
-									<td>{{item.carNum==0?'':item.carNum}}</td>
-									<td class="" style="color:#1677FF" @click="editUser(item)">修改</td>
-								</tr>
-
-							</table>
-
-						</view>
 					</view>
-				</view>
-				
-				<u-popup v-model="popupShow" mode="bottom" :closeable="true" border-radius="30">
-					<view class="popup-screen">
-						<view class="popup-title">{{vipUser.id?'修改':'添加'}}白名单信息</view>
-						<view style="padding: 4px;">白名单车主姓名<span style="color: red;">*</span></view>
-						<u-input :customStyle="customStyle" v-model="vipUser.name" placeholder="白名单车主姓名(必填)"></u-input>
-						<view style="padding: 4px;">白名单车主手机号码<span style="color: red;">*</span></view>
-						<u-input :customStyle="customStyle" type="number" v-model="vipUser.phone"
-							placeholder="白名单车主手机号码(必填)"></u-input>
-						<view style="padding: 4px;">白名单车主车牌号</view>
-						<u-input :customStyle="customStyle" v-model="vipUser.carNum" placeholder="白名单车主车牌号"></u-input>
-
-						<view v-if="vipUser.id" style="display: flex;">
-							<u-button type="info" style="margin-top: 10px;width: 49%;" shape="circle"
-								@click="delUser()">删除</u-button>
-							<u-button type="success" style="margin-top: 10px;width: 49%;" shape="circle"
-								@click="submitUser()">保存</u-button>
-						</view>
-						<view v-else>
+				</view>
+			</view>
+			<view class="page">
+				<view class="info-title">
+					<view class="name">充电白名单<span class="span">({{whiteList.length}}/3)</span></view>
+					<view class="value" @click="addUser()">
+						<u-icon style="    margin-top: 2px;" size="30" name="plus"></u-icon> 添加
+					</view>
+				</view>
+				<view class="table">
+					<table>
+						<tr>
+							<td>姓名</td>
+							<td>手机号</td>
+							<td>车牌号</td>
+							<td>操作</td>
+						</tr>
+						<tr v-for="(item,i) in whiteList" :key="i">
+							<td>{{item.nickName}}</td>
+							<td>{{item.phone}}</td>
+							<td>{{item.carNumber==0?'':item.carNumber}}</td>
+							<td class="" style="color:#1677FF;white-space: pre;" @click="editUser(item)">修改</td>
+						</tr>
+
+					</table>
 
-							<u-button type="success" style="margin-top: 10px;" shape="circle"
-								@click="submitUser()">保存</u-button>
-						</view>
+				</view>
+			</view>
+		</view>
 
+		<u-popup v-model="popupShow" mode="bottom" :closeable="true" border-radius="30">
+			<view class="popup-screen">
 
-					</view>
-				</u-popup>
-				<u-modal v-model="delShow" @confirm="confirmDelete" confirm-color="#fa3534" :show-cancel-button="true"
-					ref="uModal" title="删除白名单用户" content="是否删除当前白名单用户?" confirm-text="删除"></u-modal>
+						<u-keyboard ref="uKeyboard"  @change="valChange" @backspace="backspace"
+						:tips="vipUser.carNumber?vipUser.carNumber:'请输入车牌号'"
+						mode="car" v-model="carshow"  :abc="abc" ></u-keyboard>
 
-				<view class="floating-button">
-					<view class="button">
 
-						保存
-					</view>
+				<view class="popup-title">{{vipUser.id?'修改':'添加'}}白名单信息</view>
+				<view style="padding: 4px;">白名单车主姓名<span style="color: red;">*</span></view>
+				<u-input :customStyle="customStyle" v-model="vipUser.nickName" placeholder="白名单车主姓名(必填)"></u-input>
+				<view style="padding: 4px;">白名单车主手机号码<span style="color: red;">*</span></view>
+				<u-input :customStyle="customStyle" type="number" v-model="vipUser.phone"
+					placeholder="白名单车主手机号码(必填)"></u-input>
+				<view style="padding: 4px;">白名单车主车牌号</view>
+				<!-- 						<u-input :customStyle="customStyle" v-model="vipUser.carNumber" placeholder="白名单车主车牌号"></u-input> -->
+
+				<view class="carNumber"  @click="carshow=true,valInit(1)"
+				:class="{
+								'carNumber1':!vipUser.carNumber
+							}">
+					{{vipUser.carNumber?vipUser.carNumber:'白名单车主车牌号'}}
+				</view>
+				<view v-if="vipUser.id" style="display: flex;">
+					<u-button type="info" style="margin-top: 10px;width: 49%;" shape="circle"
+						@click="delUser()">删除</u-button>
+					<u-button type="success" style="margin-top: 10px;width: 49%;" shape="circle"
+						@click="submitUser()">保存</u-button>
+				</view>
+				<view v-else>
 
+					<u-button type="success" style="margin-top: 10px;" shape="circle"
+						@click="submitUser()">保存</u-button>
 				</view>
-			
-			
+
+
+			</view>
+		</u-popup>
+		<u-modal v-model="delShow" @confirm="confirmDelete" confirm-color="#fa3534" :show-cancel-button="true"
+			ref="uModal" title="删除白名单用户" content="是否删除当前白名单用户?" confirm-text="删除"></u-modal>
+
+		<view class="floating-button">
+			<view class="button">
+
+				保存
 			</view>
+
+		</view>
+
+
+	</view>
 </template>
 
-<script>
-	import * as API from '@/apis/pagejs/mylock.js'
-	
+<script>
+	import * as API from '@/apis/pagejs/mylock.js'
+
 	export default {
 		data() {
 			return {
+				id: "",
+				floorlockInfo: {},
 				listShow: true,
 				popupShow: false,
 				customStyle: {
 					"border-radius": "50px",
 					"background-color": 'rgba(242, 244, 246, 1)',
 					padding: "5px 20px",
-					margin: "5px 0 "
+					margin: "5px 0 ",
+					
 				},
-				applyList: [],
-				vipUserList: [],
+				abc:false,
+				whiteList: [],
 				vipUser: {},
 				delShow: false,
 				obj: {},
+				carshow: false,
 			};
 		},
 		onLoad(op) {
-			//this.myApplyList()
+			this.id = op.id
+			this.getFloorlockDetails()
 
 		},
-		methods: {
+		methods: {
+			valInit(bl){
+				if(bl){
+					this.abc=this.vipUser.carNumber.length>0
+				}else{
+					if(this.vipUser.carNumber.length==1&&this.abc==false){
+						this.abc=true
+					}
+					if(this.vipUser.carNumber.length==0&&this.abc==true){
+						this.abc=false
+					}
+				}
+				
+			},
+			valChange(val){
+				
+				if(this.vipUser.carNumber.length>=8){
+					return
+				}
+				this.vipUser.carNumber+=val
+				this.valInit()
+				this.$forceUpdate()
+			},
+			backspace(){
+				//
+				var value=this.vipUser.carNumber
+				if(value.length){
+					value = value.substr(0, value.length - 1);
+					
+				}
+				this.vipUser.carNumber=value
+				this.valInit()
+				
+
+			},
+			getFloorlockDetails() {
+
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				var obj = {
+					id: this.id
+				}
+
+				API.floorlockDetails(obj).then((res) => {
+					this.floorlockInfo = res.data.floorlockInfo
+
+					uni.hideLoading();
+					this.getWhiteList()
+				}).catch(error => {
+
+					uni.hideLoading();
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getWhiteList(bl) {
+
+				if (bl) {
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+				}
+				API.whiteList({
+					floorlockId: this.id
+				}).then((res) => {
+					this.whiteList = res.data.whiteList
+
+					if (bl) {
+						uni.hideLoading()
+						uni.showToast({
+							title: "操作成功"
+						})
+					}
+
+
+
+
+				}).catch(error => {
+
+					uni.showToast({
+						title: error
+					})
+				})
+
+
+			},
 			submitUser() {
-				if (!this.vipUser.name) {
+				if (!this.vipUser.nickName) {
 					uni.showToast({
 						title: "请填写白名单车主姓名"
 					})
@@ -231,13 +338,14 @@
 					title: "加载中",
 					mask: true,
 				})
-				API_apply.saveVipUser(this.vipUser).then((res) => {
+				this.vipUser.name = this.vipUser.nickName
+				API.addWhite(this.vipUser).then((res) => {
 					//this.obj = res.data
 					uni.hideLoading()
 
 					this.delShow = false
 					this.popupShow = false
-					this.findVipUser(1)
+					this.getWhiteList(1)
 
 				}).catch(error => {
 
@@ -253,7 +361,7 @@
 					title: "加载中",
 					mask: true,
 				})
-				API_apply.deleteVipUser({
+				API.deleteWhite({
 					id: this.vipUser.id
 				}).then((res) => {
 					//this.obj = res.data
@@ -263,7 +371,7 @@
 					uni.showToast({
 						title: "操作成功"
 					})
-					this.findVipUser(1)
+					this.getWhiteList(1)
 
 				}).catch(error => {
 
@@ -278,246 +386,232 @@
 			editUser(item) {
 				this.popupShow = true;
 				this.vipUser = item;
-				this.vipUser.name = item.userName
-				var item = this.applyList[0]
-				this.vipUser.stationId = item.stationId
-				if (this.vipUser.carNum == 0) {
-					this.vipUser.carNum = ''
+				this.vipUser.nickName = item.nickName
+
+
+				this.vipUser.floorlockId = this.id
+				if (this.vipUser.carNumber == 0) {
+					this.vipUser.carNumber = ''
 				}
 			},
 			addUser() {
-				if (this.vipUserList.length >= 3) {
+				if (this.whiteList.length >= 3) {
 					uni.showToast({
 						title: "添加白名单用户已达到上限"
 					})
 					return
 				}
 				this.popupShow = true;
-				this.vipUser = {}
-				var item = this.applyList[0]
-				this.vipUser.stationId = item.stationId
-
-			},
-			findDeviceByNo() {
-				var item = this.applyList[0]
-				API_apply.findDeviceByNoD({
-					deviceNo: item.deviceNo
-				}).then((res) => {
-					this.obj = res.data.chargingDevice
-					uni.hideLoading()
-
-
-
-
-				}).catch(error => {
-					uni.showToast({
-						title: error
-					})
-				})
-			},
-			findVipUser(bl) {
-				if (bl) {
-					uni.showLoading({
-						title: "加载中",
-						mask: true,
-					})
+				this.vipUser = {
+					carNumber:""
 				}
-				var item = this.applyList[0]
-				this.vipUserList = []
-				API_apply.findVipUser({
-					stationId: item.stationId
-				}).then((res) => {
-					if (bl) {
-
-						uni.hideLoading()
-						uni.showToast({
-							title: "操作成功"
-						})
-					}
-
-					this.vipUserList = res.data.vipUserList
-
-
 
-				}).catch(error => {
+				this.vipUser.floorlockId = this.id
 
-					uni.showToast({
-						title: error
-					})
-				})
 			},
-			myApplyList() {
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				API_apply.myApplyList({
-
-				}).then((res) => {
-					//this.obj = res.data
 
-					this.applyList = res.data.applyList;
-					this.findVipUser()
-					this.findDeviceByNo()
 
-				}).catch(error => {
-					uni.showToast({
-						title: error
-					})
-				})
-			},
 		}
 	}
 </script>
-<style>
-	page {
-		background-color: rgba(242, 244, 246, 1);
-	}
+<style>
+	page {
+		background-color: rgba(242, 244, 246, 1);
+	}
 </style>
 <style lang="scss" scoped>
-	 .gradient-header {
-	 	height: 0px;
-	 }
-	 
-	 .jpback {
-	 	height: 360rpx;
-	background: linear-gradient(180deg, rgba(22,119,255,1) 11%,rgba(242,244,246,1) 100%); }
+	.gradient-header {
+		height: 0px;
+	}
+
+	.jpback {
+		height: 360rpx;
+		background: linear-gradient(180deg, rgba(22, 119, 255, 1) 11%, rgba(242, 244, 246, 1) 100%);
+	}
 
 	.body {
-		padding: 32rpx 32rpx 120rpx 32px;
+		padding: 32rpx 32rpx 120rpx 32px;
 		//padding-bottom: ;
 	}
-	.page-top{
-		color: rgba(255,255,255,1);
-		margin: 48rpx 0;
-		.text1{
-			font-size: 36rpx;
-			margin-bottom: 12rpx;
-		}
-		.text2{
-			font-size: 40rpx;
-
-		}
+
+	.page-top {
+		color: rgba(255, 255, 255, 1);
+		margin: 48rpx 0;
+
+		.text1 {
+			font-size: 36rpx;
+			margin-bottom: 12rpx;
+		}
+
+		.text2 {
+			font-size: 40rpx;
+
+		}
 	}
+
 	.page {
 		border-radius: 16rpx;
 		background-color: rgba(255, 255, 255, 1);
 		color: rgba(16, 16, 16, 1);
 
-		padding:  32rpx;
+		padding: 32rpx;
 		margin-bottom: 32rpx;
 		font-size: 32rpx;
-		color: rgb(16, 16, 16);
-		
-		.info-title{
-			    display: flex;
-			    justify-content: space-between;
-				padding-bottom: 24rpx ;
-				.name{
-					font-size: 36rpx;
-					color: rgba(51, 51, 51, 1);
-					font-weight: bold;
-					.span{
-						font-weight: 400;
-						font-size: 28rpx;
-						color: rgba(119, 119, 119, 1);
-					}
-				}
-				.value{
-					font-size: 28rpx;
-					color: rgba(119, 119, 119, 1);
-				}
-		}
-		.pack-up {
-			
-			
-			color: rgba(119, 119, 119, 100);
-		}
-		.tips{
-			  margin-top: 12rpx;
-			display: flex;
-			    align-items: flex-start;
-			font-size: 24rpx;
-		}
-		.table{
-			  table{
-				   width: 100%;
-			  }
-			.row{
-				 display: flex;
-				     align-items: center;
-				 height: 72rpx;
-				font-size: 28rpx;
-				padding: 0 24rpx;
-				 .name{
-					 width: 240rpx;
-				 }
-				 
-			}
-			td{
-				height: 72rpx;
-				font-size: 28rpx;
-				padding: 0 24rpx;
-			}
-			  /* 隔行变色: 偶数行设置背景色 */
-			  .row:nth-child(odd) {
-			      background-color: #f9f9f9; /* 偶数行 */
-			    }
-				tr:nth-child(odd) {
-				    background-color: #f9f9f9; /* 偶数行 */
-				  }
-			.row:nth-child(even) {
-			     background-color: #ffffff; /* 奇数行 */
-			   }
-			   tr:nth-child(even) {
-			        background-color: #ffffff; /* 奇数行 */
-			      }
-			 
+		color: rgb(16, 16, 16);
+
+		.info-title {
+			display: flex;
+			justify-content: space-between;
+			padding-bottom: 24rpx;
+
+			.name {
+				font-size: 36rpx;
+				color: rgba(51, 51, 51, 1);
+				font-weight: bold;
+
+				.span {
+					font-weight: 400;
+					font-size: 28rpx;
+					color: rgba(119, 119, 119, 1);
+				}
+			}
+
+			.value {
+				font-size: 28rpx;
+				color: rgba(119, 119, 119, 1);
+			}
+		}
+
+		.pack-up {
+
+
+			color: rgba(119, 119, 119, 100);
+		}
+
+		.tips {
+			margin-top: 12rpx;
+			display: flex;
+			align-items: flex-start;
+			font-size: 24rpx;
+		}
+
+		.table {
+			table {
+				width: 100%;
+			}
+
+			.row {
+				display: flex;
+				align-items: center;
+				height: 72rpx;
+				font-size: 28rpx;
+				padding: 0 24rpx;
+
+				.name {
+					width: 240rpx;
+				}
+
+			}
+
+			td {
+
+				height: 72rpx;
+				font-size: 28rpx;
+
+
+			}
+
+			/* 隔行变色: 偶数行设置背景色 */
+			.row:nth-child(odd) {
+				background-color: #f9f9f9;
+				/* 偶数行 */
+			}
+
+			tr:nth-child(odd) {
+				background-color: #f9f9f9;
+				/* 偶数行 */
+			}
+
+			.row:nth-child(even) {
+				background-color: #ffffff;
+				/* 奇数行 */
+			}
+
+			tr:nth-child(even) {
+				background-color: #ffffff;
+				/* 奇数行 */
+			}
+
 		}
 	}
-	.popup-screen{
-		padding: 40rpx;
-		.popup-title{
-			font-size: 36rpx;
-			color: rgba(51, 51, 51, 1);
-			font-weight: bold;
-			padding-bottom: 10px;
+/deep/.u-keyboard-grids-btn:nth-child(15){
+			background-color: red;
+		}
+	.popup-screen {
+		
+		.carNumber {
+			background-color: #F2F4F6;
+			padding: 5px 20px;
+			margin: 5px 0 15px 0;
+			height: 90rpx;
+			display: flex;
+			align-items: center;
+			border-radius: 50px;
+			
 		}
-		.cardList{
-			    display: flex;
-			    justify-content: space-evenly;
-			
-			.cardInfo{
-				 display: flex;
-				    flex-direction: column;
-				    justify-content: center;
-				    width: 160rpx;
-				    height: 160rpx;
-				border-radius: 8px;
-				background-color: rgba(255, 255, 255, 1);
-				text-align: center;
-				border: 1px solid rgba(187, 187, 187, 1);
-				.name{
-					color: rgba(16, 16, 16, 1);
-					font-size: 28rpx;
-				}
-				.price{
-					color: rgba(16, 16, 16, 1);
-					font-size: 48rpx;
-					font-weight: bold;
-				}
-			}
-			.cardInfoCk{
-				background-color: rgba(225, 247, 237, 1);
-				border: 1px solid rgba(0, 185, 98, 1);
-				
-				.price{
-					color: rgba(0, 161, 85, 1);
-					
-				}
-			}
+		.carNumber1{
+			color: #bcbcbc;
 		}
+		
+
+		padding: 40rpx;
+
+		.popup-title {
+			font-size: 36rpx;
+			color: rgba(51, 51, 51, 1);
+			font-weight: bold;
+			padding-bottom: 10px;
+		}
+
+		.cardList {
+			display: flex;
+			justify-content: space-evenly;
+
+			.cardInfo {
+				display: flex;
+				flex-direction: column;
+				justify-content: center;
+				width: 160rpx;
+				height: 160rpx;
+				border-radius: 8px;
+				background-color: rgba(255, 255, 255, 1);
+				text-align: center;
+				border: 1px solid rgba(187, 187, 187, 1);
+
+				.name {
+					color: rgba(16, 16, 16, 1);
+					font-size: 28rpx;
+				}
+
+				.price {
+					color: rgba(16, 16, 16, 1);
+					font-size: 48rpx;
+					font-weight: bold;
+				}
+			}
+
+			.cardInfoCk {
+				background-color: rgba(225, 247, 237, 1);
+				border: 1px solid rgba(0, 185, 98, 1);
+
+				.price {
+					color: rgba(0, 161, 85, 1);
+
+				}
+			}
+		}
 	}
+
 	.floating-button {
 		position: fixed;
 		bottom: 0;

+ 3 - 1
readme.md

@@ -2,4 +2,6 @@
 (https://modao.cc/proto/0IatAHTQs9utzggeat2cRV/sharing?view_mode=inspect&screen=rbpU6730lGqv3KI4h
  )
  
- 地锁状态(0空闲,1降下/使用中,2异常)
+ 地锁状态(0空闲,1降下/使用中,2异常)‘
+ 
+  https://youdian-test.hbjp.com.cn/floorlock-server/doc.html

+ 14 - 2
uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue

@@ -3,7 +3,11 @@
 		<view class="u-keyboard-grids">
 			<block>
 				<view class="u-keyboard-grids-item" v-for="(group, i) in abc ? EngKeyBoardList : areaList" :key="i">
-					<view :hover-stay-time="100" @tap="carInputClick(i, j)" hover-class="u-carinput-hover" class="u-keyboard-grids-btn"
+					<view :hover-stay-time="100" @tap="carInputClick(i, j)" hover-class="u-carinput-hover"
+					 :class="{
+					 	'u-keyboard-index':item=='鄂'
+					 }"
+					 class="u-keyboard-grids-btn"
 					 v-for="(item, j) in group" :key="j">
 						{{ item }}
 					</view>
@@ -30,12 +34,17 @@
 			random: {
 				type: Boolean,
 				default: false
+			},
+			// 是否打乱键盘按键的顺序
+			abc: {
+				type: Boolean,
+				default: false
 			}
 		},
 		data() {
 			return {
 				// 车牌输入时,abc=true为输入车牌号码,bac=false为输入省份中文简称
-				abc: false
+				//abc: false
 			};
 		},
 		computed: {
@@ -254,4 +263,7 @@
 	.u-keyboard-change .en {
 		transform: translateY(10rpx);
 	}
+	.u-keyboard-index{
+		background-color: #d0f0df;
+	}
 </style>

+ 5 - 1
uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue

@@ -17,7 +17,7 @@
 			<u-number-keyboard :random="random" @backspace="backspace" @change="change" :mode="mode" :dotEnabled="dotEnabled"></u-number-keyboard>
 		</block>
 		<block v-else>
-			<u-car-keyboard :random="random" @backspace="backspace" @change="change"></u-car-keyboard>
+			<u-car-keyboard :random="random" :abc="abc" @backspace="backspace" @change="change"></u-car-keyboard>
 		</block>
 	</u-popup>
 </template>
@@ -54,6 +54,10 @@
 				type: String,
 				default: 'number'
 			},
+			abc: {
+				type: Boolean,
+				default: false
+			},
 			// 是否显示键盘的"."符号
 			dotEnabled: {
 				type: Boolean,