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() ??'' as string;
  15. console.log('Token value:', tokenValue);
  16. const nameValue = storage.get(constant.name)??'' as string;
  17. console.log('Name value:', nameValue);
  18. const avatarValue = storage.get(constant.avatar)??'' as string;
  19. console.log('Avatar value:', avatarValue);
  20. const rolesValue = storage.get(constant.roles)?? [] as string[];
  21. console.log('Roles value:', rolesValue);
  22. const permissionsValue = storage.get(constant.permissions)?? [] as string[];
  23. console.log('Permissions value:', permissionsValue);
  24. export const state = reactive({
  25. token: tokenValue,
  26. name: nameValue as string,
  27. avatar: avatarValue as string,
  28. roles: rolesValue as string[],
  29. permissions: permissionsValue as string[]
  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. // #ifdef APP
  66. const token:string = state?.token as string ?? ''
  67. SetToken(token);
  68. // #endif
  69. resolve()
  70. })
  71. }
  72. // 获取用户信息
  73. export const GetInfo=():Promise<UTSJSONObject>=> {
  74. return new Promise((resolve, reject) => {
  75. getInfo().then((res:UTSJSONObject) => {
  76. let avatar:string=profileImg as string
  77. let username:string="" as string
  78. const resMap=res.toMap() as Map<string,any>
  79. if(resMap.has("user")){
  80. const user:UTSJSONObject|null = res.getJSON("user");
  81. if(user!=null){
  82. const userMap=user.toMap() as Map<string,any>
  83. if(userMap.has("avatar")&&user.getString("avatar")!=null&&user.getString("avatar")!=""){
  84. avatar=globalConfig.baseUrl + user.getString("avatar") as string
  85. }
  86. if(userMap.has("userName")&&user.getString("userName")!=null&&user.getString("userName")!=""){
  87. username= user.getString("userName") as string
  88. }
  89. }
  90. }
  91. let roles=[] as string[]
  92. if(resMap.has("roles")){
  93. roles=res.getArray<string>("roles") as string[]
  94. if(roles.length>0){
  95. let permissions=[] as string[]
  96. if(resMap.has("permissions")){
  97. permissions=res.getArray<string>("permissions") as string[]
  98. }
  99. SetPermissions?.(permissions);
  100. }
  101. }
  102. SetRoles?.(roles)
  103. SetName?.(username);
  104. SetAvatar?.(avatar);
  105. resolve(res)
  106. })
  107. })
  108. }
  109. // 退出系统
  110. export const LogOut=():Promise<UTSJSONObject>=> {
  111. return new Promise<UTSJSONObject>((resolve, reject) => {
  112. logout(state.token).then(() => {
  113. SetToken('');
  114. SetRoles([]);
  115. SetPermissions([]);
  116. removeToken();
  117. //storage.clean?.();
  118. resolve({});
  119. })
  120. })
  121. }