20260716215550
This commit is contained in:
1 parent
5cd4e1e1d2
commit
49dafe524c
21 files changed
+1218
-272
No files matched your search
@@ -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();
|
||||
},
|
||||
},
|
||||
});
|
||||
);
|
||||
Reference in new issue
Block a user