人民医院前端

user.js 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. import md5 from 'js-md5'
  2. // import { encrypt, decrypt } from '@/utils/jsencrypt'
  3. import { login, Dinglogin, OAlogin, getInfo, getMenus } from '@/api/login'
  4. import { getToken, setToken, removeToken } from '@/utils/auth'
  5. import { Message } from 'element-ui'
  6. const publicKey = ''
  7. const privateKey = ''
  8. const user = {
  9. state: {
  10. token: getToken(),
  11. name: '', // 用户名
  12. location: '',
  13. usercode: '', // 用户编号
  14. userRole: '', // 用户的角色权限
  15. userid: '', // 用户的 id
  16. extension: '', // 分机号
  17. avatar: '', // 用户头像
  18. seatflag: 1, // 坐席标志
  19. menus: [], // 菜单数据
  20. mobile: '', // 手机
  21. teamName: '', // 部门名称
  22. teamId: '',
  23. allowdept: ''
  24. },
  25. mutations: {
  26. SET_TOKEN: (state, token) => {
  27. state.token = token
  28. },
  29. SET_NAME: (state, name) => {
  30. state.name = name // 用户名
  31. },
  32. SET_CODE: (state, usercode) => {
  33. state.usercode = usercode // 用户编号
  34. },
  35. SET_LOCATION: (state, location) => {
  36. state.location = location // 部门id
  37. },
  38. SET_ROLE: (state, userRole) => {
  39. state.userRole = userRole // 用户的角色权限
  40. },
  41. SET_UID: (state, userid) => {
  42. state.userid = userid // 用户的 id
  43. },
  44. SET_EXT: (state, extension) => {
  45. state.extension = extension // 分机号
  46. },
  47. SET_AVATAR: (state, avatar) => {
  48. state.avatar = avatar // 用户头像
  49. },
  50. SET_SEATFLAG: (state, seatflag) => {
  51. state.seatflag = seatflag // 坐席标志
  52. },
  53. SET_MENUS: (state, menus) => {
  54. state.menus = menus // 菜单数据
  55. },
  56. SET_MOBILE: (state, mobile) => {
  57. state.mobile = mobile // 手机
  58. },
  59. SET_TEAMNAME: (state, teamName) => {
  60. state.teamName = teamName // 部门名称
  61. },
  62. SET_TEAMID: (state, teamId) => {
  63. state.teamId = teamId // 部门id
  64. },
  65. SET_ALLOWDEPT: (state, allowdept) => {
  66. state.allowdept = allowdept // 允用科室
  67. }
  68. },
  69. actions: {
  70. // 登录
  71. Login({ commit }, userInfo) {
  72. const username = userInfo.username.trim()
  73. const password = userInfo.jiamiword
  74. // const password = md5(userInfo.password)
  75. // const passwordEncrypt = encrypt(password)
  76. // const passwordDecryptt = decrypt(passwordEncrypt);
  77. window.localStorage.setItem('ext', userInfo.extension)
  78. return new Promise((resolve, reject) => {
  79. login(username, password)
  80. .then(response => {
  81. setToken(response.data)
  82. commit('SET_TOKEN', response.data)
  83. resolve()
  84. })
  85. .catch(error => {
  86. reject(error)
  87. })
  88. })
  89. },
  90. Dinglogin({ commit }, userInfo) {
  91. const code = userInfo.code.trim()
  92. // const passwordDecryptt = decrypt(passwordEncrypt);
  93. window.localStorage.setItem('ext', userInfo.extension)
  94. return new Promise((resolve, reject) => {
  95. Dinglogin(code)
  96. .then(response => {
  97. setToken(response.data)
  98. commit('SET_TOKEN', response.data)
  99. resolve()
  100. })
  101. .catch(error => {
  102. reject(error)
  103. })
  104. })
  105. },
  106. OAlogin({ commit }, userInfo) {
  107. const loginid = userInfo.loginid
  108. const oploginid = userInfo.oploginid
  109. return new Promise((resolve, reject) => {
  110. OAlogin(loginid, oploginid)
  111. .then(response => {
  112. setToken(response.data)
  113. commit('SET_TOKEN', response.data)
  114. resolve(response)
  115. })
  116. .catch(error => {
  117. reject(error)
  118. })
  119. })
  120. },
  121. // 获取用户信息
  122. GetInfo({ commit }) {
  123. return new Promise((resolve, reject) => {
  124. getInfo()
  125. .then(response => {
  126. console.log(response)
  127. const data = response.data
  128. // 用户信息
  129. commit('SET_SEATFLAG', data.User.F_SeatFlag) // 坐席标志 data.User.F_SeatFlag
  130. commit('SET_NAME', data.User.F_UserName) // 用户名
  131. commit('SET_UID', data.User.F_UserId) // 用户的 id
  132. commit('SET_CODE', data.User.F_UserCode) // 用户编号
  133. commit('SET_MOBILE', data.User.F_Telephone) // 手机
  134. commit('SET_LOCATION', data.Dept.F_Location) // 科室位置
  135. commit('SET_EXT', window.localStorage.getItem('ext')) // 分机号ssss
  136. commit('SET_ALLOWDEPT', data.User.F_AllowDepartment) // 允用科室
  137. window.localStorage.setItem('deptCode', data.Dept.F_DeptCode)
  138. window.localStorage.setItem(
  139. 'deptCode',
  140. data.Dept && data.Dept.F_DeptCode
  141. )
  142. window.localStorage.setItem(
  143. 'storageUsercode',
  144. data.User.F_UserCode
  145. )
  146. window.localStorage.setItem(
  147. 'storageUserphone',
  148. data.User.F_Telephone
  149. )
  150. window.localStorage.setItem('storageUsertx', data.User.F_See)
  151. window.localStorage.setItem('storageUserid', data.User.F_UserId)
  152. window.localStorage.setItem(
  153. 'storageUsername',
  154. data.User.F_UserName
  155. )
  156. window.localStorage.setItem('storageUserpwd', data.User.F_Password)
  157. window.localStorage.setItem('storageAllowUserDept', data.User.F_AllowDepartment)
  158. if (data.User.F_ZXZCode) {
  159. window.localStorage.setItem('groupCode', data.User.F_ZXZCode) // 用户的坐席组code
  160. } else {
  161. window.localStorage.setItem('groupCode', '364') // 用户的坐席组code
  162. }
  163. // commit('SET_AVATAR', data.F_HeadImg) // 用户头像
  164. // 角色信息
  165. commit('SET_ROLE', data.Role.F_RoleName) // 用户的角色权限
  166. window.localStorage.setItem('roleName', data.Role.F_RoleName) // 用户的坐席组code
  167. window.localStorage.setItem('roleCode', data.Role.F_RoleCode) // 用户的坐席组code
  168. // 部门信息
  169. commit('SET_TEAMNAME', data.Dept && data.Dept.F_DeptName) // 部门名称
  170. commit('SET_TEAMID', data.Dept && data.Dept.F_DeptId) // 部门id
  171. window.localStorage.setItem(
  172. 'deptId',
  173. data.Dept && data.Dept.F_DeptId
  174. ) // 用户的坐席组code
  175. resolve(response)
  176. })
  177. .catch(error => {
  178. reject(error)
  179. })
  180. })
  181. },
  182. // 获取菜单信息
  183. GetMenus({ commit, state }) {
  184. return new Promise((resolve, reject) => {
  185. getMenus()
  186. .then(response => {
  187. const menusdata = response.data
  188. if (menusdata && menusdata.length > 0) {
  189. // 验证返回的menusdata是否是一个非空数组
  190. commit('SET_MENUS', menusdata) // 菜单数据
  191. } else {
  192. removeToken()
  193. Message.error('获取菜单权限失败,请联系管理员分配菜单权限!')
  194. reject('getMneus: 菜单、按钮获取出错!')
  195. }
  196. resolve(response)
  197. })
  198. .catch(error => {
  199. reject(error)
  200. })
  201. })
  202. },
  203. // 前端 登出
  204. FedLogOut({ commit }) {
  205. return new Promise(resolve => {
  206. commit('SET_TOKEN', '')
  207. commit('SET_EXT', '')
  208. removeToken()
  209. window.localStorage.removeItem('ext') // 分机号
  210. window.sessionStorage.removeItem('telIsLogin') // 签入状态
  211. resolve()
  212. })
  213. },
  214. // 修改用户头像
  215. SetAvatar({ commit }, msg) {
  216. commit('SET_AVATAR', msg) // 用户头像
  217. }
  218. }
  219. }
  220. export default user