m-icon.vue 628 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <view class="m-icon" :class="['m-icon-'+type]" :style="{color:color,'font-size':fontSize}" @click="onClick()"></view>
  3. </template>
  4. <script>
  5. export default {
  6. props: {
  7. /**
  8. * 图标类型
  9. */
  10. type: String,
  11. /**
  12. * 图标颜色
  13. */
  14. color: String,
  15. /**
  16. * 图标大小
  17. */
  18. size: {
  19. type: [Number, String],
  20. default: 24
  21. }
  22. },
  23. computed: {
  24. fontSize() {
  25. var size = Number(this.size)
  26. size = isNaN(size) ? 24 : size
  27. return `${size}px`
  28. }
  29. },
  30. methods: {
  31. onClick() {
  32. this.$emit('click')
  33. }
  34. }
  35. }
  36. </script>
  37. <style>
  38. @import "./m-icon.css";
  39. </style>