Screenfull.vue 681 B

123456789101112131415161718192021222324252627282930
  1. <script lang="ts" name="ScreenFull" setup>
  2. import { Icon } from '@/components/Icon'
  3. import { useFullscreen } from '@vueuse/core'
  4. import { propTypes } from '@/utils/propTypes'
  5. import { useDesign } from '@/hooks/web/useDesign'
  6. const { getPrefixCls } = useDesign()
  7. const prefixCls = getPrefixCls('screenfull')
  8. defineProps({
  9. color: propTypes.string.def('')
  10. })
  11. const { toggle, isFullscreen } = useFullscreen()
  12. const toggleFullscreen = () => {
  13. toggle()
  14. }
  15. </script>
  16. <template>
  17. <div :class="prefixCls" @click="toggleFullscreen">
  18. <Icon
  19. :color="color"
  20. :icon="isFullscreen ? 'zmdi:fullscreen-exit' : 'zmdi:fullscreen'"
  21. :size="18"
  22. />
  23. </div>
  24. </template>