fei.wang
2025-04-30 722da005a5ec126bedf752ac6bd5c5c7f6172155
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import Vue from 'vue'
import Vuex from 'vuex'
 
Vue.use(Vuex)
 
// 尝试获取本地是否存在变量
 
let vuex_user = uni.getStorageSync('vuex_user') || ''
let phone = uni.getStorageSync('phone') || ''
 
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 isyuyin = uni.getStorageSync('isyuyin') || ''
let is3wei = uni.getStorageSync('is3wei') || ''
let isSilence = uni.getStorageSync('isSilence') || ''
 
let bleHeight = uni.getStorageSync('bleHeight') || ''
let juese = uni.getStorageSync('juese') || ''
let company = uni.getStorageSync('company') || ''
let fatherCode = uni.getStorageSync('fatherCode') || ''
let chiledCode = uni.getStorageSync('chiledCode') || ''
let juli = uni.getStorageSync('juli') || ''
let companyid = uni.getStorageSync('companyid') || ''
let zystate = uni.getStorageSync('zystate') || ''
let newBaseURL = uni.getStorageSync('newBaseURL') || ''
let companylogo = uni.getStorageSync('companylogo') || ''
let lonlat = uni.getStorageSync('lonlat') || ''
 
 
// 标记需要永久存储的变量,在每次启动时取出,在state中的变量名
let saveStateKeys = ['isyuyin', 'lonlat', 'companylogo', 'newBaseURL', 'bleHeight','zystate', 'chiledCode', 'juli','fatherCode', 'isSilence' ,'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 || '昵称',
    GET_CONNECT_DEVICEId:'',
    GET_BLE_DATA:'请先连接蓝牙',
    // 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 || true,
    // 自定义导航栏的高度-内容-margin-top
    vuex_padding_top : 64,
    uuid: '',
    access_token:'',
    username:'',
    nickname: false,
    imgUrl: '',
    phone:phone||'',
    is3wei:is3wei||false,
    isyuyin:isyuyin || false,
    isceju:false,
    isSilence:isSilence||false,
    fatherCode:fatherCode||'',
    chiledCode:chiledCode||'',
    juli:juli||'',
    bledistance:0,
    bleHeight:bleHeight||'',
    bledeviceId :'',
    bleserviceId:'',
    blewriteId:'',
    // version:version||'',
    company:company||'',
    zystate:zystate||'STOP',
    companyid:companyid||'',
    juese: juese || '',
    isbase: isbase || false,
    isfence: isfence || false,
    isoffline: isoffline || false,
    newBaseURL:newBaseURL|| 'http://123.117.152.120:8090',
    companylogo:companylogo||'../../static/companylogo.png',
    lonlat:lonlat||'',
  },
  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