| 1234567891011121314151617181920212223242526272829303132333435 |
- <template>
- <div class="flex flex-row flex-wrap">
- <div
- v-for="(item, index) in property.list"
- :key="index"
- class="relative flex flex-col items-center p-b-14px p-t-20px"
- :style="{ width: `${100 * (1 / property.column)}%` }"
- >
- <!-- 右上角角标 -->
- <span
- v-if="item.badge?.show"
- class="absolute left-50% top-10px z-1 h-20px rounded-50% p-x-6px text-center text-12px leading-20px"
- :style="{ color: item.badge.textColor, backgroundColor: item.badge.bgColor }"
- >
- {{ item.badge.text }}
- </span>
- <el-image v-if="item.iconUrl" class="h-28px w-28px" :src="item.iconUrl" />
- <span class="m-t-8px h-16px text-12px leading-16px" :style="{ color: item.titleColor }">
- {{ item.title }}
- </span>
- <span class="m-t-6px h-12px text-10px leading-12px" :style="{ color: item.subtitleColor }">
- {{ item.subtitle }}
- </span>
- </div>
- </div>
- </template>
- <script setup lang="ts">
- import { MenuGridProperty } from './config'
- /** 宫格导航 */
- defineOptions({ name: 'MenuGrid' })
- defineProps<{ property: MenuGridProperty }>()
- </script>
- <style scoped lang="scss"></style>
|