Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 7x 7x 7x | <template>
<div :class="$style.root" v-show="selected" vusion-slot-name="default" :vusion-disabled-selected="true">
<slot></slot>
<s-empty v-if="!$slots.default && $env.VUE_APP_DESIGNER && !!$attrs['vusion-node-path']"></s-empty>
</div>
</template>
<script>
import { MSinglexItem } from '../m-singlex.vue';
import SEmpty from '../s-empty.vue';
export default {
name: 'u-tab',
parentName: 'u-tabs',
components: { SEmpty },
extends: MSinglexItem,
props: {
title: String,
/* @TODO: Remove this option */
hidden: {
type: Boolean,
default: false,
},
closable: { type: Boolean, default: false },
showTabItem: { type: Boolean, default: true },
},
computed: {
selected() {
// console.log('tab', this.parentVM, this.active);
return this.parentVM && (this.parentVM.router ? this.active : this.parentVM.selectedVM === this);
},
},
updated() {
// IDE里组件放入title插槽后没有重新渲染,这里强制渲染
if (this.$env.VUE_APP_DESIGNER) {
if (this.parentVM) {
this.parentVM.$forceUpdate();
}
}
},
methods: {
designerControl() {
this.parentVM.select(this);
},
},
};
</script>
<style module>
.root {
height: 100%;
}
</style>
|