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 / WX / XCX 
 | 
    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}) 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
}) 
 |