|
@@ -28,7 +28,7 @@
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
import { RouteLocationNormalized, RouteMeta, useRoute } from 'vue-router';
|
|
import { RouteLocationNormalized, RouteMeta, useRoute } from 'vue-router';
|
|
|
|
|
|
|
|
- import { defineComponent, computed, unref, ref, onMounted, onBeforeUnmount } from 'vue';
|
|
|
|
|
|
|
+ import { defineComponent, computed, unref, ref } from 'vue';
|
|
|
|
|
|
|
|
import { Tabs } from 'ant-design-vue';
|
|
import { Tabs } from 'ant-design-vue';
|
|
|
import TabContent from './components/TabContent.vue';
|
|
import TabContent from './components/TabContent.vue';
|
|
@@ -89,25 +89,6 @@
|
|
|
];
|
|
];
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- // 页签栏内容超出宽度时用滚轮横向滚动;rc-tabs 自带的 wheel 监听在页签重渲染后会丢失,这里自行接管
|
|
|
|
|
- function handleTabsWheel(e: WheelEvent) {
|
|
|
|
|
- const wrap = tabsRootRef.value?.querySelector<HTMLElement>('.ant-tabs-nav-wrap');
|
|
|
|
|
- if (!wrap || !(e.target instanceof Node) || !wrap.contains(e.target)) return;
|
|
|
|
|
- if (wrap.scrollWidth <= wrap.clientWidth) return;
|
|
|
|
|
- const delta = Math.abs(e.deltaY) >= Math.abs(e.deltaX) ? e.deltaY : e.deltaX;
|
|
|
|
|
- if (!delta) return;
|
|
|
|
|
- e.preventDefault();
|
|
|
|
|
- wrap.scrollLeft += delta * (e.deltaMode === 1 ? 16 : 1);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- onMounted(() => {
|
|
|
|
|
- tabsRootRef.value?.addEventListener('wheel', handleTabsWheel, { passive: false });
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- onBeforeUnmount(() => {
|
|
|
|
|
- tabsRootRef.value?.removeEventListener('wheel', handleTabsWheel);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
listenerRouteChange((route) => {
|
|
listenerRouteChange((route) => {
|
|
|
const { name } = route;
|
|
const { name } = route;
|
|
|
// if (name === REDIRECT_NAME || !route || !userStore.getToken) {
|
|
// if (name === REDIRECT_NAME || !route || !userStore.getToken) {
|