FullScreen.vue 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <template>
  2. <Tooltip :title="getTitle" placement="bottom" :mouseEnterDelay="0.5">
  3. <span @click="toggle">
  4. <FullscreenOutlined v-if="!isFullscreen" />
  5. <FullscreenExitOutlined v-else />
  6. </span>
  7. </Tooltip>
  8. </template>
  9. <script lang="ts">
  10. import { defineComponent, computed, unref } from 'vue';
  11. import { Tooltip } from 'ant-design-vue';
  12. import { useI18n } from '/@/hooks/web/useI18n';
  13. import { useFullscreen } from '@vueuse/core';
  14. import { FullscreenExitOutlined, FullscreenOutlined } from '@ant-design/icons-vue';
  15. export default defineComponent({
  16. name: 'FullScreen',
  17. components: { FullscreenExitOutlined, FullscreenOutlined, Tooltip },
  18. setup() {
  19. const { t } = useI18n();
  20. const { toggle, isFullscreen } = useFullscreen();
  21. const getTitle = computed(() => {
  22. return unref(isFullscreen)
  23. ? t('layout.header.tooltipExitFull')
  24. : t('layout.header.tooltipEntryFull');
  25. });
  26. return {
  27. getTitle,
  28. isFullscreen,
  29. toggle,
  30. };
  31. },
  32. });
  33. </script>