湘妃到家前端代码仓库
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.

75 lines
1.6 KiB

1 month ago
  1. import Vuex from 'vuex'
  2. import api from '@/plugins/api.js'
  3. import { handleTree } from '@/plugins/tree.js'
  4. import share from '@/utils/Share'
  5. //Vuex.Store 构造器选项
  6. const store = new Vuex.createStore({
  7. state: {
  8. configList: {}, //配置列表
  9. userInfo : {}, //用户信息
  10. areaList : [],//地区列表信息
  11. selectArea : {
  12. name : '全部'
  13. },//当前选择的地区
  14. },
  15. getters: {
  16. },
  17. mutations: {
  18. // 初始化配置
  19. initConfig(state){
  20. api('getConfig', {}, res => {
  21. if(res.code == 200){
  22. res.result.forEach(n => {
  23. state.configList[n.keyValue] = n.content
  24. })
  25. }
  26. if(state.configList.open_address){
  27. uni.setStorageSync('open_address', state.configList.open_address)
  28. }
  29. // console.log("initConfig===============", res);
  30. share()
  31. })
  32. // let config = ['getPrivacyPolicy', 'getUserAgreement']
  33. // config.forEach(k => {
  34. // api(k, res => {
  35. // if (res.code == 200) {
  36. // state.configList[k] = res.result
  37. // }
  38. // })
  39. // })
  40. },
  41. getUserInfo(state){
  42. api('getUserInfo', {}, res => {
  43. if(res.code == 200){
  44. state.userInfo = res.result
  45. }
  46. })
  47. },
  48. // 退出登录
  49. logout(state){
  50. state.userInfo = {}
  51. state.role = false
  52. state.token = ""
  53. uni.removeStorageSync('token')
  54. },
  55. // 查询地区
  56. getArea(state, fn){
  57. api('getCurrentArea', {}, res => {
  58. if(res.code == 200){
  59. state.areaList = handleTree(res.result, 'id', 'pid')
  60. fn && fn(res.result)
  61. // state.selectArea = state.areaList[0].children[0].children[0]
  62. }
  63. })
  64. },
  65. setArea(state, selectArea){
  66. state.selectArea = selectArea
  67. },
  68. },
  69. actions: {},
  70. })
  71. export default store