App.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <script>
  2. import {
  3. onMounted,
  4. ref
  5. } from 'vue'
  6. import * as link from '@/lib/link'
  7. import {
  8. computed
  9. } from "vue";
  10. import rest from '@/stores/rest'
  11. import dd from 'gdt-jsapi';
  12. import {
  13. useUserStore
  14. } from '@/lib/store'
  15. export default {
  16. setup() {
  17. const store = useUserStore();
  18. const globalParameter = computed(() => store.getGlobalParameter);
  19. const formData = ref({
  20. appkey: null,
  21. appsecret: null,
  22. authCode: null,
  23. domainname: null,
  24. })
  25. const getBasicInfo = () => {
  26. getAuthCode()
  27. }
  28. const getAuthCode = () => {
  29. dd.ready(() => {
  30. dd.getAuthCode({}).then((result) => {
  31. if (result.code) {
  32. formData.value.authCode = result.code
  33. } else {
  34. formData.value.authCode = result.auth_code
  35. }
  36. setTimeout(() => {
  37. getUserInfo(formData.value.authCode);
  38. }, 0);
  39. }).catch(err => {
  40. link.goLogin()
  41. })
  42. })
  43. }
  44. const getUserInfo = async (authCode) => {
  45. try {
  46. let res = await rest.post('/zyyp/ykz/getUserInfo?authCode=' + authCode, '')
  47. if (!res) return
  48. let obj = Object.assign({}, globalParameter.value)
  49. obj.authCode = formData.value.authCode;
  50. obj.zjhm = res.openid;
  51. obj.userName = res.lastName;
  52. obj.isLeader = res.leader;
  53. store.setGlobalParameter(obj)
  54. } catch (error) {
  55. console.error(error);
  56. }
  57. };
  58. const startIntervalTask = () => {
  59. // 每 60 分钟执行一次任务
  60. setInterval(() => {
  61. getBasicInfo();
  62. }, 60 * 60 * 1000); // 60 分钟
  63. };
  64. onMounted(() => {
  65. startIntervalTask();
  66. });
  67. return {
  68. formData,
  69. getBasicInfo,
  70. getAuthCode,
  71. getUserInfo,
  72. startIntervalTask,
  73. };
  74. }
  75. }
  76. </script>
  77. <style lang="scss">
  78. /*每个页面公共css */
  79. @import "uni.scss";
  80. @import "static/style/base.scss";
  81. </style>