mirror of https://github.com/rancher/dashboard.git
92 lines
1.6 KiB
Vue
92 lines
1.6 KiB
Vue
<script>
|
|
export default {
|
|
props: {
|
|
type: {
|
|
type: Object,
|
|
required: true
|
|
}
|
|
},
|
|
|
|
data() {
|
|
return { over: false };
|
|
},
|
|
|
|
methods: {
|
|
onMouseover() {
|
|
this.over = true;
|
|
console.log('over');
|
|
},
|
|
|
|
onMouseout() {
|
|
this.over = false;
|
|
console.log('out');
|
|
},
|
|
|
|
removeFavorite() {
|
|
this.$store.commit('type-map/removeFavorite', this.type.id);
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<n-link
|
|
:key="type.name"
|
|
:to="type.route"
|
|
tag="li"
|
|
class="child"
|
|
@onmouseover="onMouseover($event)"
|
|
@onmouseout="onMouseout($event)"
|
|
>
|
|
<a>
|
|
<span class="label" v-html="type.labelDisplay || type.label" />
|
|
<span v-if="over" class="count">
|
|
<i class="icon icon-trash" @click="removeFavorite" />
|
|
</span>
|
|
<span v-else-if="typeof type.count !== 'undefined'" class="count">
|
|
{{ type.count }}
|
|
</span>
|
|
</a>
|
|
</n-link>
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
.child {
|
|
A {
|
|
display: grid;
|
|
grid-template-areas: "label count";
|
|
grid-template-columns: auto auto;
|
|
grid-column-gap: 5px;
|
|
font-size: 12px;
|
|
padding: 7px 5px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.label {
|
|
grid-area: label;
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
|
|
::v-deep .highlight {
|
|
filter: invert(1);
|
|
}
|
|
|
|
::v-deep .icon {
|
|
position: relative;
|
|
top: -2px;
|
|
color: var(--muted);
|
|
}
|
|
}
|
|
|
|
.count {
|
|
grid-area: count;
|
|
font-size: 12px;
|
|
text-align: right;
|
|
justify-items: center;
|
|
}
|
|
}
|
|
</style>
|