4 changed files with 87 additions and 6 deletions
-
52src/pages/index/components/CategoryPanel.vue
-
17src/pages/index/index.vue
-
14src/services/home.ts
-
10src/types/home.d.ts
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<view class="category"> |
|||
<navigator |
|||
class="category-item" |
|||
hover-class="none" |
|||
url="/pages/index/index" |
|||
v-for="item in list" |
|||
:key="item.id" |
|||
> |
|||
<image class="icon" :src="item.icon"></image> |
|||
<text class="text">{{ item.name }}</text> |
|||
</navigator> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import type { CategoryItem } from '@/types/home' |
|||
|
|||
// 定义 props 接收数据 |
|||
defineProps<{ |
|||
list: CategoryItem[] |
|||
}>() |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
/* 前台类目 */ |
|||
.category { |
|||
margin: 20rpx 0 0; |
|||
padding: 10rpx 0; |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
min-height: 328rpx; |
|||
|
|||
.category-item { |
|||
width: 150rpx; |
|||
display: flex; |
|||
justify-content: center; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
box-sizing: border-box; |
|||
|
|||
.icon { |
|||
width: 100rpx; |
|||
height: 100rpx; |
|||
} |
|||
.text { |
|||
font-size: 26rpx; |
|||
color: #666; |
|||
} |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue