12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <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>
|