Quellcode durchsuchen

增加其他系统跳转来的中转页、跳转crm获取临时code

jwyu vor 1 Jahr
Ursprung
Commit
47e6e73af9

+ 1 - 1
config/dev.env.js

@@ -9,5 +9,5 @@ module.exports = merge(prodEnv, {
   CHART_LINK:'"https://charttest.hzinsights.com/chartshow"',
   VUE_APP_HR_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8391/login"',
   VUE_APP_FINANCIAL_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8618/login"',
-  VUE_APP_CRM_SYSTEM:'"http://8.136.199.33:7777/login"'
+  VUE_APP_CRM_SYSTEM:'"http://8.136.199.33:7777/temppage"'
 });

+ 1 - 1
config/prod.env.js

@@ -6,5 +6,5 @@ module.exports = {
 	CHART_LINK:'"https://chartlib.hzinsights.com/chartshow"',
 	VUE_APP_HR_MANAGEMENT_SYSTEM:'"https://hr.hzinsights.com/login"',
 	VUE_APP_FINANCIAL_MANAGEMENT_SYSTEM:'"https://fms.hzinsights.com/login"',
-	VUE_APP_CRM_SYSTEM:'"https://hzcrm.hzinsights.com/login"'
+	VUE_APP_CRM_SYSTEM:'"https://hzcrm.hzinsights.com/temppage"'
 }

+ 1 - 1
config/prod.test.env.js

@@ -7,5 +7,5 @@ module.exports = {
 	CHART_LINK:'"https://charttest.hzinsights.com/chartshow"',
 	VUE_APP_HR_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8391/login"',
   VUE_APP_FINANCIAL_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8618/login"',
-	VUE_APP_CRM_SYSTEM:'"http://8.136.199.33:7777/login"'
+	VUE_APP_CRM_SYSTEM:'"http://8.136.199.33:7777/temppage"'
 }

+ 8 - 0
src/api/modules/setApi.js

@@ -236,6 +236,14 @@ const departInterence = {
 	 */
 	sortDepart:params=>{
 		return http.post('/system/group/set_sort',params)
+	},
+	// 获取跳转到CRM系统的code
+	getToCRMSysCode:()=>{
+		return http.get('/sysuser/get_crm_auth_code',{})
+	},
+	//从其他系统跳转来用code换token
+	useCodeLogin:params=>{
+		return http.get('/sysuser/get_crm_token',params)
 	}
 }
 

+ 6 - 0
src/routes/routes.js

@@ -29,6 +29,12 @@ let routes = [
 		name: '',
 		hidden: true
 	},
+	{
+		path: '/temppage',
+		component: ()=>import('@/views/transferPage.vue'),
+		name: '',
+		hidden: true
+	},
 	{
 		path: '/404',
 		component: notFound,

+ 11 - 4
src/views/Home.vue

@@ -202,7 +202,7 @@
             <div class="userinfo">
               <div class="userinfo-fingerpost">
                 <el-button
-                  @click="linkToOtherMS(item.path)"
+                  @click="linkToOtherMS(item)"
                   v-for="item in linkSystems"
                   :key="item.path"
                   type="text"
@@ -620,13 +620,20 @@ export default {
       window.open(href, "_blank");
     },
     // 跳转去其他的系统
-    linkToOtherMS(key) {
+    async linkToOtherMS({path,key}) {
       /**
        * VUE_APP_HR_MANAGEMENT_SYSTEM -- HR管理系统
        * VUE_APP_FINANCIAL_MANAGEMENT_SYSTEM -- 财务管理系统
        */
-      // let href = process.env[key];
-      window.open(key, "_blank");
+      let href = path;
+      if(key==='crm'){
+        // 获取临时code
+        const res=await departInterence.getToCRMSysCode()
+        if(res.Ret===200){
+          href=`${href}?code=${res.Data}`
+        }
+      }
+      window.open(href, "_blank");
     },
     // 切换通知消息类型
     handleNoticeTypeChange(e) {

+ 97 - 0
src/views/transferPage.vue

@@ -0,0 +1,97 @@
+<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>