bx.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <!-- 宝信单点登录 -->
  3. <div>
  4. <div class="center_loading" v-loading:body="loading"></div>
  5. </div>
  6. </template>
  7. <script setup>
  8. import { onMounted } from 'vue'
  9. const { VITE_BX_AUTH_URL, VITE_BX_CLIENT_ID, VITE_BX_REDIRECT_URL } =import.meta.env
  10. import { useUserStore } from '@/store/user.js'
  11. const loading = ref(true)
  12. const router = useRouter()
  13. onMounted(() => {
  14. let geturl = window.location.href
  15. console.log(geturl)
  16. let getqyinfo = geturl.split('?')[1] // 截取到参数部分
  17. let getqys = new URLSearchParams('?' + getqyinfo) //将参数放在URLSearchParams函数中
  18. let code = getqys.get('code')
  19. let redirect_url = getqys.get('redirect_url')
  20. if (redirect_url) {
  21. localStorage.setItem('edgeRedirect', redirect_url)
  22. }
  23. if (code) {
  24. goLoginEplat(code)
  25. } else {
  26. let url =
  27. VITE_BX_AUTH_URL +
  28. '?response_type=code&client_id=' +
  29. VITE_BX_CLIENT_ID +
  30. '&redirect_uri=' +
  31. VITE_BX_REDIRECT_URL +
  32. '&scope=write'
  33. console.log(url)
  34. window.location.href = url
  35. }
  36. })
  37. function goLoginEplat(code) {
  38. console.log(code)
  39. useUserStore().bxLogin(code).then(() => {
  40. const redirect_url = localStorage.getItem('edgeRedirect')
  41. if (redirect_url) {
  42. router.push(redirect_url)
  43. localStorage.removeItem('edgeRedirect')
  44. } else {
  45. router.push('/')
  46. }
  47. }).catch(err => {
  48. router.push('/noPermission')
  49. // console.log("登录成功")
  50. })
  51. }
  52. </script>
  53. <style lang='scss' scoped>
  54. .center_loading {
  55. position: fixed;
  56. top: 50%;
  57. left: 50%;
  58. transform: translate(-50%, -50%);
  59. width: 100%; /* 调整宽度 */
  60. height: 100px; /* 调整高度 */
  61. // background-color: #ccc; /* 背景颜色 */
  62. // border: 1px solid #000; /* 边框 */
  63. }
  64. </style>