index.uts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import {globalConfig} from '@/config';
  2. import storage from '@/utils/storage';
  3. import {constant} from '@/utils/constant';
  4. import { login, logout, getInfo } from '@/api/login';
  5. import { getToken, setToken, removeToken } from '@/utils/auth';
  6. import profileImg from '@/static/images/profile.jpg';
  7. type State = {
  8. token: string,
  9. name: string,
  10. avatar: string,
  11. roles: string[],
  12. permissions: string[],
  13. }
  14. const tokenValue = getToken();
  15. console.log('Token value:', tokenValue);
  16. const nameValue = storage.get(constant.name)??'';
  17. console.log('Name value:', nameValue);
  18. const avatarValue = storage.get(constant.avatar)??'';
  19. console.log('Avatar value:', avatarValue);
  20. const rolesValue = storage.get(constant.roles)?? [];
  21. console.log('Roles value:', rolesValue);
  22. const permissionsValue = storage.get(constant.permissions)?? [];
  23. console.log('Permissions value:', permissionsValue);
  24. export const state = reactive({
  25. token: tokenValue,
  26. name: nameValue,
  27. avatar: avatarValue,
  28. roles: rolesValue,
  29. permissions: permissionsValue
  30. } as State)
  31. export const SetToken=(token: string)=>{
  32. state.token = token;
  33. setToken(token)
  34. }
  35. export const SetName=(name: string)=>{
  36. state.name = name;
  37. storage.set(constant.name, name);
  38. }
  39. export const SetAvatar=(avatar: string)=> {
  40. state.avatar = avatar;
  41. storage.set(constant.avatar, avatar);
  42. }
  43. export const SetRoles=(roles: string[])=>{
  44. state.roles = roles;
  45. storage.set(constant.roles, roles);
  46. }
  47. export const SetPermissions=(permissions: string[]) =>{
  48. state.permissions = permissions;
  49. storage.set(constant.permissions, permissions);
  50. }
  51. // 登录
  52. export const Login=(userInfo:UTSJSONObject):Promise<void>=> {
  53. const username:string = (userInfo.getString("username") as string).trim() as string;
  54. const password:string = userInfo.getString("password") as string;
  55. const code:string = userInfo.getString("code") as string;
  56. const uuid:string = userInfo.getString("uuid") as string;
  57. return new Promise((resolve, reject) => {
  58. /*
  59. login(username, password, code, uuid).then((res:UTSJSONObject) => {
  60. SetToken(res.getString("token") as string);
  61. resolve()
  62. }).catch((error:any) => {
  63. reject(error)
  64. }) */
  65. SetToken(userInfo.getString("token") as string);
  66. resolve()
  67. })
  68. }
  69. // 获取用户信息
  70. export const GetInfo=():Promise<UTSJSONObject>=> {
  71. return new Promise((resolve, reject) => {
  72. getInfo().then((res:UTSJSONObject) => {
  73. let avatar:string=profileImg as string
  74. let username:string="" as string
  75. const resMap=res.toMap() as Map<string,any>
  76. if(resMap.has("user")){
  77. const user:UTSJSONObject|null = res.getJSON("user");
  78. if(user!=null){
  79. const userMap=user.toMap() as Map<string,any>
  80. if(userMap.has("avatar")&&user.getString("avatar")!=null&&user.getString("avatar")!=""){
  81. avatar=globalConfig.baseUrl + user.getString("avatar") as string
  82. }
  83. if(userMap.has("userName")&&user.getString("userName")!=null&&user.getString("userName")!=""){
  84. username= user.getString("userName") as string
  85. }
  86. }
  87. }
  88. let roles=[] as string[]
  89. if(resMap.has("roles")){
  90. roles=res.getArray<string>("roles") as string[]
  91. if(roles.length>0){
  92. let permissions=[] as string[]
  93. if(resMap.has("permissions")){
  94. permissions=res.getArray<string>("permissions") as string[]
  95. }
  96. SetPermissions?.(permissions);
  97. }
  98. }
  99. SetRoles?.(roles)
  100. SetName?.(username);
  101. SetAvatar?.(avatar);
  102. resolve(res)
  103. }).catch((error:any) => {
  104. reject(error)
  105. })
  106. })
  107. }
  108. // 退出系统
  109. export const LogOut=():Promise<UTSJSONObject>=> {
  110. return new Promise<UTSJSONObject>((resolve, reject) => {
  111. logout(state.token).then(() => {
  112. SetToken('');
  113. SetRoles([]);
  114. SetPermissions([]);
  115. removeToken();
  116. storage.clean?.();
  117. resolve({});
  118. }).catch((error:any) => {
  119. reject(error);
  120. })
  121. })
  122. }