Pārlūkot izejas kodu

feat: 微服务接入改造15%(历史订单)

John-Hong 2 gadi atpakaļ
vecāks
revīzija
bfc7c3d9ea

+ 4 - 1
src/App.vue

@@ -80,7 +80,10 @@ export default {
         const carList = uni.getStorageSync('carList');
         // 每次进入页面清空 缓存数据
         window.localStorage.clear();
-        uni.setStorageSync('carList', JSON.parse(carList));
+        if ( carList ) {
+          uni.setStorageSync('carList', JSON.parse(carList));
+        }
+
         this.$store.commit('SET_IS_INIT', false);
         window.token = `${window.location.href}`.replace(
           /.*wx\/(.*)\/.*/g,

+ 39 - 0
src/api/mockData/orders.json

@@ -0,0 +1,39 @@
+{
+  "content": [
+    {
+      "id": "8ffdd6a50d3e4cba91847613314e030b",
+      "parkName": "沈阳嘉里城",
+      "orderNo": "SY20221026151406078744",
+      "vehicleNo": "浙A11113",
+      "entertime": "2022-10-21 09:40:00",
+      "serviceMin": 7534.0,
+      "actualPayFee": 200,
+      "refundStatus":1
+    }
+  ],
+  "pageable": {
+    "sort": {
+      "empty": false,
+      "sorted": true,
+      "unsorted": false
+    },
+    "offset": 4,
+    "pageSize": 4,
+    "pageNumber": 1,
+    "paged": true,
+    "unpaged": false
+  },
+  "last": false,
+  "totalPages": 250,
+  "totalElements": 1000,
+  "size": 4,
+  "number": 1,
+  "sort": {
+    "empty": false,
+    "sorted": true,
+    "unsorted": false
+  },
+  "first": false,
+  "numberOfElements": 4,
+  "empty": false
+}

+ 26 - 0
src/api/mockData/ordersInfo.json

@@ -0,0 +1,26 @@
+{
+  "id": 123,
+  "createTime": "2022-11-27 05:00:18",
+  "orderNo": "eOMtThyhVNLWUZNRcBaQKxIye",
+  "vehicleNo": "dUsFwdkelQbxeTeQOvaScfqIOOmaa",
+  "parkName": "JxkyvRnLRYtGKbgicZ",
+  "enterTime": "2022-11-29 04:04:06",
+  "exitTime": "2022-11-27 18:14:13",
+  "serviceMin": 275,
+  "totalFee": 69400,
+  "actualPayFee": 2000,
+  "paymentMethod": null,
+  "paymentTime": null,
+  "invoiceStatusText": "未开票",
+  "discountInfo": {
+    "id": 797,
+    "usingTotalDiscount": 4900,
+    "actualUsedDiscount": 4500,
+    "memberLevelDiscount": 2000,
+    "consumeDiscount": 1000,
+    "pointsDiscount": 500,
+    "newMemberPointsDiscount": 0,
+    "couponDiscount": 1000,
+    "paperCouponDiscount": 500
+  }
+}

+ 15 - 4
src/api/parking/index.js

@@ -10,18 +10,29 @@
 // });
 
 export function parkingLots(buildingsId) {
-  return window.requestms.get(`/parking-lots/buildings/${buildingsId}`, { loading: true });
+  return window.requestms.get(`/parking-lots/buildings/${buildingsId}`, {
+    loading: true,
+  });
   // return window.requestms.get(`/`, { params, loading: true });
 }
 
-
 // 1.6 查询车辆是否在场及停车费用: https://kerryprops.atlassian.net/wiki/spaces/TAIC/pages/94076936/1.6
 // 新接口路径:https://{kip-service-host}/c/api/temporary-parking-service/parking/check-out?vehicleNo={{vehicleNo}}
 export function checkOut(vehicleNo) {
   console.log(212121, vehicleNo);
   // 'https://dev-kip-service-internal.kerryonvip.com/temporary-parking-service/parking/check-out?vehicleNo=浙
-  return window.requestms.get(`/parking/check-out?vehicleNo=${vehicleNo}`, {  loading: true });
+  return window.requestms.get(`/parking/check-out?vehicleNo=${vehicleNo}`, {
+    loading: true,
+  });
 }
 
+// 1.4 查询订单详情: https://kerryprops.atlassian.net/wiki/spaces/TAIC/pages/94076929/1.4
+export function orderInfo(orderId) {
+  return window.requestms.get(`/orders/${orderId}`, { loading: true });
+}
 
-
+// 1.5 查询历史停车订单: https://kerryprops.atlassian.net/wiki/spaces/TAIC/pages/94076929/1.5
+// 新接口路径:https://{kip-service-host}/c/api/temporary-parking-service/orders?page=1&pageSize=10
+export function orders(params) {
+  return window.requestms.get(`/orders`, { params, loading: true });
+}

+ 6 - 12
src/pages/parkingFee/components/base/parkingFeeList.vue

@@ -18,25 +18,25 @@
         class="choice_card"
         v-for="(item, index) in list"
         :key="index"
-        @click="toDetail(item.orderno)"
+        @click="toDetail(item.orderNo)"
       >
         <div
           class="choice_card_index choice_card_index1"
           style="font-size: 30px; margin: 0 12px"
         >
           <div style="margin-left: 6px">
-            {{ item.orderno + '-' + item.carno }}
+            {{ item.orderNo + '-' + item.vehicleNo }}
           </div>
           <div style="color: red; margin-right: 6px">
-            {{ (item.servicefee / 100) | currency }}
+            {{ (item.actualPayFee / 100) | currency }}
           </div>
         </div>
 
         <div class="choice_card_index choice_card_index2">
-          {{ item.parkname }}
+          {{ item.parkName }}
         </div>
         <div class="choice_card_index choice_card_index3">
-          <div>入场时间 : {{ item.entertime }}</div>
+          <div>入场时间 : {{ item.enterTime }}</div>
           <div style="margin-right: 20px">
             <van-icon name="arrow" />
           </div>
@@ -47,13 +47,7 @@
         >
           <div>停车时长 : {{ item.serviceMin | parkingTime }}</div>
           <div style="margin-right: 20px">
-            {{
-              item.refundStatus === 1
-                ? '已退款'
-                : item.payStatus === 1
-                ? '支付成功'
-                : '支付失败'
-            }}
+            {{ ['支付成功', '支付失败', '已退款'][item.refundStatus] }}
           </div>
         </div>
       </div>

+ 6 - 12
src/pages/parkingFee/components/officeBlue/parkingFeeList.vue

@@ -17,15 +17,15 @@
         :class="['choice_card', index === 0 && 'mt30']"
         v-for="(item, index) in list"
         :key="index"
-        @click="toDetail(item.orderno)"
+        @click="toDetail(item.orderNo)"
       >
         <div class="carno-box">
-          <div class="carno">{{ item.carno }}</div>
-          <div class="servicefee">{{ (item.servicefee / 100) | currency }}</div>
+          <div class="carno">{{ item.vehicleNo }}</div>
+          <div class="servicefee">{{ (item.actualPayFee / 100) | currency }}</div>
         </div>
-        <div class="choice_card_index">{{ item.parkname }} </div>
+        <div class="choice_card_index">{{ item.parkName }} </div>
         <div class="choice_card_index orderno-box">
-          <div class="orderno">订单号 : {{ item.orderno }}</div>
+          <div class="orderno">订单号 : {{ item.orderNo }}</div>
           <van-icon name="arrow" />
         </div>
         <div class="choice_card_index">
@@ -34,13 +34,7 @@
         <div class="choice_card_index mb0 pb0">
           <div>停车时长 : {{ item.serviceMin | parkingTime }}</div>
           <div :class="['status-box', item.payStatus !== 1 && 'other']">
-            {{
-              item.refundStatus === 1
-                ? '已退款'
-                : item.payStatus === 1
-                ? '支付成功'
-                : '支付失败'
-            }}
+            {{ ['支付成功', '支付失败', '已退款'][item.refundStatus] }}
           </div>
         </div>
       </div>

+ 6 - 2
src/pages/parkingFee/mixins/parkingFeeDetailSuccess.js

@@ -1,5 +1,7 @@
 import { mapState } from 'vuex';
 import uni from '@/utils/uniHooks';
+import { orders } from '@/api/parking';
+import ordersInfoMockData from '@/api/mockData/ordersInfo.json'
 
 export default {
   data() {
@@ -49,9 +51,11 @@ export default {
       const params = {
         orderno: this.orderNo,
       };
-      uni.showLoading({
+      /*uni.showLoading({
         title: '加载中',
-      });
+      });*/
+      this.detail = ordersInfoMockData;
+      return
       this.$md(params);
       uni.request({
         url: this.$baseURL + 'api/1.0/park/parkOrderDetail',

+ 35 - 1
src/pages/parkingFee/mixins/parkingFeeList.js

@@ -2,6 +2,8 @@
 import uni from '@/utils/uniHooks';
 import LoginDom from '@/components/Login/Login.vue';
 import { wxToLoginCallback } from '@/utils';
+import { orders } from '@/api/parking';
+import orderMockData from '@/api/mockData/orders.json'
 
 let canloading = true;
 let pageNum = 1;
@@ -39,6 +41,7 @@ export default {
     pageNum = 1;
     const member = uni.getStorageSync('member');
     console.log(4141, member)
+    this.loadData();
     return
     if (member) {
       this.loadData();
@@ -106,7 +109,7 @@ export default {
       }
     },
     // 获取停车记录
-    loadData: function () {
+    loadData: async function () {
       canloading = false;
       const params = {
         mallid: this.mallId,
@@ -115,6 +118,37 @@ export default {
         page: pageNum || 1,
         pageSize: 4,
       };
+      console.log(120, orderMockData);
+      try {
+        // const res = await orders({
+        //   page: params.page,
+        //   pageSize: params.pageSize,
+        // })
+        const res = orderMockData
+        const records = res.content || [];
+        if (records.length) {
+          const list = this.list;
+          this.list = [...list, ...records];
+        } else {
+          this.initPage();
+        }
+        canloading = true;
+      } catch ( err ) {
+        uni.hideLoading();
+        canloading = true;
+        this.initPage();
+        uni.showToast({
+          title: 'res.data.msg',
+          duration: 2000,
+          icon: 'none',
+        });
+      }
+      return
+      // const res = await orders({
+      //   page: params.page,
+      //   pageSize: params.pageSize,
+      // })
+      console.log(res);
       uni.showLoading({
         title: '加载中',
       });

+ 1 - 1
src/store/index.js

@@ -35,7 +35,7 @@ const store = new Vuex.Store({
     member: {},
     userInfo: {},
     mobile: '',
-    custTypeId: 3, // 0 默认版本,1 上海静安 2 上海浦东 3 KIP:默认版本
+    custTypeId: 0, // 0 默认版本,1 上海静安 2 上海浦东 3 KIP:默认版本
     paramsScene: {},
     parkFee: {},
     marketList: [],