木邻有你前端代码仓库
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.

122 lines
3.3 KiB

1 month ago
1 month ago
4 weeks ago
4 weeks ago
3 weeks ago
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import * as api from '@/api'
  4. Vue.use(Vuex)
  5. const store = new Vuex.Store({
  6. state: {
  7. // 存放状态
  8. configList: [],
  9. careerList: [],
  10. qualificationList: [],
  11. categoryGoodsList: [],
  12. categoryActivityList: [],
  13. // 宿集区列表
  14. areaList: []
  15. },
  16. mutations: {
  17. setConfigList(state, data) {
  18. state.configList = data
  19. },
  20. setCareerList(state, data) {
  21. state.careerList = data
  22. },
  23. setQualificationList(state, data) {
  24. state.qualificationList = data
  25. },
  26. setCategoryGoodsList(state, data) {
  27. state.categoryGoodsList = data
  28. },
  29. setCategoryActivityList(state, data) {
  30. state.categoryActivityList = data
  31. },
  32. setAreaList(state, data) {
  33. state.areaList = data
  34. },
  35. },
  36. actions: {
  37. // 查询配置列表
  38. async getConfig({ commit }) {
  39. const res = await api.config.queryConfigList()
  40. // 要求变成键值对的样子
  41. const config = res.result.records.reduce((acc, item) => {
  42. if (!item.paramCode) {
  43. console.log('paramCode为空', item);
  44. return acc
  45. }
  46. acc[item.paramCode] = item
  47. return acc
  48. }, {})
  49. commit('setConfigList', config)
  50. },
  51. // 查询职业列表
  52. async getCareer({ commit }) {
  53. const res = await api.config.queryCareerList()
  54. // if (res.code === 0) {
  55. commit('setCareerList', res.result.records)
  56. // } else {
  57. // uni.showToast({ title: res.msg, icon: 'error' })
  58. // }
  59. },
  60. // 查询学历列表
  61. async getQualification({ commit }) {
  62. const res = await api.config.queryQualificationList()
  63. // if (res.code === 0) {
  64. commit('setQualificationList', res.result.records)
  65. // } else {
  66. // uni.showToast({ title: res.msg, icon: 'error' })
  67. // }
  68. },
  69. // 查询商品分类列表
  70. async getCategoryGoodsList({ commit }) {
  71. const res = await api.config.queryCategoryGoodsList()
  72. commit('setCategoryGoodsList', res.result.records)
  73. },
  74. // 查询活动分类列表
  75. async getCategoryActivityList({ commit }) {
  76. const res = await api.config.queryCategoryActivityList()
  77. commit('setCategoryActivityList', res.result.records)
  78. },
  79. // 查询宿集区列表
  80. async getAreaList({ commit }) {
  81. const res = await api.config.queryDormitoryList()
  82. commit('setAreaList', res.result.records)
  83. },
  84. // 初始化数据
  85. async initData({ dispatch, state }) {
  86. // 检查是否已初始化
  87. if (state.configList.length > 0 && state.careerList.length > 0 && state.qualificationList.length > 0 && state.categoryGoodsList.length > 0 && state.categoryActivityList.length > 0 && state.areaList.length > 0) {
  88. console.log('配置数据已初始化,无需重复初始化')
  89. return
  90. }
  91. try {
  92. await Promise.all([
  93. dispatch('getConfig'),
  94. dispatch('getCareer'),
  95. dispatch('getQualification'),
  96. dispatch('getCategoryGoodsList'),
  97. dispatch('getCategoryActivityList'),
  98. dispatch('getAreaList')
  99. ])
  100. console.log('所有配置数据初始化完成')
  101. } catch (error) {
  102. console.error('配置数据初始化失败:', error)
  103. }
  104. },
  105. }
  106. })
  107. export default store