icon.vue
832 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script setup lang="ts">
/**
* 公共布局入口组件
* @module Enter
*/
import { onMounted, reactive, computed } from "vue";
import {
HomeFilled,
Shop,
List,
Tools,
Opportunity,
PhoneFilled,
Avatar,
Menu as IconMenu,
} from "@element-plus/icons-vue";
/**
* @description 组件属性
* @prop {number} keyId 一级菜单id
*/
interface Props {
keyId: number;
}
const props = withDefaults(defineProps<Props>(), {
keyId: 0,
});
</script>
<template>
<el-icon>
<IconMenu v-if="keyId === -1" />
<HomeFilled v-else-if="keyId === 1000" />
<Tools v-else-if="keyId === 2000" />
<Shop v-else-if="keyId === 3000" />
<Avatar v-else-if="keyId === 4000" />
<PhoneFilled v-else-if="keyId === 5000" />
<Opportunity v-else-if="keyId === 6000" />
<List v-else />
</el-icon>
</template>