{"version":3,"file":"codeCallback.mjs","sources":["../../../../src/pagesDefault/auth/codeCallback.vue"],"sourcesContent":["<!--\r\n@Create By Tim For 19/08/14\r\n@单点登录成功回调组件\r\n-->\r\n<template>\r\n  <div class=\"CodeCallbackContainer\"></div>\r\n</template>\r\n<script>\r\nimport { config, tool, getDefaultIndex, getIndexPage, getSysMenuDefault } from 'elead-ui-tool-v3'\r\nimport ssoApi from '@/api/auth/sso2Api'\r\nimport permissionApi from '@/api/sys/permissionApi'\r\n//import PersonalDirectoryApi from '@/api/file/personalDirectoryApi'\r\nimport dictApi from '@/api/dev/dictApi'\r\nimport configApi from '@/api/dev/configApi'\r\nimport { message } from 'ant-design-vue'\r\nimport { isFrame } from '@/utils/other'\r\nimport userCenterApi from '@/api/sys/userCenterApi'\r\nimport { libFlowPackageMethods } from \"@/utils/exportInstallMethods\";\r\nexport default {\r\n  name: 'authLoginCodeCallback',\r\n  watch: {\r\n    $route: {\r\n      handler: function (route) {\r\n        this.redirect = route.query && route.query.redirect_uri\r\n      },\r\n      immediate: true\r\n    }\r\n  },\r\n  data() {\r\n    return {}\r\n  },\r\n  mounted() {\r\n    const { redirect_uri, code } = this.getParams()\r\n    this.handleCallback({ redirectUri: redirect_uri, code })\r\n  },\r\n  methods: {\r\n    getParams(name, defaultValue) {\r\n      // 获取当前url\r\n      const parameterObject = {}\r\n      const url = window.location.href\r\n      let parameter = url.split('?')[1]\r\n      if (!parameter) {\r\n        // 这个界面无参数属于非法访问，跳转到登录界面让他登录去\r\n        // window.location.href = '/login'\r\n        return parameterObject\r\n      }\r\n      const parameterArray = parameter.split('&')\r\n      // 当然了，不可能只有一个参数\r\n      if (!parameterArray) {\r\n        // window.location.href = '/login'\r\n        return parameterObject\r\n      }\r\n      // 遍历数组，拿到json对象\r\n      for (let i = 0; i < parameterArray.length; i++) {\r\n        parameterObject[parameterArray[i].split('=')[0]] = parameterArray[i].split('=')[1]\r\n      }\r\n      return parameterObject\r\n    },\r\n    async handleCallback({ redirectUri, code }) {\r\n      \r\n      let token = ''\r\n      /*iframe 嵌套逻辑*/\r\n      if (isFrame()) {\r\n        let f = async () => {\r\n          return new Promise((resolve, reject) => {\r\n            setTimeout(() => {\r\n              resolve(tool.data.get('TOKEN'))\r\n            }, 100)\r\n          })\r\n        }\r\n        token = await f()\r\n      } else {\r\n        token = await ssoApi.codeCallback(redirectUri, code)\r\n      }\r\n      // 成功换取到token,将token保存到cookie\r\n      tool.data.set('TOKEN', token)\r\n      //获取用户信息\r\n      const loginUser = await ssoApi.getInfo()\r\n      let roleCodes = await permissionApi.roleCodeInfo({ userId: loginUser.id })\r\n      //文件系统特殊逻辑\r\n      try {\r\n        if (libFlowPackageMethods.PersonalDirectoryApi) {\r\n          if (!roleCodes || roleCodes.indexOf('default') === -1) {\r\n            await libFlowPackageMethods.PersonalDirectoryApi.grantDefaultRole()\r\n            roleCodes = await permissionApi.roleCodeInfo({ userId: loginUser.id })\r\n          }\r\n        }\r\n      } catch (e) {\r\n      }\r\n      // 获取 buttonCodeList\r\n      const permissions = await permissionApi.permissionInfo({ userId: loginUser.id })\r\n      loginUser.buttonCodeList = permissions\r\n      loginUser.roleCodeList = roleCodes\r\n      tool.data.set('USER_INFO', loginUser)\r\n      // 获取用户的菜单\r\n      const menu = await getSysMenuDefault({ userCenterApi }).catch((err) => {\r\n        this.islogin = false\r\n        return\r\n      })\r\n      getDefaultIndex(menu, null)\r\n      tool.data.set('MENU', menu)\r\n      getIndexPage({\r\n        menu, success: (_defaultIndex) => {\r\n          this.$router.replace({\r\n            path: _defaultIndex.cur.path\r\n          })\r\n        }\r\n      })\r\n      message.success('登录成功')\r\n      nextTick(() => {\r\n        // 配置\r\n        if (!tool.data.get('SNOWY_SYS_BASE_CONFIG')) {\r\n          let formData = ref(config.SYS_BASE_CONFIG)\r\n          configApi.configSysBaseList().then((data) => {\r\n            if (data) {\r\n              data.forEach((item) => {\r\n                formData.value[item.configKey] = item.configValue\r\n              })\r\n              tool.data.set('SNOWY_SYS_BASE_CONFIG', formData.value)\r\n              this.$store.commit('SET_sysBaseConfig', formData.value)\r\n            }\r\n          })\r\n        }\r\n        // 字典\r\n        dictApi.dictTree().then((data) => {\r\n          // 设置字典到store中\r\n          tool.data.set('DICT_TYPE_TREE_DATA', data)\r\n        })\r\n        /*iframe 嵌套逻辑*/\r\n        if (isFrame()) {\r\n          window.parent.postMessage('potalIframeReady', '*')\r\n        }\r\n      })\r\n    }\r\n  }\r\n}\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock"],"mappings":"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"}