index.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <uni-shadow-root class="vant-tabbar-item-index"><view :class="(utils.bem('tabbar-item', { active }))+' custom-class'" :style="'color: '+(active ? activeColor : inactiveColor)" @click="onClick">
  3. <view :class="utils.bem('tabbar-item__icon', { dot })">
  4. <van-icon v-if="icon" :name="icon" customStyle="display: block"></van-icon>
  5. <block v-else>
  6. <slot v-if="active" name="icon-active"></slot>
  7. <slot v-else name="icon"></slot>
  8. </block>
  9. <van-info v-if="info !== null" :info="info" custom-style="margin-top: 2px"></van-info>
  10. </view>
  11. <view class="van-tabbar-item__text">
  12. <slot></slot>
  13. </view>
  14. </view></uni-shadow-root>
  15. </template>
  16. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  17. <script>
  18. import VanIcon from '../icon/index.vue'
  19. import VanInfo from '../info/index.vue'
  20. global['__wxVueOptions'] = {components:{'van-icon': VanIcon,'van-info': VanInfo}}
  21. global['__wxRoute'] = 'vant/tabbar-item/index'
  22. "use strict";
  23. Object.defineProperty(exports, "__esModule", { value: true });
  24. var component_1 = require('./../common/component.js');
  25. component_1.VantComponent({
  26. props: {
  27. info: null,
  28. icon: String,
  29. dot: Boolean,
  30. name: {
  31. type: [String, Number]
  32. }
  33. },
  34. relation: {
  35. name: 'tabbar',
  36. type: 'ancestor'
  37. },
  38. data: {
  39. active: false
  40. },
  41. methods: {
  42. onClick: function onClick() {
  43. if (this.parent) {
  44. this.parent.onChange(this);
  45. }
  46. this.$emit('click');
  47. },
  48. updateFromParent: function updateFromParent() {
  49. var parent = this.parent;
  50. if (!parent) {
  51. return;
  52. }
  53. var index = parent.children.indexOf(this);
  54. var parentData = parent.data;
  55. var data = this.data;
  56. var active = (data.name || index) === parentData.active;
  57. var patch = {};
  58. if (active !== data.active) {
  59. patch.active = active;
  60. }
  61. if (parentData.activeColor !== data.activeColor) {
  62. patch.activeColor = parentData.activeColor;
  63. }
  64. if (parentData.inactiveColor !== data.inactiveColor) {
  65. patch.inactiveColor = parentData.inactiveColor;
  66. }
  67. return Object.keys(patch).length > 0 ? this.set(patch) : Promise.resolve();
  68. }
  69. }
  70. });
  71. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwicHJvcHMiLCJpbmZvIiwiaWNvbiIsImRvdCIsIm5hbWUiLCJ0eXBlIiwicmVsYXRpb24iLCJkYXRhIiwiYWN0aXZlIiwibWV0aG9kcyIsIm9uQ2xpY2siLCJ1cGRhdGVGcm9tUGFyZW50IiwicGFyZW50IiwiaW5kZXgiLCJwYXJlbnREYXRhIiwicGF0Y2giLCJQcm9taXNlIl0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkUsV0FBTztBQUNIQyxjQURHLElBQUE7QUFFSEMsY0FGRyxNQUFBO0FBR0hDLGFBSEcsT0FBQTtBQUlIQyxjQUFNO0FBQ0ZDLGtCQUFNLENBQUEsTUFBQSxFQUFBLE1BQUE7QUFESjtBQUpILEtBRGU7QUFTdEJDLGNBQVU7QUFDTkYsY0FETSxRQUFBO0FBRU5DLGNBQU07QUFGQSxLQVRZO0FBYXRCRSxVQUFNO0FBQ0ZDLGdCQUFRO0FBRE4sS0FiZ0I7QUFnQnRCQyxhQUFTO0FBQ0xDLGlCQUFTLFNBQUEsT0FBQSxHQUFZO0FBQ2pCLGdCQUFJLEtBQUosTUFBQSxFQUFpQjtBQUNiLHFCQUFBLE1BQUEsQ0FBQSxRQUFBLENBQUEsSUFBQTtBQUNIO0FBQ0QsaUJBQUEsS0FBQSxDQUFBLE9BQUE7QUFMQyxTQUFBO0FBT0xDLDBCQUFrQixTQUFBLGdCQUFBLEdBQVk7QUFDMUIsZ0JBQUlDLFNBQVMsS0FBYixNQUFBO0FBQ0EsZ0JBQUksQ0FBSixNQUFBLEVBQWE7QUFDVDtBQUNIO0FBQ0QsZ0JBQUlDLFFBQVFELE9BQUFBLFFBQUFBLENBQUFBLE9BQUFBLENBQVosSUFBWUEsQ0FBWjtBQUNBLGdCQUFJRSxhQUFhRixPQUFqQixJQUFBO0FBQ0EsZ0JBQUlMLE9BQU8sS0FBWCxJQUFBO0FBQ0EsZ0JBQUlDLFNBQVMsQ0FBQ0QsS0FBQUEsSUFBQUEsSUFBRCxLQUFBLE1BQXlCTyxXQUF0QyxNQUFBO0FBQ0EsZ0JBQUlDLFFBQUosRUFBQTtBQUNBLGdCQUFJUCxXQUFXRCxLQUFmLE1BQUEsRUFBNEI7QUFDeEJRLHNCQUFBQSxNQUFBQSxHQUFBQSxNQUFBQTtBQUNIO0FBQ0QsZ0JBQUlELFdBQUFBLFdBQUFBLEtBQTJCUCxLQUEvQixXQUFBLEVBQWlEO0FBQzdDUSxzQkFBQUEsV0FBQUEsR0FBb0JELFdBQXBCQyxXQUFBQTtBQUNIO0FBQ0QsZ0JBQUlELFdBQUFBLGFBQUFBLEtBQTZCUCxLQUFqQyxhQUFBLEVBQXFEO0FBQ2pEUSxzQkFBQUEsYUFBQUEsR0FBc0JELFdBQXRCQyxhQUFBQTtBQUNIO0FBQ0QsbUJBQU9uQixPQUFBQSxJQUFBQSxDQUFBQSxLQUFBQSxFQUFBQSxNQUFBQSxHQUFBQSxDQUFBQSxHQUNELEtBQUEsR0FBQSxDQURDQSxLQUNELENBRENBLEdBRURvQixRQUZOLE9BRU1BLEVBRk47QUFHSDtBQTdCSTtBQWhCYSxDQUExQmxCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgY29tcG9uZW50XzEgPSByZXF1aXJlKFwiLi4vY29tbW9uL2NvbXBvbmVudFwiKTtcbmNvbXBvbmVudF8xLlZhbnRDb21wb25lbnQoe1xuICAgIHByb3BzOiB7XG4gICAgICAgIGluZm86IG51bGwsXG4gICAgICAgIGljb246IFN0cmluZyxcbiAgICAgICAgZG90OiBCb29sZWFuLFxuICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlbGF0aW9uOiB7XG4gICAgICAgIG5hbWU6ICd0YWJiYXInLFxuICAgICAgICB0eXBlOiAnYW5jZXN0b3InXG4gICAgfSxcbiAgICBkYXRhOiB7XG4gICAgICAgIGFjdGl2ZTogZmFsc2VcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgb25DbGljazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQub25DaGFuZ2UodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLiRlbWl0KCdjbGljaycpO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVGcm9tUGFyZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnQ7XG4gICAgICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpO1xuICAgICAgICAgICAgdmFyIHBhcmVudERhdGEgPSBwYXJlbnQuZGF0YTtcbiAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IChkYXRhLm5hbWUgfHwgaW5kZXgpID09PSBwYXJlbnREYXRhLmFjdGl2ZTtcbiAgICAgICAgICAgIHZhciBwYXRjaCA9IHt9O1xuICAgICAgICAgICAgaWYgKGFjdGl2ZSAhPT0gZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBwYXRjaC5hY3RpdmUgPSBhY3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyZW50RGF0YS5hY3RpdmVDb2xvciAhPT0gZGF0YS5hY3RpdmVDb2xvcikge1xuICAgICAgICAgICAgICAgIHBhdGNoLmFjdGl2ZUNvbG9yID0gcGFyZW50RGF0YS5hY3RpdmVDb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJlbnREYXRhLmluYWN0aXZlQ29sb3IgIT09IGRhdGEuaW5hY3RpdmVDb2xvcikge1xuICAgICAgICAgICAgICAgIHBhdGNoLmluYWN0aXZlQ29sb3IgPSBwYXJlbnREYXRhLmluYWN0aXZlQ29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocGF0Y2gpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IHRoaXMuc2V0KHBhdGNoKVxuICAgICAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJmaWxlIjoiaW5kZXguanMifQ==
  72. export default global['__wxComponents']['vant/tabbar-item/index']
  73. </script>
  74. <style platform="mp-weixin">
  75. @import '../common/index.css';.vant-tabbar-item-index{-webkit-flex:1;flex:1}.van-tabbar-item{color:#7d7e80;height:100%;display:-webkit-flex;display:flex;line-height:1;font-size:12px;-webkit-align-items:center;align-items:center;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center}.van-tabbar-item__icon{font-size:18px;margin-bottom:5px;position:relative}.van-tabbar-item__icon--dot:after{top:0;right:-8px;width:8px;height:8px;content:" ";position:absolute;border-radius:100%;background-color:#f44}.van-tabbar-item__icon image{width:30px;height:18px;display:block}.van-tabbar-item--active{color:#1989fa}
  76. </style>