ssoLogin.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!-- 认证平台登录 -->
  2. <template>
  3. <div class="sso-login-page">
  4. </div>
  5. </template>
  6. <script>
  7. // V3
  8. import { encrypt, decrypt } from '@/utils/jsencrypt'
  9. import { Encrypt,Decrypt} from '@/utils/secret'
  10. import store from '@/store'
  11. import { login,authInfo,getCodeImg,getConfigByType,configInfo} from "@/api/login";
  12. import { setToken } from '@/utils/auth'
  13. export default {
  14. name: 'Login',
  15. data() {
  16. return {
  17. redirect: undefined,
  18. rectangleLogo: localStorage.getItem('rectangleLogo')
  19. }
  20. },
  21. watch: {
  22. $route: {
  23. handler: function(route) {
  24. this.redirect = route.query && route.query.redirect
  25. },
  26. immediate: true
  27. }
  28. },
  29. created() {
  30. localStorage.setItem('entranceJumpType','SCHOOL');
  31. let url = window.location.href
  32. if (url.indexOf('token') != -1) {
  33. // console.log('找到了====>token')
  34. setToken(url.split('=')[1])
  35. this.getInfo();
  36. } else if (url.indexOf('code') != -1) {
  37. // console.log('找到了====>code')
  38. //异常状态处理
  39. if(url.split('=')[1] == '10100'){
  40. //10100 用户信息不存在
  41. this.$alert('当前用户不存在,请联系管理员!', '提示', {
  42. confirmButtonText: '确定',
  43. callback: action => {
  44. store.dispatch('LogOut').then(() => {
  45. window.location.href = process.env.VUE_APP_OUT_URL;
  46. })
  47. }
  48. });
  49. }else if(url.split('=')[1] == '500'){
  50. //用户服务异常
  51. this.$alert('服务异常,请稍候再试!', '提示', {
  52. confirmButtonText: '确定',
  53. callback: action => {
  54. store.dispatch('LogOut').then(() => {
  55. window.location.href = process.env.VUE_APP_OUT_URL;
  56. })
  57. }
  58. });
  59. }
  60. } else {
  61. window.location.href = process.env.VUE_APP_OUT_URL;
  62. }
  63. localStorage.setItem('windowHref', window.location.href)
  64. },
  65. mounted() {
  66. },
  67. methods: {
  68. getInfo() {
  69. //等待配置与字段获取到后跳转
  70. Promise.all([
  71. this.configInfo(),
  72. this.getExploitConfig(),
  73. this.fullScreen()
  74. ]).then((result)=>{
  75. this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
  76. }).catch((error) => {})
  77. },
  78. //获取公共配置数据
  79. configInfo(){
  80. let self = this;
  81. configInfo({ type: '1,2,3' }).then(response => {
  82. let list = JSON.parse(response.data)
  83. let newData = {};
  84. list.forEach((item) => {
  85. let obj = JSON.parse(item.configValue)
  86. newData = {...newData,...obj}
  87. })
  88. setTimeout(function(){
  89. self.$set(self,'rectangleLogo',newData.rectangleLogo);
  90. localStorage.setItem('schoolName',newData.schoolName)
  91. localStorage.setItem('circularLogo',newData.circularLogo)
  92. localStorage.setItem('rectangleLogo',newData.rectangleLogo)
  93. localStorage.setItem('videoCover',newData.videoCover)
  94. localStorage.setItem('setSmartAlarmType',newData.smartLock)
  95. },200);
  96. });
  97. },
  98. //获取开发配置
  99. getExploitConfig(){
  100. getConfigByType({ category: 2, configType: 5 }).then(response => {
  101. let obj = JSON.parse(response.data.configValue);
  102. //判定http或者https
  103. let urlText = window.location.href.split('://')[0]+'://';
  104. let outerNet = window.location.href.indexOf(obj.ipIdentify) == -1//true外网 false 内网
  105. if(outerNet){//外网
  106. //MQTT地址
  107. localStorage.setItem('mqttUrl','wss://'+Decrypt(obj.mqttExtranetUrl))
  108. //MQTT账号
  109. localStorage.setItem('mqttUser',Decrypt(obj.mqttExtranetUser))
  110. //MQTT密码
  111. localStorage.setItem('mqttPassword',Decrypt(obj.mqttExtranetPassword))
  112. //PC端回跳地址
  113. localStorage.setItem('pcUrl',urlText+obj.pcExtranetUrl)
  114. localStorage.setItem('fileBrowseEnvironment',urlText+Decrypt(obj.fileBrowseEnvironmentExtranet))
  115. localStorage.setItem('fileBrowseEnvironmentExtranet',urlText+Decrypt(obj.fileBrowseEnvironmentExtranet))
  116. }else{
  117. //MQTT地址
  118. localStorage.setItem('mqttUrl','ws://'+Decrypt(obj.mqttIntranetUrl))
  119. //MQTT账号
  120. localStorage.setItem('mqttUser',Decrypt(obj.mqttIntranetUser))
  121. //MQTT密码
  122. localStorage.setItem('mqttPassword',Decrypt(obj.mqttIntranetPassword))
  123. //PC端回跳地址
  124. localStorage.setItem('pcUrl',urlText+obj.pcIntranetUrl)
  125. localStorage.setItem('fileBrowseEnvironment',urlText+Decrypt(obj.fileBrowseEnvironment))
  126. localStorage.setItem('fileBrowseEnvironmentExtranet',urlText+Decrypt(obj.fileBrowseEnvironmentExtranet))
  127. }
  128. });
  129. },
  130. //全屏
  131. fullScreen() {
  132. var element = document.documentElement;
  133. if (element.requestFullscreen) {
  134. element.requestFullscreen();
  135. } else if (element.msRequestFullscreen) {
  136. element.msRequestFullscreen();
  137. } else if (element.mozRequestFullScreen) {
  138. element.mozRequestFullScreen();
  139. } else if (element.webkitRequestFullscreen) {
  140. element.webkitRequestFullscreen();
  141. }
  142. },
  143. }
  144. }
  145. </script>
  146. <style rel="stylesheet/scss" lang="scss">
  147. .sso-login-page {
  148. height: 100%;
  149. width: 100%;
  150. background-image: url("../assets/ZDimages/basicsModules/icon_dl_bbg.png");
  151. background-repeat: no-repeat;
  152. background-size: cover;
  153. -webkit-background-size: cover;
  154. -o-background-size: cover;
  155. position: relative;
  156. * {
  157. margin: 0;
  158. }
  159. }
  160. </style>