yangzj 2 лет назад
Родитель
Сommit
fc211cb1b8

+ 1 - 0
.gitignore

@@ -16,3 +16,4 @@ yarn-error.log*
 /unpackage/
 /node_modules
 /package-lock.json
+/.history/

+ 7 - 3
common/http.interceptor.js

@@ -1,17 +1,21 @@
 // vm,就是我们在vue文件里面的this,所以我们能在这里获取vuex的变量,比如存放在里面的token
 const install = (Vue, vm) => {
 	Vue.prototype.$u.http.setConfig({
-		baseUrl: vm.config.baseUrl
+		baseUrl: vm.config.baseUrl,
+		showLoading: true,
+		loadingText: '加载中...',
+		loadingMask: true,
+		loadingTime: 100
 	});
 	// 请求拦截,配置Token等参数
 	Vue.prototype.$u.http.interceptor.request = (config) => {
 		if(vm.vuex_token){
 			config.header.Authorization = `Bearer ${vm.vuex_token}`;
 		}
-		let noTokenList = ['/client/auth/sendSmsCodeV2', '/client/auth/verifyCodeV2'];
-		if(noTokenList.includes(config.url)) config.header.noToken = true;
 		// 请求地址加时间戳
 		config.url = config.url + '?t=' + Date.now()
+		let noTokenList = ['/client/wechat/h5/code/', '/client/auth/sendSmsCodeV2', '/client/auth/verifyCodeV2'];
+		if(noTokenList.includes(config.url)) config.header.noToken = true;
 		return config; 
 	}
 	// 响应拦截,判断状态码是否通过

+ 1 - 1
manifest.json

@@ -107,7 +107,7 @@
             }
         },
         "devServer" : {
-            "https" : true
+            "https" : false
         }
     }
 }

+ 244 - 228
pages/center/index.vue

@@ -1,62 +1,68 @@
 <template>
-	<view>
-		<!-- ===================================== tabbar ===================================== -->
-		<u-navbar title-color="#fff" :custom-back="customBack" :border-bottom="false" back-icon-color="#CCE8FF"
-			:background="{ background: '#008CFF' }" title="我的"></u-navbar>
+  <view>
+    <!-- ===================================== tabbar ===================================== -->
+    <u-navbar
+      title-color="#fff"
+      :custom-back="customBack"
+      :border-bottom="false"
+      back-icon-color="#CCE8FF"
+      :background="{ background: '#008CFF' }"
+      title="我的"
+    ></u-navbar>
 
-		<!-- ===================================== 头像 ===================================== -->
-		<view class="u-flex user-box u-p-l-30 u-p-r-20 u-p-b-30 u-p-t-30">
-			<view class="u-m-r-24" @click="clickHead">
-				<u-avatar :src="userInfo.headImgUrl || userInfo.avatar || pic" size="140"></u-avatar>
-			</view>
-			<view class="u-flex-1">
-				<view class="u-font-18 u-p-b-20">{{ userInfo.nickname || userInfo.mobile }}</view>
-				<view class="u-font-14">手机号:{{ userInfo.mobile || '暂无' }}</view>
-			</view>
-		</view>
+    <!-- ===================================== 头像 ===================================== -->
+    <view class="u-flex user-box u-p-l-30 u-p-r-20 u-p-b-30 u-p-t-30">
+      <view class="u-m-r-24" @click="clickHead">
+        <u-avatar :src="userInfo.headImgUrl || userInfo.avatar || pic" size="140"></u-avatar>
+      </view>
+      <view class="u-flex-1">
+        <view class="u-font-18 u-p-b-20">{{ userInfo.nickname || userInfo.mobile }}</view>
+        <view class="u-font-14">手机号:{{ userInfo.mobile || '暂无' }}</view>
+      </view>
+    </view>
 
-		<view class="u-m-t-20">
-			<u-cell-group>
-				<!-- <u-cell-item title="贵州银行支付" @click="guizhouPay()">
+    <view class="u-m-t-20">
+      <u-cell-group>
+        <!-- <u-cell-item title="贵州银行支付" @click="guizhouPay()">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="wodecheliang"></u-icon>
         </u-cell-item>-->
-				<u-cell-item title="我的车辆" @click="openPage('pages/myCars/myCars', true)">
-					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="wodecheliang"></u-icon>
-				</u-cell-item>
-				<u-cell-item title="停车记录" @click="openPage('pages/center/order/order')">
-					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="tingchejilu"></u-icon>
-				</u-cell-item>
-			</u-cell-group>
-		</view>
+        <u-cell-item title="我的车辆" @click="openPage('pages/myCars/myCars', true)">
+          <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="wodecheliang"></u-icon>
+        </u-cell-item>
+        <u-cell-item title="停车记录" @click="openPage('pages/center/order/order')">
+          <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="tingchejilu"></u-icon>
+        </u-cell-item>
+      </u-cell-group>
+    </view>
 
-		<view class="u-m-t-20">
-			<u-cell-group>
-				<!-- <u-cell-item title="充值" @click="openPage('pages/myCars/myCars')">
+    <view class="u-m-t-20">
+      <u-cell-group>
+        <!-- <u-cell-item title="充值" @click="openPage('pages/myCars/myCars')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="chongzhi"></u-icon>
         </u-cell-item>-->
-				<u-cell-item title="包月" @click="openPage('pages/center/monthly/monthly')">
-					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="baoyue"></u-icon>
-				</u-cell-item>
-				<!-- <u-cell-item title="提现" @click="openPage('pages/center/order/order')">
+        <u-cell-item title="包月" @click="openPage('pages/center/monthly/monthly')">
+          <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="baoyue"></u-icon>
+        </u-cell-item>
+        <!-- <u-cell-item title="提现" @click="openPage('pages/center/order/order')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="tixian"></u-icon>
         </u-cell-item>-->
-				<!-- <u-cell-item title="退款" @click="openPage('pages/center/order/order')">
+        <!-- <u-cell-item title="退款" @click="openPage('pages/center/order/order')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="tuikuan"></u-icon>
         </u-cell-item>-->
-				<!-- <u-cell-item title="账单记录" @click="openPage('pages/center/order/order')">
+        <!-- <u-cell-item title="账单记录" @click="openPage('pages/center/order/order')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="zhangdanjilu"></u-icon>
         </u-cell-item>-->
-			</u-cell-group>
-		</view>
+      </u-cell-group>
+    </view>
 
-		<!-- <view class="u-m-t-20">
+    <!-- <view class="u-m-t-20">
 			<u-cell-group>
 				<u-cell-item title="我的优惠" @click="openPage('pages/myCars/myCars')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="wodeyouhui"></u-icon>
 				</u-cell-item>
 			</u-cell-group>
     </view>-->
-		<!-- <view class="u-m-t-20">
+    <!-- <view class="u-m-t-20">
 			<u-cell-group>
 				<u-cell-item title="发票管理" @click="openPage('pages/center/invoice/invoice')">
 					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="fapiaoguanli"></u-icon>
@@ -64,211 +70,221 @@
 			</u-cell-group>
     </view>-->
 
-		<view class="u-m-t-20">
-			<u-cell-group>
-				<u-cell-item title="消息中心" @click="openPage('pages/message/message', true)">
-					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="xiaoxi"></u-icon>
-					<u-badge type="success" :count="messageNum" :offset="[38, 80]"></u-badge>
-				</u-cell-item>
-			</u-cell-group>
-		</view>
-		<view class="u-m-t-20 u-m-b-40">
-			<u-cell-group>
-				<u-cell-item title="拨打客服电话" @click="callPhoneShow = true">
-					<u-icon slot="icon" custom-prefix="custom-icon" size="35" name="dianhua"></u-icon>
-				</u-cell-item>
-			</u-cell-group>
-		</view>
-		<u-select v-model="callPhoneShow" :list="callPhoneList" @confirm="phoneCall"></u-select>
+    <view class="u-m-t-20">
+      <u-cell-group>
+        <u-cell-item title="消息中心" @click="openPage('pages/message/message', true)">
+          <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="xiaoxi"></u-icon>
+          <u-badge type="success" :count="messageNum" :offset="[38, 80]"></u-badge>
+        </u-cell-item>
+      </u-cell-group>
+    </view>
+    <view class="u-m-t-20 u-m-b-40">
+      <u-cell-group>
+        <u-cell-item title="拨打客服电话" @click="callPhoneShow = true">
+          <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="dianhua"></u-icon>
+        </u-cell-item>
+      </u-cell-group>
+    </view>
+    <u-select v-model="callPhoneShow" :list="callPhoneList" @confirm="phoneCall"></u-select>
 
-		<!-- <view class="u-m-t-20">
+    <!-- <view class="u-m-t-20">
 			<u-cell-group>
 				<u-cell-item icon="phone" title="手机号登录" @click="openPage('/pages/center/phoneLogin/phoneLogin')"></u-cell-item>
 			</u-cell-group>
     </view>-->
 
-		<!-- ===================================== 登出提示 ===================================== -->
-		<u-modal v-model="logoutPop" :title-style="{ color: '#404040' }" title="登出提示" :show-confirm-button="true"
-			confirm-text="确认" :confirm-style="{ backgroundColor: '#3397FA', color: '#fff' }" :show-cancel-button="true"
-			cancel-text="取消" @cancel="logoutPop = false"
-			:cancel-style="{ backgroundColor: '#EBF1FF', color: '#3397FA' }" @confirm="loginOut">
-			<view class="slot-content">
-				<view class="pay-tips">你确认退出登录吗?</view>
-			</view>
-		</u-modal>
-		<u-toast ref="uToast" />
-	</view>
+    <!-- ===================================== 登出提示 ===================================== -->
+    <u-modal
+      v-model="logoutPop"
+      :title-style="{ color: '#404040' }"
+      title="登出提示"
+      :show-confirm-button="true"
+      confirm-text="确认"
+      :confirm-style="{ backgroundColor: '#3397FA', color: '#fff' }"
+      :show-cancel-button="true"
+      cancel-text="取消"
+      @cancel="logoutPop = false"
+      :cancel-style="{ backgroundColor: '#EBF1FF', color: '#3397FA' }"
+      @confirm="loginOut"
+    >
+      <view class="slot-content">
+        <view class="pay-tips">你确认退出登录吗?</view>
+      </view>
+    </u-modal>
+    <u-toast ref="uToast" />
+  </view>
 </template>
 
 <script>
