MrShi
11 小时以前 a03f27c5edaab17263891dd2bc1e4e70fb96096c
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
import Vue from 'vue'
import Vuex from 'vuex'
 
Vue.use(Vuex)
 
const navHeight = uni.getStorageSync('navHeight');
const statusbarHeight = uni.getStorageSync('statusbarHeight');
const userInfo = uni.getStorageSync('userInfo');
const openid = uni.getStorageSync('openid');
const token = uni.getStorageSync('token');
 
const store = new Vuex.Store({
    
    state: {
        imgUrl: 'https://www.duijiaoniwo.com',      // 服务器资源前缀
        navHeight: navHeight || '',
        statusbarHeight: statusbarHeight || '',
        userInfo: userInfo || '',      // 用户信息
        token: token || '',
        openid: openid || '',
        position: null
    },
    mutations: {
        // 设置导航栏高度
        setHeight(state, val) {
            state.navHeight = val.navHeight
            state.statusbarHeight = val.statusbarHeight
            uni.setStorageSync('navHeight', val.navHeight);
            uni.setStorageSync('statusbarHeight', val.statusbarHeight);
        },
        // 设置token
        setToken(state, val) {
            state.token = val
            uni.setStorageSync('token', val);
        },
        // 设置openid
        setOpenId(state, openid) {
            state.openid = openid
            uni.setStorageSync('openid', openid);
        },
        // 设置用户信息
        setUserInfo(state, val) {
            state.userInfo = val
            uni.setStorageSync('userInfo', val);
        },
        // 设置当前位置信息
        setPosition(state, val) {
            state.position = val
        },
    },
    
    actions: {
        // 获取状态高度
        getHeight(context) {
            let res = uni.getMenuButtonBoundingClientRect()
            let status = uni.getSystemInfoSync()
            var height = res.height
            let statusbarHeight = status.statusBarHeight
            let navHeight = res.height + (res.top - statusbarHeight) * 2;
            context.commit('setHeight', { statusbarHeight, navHeight, height })
        }
    }
    
})
 
export default store;