From 1293a7389ea797b1c1dad62e06657c846b1dcb3c Mon Sep 17 00:00:00 2001 From: vben Date: Sun, 13 Dec 2020 00:22:30 +0800 Subject: [PATCH] fix: fix modal and drawer component missing uid --- CHANGELOG.zh_CN.md | 1 + src/components/Application/index.ts | 4 +++- src/components/Drawer/src/useDrawer.ts | 2 +- src/components/Modal/src/useModal.ts | 6 ++++-- src/layouts/default/header/LayoutMultipleHeader.less | 5 +++-- src/layouts/default/index.less | 2 +- src/layouts/default/sider/index.less | 2 +- 7 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 08115f3b..55e6ffd3 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -22,6 +22,7 @@ - 修复 axios 大小写问题 - 修复按钮样式问题 - 修复菜单分割模式问题 +- 修复 `Modal`与`Drawer`组件在使用 emits 数据传递失效问题 ## 2.0.0-rc.13 (2020-12-10) diff --git a/src/components/Application/index.ts b/src/components/Application/index.ts index 57074ccc..983b4cfd 100644 --- a/src/components/Application/index.ts +++ b/src/components/Application/index.ts @@ -1,5 +1,6 @@ import { withInstall } from '../util'; import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; +import AppLogo from './src/AppLogo.vue'; export const AppLocalePicker = createAsyncComponent(() => import('./src/AppLocalePicker.vue'), { loading: true, @@ -8,8 +9,9 @@ export const AppProvider = createAsyncComponent(() => import('./src/AppProvider. export const AppSearch = createAsyncComponent(() => import('./src/search/AppSearch.vue'), { loading: true, }); -export const AppLogo = createAsyncComponent(() => import('./src/AppLogo.vue')); +// export const AppLogo = createAsyncComponent(() => import('./src/AppLogo.vue')); withInstall(AppLocalePicker, AppLogo, AppProvider, AppSearch); export { useAppProviderContext } from './src/useAppContext'; +export { AppLogo }; diff --git a/src/components/Drawer/src/useDrawer.ts b/src/components/Drawer/src/useDrawer.ts index de7719f0..1781bea5 100644 --- a/src/components/Drawer/src/useDrawer.ts +++ b/src/components/Drawer/src/useDrawer.ts @@ -102,7 +102,7 @@ export const useDrawerInner = (callbackFn?: Fn): UseDrawerInnerReturnType => { uidRef.value = uuid; drawerInstanceRef.value = modalInstance; - currentInstall.emit('register', modalInstance); + currentInstall.emit('register', modalInstance, uuid); }; watchEffect(() => { diff --git a/src/components/Modal/src/useModal.ts b/src/components/Modal/src/useModal.ts index c1e7a634..05de3076 100644 --- a/src/components/Modal/src/useModal.ts +++ b/src/components/Modal/src/useModal.ts @@ -90,6 +90,9 @@ export const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => { throw new Error('instance is undefined!'); } + // currentInstall.type.emits = [...currentInstall.type.emits, 'register']; + // Object.assign(currentInstall.type.emits, ['register']); + const getInstance = () => { const instance = unref(modalInstanceRef); if (!instance) { @@ -103,10 +106,9 @@ export const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => { tryOnUnmounted(() => { modalInstanceRef.value = null; }); - uidRef.value = uuid; modalInstanceRef.value = modalInstance; - currentInstall.emit('register', modalInstance); + currentInstall.emit('register', modalInstance, uuid); }; watchEffect(() => { diff --git a/src/layouts/default/header/LayoutMultipleHeader.less b/src/layouts/default/header/LayoutMultipleHeader.less index 138ef48b..e460c1d3 100644 --- a/src/layouts/default/header/LayoutMultipleHeader.less +++ b/src/layouts/default/header/LayoutMultipleHeader.less @@ -1,9 +1,10 @@ .multiple-tab-header { - flex: 0 0 auto; + margin-left: 1px; transition: width 0.2s; + flex: 0 0 auto; &.dark { - margin-left: -1px; + margin-left: 0; } &.fixed { diff --git a/src/layouts/default/index.less b/src/layouts/default/index.less index 014b6703..8ea4aeb0 100644 --- a/src/layouts/default/index.less +++ b/src/layouts/default/index.less @@ -12,6 +12,6 @@ } &__main { - margin-left: 2px; + margin-left: 1px; } } diff --git a/src/layouts/default/sider/index.less b/src/layouts/default/sider/index.less index 9f8ca4c1..c1a254b0 100644 --- a/src/layouts/default/sider/index.less +++ b/src/layouts/default/sider/index.less @@ -25,7 +25,7 @@ } &:not(.ant-layout-sider-dark) { - box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05); + // box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05); .ant-layout-sider-trigger { color: @text-color-base; -- GitLab