index.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import './index.less';
  2. import { defineComponent, unref, computed } from 'vue';
  3. import { FullLoading } from '/@/components/Loading/index';
  4. import { RouterView } from 'vue-router';
  5. import { useRootSetting } from '/@/hooks/setting/useRootSetting';
  6. import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
  7. import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
  8. export default defineComponent({
  9. name: 'LayoutContent',
  10. setup() {
  11. const { getOpenPageLoading } = useTransitionSetting();
  12. const { getShowMultipleTab } = useMultipleTabSetting();
  13. const { getLayoutContentMode, getPageLoading } = useRootSetting();
  14. const getLoadingClass = computed(() => {
  15. return [
  16. `layout-content__loading`,
  17. { fill: unref(getShowMultipleTab), hidden: !unref(getPageLoading) },
  18. ];
  19. });
  20. return () => {
  21. return (
  22. <div class={['layout-content', unref(getLayoutContentMode)]}>
  23. {unref(getOpenPageLoading) && <FullLoading class={unref(getLoadingClass)} />}
  24. <RouterView />
  25. </div>
  26. );
  27. };
  28. },
  29. });