add
gaosp
2024-01-06 501c6a293991c735436907d71e7e5699ae6f3984
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import { login, getUserInfo, URL_CFG } from '@/api/MdcApi'
import { getToken, setToken, removeToken } from '@/utils/auth'
import Vue from 'vue'
const user = {
  state: {
    token: getToken().value,
    workshopList: [], // 车间列表
    deviceCategories: [], // 设备种类
    userInfo: { // 用户信息
      user: '',
      name: '',
      phone: '',
      roles: '',
      avatar: ''
    }
  },
 
  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_NAME: (state, name) => {
      state.name = name
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles
    },
    SET_WORKSHOP_LIST: (state, workshopList = []) => {
      for (let i = 0; i < state.workshopList.length; i++) {
        Vue.delete(state.workshopList, i)
      }
      for (let i = 0; i < workshopList.length; i++) {
        Vue.set(state.workshopList, i, workshopList[i])
      }
    },
    SET_DEVICE_CATEGORY_LIST: (state, categoryArr = []) => {
      for (let i = 0; i < state.deviceCategories.length; i++) {
        Vue.delete(state.deviceCategories, i)
      }
      for (let i = 0; i < categoryArr.length; i++) {
        Vue.set(state.deviceCategories, i, categoryArr[i])
      }
    },
    SET_USER_INFO: (state, data) => {
      state.userInfo.user = data.name
      state.userInfo.name = data.realName
      state.userInfo.phone = data.phone || ''
      state.userInfo.roles = data.roles
      state.userInfo.avatar = data.avatar || (process.env.NODE_ENV === 'development' ? '/static/data/user/zh_tx.png' : URL_CFG.BASE_URL + '/static/data/user/zh_tx.png')
    }
  },
 
  actions: {
    // 登录
    Login({ commit, store }, userInfo) {
      const username = userInfo.username.trim()
      return new Promise((resolve, reject) => {
        login(username, userInfo.password).then(response => {
          // {"result":"SUCCESS","token":"43a187c9b3f1f6cd6c8342c15f91a52a"}
          response = response || {}
          if (response.result === 'SUCCESS') {
            setToken(response.data)
            commit('SET_TOKEN', response.data)
            resolve(response)
            this.dispatch('GetInfo').then(res => resolve(res))
          } else {
            resolve({ code: 0, msg: '用户名或密码错误!' })
            
          }
        }).catch(error => {
          // TODO: del
          // let response = {"result":"SUCCESS","data":"43a187c9b3f1f6cd6c8342c15f91a52a"}
          // setToken(response.data)
          // commit('SET_TOKEN', response.data)
          // resolve(response)
 
          reject(error)
          // console.log(error)
        })
      })
    },
    // 获取用户信息
    GetInfo({ commit, state }) {
      return new Promise((resolve, reject) => {
        getUserInfo().then(data => {
          if (data.result === 'SUCCESS') {
            // if (data.workshopList && data.workshopList.length > 0) {
            //   commit('SET_WORKSHOP_LIST', data.workshopList)
            //   // console.log(data)
            //   commit('SET_DEVICE_CATEGORY_LIST', data.workshopList)
            //   commit('SET_USER_INFO', data)
            //   resolve({ code: 1, data: data })
            // } else {
            //   commit('SET_WORKSHOP_LIST', [])
            //   commit('SET_DEVICE_CATEGORY_LIST', [])
            //   commit('SET_TOKEN', '')
            //   commit('SET_USER_INFO', {})
            //   removeToken()
            //   resolve({ code: 0, msg: '您没有权限访问,请联系管理员进行授权!' })
            // }
          }else {
            removeToken()
            resolve({ code: 0, msg: '由于您长时间没有操作,请重新登录!' })
          }
        }).catch(() => {
          resolve({ code: -1, msg: '网络异常,稍后重试!' })
        })
      })
    },
    // 登出
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        commit('SET_TOKEN', '')
        commit('SET_USER_INFO', {})
        removeToken()
        resolve()
      })
    },
 
    // 前端 登出
    FedLogOut({ commit }) {
      return new Promise(resolve => {
        commit('SET_TOKEN', '')
        removeToken()
        resolve()
      })
    }
  }
}
 
export default user