租房小程序前端代码
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.

85 lines
1.8 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import { getConfig, getInfo } from "@/common/api.js"
  4. Vue.use(Vuex)
  5. const store = new Vuex.Store({
  6. state: {
  7. token:"",
  8. userInfo : {}, //用户信息
  9. vipInfo : {},
  10. configList : {},
  11. },
  12. mutations: {
  13. // 初始化配置
  14. initConfig(state){
  15. console.log('initConfig 开始执行')
  16. if (!uni.$uv || !uni.$uv.http) {
  17. console.error('uni.$uv.http 未初始化,请检查 uvUI 配置')
  18. return
  19. }
  20. getConfig({}).then(res=>{
  21. console.log('getConfig 请求成功:', res)
  22. uni.setStorageSync('configList', res.result)
  23. const configList = {
  24. ...state.configList,
  25. }
  26. if (res.code == 200) {
  27. res.result.forEach(n => {
  28. configList[n.keyName] = n.keyContent;
  29. configList[n.keyName + '_keyValue'] = n.keyValue;
  30. });
  31. }
  32. state.configList = configList
  33. uni.$emit('initConfig', state.configList)
  34. console.log('配置初始化完成:', state.configList)
  35. }).catch(error=>{
  36. console.error('getConfig 请求失败:', error)
  37. })
  38. },
  39. setUserInfo(state,obj){
  40. state.userInfo = obj.userInfo
  41. state.token = obj.token
  42. },
  43. getUserInfo(state, fn){
  44. if(!uni.getStorageSync('token')){
  45. return
  46. }
  47. getInfo({}).then(result=>{
  48. state.userInfo = result.result.member || {}
  49. state.vipInfo = result.result.vipInfo || {}
  50. if(!result.result.member.nickName){
  51. uni.navigateTo({
  52. url:"/pages/login/index"
  53. })
  54. }
  55. })
  56. },
  57. logout(state){
  58. uni.showModal({
  59. title: '确认退出登录吗',
  60. success(r) {
  61. if(r.confirm){
  62. state.userInfo = {}
  63. state.token = ""
  64. uni.removeStorageSync('token')
  65. uni.redirectTo({
  66. url: '/pages/index/index'
  67. })
  68. }
  69. }
  70. })
  71. },
  72. },
  73. })
  74. export default store