|
@@ -2,7 +2,14 @@ import type { TabContentProps } from './tab.data';
|
|
|
import type { TabItem } from '/@/store/modules/tab';
|
|
|
import type { AppRouteRecordRaw } from '/@/router/types';
|
|
|
|
|
|
-import { defineComponent, watch, computed, ref, unref, onMounted } from 'vue';
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ watch,
|
|
|
+ computed,
|
|
|
+ // ref,
|
|
|
+ unref,
|
|
|
+ onMounted,
|
|
|
+} from 'vue';
|
|
|
import { Tabs } from 'ant-design-vue';
|
|
|
import TabContent from './TabContent';
|
|
|
|
|
@@ -12,41 +19,43 @@ import { TabContentEnum } from './tab.data';
|
|
|
|
|
|
import { useRouter } from 'vue-router';
|
|
|
|
|
|
-import './index.less';
|
|
|
import { tabStore } from '/@/store/modules/tab';
|
|
|
import { closeTab } from './useTabDropdown';
|
|
|
import router from '/@/router';
|
|
|
import { useTabs } from '/@/hooks/web/useTabs';
|
|
|
import { PageEnum } from '/@/enums/pageEnum';
|
|
|
|
|
|
+import './index.less';
|
|
|
export default defineComponent({
|
|
|
name: 'MultiTabs',
|
|
|
setup() {
|
|
|
let isAddAffix = false;
|
|
|
const go = useGo();
|
|
|
const { currentRoute } = useRouter();
|
|
|
-
|
|
|
+ const { addTab, activeKeyRef } = useTabs();
|
|
|
onMounted(() => {
|
|
|
- const { addTab } = useTabs();
|
|
|
addTab(unref(currentRoute).path as PageEnum);
|
|
|
});
|
|
|
|
|
|
// 当前激活tab
|
|
|
- const activeKeyRef = ref<string>('');
|
|
|
+ // const activeKeyRef = ref<string>('');
|
|
|
+
|
|
|
// 当前tab列表
|
|
|
const getTabsState = computed(() => {
|
|
|
return tabStore.getTabsState;
|
|
|
});
|
|
|
|
|
|
+ if (!isAddAffix) {
|
|
|
+ addAffixTabs();
|
|
|
+ isAddAffix = true;
|
|
|
+ }
|
|
|
+
|
|
|
watch(
|
|
|
() => unref(currentRoute).path,
|
|
|
(path) => {
|
|
|
- if (!isAddAffix) {
|
|
|
- addAffixTabs();
|
|
|
- isAddAffix = true;
|
|
|
+ if (activeKeyRef.value !== path) {
|
|
|
+ activeKeyRef.value = path;
|
|
|
}
|
|
|
- activeKeyRef.value = path;
|
|
|
-
|
|
|
// 监听路由的话虽然可以,但是路由切换的时间会造成卡顿现象?
|
|
|
// 使用useTab的addTab的话,当用户手动调转,需要自行调用addTab
|
|
|
// tabStore.commitAddTab((unref(currentRoute) as unknown) as AppRouteRecordRaw);
|
|
@@ -55,6 +64,7 @@ export default defineComponent({
|
|
|
immediate: true,
|
|
|
}
|
|
|
);
|
|
|
+
|
|
|
/**
|
|
|
* @description: 过滤所有固定路由
|
|
|
*/
|
|
@@ -72,6 +82,7 @@ export default defineComponent({
|
|
|
});
|
|
|
return tabs;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* @description: 设置固定tabs
|
|
|
*/
|
|
@@ -87,6 +98,7 @@ export default defineComponent({
|
|
|
activeKeyRef.value = activeKey;
|
|
|
go(activeKey, false);
|
|
|
}
|
|
|
+
|
|
|
// 关闭当前ab
|
|
|
function handleEdit(targetKey: string) {
|
|
|
// 新增操作隐藏,目前只使用删除操作
|