Item.vue
692 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
41
<script>
export default {
name: "MenuItem",
functional: true,
props: {
icon: {
type: String,
default: "",
},
title: {
type: String,
default: "",
},
},
render(h, context) {
const { icon, title } = context.props;
const vnodes = [];
if (icon) {
if (icon.includes("el-icon")) {
vnodes.push(<i class={[icon, "sub-el-icon"]} />);
} else {
vnodes.push(<svg-icon icon-class={icon} />);
}
}
if (title) {
vnodes.push(<span slot="title">{title}</span>);
}
return vnodes;
},
};
</script>
<style scoped>
.sub-el-icon {
color: currentColor;
width: 1em;
height: 1em;
}
</style>