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. 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. },
  13. getters: {
  14. },
  15. mutations: {
  16. // 初始化配置
  17. initConfig(state){
  18. api('getConfig', {}, res => {
  19. if(res.code == 200){
  20. res.result.forEach(n => {
  21. state.configList[n.keyValue] = n.content
  22. })
  23. }
  24. if(state.configList.open_address){
  25. uni.setStorageSync('open_address', state.configList.open_address)
  26. }
  27. // console.log("initConfig===============", res);
  28. // share()
  29. })
  30. // let config = ['getPrivacyPolicy', 'getUserAgreement']
  31. // config.forEach(k => {
  32. // api(k, res => {
  33. // if (res.code == 200) {
  34. // state.configList[k] = res.result
  35. // }
  36. // })
  37. // })
  38. },
  39. getUserInfo(state){
  40. api('getUserInfo', {}, res => {
  41. if(res.code == 200){
  42. state.userInfo = res.result
  43. }
  44. })
  45. },
  46. // 退出登录
  47. logout(state){
  48. state.userInfo = {}
  49. state.role = false
  50. state.token = ""
  51. uni.removeStorageSync('token')
  52. },
  53. // 查询地区
  54. getArea(state, fn){
  55. api('getCurrentArea', {}, res => {
  56. if(res.code == 200){
  57. state.areaList = handleTree(res.result, 'id', 'pid')
  58. fn && fn(res.result)
  59. state.selectArea = state.areaList[0].children[0].children[0]
  60. }
  61. })
  62. },
  63. setArea(state, selectArea){
  64. state.selectArea = selectArea
  65. },
  66. },
  67. actions: {},
  68. })
  69. export default store