¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="sso-redirect"> |
| | | <div class="loading-container"> |
| | | <el-alert |
| | | v-if="errorMessage" |
| | | :title="errorMessage" |
| | | type="error" |
| | | :closable="false" |
| | | show-icon |
| | | ></el-alert> |
| | | <div v-else class="loading-content"> |
| | | <i class="el-icon-loading"></i> |
| | | <p>åç¹ç»å½ä¸ï¼è¯·ç¨å...</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { setToken } from "@/utils/auth"; |
| | | |
| | | export default { |
| | | name: "SSORedirect", |
| | | data() { |
| | | return { |
| | | errorMessage: "", |
| | | loading: true, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.handleSSORedirect(); |
| | | }, |
| | | methods: { |
| | | // å¹é
orgid |
| | | mateOrgid(orgid) { |
| | | if (orgid == "30001002") { |
| | | localStorage.setItem("orgname", "æµæ±çç«åå¾·å»é¢ç¿ èé¢åº"); |
| | | localStorage.setItem("ZuHuID", "1400361376454545408"); |
| | | localStorage.setItem("deptCode", "1017"); |
| | | } else if (orgid == "30001003") { |
| | | localStorage.setItem("orgname", "æµæ±çç«åå¾·å»é¢ä¹æ±é¢åº"); |
| | | localStorage.setItem("ZuHuID", "1400360867068907520"); |
| | | localStorage.setItem("deptCode", "01040201"); |
| | | } else if (orgid == "30001004") { |
| | | localStorage.setItem("orgname", "æµæ±çç«åå¾·å»é¢é²æé¢åº"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000002"); |
| | | localStorage.setItem("deptCode", ""); |
| | | } else if (orgid == "30001005") { |
| | | localStorage.setItem("orgname", "æµæ±çç«åå¾·å»é¢å¤©ç®å±±è·¯é¢åº"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000003"); |
| | | localStorage.setItem("deptCode", ""); |
| | | } else if (orgid == "30001006") { |
| | | localStorage.setItem("orgname", "æµæ±çç«åå¾·å»é¢éå±±æ¹é¢åº"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000004"); |
| | | localStorage.setItem("deptCode", ""); |
| | | } else if (orgid == "30001007") { |
| | | localStorage.setItem("orgname", "æµè¯é¢åº"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000005"); |
| | | localStorage.setItem("deptCode", ""); |
| | | } |
| | | }, |
| | | async handleSSORedirect() { |
| | | try { |
| | | console.log(11); |
| | | // ä»URLåæ°ä¸è·åtokenåæºæä¿¡æ¯ |
| | | let { token, orgid, orgname, ZuHuID, deptCode } = this.$route.query; |
| | | // token = |
| | | // "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc5MWVkODNlLWE2MWYtNDI2MS05ZDZlLTNhOTVjYTU2YjZhMiJ9.q6jrRj8fwtb3FOqqwaxIFDr824hf85DW8heCj4qWYgRE55Pn0vkmcujFsYMrz9qqo047Gl7lv3rnok8pk7SKYQ"; // éªè¯å¿
è¦åæ° |
| | | // orgid = "30001002"; |
| | | if (!token) { |
| | | throw new Error("缺å°è®¤è¯ä»¤ç(token)"); |
| | | } |
| | | console.log(token); |
| | | console.log(orgid); |
| | | console.log(orgname); |
| | | // console.log(redirect,'redirect'); |
| | | |
| | | this.mateOrgid(orgid); |
| | | setToken(token); |
| | | this.$store.commit("SET_TOKEN", token); |
| | | |
| | | // å卿ºæä¿¡æ¯å°localStorage |
| | | if (orgid) { |
| | | localStorage.setItem("orgid", orgid); |
| | | this.$store.dispatch("UpdateOrgId", orgid); |
| | | } |
| | | if (orgname) localStorage.setItem("orgname", orgname); |
| | | if (ZuHuID) localStorage.setItem("ZuHuID", ZuHuID); |
| | | if (deptCode) localStorage.setItem("deptCode", deptCode); |
| | | |
| | | // è·åç¨æ·ä¿¡æ¯ |
| | | await this.$store.dispatch("GetInfo"); |
| | | |
| | | // ç¡®å®éå®åè·¯å¾ |
| | | let redirectPath = "/index"; |
| | | // if (redirect) { |
| | | // console.log(redirect,'888'); |
| | | |
| | | // redirectPath = decodeURIComponent(redirect); |
| | | // } else { |
| | | // æ ¹æ®ç¨æ·è§è²å³å®é»è®¤è·³è½¬é¡µé¢ |
| | | const roles = this.$store.state.user.roles; |
| | | const username = this.$store.state.user.name; |
| | | |
| | | if (roles.includes("admin") || username === "admin") { |
| | | redirectPath = "/index"; |
| | | } else { |
| | | redirectPath = "/followvisit/discharge"; |
| | | } |
| | | // } |
| | | |
| | | // 跳转å°ç®æ é¡µé¢ |
| | | this.$router.replace({ path: redirectPath }); |
| | | } catch (error) { |
| | | console.error("SSOç»å½å¤±è´¥:", error); |
| | | this.errorMessage = `åç¹ç»å½å¤±è´¥: ${error.message || "æªç¥é误"}`; |
| | | this.loading = false; |
| | | |
| | | // 5ç§åè·³è½¬å°æ®éç»å½é¡µ |
| | | setTimeout(() => { |
| | | this.$router.replace("/login"); |
| | | }, 5000); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .sso-redirect { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 100vh; |
| | | background-color: #f5f7fa; |
| | | } |
| | | |
| | | .loading-container { |
| | | text-align: center; |
| | | padding: 20px; |
| | | background: white; |
| | | border-radius: 4px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .loading-content { |
| | | padding: 20px; |
| | | } |
| | | |
| | | .el-icon-loading { |
| | | font-size: 40px; |
| | | color: #409eff; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | p { |
| | | margin: 0; |
| | | color: #606266; |
| | | } |
| | | </style> |