@@ -39,14 +39,18 @@ interface Props {
closable?: boolean;
/** 暗黑模式 */
darkMode?: boolean;
+ /** 是否是最后一个 */
+ isLast: boolean;
}
withDefaults(defineProps
(), {
isActive: false,
primaryColor: '#409EFF',
closable: true,
- darkMode: false
+ darkMode: false,
+ isLast: false
});
+
const emit = defineEmits<{
/** 点击关闭图标 */
(e: 'close'): void;
diff --git a/src/interface/common/expose.ts b/src/interface/common/expose.ts
new file mode 100644
index 00000000..4c9bce76
--- /dev/null
+++ b/src/interface/common/expose.ts
@@ -0,0 +1,7 @@
+import type { Ref } from 'vue';
+import BScroll from '@better-scroll/core';
+
+/** BetterScroll暴露出的数据的类型 */
+export interface ExposeBetterScroll {
+ bsInstance: Ref;
+}
diff --git a/src/interface/common/index.ts b/src/interface/common/index.ts
index 6edd438d..6c6a05af 100644
--- a/src/interface/common/index.ts
+++ b/src/interface/common/index.ts
@@ -1,5 +1,6 @@
export * from './theme';
export * from './system';
export * from './route';
+export * from './expose';
export * from './service';
export * from './api';
diff --git a/src/layouts/common/GlobalTab/components/MultiTab/index.vue b/src/layouts/common/GlobalTab/components/MultiTab/index.vue
index 33f5ebfb..7c940b72 100644
--- a/src/layouts/common/GlobalTab/components/MultiTab/index.vue
+++ b/src/layouts/common/GlobalTab/components/MultiTab/index.vue
@@ -1,13 +1,14 @@
@@ -48,6 +49,12 @@ import { useBoolean } from '@/hooks';
import { setTabRouteStorage } from '@/utils';
import { ContextMenu } from './components';
+interface Emits {
+ (e: 'scroll', clientX: number): void;
+}
+
+const emit = defineEmits();
+
const theme = useThemeStore();
const app = useAppStore();
const { removeMultiTab, handleClickTab } = useAppStore();
@@ -62,6 +69,11 @@ function setDropdownConfig(x: number, y: number, currentPath: string) {
Object.assign(dropdownConfig, { x, y, currentPath });
}
+function handleClickChromeTab(e: MouseEvent, fullPath: string) {
+ emit('scroll', e.clientX);
+ handleClickTab(fullPath);
+}
+
function handleContextMenu(e: MouseEvent, fullPath: string) {
e.preventDefault();
const { clientX, clientY } = e;
diff --git a/src/layouts/common/GlobalTab/index.vue b/src/layouts/common/GlobalTab/index.vue
index 7fafaf2e..7e9b9543 100644
--- a/src/layouts/common/GlobalTab/index.vue
+++ b/src/layouts/common/GlobalTab/index.vue
@@ -1,8 +1,8 @@
-
-
-
+
+
+
@@ -10,10 +10,13 @@