/* * @Descripttion: * @version: * @Author: 李佐宁 * @Date: 2022-06-29 16:13:44 * @LastEditors: 李佐宁 * @LastEditTime: 2023-03-21 17:23:21 */ import App from "./src/app.vue"; import { createApp } from "vue"; import { router, setupRouter } from "./src/router"; import { setupComponent } from "./src/components"; import { setupStore } from "./src/store/index"; import { createPermissionGuard } from "./src/router/guard"; import { setupEcharts } from "./src/echarts"; import "./src/assets/iconfont/iconfont.css"; import "./src/assets/product_iconfont/iconfont.css"; import "./src/style/index.scss"; import dir from "./src/directive"; import { filters } from "./src/filters"; import ElementPlus from "element-plus"; import { getThirdToken } from "./src/api/login"; import { useUserStoreWithOut } from "./src/store/modules/users"; import { getUrlSingleParam } from "./src/utils/utils"; const userStore = useUserStoreWithOut(); async function init() { const app = createApp(App); app.use(ElementPlus); app.config.globalProperties.$filters = filters; app.directive("preventReClick", dir.preventReClick); app.directive("drag", dir.drag); // 开发环境开启 app.config.warnHandler = () => null; setupStore(app); setupRouter(app); setupComponent(app); setupEcharts(app); createPermissionGuard(router); app.mount("#app"); } // 获取项目部署地code code='self'是直联点内部嵌套 const thirdToken = getUrlSingleParam(location.href, "code"); // 安徽集成code if (thirdToken && thirdToken !== "self") { handleToken(thirdToken); } else if (self == top || thirdToken === "self") { // 判断是否是独立部署(非iframe嵌套) init(); } window.addEventListener("message", async function (e) { console.log("获取到第三方message"); // 山东集成code if (e.source != window.parent) { return; } let data = e.data; if (data) { // token转化 handleToken(data); } }); // token转化 async function handleToken(data) { // 获取第三方token const getToken = await getThirdToken({ thirdToken: data, }); if (getToken && getToken.code === 200) { const params = { grant_type: "password", key: 20, flag: true, }; await userStore.loginAction(params, null, router); // sessionStorage.setItem("yaOnlyShowContent", "true"); init(); } }