index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. Component({
  2. /**
  3. * 组件的属性列表
  4. */
  5. options: {
  6. multipleSlots: true // 在组件定义时的选项中启用多slot支持
  7. },
  8. relations: {
  9. '../segment/index': {
  10. type: 'parent',
  11. linked() { },
  12. unlinked() { }
  13. },
  14. },
  15. properties: {
  16. tab: String,
  17. key: String,
  18. icon: String,
  19. iconSize: {
  20. type: String,
  21. value: '20'
  22. },
  23. image: Object,
  24. picPlacement: {
  25. type: String,
  26. value: 'top'
  27. },
  28. dotBadge: Boolean,
  29. badgeCount: {
  30. type: Number,
  31. },
  32. badgeMaxCount: {
  33. type: Number,
  34. value: 99
  35. },
  36. badgeCountType: {
  37. type: String,
  38. value: 'overflow'
  39. },
  40. },
  41. observers: {
  42. '**': function (filed) {
  43. this.updateData(filed);
  44. }
  45. },
  46. /**
  47. * 组件的初始数据
  48. */
  49. data: {},
  50. /**
  51. * 组件的方法列表
  52. */
  53. methods: {
  54. updateData(filed) {
  55. let parent = this.getRelationNodes('../segment/index')[0];
  56. if (!parent) return;
  57. const tabList = parent.data.tabList;
  58. if (!(tabList && tabList.length > 0)) return;
  59. const index = tabList.findIndex(tab => tab.key === this.data.key);
  60. tabList[index] = filed;
  61. parent.setData({
  62. tabList: tabList
  63. }, () => {
  64. if (parent.data.scrollable) {
  65. parent.queryMultipleNodes();
  66. }
  67. });
  68. },
  69. }
  70. });