35 lines
688 B
Vue
35 lines
688 B
Vue
<template>
|
|
<li
|
|
v-clipboard:copy="text"
|
|
v-clipboard:success="onCopied"
|
|
:class="justCopied === type ? 'copied' : ''"
|
|
>
|
|
<a-icon
|
|
:type="type"
|
|
:theme="theme"
|
|
/>
|
|
<span class="anticon-class">
|
|
<a-badge :dot="isNew">
|
|
{{ type }}
|
|
</a-badge>
|
|
</span>
|
|
</li>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
props: ['type', 'isNew', 'theme', 'justCopied'],
|
|
data () {
|
|
const { type, theme } = this;
|
|
return {
|
|
text: theme === 'outlined' ? `<a-icon type="${type}" />` : `<a-icon type="${type}" theme="${theme}" />`,
|
|
};
|
|
},
|
|
methods: {
|
|
onCopied () {
|
|
this.$emit('copied', this.type, this.text);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|