index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. var _component = require("../common/component");
  3. (0, _component.VantComponent)({
  4. props: {
  5. info: null,
  6. name: null,
  7. icon: String,
  8. dot: Boolean,
  9. iconPrefix: {
  10. type: String,
  11. value: "van-icon"
  12. }
  13. },
  14. relation: {
  15. name: "tabbar",
  16. type: "ancestor",
  17. current: "tabbar-item"
  18. },
  19. data: {
  20. active: false
  21. },
  22. methods: {
  23. onClick: function onClick() {
  24. var parent = this.parent;
  25. if (parent) {
  26. var index = parent.children.indexOf(this);
  27. var active = this.data.name || index;
  28. if (active !== this.data.active) {
  29. parent.$emit("change", active);
  30. }
  31. }
  32. this.$emit("click");
  33. },
  34. updateFromParent: function updateFromParent() {
  35. var parent = this.parent;
  36. if (!parent) {
  37. return;
  38. }
  39. var index = parent.children.indexOf(this);
  40. var parentData = parent.data;
  41. var data = this.data;
  42. var active = (data.name || index) === parentData.active;
  43. var patch = {};
  44. if (active !== data.active) {
  45. patch.active = active;
  46. }
  47. if (parentData.activeColor !== data.activeColor) {
  48. patch.activeColor = parentData.activeColor;
  49. }
  50. if (parentData.inactiveColor !== data.inactiveColor) {
  51. patch.inactiveColor = parentData.inactiveColor;
  52. }
  53. if (Object.keys(patch).length > 0) {
  54. this.setData(patch);
  55. }
  56. }
  57. }
  58. });