Blame view
src/views/tab/index.vue
1.4 KB
d7d9c38c2 auto commit the c... |
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 55 56 57 |
<template> <div class="tab-container"> <el-tag>mounted times :{{ createdTimes }}</el-tag> <el-alert :closable="false" style="width:200px;display:inline-block;vertical-align: middle;margin-left:30px;" title="Tab with keep-alive" type="success" /> <el-tabs v-model="activeName" style="margin-top:15px;" type="border-card"> <el-tab-pane v-for="item in tabMapOptions" :key="item.key" :label="item.label" :name="item.key"> <keep-alive> <tab-pane v-if="activeName==item.key" :type="item.key" @create="showCreatedTimes" /> </keep-alive> </el-tab-pane> </el-tabs> </div> </template> <script> import tabPane from './components/TabPane' export default { name: 'Tab', components: { tabPane }, data() { return { tabMapOptions: [ { label: 'China', key: 'CN' }, { label: 'USA', key: 'US' }, { label: 'Japan', key: 'JP' }, { label: 'Eurozone', key: 'EU' } ], activeName: 'CN', createdTimes: 0 } }, watch: { activeName(val) { this.$router.push(`${this.$route.path}?tab=${val}`) } }, created() { // init the default selected tab const tab = this.$route.query.tab if (tab) { this.activeName = tab } }, methods: { showCreatedTimes() { this.createdTimes = this.createdTimes + 1 } } } </script> <style scoped> .tab-container { margin: 30px; } </style> |