You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

initData.ts 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. import { createStore } from 'vuex'
  2. import { IHttpResponse, IObject } from '@/types/interface'
  3. import { removeCache, getCache } from '@/utils/cache'
  4. import { dictApi } from '@/api/common'
  5. import { getMySystem, getUserInfoApi } from '@/api/system/login'
  6. import BaseService from '@/utils/baseService'
  7. import { ElMessage } from 'element-plus'
  8. export default createStore<any>({
  9. //存放的属性(数据变量)。
  10. state: {
  11. initStatus: false, //开启vuex 缓存
  12. menuList: [] as IObject[],
  13. dictData: sessionStorage.getItem('dictData') ?? {},
  14. mySystemList: [] as IObject[],
  15. userInfo: { name: '', mobile: '' },
  16. realNameAuthentication: sessionStorage.getItem('realNameAuthentication') ?? '', // 强制实名验证(0-已实名,1-未实名)
  17. needChangePasswordNow: sessionStorage.getItem('needChangePasswordNow') ?? '', // 强制修改密码(0-不需要提醒用户修改密码,1-需要提醒用户去修改密码)
  18. },
  19. //从基本数据(state)派生的数据,相当于state的计算属性。
  20. getters: {
  21. userName: (state) => {
  22. // 用户名
  23. return state.userInfo.name
  24. },
  25. },
  26. actions: {
  27. updateMenu(context, value) {
  28. //声明变量的值,所传内容的值
  29. context.commit('UpdateMenu', value)
  30. },
  31. loginOut(context, value) {
  32. context.commit('LoginOut', value)
  33. context.commit('RealNameAuthentication', '')
  34. context.commit('NeedChangePasswordNow', '' )
  35. },
  36. backIndexClear(context, value) {
  37. context.commit('BackIndexClear', value)
  38. },
  39. // 字典
  40. dictData(context, value) {
  41. if(sessionStorage.getItem('dictData') && sessionStorage.getItem('dictData')[context]){
  42. return
  43. }
  44. //字典全量接口
  45. BaseService.post('/userw/dict/itemGetAll').then((res: any) => {
  46. if (res && res.code === 0) {
  47. let bizContent = res.data
  48. let data = bizContent.dictTypeAndItem || {}
  49. console.log(data,'dictTypeAndItem')
  50. let newData = {}
  51. for (let key in data) {
  52. let valList = data[key]
  53. let newList: any = []
  54. valList.map((item) => {
  55. let tem = {
  56. ...item,
  57. }
  58. tem.label = item.name
  59. tem.value = item.code
  60. newList.push(tem)
  61. })
  62. newData[key] = newList
  63. }
  64. sessionStorage.setItem('dictData', JSON.stringify(newData))
  65. context.commit('DictData', newData)
  66. }
  67. })
  68. },
  69. // 授权的系统
  70. getMySystem(context) {
  71. let cacheAccessToken = getCache(
  72. 'cacheAccessToken',
  73. { isSessionStorage: false },
  74. {}
  75. )
  76. let openId = cacheAccessToken['openId']
  77. let params = {
  78. openId: openId,
  79. }
  80. // 根据用户标识返回其可访问的所有系统类型)iaw/rbac/systemTypeByAccountRole
  81. BaseService.post('/userw/rbac/systemTypeByAccountRole', params).then((res: any) => {
  82. if (res && res.statusCode === 0) {
  83. let bizContent = res.data
  84. console.log('可访问的系统',bizContent,'请求参数',bizContent);
  85. let systemTypeList = bizContent.list || []
  86. context.commit('MysystemList', systemTypeList)
  87. }
  88. })
  89. },
  90. // 获取用户信息
  91. getUserInfo(context) {
  92. let cacheAccessToken = getCache(
  93. 'cacheAccessToken',
  94. { isSessionStorage: false },
  95. {}
  96. )
  97. let openId = cacheAccessToken['openId']
  98. let params = {
  99. openId: openId,
  100. }
  101. // // 根据用户标识返回其可访问的所有系统类型)
  102. // BaseService.post('/userw/staff/getinfobyopenid', params).then((res: any) => {
  103. // if (res && res.statusCode === 0) {
  104. // console.log(res);
  105. // let bizContent = res.data
  106. // context.commit('setUserInfo', {
  107. // name: bizContent.staffName,
  108. // mobile: bizContent.mobile,
  109. // })
  110. // } else {
  111. // ElMessage.error(res.message)
  112. // }
  113. // })
  114. },
  115. realNameAuthentication(context, value) {
  116. context.commit('RealNameAuthentication', value)
  117. },
  118. needChangePasswordNow(context, value) {
  119. context.commit('NeedChangePasswordNow', value)
  120. },
  121. initData(context) {
  122. //初始化数据
  123. // sessionStorage.clear() //清除所有 session
  124. context.dispatch('dictData') //获取枚举
  125. context.dispatch('getMySystem') //根据用户标识返回其可访问的所有系统类型
  126. context.dispatch('getUserInfo') //根据用户标识获取用户信息
  127. context.commit('InitUpdate', true) //初始化更新类型
  128. },
  129. },
  130. //每个mutations都有一个字符串的事件类型(type)和一个回调函数(hander)。
  131. mutations: {
  132. UpdateMenu(state, value) {
  133. state.menuList = value
  134. },
  135. LoginOut(state, value) {
  136. state.menuList = []
  137. sessionStorage.clear(); //清除所有 session
  138. removeCache('selectedCodeCatch', true)
  139. removeCache('cacheAccessToken', true)
  140. removeCache('cacheUser', true)
  141. },
  142. BackIndexClear(state, value) {
  143. //清除索引
  144. state.initStatus = false
  145. state.menuList = []
  146. state.dictData = {
  147. statusLis: [],
  148. }
  149. state.mySystemList = []
  150. removeCache('selectedCodeCatch', true)
  151. },
  152. DictData(state, value) {
  153. state.dictData = value
  154. },
  155. setUserInfo(state, value) {
  156. state.userInfo = value
  157. },
  158. MysystemList(state, value) {
  159. state.mySystemList = value
  160. },
  161. InitUpdate(state, value) {
  162. state.initStatus = value
  163. },
  164. RealNameAuthentication(state, value) {
  165. sessionStorage.setItem('realNameAuthentication', value)
  166. state.realNameAuthentication = value
  167. },
  168. NeedChangePasswordNow(state, value) {
  169. sessionStorage.setItem('needChangePasswordNow', value)
  170. state.needChangePasswordNow = value
  171. },
  172. },
  173. modules: {},
  174. })