111
k94314517
2023-08-28 c5c6fa800cedd37cea0e3cc3e68df78b47ee2813
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
import Vue from 'vue'
import Vuex from 'vuex'
import { pageCount } from '@/util/api/index.js'
 
Vue.use(Vuex) // vue的插件机制
 
const navHeight = uni.getStorageSync('navHeight');
const statusbarHeight = uni.getStorageSync('statusbarHeight');
const menuButtonWidth = uni.getStorageSync('menuButtonWidth');
const token = uni.getStorageSync('token');
const userInfo = uni.getStorageSync('userInfo');
 
 
// Vuex.Store 构造器选项
const store = new Vuex.Store({
    // 为了不和页面或组件的data中的造成混淆,state中的变量前面建议加上$符号
    state: {
        // 用户信息
        userInfo: userInfo || null,
        token: token || null,
        menuButtonWidth: menuButtonWidth || '0',
        statusbarHeight: statusbarHeight || '0',
        navHeight: navHeight || '0',
        // 待办数量
        upcomingNum: {
            d: 0,
            y: 0
        },
    },
    mutations: {
        setHeight(state, val) {
            state.navHeight = val.navHeight
            state.statusbarHeight = val.statusbarHeight
            state.menuButtonWidth = val.menuButtonWidth
            uni.setStorageSync('navHeight', val.navHeight);
            uni.setStorageSync('statusbarHeight', val.statusbarHeight);
            uni.setStorageSync('menuButtonWidth', val.menuButtonWidth);
        },
        SETTOKEN(state, val) {
            state.token = val
            uni.setStorageSync('token', val);
        },
        SETUSERINFO(state, val) {
            state.userInfo = val
            uni.setStorageSync('userInfo', val);
        },
        SETNUM(state, val) {
            state.upcomingNum.d = val.d
            state.upcomingNum.y = val.y
        }
    },
    actions: {
        // 获取状态高度
        getHeight(context) {
            
            let res = uni.getMenuButtonBoundingClientRect()
            let status = uni.getSystemInfoSync()
            let menuButtonWidth = res.width
            let height = res.height
            let statusbarHeight = status.statusBarHeight
            let navHeight = res.height + (res.top - statusbarHeight) * 2;
            context.commit('setHeight', {
                statusbarHeight,
                navHeight,
                height,
                menuButtonWidth
            })
        },
        async getUpcomingNum() {
            let res = await pageCount({})
            if (res.code === 200) {
                content.commit('SETNUM', { d: res.data.startNum, y: res.data.endNum })
            }
        }
    }
})
 
export default store