57 lines
1.3 KiB
JavaScript
57 lines
1.3 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();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|