import { getSystemConfig } from '@/api/system/sysConfig' import ncc from '@/utils/ncc' const state = { sysLogo: ncc.storageGet('sysLogo') || '', sysName: ncc.storageGet('sysName') || '机具管理平台', systemConfig: {}, configLoaded: false, configLoading: false, configLoadFailed: false } const mutations = { SET_SYS_LOGO: (state, logo) => { state.sysLogo = logo ncc.storageSet({ sysLogo: logo }) }, SET_SYS_NAME: (state, name) => { state.sysName = name ncc.storageSet({ sysName: name }) }, SET_SYSTEM_CONFIG: (state, config) => { state.systemConfig = config // 同时更新logo和name if (config.sysLogo !== undefined) { state.sysLogo = config.sysLogo ncc.storageSet({ sysLogo: config.sysLogo }) } if (config.sysName !== undefined) { state.sysName = config.sysName ncc.storageSet({ sysName: config.sysName }) } }, SET_CONFIG_LOADING: (state, loading) => { state.configLoading = loading }, SET_CONFIG_LOADED: (state, loaded) => { state.configLoaded = loaded }, SET_CONFIG_LOAD_FAILED: (state, failed) => { state.configLoadFailed = failed } } const actions = { // 获取系统配置 getSystemConfig({ commit, state }) { // 如果已经加载成功或正在加载中,直接返回 if (state.configLoaded || state.configLoading) { return Promise.resolve(state.systemConfig) } // 如果之前加载失败,直接拒绝(避免无限重试) if (state.configLoadFailed) { return Promise.reject(new Error('系统配置加载失败,使用默认配置')) } commit('SET_CONFIG_LOADING', true) return new Promise((resolve, reject) => { getSystemConfig().then(res => { const config = res.data commit('SET_SYSTEM_CONFIG', config) commit('SET_CONFIG_LOADED', true) commit('SET_CONFIG_LOADING', false) resolve(config) }).catch(error => { commit('SET_CONFIG_LOAD_FAILED', true) commit('SET_CONFIG_LOADING', false) reject(error) }) }) }, // 更新系统配置 updateSystemConfig({ commit }, config) { commit('SET_SYSTEM_CONFIG', config) } } export default { namespaced: true, state, mutations, actions }