Browse Source

订单修改

yangzj 2 năm trước cách đây
mục cha
commit
cb106c068c

+ 396 - 417
pages/center/order/order.vue

@@ -1,446 +1,425 @@
 <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">
-				<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="order" @click="goDetails(orderItem)"
-								v-for="(orderItem, index) in  orderList[current]" :key="'o-' + index">
-								<view class="order-top u-flex">
-									<view class="order-top-left u-flex-1">
-										<view class="car">{{ orderItem.vehicleNo }}</view>
-										<view class="addr">{{ orderItem.roadName }}</view>
-									</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">
+        <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="order" @click="goDetails(orderItem)" v-for="(orderItem, index) in orderList[current]" :key="'o-' + index">
+                <view class="order-top u-flex">
+                  <view class="order-top-left u-flex-1">
+                    <view class="car">{{ orderItem.vehicleNo }}</view>
+                    <view class="addr">{{ orderItem.roadName }}</view>
+                  </view>
+                  <!--
                     显示申请退款按钮满足一下条件:
                     1.允许退款allowRefund等于1 并且
                     2.退款状态auditStatus等于2 已驳回 或者
                     3.退款状态auditStatus不能为空 并且不能等于0
                   -->
-									<view class="order-top-right apply-refund" v-show="orderItem.allowRefund == 1 &&
-                    (orderItem.auditStatus == 2 || !orderItem.auditStatus && orderItem.auditStatus != 0)"
-										@click.stop="applyRefund(orderItem)">申请退款</view>
-									<!--
+                  <view
+                    class="order-top-right apply-refund"
+                    v-show="orderItem.allowRefund == 1 && (orderItem.auditStatus == 2 || (!orderItem.auditStatus && orderItem.auditStatus != 0))"
+                    @click.stop="applyRefund(orderItem)"
+                    >申请退款</view
+                  >
+                  <!--
                     显示申请状态满足以下条件
                     申请状态存在或者审核状态存在(由于0比较特殊,所以单独拉出来判断)
                   -->
-									<view class="order-top-right apply-refund"
-										@click.stop="applyRefundDetails(orderItem)" v-if="orderItem.refundStatus ||
-                    orderItem.refundStatus == 0 ||
-                    orderItem.auditStatus ||
-                    orderItem.auditStatus == 0">{{ orderItem | verifyRefundStatus }}</view>
-									<view class="order-top-right" v-else
-										:class="{ 'order-top-right-finished': orderItem.orderStatus == '4' }">
-										{{ orderItem.orderStatus | verifyStatusFilter }}
-									</view>
-								</view>
-								<!-- 路段显示字段 -->
-								<view class="order-center" v-if="typeCurrent.value === 'road'">
-									<view class="order-center-item">订单编号:{{ orderItem.orderId }}</view>
-									<!-- <view class="order-center-item">入场时间:{{ orderItem.inTime }}</view> -->
-									<view class="order-center-item" v-if="orderItem.deviceType == 1">
-										入场时间:{{ orderItem.inTime }}</view>
-									<view class="order-center-item" v-else>开始计费:{{ orderItem.inTime }}</view>
-									<template v-if="orderItem.deviceType == 1">
-										<view class="order-center-item"
-											v-if="orderItem.orderStatus == 1 && orderItem.outTime">
-											出场时间:{{ `未出场` }}</view>
-										<view class="order-center-item" v-if="orderItem.orderStatus !== 1">
-											出场时间:{{ orderItem.outTime }}</view>
-									</template>
-									<template v-else>
-										<view class="order-center-item"
-											v-if="orderItem.orderStatus == 1 && orderItem.outTime">
-											结束计费:{{ `未出场` }}</view>
-										<view class="order-center-item" v-if="orderItem.orderStatus !== 1">
-											结束计费:{{ orderItem.outTime }}</view>
-									</template>
-									<!-- <view class="order-center-item">
+                  <view
+                    class="order-top-right apply-refund"
+                    @click.stop="applyRefundDetails(orderItem)"
+                    v-if="orderItem.refundStatus || orderItem.refundStatus == 0 || orderItem.auditStatus || orderItem.auditStatus == 0"
+                    >{{ orderItem | verifyRefundStatus }}</view
+                  >
+                  <view class="order-top-right" v-else :class="{ 'order-top-right-finished': orderItem.orderStatus == '4' }">
+                    {{ orderItem.orderStatus | verifyStatusFilter }}
+                  </view>
+                </view>
+                <!-- 路段显示字段 -->
+                <view class="order-center" v-if="typeCurrent.value === 'road'">
+                  <view class="order-center-item">订单编号:{{ orderItem.orderId }}</view>
+                  <!-- <view class="order-center-item">入场时间:{{ orderItem.inTime }}</view> -->
+                  <view class="order-center-item" v-if="orderItem.deviceType == 1"> 入场时间:{{ orderItem.inTime }}</view>
+                  <view class="order-center-item" v-else>开始计费:{{ orderItem.inTime }}</view>
+                  <template v-if="orderItem.deviceType == 1">
+                    <view class="order-center-item" v-if="orderItem.orderStatus == 1 && orderItem.outTime"> 出场时间:{{ `未出场` }}</view>
+                    <view class="order-center-item" v-if="orderItem.orderStatus !== 1"> 出场时间:{{ orderItem.outTime }}</view>
+                  </template>
+                  <template v-else>
+                    <view class="order-center-item" v-if="orderItem.orderStatus == 1 && orderItem.outTime"> 结束计费:{{ `未出场` }}</view>
+                    <view class="order-center-item" v-if="orderItem.orderStatus !== 1"> 结束计费:{{ orderItem.outTime }}</view>
+                  </template>
+                  <!-- <view class="order-center-item">
 										停车时长:{{ orderItem.duration || 0 }}</view> -->
