20260716215550

This commit is contained in:
oneao committed 2026-07-16 21:55:51 +08:00
1 parent 5cd4e1e1d2
commit 49dafe524c
21 files changed
+1218 -272

No files matched your search

+40 -28
View File
@@ -1,35 +1,47 @@
import { ref } from "vue";
import { defineStore } from "pinia";
const createDefaultVisitedTabs = () => [{ key: "/dashboard", label: "工作台", closable: false }];
export const useAppStore = defineStore("app", {
state: () => ({
locale: "zh-CN",
sidebarCollapsed: false,
visitedTabs: createDefaultVisitedTabs(),
}),
actions: {
toggleSidebar() {
this.sidebarCollapsed = !this.sidebarCollapsed;
},
setLocale(locale) {
this.locale = locale;
},
addVisitedTab(tab) {
if (!this.visitedTabs.some((item) => item.key === tab.key)) {
this.visitedTabs.push(tab);
export const useAppStore = defineStore(
"app",
() => {
const locale = ref("zh-CN");
const sidebarCollapsed = ref(false);
const visitedTabs = ref(createDefaultVisitedTabs());
function toggleSidebar() {
sidebarCollapsed.value = !sidebarCollapsed.value;
}
function setLocale(value) {
locale.value = value;
}
function addVisitedTab(tab) {
if (!visitedTabs.value.some((item) => item.key === tab.key)) {
visitedTabs.value.push(tab);
}
},
removeVisitedTab(key) {
this.visitedTabs = this.visitedTabs.filter((item) => item.key !== key);
}
function removeVisitedTab(key) {
visitedTabs.value = visitedTabs.value.filter((item) => item.key !== key);
}
return {
locale,
sidebarCollapsed,
visitedTabs,
toggleSidebar,
setLocale,
addVisitedTab,
removeVisitedTab,
};
},
{
persist: {
key: "fms-app",
pick: ["locale"],
},
},
persist: {
key: "fms-app",
pick: ["locale"],
afterHydrate: ({ store }) => {
store.sidebarCollapsed = false;
store.visitedTabs = createDefaultVisitedTabs();
},
},
});
);