小说小程序前端代码仓库(小程序)
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.

103 lines
1.9 KiB

1 month ago
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex); //vue的插件机制
  4. import api from '@/api/api.js'
  5. //Vuex.Store 构造器选项
  6. const store = new Vuex.Store({
  7. state: {
  8. configList: {}, //配置列表
  9. shop : false,
  10. userInfo : {}, //用户信息
  11. },
  12. getters: {
  13. // 角色 true为水洗店 false为酒店
  14. userShop(state){
  15. return state.shop
  16. }
  17. },
  18. mutations: {
  19. // 初始化配置
  20. initConfig(state){
  21. // api('getConfig', res => {
  22. // if(res.code == 200){
  23. // state.configList = res.result
  24. // res.result.forEach(n => {
  25. // state.configList[n.keyName] = n.keyContent
  26. // })
  27. // }
  28. // })
  29. let config = ['getPrivacyPolicy', 'getUserAgreement']
  30. config.forEach(k => {
  31. api(k, res => {
  32. if (res.code == 200) {
  33. state.configList[k] = res.result
  34. }
  35. })
  36. })
  37. },
  38. login(state){
  39. uni.showLoading({
  40. title: '登录中...'
  41. })
  42. uni.login({
  43. success(res) {
  44. if(res.errMsg != "login:ok"){
  45. return
  46. }
  47. api('wxLogin', {
  48. code : res.code
  49. }, res => {
  50. uni.hideLoading()
  51. if(res.code != 200){
  52. return
  53. }
  54. state.userInfo = res.result.userInfo
  55. uni.setStorageSync('token', res.result.token)
  56. if(!state.userInfo.nickName || !state.userInfo.headImage){
  57. uni.navigateTo({
  58. url: '/pages_order/auth/wxUserInfo'
  59. })
  60. }else{
  61. uni.navigateBack(-1)
  62. }
  63. })
  64. }
  65. })
  66. },
  67. getUserInfo(state){
  68. api('getInfo', res => {
  69. if(res.code == 200){
  70. state.userInfo = res.result
  71. }
  72. })
  73. },
  74. // 退出登录
  75. logout(state){
  76. uni.showModal({
  77. title: '确认退出登录吗',
  78. success(r) {
  79. if(r.confirm){
  80. state.userInfo = {}
  81. state.role = false
  82. uni.removeStorageSync('token')
  83. uni.reLaunch({
  84. url: '/pages/index/index'
  85. })
  86. }
  87. }
  88. })
  89. },
  90. },
  91. actions: {},
  92. })
  93. export default store