index.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { ref, reactive } from 'vue'
  2. import { v4 } from 'uuid'
  3. import { sessionCache } from '@/store'
  4. import { initBaseData } from '@/business/common'
  5. import { login, queryLoginId } from '@/services/api/account'
  6. import cryptojs from 'crypto-js'
  7. import eventBus from '@/services/bus'
  8. export function useAccount() {
  9. const loading = ref(false);
  10. const account = reactive<Proto.LoginReq>({
  11. LoginID: 'xyy',
  12. LoginPWD: '123456',
  13. GUID: v4(),
  14. LoginType: 0,
  15. ClientType: 4,
  16. Version: '2.0.0.0',
  17. DeviceID: ''
  18. })
  19. // 用户登录
  20. const userLogin = () => {
  21. loading.value = true
  22. return new Promise((resolve, reject) => {
  23. queryLoginId({
  24. data: {
  25. username: account.LoginID
  26. },
  27. success: (res) => {
  28. login({
  29. data: {
  30. ...account,
  31. LoginID: res.data,
  32. LoginPWD: cryptojs.SHA256(res.data + account.LoginPWD).toString(),
  33. },
  34. success: (res) => {
  35. sessionCache.setValue('loginInfo', res);
  36. initBaseData(() => {
  37. loading.value = false;
  38. resolve(res);
  39. }).catch((err) => {
  40. loading.value = false;
  41. reject(err);
  42. })
  43. },
  44. fail: (err) => {
  45. loading.value = false;
  46. reject(err);
  47. }
  48. })
  49. },
  50. fail: (err) => {
  51. loading.value = false;
  52. reject(err);
  53. }
  54. })
  55. })
  56. }
  57. // 用户登出
  58. const userlogout = () => {
  59. eventBus.$emit('LogoutNotify');
  60. }
  61. return {
  62. loading,
  63. account,
  64. userLogin,
  65. userlogout,
  66. }
  67. }