浏览代码

丘比养车迭代优化

chenrui 4 年之前
父节点
当前提交
5e58b0cd6f

+ 11 - 0
src/api/bundle.js

@@ -96,3 +96,14 @@ export const getPayStatus = params => {
     data: params
   }).then(res => res.data);
 };
+// 订单使用记录
+export const queryByOrderList = params => {
+  let url = `token/verification/queryByOrder/${params.pageNo}/${params.pageSize}`;
+  delete params.pageNo;
+  delete params.pageSize;
+  return request({
+    url: url,
+    method: 'post',
+    data: params
+  }).then(res => res.data);
+};

+ 2 - 2
src/api/request.js

@@ -6,8 +6,8 @@ function request(options) {
   //   title: '加载中' // 数据请求前loading,提高用户体验
   // });
   return new Promise((resolve, reject) => {
-    // const baseUrl = 'https://zyyc.chelingzhu.com/zyyc-shop/'; // 预发布
-    const baseUrl = 'https://shop.qiubcar.com/zyyc-shop/'; // 生产
+    const baseUrl = 'https://zyyc.chelingzhu.com/zyyc-shop/'; // 预发布
+    // const baseUrl = 'https://shop.qiubcar.com/zyyc-shop/'; // 生产
     // const baseUrl = 'http://192.168.16.103:7101/zyyc-shop/';
     // const baseUrl = process.env.NODE_ENV === 'production' ? proUrl : devUrl;
 

+ 8 - 2
src/app.json

@@ -38,12 +38,18 @@
     "pages/order/main",
     "pages/couponList/main",
     "pages/orderDetail/main",
-    "pages/h5Page/main",
-    "pages/creatShareImage/main",
     "pages/rankingList/main",
     "pages/storeSearch/main",
     "pages/selectCity/main"
   ],
+  "subpackages": [{
+  	"root": "pages/pagesA/",
+  	"pages": [
+      "usageRecord/main",
+      "h5Page/main",
+      "creatShareImage/main"
+    ]
+  }],
   "window": {
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#fff",

+ 1 - 1
src/components/swiper.vue

@@ -41,7 +41,7 @@ export default {
        // webview
        wx.setStorageSync('webviewUrl', item.redirectPath)
        wx.navigateTo({
-         url: '/pages/h5Page/main'
+         url: '/pages/pagesA/h5Page/main'
        })
      }
     }

+ 1 - 1
src/pages/index/index.vue

@@ -97,7 +97,7 @@ export default {
         // webview
         wx.setStorageSync('webviewUrl', item.redirectPath)
         wx.navigateTo({
-          url: '/pages/h5Page/main'
+          url: '/pages/pagesA/h5Page/main'
         })
       }
     },

+ 9 - 2
src/pages/member/index.vue

@@ -6,6 +6,7 @@
       </div>
       <div class="user-nickname">
         <open-data type="userNickName"></open-data>
+        <div class="member-user-phone">{{phone}}</div>
       </div>
     </div>
     <div class="menu-list">
@@ -36,7 +37,8 @@ export default {
   data() {
     return {
       canUsedCount: 0,
-      isLogin: false
+      isLogin: false,
+      phone: ''
     };
   },
   methods: {
@@ -114,9 +116,10 @@ export default {
     });
   },
   onShow() {
+    this.phone = wx.getStorageSync('phone')
     checkLogin().then(res => {
       if (res.status === '200') {
-        
+
       } else {
         wx.navigateTo({
           url: '/pages/login/main?lanuch=true&path=' + encodeURIComponent('/pages/member/main')
@@ -163,4 +166,8 @@ export default {
   position: relative;
   top: 25vh;
 }
+.member-user-phone{
+  color: #5a5a5a;
+  margin-top: 10rpx;
+}
 </style>

+ 18 - 0
src/pages/orderDetail/index.vue

@@ -40,6 +40,10 @@
           请将对应服务的二维码出示给门店进行消费
         </div>
       </div>
+      <!-- 已支付 -->
+      <div class="look-record" v-if="orderBundle.orderFlag === 'PAED'" @click="goPage">
+        查看使用记录
+      </div>
       <div class="order-infos">
         <van-cell-group>
           <van-cell title="订单编号" :value="orderBundle.number" class="order-number">
@@ -235,6 +239,12 @@ export default {
     	  }
     	});
     },
+    //  查看使用记录
+    goPage(){
+      wx.navigateTo({
+        url: `/pages/pagesA/usageRecord/main?billNo=${this.detailData.orderBundleNo}`
+      })
+    },
     // 去支付
     toPay() {
       let _this = this
@@ -314,6 +324,14 @@ export default {
   border:none;
   padding:0;
 }
+.look-record{
+  margin: 10rpx 0;
+  font-size: 28rpx;
+  font-weight: bold;
+  background-color: #fff;
+  line-height: 72rpx;
+  text-align center;
+}
 .order-detail-panel {
   font-size: 30rpx;
 

+ 1 - 1
src/pages/creatShareImage/index.vue → src/pages/pagesA/creatShareImage/index.vue

@@ -172,7 +172,7 @@ export default {
       _this.creatBg()
     }else{
       wx.navigateTo({
-        url: `/pages/login/main?lanuch=false&path=` + encodeURIComponent(`/pages/creatShareImage/main`)
+        url: `/pages/login/main?lanuch=false&path=` + encodeURIComponent(`/pages/pagesA/creatShareImage/main`)
       });
     }
   }

+ 0 - 0
src/pages/creatShareImage/main.js → src/pages/pagesA/creatShareImage/main.js


+ 0 - 0
src/pages/creatShareImage/main.json → src/pages/pagesA/creatShareImage/main.json


+ 0 - 0
src/pages/h5Page/index.vue → src/pages/pagesA/h5Page/index.vue


+ 0 - 0
src/pages/h5Page/main.js → src/pages/pagesA/h5Page/main.js


+ 0 - 0
src/pages/h5Page/main.json → src/pages/pagesA/h5Page/main.json


+ 124 - 0
src/pages/pagesA/usageRecord/index.vue

@@ -0,0 +1,124 @@
+<template>
+  <div class="usage-record-container">
+    <div class="usage-record-header grey" v-if="listData.length!=0">
+      <div class="header-item">服务内容</div>
+      <div class="header-item">使用门店</div>
+      <div class="header-item">使用时间</div>
+    </div>
+    <scroll-view scroll-y class="usage-record-content" @scrolltolower="scrolltolower">
+      <div class="usage-record-con">
+        <div v-for="(item,index) in listData" :key="index" :class="['usage-record-item', index%2==1 ? 'grey' : '']">
+          <div class="item-con">{{item.itemName}}</div>
+          <div class="item-con">{{item.usedType==2 ? '周卡自动过期' : item.usedStoreName}}</div>
+          <div class="item-con">{{item.usedTime}}</div>
+        </div>
+      </div>
+    </scroll-view>
+    <no-data v-if="listData.length==0" :options="listData" name="暂无数据"/>
+  </div>
+</template>
+
+<script>
+import NoData from '@/components/NoData';
+import { queryByOrderList } from '@/api/bundle'
+export default {
+  components: { 'no-data': NoData },
+  name: 'UsageRecord',
+  data() {
+    return {
+      listData: [],
+      pageNo: 1,  //  页码
+      pageSize: 20,  //  每页多少条
+      isLastPage: false,  //  是否最后一页
+      billNo: ''  //  订单编号
+    };
+  },
+  methods: {
+    getList() {
+      const _this = this
+      wx.showLoading({
+        mask: true,
+        title: '加载中'
+      })
+      queryByOrderList({billNo: _this.billNo, pageNo: _this.pageNo, pageSize: _this.pageSize}).then(res => {
+        wx.hideLoading()
+        if(res.status == 200){
+          res.data.list.map(item => {
+            item.usedTime = item.usedTime.substr(0,10)
+          })
+          if ( _this.pageNo == 1) {
+            _this.listData = res.data.list
+          } else {
+            _this.listData = _this.listData.concat(res.data.list)
+          }
+          if(_this.listData.length>=res.data.count){
+            if(_this.pageNo!=1){
+              wx.showToast({
+                title: '已经是最后一页'
+              })
+            }
+            _this.isLastPage = true
+          }
+        }
+      })
+    },
+    // 监听用户上拉触底事件
+    scrolltolower() {
+    	if(!this.isLastPage){
+    		this.pageNo = this.pageNo + 1
+    		this.getList()
+    	}
+    }
+  },
+  onShow() {
+
+  },
+  onLoad(options){
+    this.billNo = options.billNo
+    this.pageNo = 1
+    this.listData = []
+    this.isLastPage = false
+    this.getList()
+  }
+};
+</script>
+
+<style lang="stylus" scoped>
+.usage-record-container {
+  height: 100%;
+  padding: 0 20rpx 20rpx;
+  box-sizing: border-box;
+  overflow: hidden;
+  .usage-record-header{
+    font-size: 28rpx;
+    color: #333;
+    display: flex;
+    align-items: center;
+    flex-direction: row;
+    padding: 20rpx 10rpx;
+    .header-item{
+      flex-grow: 1;
+      width: 33.333%;
+    }
+  }
+  .usage-record-content{
+    height: calc(100vh - 50px);
+    .usage-record-con{
+      font-size: 24rpx;
+      color: #5a5a5a;
+      .usage-record-item{
+        display: flex;
+        align-items: center;
+        padding: 20rpx 10rpx;
+        .item-con{
+          flex-grow: 1;
+          width: 33.333%;
+        }
+      }
+    }
+  }
+  .grey{
+    background-color: #f2f2f2;
+  }
+}
+</style>

+ 12 - 0
src/pages/pagesA/usageRecord/main.js

@@ -0,0 +1,12 @@
+import Vue from 'vue';
+import App from './index';
+
+// add this to handle exception
+// Vue.config.errorHandler = function (err) {
+//   if (console && console.error) {
+//     console.error(err)
+//   }
+// }
+
+const app = new Vue(App);
+app.$mount();

+ 4 - 0
src/pages/pagesA/usageRecord/main.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "使用记录",
+  "usingComponents": {}
+}

+ 1 - 1
src/pages/rankingList/index.vue

@@ -59,7 +59,7 @@ export default {
   },
   methods: {
     toPage (){
-      wx.navigateTo({ url: '/pages/creatShareImage/main' });
+      wx.navigateTo({ url: '/pages/pagesA/creatShareImage/main' });
     },
     fiterMobile (arr){
       arr.map(item => {

+ 1 - 1
src/pages/shareActivity/index.vue

@@ -96,7 +96,7 @@ export default {
     // 生成美图
     creatShareImage (){
       wx.navigateTo({
-        url: `/pages/creatShareImage/main`
+        url: `/pages/pagesA/creatShareImage/main`
       });
     },
     couponClickHandle(item) {

二进制
static/img/bgimg.jpg


二进制
static/img/logo-mini.jpg


二进制
static/img/ranking/img1.jpg


二进制
static/img/ranking/img2.jpg


二进制
static/img/ranking/img3.jpg


二进制
static/img/ranking/img4.jpg


+ 0 - 29
static/iview/badge/index.js

@@ -1,29 +0,0 @@
-Component({
-    externalClasses: ['i-class', 'i-class-alone'],
-
-    properties: {
-        count: {
-            type: Number,
-            value: 0,
-            observer: 'finalCount'
-        },
-        overflowCount: {
-            type: Number,
-            value: 99
-        },
-        dot: {
-            type: Boolean,
-            value: false
-        },
-    },
-    data: {
-        finalCount: 0
-    },
-    methods: {
-        finalCount() {
-            this.setData({
-                finalCount: parseInt(this.data.count) >= parseInt(this.data.overflowCount) ? `${this.data.overflowCount}+` : this.data.count
-            });
-        },
-    }
-});

+ 0 - 3
static/iview/badge/index.json

@@ -1,3 +0,0 @@
-{
-  "component": true
-}

+ 0 - 5
static/iview/badge/index.wxml

@@ -1,5 +0,0 @@
-<view class="i-class i-badge">
-    <slot></slot>
-    <view class="i-badge-dot" wx:if="{{ dot }}"></view>
-    <view class="i-badge-count i-class-alone" wx:elif="{{ count !== 0 }}">{{ finalCount }}</view>
-</view>

+ 0 - 1
static/iview/badge/index.wxss

@@ -1 +0,0 @@
-.i-badge{position:relative;display:inline-block;line-height:1;vertical-align:middle}.i-badge-count{position:absolute;transform:translateX(50%);top:-6px;right:0;height:18px;border-radius:9px;min-width:18px;background:#ed3f14;border:1px solid transparent;color:#fff;line-height:18px;text-align:center;padding:0 5px;font-size:12px;white-space:nowrap;transform-origin:-10% center;z-index:10;box-shadow:0 0 0 1px #fff;box-sizing:border-box;text-rendering:optimizeLegibility}.i-badge-count-alone{top:auto;display:block;position:relative;transform:translateX(0)}.i-badge-dot{position:absolute;transform:translateX(-50%);transform-origin:0 center;top:-4px;right:-8px;height:8px;width:8px;border-radius:100%;background:#ed3f14;z-index:10;box-shadow:0 0 0 1px #fff}