wuheng 1 年間 前
コミット
8df5506957
7 ファイル変更136 行追加42 行削除
  1. 2 0
      src/api/user.js
  2. 5 1
      src/main.js
  3. 6 0
      src/router/index.js
  4. 8 1
      src/views/Category.vue
  5. 2 2
      src/views/Me.vue
  6. 109 0
      src/views/Myorder.vue
  7. 4 38
      src/views/ShopCart.vue

+ 2 - 0
src/api/user.js

@@ -15,3 +15,5 @@ export const login = (data)=> post("/login", data)
 export const register = (data) => post("/user/register", data)
 
 export const orderCount = (data) => get("/p/myOrder/orderCount", data)
+
+export const myOrder = (data) => get("/p/myOrder/myOrder", data)

+ 5 - 1
src/main.js

@@ -8,9 +8,13 @@ import {
   Image as VanImage, Form, Field, Search, CheckboxGroup, GoodsActionIcon, ContactCard,
   Swipe, Grid, GridItem, NoticeBar, Checkbox, Col, Cell, GoodsActionButton, NavBar,
   Button, Tabbar, TabbarItem, SwipeItem, Tag, Row, CellGroup, GoodsAction, AddressEdit,
-  TreeSelect, Card, Empty, SubmitBar, Stepper, Divider, Icon, ActionSheet, AddressList, CouponCell
+  TreeSelect, Card, Empty, SubmitBar, Stepper, Divider, Icon, ActionSheet, AddressList, CouponCell,
+  Tab, Tabs, List
 } from 'vant';
 
+Vue.use(List);
+Vue.use(Tab);
+Vue.use(Tabs);
 Vue.use(CouponCell);
 Vue.use(ContactCard);
 Vue.use(NavBar);

+ 6 - 0
src/router/index.js

@@ -10,6 +10,7 @@ import Layout from '../components/Layout.vue'
 import Prodinfo from '../views/ProdInfo.vue'
 import AddressList from '../views/AddressList.vue'
 import SubmitOrderInfo from '../views/SubmitOrderInfo.vue'
+import Myorder from '../views/Myorder.vue'
 
 Vue.use(VueRouter)
 
@@ -63,6 +64,11 @@ const routes = [
     path: '/submitinfo',
     name: 'submitinfo',
     component: SubmitOrderInfo
+  },
+  {  
+    path: '/myorder',
+    name: 'myorder',
+    component: Myorder
   }
 ]
 

+ 8 - 1
src/views/Category.vue

@@ -7,7 +7,14 @@
                 <!-- 分类类型图片 banner -->
                 <van-image v-if="categoryInfo[active]" :src="categoryInfo[active].pic" />
                 <!-- 当前分类下的商品 -->
-                <van-card v-for="(item, index) in prodList.records" :key="index" :num="item.totalStocks" :price="item.price" :desc="item.brief" :title="item.prodName" :thumb="item.pic" />
+                <van-card @click="()=>{
+                    $router.push({
+                        path: '/prodinfo',
+                        query: {
+                            prodId: item.prodId
+                        }
+                    })
+                }" v-for="(item, index) in prodList.records" :key="index" :num="item.totalStocks" :price="item.price" :desc="item.brief" :title="item.prodName" :thumb="item.pic" />
                 <!-- 如果没有商品 展示默认信息 -->
                 <van-empty v-if="prodList.records <= 0" description="当前分类没有商品" />
             </template>

+ 2 - 2
src/views/Me.vue

@@ -10,13 +10,13 @@
         <!-- 分割线 -->
         <van-divider :style="{ borderColor: '#f7f8fa', margin: '.3rem' }" />
         <!-- 导航菜单 -->
-        <div class="order">
+        <div class="order" @click="$router.push('/myorder')">
             <div class="my-order">我的订单 </div>
             <div class="order-all">查看全部</div>
         </div>
         <!-- 分割线 -->
         <van-divider :style="{ borderColor: '#f7f8fa', margin: '.1rem' }" />
-        <van-grid :border="false">
+        <van-grid :border="false" @click="$router.push('/myorder')" >
             <van-grid-item icon="balance-pay" :badge="myInfo.unPay" text="待支付" />
             <van-grid-item icon="logistics" :badge="myInfo.payed" text="代发货" />
             <van-grid-item icon="records" :badge="myInfo.consignment" text="待签收" />

+ 109 - 0
src/views/Myorder.vue

