王飞
2025-01-23 76459cbad8d071085ea0e719e2c1bbfe73895f05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import Vue from 'vue'
import Vuex from 'vuex'
 
Vue.use(Vuex)
 
// 尝试获取本地是否存在变量
 
let vuex_user = uni.getStorageSync('vuex_user') || ''
let vuex_is_login = uni.getStorageSync('vuex_is_login') || ''
 
let isbase = uni.getStorageSync('isbase') || ''
let isfence = uni.getStorageSync('isfence') || ''
let isoffline = uni.getStorageSync('isoffline') || ''
 
let is3wei = uni.getStorageSync('is3wei') || ''
 
let juese = uni.getStorageSync('juese') || ''
let company = uni.getStorageSync('company') || ''
let companyid = uni.getStorageSync('companyid') || ''
// let version = uni.getStorageSync('version') || ''
 
 
 
// 标记需要永久存储的变量,在每次启动时取出,在state中的变量名
let saveStateKeys = ['is3wei', 'vuex_user','vuex_is_login','vuex_status_bar_height','vuex_custom_bar_height','isbase','isoffline','isfence','uuid','access_token','username','phone','juese','company','companyid']
 
// 保存变量到本地存储
const saveLocalData = function(key, value) {
  // 判断变量是否在存储数组中
  if (saveStateKeys.indexOf(key) != -1) {
    // 将变量再次放回本地存储中
    uni.setStorageSync(key, value)
  }
}
 
const store = new Vuex.Store({
  state: {
    // 加上vuex_前缀,是防止变量名冲突,也让人一目了然
    vuex_user: vuex_user || '昵称',
    
    // app版本
    vuex_version: "1.0.0",
    // 是否使用自定义导航栏
    vuex_custom_nav_bar: true,
    // 状态栏高度
    vuex_status_bar_height: 0,
    // 自定义导航栏的高度
    vuex_custom_bar_height: 0,
    // 自定义导航栏的高度-内容高度
    vuex_custom_scroll_height: 0,
    // index - height
    vuex_custom_index_height: 0,
    //是否登录
    vuex_is_login: vuex_is_login || false,
    // 自定义导航栏的高度-内容-margin-top
    vuex_padding_top : 64,
    uuid: '',
    access_token:'',
    username:'',
    nickname: false,
    imgUrl: '',
    phone:'',
    is3wei:is3wei||false,
    // version:version||'',
    company:company||'',
    companyid:companyid||'',
    juese: juese || '',
    isbase: isbase || false,
    isfence: isfence || false,
    isoffline: isoffline || false,
  },
  mutations: {
    $tStore(state, payload) {
      // 判断是否多层调用,state中为对象存在的情况,例如user.info.score = 1
      let nameArr = payload.name.split('.')
      let saveKey = ''
      let len = nameArr.length
      if (len >= 2) {
        let obj = state[nameArr[0]]
        for (let i= 1; i < len - 1; i++) {
          obj = obj[nameArr[i]]
        }
        obj[nameArr[len - 1]] = payload.value
        saveKey = nameArr[0]
      } else {
        // 单层级变量
        state[payload.name] = payload.value
        saveKey = payload.name
      }
      
      // 保存变量到本地中
      saveLocalData(saveKey, state[saveKey])
    }
  },
  actions: {
  }
})
 
export default store