xt_user.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. import { modifyAdminInfo, verifyToken } from '@/api/login/login'
  2. // import { mapGetters } from 'vuex'
  3. // import { getToken, setToken, removeToken } from '@/utils/auth'
  4. import { cacheAdminUserInfo, getAdminUserInfoCache, removeAdminUserInfoCache } from '@/utils/admin_info_cache'
  5. import { getFiledConfigList, setFiledConfigList } from '@/utils/data_config' // getConfigList from sessionStorage
  6. const xt_user = {
  7. state: {
  8. org_id: 0,
  9. schedule_type_selected: 0,
  10. zone_selected: 0,
  11. patient_state_selected: 0,
  12. treat_state_selected: 0,
  13. app_id: 0,
  14. user: {
  15. id: 0,
  16. mobile: '',
  17. avatar: '',
  18. user_name: '',
  19. intro: '',
  20. user_type: 0, // 用户类型(1.管理员;2.医生;3.护士;4.运营)
  21. user_title: 0 // 用户职称(1.医士;2.医师;3.住院医师;4.主治医师;5.副主任医师;6.主任医师;7.护士;8.护师;9.主管护师;10.副主任护师;11.主任护师;12.运营专员;13.运营主管)
  22. },
  23. template_info: {
  24. id: 0,
  25. org_id: 0,
  26. template_id: 0
  27. },
  28. org: {
  29. id: 0,
  30. org_name: '',
  31. org_short_name: '',
  32. org_intro: '',
  33. org_logo: '',
  34. province: 0,
  35. city: 0,
  36. district: 0,
  37. address: ''
  38. },
  39. subscibe: {
  40. id: 0,
  41. period_start: 0,
  42. period_end: 0,
  43. state: 2, // 1正版(标准) 2试用(免费) 3过期(或其他无效状态) 8 专业 9 永久,
  44. patients: 20 // 患者数
  45. },
  46. scrm_role_exist: false,
  47. cdm_role_exist: false,
  48. mall_role_exist: false,
  49. // 示例: ['', '',]
  50. urlfors: [],
  51. fileds: []
  52. },
  53. mutations: {
  54. SET_SCHEDULE_TYPE_SELECTED: (state, schedule_type_selected) => {
  55. state.schedule_type_selected = schedule_type_selected
  56. },
  57. SET_ZONE_SELECTED: (state, zone_selected) => {
  58. state.zone_selected = zone_selected
  59. },
  60. SET_PAtIENT_STATE_SELECTED: (state, patient_state_selected) => {
  61. state.patient_state_selected = patient_state_selected
  62. },
  63. SET_TREAT_STATE_SELECTED: (state, treat_state_selected) => {
  64. state.treat_state_selected = treat_state_selected
  65. },
  66. SET_FILEDS_LIST: (state, configlist) => {
  67. state.fileds = configlist
  68. },
  69. // cur_info: { user, cur_org_id, cur_app_id }
  70. SET_CURRENT_INFO: (state, cur_info) => {
  71. state.user.id = cur_info.user.id
  72. state.user.mobile = cur_info.user.mobile
  73. state.user.avatar = cur_info.user.avatar
  74. state.user.user_name = cur_info.user.user_name
  75. state.user.intro = cur_info.user.intro
  76. state.user.user_type = cur_info.user.user_type
  77. state.user.user_title = cur_info.user.user_title
  78. state.org_id = cur_info.cur_org_id
  79. state.app_id = cur_info.cur_app_id
  80. state.org.id = cur_info.org.id
  81. state.org.org_name = cur_info.org.org_name
  82. state.org.org_short_name = cur_info.org.org_short_name
  83. state.org.org_logo = cur_info.org.org_logo
  84. state.org.org_intro = cur_info.org.org_intro
  85. state.org.province = cur_info.org.province
  86. state.org.city = cur_info.org.city
  87. state.org.district = cur_info.org.district
  88. state.org.address = cur_info.org.address
  89. state.subscibe.id = cur_info.subscibe.id
  90. state.subscibe.period_start = cur_info.subscibe.period_start
  91. state.subscibe.period_end = cur_info.subscibe.period_end
  92. state.subscibe.state = cur_info.subscibe.state
  93. state.scrm_role_exist = cur_info.scrm_role_exist
  94. state.cdm_role_exist = cur_info.cdm_role_exist
  95. state.mall_role_exist = cur_info.mall_role_exist
  96. state.template_info.id = cur_info.template_info.id
  97. state.template_info.org_id = cur_info.template_info.org_id
  98. state.template_info.template_id = cur_info.template_info.template_id
  99. },
  100. SET_FILEDS: (state, payload) => {
  101. state.fileds = payload.fileds
  102. },
  103. SET_URLFORS: (state, payload) => {
  104. state.urlfors = payload.urlfors
  105. },
  106. MODIFY_USER_INFO: (state, payload) => {
  107. state.user.user_name = payload.user_name
  108. state.user.avatar = payload.avatar
  109. },
  110. MODIFY_ORG_INFO: (state, payload) => {
  111. state.org.org_name = payload.org_name
  112. state.org.org_short_name = payload.org_short_name
  113. },
  114. SET_SUBSCIBE_PATIENT: (state) => {
  115. state.subscibe.patients += 1
  116. },
  117. CLEAR_USER_INFO: (state) => {
  118. state.org_id = 0
  119. state.app_id = 0
  120. state.user.id = 0
  121. state.user.mobile = ''
  122. state.user.avatar = ''
  123. state.user.user_name = ''
  124. state.user.intro = ''
  125. state.user_type = ''
  126. state.user_title = ''
  127. state.org.id = 0
  128. state.org.org_name = ''
  129. state.org.org_short_name = ''
  130. state.org.org_logo = ''
  131. state.org.org_intro = ''
  132. state.org.province = 0
  133. state.org.city = 0
  134. state.org.district = 0
  135. state.org.address = ''
  136. state.subscibe.id = 0
  137. state.subscibe.period_start = 0
  138. state.subscibe.period_end = 0
  139. state.subscibe.state = 3
  140. state.subscibe.patients = 0
  141. state.scrm_role_exist = false
  142. state.cdm_role_exist = false
  143. state.mall_role_exist = false
  144. state.template_info.id = 0
  145. state.template_info.org_id = 0
  146. state.template_info.template_id = 1
  147. state.urlfors = []
  148. state.fileds = []
  149. }
  150. },
  151. getters: {
  152. current_role_urls: state => {
  153. return state.urlfors
  154. }
  155. },
  156. actions: {
  157. SetScheduleTypeSelected({ commit }, schedule_type_selected) {
  158. commit('SET_SCHEDULE_TYPE_SELECTED', schedule_type_selected)
  159. },
  160. SetZoneSelected({ commit }, zone_selected) {
  161. commit('SET_ZONE_SELECTED', zone_selected)
  162. },
  163. SetPatientStateSelected({ commit }, patient_state_selected) {
  164. commit('SET_PAtIENT_STATE_SELECTED', patient_state_selected)
  165. },
  166. SetTreatStateSelected({ commit }, treat_state_selected) {
  167. commit('SET_TREAT_STATE_SELECTED', treat_state_selected)
  168. },
  169. SetSubscibePatients({
  170. commit,
  171. state
  172. }) {
  173. commit('SET_SUBSCIBE_PATIENT')
  174. },
  175. VerifyToken({
  176. commit,
  177. state
  178. }, token) {
  179. // console.log('验证 token 之前:token = ' + token)
  180. return new Promise((resolve, reject) => {
  181. var cacheInfo = getAdminUserInfoCache()
  182. var fileds = getFiledConfigList()
  183. var infoJSON = JSON.parse(fileds)
  184. commit('SET_FILEDS', {
  185. fileds: infoJSON
  186. })
  187. // console.log('登录信息缓存:', cacheInfo)
  188. verifyToken(token).then(response => {
  189. if (response.data.state === 1) {
  190. // alert('验证通过')
  191. // console.log('验证通过')
  192. var data = response.data.data
  193. this.commit('SET_CURRENT_INFO', {
  194. user: data.user,
  195. cur_org_id: data.current_org_id,
  196. cur_app_id: data.current_app_id,
  197. org: data.org,
  198. subscibe: data.subscibe,
  199. template_info: data.template_info,
  200. scrm_role_exist: data.scrm_role_exist,
  201. cdm_role_exist: data.cdm_role_exist,
  202. mall_role_exist: data.mall_role_exist
  203. })
  204. let urlfors = data.urlfors
  205. if(data.cdm_role_exist == true){
  206. console.log("有")
  207. urlfors.push("/slow")
  208. this.commit('SET_URLFORS', {
  209. urlfors: urlfors
  210. })
  211. }else{
  212. this.commit('SET_URLFORS', {
  213. urlfors: data.urlfors
  214. })
  215. }
  216. if(data.scrm_role_exist == true){
  217. urlfors.push("/scrm")
  218. this.commit('SET_URLFORS', {
  219. urlfors: urlfors
  220. })
  221. }else{
  222. this.commit('SET_URLFORS', {
  223. urlfors: data.urlfors
  224. })
  225. }
  226. if(data.mall_role_exist == true){
  227. console.log("有")
  228. urlfors.push("/shop")
  229. this.commit('SET_URLFORS', {
  230. urlfors: urlfors
  231. })
  232. }else{
  233. this.commit('SET_URLFORS', {
  234. urlfors: data.urlfors
  235. })
  236. }
  237. // this.commit('SET_URLFORS', {
  238. // urlfors: data.urlfors
  239. // })
  240. commit('SET_FILEDS', {
  241. fileds: data.fileds
  242. })
  243. setFiledConfigList(JSON.stringify(data.fileds))
  244. cacheAdminUserInfo(JSON.stringify(data))
  245. resolve(data.user.id)
  246. } else {
  247. alert('请求失败:' + response.data.msg)
  248. reject({
  249. msg: response.data.msg,
  250. code: response.data.code
  251. })
  252. }
  253. })
  254. })
  255. },
  256. ModifyAdminUserInfo({
  257. commit,
  258. state
  259. }, params) {
  260. commit('MODIFY_USER_INFO', {
  261. user_name: params.user_name,
  262. avatar: params.avatar
  263. })
  264. cacheAdminUserInfo(
  265. JSON.stringify({
  266. user: state.user,
  267. org: state.org,
  268. current_org_id: state.org_id,
  269. current_app_id: state.app_id,
  270. urlfors: state.urlfors,
  271. subscibe: state.subscibe,
  272. template_info: state.template_info,
  273. scrm_role_exist: state.scrm_role_exist,
  274. cdm_role_exist: state.cdm_role_exist,
  275. mall_role_exist: state.mall_role_exist
  276. })
  277. )
  278. },
  279. ModifyOrgInfo({
  280. commit,
  281. state
  282. }, params) {
  283. commit('MODIFY_ORG_INFO', {
  284. org_name: params.org_name,
  285. org_short_name: params.org_short_name
  286. })
  287. cacheAdminUserInfo(
  288. JSON.stringify({
  289. user: state.user,
  290. org: state.org,
  291. current_org_id: state.org_id,
  292. current_app_id: state.app_id,
  293. urlfors: state.urlfors,
  294. subscibe: state.subscibe,
  295. template_info: state.template_info,
  296. scrm_role_exist: state.scrm_role_exist,
  297. cdm_role_exist: state.cdm_role_exist,
  298. mall_role_exist: state.mall_role_exist
  299. })
  300. )
  301. },
  302. // InitAdminUserInfo( {commit, state} ) {
  303. // var cacheInfo = getAdminUserInfoCache()
  304. // console.log("登录信息缓存:", cacheInfo)
  305. // if (cacheInfo != null && cacheInfo.length > 0) {
  306. // var infoJSON = JSON.parse(cacheInfo)
  307. // console.log(infoJSON)
  308. // commit('SET_CURRENT_INFO', {
  309. // user: infoJSON.user,
  310. // cur_org_id: infoJSON.current_org_id,
  311. // cur_app_id: infoJSON.current_app_id,
  312. // org: infoJSON.org,
  313. // })
  314. // commit('SET_URLFORS', {
  315. // urlfors: infoJSON.urlfors
  316. // })
  317. // }
  318. // }
  319. // 登出
  320. FrontendLogout({
  321. commit
  322. }) {
  323. commit('CLEAR_USER_INFO')
  324. removeAdminUserInfoCache()
  325. }, updateFiledConfigList({ commit }, object) {
  326. var oldFiledList = getFiledConfigList()
  327. var infoJSON = JSON.parse(oldFiledList)
  328. console.log(object)
  329. return new Promise((resolve, reject) => {
  330. for (let i = 0; i < infoJSON.length; i++) {
  331. if (infoJSON[i].id == object.id) {
  332. infoJSON[i].is_show = object.is_show
  333. }
  334. }
  335. setFiledConfigList(JSON.stringify(infoJSON))
  336. commit('SET_FILEDS_LIST', infoJSON)
  337. resolve()
  338. })
  339. }, updateAllFiledConfigList({ commit }, object) {
  340. console.log(object)
  341. var oldFiledList = getFiledConfigList()
  342. var infoJSON = JSON.parse(oldFiledList)
  343. return new Promise((resolve, reject) => {
  344. infoJSON = object
  345. console.log(infoJSON)
  346. setFiledConfigList(JSON.stringify(infoJSON))
  347. commit('SET_FILEDS_LIST', infoJSON)
  348. resolve()
  349. })
  350. }, ModifyAdminUserOrgInfo({ commit, state }, obj) {
  351. this.commit('SET_CURRENT_INFO',obj)
  352. },ModifyUrlInfo({ commit, state }, obj) {
  353. this.commit('SET_URLFORS', obj)
  354. },ModifyFiled({ commit, state }, obj) {
  355. commit('SET_FILEDS', obj)
  356. }
  357. }
  358. }
  359. export default xt_user