tab.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var props_1 = require("./props");
  4. var unit_1 = require("../../utils/tool/unit");
  5. Component({
  6. properties: props_1.default,
  7. options: {
  8. pureDataPattern: /^_/,
  9. multipleSlots: true,
  10. },
  11. data: {
  12. number: 0,
  13. sValue: 0,
  14. width: 0,
  15. offsetLefts: undefined,
  16. allWidth: 750,
  17. lineWidth: 54,
  18. avgWidth: 0,
  19. opacity: 0,
  20. sTabs: [],
  21. headerComponents: {
  22. default: "default",
  23. line: "line",
  24. scrollLine: "scrollLine"
  25. }
  26. },
  27. observers: {
  28. value: function (value) {
  29. if (this.data.sValue !== value) {
  30. return this.switchTab(value, true);
  31. }
  32. }
  33. },
  34. methods: {
  35. handleTabs: function (tab) {
  36. var _this = this;
  37. var select;
  38. if (tab[this.data.value]) {
  39. select = this.data.value;
  40. }
  41. else if (tab[this.data.defaultIndex]) {
  42. select = this.data.defaultIndex;
  43. }
  44. else {
  45. select = 0;
  46. }
  47. tab = tab.map(function (item, index) {
  48. return {
  49. loading: select === index,
  50. label: item.label || item,
  51. slot: item.slot || 'tab-' + index
  52. };
  53. });
  54. if (this.data.first) {
  55. setTimeout(function () {
  56. _this.triggerEvent('change', {
  57. item: _this.data.tabs[select],
  58. index: select,
  59. loading: true
  60. });
  61. }, 0);
  62. }
  63. this.handleTabWidth(tab.length);
  64. return this.setData({
  65. sTabs: tab,
  66. sValue: select,
  67. opacity: 1
  68. });
  69. },
  70. handleTabWidth: function (count) {
  71. var _this = this;
  72. if (this.data.compact) {
  73. return wx.nextTick(function () {
  74. _this.createSelectorQuery().selectAll('.tab-header-item').boundingClientRect().exec(function (res) {
  75. var data = res[0];
  76. if (data) {
  77. var offsetLefts_1 = [];
  78. var agreement_1 = true;
  79. var width_1 = 0;
  80. var offsetLeft_1 = 0;
  81. data.map(function (item, index) {
  82. item.width = unit_1.unitPxToRPX(item.width);
  83. if (index === 0) {
  84. width_1 = item.width;
  85. }
  86. else if (agreement_1 && width_1 !== item.width) {
  87. agreement_1 = false;
  88. }
  89. offsetLeft_1 = index * (item.width + _this.data.margin);
  90. offsetLefts_1.push(offsetLeft_1 + (item.width - _this.data.lineWidth) / 2);
  91. });
  92. return _this.setData({
  93. offsetLefts: offsetLefts_1
  94. });
  95. }
  96. });
  97. });
  98. }
  99. else {
  100. var width = this.data.allWidth / count;
  101. return this.setData({
  102. width: width,
  103. avgWidth: width,
  104. });
  105. }
  106. },
  107. switchTab: function (e, change) {
  108. if (change === void 0) { change = true; }
  109. var index = typeof e === 'object' ? e.currentTarget.dataset.index : e;
  110. if (this.data.sValue !== index) {
  111. if (change) {
  112. this.triggerEvent('change', {
  113. index: index,
  114. item: this.data.sTabs[index],
  115. loading: this.data.sTabs[index] ? !this.data.sTabs[index].loading : true
  116. });
  117. }
  118. var draw = {
  119. sValue: index
  120. };
  121. if (this.data.sTabs[index]) {
  122. if (!this.data.sTabs[index].loading) {
  123. draw['sTabs[' + index + '].loading'] = true;
  124. }
  125. }
  126. return this.setData(draw);
  127. }
  128. },
  129. change: function (e) {
  130. return this.switchTab(e.detail.current, true);
  131. },
  132. changeSwitchTab: function (e) {
  133. return this.switchTab(e.detail.index, true);
  134. }
  135. },
  136. lifetimes: {
  137. ready: function () {
  138. return this.handleTabs(this.data.tabs);
  139. }
  140. }
  141. });
  142. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaUNBQTRCO0FBRTVCLDhDQUFrRDtBQUVsRCxTQUFTLENBQUM7SUFFVCxVQUFVLEVBQUMsZUFBSztJQUVoQixPQUFPLEVBQUU7UUFDUixlQUFlLEVBQUUsSUFBSTtRQUNyQixhQUFhLEVBQUMsSUFBSTtLQUNsQjtJQUdELElBQUksRUFBQztRQUNKLE1BQU0sRUFBQyxDQUFDO1FBRVIsTUFBTSxFQUFDLENBQUM7UUFFUixLQUFLLEVBQUUsQ0FBQztRQUVSLFdBQVcsRUFBQyxTQUFTO1FBRXJCLFFBQVEsRUFBRSxHQUFHO1FBRWIsU0FBUyxFQUFFLEVBQUU7UUFFYixRQUFRLEVBQUUsQ0FBQztRQUVYLE9BQU8sRUFBQyxDQUFDO1FBRVQsS0FBSyxFQUFDLEVBQUU7UUFFUixnQkFBZ0IsRUFBQztZQUNoQixPQUFPLFdBQStCO1lBQ3RDLElBQUksUUFBNEI7WUFDaEMsVUFBVSxjQUFrQztTQUM1QztLQUNEO0lBRUQsU0FBUyxFQUFDO1FBQ1QsS0FBSyxFQUFDLFVBQVUsS0FBSztZQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsQ0FBQzthQUNsQztRQUNGLENBQUM7S0FDRDtJQUVELE9BQU8sRUFBQztRQUdQLFVBQVUsRUFBQyxVQUFtQixHQUFHO1lBQXRCLGlCQXdDVjtZQXZDQSxJQUFJLE1BQU0sQ0FBQztZQUNYLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN6QjtpQkFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dC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QU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUUxQjtRQUVGLENBQUM7UUFHRCxNQUFNLEVBQUMsVUFBVSxDQUFDO1lBRWpCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsZUFBZSxZQUFDLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7S0FFRDtJQUVELFNBQVMsRUFBQztRQUNULEtBQUs7WUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDO0tBQ0Q7Q0FHRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBwcm9wcyBmcm9tICcuL3Byb3BzJztcblxuaW1wb3J0IHt1bml0UHhUb1JQWH0gZnJvbSAnLi4vLi4vdXRpbHMvdG9vbC91bml0JztcblxuQ29tcG9uZW50KHtcblxuXHRwcm9wZXJ0aWVzOnByb3BzLFxuXG5cdG9wdGlvbnM6IHtcblx0XHRwdXJlRGF0YVBhdHRlcm46IC9eXy8sIC8vIOaMh+WumuaJgOaciSBfIOW8gOWktOeahOaVsOaNruWtl+auteS4uue6r+aVsOaNruWtl+autVxuXHRcdG11bHRpcGxlU2xvdHM6dHJ1ZSwgIC8vIOWFgeiuuOe7hOS7tuWGhSDmlK/mjIHlpJrmj5Lmp71cblx0fSxcblxuXG5cdGRhdGE6e1xuXHRcdG51bWJlcjowLFxuXG5cdFx0c1ZhbHVlOjAsICAgLy8g6YCJ5Lit55qE5YC8XG5cblx0XHR3aWR0aDogMCwgIC8vIOavj+S4gOS4qml0ZW0g55qE5a695bqmIGxlZnRcblxuXHRcdG9mZnNldExlZnRzOnVuZGVmaW5lZCwgLy8g5q+P5LiA5LiqIGl0ZW0g55qEIOWuveW6plxuXG5cdFx0YWxsV2lkdGg6IDc1MCxcblxuXHRcdGxpbmVXaWR0aDogNTQsXG5cblx0XHRhdmdXaWR0aDogMCxcblxuXHRcdG9wYWNpdHk6MCxcblxuXHRcdHNUYWJzOltdLFxuXG5cdFx0aGVhZGVyQ29tcG9uZW50czp7XG5cdFx0XHRkZWZhdWx0OiBMaWJUYWJIZWFkZXJDb21wb25lbnQuZGVmYXVsdCxcblx0XHRcdGxpbmU6IExpYlRhYkhlYWRlckNvbXBvbmVudC5saW5lLFxuXHRcdFx0c2Nyb2xsTGluZTogTGliVGFiSGVhZGVyQ29tcG9uZW50LnNjcm9sbExpbmVcblx0XHR9XG5cdH0sXG5cblx0b2JzZXJ2ZXJzOntcblx0XHR2YWx1ZTpmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdGlmICh0aGlzLmRhdGEuc1ZhbHVlICE9PSB2YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5zd2l0Y2hUYWIodmFsdWUsdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdG1ldGhvZHM6e1xuXG5cdFx0Ly8g5aSE55CGIOWIneWni+WMlumAieS4rSB0YWJzXG5cdFx0aGFuZGxlVGFiczpmdW5jdGlvbiAodGhpczphbnksdGFiKSB7XG5cdFx0XHRsZXQgc2VsZWN0O1xuXHRcdFx0aWYgKHRhYlt0aGlzLmRhdGEudmFsdWVdKSB7XG5cdFx0XHRcdHNlbGVjdCA9IHRoaXMuZGF0YS52YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAodGFiW3RoaXMuZGF0YS5kZWZhdWx0SW5kZXhdKSB7XG5cdFx0XHRcdHNlbGVjdCA9IHRoaXMuZGF0YS5kZWZhdWx0SW5kZXg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWxlY3QgPSAwO1xuXHRcdFx0fVxuXG5cdFx0XHR0YWIgPSB0YWIubWFwKChpdGVtLGluZGV4KT0+e1xuXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0bG9hZGluZzogc2VsZWN0ID09PSBpbmRleCxcblx0XHRcdFx0XHRsYWJlbDogaXRlbS5sYWJlbCB8fCBpdGVtLFxuXHRcdFx0XHRcdHNsb3Q6IGl0ZW0uc2xvdCB8fCAndGFiLScraW5kZXhcblx0XHRcdFx0fVxuXG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKHRoaXMuZGF0YS5maXJzdCl7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnRyaWdnZXJFdmVudCgnY2hhbmdlJyx7XG5cdFx0XHRcdFx0XHRpdGVtOiB0aGlzLmRhdGEudGFic1tzZWxlY3RdLFxuXHRcdFx0XHRcdFx0aW5kZXg6IHNlbGVjdCxcblx0XHRcdFx0XHRcdGxvYWRpbmc6dHJ1ZVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9LDApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyDlpITnkIZ0YWLnmoTlrr3luqbpl67pophcblx0XHRcdHRoaXMuaGFuZGxlVGFiV2lkdGgodGFiLmxlbmd0aCk7XG5cblx0XHRcdHJldHVybiB0aGlzLnNldERhdGEoe1xuXHRcdFx0XHRzVGFiczp0YWIsXG5cdFx0XHRcdHNWYWx1ZTogc2VsZWN0LFxuXHRcdFx0XHRvcGFjaXR5OjFcblx0XHRcdH0pO1xuXG5cblx0XHR9LFxuXG5cdFx0Ly8g5aSE55CGIOWuveW6plxuXHRcdGhhbmRsZVRhYldpZHRoKGNvdW50KXtcblxuXHRcdFx0aWYgKHRoaXMuZGF0YS5jb21wYWN0KSB7XG5cblx0XHRcdFx0cmV0dXJuICB3eC5uZXh0VGljaygoKT0+e1xuXHRcdFx0XHRcdHRoaXMuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLnNlbGVjdEFsbCgnLnRhYi1oZWFkZXItaXRlbScpLmJvdW5kaW5nQ2xpZW50UmVjdCgpLmV4ZWMoIChyZXMpPT4ge1xuXHRcdFx0XHRcdFx0bGV0IGRhdGEgPSByZXNbMF07XG5cdFx0XHRcdFx0XHRpZiAoZGF0YSkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIOW9k+WJjeeahOWuveW6plxuXHRcdFx0XHRcdFx0XHRsZXQgb2Zmc2V0TGVmdHMgPSBbXTtcblx0XHRcdFx0XHRcdFx0Ly8g5piv5ZCm5LiA6Ie0XG5cdFx0XHRcdFx0XHRcdGxldCBhZ3JlZW1lbnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHQvLyDlvZPliY3pibTlrprlrr3luqZcblx0XHRcdFx0XHRcdFx0bGV0IHdpZHRoID0gMDtcblx0XHRcdFx0XHRcdFx0Ly8g5bem5L6n6Ze06LedXG5cdFx0XHRcdFx0XHRcdGxldCBvZmZzZXRMZWZ0ID0gMDtcblxuXHRcdFx0XHRcdFx0XHRkYXRhLm1hcCgoaXRlbSxpbmRleCk9PntcblxuXHRcdFx0XHRcdFx0XHRcdGl0ZW0ud2lkdGggPSB1bml0UHhUb1JQWChpdGVtLndpZHRoKTtcblxuXG5cblx0XHRcdFx0XHRcdFx0XHRpZiAoaW5kZXggPT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoID0gaXRlbS53aWR0aDtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGFncmVlbWVudCAmJiB3aWR0aCAhPT0gaXRlbS53aWR0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0YWdyZWVtZW50ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0TGVmdCA9aW5kZXggKiAgKGl0ZW0ud2lkdGggKyB0aGlzLmRhdGEubWFyZ2luKTtcblx0XHRcdFx0XHRcdFx0XHRvZmZzZXRMZWZ0cy5wdXNoKG9mZnNldExlZnQgKyAoaXRlbS53aWR0aCAtIHRoaXMuZGF0YS5saW5lV2lkdGgpLzIpO1xuXHRcdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5zZXREYXRhKHtcblx0XHRcdFx0XHRcdFx0XHRvZmZzZXRMZWZ0c1xuXHRcdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRsZXQgd2lkdGggPSB0aGlzLmRhdGEuYWxsV2lkdGggLyBjb3VudDtcblxuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZXREYXRhKHtcblx0XHRcdFx0XHR3aWR0aDogd2lkdGgsXG5cdFx0XHRcdFx0YXZnV2lkdGg6IHdpZHRoLFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdH0sXG5cblx0XHQvLyDliIfmjaJcblx0XHRzd2l0Y2hUYWI6ZnVuY3Rpb24gKGUsY2hhbmdlID10cnVlKSB7XG5cblx0XHRcdGxldCBpbmRleCA9IHR5cGVvZiBlPT09J29iamVjdCc/ZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuaW5kZXg6ZTtcblxuXHRcdFx0aWYgKHRoaXMuZGF0YS5zVmFsdWUgIT09IGluZGV4KSB7XG5cblx0XHRcdFx0aWYgKGNoYW5nZSkge1xuXHRcdFx0XHRcdHRoaXMudHJpZ2dlckV2ZW50KCdjaGFuZ2UnLHtcblx0XHRcdFx0XHRcdGluZGV4OmluZGV4LFxuXHRcdFx0XHRcdFx0aXRlbTogdGhpcy5kYXRhLnNUYWJzW2luZGV4XSxcblx0XHRcdFx0XHRcdGxvYWRpbmc6IHRoaXMuZGF0YS5zVGFic1tpbmRleF0/IXRoaXMuZGF0YS5zVGFic1tpbmRleF0ubG9hZGluZzp0cnVlXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsZXQgZHJhdyA9IHtcblx0XHRcdFx0XHRzVmFsdWU6aW5kZXhcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRpZiAodGhpcy5kYXRhLnNUYWJzW2luZGV4XSl7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmRhdGEuc1RhYnNbaW5kZXhdLmxvYWRpbmcpIHtcblx0XHRcdFx0XHRcdGRyYXdbJ3NUYWJzWycraW5kZXgrJ10ubG9hZGluZyddID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZXREYXRhKGRyYXcpO1xuXG5cdFx0XHR9XG5cblx0XHR9LFxuXG5cdFx0Ly8gc3dpcGVyIOabtOaNolxuXHRcdGNoYW5nZTpmdW5jdGlvbiAoZSkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5zd2l0Y2hUYWIoZS5kZXRhaWwuY3VycmVudCx0cnVlKTtcblx0XHR9LFxuXG5cdFx0Y2hhbmdlU3dpdGNoVGFiKGUpe1xuXHRcdFx0cmV0dXJuIHRoaXMuc3dpdGNoVGFiKGUuZGV0YWlsLmluZGV4LHRydWUpO1xuXHRcdH1cblxuXHR9LFxuXG5cdGxpZmV0aW1lczp7XG5cdFx0cmVhZHkoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oYW5kbGVUYWJzKHRoaXMuZGF0YS50YWJzKTtcblx0XHR9XG5cdH1cblxuXG59KTtcbiJdfQ==