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