<template>
    <div></div>
</template>

<script>
import { departInterence } from '@/api/api.js';
export default {
    data() {
        return {
            
        }
    },
    created(){
        this.init()
        
    },
    methods:{
        async init(){
            if(this.$route.query.code){
                const res=await departInterence.useCodeLogin({AuthCode:this.$route.query.code})
                if(res.Ret===200){
                    localStorage.setItem('auth', res.Data.Authorization)
					localStorage.setItem('userName', res.Data.RealName)
					localStorage.setItem('Role', res.Data.RoleTypeCode)
					localStorage.setItem('RoleIdentity', res.Data.SysRoleTypeCode)
					localStorage.setItem('RoleType', res.Data.ProductName)
					localStorage.setItem('ManageType', res.Data.Authority)
					localStorage.setItem('AdminId', res.Data.AdminId)
                    localStorage.setItem('AdminName',res.Data.AdminName)

                    // 如果路由参数有redirect_uri则跳转到redirect_uri,redirect_uri通过encode
                    if(this.$route.query.redirect_uri){
                        const path=decodeURIComponent(this.$route.query.redirect_uri)
                        this.$router.push(path)
                        return
                    }
					let path = "";
					switch (res.Data.RoleTypeCode) {
						case "rai_researcher":
						case "ficc_researcher":
						case "researcher":
						path = "/reportlist";
						break;
						case "compliance": //合规
						path = "/contractapprovallist";
						break;
						case "special_researcher": //特邀研究员
						path = "/dataList";
						break;
						case "special_ficc_seller":
						path = "/meetingCalendar";
						break;
						default:
						path = await this.getOtherRolePath("myCalendar");
					}
					this.$router.push({ path });
                    return
                }
            }

            this.$router.replace('/login')
        },
        getOtherRolePath(pathVal){
			return departInterence.getMenu().then(res => {
				let resolvePath=''
				if(res.Ret === 200) {
					let menuList = res.Data.List||[];
					if(!menuList.length){
						this.$message.error('该账号没有任何菜单权限,请联系管理员')
						return
					}
					// 是否已经拿到菜单信息
					sessionStorage.setItem('hasGetMenu','true')
					sessionStorage.setItem('MenuList',JSON.stringify(menuList));
					/* 是否有数据报表权限 */
					this.$store.commit('SET_DATA_AUTH',menuList.some(item => item.name === '报表统计'))

					for (let i = 0; i < menuList.length; i++) {
						const element = menuList[i];
						const arr=menuList[i].children||[]
						if(arr.some(it => it.path == pathVal)){
							resolvePath='/'+pathVal
							break
						}
					}
					return resolvePath || '/'+menuList[0].children[0].path
				}
				return '/'+pathVal
			})
		}
    }
}
</script>

<style>

</style>