import { getDimensionList, getDimensionTree, saveDimension, deleteDimension, getKnowledgeList, getKnowledge, saveKnowledge, deleteKnowledge, getTagList, saveTag, deleteTag } from '@/api/dimension' export default { namespaced: true, state: { // 维度 dimensions: [], dimensionTree: [], dimensionLoading: false, // 知识库 knowledgeList: [], knowledgeTotal: 0, knowledgeLoading: false, // 标签 tags: [], tagLoading: false }, mutations: { SET_DIMENSIONS(state, list) { state.dimensions = list }, SET_DIMENSION_TREE(state, tree) { state.dimensionTree = tree }, SET_DIMENSION_LOADING(state, val) { state.dimensionLoading = val }, SET_KNOWLEDGE_LIST(state, data) { state.knowledgeList = data.records || [] state.knowledgeTotal = data.total || 0 }, SET_KNOWLEDGE_LOADING(state, val) { state.knowledgeLoading = val }, SET_TAGS(state, list) { state.tags = list }, SET_TAG_LOADING(state, val) { state.tagLoading = val } }, actions: { // 维度 async fetchDimensions({ commit }, params = {}) { commit('SET_DIMENSION_LOADING', true) try { const res = await getDimensionList(params) if (res.code === 200) { commit('SET_DIMENSIONS', res.data.records || []) } } finally { commit('SET_DIMENSION_LOADING', false) } }, async fetchDimensionTree({ commit }) { const res = await getDimensionTree() if (res.code === 200) { commit('SET_DIMENSION_TREE', res.data || []) } }, async saveDimension({ dispatch }, data) { const res = await saveDimension(data) if (res.code === 200) { await dispatch('fetchDimensionTree') } return res }, async deleteDimension({ dispatch }, id) { const res = await deleteDimension(id) if (res.code === 200) { await dispatch('fetchDimensionTree') } return res }, // 知识库 async fetchKnowledgeList({ commit }, params = {}) { commit('SET_KNOWLEDGE_LOADING', true) try { const res = await getKnowledgeList(params) if (res.code === 200) { commit('SET_KNOWLEDGE_LIST', res.data || { records: [], total: 0 }) } } finally { commit('SET_KNOWLEDGE_LOADING', false) } }, async saveKnowledge({ dispatch }, data) { const res = await saveKnowledge(data) if (res.code === 200) { await dispatch('fetchKnowledgeList', { page: 1, size: 20 }) } return res }, async deleteKnowledge({ dispatch }, id) { const res = await deleteKnowledge(id) if (res.code === 200) { await dispatch('fetchKnowledgeList', { page: 1, size: 20 }) } return res }, // 标签 async fetchTags({ commit }) { commit('SET_TAG_LOADING', true) try { const res = await getTagList() if (res.code === 200) { commit('SET_TAGS', res.data || []) } } finally { commit('SET_TAG_LOADING', false) } }, async saveTag({ dispatch }, data) { const res = await saveTag(data) if (res.code === 200) { await dispatch('fetchTags') } return res }, async deleteTag({ dispatch }, id) { const res = await deleteTag(id) if (res.code === 200) { await dispatch('fetchTags') } return res } } }