-									<!-- <view class="order-center-item" v-if="orderItem.orderStatus !== 1">
+                  <!-- <view class="order-center-item" v-if="orderItem.orderStatus !== 1">
 										免费时长:{{ orderItem.freeDuration || 0 }}</view> -->
-									<view class="order-center-item" v-if="orderItem.deviceType == 1">
-										免费时长:{{ orderItem.freeDuration || 0 }}</view>
-									<!-- <view class="order-center-item" v-if="orderItem.deviceType == 2">
+                  <view class="order-center-item" v-if="orderItem.deviceType == 1"> 免费时长:{{ orderItem.freeDuration || 0 }}</view>
+                  <!-- <view class="order-center-item" v-if="orderItem.deviceType == 2">
 										免费时长:0天0时15分0秒</view> -->
-									<view class="order-center-item" v-if="orderItem.deviceType == 2">
-										免费时长:{{ (orderItem.freeDuration || 1) | freeDuration }}</view>
-									<!-- <view class="order-center-item" v-if="orderItem.orderStatus !== 1">
+                  <view class="order-center-item" v-if="orderItem.deviceType == 2">
+                    免费时长:{{ (orderItem.freeDuration || 1) | freeDuration }}</view
+                  >
+                  <!-- <view class="order-center-item" v-if="orderItem.orderStatus !== 1">
 										计费时长:{{ orderItem.calcDuration || 0 }}</view> -->
