uni-badge.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <text
  3. v-if="text"
  4. :class="inverted ? 'uni-badge-' + type + ' uni-badge--' + size + ' uni-badge-inverted' : 'uni-badge-' + type + ' uni-badge--' + size"
  5. class="uni-badge"
  6. @click="onClick()">{{ text }}</text>
  7. </template>
  8. <script>
  9. export default {
  10. name: 'UniBadge',
  11. props: {
  12. type: {
  13. type: String,
  14. default: 'default'
  15. },
  16. inverted: {
  17. type: Boolean,
  18. default: false
  19. },
  20. text: {
  21. type: [String, Number],
  22. default: ''
  23. },
  24. size: { // small.normal
  25. type: String,
  26. default: 'normal'
  27. }
  28. },
  29. methods: {
  30. onClick () {
  31. this.$emit('click')
  32. }
  33. }
  34. }
  35. </script>
  36. <style lang="scss">
  37. $bage-size:12px;
  38. $bage-small:scale(0.8);
  39. .uni-badge {
  40. font-family: 'Helvetica Neue', Helvetica, sans-serif;
  41. box-sizing: border-box;
  42. font-size: $bage-size;
  43. line-height: 1;
  44. display: inline-block;
  45. padding: 3px 6px;
  46. color: $uni-text-color;
  47. border-radius: 100px;
  48. background-color: $uni-bg-color-hover;
  49. &.uni-badge-inverted {
  50. padding: 0 5px 0 0;
  51. color: $uni-text-color-grey;
  52. background-color: transparent;
  53. }
  54. &-primary {
  55. color: $uni-text-color-inverse;
  56. background-color: $uni-color-primary;
  57. &.uni-badge-inverted {
  58. color: $uni-color-primary;
  59. background-color: transparent
  60. }
  61. }
  62. &-success {
  63. color: #5d5d5d;
  64. background-color: #fff;
  65. font-size: 14px;
  66. &.uni-badge-inverted {
  67. color: $uni-color-success;
  68. background-color: transparent
  69. }
  70. }
  71. &-warning {
  72. color: $uni-text-color-inverse;
  73. background-color: $uni-color-warning;
  74. &.uni-badge-inverted {
  75. color: $uni-color-warning;
  76. background-color: transparent
  77. }
  78. }
  79. &-error {
  80. color: $uni-text-color-inverse;
  81. background-color: $uni-color-error;
  82. &.uni-badge-inverted {
  83. color: $uni-color-error;
  84. background-color: transparent
  85. }
  86. }
  87. &--small {
  88. transform: $bage-small;
  89. transform-origin: center center;
  90. }
  91. }
  92. </style>