|
@@ -5,7 +5,11 @@
|
|
|
<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}}
|
|
|
+ <transition name="fade">
|
|
|
+ <component :is="item.content"/>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <!-- <component :is="item.content"/> -->
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
@@ -13,63 +17,35 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
- import { watch,ref } from "vue"
|
|
|
+ import { watch,ref,markRaw} from "vue"
|
|
|
|
|
|
import vHeader from "../components/Header.vue"
|
|
|
import vSidetree from "../components/Sidetree.vue"
|
|
|
- //import vTags from "../components/Tags.vue";
|
|
|
import { storeToRefs } from 'pinia'
|
|
|
import { useHomeStore } from "../store/home.js"
|
|
|
|
|
|
- /*
|
|
|
- const store = useStore();
|
|
|
- const tagsList = computed(() =>
|
|
|
- store.state.tagsList.map((item) => item.name)
|
|
|
- );
|
|
|
- const collapse = computed(() => store.state.collapse);
|
|
|
- */
|
|
|
-
|
|
|
- const store=useHomeStore()
|
|
|
- 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 store=useHomeStore()
|
|
|
+ const { collapse ,currentMenu,menuTabs,activeTab} = storeToRefs(store)
|
|
|
|
|
|
- /* 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)=>{
|
|
|
+ const removeTabHandle=(tabId)=>{
|
|
|
store.closeTab(tabId)
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
watch(currentMenu,async(newMenu,oldMenu) => {
|
|
|
+ loadMenuPage(newMenu.menuLink).then(component => {
|
|
|
+ console.log(component)
|
|
|
+ newMenu["content"]=markRaw(component.default)
|
|
|
+ store.addTab(newMenu)
|
|
|
+ })
|
|
|
+
|
|
|
|
|
|
- /* tabs.value.push({
|
|
|
- title: newMenu.menuName,
|
|
|
- name: newMenu.menuId,
|
|
|
- content: newMenu.menuName
|
|
|
- }); */
|
|
|
- store.addTab(newMenu)
|
|
|
})
|
|
|
+
|
|
|
+ const loadMenuPage=(val)=>import(`/src/pages/${val}`)
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|