-									<view class="order-center-item">
-										计费时长:{{ orderItem.calcDuration || 0 }}</view>
-									<view class="order-center-item">
-										累计停车时长:{{ orderItem.duration || 0 }}</view>
-									<view class="order-center-item" v-if="orderItem.orderStatus == 1">
-										预计金额:
-										<span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
-									</view>
-									<view class="order-center-item" v-else>
-										应付金额:
-										<span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
-									</view>
-									<view class="order-center-item"
-										v-if="(orderItem.actualAmount || orderItem.actualAmount === 0) && orderItem.orderStatus !== 2 && orderItem.orderStatus !== 1">
-										实缴金额:
-										<span class="pay-amount">{{ orderItem.actualAmount || 0 }}</span>
-									</view>
-									<view class="order-center-item">泊位号:{{ orderItem.spaceName }}</view>
-									<view class="order-center-item" v-if="Number(orderItem.deviceType) !== 1">
-										车位锁设备号:{{ orderItem.deviceNo }}</view>
-								</view>
-								<!-- 停车场显示字段 -->
-								<view class="order-center" v-if="typeCurrent.value === 'park'">
-									<view class="order-center-item">订单编号:{{ orderItem.orderId }}</view>
-									<view class="order-center-item">
-										入场通道:{{orderItem.roadwayName}}</view>
-									<view class="order-center-item">
-										入场时间:{{ orderItem.inTime }}</view>
-									<view class="order-center-item"
-										v-if="orderItem.orderStatus == 1 && orderItem.outTime">
-										出场通道:{{`未出场`}}</view>
-									<view class="order-center-item" v-if="orderItem.orderStatus !== 1">
-										出场通道:{{orderItem.outParkingName}}</view>
-									<view class="order-center-item" v-if="orderItem.orderStatus !== 1">
-										出场时间:{{ orderItem.inTime }}</view>
-									<view class="order-center-item">
-										免费时长:{{ orderItem.freeDuration || 0 }}</view>
-									<view class="order-center-item">
-										计费时长:{{ orderItem.calcDuration || 0 }}</view>
-									<view class="order-center-item">
-										累计停车时长:{{ orderItem.duration || 0 }}</view>
-									<view class="order-center-item">
-										应缴金额:
-										<span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
-									</view>
-									<view class="order-center-item"
-										v-if="(orderItem.actualAmount || orderItem.actualAmount === 0) && orderItem.orderStatus !== 2 && orderItem.orderStatus !== 1">
-										实缴金额:
-										<span class="pay-amount">{{ orderItem.actualAmount || 0 }}</span>
-									</view>
-								</view>
-								<view class="order-bottom">
-									<u-cell-item title="收费标准" @click.native.stop="jumpChargeStandard(orderItem)">
-									</u-cell-item>
-								</view>
-							</view>
-							<u-loadmore :status="loadStatus[index]" bg-color="#F6F6FF"></u-loadmore>
-						</view>
-					</scroll-view>
-				</swiper-item>
-			</swiper>
-		</view>
+                  <view class="order-center-item"> 计费时长:{{ orderItem.calcDuration || 0 }}</view>
+                  <view class="order-center-item"> 累计停车时长:{{ orderItem.duration || 0 }}</view>
+                  <view class="order-center-item" v-if="orderItem.orderStatus == 1">
+                    预计金额:
+                    <span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
+                  </view>
+                  <view class="order-center-item" v-else>
+                    应付金额:
+                    <span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
+                  </view>
+                  <view
+                    class="order-center-item"
+                    v-if="(orderItem.actualAmount || orderItem.actualAmount === 0) && orderItem.orderStatus !== 2 && orderItem.orderStatus !== 1"
+                  >
+                    实缴金额:
+                    <span class="pay-amount">{{ orderItem.actualAmount || 0 }}</span>
+                  </view>
+                  <view class="order-center-item">泊位号:{{ orderItem.spaceName }}</view>
+                  <view class="order-center-item" v-if="Number(orderItem.deviceType) !== 1"> 车位锁设备号:{{ orderItem.deviceNo }}</view>
+                </view>
+                <!-- 停车场显示字段 -->
+                <view class="order-center" v-if="typeCurrent.value === 'park'">
+                  <view class="order-center-item">订单编号:{{ orderItem.orderId }}</view>
+                  <view class="order-center-item"> 入场通道:{{ orderItem.roadwayName }}</view>
+                  <view class="order-center-item"> 入场时间:{{ orderItem.inTime }}</view>
+                  <view class="order-center-item" v-if="orderItem.orderStatus == 1 && orderItem.outTime"> 出场通道:{{ `未出场` }}</view>
+                  <view class="order-center-item" v-if="orderItem.orderStatus !== 1"> 出场通道:{{ orderItem.outParkingName }}</view>
+                  <view class="order-center-item" v-if="orderItem.orderStatus !== 1"> 出场时间:{{ orderItem.inTime }}</view>
+                  <view class="order-center-item"> 免费时长:{{ orderItem.freeDuration || 0 }}</view>
+                  <view class="order-center-item"> 计费时长:{{ orderItem.calcDuration || 0 }}</view>
+                  <view class="order-center-item"> 累计停车时长:{{ orderItem.duration || 0 }}</view>
+                  <view class="order-center-item">
+                    应缴金额:
+                    <span class="pay-amount">{{ orderItem.payAmount || 0 }}</span>
+                  </view>
+                  <view
+                    class="order-center-item"
+                    v-if="(orderItem.actualAmount || orderItem.actualAmount === 0) && orderItem.orderStatus !== 2 && orderItem.orderStatus !== 1"
+                  >
+                    实缴金额:
+                    <span class="pay-amount">{{ orderItem.actualAmount || 0 }}</span>
+                  </view>
+                </view>
+                <view class="order-bottom">
+                  <u-cell-item title="收费标准" @click.native.stop="jumpChargeStandard(orderItem)"> </u-cell-item>
+                </view>
+              </view>
+              <u-loadmore :status="loadStatus[index]" bg-color="#F6F6FF"></u-loadmore>
+            </view>
+          </scroll-view>
+        </swiper-item>
+      </swiper>
+    </view>
 
