index.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. </template>
  3. <script setup lang="ts">
  4. import { ref } from "vue";
  5. import * as link from '@/lib/link'
  6. import dd from 'gdt-jsapi';
  7. import rest from '@/stores/rest'
  8. import { aesEncrypt, aesDecrypt } from "@/lib/encryption"
  9. import { onLoad } from "@dcloudio/uni-app";
  10. import { useUserStore } from '@/lib/store';
  11. import { storeToRefs } from 'pinia';
  12. const store = useUserStore();
  13. const { globalParameter } = storeToRefs(store);
  14. const formData = ref({
  15. appkey: null,
  16. appsecret: null,
  17. authCode: null,
  18. domainname: null,
  19. })
  20. const login = ()=> {
  21. dd.ready(()=> {
  22. dd.getAuthCode({}).then((result) => {
  23. if (result.code){
  24. formData.value.authCode = result.code
  25. }else {
  26. formData.value.authCode = result.auth_code
  27. }
  28. globalParameter.value.authCode = formData.value.authCode
  29. setTimeout(() => {
  30. getUserInfo(formData.value.authCode);
  31. }, 0);
  32. }).catch(err => {
  33. alert('不是钉钉环境',err)
  34. link.goLogin()
  35. })
  36. })
  37. }
  38. const getUserInfo = async (authCode) => {
  39. try {
  40. let res = await rest.post('/zyyp/ykz/getUserInfo?authCode='+ authCode,'')
  41. link.goBJList(aesEncrypt(res.openid),aesEncrypt(res.lastName))
  42. } catch (error) {
  43. console.error(error);
  44. }
  45. };
  46. onLoad((res) => {
  47. if (res.auth_code && res.appkey && res.appSecret && res.domain){
  48. const auth_code = res.auth_code
  49. const appkey = res.appkey
  50. const appsecret = res.appsecret
  51. const domainname = res.domain
  52. const data = {
  53. authcode:auth_code,
  54. appkey:appkey,
  55. appsecret:appsecret,
  56. domainname:domainname,
  57. }
  58. }else{
  59. login()
  60. }
  61. })
  62. </script>
  63. <style>
  64. </style>