1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <script lang="tsx">
- import { defineComponent, computed } from 'vue'
- import { Message } from '@/layout/components//Message'
- import { Collapse } from '@/layout/components/Collapse'
- import { UserInfo } from '@/layout/components/UserInfo'
- import { Screenfull } from '@/layout/components/Screenfull'
- import { Breadcrumb } from '@/layout/components/Breadcrumb'
- import { SizeDropdown } from '@/layout/components/SizeDropdown'
- import { LocaleDropdown } from '@/layout/components/LocaleDropdown'
- import RouterSearch from '@/components/RouterSearch/index.vue'
- import { useAppStore } from '@/store/modules/app'
- import { useDesign } from '@/hooks/web/useDesign'
- const { getPrefixCls, variables } = useDesign()
- const prefixCls = getPrefixCls('tool-header')
- const appStore = useAppStore()
- // 面包屑
- const breadcrumb = computed(() => appStore.getBreadcrumb)
- // 折叠图标
- const hamburger = computed(() => appStore.getHamburger)
- // 全屏图标
- const screenfull = computed(() => appStore.getScreenfull)
- // 搜索图片
- const search = computed(() => appStore.search)
- // 尺寸图标
- const size = computed(() => appStore.getSize)
- // 布局
- const layout = computed(() => appStore.getLayout)
- // 多语言图标
- const locale = computed(() => appStore.getLocale)
- // 消息图标
- const message = computed(() => appStore.getMessage)
- export default defineComponent({
- name: 'ToolHeader',
- setup() {
- return () => (
- <div
- id={`${variables.namespace}-tool-header`}
- class={[
- prefixCls,
- 'h-[var(--top-tool-height)] relative px-[var(--top-tool-p-x)] flex items-center justify-between',
- 'dark:bg-[var(--el-bg-color)]'
- ]}
- >
- {layout.value !== 'top' ? (
- <div class="h-full flex items-center">
- {hamburger.value && layout.value !== 'cutMenu' ? (
- <Collapse class="custom-hover" color="var(--top-header-text-color)"></Collapse>
- ) : undefined}
- {breadcrumb.value ? <Breadcrumb class="lt-md:hidden"></Breadcrumb> : undefined}
- </div>
- ) : undefined}
- <div class="h-full flex items-center">
- {screenfull.value ? (
- <Screenfull class="custom-hover" color="var(--top-header-text-color)"></Screenfull>
- ) : undefined}
- {search.value ? <RouterSearch isModal={false} /> : undefined}
- {size.value ? (
- <SizeDropdown class="custom-hover" color="var(--top-header-text-color)"></SizeDropdown>
- ) : undefined}
- {locale.value ? (
- <LocaleDropdown
- class="custom-hover"
- color="var(--top-header-text-color)"
- ></LocaleDropdown>
- ) : undefined}
- {message.value ? (
- <Message class="custom-hover" color="var(--top-header-text-color)"></Message>
- ) : undefined}
- <UserInfo></UserInfo>
- </div>
- </div>
- )
- }
- })
- </script>
- <style lang="scss" scoped>
- $prefix-cls: #{$namespace}-tool-header;
- .#{$prefix-cls} {
- transition: left var(--transition-time-02);
- }
- </style>
|