mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 21:06:32 +00:00
refactor: 重构前端组件和样式,添加AI助手功能 docs: 更新README文档,添加ruff代码检查说明 feat: 新增AI助手相关API和前端组件 chore: 更新.gitignore文件,添加ruff缓存配置 fix: 修复前端布局和设置相关的问题 perf: 优化代码结构和性能,移除冗余代码 test: 更新测试文件,移除编码声明 build: 更新依赖版本,调整requirements.txt
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import { useAppStore, useSettingsStore } from "@/store";
|
|
import { defaultSettings } from "@/settings";
|
|
import { DeviceEnum } from "@/enums";
|
|
|
|
/**
|
|
* 布局相关的通用逻辑
|
|
*/
|
|
export function useLayout() {
|
|
const appStore = useAppStore();
|
|
const settingsStore = useSettingsStore();
|
|
|
|
// 计算当前布局模式
|
|
const currentLayout = computed(() => settingsStore.layout);
|
|
|
|
// 侧边栏展开状态
|
|
const isSidebarOpen = computed(() => appStore.sidebar.opened);
|
|
|
|
// 是否显示标签视图
|
|
const isShowTagsView = computed(() => settingsStore.showTagsView);
|
|
|
|
// 是否显示设置面板
|
|
const isShowSettings = computed(() => defaultSettings.showSettings);
|
|
|
|
// 是否显示Logo
|
|
const isShowLogo = computed(() => settingsStore.showAppLogo);
|
|
|
|
// 是否移动设备
|
|
const isMobile = computed(() => appStore.device === DeviceEnum.MOBILE);
|
|
|
|
// 布局CSS类
|
|
const layoutClass = computed(() => ({
|
|
hideSidebar: !appStore.sidebar.opened,
|
|
openSidebar: appStore.sidebar.opened,
|
|
mobile: appStore.device === DeviceEnum.MOBILE,
|
|
[`layout-${settingsStore.layout}`]: true,
|
|
}));
|
|
|
|
/**
|
|
* 处理切换侧边栏的展开/收起状态
|
|
*/
|
|
function toggleSidebar() {
|
|
appStore.toggleSidebar();
|
|
}
|
|
|
|
/**
|
|
* 关闭侧边栏(移动端)
|
|
*/
|
|
function closeSidebar() {
|
|
appStore.closeSideBar();
|
|
}
|
|
|
|
return {
|
|
currentLayout,
|
|
isSidebarOpen,
|
|
isShowTagsView,
|
|
isShowSettings,
|
|
isShowLogo,
|
|
isMobile,
|
|
layoutClass,
|
|
toggleSidebar,
|
|
closeSidebar,
|
|
};
|
|
}
|