12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <script lang="tsx">
- import { defineComponent, computed } from 'vue'
- import { Collapse } from '@/components/Collapse'
- import { LocaleDropdown } from '@/components/LocaleDropdown'
- import { SizeDropdown } from '@/components/SizeDropdown'
- import { UserInfo } from '@/components/UserInfo'
- import { Screenfull } from '@/components/Screenfull'
- import { Breadcrumb } from '@/components/Breadcrumb'
- 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 size = computed(() => appStore.getSize)
- // 布局
- const layout = computed(() => appStore.getLayout)
- // 多语言图标
- const locale = computed(() => appStore.getLocale)
- 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'
- ]}
- >
- {layout.value !== 'top' ? (
- <div class="h-full flex items-center">
- {hamburger.value && layout.value !== 'cutMenu' ? (
- <Collapse class="hover-tigger" color="var(--top-header-text-color)"></Collapse>
- ) : undefined}
- {breadcrumb.value ? <Breadcrumb class="<md:hidden"></Breadcrumb> : undefined}
- </div>
- ) : undefined}
- <div class="h-full flex items-center">
- {screenfull.value ? (
- <Screenfull class="hover-tigger" color="var(--top-header-text-color)"></Screenfull>
- ) : undefined}
- {size.value ? (
- <SizeDropdown class="hover-tigger" color="var(--top-header-text-color)"></SizeDropdown>
- ) : undefined}
- {locale.value ? (
- <LocaleDropdown
- class="hover-tigger"
- color="var(--top-header-text-color)"
- ></LocaleDropdown>
- ) : undefined}
- <UserInfo class="hover-tigger"></UserInfo>
- </div>
- </div>
- )
- }
- })
- </script>
- <style lang="less" scoped>
- @prefix-cls: ~'@{namespace}-tool-header';
- .@{prefix-cls} {
- transition: left var(--transition-time-02);
- }
- </style>
|