29 lines
576 B
Vue
29 lines
576 B
Vue
<template>
|
|
<view class="menu-grid">
|
|
<view
|
|
v-for="m in menus"
|
|
:key="m.id"
|
|
class="menu-card"
|
|
@click="$emit('select', m)"
|
|
>
|
|
<view class="menu-icon" :class="m.tone || ''">
|
|
<VanIcon :name="m.icon" />
|
|
</view>
|
|
<text class="menu-title">{{ m.title }}</text>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import VanIcon from './van-icon/van-icon.vue'
|
|
|
|
export default {
|
|
name: 'MenuGrid',
|
|
components: { VanIcon },
|
|
props: {
|
|
menus: { type: Array, default: () => [] }
|
|
},
|
|
emits: ['select']
|
|
}
|
|
</script>
|