展品维保小程序前端代码接口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

111 lines
2.9 KiB

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