index.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { ref, reactive } from 'vue'
  2. import { v4 } from 'uuid'
  3. import { sessionData } from '@/stores'
  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 useSign() {
  9. const loading = ref(false);
  10. const user = reactive<Proto.LoginReq>({
  11. LoginID: '1000',
  12. LoginPWD: '123456',
  13. GUID: v4(),
  14. LoginType: 0,
  15. ClientType: 4,
  16. Version: '2.0.0.0',
  17. DeviceID: ''
  18. })
  19. // 用户注册
  20. const signUp = () => {
  21. console.log('用户注册')
  22. }
  23. // 用户登录
  24. const signIn = () => {
  25. loading.value = true
  26. return new Promise((resolve, reject) => {
  27. queryLoginId({
  28. data: {
  29. username: user.LoginID
  30. },
  31. success: (res) => {
  32. login({
  33. data: {
  34. ...user,
  35. LoginID: res.data,
  36. LoginPWD: cryptojs.SHA256(res.data + user.LoginPWD).toString(),
  37. },
  38. success: (res) => {
  39. sessionData.setValue('loginInfo', res);
  40. initBaseData(() => {
  41. loading.value = false;
  42. resolve(res);
  43. }).catch((err) => {
  44. loading.value = false;
  45. reject(err);
  46. })
  47. },
  48. fail: (err) => {
  49. loading.value = false;
  50. reject(err);
  51. }
  52. })
  53. },
  54. fail: (err) => {
  55. loading.value = false;
  56. reject(err);
  57. }
  58. })
  59. })
  60. }
  61. // 用户登出
  62. const signOut = () => {
  63. eventBus.$emit('LogoutNotify');
  64. }
  65. return {
  66. loading,
  67. user,
  68. signUp,
  69. signIn,
  70. signOut,
  71. }
  72. }