<!-- 装修用户组件:用户订单 --> <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>