From 3c802eaab73b17e802226ad198aea8818a31c56b Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期二, 09 九月 2025 14:25:53 +0800 Subject: [PATCH] Merge branch 'SLTD-smartor' into HeNan-Smartor --- src/views/loginSSO.vue | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 160 insertions(+), 0 deletions(-) diff --git a/src/views/loginSSO.vue b/src/views/loginSSO.vue new file mode 100644 index 0000000..6cd082c --- /dev/null +++ b/src/views/loginSSO.vue @@ -0,0 +1,160 @@ +<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); + // 浠嶶RL鍙傛暟涓幏鍙杢oken鍜屾満鏋勪俊鎭� + 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); + + // 瀛樺偍鏈烘瀯淇℃伅鍒發ocalStorage + 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> -- Gitblit v1.9.3