index.uts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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 cleanAll=()=>{
  40. uni.removeStorageSync('storage_data')
  41. }
  42. export const SetAvatar=(avatar: string)=> {
  43. state.avatar = avatar;
  44. storage.set(constant.avatar, avatar);
  45. }
  46. export const SetRoles=(roles: string[])=>{
  47. state.roles = roles;
  48. storage.set(constant.roles, roles);
  49. }
  50. export const SetPermissions=(permissions: string[]) =>{
  51. state.permissions = permissions;
  52. storage.set(constant.permissions, permissions);
  53. }
  54. // 登录
  55. export const Login=(userInfo:UTSJSONObject):Promise<void>=> {
  56. const username:string = (userInfo.getString("username") as string).trim() as string;
  57. const password:string = userInfo.getString("password") as string;
  58. const code:string = userInfo.getString("code") as string;
  59. const uuid:string = userInfo.getString("uuid") as string;
  60. return new Promise((resolve, reject) => {
  61. login(username, password, code, uuid).then((res:UTSJSONObject) => {
  62. //SetToken(res.getString("token") as string);
  63. console.log(res)
  64. let msg = res.getString("errMsg")
  65. let data = res.getArray("data") as UTSJSONObject[]
  66. if(msg == 'ok' && data.length>0){
  67. SetToken(data[0].getString("token") as string)
  68. resolve()
  69. }else{
  70. reject('登录失败')
  71. }
  72. })
  73. })
  74. }
  75. // 获取用户信息
  76. export const GetInfo=():Promise<UTSJSONObject>=> {
  77. return new Promise((resolve, reject) => {
  78. getInfo().then((res:UTSJSONObject) => {
  79. let avatar:string=profileImg as string
  80. let username:string="" as string
  81. const resMap=res.toMap() as Map<string,any>
  82. if(resMap.has("data")){
  83. const data:UTSJSONObject[]|null = resMap?.get("data") as UTSJSONObject[] ?? null;
  84. if(data!=null && data.length>0){
  85. const user = data?.[0] as UTSJSONObject
  86. const userMap=user.toMap() as Map<string,any>
  87. if(userMap.has("avatar")&&user.getString("avatar")!=null&&user.getString("avatar")!=""){
  88. avatar=globalConfig.baseUrl + user.getString("avatar") as string
  89. }
  90. if(userMap.has("username")&&user.getString("username")!=null&&user.getString("username")!=""){
  91. username= user.getString("username") as string
  92. }
  93. }
  94. }
  95. let roles=[] as string[]
  96. if(resMap.has("roles")){
  97. roles=res.getArray<string>("roles") as string[]
  98. if(roles.length>0){
  99. let permissions=[] as string[]
  100. if(resMap.has("permissions")){
  101. permissions=res.getArray<string>("permissions") as string[]
  102. }
  103. SetPermissions?.(permissions);
  104. }
  105. }
  106. SetRoles?.(roles)
  107. SetName?.(username);
  108. SetAvatar?.(avatar);
  109. resolve(res)
  110. })
  111. })
  112. }
  113. // 退出系统
  114. export const LogOut=():Promise<UTSJSONObject>=> {
  115. return new Promise<UTSJSONObject>((resolve, reject) => {
  116. console.log(state.token)
  117. logout(state.token).then(() => {
  118. SetToken('');
  119. SetRoles([]);
  120. SetPermissions([]);
  121. removeToken();
  122. cleanAll();
  123. resolve({});
  124. })
  125. })
  126. }