Files
ipms-sjy/yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue

84 lines
2.5 KiB
Vue
Raw Normal View History

2022-07-18 19:06:37 +08:00
<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',
'dark:bg-[var(--el-bg-color)]'
]}
>
{layout.value !== 'top' ? (
<div class="h-full flex items-center">
{hamburger.value && layout.value !== 'cutMenu' ? (
2022-10-18 10:21:06 +08:00
<Collapse class="hover-trigger" color="var(--top-header-text-color)"></Collapse>
2022-07-18 19:06:37 +08:00
) : undefined}
{breadcrumb.value ? <Breadcrumb class="<md:hidden"></Breadcrumb> : undefined}
</div>
) : undefined}
<div class="h-full flex items-center">
{screenfull.value ? (
2022-10-18 10:21:06 +08:00
<Screenfull class="hover-trigger" color="var(--top-header-text-color)"></Screenfull>
2022-07-18 19:06:37 +08:00
) : undefined}
{size.value ? (
2022-10-18 10:21:06 +08:00
<SizeDropdown class="hover-trigger" color="var(--top-header-text-color)"></SizeDropdown>
2022-07-18 19:06:37 +08:00
) : undefined}
{locale.value ? (
<LocaleDropdown
2022-10-18 10:21:06 +08:00
class="hover-trigger"
2022-07-18 19:06:37 +08:00
color="var(--top-header-text-color)"
></LocaleDropdown>
) : undefined}
2022-10-18 10:21:06 +08:00
<UserInfo class="hover-trigger"></UserInfo>
2022-07-18 19:06:37 +08:00
</div>
</div>
)
}
})
</script>
2022-11-23 15:18:59 +08:00
<style lang="scss" scoped>
$prefix-cls: #{$namespace}-tool-header;
2022-07-18 19:06:37 +08:00
2022-11-23 15:18:59 +08:00
.#{$prefix-cls} {
2022-07-18 19:06:37 +08:00
transition: left var(--transition-time-02);
}
</style>