34 lines
		
	
	
		
			697 B
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			697 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>
 |