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