Browse Source

feat: script setup

main
xingyuv 2 years ago
parent
commit
3eaa81ff19
  1. 58
      src/layouts/default/feature/index.vue

58
src/layouts/default/feature/index.vue

@ -1,5 +1,11 @@
<script lang="ts"> <template>
import { defineComponent, computed, unref } from 'vue' <LayoutLockPage />
<BackTop v-if="getUseOpenBackTop" :target="getTarget" />
<SettingDrawer v-if="getIsFixedSettingDrawer" :class="prefixCls" />
<SessionTimeoutLogin v-if="getIsSessionTimeout" />
</template>
<script lang="ts" setup name="LayoutFeatures">
import { computed, unref } from 'vue'
import { BackTop } from 'ant-design-vue' import { BackTop } from 'ant-design-vue'
import { useRootSetting } from '@/hooks/setting/useRootSetting' import { useRootSetting } from '@/hooks/setting/useRootSetting'
@ -10,24 +16,22 @@ import { useUserStoreWithOut } from '@/store/modules/user'
import { SettingButtonPositionEnum } from '@/enums/appEnum' import { SettingButtonPositionEnum } from '@/enums/appEnum'
import { createAsyncComponent } from '@/utils/factory/createAsyncComponent' import { createAsyncComponent } from '@/utils/factory/createAsyncComponent'
import SessionTimeoutLogin from '@/views/base/login/SessionTimeoutLogin.vue' import SessionTimeoutLogin from '@/views/sys/login/SessionTimeoutLogin.vue'
export default defineComponent({
name: 'LayoutFeatures',
components: {
BackTop,
LayoutLockPage: createAsyncComponent(() => import('@/views/base/lock/index.vue')),
SettingDrawer: createAsyncComponent(() => import('@/layouts/default/setting/index.vue')),
SessionTimeoutLogin
},
setup() {
const { getUseOpenBackTop, getShowSettingButton, getSettingButtonPosition, getFullContent } = useRootSetting()
const userStore = useUserStoreWithOut()
const { prefixCls } = useDesign('setting-drawer-feature')
const { getShowHeader } = useHeaderSetting()
const getIsSessionTimeout = computed(() => userStore.getSessionTimeout) const LayoutLockPage = createAsyncComponent(() => import('@/views/sys/lock/index.vue'))
const getIsFixedSettingDrawer = computed(() => { const SettingDrawer = createAsyncComponent(() => import('@/layouts/default/setting/index.vue'))
const { getUseOpenBackTop, getShowSettingButton, getSettingButtonPosition, getFullContent } = useRootSetting()
const userStore = useUserStoreWithOut()
const { prefixCls } = useDesign('setting-drawer-feature')
const { getShowHeader } = useHeaderSetting()
const getTarget = () => document.body
const getIsSessionTimeout = computed(() => userStore.getSessionTimeout)
const getIsFixedSettingDrawer = computed(() => {
if (!unref(getShowSettingButton)) { if (!unref(getShowSettingButton)) {
return false return false
} }
@ -37,26 +41,8 @@ export default defineComponent({
return !unref(getShowHeader) || unref(getFullContent) return !unref(getShowHeader) || unref(getFullContent)
} }
return settingButtonPosition === SettingButtonPositionEnum.FIXED return settingButtonPosition === SettingButtonPositionEnum.FIXED
})
return {
getTarget: () => document.body,
getUseOpenBackTop,
getIsFixedSettingDrawer,
prefixCls,
getIsSessionTimeout
}
}
}) })
</script> </script>
<template>
<LayoutLockPage />
<BackTop v-if="getUseOpenBackTop" :target="getTarget" />
<SettingDrawer v-if="getIsFixedSettingDrawer" :class="prefixCls" />
<SessionTimeoutLogin v-if="getIsSessionTimeout" />
</template>
<style lang="less"> <style lang="less">
@prefix-cls: ~'@{namespace}-setting-drawer-feature'; @prefix-cls: ~'@{namespace}-setting-drawer-feature';