123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <!-- 全局 - 快捷入口 -->
- <template>
- <su-popup :show="show" type="top" round="20" backgroundColor="#F0F0F0" @close="closeMenuTools">
- <su-status-bar />
- <view class="tools-wrap ss-m-x-30 ss-m-b-16">
- <view class="title ss-m-b-34 ss-p-t-20">{{$t('menu.quick_menu')}}</view>
- <view class="container-list ss-flex ss-flex-wrap">
- <view class="list-item ss-m-b-24" v-for="item in list" :key="item.title">
- <view class="ss-flex-col ss-col-center">
- <button class="ss-reset-button list-image ss-flex ss-row-center ss-col-center"
- @tap="onClick(item)">
- <image v-if="show" :src="sheep.$url.static(item.icon)" class="list-icon" />
- </button>
- <view class="list-title ss-m-t-20">{{ item.title }}</view>
- </view>
- </view>
- </view>
- </view>
- </su-popup>
- </template>
- <script setup>
- import {
- reactive,
- computed
- } from 'vue';
- import sheep from '@/sheep';
- import {
- showMenuTools,
- closeMenuTools
- } from '@/sheep/hooks/useModal';
- const show = computed(() => sheep.$store('modal').menu);
- import {
- useI18n
- } from 'vue-i18n';
- const {
- t
- } = useI18n();
- function onClick(item) {
- closeMenuTools();
- if (item.url) sheep.$router.go(item.url);
- }
- const list = [{
- url: '/pages/index/index',
- icon: '/static/images/home.png',
- title: t('common.home'),
- },
- {
- url: '/pages/index/search',
- icon: '/static/images/search.png',
- title: t('common.search'),
- },
- {
- url: '/pages/index/user',
- icon: '/static/images/user.png',
- title: t('menu.personal_center'),
- },
- {
- url: '/pages/index/cart',
- icon: '/static/images/cart.png',
- title: t('menu.shopping_cart'),
- },
- {
- url: '/pages/user/goods-log',
- icon: '/static/images/browse.png',
- title: t('menu.browsing_history'),
- },
- {
- url: '/pages/user/goods-collect',
- icon: '/static/images/collect.png',
- title: t('menu.my_favorites'),
- },
- // {
- // url: '/pages/chat/index',
- // icon: '/static/images/service.png',
- // title: t('menu.customer_service'),
- // },
- ];
- </script>
- <style lang="scss" scoped>
- .tools-wrap {
- // background: #F0F0F0;
- // box-shadow: 0px 0px 28rpx 7rpx rgba(0, 0, 0, 0.13);
- // opacity: 0.98;
- // border-radius: 0 0 20rpx 20rpx;
- .title {
- font-size: 36rpx;
- font-weight: bold;
- color: #333333;
- }
- .list-item {
- width: calc(25vw - 20rpx);
- .list-image {
- width: 104rpx;
- height: 104rpx;
- border-radius: 52rpx;
- background: var(--ui-BG);
- .list-icon {
- width: 54rpx;
- height: 54rpx;
- }
- }
- .list-title {
- font-size: 26rpx;
- font-weight: 500;
- color: #333333;
- }
- }
- }
- .uni-popup {
- top: 0 !important;
- }
- :deep(.button-hover) {
- background: #fafafa !important;
- }
- </style>
|