You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
shengxian/pages/index/components/sh-order-card.vue

169 lines
3.5 KiB

<template>
<!-- 订单卡片 -->
<view class="sh-order-box u-m-b-10 u-p-r-20">
<view class="myOrder">
我的订单
</view>
<view class="order-box u-flex">
<view class="order-item u-flex-col " @tap="jump('/pages/order/list', { type: order.type })" v-for="order in orderNav" :key="order.id">
<view class="u-flex-col item-box u-col-center">
<image class="order-img" :src="order.img" mode=""></image>
<text class="item-title">{{ order.title }}</text>
<view class="badge" v-if="orderNum && orderNum[order.type]">{{ orderNum[order.type] }}</view>
</view>
</view>
<view class="order-item u-flex-col " @tap="jump('/pages/order/after-sale/list')">
<view class="u-flex-col item-box u-col-center">
<image class="order-img" src="/static/images/3.png" mode=""></image>
<text class="item-title">退款/售后</text>
</view>
</view>
<view class="order-item u-flex-col all-order " @tap="jump('/pages/order/list', { type: 'all' })">
<image class="cut-off--line" :src="$IMG_URL + '/imgs/user/cut_off_line.png'" mode=""></image>
<view class="u-flex-col item-box u-col-center">
<image class="order-img" src="/static/images/all.png" mode="aspectFill"></image>
<text class="item-title">全部</text>
</view>
</view>
</view>
</view>
</template>
<script>
/**
* 订单中心卡片
*
*/
import { mapMutations, mapActions, mapState, mapGetters } from 'vuex';
export default {
components: {},
data() {
return {
orderNav: [
{
id: 1,
title: '待支付',
img: '/static/images/1.png',
type: 'nopay'
},
// {
// id: 2,
// title: '待发货',
// img: this.$IMG_URL + '/imgs/user/tab22.png',
// type: 'nosend'
// },
{
id: 3,
title: '待收货',
img: '/static/images/2.png',
type: 'noget'
},
{
id: 4,
title: '待评价',
img: '/static/images/3.png',
type: 'nocomment'
}
// {
// id: 5,
// title: '退换货',
// img: this.$IMG_URL + '/imgs/user/tab55.png',
// type: 'aftersale'
// }
]
};
},
computed: {
...mapGetters(['isLogin', 'userOtherData']),
orderNum() {
return this.userOtherData.order_num || 0;
}
},
methods: {
jump(path, query) {
this.$Router.push({
path: path,
query: query
});
}
}
};
</script>
<style lang="scss">
.badge {
position: absolute;
/* #ifndef APP-NVUE */
display: inline-flex;
/* #endif */
justify-content: center;
align-items: center;
line-height: 24rpx;
padding: 4rpx 10rpx;
border-radius: 100rpx;
color: #fff;
font-size: 24rpx;
z-index: 9;
background-color: $u-type-error;
transform: scale(0.8);
transform-origin: center center;
left: 100rpx;
top: -6rpx;
white-space: nowrap;
}
// 订单卡片
.sh-order-box {
background: #fff;
padding: 30rpx;
border-radius: 20rpx;
margin: 0 24rpx;
position: relative;
z-index: 999;
top: -80rpx;
.myOrder{
font-size: 30rpx;
font-family: PingFang SC;
font-weight: blod;
color: #333333;
margin-bottom:29rpx;
}
// height: 180rpx;
.order-box {
flex: 4;
}
.all-order {
position: relative;
.cut-off--line {
position: absolute;
top: 50%;
transform: translateY(-50%);
// right: (750rpx/5) - 15rpx;
width: 30rpx;
height: 136rpx;
}
}
.order-item {
flex: 1;
.item-box {
position: relative;
}
.order-img {
width: 62rpx;
height: 62rpx;
}
.item-title {
font-size: 24rpx;
font-weight: 500;
color: #333333;
line-height: 24rpx;
margin-top: 17rpx;
}
}
}
</style>