1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { VantComponent } from '../common/component';
- VantComponent({
- props: {
- info: null,
- icon: String,
- dot: Boolean,
- name: {
- type: [String, Number]
- }
- },
- relation: {
- name: 'tabbar',
- type: 'ancestor'
- },
- data: {
- active: false
- },
- methods: {
- onClick() {
- if (this.parent) {
- this.parent.onChange(this);
- }
- this.$emit('click');
- },
- updateFromParent() {
- const { parent } = this;
- if (!parent) {
- return;
- }
- const index = parent.children.indexOf(this);
- const parentData = parent.data;
- const { data } = this;
- const active = (data.name || index) === parentData.active;
- const patch = {};
- if (active !== data.active) {
- patch.active = active;
- }
- if (parentData.activeColor !== data.activeColor) {
- patch.activeColor = parentData.activeColor;
- }
- if (parentData.inactiveColor !== data.inactiveColor) {
- patch.inactiveColor = parentData.inactiveColor;
- }
- return Object.keys(patch).length > 0
- ? this.set(patch)
- : Promise.resolve();
- }
- }
- });
|