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.

69 lines
1.5 KiB

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