119 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
| <!-- 全局 - 快捷入口 -->
 | |
| <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">快捷菜单</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);
 | |
| 
 | |
|   function onClick(item) {
 | |
|     closeMenuTools();
 | |
|     if (item.url) sheep.$router.go(item.url);
 | |
|   }
 | |
| 
 | |
|   const list = [
 | |
|     {
 | |
|       url: '/pages/index/index',
 | |
|       icon: '/static/img/shop/tools/home.png',
 | |
|       title: '首页',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/index/search',
 | |
|       icon: '/static/img/shop/tools/search.png',
 | |
|       title: '搜索',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/index/user',
 | |
|       icon: '/static/img/shop/tools/user.png',
 | |
|       title: '个人中心',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/index/cart',
 | |
|       icon: '/static/img/shop/tools/cart.png',
 | |
|       title: '购物车',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/user/goods-log',
 | |
|       icon: '/static/img/shop/tools/browse.png',
 | |
|       title: '浏览记录',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/user/goods-collect',
 | |
|       icon: '/static/img/shop/tools/collect.png',
 | |
|       title: '我的收藏',
 | |
|     },
 | |
|     {
 | |
|       url: '/pages/chat/index',
 | |
|       icon: '/static/img/shop/tools/service.png',
 | |
|       title: '客服',
 | |
|     },
 | |
|   ];
 | |
| </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>
 |