123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import { fetchMenusApi, getWardsApi, loginApi } from '@/api/login'
- import router from '@/router'
- const state = () => ({
- token: '', // 登录token
- sid: '', // 用户websocket id
- info: {}, // 用户信息
- wards: {}, // 病房列表
- menus: [], // 用户菜单
- routes: [], // 用户所以可访问路由
- ward: '', // 用户当前选择的病房
- paths: [], // 装载path的string数组
- flatRoutes: [] // 用户可访问路由的扁平列表
- })
- // getters
- const getters = {
- token(state) {
- return state.token
- },
- sid(state) {
- return state.sid
- },
- info(state) {
- return state.info
- },
- wards(state) {
- return state.wards
- },
- menus(state) {
- return state.menus
- },
- routes(state) {
- return state.routes
- },
- ward(state) {
- return state.ward
- },
- pahts(state) {
- return state.paths
- },
- }
- // mutations
- const mutations = {
- tokenChange(state, token) {
- state.token = token
- },
- closeSid(state, sid) {
- state.sid = ''
- },
- sidChange(state, sid) {
- state.sid = sid
- },
- infoChange(state, info) {
- state.info = info
- },
- wardsChange(state, wards) {
- state.wards = wards
- },
- menusChange(state, menus) {
- state.menus = menus
- },
- routesChange(state, routes) {
- state.routes = routes
- },
- wardChange(state, ward) {
- state.ward = ward
- },
- pathsChange(state, paths) {
- state.paths = paths
- },
- flatRoutesChange(state, flatRoutes) {
- state.flatRoutes = flatRoutes
- },
- }
- // actions
- const actions = {
- // login by login.vue
- login({ commit, dispatch }, params) {
- return new Promise((resolve, reject) => {
- loginApi(params).then((res) => {
- commit('tokenChange', res.token)
- commit('sidChange', res.sid)
- commit('infoChange', res)
- dispatch('getWards').then((infoRes) => {
- resolve(res)
- })
- })
- })
- },
- // get user info after user logined
- getWards({ commit, dispatch }) {
- return new Promise((resolve, reject) => {
- getWardsApi().then((res) => {
- commit('wardsChange', res)
- dispatch('getMenus').then((menusRes) => {
- resolve(res)
- })
- })
- })
- },
- getMenus({ commit }) {
- return new Promise((resolve, reject) => {
- fetchMenusApi().then((res) => {
- commit('menusChange', res.routes)
- commit('routesChange', res.routes)
- commit('pathsChange', res.paths)
- commit('flatRoutesChange', res.flatRoutes)
- resolve(res)
- })
- })
- },
- // login out the system after user click the loginOut button
- loginOut({ commit }) {
- localStorage.clear()
- router.push('/login')
- },
- }
- export default {
- namespaced: true,
- state,
- actions,
- getters,
- mutations,
- }
|