|
@@ -3,12 +3,17 @@
|
|
<v-header />
|
|
<v-header />
|
|
<v-sidetree />
|
|
<v-sidetree />
|
|
<div class="content-box" :class="{ 'content-collapse': collapse }">
|
|
<div class="content-box" :class="{ 'content-collapse': collapse }">
|
|
|
|
+ <el-tabs type="card" v-model="activeTab" closable class="tabWrap" @tab-remove="removeTabHandle">
|
|
|
|
+ <el-tab-pane v-for="(item, index) in menuTabs" :key="item.name" :label="item.title" :name="item.name">
|
|
|
|
+ <el-icon><User/></el-icon>{{item.content}}
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
- import { computed } from "vue"
|
|
|
|
|
|
+ import { watch,ref } from "vue"
|
|
|
|
|
|
import vHeader from "../components/Header.vue"
|
|
import vHeader from "../components/Header.vue"
|
|
import vSidetree from "../components/Sidetree.vue"
|
|
import vSidetree from "../components/Sidetree.vue"
|
|
@@ -25,8 +30,64 @@
|
|
*/
|
|
*/
|
|
|
|
|
|
const store=useHomeStore()
|
|
const store=useHomeStore()
|
|
- const { collapse } = storeToRefs(store)
|
|
|
|
|
|
+ const { collapse ,currentMenu,menuTabs,activeTab} = storeToRefs(store)
|
|
|
|
+
|
|
|
|
+ /* let origTabs=[{
|
|
|
|
+ title: 'Tab 1',
|
|
|
|
+ name: '1',
|
|
|
|
+ content: 'Tab 1 content',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: 'Tab 2',
|
|
|
|
+ name: '2',
|
|
|
|
+ content: 'Tab 2 content',
|
|
|
|
+ }
|
|
|
|
+ ] */
|
|
|
|
+
|
|
|
|
+ /* const activeTabVal=ref('')
|
|
|
|
+ const tabs=ref(origTabs)
|
|
|
|
+
|
|
|
|
+ const addTab=(opt) =>{
|
|
|
|
+ tabs.value.push({
|
|
|
|
+ title: 'Tab 3',
|
|
|
|
+ name: '3',
|
|
|
|
+ content: 'Tab 3 content',
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ } */
|
|
|
|
+
|
|
|
|
+ const removeTabHandle=(tabId)=>{
|
|
|
|
+ store.closeTab(tabId)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ watch(currentMenu,async(newMenu,oldMenu) => {
|
|
|
|
+
|
|
|
|
+ /* tabs.value.push({
|
|
|
|
+ title: newMenu.menuName,
|
|
|
|
+ name: newMenu.menuId,
|
|
|
|
+ content: newMenu.menuName
|
|
|
|
+ }); */
|
|
|
|
+ store.addTab(newMenu)
|
|
|
|
+ })
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|
|
|
|
+ .tabWrap{
|
|
|
|
+ height:100%;
|
|
|
|
+ }
|
|
|
|
+ .tabWrap:deep(.el-tabs__content){
|
|
|
|
+ height: calc(100% - 58px);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .content-box:deep(.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close){
|
|
|
|
+ top:-10px !important;
|
|
|
|
+ right:-10px !important;
|
|
|
|
+ /* width:14px; */
|
|
|
|
+ /* visibility: hidden; */
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* .content-box:deep(.el-tabs--card>.el-tabs__header .el-tabs__item:hover){
|
|
|
|
+ padding:0 20px;
|
|
|
|
+ } */
|
|
</style>
|
|
</style>
|