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