فهرست منبع

座位预定-我的预定列表

panyong 3 سال پیش
والد
کامیت
7a304d3ede

+ 1 - 1
htmldev/dashboard/src/views/place/list/index.vue

@@ -296,7 +296,7 @@ export default {
         place_id: id, // 座位ID
         order_user_phone: this.order_user_phone,
         order_user_name: this.order_user_name,
-        order_user_sex: this.order_user_sex,
+        order_user_sex: this.order_user_sex === '先生' ? '男' : '女',
         order_user_num: this.order_user_num,
         order_pay_type: this.order_pay_type
       }

+ 13 - 0
htmldev/dashboard/src/views/place/reserve/api/index.js

@@ -0,0 +1,13 @@
+import request from '@/api/request'
+
+/**
+ * 预定订单列表
+ */
+export const apiReserveList = (page, pageSize = 20) => request({
+  method: 'GET',
+  url: '/api/v1/user/prepare/order/list/all',
+  params: {
+    page: page,
+    page_size: pageSize
+  }
+})

+ 86 - 32
htmldev/dashboard/src/views/place/reserve/index.vue

@@ -7,28 +7,47 @@
         v-model="loading"
         :finished="finished"
         finished-text="没有更多了"
+        error-text="出错了"
         @load="onLoad"
         class="content">
         <ul>
-          <li>
+          <li
+            v-for="item in reserveList"
+            :key="item.id">
             <p class="status-wrap">
-              <span>04月19日 周一 19:45</span>
-              <span>待支付</span>
+              <span>{{ item.order_pre_time }}</span>
+              <span
+                :class="{'col-D32323': item.order_status === 1 }">{{
+                  ['待支付', '已支付', '已退款', '部分退款', '已取消'][item.order_status]
+                }}</span>
             </p>
-            <p class="place-name">10人卡座(舞台左侧)</p>
-            <p class="outlet">AF House音乐现场(西子广场山姆会员店)</p>
+            <p class="place-name">{{ item.place_name }}</p>
+            <p class="outlet">{{ item.bar_name }}</p>
             <div class="payment">
-              <p class="number">订位人数:1</p>
+              <p class="number">订位人数:{{ item.order_user_num }}</p>
               <p class="amount">
-                <span>合计:100</span>
-                <img src="./image/ic_Alipay_nor@2x.png" alt="">
+                <span>合计:{{ item.order_pay_price | fen2Yuan }}</span>
+                <img src="./image/ic_Alipay_nor@2x.png" alt="" v-show="item.order_pay_type === 2">
+                <img src="./image/ic_WeChat_nor@2x.png" alt="" v-show="item.order_pay_type === 1">
               </p>
             </div>
             <div class="btn-wrap">
-              <van-button class="pay" type="danger">支付</van-button>
-              <van-button class="check-code" type="danger" :url="'/place/check'">我的订座二维码</van-button>
-              <van-button class="cancel" type="default">取消</van-button>
-              <van-button class="hide" type="default">隐藏订单</van-button>
+              <van-button
+                class="pay"
+                type="danger"
+                v-if="item.order_status === 0">支付
+              </van-button>
+              <van-button
+                class="cancel"
+                type="default"
+                v-if="item.order_status === 1">退款
+              </van-button>
+              <van-button
+                class="check-code"
+                type="danger"
+                :url="'/place/check'"
+                v-if="item.order_status === 1">我的订座二维码
+              </van-button>
             </div>
           </li>
         </ul>
@@ -38,9 +57,8 @@
 </template>
 
 <script>
-import axios from 'axios'
-import qs from 'qs'
-import { PullRefresh, List, Button } from 'vant'
+import { apiReserveList } from './api'
+import { PullRefresh, List, Button, Toast } from 'vant'
 
 export default {
   components: {
@@ -50,39 +68,63 @@ export default {
   },
   data () {
     return {
-      saleDataList: [],
+      reserveList: [],
       isLoading: false,
       loading: false,
-      finished: false
+      finished: false,
+      pagenum: 0,
+      pagesize: 20,
+      pagecount: 1,
+      isRefresh: false
     }
   },
   methods: {
     onRefresh () {
-      // this.getList()
+      this.pagenum = 0
+      this.pagesize = 20
+      this.pagecount = 1
+      this.finished = false
+      this.isRefresh = true
+      this.getList()
     },
     onLoad () {
-      // this.getList()
+      this.getList()
     },
     /**
      *  请求数据方法
      */
     async getList () {
+      if (this.pagenum >= this.pagecount || this.pagecount === 0) {
+        this.finished = true
+        return
+      }
+      this.pagenum++
       try {
-        const { data } = await axios.post('/Journalism/lst', qs.stringify({
-          Page: 1,
-          PageSize: 15,
-          mode: 'web'
-        }))
-
-        this.list = data.Data.articles
-        this.saleDataList = this.saleDataList.concat(data.Data.articles)
+        const { status, data, msg } = await apiReserveList(this.pagenum, this.pagesize)
+        if (status) {
+          const { total, list } = data
+          this.pagecount = Math.ceil(total * 1 / this.pagesize)
+
+          // 下拉刷新数据清空
+          if (this.isRefresh) {
+            this.isRefresh = false
+            this.reserveList = []
+          }
+
+          // 没有数据返回了
+          if (Array.isArray(list) && !list.length) {
+            this.finished = true
+          }
+
+          if (Array.isArray(list) && list.length) {
+            this.reserveList = this.reserveList.concat(list)
+          }
+        } else {
+          Toast(msg)
+        }
         // 加载状态结束
         this.loading = false
         this.isLoading = false
-        // 数据全部加载完成
-        if (this.saleDataList.length >= 40) {
-          this.finished = true
-        }
       } catch (err) {
         console.log(err)
       }
@@ -128,7 +170,11 @@ ul {
     }
 
     &:nth-of-type(2) {
-      color: #D32323;
+      color: #CCC6C6;
+
+      &.col-D32323 {
+        color: #D32323;
+      }
     }
   }
 }
@@ -181,7 +227,15 @@ ul {
 }
 
 .btn-wrap {
+  text-align: right;
+
   ::v-deep .van-button {
+    margin-left: 10px;
+
+    &:nth-of-type(1) {
+      margin-left: 0;
+    }
+
     .van-button__text {
       font-size: 12px;
       color: #FFFFFF;

+ 0 - 8
htmldev/dashboard/vue.config.js

@@ -42,14 +42,6 @@ module.exports = {
     open: true,
     clientLogLevel: 'warning',
     proxy: {
-      '/Journalism': {
-        target: 'https://eapitest.ybren.com',
-        ws: true,
-        changeOrigin: true,
-        pathRewrite: {
-          '^/Journalism': '/Journalism'
-        }
-      },
       '/api': {
         target: 'http://tingbang-api.codedreamit.com',
         ws: true,