1、系统配置修改上线 2、 pinia取代vuex

This commit is contained in:
zhangtao
2025-01-10 10:39:15 +08:00
parent 8d9a64aed3
commit 1ae731eafe
21 changed files with 379 additions and 568 deletions
-26
View File
@@ -1,26 +0,0 @@
import { defineStore } from 'pinia';
import { getInitConfig } from "@/api/system/config";
export const useConfigStore = defineStore('config', {
state: () => ({
systemConfig: {},
}),
actions: {
async getConfigInfo() {
try {
const response = await getInitConfig();
const result = response.data;
const configData = JSON.parse(result.data);
this.systemConfig = configData;
} catch (error) {
console.error(error);
}
},
setSystemConfig(config) {
this.systemConfig = config;
},
clearConfigInfo() {
this.systemConfig = {};
},
},
});
+59 -10
View File
@@ -1,14 +1,63 @@
import { createStore } from "vuex";
import user from "./modules/user";
import { defineStore } from "pinia";
import { getCurrentUserInfo } from "@/api/system/user";
import { getInitConfig } from "@/api/system/config";
const store = createStore({
modules: {
user,
export const useUserStore = defineStore("user", {
state: () => ({
basicInfo: {},
routeList: [],
hasGetRoute: false,
}),
actions: {
async getUserInfo() {
try {
const response = await getCurrentUserInfo();
const result = response.data;
const routers = result.data.menus;
delete result.data.menus;
this.setRoute(routers);
this.basicInfo = { ...this.basicInfo, ...result.data };
} catch (error) {
console.error(error);
}
},
setRoute(routers) {
this.routeList = routers;
this.hasGetRoute = true;
},
setAvatar(avatar) {
this.basicInfo = { ...this.basicInfo, avatar };
},
clearUserInfo() {
this.basicInfo = {};
this.routeList = [];
this.hasGetRoute = false;
},
},
state: {},
mutations: {},
actions: {},
getters: {},
});
export default store;
export const useConfigStore = defineStore("config", {
state: () => ({
configData: {}, // 存储系统配置
isConfigLoaded: false, // 标记配置是否已加载
}),
actions: {
async fetchConfig() {
try {
const response = await getInitConfig();
const { status_code, data } = response.data;
if (status_code === 200) {
this.configData = JSON.parse(data);
console.log(this.configData);
this.isConfigLoaded = true;
}
} catch (error) {
console.error("获取系统配置失败", error);
}
},
getConfigValue(key) {
return this.configData[key] || null;
},
},
});
-44
View File
@@ -1,44 +0,0 @@
import { getCurrentUserInfo } from "@/api/system/user";
const user = {
state: {
basicInfo: {},
routeList: [],
hasGetRoute: false,
},
mutations: {
setRoute(state, routers) {
state.routeList = routers;
state.hasGetRoute = true;
},
setAvatar(state, avatar) {
state.basicInfo.avatar = avatar;
},
},
actions: {
getUserInfo({ commit, state }) {
return new Promise((resolve) => {
getCurrentUserInfo()
.then((response) => {
const result = response.data;
const routers = result.data.menus;
delete result.data.menus;
commit("setRoute", routers);
state.basicInfo = Object.assign(state.basicInfo || {}, result.data);
resolve();
})
.catch((error) => {
console.log(error);
});
});
},
clearUserInfo({ state }) {
state.basicInfo = {};
state.routeList = [];
state.hasGetRoute = false;
},
},
};
export default user;
-36
View File
@@ -1,36 +0,0 @@
import { defineStore } from 'pinia';
import { getCurrentUserInfo } from "@/api/system/user";
export const useUserStore = defineStore('user', {
state: () => ({
basicInfo: {},
routeList: [],
hasGetRoute: false,
}),
actions: {
async getUserInfo() {
try {
const response = await getCurrentUserInfo();
const result = response.data;
const routers = result.data.menus;
delete result.data.menus;
this.setRoute(routers);
this.basicInfo = Object.assign(this.basicInfo || {}, result.data);
} catch (error) {
console.error(error);
}
},
setRoute(routers) {
this.routeList = routers;
this.hasGetRoute = true;
},
setAvatar(avatar) {
this.basicInfo.avatar = avatar;
},
clearUserInfo() {
this.basicInfo = {};
this.routeList = [];
this.hasGetRoute = false;
},
},
});