index.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import baseComponent from '../helpers/baseComponent'
  2. import classNames from '../helpers/libs/classNames'
  3. const defaultIcon = {
  4. type: 'success',
  5. size: 93,
  6. color: '#33cd5f',
  7. }
  8. const getIcon = (icon) => {
  9. if (icon !== null && typeof icon === 'object') {
  10. return Object.assign({}, defaultIcon, icon)
  11. } else if (typeof icon === 'string') {
  12. return Object.assign({}, defaultIcon, {
  13. type: icon,
  14. })
  15. } else if (icon === '' || icon === false) {
  16. return null
  17. }
  18. return defaultIcon
  19. }
  20. baseComponent({
  21. properties: {
  22. prefixCls: {
  23. type: String,
  24. value: 'wux-result',
  25. },
  26. icon: {
  27. type: null,
  28. value: defaultIcon,
  29. observer(newVal) {
  30. this.setData({
  31. resultIcon: getIcon(newVal),
  32. })
  33. },
  34. },
  35. title: {
  36. type: String,
  37. value: '',
  38. },
  39. label: {
  40. type: String,
  41. value: '',
  42. },
  43. buttons: {
  44. type: Array,
  45. value: [],
  46. },
  47. extra: {
  48. type: String,
  49. value: '',
  50. },
  51. fixed: {
  52. type: Boolean,
  53. value: false,
  54. },
  55. },
  56. data: {
  57. resultIcon: null,
  58. },
  59. computed: {
  60. classes: ['prefixCls, fixed', function(prefixCls, fixed) {
  61. const wrap = classNames(prefixCls, {
  62. [`${prefixCls}--fixed`]: fixed,
  63. })
  64. const hd = `${prefixCls}__hd`
  65. const icon = `${prefixCls}__icon`
  66. const bd = `${prefixCls}__bd`
  67. const title = `${prefixCls}__title`
  68. const desc = `${prefixCls}__desc`
  69. const buttons = `${prefixCls}__buttons`
  70. const ft = `${prefixCls}__ft`
  71. return {
  72. wrap,
  73. hd,
  74. icon,
  75. bd,
  76. title,
  77. desc,
  78. buttons,
  79. ft,
  80. }
  81. }],
  82. },
  83. methods: {
  84. onClick(e) {
  85. this.triggerEvent('click', e.currentTarget.dataset)
  86. },
  87. bindgetuserinfo(e) {
  88. this.triggerEvent('getuserinfo', {...e.detail, ...e.currentTarget.dataset })
  89. },
  90. bindcontact(e) {
  91. this.triggerEvent('contact', {...e.detail, ...e.currentTarget.dataset })
  92. },
  93. bindgetphonenumber(e) {
  94. this.triggerEvent('getphonenumber', {...e.detail, ...e.currentTarget.dataset })
  95. },
  96. bindopensetting(e) {
  97. this.triggerEvent('opensetting', {...e.detail, ...e.currentTarget.dataset })
  98. },
  99. bindlaunchapp(e) {
  100. this.triggerEvent('launchapp', {...e.detail, ...e.currentTarget.dataset })
  101. },
  102. bindchooseavatar(e) {
  103. this.triggerEvent('chooseavatar', {...e.detail, ...e.currentTarget.dataset })
  104. },
  105. onError(e) {
  106. this.triggerEvent('error', {...e.detail, ...e.currentTarget.dataset })
  107. },
  108. },
  109. attached() {
  110. this.setData({
  111. resultIcon: getIcon(this.data.icon),
  112. })
  113. },
  114. })