index.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. </template>
  3. <script setup>
  4. import { v4 as uuidv4 } from 'uuid';
  5. import QRCode from 'qrcode'
  6. let qrUuid = uuidv4();
  7. let loginType = 3;
  8. let countTimeNum = 0;
  9. qrCodeLogin(qrUuid).then(res => {
  10. if (res.success) {
  11. qrUuid = res.data.key;
  12. setTimeout(() => {
  13. QRCode.toCanvas(canvas, qrUuid, (error) => {
  14. if (error) console.error(error);
  15. console.log('success!');
  16. toLoginWithQrCode();
  17. })
  18. }, 1000);
  19. }
  20. })
  21. function toLoginWithQrCode() {
  22. let qrCode = qrUuid;
  23. let logtyp = this.loginType;
  24. let timer = setTimeout(function () {
  25. countTimeNum++;
  26. if (countTimeNum > 20) {
  27. clearTimeout(timer);
  28. countTimeNum = 0;
  29. } else {
  30. if (logtyp == 3) {
  31. console.log('调用二维码登录');
  32. qrCodeLogin(qrCode).then(
  33. (res) => {
  34. console.log(res);
  35. if (res.success) {
  36. let userid = res.data.guid;
  37. let loginName = res.data.persName;
  38. let guid = res.data.orgId;
  39. let orgNm = res.data.orgNm;
  40. let isAdmin = res.data.permission;
  41. let allNode = JSON.stringify(res.data.allNode);//当前用户所在组信息
  42. let allOrg = JSON.stringify(res.data.allOrg);
  43. let persType = res.data.persType;
  44. let accessToken = res.accessToken; //token是否过期
  45. localStorage.setItem('userid', userid);
  46. localStorage.setItem('account', loginName);
  47. localStorage.setItem('guid', guid);
  48. localStorage.setItem('orgNm', orgNm);
  49. localStorage.setItem('isAdmin', isAdmin);
  50. localStorage.setItem('persType', persType);
  51. localStorage.setItem('accessToken', accessToken);
  52. let orgId = res.data.orgId;
  53. localStorage.setItem('orgId', orgId);
  54. localStorage.setItem('allOrg', allOrg);
  55. localStorage.setItem("currentOrgId", res.data.defaultOrg.orgId); //省级当前的机构id
  56. localStorage.setItem("currentRlcode", res.data.defaultOrg.rlcode); //省级当前的行政区划编码
  57. // 改变全局adcode状态
  58. $store.commit('changeAdCode', res.data.defaultOrg.rlcode)
  59. localStorage.setItem("currentOrgNm", res.data.defaultOrg.orgNm); //省级当前的机构名称
  60. localStorage.setItem('allNode', allNode);
  61. $message.success({
  62. message: '登录成功',
  63. duration: 700
  64. });
  65. $router.push('/')
  66. } else {
  67. toLoginWithQrCode();
  68. }
  69. }
  70. );
  71. }
  72. }
  73. }, 3000);
  74. }
  75. </script>