import Vue from 'vue' import Vuex from 'vuex' import * as api from '@/api' Vue.use(Vuex) const store = new Vuex.Store({ state: { // 存放状态 configList: [], careerList: [], qualificationList: [], categoryGoodsList: [], categoryActivityList: [] }, mutations: { setConfigList(state, data) { state.configList = data }, setCareerList(state, data) { state.careerList = data }, setQualificationList(state, data) { state.qualificationList = data }, setCategoryGoodsList(state, data) { state.categoryGoodsList = data }, setCategoryActivityList(state, data) { state.categoryActivityList = data } }, actions: { // 查询配置列表 async getConfig({ commit }) { const res = await api.config.queryConfigList() // 要求变成键值对的样子 const config = res.result.records.reduce((acc, item) => { if (!item.paramCode) { console.log('paramCode为空', item); return acc } acc[item.paramCode] = item return acc }, {}) commit('setConfigList', config) }, // 查询职业列表 async getCareer({ commit }) { const res = await api.config.queryCareerList() // if (res.code === 0) { commit('setCareerList', res.result.records) // } else { // uni.showToast({ title: res.msg, icon: 'error' }) // } }, // 查询学历列表 async getQualification({ commit }) { const res = await api.config.queryQualificationList() // if (res.code === 0) { commit('setQualificationList', res.result.records) // } else { // uni.showToast({ title: res.msg, icon: 'error' }) // } }, // 查询商品分类列表 async getCategoryGoodsList({ commit }) { const res = await api.config.queryCategoryGoodsList() commit('setCategoryGoodsList', res.result.records) }, // 查询活动分类列表 async getCategoryActivityList({ commit }) { const res = await api.config.queryCategoryActivityList() commit('setCategoryActivityList', res.result.records) }, // 初始化数据 async initData({ dispatch, state }) { // 检查是否已初始化 if (state.configList.length > 0 && state.careerList.length > 0 && state.qualificationList.length > 0 && state.categoryGoodsList.length > 0 && state.categoryActivityList.length > 0) { console.log('配置数据已初始化,无需重复初始化') return } try { await Promise.all([ dispatch('getConfig'), dispatch('getCareer'), dispatch('getQualification'), dispatch('getCategoryGoodsList'), dispatch('getCategoryActivityList') ]) console.log('所有配置数据初始化完成') } catch (error) { console.error('配置数据初始化失败:', error) } }, } }) export default store