import { AppDarkModeToggle, BasicDrawer } from '@eciol/ant-ui'; import { useHeaderSetting, useMenuSetting, useMultipleTabSetting, useRootSetting, useTransitionSetting, } from '@eciol/hooks'; import { useI18n } from '@eciol/locale'; import { APP_PRESET_COLOR_LIST, HEADER_PRESET_BG_COLOR_LIST, MenuTypeEnum, SIDE_BAR_BG_COLOR_LIST, TriggerEnum, } from '@eciol/shared'; import { Divider } from 'ant-design-vue'; import { computed, defineComponent, unref } from 'vue'; import { InputNumberItem, SelectItem, SettingFooter, SwitchItem, ThemeColorPicker, TypePicker, } from './components'; import { contentModeOptions, getMenuTriggerOptions, HandlerEnum, menuTypeList, mixSidebarTriggerOptions, routerTransitionOptions, topMenuAlignOptions, } from './enum'; import { baseHandler } from './handler'; const { t } = useI18n(); export default defineComponent({ name: 'SettingDrawer', setup(_, { attrs }) { const { getContentMode, getShowFooter, getShowBreadCrumb, getShowBreadCrumbIcon, getShowLogo, getFullContent, getColorWeak, getGrayMode, getLockTime, getShowDarkModeToggle, getThemeColor, } = useRootSetting(); const { getOpenPageLoading, getBasicTransition, getEnableTransition, getOpenNProgress } = useTransitionSetting(); const { getIsHorizontal, getShowMenu, getMenuType, getTrigger, getCollapsedShowTitle, getMenuFixed, getCollapsed, getCanDrag, getTopMenuAlign, getAccordion, getMenuWidth, getMenuBgColor, getIsTopMenu, getSplit, getIsMixSidebar, getCloseMixSidebarOnChange, getMixSideTrigger, getMixSideFixed, } = useMenuSetting(); const { getShowHeader, getFixed: getHeaderFixed, getHeaderBgColor, getShowSearch, } = useHeaderSetting(); const { getShowMultipleTab, getShowQuick, getShowRedo, getShowFold } = useMultipleTabSetting(); const getShowMenuRef = computed(() => { return unref(getShowMenu) && !unref(getIsHorizontal); }); function renderSidebar() { return ( <> { baseHandler(HandlerEnum.CHANGE_LAYOUT, { mode: item.mode, type: item.type, split: unref(getIsHorizontal) ? false : undefined, }); }} def={unref(getMenuType)} /> ); } function renderHeaderTheme() { return ( ); } function renderSiderTheme() { return ( ); } function renderMainTheme() { return ( ); } /** * @description: */ function renderFeatures() { let triggerDef = unref(getTrigger); const triggerOptions = getMenuTriggerOptions(unref(getSplit)); const some = triggerOptions.some((item) => item.value === triggerDef); if (!some) { triggerDef = TriggerEnum.FOOTER; } return ( <> { return parseInt(value) === 0 ? `0(${t('layout.setting.notAutoScreenLock')})` : `${value}${t('layout.setting.minute')}`; }} /> `${parseInt(value)}px`} /> ); } function renderContent() { return ( <> ); } function renderTransition() { return ( <> ); } return () => ( {unref(getShowDarkModeToggle) && {() => t('layout.setting.darkMode')}} {unref(getShowDarkModeToggle) && } {() => t('layout.setting.navMode')} {renderSidebar()} {() => t('layout.setting.sysTheme')} {renderMainTheme()} {() => t('layout.setting.headerTheme')} {renderHeaderTheme()} {() => t('layout.setting.sidebarTheme')} {renderSiderTheme()} {() => t('layout.setting.interfaceFunction')} {renderFeatures()} {() => t('layout.setting.interfaceDisplay')} {renderContent()} {() => t('layout.setting.animation')} {renderTransition()} ); }, });