user.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import pinia from "@/store/init"
  2. import {useAppStore} from "@/store";
  3. import {setStorage} from "@/utils/storage";
  4. import userApi from '~api/user/index';
  5. import projectApi from "~api/user/project";
  6. import {setToken, setRefreshToken} from '@/httpApi/util/auth';
  7. import {getObjValue} from "js-fast-way";
  8. const store = useAppStore(pinia)
  9. //账号密码登录
  10. export const userLogin = async (form) => {
  11. const {error, status, res, response, message} = await userApi.userLogin(form);
  12. if (!error && status === 200) {
  13. //设置全局状态
  14. const {access_token, refresh_token, tenant_id} = res;
  15. setToken(access_token)
  16. setRefreshToken(refresh_token)
  17. store.setTenantId(tenant_id)
  18. store.setUserInfo(res)
  19. //设置登录信息的缓存
  20. setStorage('login_user_info', {
  21. tenantId: tenant_id,
  22. username: form.username,
  23. password: form.password,
  24. type: form.type
  25. });
  26. await getProjectContract()
  27. return Promise.resolve(res);
  28. } else {
  29. return Promise.reject({
  30. msg: message,
  31. res: response
  32. });
  33. }
  34. }
  35. //获取默认项目信息
  36. export const getProjectContract = async () => {
  37. const {error, status, data} = await projectApi.getDefaultProject()
  38. if (!error && status === 200) {
  39. store.setProjectId(data.projectId)
  40. store.setContractId(data.contractId)
  41. //获取项目详情
  42. await getProjectInfo(data.projectId)
  43. await getContractInfo(data.contractId)
  44. }
  45. }
  46. //获取项目信息
  47. const getProjectInfo = async (projectId) => {
  48. const {data} = await projectApi.getProjectInfo(projectId)
  49. store.setProjectInfo(getObjValue(data))
  50. }
  51. //获取合同段信息
  52. const getContractInfo = async (contractId) => {
  53. const {data} = await projectApi.getContractInfo(contractId)
  54. store.setContractInfo(getObjValue(data))
  55. }