index.vue 7.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <uni-shadow-root class="vant-tabbar-index"><view :class="'custom-class '+(border ? 'van-hairline--top-bottom' : '')+' '+(utils.bem('tabbar', { fixed, safe: isIPhoneX && safeAreaInsetBottom }))" :style="zIndex ? 'z-index: ' + zIndex : ''">
  3. <slot></slot>
  4. </view></uni-shadow-root>
  5. </template>
  6. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  7. <script>
  8. global['__wxRoute'] = 'vant/tabbar/index'
  9. "use strict";
  10. Object.defineProperty(exports, "__esModule", { value: true });
  11. var component_1 = require('./../common/component.js');
  12. var safe_area_1 = require('./../mixins/safe-area.js');
  13. component_1.VantComponent({
  14. mixins: [safe_area_1.safeArea()],
  15. relation: {
  16. name: 'tabbar-item',
  17. type: 'descendant',
  18. linked: function linked(target) {
  19. this.children.push(target);
  20. target.parent = this;
  21. target.updateFromParent();
  22. },
  23. unlinked: function unlinked(target) {
  24. this.children = this.children.filter(function (item) {
  25. return item !== target;
  26. });
  27. this.updateChildren();
  28. }
  29. },
  30. props: {
  31. active: {
  32. type: [Number, String],
  33. observer: 'updateChildren'
  34. },
  35. activeColor: {
  36. type: String,
  37. observer: 'updateChildren'
  38. },
  39. inactiveColor: {
  40. type: String,
  41. observer: 'updateChildren'
  42. },
  43. fixed: {
  44. type: Boolean,
  45. value: true
  46. },
  47. border: {
  48. type: Boolean,
  49. value: true
  50. },
  51. zIndex: {
  52. type: Number,
  53. value: 1
  54. }
  55. },
  56. beforeCreate: function beforeCreate() {
  57. this.children = [];
  58. },
  59. methods: {
  60. updateChildren: function updateChildren() {
  61. var children = this.children;
  62. if (!Array.isArray(children) || !children.length) {
  63. return Promise.resolve();
  64. }
  65. return Promise.all(children.map(function (child) {
  66. return child.updateFromParent();
  67. }));
  68. },
  69. onChange: function onChange(child) {
  70. var index = this.children.indexOf(child);
  71. var active = child.data.name || index;
  72. if (active !== this.data.active) {
  73. this.$emit('change', active);
  74. }
  75. }
  76. }
  77. });
  78. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwic2FmZV9hcmVhXzEiLCJtaXhpbnMiLCJyZWxhdGlvbiIsIm5hbWUiLCJ0eXBlIiwibGlua2VkIiwidGFyZ2V0IiwidW5saW5rZWQiLCJpdGVtIiwicHJvcHMiLCJhY3RpdmUiLCJvYnNlcnZlciIsImFjdGl2ZUNvbG9yIiwiaW5hY3RpdmVDb2xvciIsImZpeGVkIiwiYm9yZGVyIiwiekluZGV4IiwiYmVmb3JlQ3JlYXRlIiwibWV0aG9kcyIsInVwZGF0ZUNoaWxkcmVuIiwiY2hpbGRyZW4iLCJBcnJheSIsIlByb21pc2UiLCJjaGlsZCIsIm9uQ2hhbmdlIiwiaW5kZXgiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxjQUFjQyxRQUFsQiwwQkFBa0JBLENBQWxCO0FBQ0EsSUFBSUMsY0FBY0QsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkcsWUFBUSxDQUFDRCxZQURhLFFBQ2JBLEVBQUQsQ0FEYztBQUV0QkUsY0FBVTtBQUNOQyxjQURNLGFBQUE7QUFFTkMsY0FGTSxZQUFBO0FBR05DLGdCQUFRLFNBQUEsTUFBQSxDQUFBLE1BQUEsRUFBa0I7QUFDdEIsaUJBQUEsUUFBQSxDQUFBLElBQUEsQ0FBQSxNQUFBO0FBQ0FDLG1CQUFBQSxNQUFBQSxHQUFBQSxJQUFBQTtBQUNBQSxtQkFBQUEsZ0JBQUFBO0FBTkUsU0FBQTtBQVFOQyxrQkFBVSxTQUFBLFFBQUEsQ0FBQSxNQUFBLEVBQWtCO0FBQ3hCLGlCQUFBLFFBQUEsR0FBZ0IsS0FBQSxRQUFBLENBQUEsTUFBQSxDQUFxQixVQUFBLElBQUEsRUFBZ0I7QUFBRSx1QkFBT0MsU0FBUCxNQUFBO0FBQXZELGFBQWdCLENBQWhCO0FBQ0EsaUJBQUEsY0FBQTtBQUNIO0FBWEssS0FGWTtBQWV0QkMsV0FBTztBQUNIQyxnQkFBUTtBQUNKTixrQkFBTSxDQUFBLE1BQUEsRUFERixNQUNFLENBREY7QUFFSk8sc0JBQVU7QUFGTixTQURMO0FBS0hDLHFCQUFhO0FBQ1RSLGtCQURTLE1BQUE7QUFFVE8sc0JBQVU7QUFGRCxTQUxWO0FBU0hFLHVCQUFlO0FBQ1hULGtCQURXLE1BQUE7QUFFWE8sc0JBQVU7QUFGQyxTQVRaO0FBYUhHLGVBQU87QUFDSFYsa0JBREcsT0FBQTtBQUVIUCxtQkFBTztBQUZKLFNBYko7QUFpQkhrQixnQkFBUTtBQUNKWCxrQkFESSxPQUFBO0FBRUpQLG1CQUFPO0FBRkgsU0FqQkw7QUFxQkhtQixnQkFBUTtBQUNKWixrQkFESSxNQUFBO0FBRUpQLG1CQUFPO0FBRkg7QUFyQkwsS0FmZTtBQXlDdEJvQixrQkFBYyxTQUFBLFlBQUEsR0FBWTtBQUN0QixhQUFBLFFBQUEsR0FBQSxFQUFBO0FBMUNrQixLQUFBO0FBNEN0QkMsYUFBUztBQUNMQyx3QkFBZ0IsU0FBQSxjQUFBLEdBQVk7QUFDeEIsZ0JBQUlDLFdBQVcsS0FBZixRQUFBO0FBQ0EsZ0JBQUksQ0FBQ0MsTUFBQUEsT0FBQUEsQ0FBRCxRQUFDQSxDQUFELElBQTRCLENBQUNELFNBQWpDLE1BQUEsRUFBa0Q7QUFDOUMsdUJBQU9FLFFBQVAsT0FBT0EsRUFBUDtBQUNIO0FBQ0QsbUJBQU8sUUFBQSxHQUFBLENBQVksU0FBQSxHQUFBLENBQWEsVUFBQSxLQUFBLEVBQWlCO0FBQUUsdUJBQU9DLE1BQVAsZ0JBQU9BLEVBQVA7QUFBbkQsYUFBbUIsQ0FBWixDQUFQO0FBTkMsU0FBQTtBQVFMQyxrQkFBVSxTQUFBLFFBQUEsQ0FBQSxLQUFBLEVBQWlCO0FBQ3ZCLGdCQUFJQyxRQUFRLEtBQUEsUUFBQSxDQUFBLE9BQUEsQ0FBWixLQUFZLENBQVo7QUFDQSxnQkFBSWYsU0FBU2EsTUFBQUEsSUFBQUEsQ0FBQUEsSUFBQUEsSUFBYixLQUFBO0FBQ0EsZ0JBQUliLFdBQVcsS0FBQSxJQUFBLENBQWYsTUFBQSxFQUFpQztBQUM3QixxQkFBQSxLQUFBLENBQUEsUUFBQSxFQUFBLE1BQUE7QUFDSDtBQUNKO0FBZEk7QUE1Q2EsQ0FBMUJaIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgY29tcG9uZW50XzEgPSByZXF1aXJlKFwiLi4vY29tbW9uL2NvbXBvbmVudFwiKTtcbnZhciBzYWZlX2FyZWFfMSA9IHJlcXVpcmUoXCIuLi9taXhpbnMvc2FmZS1hcmVhXCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgbWl4aW5zOiBbc2FmZV9hcmVhXzEuc2FmZUFyZWEoKV0sXG4gICAgcmVsYXRpb246IHtcbiAgICAgICAgbmFtZTogJ3RhYmJhci1pdGVtJyxcbiAgICAgICAgdHlwZTogJ2Rlc2NlbmRhbnQnLFxuICAgICAgICBsaW5rZWQ6IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCh0YXJnZXQpO1xuICAgICAgICAgICAgdGFyZ2V0LnBhcmVudCA9IHRoaXM7XG4gICAgICAgICAgICB0YXJnZXQudXBkYXRlRnJvbVBhcmVudCgpO1xuICAgICAgICB9LFxuICAgICAgICB1bmxpbmtlZDogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtICE9PSB0YXJnZXQ7IH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICAgICAgICBvYnNlcnZlcjogJ3VwZGF0ZUNoaWxkcmVuJ1xuICAgICAgICB9LFxuICAgICAgICBhY3RpdmVDb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICd1cGRhdGVDaGlsZHJlbidcbiAgICAgICAgfSxcbiAgICAgICAgaW5hY3RpdmVDb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICd1cGRhdGVDaGlsZHJlbidcbiAgICAgICAgfSxcbiAgICAgICAgZml4ZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBib3JkZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB6SW5kZXg6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHZhbHVlOiAxXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkcmVuKSB8fCAhY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHsgcmV0dXJuIGNoaWxkLnVwZGF0ZUZyb21QYXJlbnQoKTsgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoY2hpbGQpO1xuICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IGNoaWxkLmRhdGEubmFtZSB8fCBpbmRleDtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgIT09IHRoaXMuZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBhY3RpdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=
  79. export default global['__wxComponents']['vant/tabbar/index']
  80. </script>
  81. <style platform="mp-weixin">
  82. @import '../common/index.css';.van-tabbar{display:-webkit-flex;display:flex;width:100%;height:50px;background-color:#fff}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--safe{padding-bottom:34px}
  83. </style>