-	import getUrlParams from '../../utils/getUrlParams.js'
-	export default {
-		data() {
-			return {
-				// 默认头像
-				pic: '/static/img/default-avatar.png',
-				// 用户信息
-				userInfo: [],
-				logoutPop: false,
-				messageNum: 0,
-				callPhoneShow: false,
-				callPhoneList: []
-			}
-		},
-		onLoad() {},
-		onShow() {
-			this.getMsgNum()
-			this.getDict()
-			if (this.vuex_hasLogin) {
-				this.userInfo = this.vuex_user;
-				if (this.vuex_wxinfo) {
-					this.userInfo = Object.assign(this.userInfo, this.vuex_wxinfo);
-				}
-			} else {
-				this.userInfo = [];
-			}
-		},
-		methods: {
-			/**
-			 * 获取客服电话字典
-			 */
-			getDict() {
-				this.$u.api.getDictApi({
-					type: 'customer_service_phone'
-				}).then(res => {
-					if (res.code === 200) {
-						this.callPhoneList = res.data.map(item => {
-							return {
-								value: item.dictValue,
-								label: item.dictLabel
-							}
-						})
-					}
-				})
-			},
-			/**
-			 * 打开新页面
-			 * @param {String} path 跳转路径
-			 * @param {flag} flag 返回存储标识
-			 * */
-			openPage(path, flag) {
-				this.$u.route({
-					url: path
-				})
-				if (flag) {
-					uni.setStorage({
-						key: 'messageBack',
-						data: 'pages/center/index'
-					})
-				}
-			},
-			// 获取消息未读条数
-			getMsgNum() {
-				this.$u.api.getIndexData()
-					.then(res => {
-						if (res.code === 200) {
-							let num = 0
-							if (res.data.news) {
-								res.data.news.forEach(item => {
-									if (item.readFlag == 0) {
-										num += 1
-									}
-								})
-							}
-							this.messageNum = num
-						} else {
-							this.$refs.uToast.show({
-								title: res.msg,
-								type: 'error'
-							})
-						}
-					})
-			},
-			// tabbar 返回
-			customBack() {
-				this.$u.route({
-					type: 'switchTab',
-					url: 'pages/index/index'
-				});
-			},
-			// 拨打电话
-			phoneCall(phone) {
-				uni.makePhoneCall({
-					phoneNumber: phone[0].value || '0851-38222696'
-				});
-			},
-			// 登出
-			loginOut() {
-				this.$u.api.codeV2Api.logoutApi().then(res => {
-					if (res.code === 200) {
-						this.$u.vuex('vuex_hasLogin', false);
-						this.$u.vuex('vuex_token', '');
-						this.$u.vuex('vuex_user', null);
-						uni.removeStorage({
-							key: 'jumpUrl'
-						});
-						uni.removeStorage({
-							key: 'backUrl'
-						});
-						setTimeout(() => {
-							this.logoutPop = false
-							uni.navigateTo({
-								url: '/pages/center/phoneLogin/phoneLogin'
-							})
-						}, 500)
-					} else {
-						this.$refs.uToast.show({
-							title: res.msg || '登出失败',
-							type: 'error'
-						})
-					}
-				})
-			},
-			// 点击头像
-			clickHead() {
-				if (this.$store.state.vuex_hasLogin) {
-					this.logoutPop = true
-				}
-			}
-		}
-	}
+import getUrlParams from '../../utils/getUrlParams.js';
+export default {
+  data() {
+    return {
+      // 默认头像
+      pic: '/static/img/default-avatar.png',
+      // 用户信息
+      userInfo: [],
+      logoutPop: false,
+      messageNum: 0,
+      callPhoneShow: false,
+      callPhoneList: []
+    };
+  },
+  onLoad() {},
+  onShow() {
+    this.getMsgNum();
+    this.getDict();
+    if (this.vuex_hasLogin) {
+      this.userInfo = this.vuex_user;
+      if (this.vuex_wxinfo) {
+        this.userInfo = Object.assign(this.userInfo, this.vuex_wxinfo);
+      }
+    } else {
+      this.userInfo = [];
+    }
+  },
+  methods: {
+    /**
+     * 获取客服电话字典
+     */
+    getDict() {
+      this.$u.api
+        .getDictApi({
+          type: 'customer_service_phone'
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            this.callPhoneList = res.data.map((item) => {
+              return {
+                value: item.dictValue,
+                label: item.dictLabel
+              };
+            });
+          }
+        });
+    },
+    /**
+     * 打开新页面
+     * @param {String} path 跳转路径
+     * @param {flag} flag 返回存储标识
+     * */
+    openPage(path, flag) {
+      this.$u.route({
+        url: path
+      });
+      if (flag) {
+        uni.setStorage({
+          key: 'messageBack',
+          data: 'pages/center/index'
+        });
+      }
+    },
+    // 获取消息未读条数
+    getMsgNum() {
+      this.$u.api.getIndexData().then((res) => {
+        if (res.code === 200) {
+          let num = 0;
+          if (res.data.news) {
+            res.data.news.forEach((item) => {
+              if (item.readFlag == 0) {
+                num += 1;
+              }
+            });
+          }
+          this.messageNum = num;
+        } else {
+          this.$refs.uToast.show({
+            title: res.msg,
+            type: 'error'
+          });
+        }
+      });
+    },
+    // tabbar 返回
+    customBack() {
+      this.$u.route({
+        type: 'switchTab',
+        url: 'pages/index/index'
+      });
+    },
+    // 拨打电话
+    phoneCall(phone) {
+      uni.makePhoneCall({
+        phoneNumber: phone[0].value || '0851-38222696'
+      });
+    },
+    // 登出
+    loginOut() {
+      this.$u.api.codeV2Api.logoutApi().then((res) => {
+        if (res.code === 200) {
+          this.$u.vuex('vuex_hasLogin', false);
+          this.$u.vuex('vuex_token', '');
+          this.$u.vuex('vuex_user', null);
+          uni.removeStorage({
+            key: 'jumpUrl'
+          });
+          uni.removeStorage({
+            key: 'backUrl'
+          });
+          setTimeout(() => {
+            this.logoutPop = false;
+            uni.navigateTo({
+              url: '/pages/center/phoneLogin/phoneLogin'
+            });
+          }, 500);
+        } else {
+          this.$refs.uToast.show({
+            title: res.msg || '登出失败',
+            type: 'error'
+          });
+        }
+      });
+    },
+    // 点击头像
+    clickHead() {
+      if (this.$store.state.vuex_hasLogin) {
+        this.logoutPop = true;
+      }
+    }
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-	page {
-		background-color: $my-page-bg-color;
-	}
+page {
+  background-color: $my-page-bg-color;
+}
 
-	.user-box {
-		position: relative;
-		background-color: $my-main-color;
-		color: #fff;
+.user-box {
+  position: relative;
+  background-color: $my-main-color;
+  color: #fff;
 
-		&:after {
-			position: absolute;
-			right: 0;
-			bottom: 0;
-			content: "";
-			background: url(../../static/img/center-top-bg.png) no-repeat;
-			background-position: -90rpx 0;
-			width: 305rpx;
-			height: 145rpx;
-			z-index: 999;
-		}
-	}
+  &:after {
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    content: '';
+    background: url(../../static/img/center-top-bg.png) no-repeat;
+    background-position: -90rpx 0;
+    width: 305rpx;
+    height: 145rpx;
+    z-index: 999;
+  }
+}
 
-	.u-avatar {
-		border: 10rpx solid #4caeff;
-	}
+.u-avatar {
+  border: 10rpx solid #4caeff;
+}
 
-	.u-cell-box /deep/ .u-cell__left-icon-wrap,
-	.u-cell-box /deep/ .custom-icon {
-		color: $my-main-color;
-		margin-right: 10rpx;
-	}
+.u-cell-box /deep/ .u-cell__left-icon-wrap,
+.u-cell-box /deep/ .custom-icon {
+  color: $my-main-color;
+  margin-right: 10rpx;
+}
 
-	.pay-tips {
-		text-align: center;
-		margin: 30rpx 0;
-	}
+.pay-tips {
+  text-align: center;
+  margin: 30rpx 0;
+}
 </style>

+ 27 - 162
pages/center/order/orderDetails/orderDetails.vue

@@ -1,23 +1,12 @@
 <template>
   <view class="wrap">
     <view class="order-info">
-      <u-image
-        class="order-info-img"
-        width="90rpx"
-        height="90rpx"
-        src="../../../../static/img/position.png"
-      />
+      <u-image class="order-info-img" width="90rpx" height="90rpx" src="../../../../static/img/position.png" />
       <view class="addr">{{ orderInfo.roadName }}</view>
       <view class="pay-amount" v-if="orderInfo.payAmount">-{{ orderInfo.payAmount }}</view>
       <view class="pay-amount" v-else>{{ orderInfo.payAmount }}</view>
       <u-cell-group :border="false">
-        <u-cell-item
-          title="车牌号"
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.vehicleNo"
-        />
+        <u-cell-item title="车牌号" :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.vehicleNo" />
         <u-cell-item
           title="优惠总金额"
           :arrow="false"
@@ -28,44 +17,14 @@
       </u-cell-group>
       <!-- 路段显示 -->
       <u-cell-group v-if="orderType == 'road'">
-        <u-cell-item
-          title="订单编号 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.orderId"
-        />
+        <u-cell-item title="订单编号 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.orderId" />
         <template v-if="orderInfo.deviceType == 1">
-          <u-cell-item
-            title="入场时间 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.inTime"
-          />
-          <u-cell-item
-            title="出场时间 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.outTime"
-          />
+          <u-cell-item title="入场时间 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.inTime" />
+          <u-cell-item title="出场时间 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.outTime" />
         </template>
         <template v-else>
-          <u-cell-item
-            title="开始计费 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.inTime"
-          />
-          <u-cell-item
-            title="结束计费 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.outTime"
-          />
+          <u-cell-item title="开始计费 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.inTime" />
+          <u-cell-item title="结束计费 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.outTime" />
         </template>
         <!-- <u-cell-item
           title="停车时长 "
@@ -82,13 +41,7 @@
 				  :value="orderInfo.freeDuration"
         />-->
         <template v-if="orderInfo.deviceType !== 2">
-          <u-cell-item
-            title="免费时长 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.freeDuration"
-          />
+          <u-cell-item title="免费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.freeDuration" />
         </template>
         <template v-else>
           <u-cell-item
@@ -99,20 +52,8 @@
             :value="(orderInfo.freeDuration || 1) | freeDuration"
           />
         </template>
-        <u-cell-item
-          title="计费时长 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.calcDuration"
-        />
-        <u-cell-item
-          title="累计停车时长 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.duration"
-        />
+        <u-cell-item title="计费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.calcDuration" />
+        <u-cell-item title="累计停车时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.duration" />
         <u-cell-item
           v-if="orderInfo.createTime"
           title="订单创建时间 "
@@ -140,91 +81,25 @@
       </u-cell-group>
       <!-- 停车场时长 -->
       <u-cell-group v-if="orderType == 'park'">
-        <u-cell-item
-          title="订单编号 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.orderId"
-        />
+        <u-cell-item title="订单编号 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.orderId" />
         <template v-if="orderInfo.deviceType == 1">
-          <u-cell-item
-            title="入场通道 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.roadwayName"
-          />
-          <u-cell-item
-            title="入场时间 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.inTime"
-          />
-          <u-cell-item
-            title="出场通道 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.outRoadwayName"
-          />
-          <u-cell-item
-            title="出场时间 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.outTime"
-          />
+          <u-cell-item title="入场通道 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.roadwayName" />
+          <u-cell-item title="入场时间 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.inTime" />
+          <u-cell-item title="出场通道 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.outRoadwayName" />
+          <u-cell-item title="出场时间 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.outTime" />
         </template>
         <template v-else>
-          <u-cell-item
-            title="开始计费 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.inTime"
-          />
-          <u-cell-item
-            title="结束计费 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.outTime"
-          />
+          <u-cell-item title="开始计费 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.inTime" />
+          <u-cell-item title="结束计费 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.outTime" />
         </template>
         <template v-if="orderInfo.deviceType == 1">
-          <u-cell-item
-            title="免费时长 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.freeDuration"
-          />
+          <u-cell-item title="免费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.freeDuration" />
         </template>
         <template v-else>
-          <u-cell-item
-            title="免费时长 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="orderInfo.freeDuration | freeDuration"
-          />
+          <u-cell-item title="免费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.freeDuration | freeDuration" />
         </template>
-        <u-cell-item
-          title="计费时长 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.calcDuration"
-        />
-        <u-cell-item
-          title="累计停车时长 "
-          :arrow="false"
-          :border-bottom="false"
-          :border-top="false"
-          :value="orderInfo.duration"
-        />
+        <u-cell-item title="计费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.calcDuration" />
+        <u-cell-item title="累计停车时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.duration" />
         <u-cell-item
           v-if="orderInfo.createTime"
           title="订单创建时间 "
@@ -250,19 +125,13 @@
           :value="orderInfo.paySource | verifyPaySource"
         />
       </u-cell-group>
-			<!-- 地磁订单金额为0并且未支付 -->
-      <view class 
-				v-if="orderInfo.deviceType == 1
-				&& orderInfo.payAmount == 0
-				&& orderInfo.payStatus !== 1"
-			>提示:可寻找附近的收费员打印小票并扫码出场</view>
+      <!-- 地磁订单金额为0并且未支付 -->
+      <view class v-if="orderInfo.deviceType == 1 && orderInfo.payAmount == 0 && orderInfo.payStatus !== 1"
+        >提示:可寻找附近的收费员打印小票并扫码出场</view
+      >
     </view>
     <!-- 地磁显示支付按钮条件  支付状态(0-未支付,2-支付中,3-支付失败)并且订单金额不能为0 -->
-    <template
-      v-if="orderInfo.deviceType === 1
-			&& orderInfo.payStatus !== 1
-			&& openFlag !== 'open'"
-    >
+    <template v-if="orderInfo.deviceType === 1 && orderInfo.payStatus !== 1 && openFlag !== 'open'">
       <view class="bottom-btn-wrap" v-if="Number(orderInfo.payAmount) !== 0">
         <view class="bottom-btn" @click="goPay(orderId)">去支付</view>
       </view>
@@ -271,11 +140,7 @@
       </view>
     </template>
     <!-- 其他显示支付按钮条件  支付状态(0-未支付,2-支付中,3-支付失败) -->
-    <template
-      v-else-if="orderInfo.deviceType !== 1
-			&&  orderInfo.payStatus !== 1
-			&& openFlag !== 'open'"
-    >
+    <template v-else-if="orderInfo.deviceType !== 1 && orderInfo.payStatus !== 1 && openFlag !== 'open'">
       <view class="bottom-btn-wrap">
         <view class="bottom-btn" @click="goPay(orderId)">去支付</view>
       </view>

+ 2 - 2
pages/chargeStandard/chargeStandard.vue

@@ -24,8 +24,8 @@
 					</view>
 					<view class="charge-time">
 						<view>免费时长<text>{{item.freeTime}}分钟内</text></view>
-						<!-- <view v-if="item.topAmt">封顶金额<text>{{item.topAmt}}元</text></view>
-						<view v-else>无封顶金额</view> -->
+						<view v-if="item.topAmt">封顶金额<text>{{item.topAmt}}元</text></view>
+						<view v-else>无封顶金额</view>
 					</view>
 				</view>
 				<view class="charge-rules" v-for="(type, tIndex) in item.list" :key="tIndex">

+ 1 - 2
pages/geomagnetismLock/geomagnetismLock.vue

@@ -34,8 +34,7 @@
 					</view>
 					<view class="parking-lock-info-item">
 						<view>免费时长</view>
-						<!-- <view>{{ orderInfo.freeDuration || '0天0时15分0秒' }}</view> -->
-						<view>{{ (orderInfo.freeDuration || 1) | freeDuration }}</view>
+						<view>{{ orderInfo.freeDuration || '0天0时30分0秒' }}</view>
 					</view>
 					<view class="parking-lock-info-item">
 						<view>计费时长</view>

+ 16 - 13
pages/handleMonthly/handleMonthly.vue

@@ -55,20 +55,23 @@
 							<view>微信支付</view>
 						</view>
 					</view> -->
-					<view class="pay-way-new">
-						<view class="pay-way-item pay-way-item-hy" @click="gyBankPay">
-							<image src="../../static/img/guiyang-bank-icon.png" mode=""></image>
-							<view class="title">贵州银行</view>
-							<view class="subtitle">前三个月每天首次一分钱<br/>长期八折优惠</view>
-						</view>
-						<view class="pay-way-item pay-way-item-jh" @click="wechatPay">
-							<image src="../../static/img/juhe-icon.png" mode=""></image>
-							<view class="title">聚合支付</view>
-						</view>
+				<view class="pay-way-new">
+					<view class="pay-way-item pay-way-item-hy" @click="gyBankPay">
+						<image src="../../static/img/guiyang-bank-icon.png" mode=""></image>
+						<view class="title">贵州银行</view>
+					</view>
+					<view class="pay-way-item pay-way-item-jh" @click="juhePay">
+						<image src="../../static/img/juhe-icon.png" mode=""></image>
+						<view class="title">聚合支付</view>
 					</view>
-					<button class="pay-way-close-btn" @click="payWayPop = false">关闭</button>
 				</view>
-			</u-modal>
+				<view class="pay-way-subtitle">
+					<view class="pay-way-subtitle-item">前三个月每天首次一分钱,长期八折优惠</view>
+					<view class="pay-way-subtitle-item">&nbsp;</view>
+				</view>
+				<button class="pay-way-close-btn" @click="payWayPop = false">关闭</button>
+			</view>
+		</u-modal>
 		<u-toast ref="uToast" />
 	</view>
 </template>
@@ -281,7 +284,7 @@
 			 * 完成后通过code去获取用户的openId等信息
 			 * 最后再调起微信支付
 			 * */
-			wechatPay() {
+			juhePay() {
 				// const openId = this.$store.state.vuex_wxinfo.openId
 				// if (openId) {
 				// 	this.getWXPay()

+ 517 - 496
pages/parkingLock/parkingLock.vue

@@ -1,27 +1,25 @@
 <template>
-	<view class="parking-lock">
-		<view class="Jump">
-			<view class="Jump-btn" @click="jumpArrears">
-				欠费补缴
-			</view>
-		</view>
-		<!-- 车位锁 -->
-		<view class="parking-lock-box">
-			<!-- 车位锁支付 -->
-			<template v-if="parkingLockStatus === 1">
-				<view class="parking-lock-pay">
-					<view class="parking-lock-title">支付停车费</view>
-					<view class="parking-lock-tips">请您确认停车费用,确认后请支付费用,结束停车。谢谢您的使用!</view>
-					<view class="parking-lock-info">
-						<view class="parking-lock-info-item">
-							<view>停车场名称</view>
-							<view>{{orderInfo.roadName}}</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>停车泊位</view>
-							<view>{{orderInfo.spaceName}}</view>
-						</view>
-						<!-- <view class="parking-lock-info-item">
+  <view class="parking-lock">
+    <view class="Jump">
+      <view class="Jump-btn" @click="jumpArrears"> 欠费补缴 </view>
+    </view>
+    <!-- 车位锁 -->
+    <view class="parking-lock-box">
+      <!-- 车位锁支付 -->
+      <template v-if="parkingLockStatus === 1">
+        <view class="parking-lock-pay">
+          <view class="parking-lock-title">支付停车费</view>
+          <view class="parking-lock-tips">请您确认停车费用,确认后请支付费用,结束停车。谢谢您的使用!</view>
+          <view class="parking-lock-info">
+            <view class="parking-lock-info-item">
+              <view>停车场名称</view>
+              <view>{{ orderInfo.roadName }}</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>停车泊位</view>
+              <view>{{ orderInfo.spaceName }}</view>
+            </view>
+            <!-- <view class="parking-lock-info-item">
 							<view>入场时间</view>
 							<view>{{orderInfo.inTime}}</view>
 						</view>
@@ -37,28 +35,27 @@
 							<view>免费时长</view>
 							<view>{{ orderInfo.freeDuration || 0 }}</view>
 						</view> -->
-						<view class="parking-lock-info-item">
-							<view>开始计费</view>
-							<view>{{orderInfo.inTime}}</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>结束计费</view>
-							<view>{{orderInfo.outTime}}</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>免费时长</view>
-							<!-- <view>{{ orderInfo.freeDuration || '0天0时15分0秒' }}</view> -->
-							<view>{{ (orderInfo.freeDuration || 1) | freeDuration }}</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>计费时长</view>
-							<view>{{orderInfo.calcDuration || 0}}</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>累计停车时长</view>
-							<view>{{ orderInfo.duration || 0 }}</view>
-						</view>
-						<!-- <view class="parking-lock-info-item">
+            <view class="parking-lock-info-item">
+              <view>开始计费</view>
+              <view>{{ orderInfo.inTime }}</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>结束计费</view>
+              <view>{{ orderInfo.outTime }}</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>免费时长</view>
+              <view>{{ orderInfo.freeDuration || '0天0时30分0秒' }}</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>计费时长</view>
+              <view>{{ orderInfo.calcDuration || 0 }}</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>累计停车时长</view>
+              <view>{{ orderInfo.duration || 0 }}</view>
+            </view>
+            <!-- <view class="parking-lock-info-item">
 							<view>合计金额</view>
 							<view>{{orderInfo.totalAmount}} 元</view>
 						</view>
@@ -66,19 +63,19 @@
 							<view>优惠金额</view>
 							<view>{{orderInfo.preferentialAmount}} 元</view>
 						</view> -->
-						<view class="parking-lock-info-item">
-							<view>应缴金额</view>
-							<view class="really-money">{{orderInfo.payAmount || 0}} 元</view>
-						</view>
-						<view class="parking-lock-info-item">
-							<view>订单编号</view>
-							<view>{{orderInfo.orderId}}</view>
-						</view>
-						<!-- <view class="parking-lock-info-item" v-if="orderInfo.vehicleNo">
+            <view class="parking-lock-info-item">
+              <view>应缴金额</view>
+              <view class="really-money">{{ orderInfo.payAmount || 0 }} 元</view>
+            </view>
+            <view class="parking-lock-info-item">
+              <view>订单编号</view>
+              <view>{{ orderInfo.orderId }}</view>
+            </view>
+            <!-- <view class="parking-lock-info-item" v-if="orderInfo.vehicleNo">
 							<view>车牌信息</view>
 							<view class="really-license">{{ orderInfo.vehicleNo }}</view>
 						</view> -->
-						<!-- <view class="parking-lock-info-item" v-if="orderInfo.vehicleNo==''">
+            <!-- <view class="parking-lock-info-item" v-if="orderInfo.vehicleNo==''">
 							<view>车牌信息</view>
 							<view class="really-license"><text class="really-license-txt" @click="addvehicleNo">添加车牌</text>
 							</view>
@@ -88,459 +85,483 @@
 							<view class="really-license">{{orderInfo.vehicleNo}} <text @click="changevehicleNo"
 									class="really-license-txt1">更换</text></view>
 						</view> -->
-					</view>
-					<view class="parking-lock-pay-btn">
-						<button type="default" @click="payMoney">立即支付</button>
-					</view>
-					<!-- <view class="parking-lock-pay-attention">
+          </view>
+          <view class="parking-lock-pay-btn">
+            <button type="default" @click="payMoney">立即支付</button>
+          </view>
+          <!-- <view class="parking-lock-pay-attention">
 						<text>
 							温馨提示:车牌信息可填可不填,如果您已通过本机号码办理了特定车或包月车业务,则需要输入车牌号,否则将按照常规收费标准进行收费。
 						</text>
 					</view> -->
-					<view class="parking-lock-pay-attention">
-						<text>
-							温馨提示:车辆计费前您有15分钟免费停车时长,15分钟过后则升板锁车开始计费。
-						</text>
-					</view>
-				</view>
-			</template>
-			<!-- 车位锁开始状态 -->
-			<template v-else-if="parkingLockStatus === 2">
-				<view class="parking-lock-begin">
-					<view class="parking-lock-begin-box">
-						<view class="parking-lock-begin-bg">
-							<image src="../../static/img/parking-lock-bg.png" mode=""></image>
-						</view>
-					</view>
-					<view class="parking-lock-begin-info">车位锁正在动作,还未到位</view>
-				</view>
-			</template>
-			<!-- 车位锁正在状态 -->
-			<template v-else-if="parkingLockStatus === 3">
-				<view class="parking-lock-loading">
-					<view class="parking-lock-loading-box">
-						<view class="parking-lock-loading-bg">
-							<image src="../../static/img/parking-lock-bg.png" mode=""></image>
-						</view>
-					</view>
-					<view class="parking-lock-loading-info">开锁中,请等待!</view>
-				</view>
-			</template>
-			<!-- 开锁完成 -->
-			<template v-else-if="parkingLockStatus === 4">
-				<view class="parking-lock-success">
-					<view class="parking-lock-success-box">
-						<image src="../../static/img/parking-lock-achieve.png" mode=""></image>
-					</view>
-					<view class="parking-lock-success-info">开锁已完成</view>
-					<view class="parking-lock-success-button">
-						<button @click="cancel">返回</button>
-					</view>
-				</view>
-			</template>
-			<template v-else-if="parkingLockStatus === 5">
-				<view class="parking-lock-pay">
-					<view class="parking-lock-tips">{{tipsMsg}}</view>
-				</view>
-			</template>
-			<!-- 支付方式 -->
-			<PaymentMethod :payWayPop="payWayPop" :curOrderList="orderList" :deviceNo="deviceNo" :jumpUrl="jumpUrl"
-				@closePaymentMethod="closePaymentMethod"></PaymentMethod>
-			<u-toast ref="uToast" />
-			<u-popup v-model="show" mode="center" border-radius="14" width="200rpx" height="200rpx">
-				<view class="loadingSelect">订单查询中...</view>
-				<view class="spinner">
-					<view class="rect1"></view>
-					<view class="rect2"></view>
-					<view class="rect3"></view>
-					<view class="rect4"></view>
-					<view class="rect5"></view>
-				</view>
-			</u-popup>
-			<u-popup class="popup-vehicleNo" v-model="ShowaddvehicleNo" mode="center" border-radius="20" width="710rpx"
-				height="auto">
-				<view class="popup-vehicleNo-title">添加车牌</view>
-				<view class="popup-vehicleNo-center"></view>
-				<view class="popup-vehicleNo-content">
-					<view class="new-plate-number">
-						<view class="message-input-wrap" @click="messageInputClick">
-							<u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true"
-								v-model="newPlateNumber"></u-message-input>
-						</view>
-					</view>
-				</view>
-				<view class="popup-vehicleNo-select">暂无绑定车牌</view>
-				<view class="vehicleNo-btn">
-					<u-button type="primary" @click="handleAddCar">确认</u-button>
-					<u-button type="primary" plain @click="ShowaddvehicleNo=false">取消</u-button>
-				</view>
-			</u-popup>
-
-			<u-popup class="popup-vehicleNo" v-model="ShowchangevehicleNo" mode="center" border-radius="20"
-				width="710rpx" height="auto">
-				<view class="popup-vehicleNo-title">更换车牌</view>
-				<view class="popup-vehicleNo-center"></view>
-				<view class="popup-vehicleNo-content">
-					<view class="new-plate-number">
-						<view class="message-input-wrap" @click="messageInputClick">
-							<u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true"
-								v-model="newPlateNumber"></u-message-input>
-						</view>
-					</view>
-				</view>
-				<view class="popup-vehicleNo-select">
-					<u-collapse ref="refValue">
-						<u-collapse-item title="点击选择车牌" align="center">
-							<u-cell-group>
-								<u-cell-item :title="item.vehicleNo" v-for="(item, index) in groupList" :key="index"
-									:arrow="false">
-									<u-radio-group v-model="selectvalue" @change="radioGroupChange">
-										<u-radio :name="item.vehicleNo" :key="index"></u-radio>
-									</u-radio-group>
-								</u-cell-item>
-							</u-cell-group>
-						</u-collapse-item>
-					</u-collapse>
-				</view>
-				<view class="vehicleNo-btn">
-					<u-button type="primary" @click="handleAddCar">确认</u-button>
-					<u-button type="primary" plain @click="ShowchangevehicleNo=false">取消</u-button>
-				</view>
-			</u-popup>
-			<u-action-sheet :list="colorList" @click="confirmColor" v-model="colorShow"></u-action-sheet>
-			<u-keyboard ref="uKeyboard" mode="car" @change="keyboardChange" @confirm="keyboardConfirm"
-				@backspace="backspace" v-model="keyboardshow"></u-keyboard>
-		</view>
-	</view>
+          <view class="parking-lock-pay-attention">
+            <text>
+              温馨提示:车辆计费前您有{{ orderInfo.freeDurationNum / 60 }}分钟免费停车时长,{{
+                orderInfo.freeDurationNum / 60
+              }}分钟过后则升板锁车开始计费。
+            </text>
+          </view>
+        </view>
+      </template>
+      <!-- 车位锁开始状态 -->
+      <template v-else-if="parkingLockStatus === 2">
+        <view class="parking-lock-begin">
+          <view class="parking-lock-begin-box">
+            <view class="parking-lock-begin-bg">
+              <image src="../../static/img/parking-lock-bg.png" mode=""></image>
+            </view>
+          </view>
+          <view class="parking-lock-begin-info">车位锁正在动作,还未到位</view>
+        </view>
+      </template>
+      <!-- 车位锁正在状态 -->
+      <template v-else-if="parkingLockStatus === 3">
+        <view class="parking-lock-loading">
+          <view class="parking-lock-loading-box">
+            <view class="parking-lock-loading-bg">
+              <image src="../../static/img/parking-lock-bg.png" mode=""></image>
+            </view>
+          </view>
+          <view class="parking-lock-loading-info">开锁中,请等待!</view>
+        </view>
+      </template>
+      <!-- 开锁完成 -->
+      <template v-else-if="parkingLockStatus === 4">
+        <view class="parking-lock-success">
+          <view class="parking-lock-success-box">
+            <image src="../../static/img/parking-lock-achieve.png" mode=""></image>
+          </view>
+          <view class="parking-lock-success-info">开锁已完成</view>
+          <view class="parking-lock-success-button">
+            <button @click="cancel">返回</button>
+          </view>
+        </view>
+      </template>
+      <template v-else-if="parkingLockStatus === 5">
+        <view class="parking-lock-pay">
+          <view class="parking-lock-tips">{{ tipsMsg }}</view>
+        </view>
+      </template>
+      <!-- 支付方式 -->
+      <PaymentMethod
+        :payWayPop="payWayPop"
+        :curOrderList="orderList"
+        :deviceNo="deviceNo"
+        :jumpUrl="jumpUrl"
+        @closePaymentMethod="closePaymentMethod"
+      ></PaymentMethod>
+      <u-toast ref="uToast" />
+      <u-popup v-model="show" mode="center" border-radius="14" width="200rpx" height="200rpx">
+        <view class="loadingSelect">订单查询中...</view>
+        <view class="spinner">
+          <view class="rect1"></view>
+          <view class="rect2"></view>
+          <view class="rect3"></view>
+          <view class="rect4"></view>
+          <view class="rect5"></view>
+        </view>
+      </u-popup>
+      <u-popup class="popup-vehicleNo" v-model="ShowaddvehicleNo" mode="center" border-radius="20" width="710rpx" height="auto">
+        <view class="popup-vehicleNo-title">添加车牌</view>
+        <view class="popup-vehicleNo-center"></view>
+        <view class="popup-vehicleNo-content">
+          <view class="new-plate-number">
+            <view class="message-input-wrap" @click="messageInputClick">
+              <u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true" v-model="newPlateNumber"></u-message-input>
+            </view>
+          </view>
+        </view>
+        <view class="popup-vehicleNo-select">暂无绑定车牌</view>
+        <view class="vehicleNo-btn">
+          <u-button type="primary" @click="handleAddCar">确认</u-button>
+          <u-button type="primary" plain @click="ShowaddvehicleNo = false">取消</u-button>
+        </view>
+      </u-popup>
 
+      <u-popup class="popup-vehicleNo" v-model="ShowchangevehicleNo" mode="center" border-radius="20" width="710rpx" height="auto">
+        <view class="popup-vehicleNo-title">更换车牌</view>
+        <view class="popup-vehicleNo-center"></view>
+        <view class="popup-vehicleNo-content">
+          <view class="new-plate-number">
+            <view class="message-input-wrap" @click="messageInputClick">
+              <u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true" v-model="newPlateNumber"></u-message-input>
+            </view>
+          </view>
+        </view>
+        <view class="popup-vehicleNo-select">
+          <u-collapse ref="refValue">
+            <u-collapse-item title="点击选择车牌" align="center">
+              <u-cell-group>
+                <u-cell-item :title="item.vehicleNo" v-for="(item, index) in groupList" :key="index" :arrow="false">
+                  <u-radio-group v-model="selectvalue" @change="radioGroupChange">
+                    <u-radio :name="item.vehicleNo" :key="index"></u-radio>
+                  </u-radio-group>
+                </u-cell-item>
+              </u-cell-group>
+            </u-collapse-item>
+          </u-collapse>
+        </view>
+        <view class="vehicleNo-btn">
+          <u-button type="primary" @click="handleAddCar">确认</u-button>
+          <u-button type="primary" plain @click="ShowchangevehicleNo = false">取消</u-button>
+        </view>
+      </u-popup>
+      <u-action-sheet :list="colorList" @click="confirmColor" v-model="colorShow"></u-action-sheet>
+      <u-keyboard
+        ref="uKeyboard"
+        mode="car"
+        @change="keyboardChange"
+        @confirm="keyboardConfirm"
+        @backspace="backspace"
+        v-model="keyboardshow"
+      ></u-keyboard>
+    </view>
+  </view>
 </template>
 
 <script>
-	import getUrlParams from "../../utils/getUrlParams.js";
-	import PaymentMethod from '@/pages/paymentMethod/paymentMethod.vue'
-	export default {
-		components: {
-			PaymentMethod
-		},
-		data() {
-			return {
-				selectvalue: null,
-				groupList: [],
-				radiogroupList: [],
-				keyboardshow: false,
-				colorShow: false,
-				colorList: [{
-					text: '蓝色',
-					colorCode: 0
-				}, {
-					text: '黄色',
-					colorCode: 1
-				}, {
-					text: '黑色',
-					colorCode: 2
-				}, {
-					text: '白色',
-					colorCode: 3
-				}, {
-					text: '绿色',
-					colorCode: 4
-				}, {
-					text: '其他',
-					colorCode: 99
-				}],
-				vehicleColor: 0,
-				newPlateNumber: '',
-				//更换车牌弹窗
-				ShowchangevehicleNo: false,
-				//添加车牌弹窗
-				ShowaddvehicleNo: false,
-				// 车位锁状态 1:支付 2:开始开锁 3:开锁中 4:开锁完成
-				parkingLockStatus: 0,
-				// 支付方式选择弹框
-				payWayPop: false,
-				// 订单编号
-				orderList: [],
-				// 提示信息
-				tipsMsg: null,
-				// 设备编号
-				deviceNo: null,
-				// 轮询
-				timer: null,
-				timer1: null,
-				// 订单信息
-				orderInfo: {},
-				// 订单id
-				orderId: null,
-				// 重定向地址
-				jumpUrl: location.href + '&isBack=1',
-				show: true,
-				isBack: '',
-				polyOrderId: ''
-			}
-		},
-		onLoad(page) {
-			if (page.orderId) {
-				this.getOrderDetails(page.orderId)
-				this.orderList = []
-				this.orderId = page.orderId
-				this.orderList.push(page.orderId)
-				this.deviceNo = page.deviceNo
-				this.isBack = page?.isBack
-				this.polyOrderId = page?.polyOrderId
-			} else {
-				this.tipsMsg = page.msg || '参数丢失!';
-				this.parkingLockStatus = 5
-			}
-		},
-		onShow() {
-			if (this.orderId) {
-				if (this.polyOrderId && this.isBack == 1) {
-					this.timer1 = setInterval(() => {
-						this.show = true
-						this.handlePayStatus(this.polyOrderId)
-					}, 2000)
-				}
-			} else {
-				this.show = false
-			}
-		},
-		onUnload() {
-			if (this.timer) {
-				clearInterval(this.timer)
-			}
-			if (this.timer1) {
-				clearInterval(this.timer1)
-			}
-		},
-		methods: {
-			jumpArrears() {
-				uni.navigateTo({
-					url: '../center/order/order?orderStatus=2'
-				})
-			},
-			radioGroupChange(e) {
-				this.newPlateNumber = e
-			},
-			// 获取车辆列表
-			handlegetMycars() {
-				let that = this;
-				this.$u.api.getMycars()
-					.then(res => {
-						if (res.code === 200) {
-							this.groupList = res.data.rows;
-							this.radiogroupList = res.data.rows;
-							this.$nextTick(() => {
-								// dom元素更新后执行,因此这里能正确打印更改之后的值
-								console.log(that.$refs.refValue.init()) // 改变了的值
-							})
-						} else {
-							this.$refs.uToast.show({
-								title: res.msg,
-								type: 'error'
-							})
-						}
-					})
-					.catch(err => {
-						this.$refs.uToast.show({
-							title: '操作失败!',
-							type: 'error'
-						})
-					});
-			},
-			//更换车牌信息
-			changevehicleNo() {
-				this.ShowchangevehicleNo = true;
-				this.handlegetMycars();
-			},
-			// 添加车辆
-			handleAddCar() {
-				if (!this.$u.test.carNo(this.newPlateNumber)) {
-					this.$refs.uToast.show({
-						title: '请正确填写车牌号',
-						type: 'error',
-					});
-					return
-				}
-				let param = {
-					orderId: this.orderId,
-					vehicleNo: this.newPlateNumber,
-					vehicleColor: this.vehicleColor,
-				};
-				let that = this;
-				this.$u.api.bindVehicleNo(param)
-					.then(res => {
-						if (res.code === 200) {
-							this.$refs.uToast.show({
-								title: res.msg,
-								type: 'success',
-							});
-							that.getOrderDetails(that.orderId);
-							that.ShowchangevehicleNo = false;
-						} else {
-							this.$refs.uToast.show({
-								title: res.msg,
-								type: 'error',
-							});
-						}
-					})
-					.catch(err => {
-						this.$refs.uToast.show({
-							title: '操作失败!',
-							type: 'error',
-						});
-					});
-			},
-			//新增车牌
-			addvehicleNo() {
-				this.ShowaddvehicleNo = true;
-			},
+import getUrlParams from '../../utils/getUrlParams.js';
+import PaymentMethod from '@/pages/paymentMethod/paymentMethod.vue';
+export default {
+  components: {
+    PaymentMethod
+  },
+  data() {
+    return {
+      selectvalue: null,
+      groupList: [],
+      radiogroupList: [],
+      keyboardshow: false,
+      colorShow: false,
+      colorList: [
+        {
+          text: '蓝色',
+          colorCode: 0
+        },
+        {
+          text: '黄色',
+          colorCode: 1
+        },
+        {
+          text: '黑色',
+          colorCode: 2
+        },
+        {
+          text: '白色',
+          colorCode: 3
+        },
+        {
+          text: '绿色',
+          colorCode: 4
+        },
+        {
+          text: '其他',
+          colorCode: 99
+        }
+      ],
+      vehicleColor: 0,
+      newPlateNumber: '',
+      //更换车牌弹窗
+      ShowchangevehicleNo: false,
+      //添加车牌弹窗
+      ShowaddvehicleNo: false,
+      // 车位锁状态 1:支付 2:开始开锁 3:开锁中 4:开锁完成
+      parkingLockStatus: 0,
+      // 支付方式选择弹框
+      payWayPop: false,
+      // 订单编号
+      orderList: [],
+      // 提示信息
+      tipsMsg: null,
+      // 设备编号
+      deviceNo: null,
+      // 轮询
+      timer: null,
+      timer1: null,
+      // 订单信息
+      orderInfo: {},
+      // 订单id
+      orderId: null,
+      // 重定向地址
+      jumpUrl: location.href + '&isBack=1',
+      show: true,
+      isBack: '',
+      polyOrderId: ''
+    };
+  },
+  onLoad(page) {
+    if (page.orderId) {
+      this.getOrderDetails(page.orderId);
+      this.orderList = [];
+      this.orderId = page.orderId;
+      this.orderList.push(page.orderId);
+      this.deviceNo = page.deviceNo;
+      this.isBack = page?.isBack;
+      this.polyOrderId = page?.polyOrderId;
+    } else {
+      this.tipsMsg = page.msg || '参数丢失!';
+      this.parkingLockStatus = 5;
+    }
+  },
+  onShow() {
+    if (this.orderId) {
+      if (this.polyOrderId && this.isBack == 1) {
+        this.timer1 = setInterval(() => {
+          this.show = true;
+          this.handlePayStatus(this.polyOrderId);
+        }, 2000);
+      }
+    } else {
+      this.show = false;
+    }
+  },
+  onUnload() {
+    if (this.timer) {
+      clearInterval(this.timer);
+    }
+    if (this.timer1) {
+      clearInterval(this.timer1);
+    }
+  },
+  methods: {
+    jumpArrears() {
+      uni.navigateTo({
+        url: '../center/order/order?orderStatus=2'
+      });
+    },
+    radioGroupChange(e) {
+      this.newPlateNumber = e;
+    },
+    // 获取车辆列表
+    handlegetMycars() {
+      let that = this;
+      this.$u.api
+        .getMycars()
+        .then((res) => {
+          if (res.code === 200) {
+            this.groupList = res.data.rows;
+            this.radiogroupList = res.data.rows;
+            this.$nextTick(() => {
+              // dom元素更新后执行,因此这里能正确打印更改之后的值
+              console.log(that.$refs.refValue.init()); // 改变了的值
+            });
+          } else {
+            this.$refs.uToast.show({
+              title: res.msg,
+              type: 'error'
+            });
+          }
+        })
+        .catch((err) => {
+          this.$refs.uToast.show({
+            title: '操作失败!',
+            type: 'error'
+          });
+        });
+    },
+    //更换车牌信息
+    changevehicleNo() {
+      this.ShowchangevehicleNo = true;
+      this.handlegetMycars();
+    },
+    // 添加车辆
+    handleAddCar() {
+      if (!this.$u.test.carNo(this.newPlateNumber)) {
+        this.$refs.uToast.show({
+          title: '请正确填写车牌号',
+          type: 'error'
+        });
+        return;
+      }
+      let param = {
+        orderId: this.orderId,
+        vehicleNo: this.newPlateNumber,
+        vehicleColor: this.vehicleColor
+      };
+      let that = this;
+      this.$u.api
+        .bindVehicleNo(param)
+        .then((res) => {
+          if (res.code === 200) {
+            this.$refs.uToast.show({
+              title: res.msg,
+              type: 'success'
+            });
+            that.getOrderDetails(that.orderId);
+            that.ShowchangevehicleNo = false;
+          } else {
+            this.$refs.uToast.show({
+              title: res.msg,
+              type: 'error'
+            });
+          }
+        })
+        .catch((err) => {
+          this.$refs.uToast.show({
+            title: '操作失败!',
+            type: 'error'
+          });
+        });
+    },
+    //新增车牌
+    addvehicleNo() {
+      this.ShowaddvehicleNo = true;
+    },
 
-			// 点击输入框
-			messageInputClick() {
-				this.keyboardshow = true;
-			},
-			// 按键被点击(点击退格键不会触发此事件)
-			keyboardChange(val) {
-				// 将每次按键的值拼接到value变量中,注意+=写法
-				this.newPlateNumber += val;
-			},
-			// 退格键被点击
-			backspace() {
-				// 删除value的最后一个字符
-				if (this.newPlateNumber.length) this.newPlateNumber = this.newPlateNumber.substr(0, this.newPlateNumber
-					.length - 1);
-			},
-			// 键盘输入完成后确认
-			keyboardConfirm() {
-				this.colorShow = true;
-			},
-			// 确认颜色
-			confirmColor(e) {
-				this.vehicleColor = this.colorList[e].colorCode;
-			},
-			/**
-			 * 反复查询支付状态
-			 * @param { String } orderId
-			 */
-			handlePayStatus(orderId) {
-				this.$u.api.getOrderInfo({
-					orderId
-				}).then(res => {
-					if (res.code === 200) {
-						if (res.data.payStatus === 1 || res.data.payStatus === 3) {
-							this.show = false
-							clearInterval(this.timer1);
-							this.getOrderDetails(this.orderId)
-						}
-					} else {
-						this.show = false
-						clearInterval(this.timer1);
-						this.$refs.uToast.show({
-							title: res.msg,
-							type: 'error',
-						});
-					}
-				}).catch(() => {
-					this.show = false
-					clearInterval(this.timer1);
-				})
-			},
-			payMoney() {
-				this.payWayPop = true
-			},
-			// 查询订单信息
-			getOrderDetails(id) {
-				this.$u.api.getOrderDetail({
-					id
-				}).then(res => {
-					if (res.code === 200 && res.data.id) {
-						this.parkingLockStatus = 1
-						// 获取页面完整url
-						const local = window.location.href
-						// 获取url后面的参数
-						const locationLocaturl = window.location.search;
-						// 截取url中的isBack
-						let isBack = getUrlParams(local, "isBack");
-						// 如果没有isBack,则去请求
-						if (!isBack) {
-							// uni.hideLoading();
-							this.show = false
-							clearInterval(this.timer1)
-						}
-						this.orderInfo = res.data
-						if (res.data.payStatus === 1) {
-							this.show = false
-							clearInterval(this.timer1)
-							this.checkEqupment()
-						}
-					} else {
-						this.$refs.uToast.show({
-							title: res.msg || '订单无数据',
-							type: 'error',
-						});
-						this.show = false;
-						if (this.timer1) {
-							clearInterval(this.timer1)
-						}
-					}
-				}).catch(() => {
-					this.show = false;
-					if (this.timer1) {
-						clearInterval(this.timer1)
-					}
-				})
-			},
-			// 检测设备
-			checkEqupment() {
-				this.timer = setInterval(() => {
-					this.getEqumentStatus(this.deviceNo)
-				}, 1000)
-			},
-			// 查询设备状态
-			getEqumentStatus(orderNo) {
-				this.$u.api.getEquomentInfo({
-					orderNo
-				}).then(res => {
-					if (res.code === 200) {
-						if (res.data.deviceStatus == 0) {
-							this.parkingLockStatus = 4
-							clearInterval(this.timer)
-						} else if (res.data.deviceStatus == 1 || res.data.deviceStatus == 5) {
-							this.parkingLockStatus = 2
-						} else if (res.data.deviceStatus == 6) {
-							this.parkingLockStatus = 3
-						}
-					} else {
-						clearInterval(this.timer)
-					}
-				}).catch(() => {
-					clearInterval(this.timer)
-				})
-			},
-			// 返回首页
-			cancel() {
-				uni.switchTab({
-					url: '/pages/index/index'
-				})
-			},
-			closePaymentMethod() {
-				this.payWayPop = false
-			}
-		}
-	}
+    // 点击输入框
+    messageInputClick() {
+      this.keyboardshow = true;
+    },
+    // 按键被点击(点击退格键不会触发此事件)
+    keyboardChange(val) {
+      // 将每次按键的值拼接到value变量中,注意+=写法
+      this.newPlateNumber += val;
+    },
+    // 退格键被点击
+    backspace() {
+      // 删除value的最后一个字符
+      if (this.newPlateNumber.length) this.newPlateNumber = this.newPlateNumber.substr(0, this.newPlateNumber.length - 1);
+    },
+    // 键盘输入完成后确认
+    keyboardConfirm() {
+      this.colorShow = true;
+    },
+    // 确认颜色
+    confirmColor(e) {
+      this.vehicleColor = this.colorList[e].colorCode;
+    },
+    /**
+     * 反复查询支付状态
+     * @param { String } orderId
+     */
+    handlePayStatus(orderId) {
+      this.$u.api
+        .getOrderInfo({
+          orderId
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            if (res.data.payStatus === 1 || res.data.payStatus === 3) {
+              this.show = false;
+              clearInterval(this.timer1);
+              this.getOrderDetails(this.orderId);
+            }
+          } else {
+            this.show = false;
+            clearInterval(this.timer1);
+            this.$refs.uToast.show({
+              title: res.msg,
+              type: 'error'
+            });
+          }
+        })
+        .catch(() => {
+          this.show = false;
+          clearInterval(this.timer1);
+        });
+    },
+    payMoney() {
+      this.payWayPop = true;
+    },
+    // 查询订单信息
+    getOrderDetails(id) {
+      this.$u.api
+        .getOrderDetail({
+          id
+        })
+        .then((res) => {
+          if (res.code === 200 && res.data.id) {
+            this.parkingLockStatus = 1;
+            // 获取页面完整url
+            const local = window.location.href;
+            // 获取url后面的参数
+            const locationLocaturl = window.location.search;
+            // 截取url中的isBack
+            let isBack = getUrlParams(local, 'isBack');
+            // 如果没有isBack,则去请求
+            if (!isBack) {
+              // uni.hideLoading();
+              this.show = false;
+              clearInterval(this.timer1);
+            }
+            this.orderInfo = res.data;
+            if (res.data.payStatus === 1) {
+              this.show = false;
+              clearInterval(this.timer1);
+              this.checkEqupment();
+            }
+          } else {
+            this.$refs.uToast.show({
+              title: res.msg || '订单无数据',
+              type: 'error'
+            });
+            this.show = false;
+            if (this.timer1) {
+              clearInterval(this.timer1);
+            }
+          }
+        })
+        .catch(() => {
+          this.show = false;
+          if (this.timer1) {
+            clearInterval(this.timer1);
+          }
+        });
+    },
+    // 检测设备
+    checkEqupment() {
+      this.timer = setInterval(() => {
+        this.getEqumentStatus(this.deviceNo);
+      }, 1000);
+    },
+    // 查询设备状态
+    getEqumentStatus(orderNo) {
+      this.$u.api
+        .getEquomentInfo({
+          orderNo
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            if (res.data.deviceStatus == 0) {
+              this.parkingLockStatus = 4;
+              clearInterval(this.timer);
+            } else if (res.data.deviceStatus == 1 || res.data.deviceStatus == 5) {
+              this.parkingLockStatus = 2;
+            } else if (res.data.deviceStatus == 6) {
+              this.parkingLockStatus = 3;
+            }
+          } else {
+            clearInterval(this.timer);
+          }
+        })
+        .catch(() => {
+          clearInterval(this.timer);
+        });
+    },
+    // 返回首页
+    cancel() {
+      uni.switchTab({
+        url: '/pages/index/index'
+      });
+    },
+    closePaymentMethod() {
+      this.payWayPop = false;
+    }
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-	@import './parkingLock.scss';
+@import './parkingLock.scss';
 
-	.Jump {
-		display: flex;
-		justify-content: flex-end;
-		background-color: #F6F6FF;
+.Jump {
+  display: flex;
+  justify-content: flex-end;
+  background-color: #f6f6ff;
 
-		&-btn {
-			color: rgb(0, 140, 255);
-			padding: 12rpx 20rpx;
-		}
-	}
+  &-btn {
+    color: rgb(0, 140, 255);
+    padding: 20rpx 30rpx;
+  }
+}
 </style>

+ 384 - 420
pages/payLists/payLists.vue

@@ -1,435 +1,399 @@
 <template>
-	<view>
-		<view class="swiper-wrap">
-			<view class="u-tabs-box">
-				<u-tabs-swiper activeColor="#008CFF" ref="tabs" :list="list" :current="current" @change="change"
-					:is-scroll="false" swiperWidth="100%"></u-tabs-swiper>
-			</view>
-			<swiper class="swiper-box" :current="swiperCurrent" @transition="transition"
-				@animationfinish="animationfinish" disable-touch>
-				<swiper-item class="swiper-item" v-for="(item, index) in list" :key="index">
-					<scroll-view scroll-y style="height: 100%;width: 100%;" @scrolltolower="reachBottom">
-						<view class="page-box">
-							<view class="pay" v-for="(payItem, index) in  payList[index]"
-								:key="payItem.id">
-								<view  v-if="item.index==0">
-									<view  class="pay-top u-flex">
-											<view class="pay-top-left u-flex-1">
-												<view class="car">{{payItem.vehicleNo}}</view>
-												<view class="addr">{{payItem.roadName}}</view>
-											</view>
-											<view class="pay-top-right">{{payItem.orderStatus | filterOrderStatus}}
-											</view>
-										</view>
-										<view class="pay-center">
-											<view class="pay-center-item">订单编号:{{payItem.orderId}}</view>
-											<view class="pay-center-item">停车泊位:{{payItem.spaceName}}</view>
-											<view class="pay-center-item">入场时间:{{payItem.inTime || 0}}</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												出场时间:{{payItem.outTime || 0}}
-											</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												免费时长:{{payItem.freeDuration || 0}}
-											</view>
-											<!-- 计费时长=停车时长-免费时长 -->
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												计费时长:{{payItem.calcDuration || 0}}
-											</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												累计停车时长:{{payItem.duration || 0}}
-											</view>
-											<view class="pay-center-item">应付金额:<span
-													class="pay-amount">{{payItem.payAmount || 0}}</span>
-											</view>
-											<view class="pay-center-item" v-if="payItem.deviceType && payItem.deviceType != 1">
-												车位锁设备号:{{payItem.deviceNo}}
-											</view>
-										</view>
-										<view class="pay-bottom">
-											<u-cell-item title="去支付" @click="choosePayWay(payItem.orderId)"
-												style="color: #008CFF;">
-											</u-cell-item>
-										</view>
-										
-									</view>
-									<view  v-if="item.index==1">
-										<view class="pay-top u-flex">
-											<view class="pay-top-left u-flex-1">
-												<view class="car">{{payItem.vehicleNo}}</view>
-												<view class="addr">{{payItem.parkingName}}</view>
-											</view>
-											<view class="pay-top-right">{{payItem.orderStatus | filterOrderStatus}}
-											</view>
-										</view>
-										<view class="pay-center">
-											<view class="pay-center-item">订单编号:{{payItem.orderId}}</view>
-											<view class="pay-center-item">入场通道:{{payItem.entranceName}}</view>
-											<view class="pay-center-item">入场时间:{{payItem.inTime || 0}}</view>
-											<view class="pay-center-item">出场通道:{{payItem.outEntranceName}}</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												出场时间:{{payItem.outTime || 0}}
-											</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												免费时长:{{payItem.freeDuration || 0}}
-											</view>
-											<!-- 计费时长=停车时长-免费时长 -->
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												计费时长:{{payItem.calcDuration || 0}}
-											</view>
-											<view class="pay-center-item" v-if="payItem.orderStatus !== 1">
-												累计停车时长:{{payItem.duration || 0}}
-											</view>
-											<view class="pay-center-item">应付金额:<span
-													class="pay-amount">{{payItem.payAmount || 0}}</span>
-											</view>
-											<view class="pay-center-item" v-if="payItem.deviceType && payItem.deviceType != 1">
-												车位锁设备号:{{payItem.deviceNo}}
-											</view>
-										</view>
-										<view class="pay-bottom">
-											<u-cell-item title="去支付" @click="choosePayWay(payItem.orderId)"
-												style="color: #008CFF;">
-											</u-cell-item>
-										</view>
-									</view>
-									
-								</view>
-								<u-loadmore :status="loadStatus[index]" bg-color="#F6F6FF"></u-loadmore>
-						</view>
-					</scroll-view>
-				</swiper-item>
-			</swiper>
-		</view>
+  <view>
+    <view class="swiper-wrap">
+      <view class="u-tabs-box">
+        <u-tabs-swiper
+          activeColor="#008CFF"
+          ref="tabs"
+          :list="list"
+          :current="current"
+          @change="change"
+          :is-scroll="false"
+          swiperWidth="100%"
+        ></u-tabs-swiper>
+      </view>
+      <swiper class="swiper-box" :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" disable-touch>
+        <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index">
+          <scroll-view scroll-y style="height: 100%; width: 100%" @scrolltolower="reachBottom">
+            <view class="page-box">
+              <view class="pay" v-for="(payItem, index) in payList[index]" :key="index">
+                <view v-if="item.index == 0">
+                  <view class="pay-top u-flex">
+                    <view class="pay-top-left u-flex-1">
+                      <view class="car">{{ payItem.vehicleNo }}</view>
+                      <view class="addr">{{ payItem.roadName }}</view>
+                    </view>
+                    <view class="pay-top-right">{{ payItem.orderStatus | filterOrderStatus }} </view>
+                  </view>
+                  <view class="pay-center">
+                    <view class="pay-center-item">订单编号:{{ payItem.orderId }}</view>
+                    <view class="pay-center-item" v-if="payItem.deviceType == 1">入场时间:{{ payItem.inTime || '' }} </view>
+                    <view class="pay-center-item" v-else>开始计费:{{ payItem.inTime || '' }}</view>
+                    <template v-if="payItem.deviceType == 1">
+                      <view class="pay-center-item" v-if="payItem.orderStatus == 1 && payItem.outTime"> 出场时间:{{ `未出场` }}</view>
+                      <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 出场时间:{{ payItem.outTime || 0 }}</view>
+                    </template>
+                    <template v-else>
+                      <view class="pay-center-item" v-if="payItem.orderStatus == 1 && payItem.outTime"> 结束计费:{{ `未出场` }}</view>
+                      <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 结束计费:{{ payItem.outTime || 0 }}</view>
+                    </template>
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 免费时长:{{ payItem.freeDuration || 0 }} </view>
+                    <!-- 计费时长=停车时长-免费时长 -->
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 计费时长:{{ payItem.calcDuration || 0 }} </view>
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 累计停车时长:{{ payItem.duration || 0 }} </view>
+                    <view class="pay-center-item" v-if="payItem.orderStatus == 1"
+                      >预计金额:<span class="pay-amount">{{ payItem.payAmount || 0 }}</span>
+                    </view>
+                    <view class="pay-center-item" v-else
+                      >应付金额:<span class="pay-amount">{{ payItem.payAmount || 0 }}</span>
+                    </view>
+                    <view
+                      class="pay-center-item"
+                      v-if="(payItem.actualAmount || payItem.actualAmount === 0) && payItem.orderStatus !== 2 && payItem.orderStatus !== 1"
+                    >
+                      实缴金额:<span class="pay-amount">{{ payItem.actualAmount || 0 }}</span>
+                    </view>
+                    <view class="pay-center-item">泊位号:{{ payItem.spaceName }}</view>
+                    <view class="pay-center-item" v-if="payItem.deviceType && payItem.deviceType != 1"> 车位锁设备号:{{ payItem.deviceNo }} </view>
+                  </view>
+                  <view class="pay-bottom">
+                    <u-cell-item title="去支付" @click="choosePayWay(payItem.orderId)" style="color: #008cff"> </u-cell-item>
+                  </view>
+                </view>
+                <view v-if="item.index == 1">
+                  <view class="pay-top u-flex">
+                    <view class="pay-top-left u-flex-1">
+                      <view class="car">{{ payItem.vehicleNo }}</view>
+                      <view class="addr">{{ payItem.parkingName }}</view>
+                    </view>
+                    <view class="pay-top-right">{{ payItem.orderStatus | filterOrderStatus }} </view>
+                  </view>
+                  <view class="pay-center">
+                    <view class="pay-center-item">订单编号:{{ payItem.orderId }}</view>
+                    <view class="pay-center-item">入场通道:{{ payItem.entranceName }}</view>
+                    <view class="pay-center-item">入场时间:{{ payItem.inTime || 0 }}</view>
+                    <view class="pay-center-item">出场通道:{{ payItem.outEntranceName }}</view>
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 出场时间:{{ payItem.outTime || 0 }} </view>
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 免费时长:{{ payItem.freeDuration || 0 }} </view>
+                    <!-- 计费时长=停车时长-免费时长 -->
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 计费时长:{{ payItem.calcDuration || 0 }} </view>
+                    <view class="pay-center-item" v-if="payItem.orderStatus !== 1"> 累计停车时长:{{ payItem.duration || 0 }} </view>
+                    <view class="pay-center-item"
+                      >应付金额:<span class="pay-amount">{{ payItem.payAmount || 0 }}</span>
+                    </view>
+                    <view class="pay-center-item" v-if="payItem.deviceType && payItem.deviceType != 1"> 车位锁设备号:{{ payItem.deviceNo }} </view>
+                  </view>
+                  <view class="pay-bottom">
+                    <u-cell-item title="去支付" @click="choosePayWay(payItem.orderId)" style="color: #008cff"> </u-cell-item>
+                  </view>
+                </view>
+              </view>
+              <u-loadmore :status="loadStatus[index]" bg-color="#F6F6FF"></u-loadmore>
+            </view>
+          </scroll-view>
+        </swiper-item>
+      </swiper>
+    </view>
 
-		<view class="bottom">
-			<view class="bottom-total">
-				累计欠费<span class="total">{{totalCount}}</span>笔,合计<span class="total">{{totalPayAmount}}</span>元
-			</view>
-			<view class="button-wrap" v-if="payList.length&&payList.length>=1">
-				<!-- <button class="button" type="primary" @click="all()">全部缴费</button> -->
-				<button class="button" type="primary" @click="confirmPrice()">全部缴费</button>
-			</view>
-		</view>
+    <view class="bottom">
+      <view class="bottom-total">
+        累计欠费<span class="total">{{ totalCount }}</span
+        >笔,合计<span class="total">{{ totalPayAmount }}</span
+        >元
+      </view>
+      <view class="button-wrap" v-if="payList.length && payList.length >= 1">
+        <button class="button" type="primary" @click="confirmPrice()">全部缴费</button>
+      </view>
+    </view>
 
-		<!-- 缴费提示-->
-		<u-modal v-model="payTipsPop" :title-style="{color: '#404040'}" title="缴费提示" :show-confirm-button="true"
-			confirm-text="立即缴费" :confirm-style="{backgroundColor: '#3397FA', color: '#fff'}" :show-cancel-button="true"
-			cancel-text="取消" :cancel-style="{backgroundColor: '#EBF1FF', color: '#3397FA'}"
-			@confirm="payTipsPopConfirm">
-			<view class="slot-content">
-				<view class="pay-tips">
-					<text>{{payTipsItem.num || 0}}</text>场停车欠费,共
-					<text>{{payTipsItem.price || 0}}</text>元
-				</view>
-			</view>
-		</u-modal>
-		<!-- 支付方式 -->
-		<PaymentMethod :payWayPop="payWayPop" :exportFlag="exportFlag" :curOrderList="currentItem" :jumpUrl="jumpUrl"
-			@closePaymentMethod="closePaymentMethod"></PaymentMethod>
-		<u-toast ref="uToast" />
-	</view>
+    <!-- 缴费提示-->
+    <u-modal
+      v-model="payTipsPop"
+      :title-style="{ color: '#404040' }"
+      title="缴费提示"
+      :show-confirm-button="true"
+      confirm-text="立即缴费"
+      :confirm-style="{ backgroundColor: '#3397FA', color: '#fff' }"
+      :show-cancel-button="true"
+      cancel-text="取消"
+      :cancel-style="{ backgroundColor: '#EBF1FF', color: '#3397FA' }"
+      @confirm="payTipsPopConfirm"
+    >
+      <view class="slot-content">
+        <view class="pay-tips">
+          <text>{{ payTipsItem.num || 0 }}</text
+          >场停车欠费,共 <text>{{ payTipsItem.price || 0 }}</text
+          >元
+        </view>
+      </view>
+    </u-modal>
+    <!-- 支付方式 -->
+    <PaymentMethod
+      :payWayPop="payWayPop"
+      :exportFlag="exportFlag"
+      :curOrderList="currentItem"
+      :jumpUrl="jumpUrl"
+      @closePaymentMethod="closePaymentMethod"
+    ></PaymentMethod>
+    <u-toast ref="uToast" />
+  </view>
 </template>
 
 <script>
-	import getUrlParams from "../../utils/getUrlParams.js";
-	import PaymentMethod from '@/pages/paymentMethod/paymentMethod.vue'
-	export default {
-		components: {
-			PaymentMethod
-		},
-		data() {
-			return {
-				totalPayAmount: '',
-				totalCount: '',
-				currentPayUrl: "",
-				payList: [
-					[],
-					[],
-					[],
-					[]
-				],
-				list: [{
-						index: 0,
-						name: '路段',
-						orderStatus: null,
-						pageNum: 1,
-						total: null
-					},
-					{
-						index: 1,
-						name: '停车场',
-						orderStatus: 1,
-						pageNum: 1,
-						total: null
-					},
-				],
-				current: 0,
-				swiperCurrent: 0,
-				dx: 0,
-				loadStatus: ['loadmore', 'loadmore', 'loadmore', 'loadmore'],
-				isLoadMore: false, //是否加载中
-				orderList: [],
-				exportFlag: false,
-				PayUrl: "",
-				payTipsPop: false,
-				payWayPop: false,
-				// 选中去支付的单条条目
-				currentItem: [],
-				// 缴费提示类目
-				payTipsItem: {
-					num: '',
-					price: ''
-				},
-				code: null,
-				jumpUrl: ''
-			};
-		},
-		computed: {
-			// 价格小数
-			priceDecimal() {
-				return val => {
-					if (val !== parseInt(val)) return val.slice(-2);
-					else return '00';
-				};
-			},
-			// 价格整数
-			priceInt() {
-				return val => {
-					if (val !== parseInt(val)) return val.split('.')[0];
-					else return val;
-				};
-			}
-		},
-		onLoad() {
-			const href = location.href.split('#')
-			this.jumpUrl = href[0] + '#/pages/center/order/order?'
-		},
-		onShow() {
-			this.list[this.current].pageNum = 1
-			this.orderList = [
-				[],
-				[],
-				[],
-				[]
-			]
-			this.orderListArr(this.list[this.current], this.swiperCurrent)
-			
-		},
-		methods: {
-			reachBottom() {
-				if (this.payList[this.current].length >= this.list[this.current].total) {
-					this.loadStatus.splice(this.list[this.current].index, 1, 'nomore')
-					return
-				};
-				this.loadStatus.splice(this.list[this.current].index, 1, 'loading')
-				this.orderListArr(this.list[this.current], this.swiperCurrent)
-			},
-			// tab栏切换
-			change(index) {
-				this.swiperCurrent = index
-				this.current = index
-				//重新初始化
-				this.payList = [
-					[],
-					[],
-					[],
-					[]
-				]
-				this.list[index].pageNum = 1
-				if (index == 1) {
-					this.exportFlag = true
-				} else {
-					this.exportFlag = false
-				}
-				this.orderListArr(this.list[index], index)
-			},
-			transition({
-				detail: {
-					dx
-				}
-			}) {
-				this.$refs.tabs.setDx(dx)
-			},
-			animationfinish({
-				detail: {
-					current
-				}
-			}) {
-				this.$refs.tabs.setFinishCurrent(current)
-				this.swiperCurrent = current
-				this.current = current
-			},
-			customBack() {
-				this.$u.route({
-					type: 'switchTab',
-					url: 'pages/index/index'
-				});
-			},
-			orderListArr(orderType, index) {
-				let pageNum = orderType.pageNum; // 页码, 默认从1开始
-				let pageSize = orderType.total; // 页长, 默认每页10条
-				if (index == 0) {
-					this.$u.api.getOrderList({
-							// pageSize: pageSize,
-							pageNum: pageNum,
-							paying: true
-						})
-						.then(res => {
-							for (const item of res.data.pageInfo.rows) {
-								this.payList[orderType.index].push(item)
-							}
-							this.list[this.current].total = res.data.pageInfo.total
-							this.list[orderType.index].pageNum++
-							if (this.payList[this.current].length >= this.list[this.current].total) {
-								this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore')
-							};
-							this.totalCount = res.data.costInfo.totalCount;	
-							this.totalPayAmount = res.data.costInfo.totalPayAmount;
+import PaymentMethod from '@/pages/paymentMethod/paymentMethod.vue';
+export default {
+  components: {
+    PaymentMethod
+  },
+  data() {
+    return {
+      totalPayAmount: '',
+      totalCount: '',
+      currentPayUrl: '',
+      payList: [[], []],
+      list: [
+        {
+          index: 0,
+          name: '路段',
+          orderStatus: null,
+          pageNum: 1,
+          total: null
+        },
+        {
+          index: 1,
+          name: '停车场',
+          orderStatus: 1,
+          pageNum: 1,
+          total: null
+        }
+      ],
+      current: 0,
+      swiperCurrent: 0,
+      dx: 0,
+      loadStatus: ['loadmore', 'loadmore', 'loadmore', 'loadmore'],
+      isLoadMore: false, //是否加载中
+      orderList: [],
+      exportFlag: false,
+      PayUrl: '',
+      payTipsPop: false,
+      payWayPop: false,
+      // 选中去支付的单条条目
+      currentItem: [],
+      // 缴费提示类目
+      payTipsItem: {
+        num: '',
+        price: ''
+      },
+      code: null,
+      jumpUrl: ''
+    };
+  },
+  computed: {
+    // 价格小数
+    priceDecimal() {
+      return (val) => {
+        if (val !== parseInt(val)) return val.slice(-2);
+        else return '00';
+      };
+    },
+    // 价格整数
+    priceInt() {
+      return (val) => {
+        if (val !== parseInt(val)) return val.split('.')[0];
+        else return val;
+      };
+    }
+  },
+  onLoad() {
+    const href = location.href.split('#');
+    this.jumpUrl = href[0] + '#/pages/center/order/order?';
+  },
+  onShow() {
+    this.list[this.current].pageNum = 1;
+    this.payList = [[], []];
+    this.orderListArr(this.list[this.current], this.swiperCurrent);
+  },
+  methods: {
+    reachBottom() {
+      if (this.payList[this.current].length >= this.list[this.current].total) {
+        this.loadStatus.splice(this.list[this.current].index, 1, 'nomore');
+        return;
+      }
+      this.loadStatus.splice(this.list[this.current].index, 1, 'loading');
+      this.orderListArr(this.list[this.current], this.swiperCurrent);
+    },
+    // tab栏切换
+    change(index) {
+      this.swiperCurrent = index;
+      this.current = index;
+      //重新初始化
+      this.payList = [[], [], [], []];
+      this.list[index].pageNum = 1;
+      if (index == 1) {
+        this.exportFlag = true;
+      } else {
+        this.exportFlag = false;
+      }
+      this.orderListArr(this.list[index], index);
+    },
+    transition({ detail: { dx } }) {
+      this.$refs.tabs.setDx(dx);
+    },
+    animationfinish({ detail: { current } }) {
+      this.$refs.tabs.setFinishCurrent(current);
+      this.swiperCurrent = current;
+      this.current = current;
+    },
+    customBack() {
+      this.$u.route({
+        type: 'switchTab',
+        url: 'pages/index/index'
+      });
+    },
+    orderListArr(orderType, index) {
+      let pageNum = orderType.pageNum; // 页码, 默认从1开始
+      let pageSize = orderType.total; // 页长, 默认每页10条
+      if (index == 0) {
+        this.$u.api
+          .getOrderList({
+            // pageSize: pageSize,
+            pageNum: pageNum,
+            paying: true
+          })
+          .then((res) => {
+            for (const item of res.data.pageInfo.rows) {
+              this.payList[orderType.index].push(item);
+            }
+            this.list[this.current].total = res.data.pageInfo.total;
+            this.list[orderType.index].pageNum++;
+            if (this.payList[this.current].length >= this.list[this.current].total) {
+              this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore');
+            }
+            this.totalCount = res.data.costInfo.totalCount;
+            this.totalPayAmount = res.data.costInfo.totalPayAmount;
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: err.msg,
+              type: 'error'
+            });
+          });
+      } else {
+        this.$u.api
+          .getRoomParkingApi({
+            pageNum: pageNum,
+            paying: true
+          })
+          .then((res) => {
+            for (const item of res.data.pageInfo.rows) {
+              this.payList[orderType.index].push(item);
+            }
+            this.list[this.current].total = res.data.pageInfo.total;
+            this.list[orderType.index].pageNum++;
+            if (this.payList[this.current].length >= this.list[this.current].total) {
+              this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore');
+            }
+            this.totalCount = res.data.costInfo.totalCount;
+            this.totalPayAmount = res.data.costInfo.totalPayAmount;
+          });
+      }
+    },
+    all() {
+      this.payList.forEach((item, index, arr) => {
+        if (item.orderId) {
+          this.orderList.push(item.orderId);
+        }
+      });
 
-						}).catch(err => {
-							this.$refs.uToast.show({
-								title: err.msg,
-								type: 'error',
-							});
-						});
-				} else {
-					this.$u.api.getRoomParkingApi({
-							pageNum: pageNum,
-							paying: true
-						})
-						.then(res => {
-							for (const item of res.data.pageInfo.rows) {
-								this.payList[orderType.index].push(item)
-							}
-							this.list[this.current].total = res.data.pageInfo.total
-							this.list[orderType.index].pageNum++
-							if (this.payList[this.current].length >= this.list[this.current].total) {
-								this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore')
-							};
-							this.totalCount = res.data.costInfo.totalCount;
-							this.totalPayAmount = res.data.costInfo.totalPayAmount;
-						})
-				}
-			},
-			/*下拉刷新的回调*/
-			// downCallback() {
-			// 	// 第2种: 下拉刷新和上拉加载调同样的接口, 则不用第1种, 直接mescroll.resetUpScroll()即可
-			// 	this.mescroll.resetUpScroll(); // 重置列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
-			// },
-			paythis(orderId) {
-				let orderList = [];
-				orderList.push(orderId);
-				this.$u.api.payGzbank({
-					orderList: orderList
-				}).then(res => {
-					let payUrl = res.data.url;
-					this.currentPayUrl = encodeURIComponent(res.data.url);
-					// return;
-					this.$u.route({
-						url: 'pages/payLists/pay',
-						params: {
-							currentPayUrl: this.currentPayUrl
-						}
-					});
-				}).catch(err => {
-					this.$refs.uToast.show({
-						title: err.msg,
-						type: 'error',
-					});
-				});
-			},
-			all() {
-				this.payList.forEach((item, index, arr) => {
-					if (item.orderId) {
-						this.orderList.push(item.orderId)
-					}
-				});
-
-				this.$u.api.payGzbank({
-					orderList: this.orderList
-				}).then(res => {
-					let payUrl = res.data.url;
-					this.currentPayUrl = encodeURIComponent(res.data.url);
-					// console.log('this.currentPayUrl',this.currentPayUrl);
-					// return;
-					this.$u.route({
-						url: 'pages/payLists/pay',
-						params: {
-							currentPayUrl: this.currentPayUrl
-						}
-					});
-				}).catch(err => {
-					this.$refs.uToast.show({
-						title: err.msg,
-						type: 'error',
-					});
-				});
-			},
-			// 去支付,选择支付方式
-			choosePayWay(item) {
-				this.currentItem = []
-				this.currentItem.push(item)
-				this.payWayPop = true
-			},
-			// 全部缴费确认
-			confirmPrice() {
-				let orderNum = 0,
-					price = 0
-				this.currentItem = []
-				this.payList[this.current].forEach(item => {
-					if (item.orderStatus !== 4 && item.payStatus !== 1) {
-						price += Number(item.payAmount)
-						orderNum++
-						this.currentItem.push(item.orderId)
-					}
-				})
-				this.payTipsItem.num = orderNum
-				this.payTipsItem.price = price.toFixed(2)
-				if (orderNum !== 0 && price !== 0) {
-					this.payTipsPop = true
-				} else {
-					this.$refs.uToast.show({
-						title: '没有需要支付的订单',
-						type: 'warning'
-					})
-				}
-			},
-			// 缴费提示弹框确认
-			payTipsPopConfirm() {
-				this.payWayPop = true
-			},
-			handleGetOrderinfo(orderId) {
-				this.$u.api.getOrderinfo({
-						id: orderId
-					})
-					.then(res => {
-						this.orderInfo = res.data;
-						console.log('handleGetOrderinfo', JSON.parse(JSON.stringify(res)));
-					}).catch(err => {
-						this.$refs.uToast.show({
-							title: err.msg,
-							type: 'error',
-						});
-					});
-
-			},
-			closePaymentMethod() {
-				this.payWayPop = false
-			}
-		}
-	};
+      this.$u.api
+        .payGzbank({
+          orderList: this.orderList
+        })
+        .then((res) => {
+          let payUrl = res.data.url;
+          this.currentPayUrl = encodeURIComponent(res.data.url);
+          // console.log('this.currentPayUrl',this.currentPayUrl);
+          // return;
+          this.$u.route({
+            url: 'pages/payLists/pay',
+            params: {
+              currentPayUrl: this.currentPayUrl
+            }
+          });
+        })
+        .catch((err) => {
+          this.$refs.uToast.show({
+            title: err.msg,
+            type: 'error'
+          });
+        });
+    },
+    // 去支付,选择支付方式
+    choosePayWay(item) {
+      this.currentItem = [];
+      this.currentItem.push(item);
+      this.payWayPop = true;
+    },
+    // 全部缴费确认
+    confirmPrice() {
+      let orderNum = 0,
+        price = 0;
+      this.currentItem = [];
+      this.payList[this.current].forEach((item) => {
+        if (item.orderStatus !== 4 && item.payStatus !== 1) {
+          price += Number(item.payAmount);
+          orderNum++;
+          this.currentItem.push(item.orderId);
+        }
+      });
+      this.payTipsItem.num = orderNum;
+      this.payTipsItem.price = price.toFixed(2);
+      if (orderNum !== 0 && price !== 0) {
+        this.payTipsPop = true;
+      } else {
+        this.$refs.uToast.show({
+          title: '没有需要支付的订单',
+          type: 'warning'
+        });
+      }
+    },
+    // 缴费提示弹框确认
+    payTipsPopConfirm() {
+      this.payWayPop = true;
+    },
+    handleGetOrderinfo(orderId) {
+      this.$u.api
+        .getOrderinfo({
+          id: orderId
+        })
+        .then((res) => {
+          this.orderInfo = res.data;
+          console.log('handleGetOrderinfo', JSON.parse(JSON.stringify(res)));
+        })
+        .catch((err) => {
+          this.$refs.uToast.show({
+            title: err.msg,
+            type: 'error'
+          });
+        });
+    },
+    closePaymentMethod() {
+      this.payWayPop = false;
+    }
+  }
+};
 </script>
 
 <style>
-	/* #ifndef H5 */
-	page {
-		height: 100%;
-		background-color: #F6F6FF;
-	}
+/* #ifndef H5 */
+page {
+  height: 100%;
+  background-color: #f6f6ff;
+}
 
-	/* #endif */
+/* #endif */
 </style>
 
 <style lang="scss" scoped>
-	@import "./payLists.scss";
+@import './payLists.scss';
 </style>