@@ -0,0 +1,109 @@
+<template>
+    <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+        <van-nav-bar title="订单列表" left-text="返回" left-arrow @click-left="$router.push('/me')" />
+        <van-tabs v-model="active" @click="clickTabs">
+            <van-tab title="待付款">
+                <div @click="payNow(order)" v-for="(order, index) in orders.records" :key="index">
+                    <div class="order-list">
+                        <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
+                            :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
+                    </div>
+                    <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
+                </div>
+            </van-tab>
+            <van-tab title="待发货">
+                <div v-for="(order, index) in orders.records" :key="index">
+                    <div class="order-list">
+                        <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
+                            :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
+                    </div>
+                    <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
+                </div>
+            </van-tab>
+            <van-tab title="待收货">
+                <div v-for="(order, index) in orders.records" :key="index">
+                    <div class="order-list">
+                        <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
+                            :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
+                    </div>
+                    <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
+                </div>
+            </van-tab>
+            <van-tab title="待评价">
+                <div v-for="(order, index) in orders.records" :key="index">
+                    <div class="order-list">
+                        <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
+                            :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
+                    </div>
+                    <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
+                </div>
+            </van-tab>
+        </van-tabs>
+    </van-list>
+</template>
+<script>
+import { myOrder } from '@/api/user';
+import { payment } from '../api/pay'
+import { Dialog } from 'vant';
+export default {
+    data() {
+        return {
+            loading: false,
+            finished: false,
+            active: 0,
+            orders: {
+                records: []
+            },
+            fatch: {
+                current: 1,
+                status: 1
+            }
+        }
+    },
+    async created() {
+        this.loadData()
+    },
+    methods: {
+        clickTabs(){
+            this.fatch.current = 1
+            this.finished = false
+            this.orders.records = []
+            this.loadData()
+        },
+        onLoad(){
+            console.log("触发了加载")
+            this.fatch.current = this.fatch.current + 1
+            this.loadData()
+        },
+        async payNow(order) {
+            const payRes = await payment({
+                orderNumbers: order.orderNumber,
+                payType: 1
+            })
+            Dialog.alert({
+                title: '支付成功',
+                message: '恭喜您支付已完成! ',
+            }).then(() => {
+                this.loadData()
+            });
+        },
+        async loadData() {
+            this.fatch.status = this.active + 1
+            const result = await myOrder(this.fatch)
+            if ( result.records.length > 0 ) {
+                this.orders.records = [...result.records]
+            }
+            if ( result.current >= result.pages  ) {
+                this.finished = true
+            }
+            this.loading = false
+        }
+    }
+}
+</script>
+<style lang="less">
+.order-list {
+    padding: .5rem;
+    background-color: #fafafa;
+}
+</style>

+ 4 - 38
src/views/ShopCart.vue

@@ -42,7 +42,7 @@
         </div>
         <van-empty v-if="shopCartInfo <= 0" />
         <div style="height: 7rem;"></div>
-        <van-submit-bar :price="totalMoney" :disabled="basketIds.length <= 0" button-text="提交订单" @submit="onSubmit">
+        <van-submit-bar :price="totalMoney" button-text="提交订单" @submit="onSubmit">
             <van-checkbox v-model="checked" @click="allProdSelected">全选</van-checkbox>
             <a class="clear-cart" v-show="basketIds.length > 0" @click="clearCart">清空</a>
         </van-submit-bar>
@@ -86,45 +86,11 @@ export default {
     },
     methods: {
         onSubmit() {
-            // 标准的 B 2 C 模式
-            // for ( let i = 0; i < this.shopCartInfo.length; i++ ) {
-            //     const shopCart = this.shopCartInfo[i].shopCartItemDiscounts
-            //     for ( let n = 0; n < shopCart.length; n++ ) {
-            //         const cart = shopCart[n].shopCartItems
-            //         for ( let j = 0 ; j < cart.length; j++ ) {
-            //             this.confirm.basketIds.push( cart[j].basketId )
-            //             this.confirm.orderItem =  {
-            //                         prodId: cart[j].prodId,
-            //                         skuId: cart[j].skuId,
-            //                         prodCount: cart[j].prodCount,
-            //                         shopId: cart[j].shopId,
-            //                         distributionCardNo: ""
-            //                     }
-            //             this.confirm.addrId = this.defaultAddrId
-            //         }
-            //     }
-            // }
-            for (let n = 0; n < this.basketIds.length; n++) {
-                const cart = this.shopCartInfo[0].shopCartItemDiscounts[0].shopCartItems
-                
-                for (let j = 0; j < cart.length; j++) {
-                    if ( this.basketIds[n] !== cart[j].basketId ) {
-                        break;
-                    }
-                    this.confirm.basketIds.push(cart[j].basketId)
-                    this.confirm.orderItem = {
-                        prodId: cart[j].prodId,
-                        skuId: cart[j].skuId,
-                        prodCount: cart[j].prodCount,
-                        shopId: cart[j].shopId,
-                        distributionCardNo: ""
-                    }
-                    this.confirm.addrId = this.defaultAddrId
-                }
-            }
             if ( this.basketIds.length <= 0 ) return ;
+            this.confirm.basketIds = this.basketIds
+            this.confirm.addrId = this.defaultAddrId
             sessionStorage.setItem("confirm", JSON.stringify(this.confirm))
-            //this.$router.push("/submitinfo")
+            this.$router.push("/submitinfo")
         },
         async init() {
             shopCartInfo({}).then(