You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
10 months ago
|
<template>
|
||
|
<uni-shadow-root class="vant-tab-index"><view :class="'custom-class '+(utils.bem('tab__pane', { active, inactive: !active }))" :style="shouldShow ? '' : 'display: none;'">
|
||
|
<slot v-if="shouldRender"></slot>
|
||
|
</view></uni-shadow-root>
|
||
|
</template>
|
||
|
<wxs src="../wxs/utils.wxs" module="utils"></wxs>
|
||
|
<script>
|
||
|
|
||
|
global['__wxRoute'] = 'vant/tab/index'
|
||
|
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();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
export default global['__wxComponents']['vant/tab/index']
|
||
|
</script>
|
||
|
<style platform="mp-weixin">
|
||
|
@import '../common/index.css';.vant-tab-index{-webkit-flex-shrink:0;flex-shrink:0;width:100%}.van-tab__pane,:host{box-sizing:border-box}.van-tab__pane{overflow-y:auto}.van-tab__pane--active{height:auto}.van-tab__pane--inactive{height:0;overflow:visible}
|
||
|
</style>
|