tm-empty.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <view class="tm-empty flex-center flex-col my-32">
  3. <view class="py-32">
  4. <tm-icons @click="$emit('click')" :color="color" :name="icon?icon:listIcon[model].name" :size="size"></tm-icons>
  5. </view>
  6. <view class="text-size-n" :class="[
  7. `text-${color}`,
  8. 'py-12'
  9. ]">{{label?label:listIcon[model].label}}</view>
  10. <view>
  11. <slot></slot>
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. /**
  17. * 数据空
  18. * @property {String} model = [bug|refresh] 默认bug,待扩展。
  19. * @property {String} color = [] 默认grey-lighten-1,主题颜色。
  20. * @property {Number} size = [] 默认120,图标大小,单位upx
  21. * @property {String} label = [] 默认 '',自定义错误文字。
  22. * @property {String} icon = [] 默认 '',自定义错误图片。
  23. * @property {Function} click 点击图标或者图片时触发。
  24. * @example <tm-empty></tm-empty>
  25. */
  26. import tmIcons from "@/tm-vuetify/components/tm-icons/tm-icons.vue"
  27. export default {
  28. components:{tmIcons},
  29. name: "tm-empty",
  30. props: {
  31. model: {
  32. type: String,
  33. default: 'refresh'
  34. },
  35. color: {
  36. type: String,
  37. default: 'grey-lighten-1'
  38. },
  39. size: {
  40. type: String|Number,
  41. default: 120
  42. },
  43. label:{
  44. type:String,
  45. default:''
  46. },
  47. //自定义图标图片。
  48. icon:{
  49. type:String,
  50. default:''
  51. }
  52. },
  53. data() {
  54. return {
  55. listIcon: {
  56. bug: {
  57. name: 'icon-bug-report',
  58. label: '软件出现了bug'
  59. },
  60. refresh:{
  61. name: 'icon-redo',
  62. label: '刷新试下'
  63. },
  64. listEmpty:{
  65. name: 'icon-box-fill',
  66. label: '数据为空哦'
  67. }
  68. }
  69. };
  70. }
  71. }
  72. </script>
  73. <style lang="scss">
  74. </style>