Mr.Shi
2023-08-11 6e19ef63c0a87588abd76c04ab228a73e3060ea4
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
import { createStore } from 'vuex'
import { getTreeList, getUserInfo } from '@/apis'
import { equipment } from '@/utils/utils'
import { pageCount } from '@/apis/agencyAPI'
 
const userInfo = JSON.parse(<string>localStorage.getItem('UserInfo'))
const Menu = JSON.parse(<string>localStorage.getItem('MenuList'))
const env = JSON.parse(<string>localStorage.getItem('env'))
const companyId = localStorage.getItem('companyId')
 
export default createStore({
  state: {
    // 项目入口环境 DD / H5
    env: env ? env : null,
 
    // 是否需要适配苹果底部安全距离
    type: null,
 
    // 用户信息
    userInfo: userInfo ? userInfo : {},
 
    // 菜单权限
    Menu: Menu ? Menu : [],
 
    // 待办数量
    upcomingNum: {
      d: 0,
      y: 0
    },
 
    // 企业id
    companyId: companyId ? companyId : null
  },
  mutations: {
    // 设置用户信息
    setUserInfo (state, data) {
      state.userInfo = data
      window.localStorage.setItem('UserInfo', JSON.stringify(data))
    },
    // 设置菜单栏权限
    setMenu (state, data) {
      state.Menu = data
      window.localStorage.setItem('MenuList', JSON.stringify(data))
    },
    // 设置项目入库
    setEntrance (state, data) {
      state.env = data
      window.localStorage.setItem('env', JSON.stringify(data))
    },
    // 设置机型
    setType (state, data) {
      state.type = data
    },
    // 更新代办数量
    setNum (state, val) {
      state.upcomingNum.d = val.d
      state.upcomingNum.y = val.y
    },
    // 获取企业id
    setCompany(state, id) {
      state.companyId = id
      window.localStorage.setItem('companyId', id)
    }
  },
  actions: {
    // 向后端获取菜单栏权限
    async getMenuList (content, type) {
      let res = await getTreeList({ type: type })
      if (res.code === 200) {
        content.commit('setMenu', res.data)
      }
    },
    // 向后端获取个人信息
    async getUserInfos (content): Promise<any> {
      let res = await getUserInfo()
      if (res.code === 200) {
        content.commit('setUserInfo', res.data)
        return true
      }
    },
    // 判断手机机型
    mobilePhoneModel (content): void {
      content.commit('setType', equipment())
    },
    // 获取代办数量
    async getUpcomingNum (content) {
      let res = await pageCount({})
      if (res.code === 200) {
        content.commit('setNum', {d: res.data.startNum, y: res.data.endNum})
      }
    }
  }
})