-		<!-- 停车场和路段切换 -->
-		<view class="type-list">
-			<view class="type-list-item" v-for="(item, index) in typeList" :key="index"
-				:class="{'type-list-item-current':  typeCurrent.value === item.value}" @click="typeTabClick(item)">
-				{{ item.label }}
-			</view>
-		</view>
+    <!-- 停车场和路段切换 -->
+    <view class="type-list">
+      <view
+        class="type-list-item"
+        v-for="(item, index) in typeList"
+        :key="index"
+        :class="{ 'type-list-item-current': typeCurrent.value === item.value }"
+        @click="typeTabClick(item)"
+      >
+        {{ item.label }}
+      </view>
+    </view>
 
-		<u-toast ref="uToast" />
-	</view>
+    <u-toast ref="uToast" />
+  </view>
 </template>
 
 <script>
-	// 订单状态orderStatus: 1-停放中 2-出场中 3-欠费 4-完成
-	export default {
-		data() {
-			return {
-				orderList: [
-					[],
-					[],
-					[],
-					[]
-				],
-				list: [{
-						index: 0,
-						name: '全部',
-						orderStatus: null,
-						pageNum: 1,
-						total: null
-					},
-					{
-						index: 1,
-						name: '停放中',
-						orderStatus: 1,
-						pageNum: 1,
-						total: null
-					},
-					{
-						index: 2,
-						name: '欠费未缴',
-						orderStatus: 2,
-						pageNum: 1,
-						total: null
-					},
-					{
-						index: 3,
-						name: '已完成',
-						orderStatus: 4,
-						pageNum: 1,
-						total: null
-					}
-				],
-				current: 0,
-				swiperCurrent: 0,
-				tabsHeight: 0,
-				dx: 0,
-				loadStatus: ['loadmore', 'loadmore', 'loadmore', 'loadmore'],
-				// 停车类型
-				typeList: [{
-						label: '路段',
-						value: 'road'
-					},
-					{
-						label: '停车场',
-						value: 'park'
-					}
-				],
-				typeCurrent: { //设置停车类型默认值
-					label: '路段',
-					value: 'road'
-				}
-			}
-		},
-		onShow() {},
-		onLoad(options) {
-			let questCurrent = options.orderStatus
-			if (questCurrent) {
-				this.current = questCurrent
-				this.change(questCurrent)
-			} else {
-				this.list[this.current].pageNum = 1
-				this.orderList = [
-					[],
-					[],
-					[],
-					[]
-				]
-				this.getOrderList(this.list[this.current], this.typeCurrent)
-			}
-		},
-		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
-				}
-			}
-		},
-		onBackPress(e) {
-			// 返回主页面tabBar
-			uni.switchTab({
-				url: "../../center/index"
-			})
-			// 此处一定要return为true,否则页面不会返回到指定路径
-			return true;
-		},
-		methods: {
-			reachBottom() {
-				if (this.orderList[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.getOrderList(this.list[this.current], this.typeCurrent)
-			},
-			// 页面数据
+// 订单状态orderStatus: 1-停放中 2-出场中 3-欠费 4-完成
+export default {
+  data() {
+    return {
+      orderList: [[], [], [], []],
+      list: [
+        {
+          index: 0,
+          name: '全部',
+          orderStatus: null,
+          pageNum: 1,
+          total: null
+        },
+        {
+          index: 1,
+          name: '停放中',
+          orderStatus: 1,
+          pageNum: 1,
+          total: null
+        },
+        {
+          index: 2,
+          name: '欠费未缴',
+          orderStatus: 2,
+          pageNum: 1,
+          total: null
+        },
+        {
+          index: 3,
+          name: '已完成',
+          orderStatus: 4,
+          pageNum: 1,
+          total: null
+        }
+      ],
+      current: 0,
+      swiperCurrent: 0,
+      tabsHeight: 0,
+      dx: 0,
+      loadStatus: ['loadmore', 'loadmore', 'loadmore', 'loadmore'],
+      // 停车类型
+      typeList: [
+        {
+          label: '路段',
+          value: 'road'
+        },
+        {
+          label: '停车场',
+          value: 'park'
+        }
+      ],
+      typeCurrent: {
+        //设置停车类型默认值
+        label: '路段',
+        value: 'road'
+      }
+    };
+  },
+  onShow() {},
+  onLoad(options) {
+    let questCurrent = options.orderStatus;
+    if (questCurrent) {
+      this.current = questCurrent;
+      this.change(questCurrent);
+    } else {
+      this.list[this.current].pageNum = 1;
+      this.orderList = [[], [], [], []];
+      this.getOrderList(this.list[this.current], this.typeCurrent);
+    }
+  },
+  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;
+      };
+    }
+  },
+  onBackPress(e) {
+    // 返回主页面tabBar
+    uni.switchTab({
+      url: '../../center/index'
+    });
+    // 此处一定要return为true,否则页面不会返回到指定路径
+    return true;
+  },
+  methods: {
+    reachBottom() {
+      if (this.orderList[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.getOrderList(this.list[this.current], this.typeCurrent);
+    },
+    // 页面数据
 
-			getOrderList(orderType, typeCurrent) {
-				//初始化订单列表
-				const param = {
-					pageNum: orderType.pageNum,
-					orderStatus: orderType.orderStatus
-				}
+    getOrderList(orderType, typeCurrent) {
+      //初始化订单列表
+      const param = {
+        pageNum: orderType.pageNum,
+        orderStatus: orderType.orderStatus
+      };
 
-				// 未出场: orderStatus	 = 1-停放中
-				// 缴费中: orderStatus	 = 2-出场中  && payStatus = 2-支付中
-				// 完成:   orderStatus	 = 4-完成
-				if (typeCurrent.value == 'road') {
-					this.$u.api.getOrderList(param)
-						.then(res => {
-							for (const item of res.data.pageInfo.rows) {
-								this.orderList[orderType.index].push(item)
-							}
-							this.list[this.current].total = res.data.pageInfo.total
-							this.list[orderType.index].pageNum++
-							if (this.orderList[this.current].length >= this.list[this.current].total) {
-								this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore')
-							};
-						}).catch(err => {
-							this.$refs.uToast.show({
-								title: err.msg,
-								type: 'error'
-							})
-						})
+      // 未出场: orderStatus	 = 1-停放中
+      // 缴费中: orderStatus	 = 2-出场中  && payStatus = 2-支付中
+      // 完成:   orderStatus	 = 4-完成
+      if (typeCurrent.value == 'road') {
+        this.$u.api
+          .getOrderList(param)
+          .then((res) => {
+            for (const item of res.data.pageInfo.rows) {
+              this.orderList[orderType.index].push(item);
+            }
+            this.list[this.current].total = res.data.pageInfo.total;
+            this.list[orderType.index].pageNum++;
+            if (this.orderList[this.current].length >= this.list[this.current].total) {
+              this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore');
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: err.msg,
+              type: 'error'
+            });
+          });
+      } else {
+        this.$u.api
+          .getRoomParkingApi(param)
+          .then((res) => {
+            for (const item of res.data.pageInfo.rows) {
+              this.orderList[orderType.index].push(item);
+            }
+            this.list[this.current].total = res.data.pageInfo.total;
+            this.list[orderType.index].pageNum++;
+            if (this.orderList[this.current].length >= this.list[this.current].total) {
+              this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore');
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: err.msg,
+              type: 'error'
+            });
+          });
+      }
 
-				} else {
-					this.$u.api.getRoomParkingApi(param)
-						.then(res => {
-							for (const item of res.data.pageInfo.rows) {
-								this.orderList[orderType.index].push(item)
-							}
-							this.list[this.current].total = res.data.pageInfo.total
-							this.list[orderType.index].pageNum++
-							if (this.orderList[this.current].length >= this.list[this.current].total) {
-								this.loadStatus.splice(this.list[orderType.index].index, 1, 'nomore')
-							};
-						}).catch(err => {
-							this.$refs.uToast.show({
-								title: err.msg,
-								type: 'error'
-							})
-						})
-				}
-
-				this.loadStatus.splice(this.current, 1, 'loadmore')
-			},
-			// tab栏切换
-			change(index) {
-				this.swiperCurrent = index
-				//重新初始化
-				this.orderList = [
-					[],
-					[],
-					[],
-					[]
-				]
-				this.list[index].pageNum = 1
-				this.getOrderList(this.list[index], this.typeCurrent)
-			},
-			transition({
-				detail: {
-					dx
-				}
-			}) {
-				this.$refs.tabs.setDx(dx)
-			},
-			animationfinish({
-				detail: {
-					current
-				}
-			}) {
-				this.$refs.tabs.setFinishCurrent(current)
-				this.swiperCurrent = current
-				this.current = current
-			},
-			/**
-			 * 跳转详情
-			 * 未发起退款或者未退款成功的
-			 * */
-			goDetails(item) {
-				this.$u.route({
-					url: 'pages/center/order/orderDetails/orderDetails',
-					params: {
-						orderId: item.id,
-						orderType: this.typeCurrent.value
-					}
-				})
-			},
-			jumpChargeStandard(item) {
-				this.$u.route({
-					url: 'pages/chargeStandard/chargeStandard',
-					params: {
-						roadNo: item.roadNo
-					}
-				})
-			},
-			// 申请退款
-			applyRefund(item) {
-				this.$u.route('pages/applyRefund/applyRefund', {
-					orderId: item.orderId,
-					payAmount: item.actualAmount
-				})
-			},
-			/**
-			 * 申请退款详情
-			 * 只要申请退款状态等于1并且审批状态等于1跳转到退款完成详情页
-			 *  否则跳转到退款过程页
-			 * */
-			applyRefundDetails(item) {
-				if (item.refundStatus === 1 && item.auditStatus === 1) {
-					this.$u.route('pages/applyRefundDetails/applyRefundAchieveDetails', {
-						orderId: item.orderId
-					})
-				} else {
-					this.$u.route('pages/applyRefundDetails/applyRefundDetails', {
-						orderId: item.orderId
-					})
-				}
-			},
-			/**
-			 * 类型切换
-			 * @param {Object} item
-			 */
-			typeTabClick(item) {
-				this.typeCurrent = item
-				//重新初始化
-				this.orderList = [
-					[],
-					[],
-					[],
-					[]
-				]
-				this.list[this.current].pageNum = 1
-				this.getOrderList(this.list[this.current], this.typeCurrent)
-			}
-		},
-		filters: {
-			verifyStatusFilter(value) {
-				if (value === 0) {
-					return ''
-				} else if (value === 1) {
-					return '停放中'
-				} else if (value === 2) {
-					return '欠费未缴'
-				} else if (value === 4) {
-					return '已完成'
-				} else {
-					return ''
-				}
-			},
-			verifyRefundStatus(item) {
-				if (item.auditStatus === 0) {
-					return '申请退款中'
-				} else if (item.auditStatus === 1) {
-					if (item.refundStatus === 0) {
-						return '退款失败'
-					} else if (item.refundStatus === 1) {
-						return '退款成功'
-					}
-				} else if (item.auditStatus === 2) {
-					return '已驳回'
-				}
-			}
-		}
-	}
+      this.loadStatus.splice(this.current, 1, 'loadmore');
+    },
+    // tab栏切换
+    change(index) {
+      this.swiperCurrent = index;
+      //重新初始化
+      this.orderList = [[], [], [], []];
+      this.list[index].pageNum = 1;
+      this.getOrderList(this.list[index], this.typeCurrent);
+    },
+    transition({ detail: { dx } }) {
+      this.$refs.tabs.setDx(dx);
+    },
+    animationfinish({ detail: { current } }) {
+      this.$refs.tabs.setFinishCurrent(current);
+      this.swiperCurrent = current;
+      this.current = current;
+    },
+    /**
+     * 跳转详情
+     * 未发起退款或者未退款成功的
+     * */
+    goDetails(item) {
+      this.$u.route({
+        url: 'pages/center/order/orderDetails/orderDetails',
+        params: {
+          orderId: item.id,
+          orderType: this.typeCurrent.value
+        }
+      });
+    },
+    jumpChargeStandard(item) {
+      let roadNo = item?.roadNo;
+      if (this.typeCurrent.value === 'park') {
+        roadNo = item?.parkingNo;
+      }
+      this.$u.route({
+        url: 'pages/chargeStandard/chargeStandard',
+        params: {
+          roadNo
+        }
+      });
+    },
+    // 申请退款
+    applyRefund(item) {
+      this.$u.route('pages/applyRefund/applyRefund', {
+        orderId: item.orderId,
+        payAmount: item.actualAmount
+      });
+    },
+    /**
+     * 申请退款详情
+     * 只要申请退款状态等于1并且审批状态等于1跳转到退款完成详情页
+     *  否则跳转到退款过程页
+     * */
+    applyRefundDetails(item) {
+      if (item.refundStatus === 1 && item.auditStatus === 1) {
+        this.$u.route('pages/applyRefundDetails/applyRefundAchieveDetails', {
+          orderId: item.orderId
+        });
+      } else {
+        this.$u.route('pages/applyRefundDetails/applyRefundDetails', {
+          orderId: item.orderId
+        });
+      }
+    },
+    /**
+     * 类型切换
+     * @param {Object} item
+     */
+    typeTabClick(item) {
+      this.typeCurrent = item;
+      //重新初始化
+      this.orderList = [[], [], [], []];
+      this.list[this.current].pageNum = 1;
+      this.getOrderList(this.list[this.current], this.typeCurrent);
+    }
+  },
+  filters: {
+    verifyStatusFilter(value) {
+      if (value === 0) {
+        return '';
+      } else if (value === 1) {
+        return '停放中';
+      } else if (value === 2) {
+        return '欠费未缴';
+      } else if (value === 4) {
+        return '已完成';
+      } else {
+        return '';
+      }
+    },
+    verifyRefundStatus(item) {
+      if (item.auditStatus === 0) {
+        return '申请退款中';
+      } else if (item.auditStatus === 1) {
+        if (item.refundStatus === 0) {
+          return '退款失败';
+        } else if (item.refundStatus === 1) {
+          return '退款成功';
+        }
+      } else if (item.auditStatus === 2) {
+        return '已驳回';
+      }
+    }
+  }
+};
 </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 "./order.scss";
