123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <!-- 装修用户组件:用户订单 -->
- <template>
- <view class="ss-order-menu-wrap ss-flex ss-col-center">
- <view class="menu-item ss-flex-1 ss-flex-col ss-row-center ss-col-center" v-for="item in orderMap"
- :key="item.title" @tap="sheep.$router.go(item.path, { type: item.value })">
- <uni-badge class="uni-badge-left-margin" :text="numData.orderCount[item.count]" absolute="rightTop"
- size="small">
- <image class="item-icon" :src="sheep.$url.static(item.icon)" mode="aspectFit" />
- </uni-badge>
- <view class="menu-title ss-m-t-28">{{ item.title }}</view>
- </view>
- </view>
- </template>
- <script setup>
- /**
- * 装修组件 - 订单菜单组
- */
- import sheep from '@/sheep';
- import {
- computed
- } from 'vue';
- import {
- useI18n
- } from 'vue-i18n';
- const {
- t
- } = useI18n();
- const orderMap = [{
- title: t('order.pending_payment'),
- value: '1',
- icon: '/static/images/no_pay.png',
- path: '/pages/order/list',
- type: 'unpaid',
- count: 'unpaidCount',
- },
- {
- title: t('order.pending_shipment'),
- value: '2',
- icon: '/static/images/change_order.png',
- path: '/pages/order/list',
- type: 'undelivered',
- count: 'undeliveredCount',
- },
- {
- title: t('order.pending_receipt'),
- value: '3',
- icon: '/static/images/no_take.png',
- path: '/pages/order/list',
- type: 'noget',
- count: 'deliveredCount',
- },
- {
- title: t('order.pending_review'),
- value: '4',
- icon: '/static/images/no_comment.png',
- path: '/pages/order/list',
- type: 'nocomment',
- count: 'uncommentedCount',
- },
- {
- title: t('order.all_orders'),
- value: '0',
- icon: '/static/images/all_order.png',
- path: '/pages/order/list',
- },
- ];
- const numData = computed(() => sheep.$store('user').numData);
- </script>
- <style lang="scss" scoped>
- .ss-order-menu-wrap {
- .menu-item {
- height: 160rpx;
- position: relative;
- z-index: 10;
- .menu-title {
- font-size: 24rpx;
- line-height: 24rpx;
- color: #333333;
- }
- .item-icon {
- width: 44rpx;
- height: 44rpx;
- }
- .num-icon {
- position: absolute;
- right: 18rpx;
- top: 18rpx;
- // width: 40rpx;
- padding: 0 8rpx;
- height: 26rpx;
- background: #ff4d4f;
- border-radius: 13rpx;
- color: #fefefe;
- display: flex;
- align-items: center;
- .num {
- font-size: 24rpx;
- transform: scale(0.8);
- }
- }
- }
- }
- </style>
|