From de147dda682f8ac597bbcc8555b57acbdf45dba2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 13 十一月 2025 16:55:51 +0800
Subject: [PATCH] 测试完成
---
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