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