mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 02:26:28 +08:00
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { onMounted, onUnmounted, provide, ref } from 'vue';
|
||
import { useLayoutStore } from '@/store';
|
||
import { getAppId } from '../utils';
|
||
|
||
// 屏幕宽度分界值,影响整体样式
|
||
const WIDTH = 1900;
|
||
|
||
const documentClientHeight = ref(0);
|
||
|
||
/**
|
||
* 在最顶层使用该hook,一方面监听窗口大小变化,同时向下面提供一个计算属性
|
||
*/
|
||
export const useWindowResize = () => {
|
||
const windowResize = () => {
|
||
documentClientHeight.value = document.documentElement.clientHeight;
|
||
if (window.innerWidth <= WIDTH) {
|
||
layoutStore.defaultFormItemSize = 'default';
|
||
document.body.className = 'orange-project container-default';
|
||
} else {
|
||
layoutStore.defaultFormItemSize = 'default';
|
||
document.body.className = 'orange-project container-default';
|
||
}
|
||
|
||
layoutStore.documentClientHeight = document.documentElement.clientHeight;
|
||
layoutStore.mainContextHeight = mainContextHeight.value;
|
||
};
|
||
|
||
const layoutStore = useLayoutStore();
|
||
const mainContextHeight = computed(() => {
|
||
const appId = getAppId();
|
||
if (appId == null) {
|
||
return documentClientHeight.value - (layoutStore.supportTags ? 110 : 60);
|
||
} else {
|
||
return documentClientHeight.value;
|
||
}
|
||
});
|
||
|
||
provide('documentClientHeight', documentClientHeight);
|
||
provide('mainContextHeight', mainContextHeight);
|
||
|
||
onMounted(() => {
|
||
windowResize();
|
||
window.addEventListener('resize', windowResize);
|
||
});
|
||
|
||
onUnmounted(() => {
|
||
window.removeEventListener('resize', windowResize);
|
||
});
|
||
};
|