+@import './order.scss';
 </style>

+ 4 - 24
pages/center/order/orderDetails/orderDetails.vue

@@ -26,31 +26,11 @@
           <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="停车时长 "
-          :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.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 || 0" />
         </template>
         <template v-else>
-          <u-cell-item
-            title="免费时长 "
-            :arrow="false"
-            :border-bottom="false"
-            :border-top="false"
-            :value="(orderInfo.freeDuration || 1) | freeDuration"
-          />
+          <u-cell-item title="免费时长 " :arrow="false" :border-bottom="false" :border-top="false" :value="orderInfo.freeDuration || 0" />
         </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" />
@@ -93,10 +73,10 @@
           <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 || 0" />
         </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 || 0" />
         </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" />

+ 54 - 58
pages/chargeStandard/chargeStandard.vue

@@ -107,70 +107,66 @@ export default {
      * {roadNo} 路段
      * */
     getChargeRulesInfo(roadNo) {
-      this.$u.api
-        .roadChargeRule({
-          roadNo: roadNo
-        })
-        .then((res) => {
-          if (res.code === 200) {
-            // 数据整合后
-            let chargeRulesArr = [];
-            for (let i = 0; i < res.data.length; i++) {
-              let item = res.data[i];
-              this.info.freeTime = res.data[0].freeTime;
-              this.info.topAmt = res.data[0].topAmt;
-              const obj = {
-                feeName: item.feeName,
-                feeNo: item.feeNo,
-                feePeriod: item.feePeriod,
-                feeStep: item.feeStep,
-                feeType: item.feeType,
-                freeTime: item.freeTime,
-                topAmt: item.topAmt,
-                id: item.id,
-                list: [],
-                repeatList: [] // 用来检验已存在
+      this.$u.api.roadChargeRule({ roadNo }).then((res) => {
+        if (res.code === 200) {
+          // 数据整合后
+          let chargeRulesArr = [];
+          for (let i = 0; i < res.data.length; i++) {
+            let item = res.data[i];
+            this.info.freeTime = res.data[0].freeTime;
+            this.info.topAmt = res.data[0].topAmt;
+            const obj = {
+              feeName: item.feeName,
+              feeNo: item.feeNo,
+              feePeriod: item.feePeriod,
+              feeStep: item.feeStep,
+              feeType: item.feeType,
+              freeTime: item.freeTime,
+              topAmt: item.topAmt,
+              id: item.id,
+              list: [],
+              repeatList: [] // 用来检验已存在
+            };
+            for (let j = 0; j < item.vehicleRules.length; j++) {
+              let jItem = item.vehicleRules[j];
+              const obj1 = {
+                amt: jItem.amt,
+                beginTime: jItem.beginTime,
+                endTime: jItem.endTime,
+                vehicleFeeNo: jItem.vehicleFeeNo,
+                vehicleType: jItem.vehicleType,
+                list: []
               };
-              for (let j = 0; j < item.vehicleRules.length; j++) {
-                let jItem = item.vehicleRules[j];
-                const obj1 = {
-                  amt: jItem.amt,
-                  beginTime: jItem.beginTime,
-                  endTime: jItem.endTime,
-                  vehicleFeeNo: jItem.vehicleFeeNo,
-                  vehicleType: jItem.vehicleType,
-                  list: []
-                };
-                if (obj.repeatList.indexOf(jItem.vehicleType) === -1) {
-                  obj.repeatList.push(jItem.vehicleType);
-                  obj1.list.push(jItem);
-                } else {
-                  for (let k = 0; k < item.vehicleRules.length; k++) {
-                    if (obj1.vehicleType === item.vehicleRules[k].vehicleType) {
-                      obj1.list.push(item.vehicleRules[k]);
-                      obj.list.push(obj1);
-                    }
+              if (obj.repeatList.indexOf(jItem.vehicleType) === -1) {
+                obj.repeatList.push(jItem.vehicleType);
+                obj1.list.push(jItem);
+              } else {
+                for (let k = 0; k < item.vehicleRules.length; k++) {
+                  if (obj1.vehicleType === item.vehicleRules[k].vehicleType) {
+                    obj1.list.push(item.vehicleRules[k]);
+                    obj.list.push(obj1);
                   }
                 }
               }
-              // 存在重复,去除重复操作
-              let obj2 = {};
-              obj.list = obj.list.reduce((cur, next) => {
-                obj[next.vehicleType] ? '' : (obj[next.vehicleType] = true && cur.push(next));
-                return cur;
-              }, []);
-              chargeRulesArr.push(obj);
             }
-            this.chargeRulesInfo = chargeRulesArr;
-          } else {
-            uni.showToast({
-              title: `${res.msg}`,
-              duration: 3000,
-              icon: 'none',
-              mask: true
-            });
+            // 存在重复,去除重复操作
+            let obj2 = {};
+            obj.list = obj.list.reduce((cur, next) => {
+              obj[next.vehicleType] ? '' : (obj[next.vehicleType] = true && cur.push(next));
+              return cur;
+            }, []);
+            chargeRulesArr.push(obj);
           }
-        });
+          this.chargeRulesInfo = chargeRulesArr;
+        } else {
+          uni.showToast({
+            title: `${res.msg}`,
+            duration: 3000,
+            icon: 'none',
+            mask: true
+          });
+        }
+      });
     },
     /**
      * 获取收费标准