57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
import { VantComponent } from '../common/component';
|
|
VantComponent({
|
|
relation: {
|
|
name: 'tabs',
|
|
type: 'ancestor',
|
|
linked(target) {
|
|
this.parent = target;
|
|
},
|
|
unlinked() {
|
|
this.parent = null;
|
|
}
|
|
},
|
|
props: {
|
|
dot: Boolean,
|
|
info: null,
|
|
title: String,
|
|
disabled: Boolean,
|
|
titleStyle: String,
|
|
name: {
|
|
type: [Number, String],
|
|
value: '',
|
|
}
|
|
},
|
|
data: {
|
|
active: false
|
|
},
|
|
watch: {
|
|
title: 'update',
|
|
disabled: 'update',
|
|
dot: 'update',
|
|
info: 'update',
|
|
titleStyle: 'update'
|
|
},
|
|
methods: {
|
|
getComputedName() {
|
|
if (this.data.name !== '') {
|
|
return this.data.name;
|
|
}
|
|
return this.index;
|
|
},
|
|
updateRender(active, parent) {
|
|
const { data: parentData } = parent;
|
|
this.inited = this.inited || active;
|
|
this.setData({
|
|
active,
|
|
shouldRender: this.inited || !parentData.lazyRender,
|
|
shouldShow: active || parentData.animated
|
|
});
|
|
},
|
|
update() {
|
|
if (this.parent) {
|
|
this.parent.updateTabs();
|
|
}
|
|
}
|
|
}
|
|
});
|