|
@@ -1,6 +1,6 @@
|
|
|
import './index.less';
|
|
|
|
|
|
-import { defineComponent, unref, computed, ref } from 'vue';
|
|
|
+import { defineComponent, unref, computed, ref, nextTick } from 'vue';
|
|
|
|
|
|
import { Layout, Tooltip, Badge } from 'ant-design-vue';
|
|
|
import { AppLogo } from '/@/components/Application';
|
|
@@ -39,8 +39,8 @@ export default defineComponent({
|
|
|
setup() {
|
|
|
let logoEl: Element | null;
|
|
|
|
|
|
- const widthRef = ref(200);
|
|
|
-
|
|
|
+ const logoWidthRef = ref(200);
|
|
|
+ const logoRef = ref<any>(null);
|
|
|
const { refreshPage } = useTabs();
|
|
|
|
|
|
const { getShowTopMenu, getShowHeaderTrigger, getSplit, getTopMenuAlign } = useMenuSetting();
|
|
@@ -64,15 +64,17 @@ export default defineComponent({
|
|
|
|
|
|
useWindowSizeFn(
|
|
|
() => {
|
|
|
- if (!unref(getShowTopMenu)) return;
|
|
|
- let width = 0;
|
|
|
- if (!logoEl) {
|
|
|
- logoEl = document.querySelector('.layout-header__logo');
|
|
|
- }
|
|
|
- if (logoEl) {
|
|
|
- width += logoEl.clientWidth;
|
|
|
- }
|
|
|
- widthRef.value = width + 60;
|
|
|
+ nextTick(() => {
|
|
|
+ if (!unref(getShowTopMenu)) return;
|
|
|
+ let width = 0;
|
|
|
+ if (!logoEl) {
|
|
|
+ logoEl = logoRef.value.$el;
|
|
|
+ }
|
|
|
+ if (logoEl) {
|
|
|
+ width += logoEl.clientWidth;
|
|
|
+ }
|
|
|
+ logoWidthRef.value = width + 80;
|
|
|
+ });
|
|
|
},
|
|
|
200,
|
|
|
{ immediate: true }
|
|
@@ -105,11 +107,11 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
function renderHeaderContent() {
|
|
|
- const width = unref(widthRef);
|
|
|
+ const width = unref(logoWidthRef);
|
|
|
return (
|
|
|
<div class="layout-header__content ">
|
|
|
{unref(getShowHeaderLogo) && (
|
|
|
- <AppLogo class={`layout-header__logo`} theme={unref(getTheme)} />
|
|
|
+ <AppLogo class={`layout-header__logo`} ref={logoRef} theme={unref(getTheme)} />
|
|
|
)}
|
|
|
|
|
|
{unref(getShowContent) && (
|