Quellcode durchsuchen

提交钉钉转译的代码

Lijy vor 1 Jahr
Ursprung
Commit
eec0df96be

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/index.html

@@ -8,6 +8,8 @@
         <meta http-equiv="expires" content="0"> -->
     <!-- 尝试清除打包缓存 -->
     <title>工时管家</title>
+    <!--接入钉钉前端组件,进行通讯录组件展示-->
+    <script src="https://auth.dingtalk.com/opendata-1.1.0.js"></script>
     <link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
     <link href="./static/css/public.css" rel="stylesheet" type="text/css" />
     <!-- 引入样式 -->
@@ -15,8 +17,6 @@
       href="https://cdn.staticfile.org/element-ui/2.13.0/theme-chalk/index.css"
       rel="stylesheet"
     />
-    <!--接入钉钉前端组件,进行通讯录组件展示-->
-    <script src="https://auth.dingtalk.com/opendata-1.1.0.js"></script>
     <!-- <link rel="stylesheet" href="./static/js/element-uiCss.css"> -->
     <!-- 接入JQ  -->
     <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

+ 21 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -32,7 +32,6 @@
                         <el-dropdown-item divided  command="en">English</el-dropdown-item>
                     </el-dropdown-menu> 
                 </el-dropdown> -->
-
                 <el-dropdown trigger="hover" style="margin-right:30px;">
                     <span class="el-dropdown-link userinfo-inner">
                         <i class="el-icon-user" style="font-size:18px" ></i>
@@ -63,7 +62,6 @@
                         </el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown> 
-                    
                 {{$t('time.dueDate')}}:{{remainingTime}}
                 <el-badge class="itemNew" :value="num" :hidden="num == 0">
                     <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1 @click="drawer = true"></i>
@@ -108,6 +106,9 @@
                         <span v-if="user.userNameNeedTranslate == 1">
                             <ww-open-data type='userName' :openid='sysUserName'></ww-open-data>
                         </span>
+                        <span v-if="user.dingdingUserid">
+                            <dt-open-data open-type='userName' :open-id='user.dingdingUserid'></dt-open-data>
+                        </span>
                         <span v-if="user.userNameNeedTranslate != 1">
                             {{sysUserName}}
                         </span>
@@ -860,6 +861,21 @@
                         return false;
                     }
                 });
+            },
+
+            setDDOpenData() {
+                const ddUrl = new URL(window.location.href);
+                const ddCorpid = ddUrl.searchParams.get("corpid") || ''
+                let ddOpenDataInit = window.DTOpenData.init(ddCorpid)
+                console.log(ddOpenDataInit, '<=== 钉钉执行的判断')
+                if (ddOpenDataInit) {
+                    setTimeout(() => {
+                        console.log('延迟执行')
+                        window.DTOpenData.update(document.querySelectorAll('dt-open-data'));
+                    }, 100)
+                }else {
+                    console.log('钉钉没有触发')
+                }
             }
         },
         mounted() {
@@ -903,8 +919,6 @@
             }
 
             // 判断是否为新用户
-            // console.log(this.firstTourFalse, '数据书数据123', 'true' == true)
-            // if(this.firstTourFalse != 'false') {
             if(this.user.isFirstLogin == 1 && this.user.roleName == '超级管理员' && this.firstTourFalse != 'false' && this.user.createTime[0] > '2022') {
                 var thats = this
                 this.tourFlg = true
@@ -921,6 +935,9 @@
             if(this.jobNumberCheckCompanyId.includes(companyId) && !jobNumber) {
                 this.perfectJobNumber = true
             }
+            if(this.user.dingdingUserid) {
+                this.setDDOpenData()
+            }
         },
     };
 </script>

+ 12 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

@@ -199,6 +199,11 @@
                     }
                 } else {
                     if(href.indexOf("corpid") > 0) {
+                        if(!(window.location.href.indexOf("ddLoginUnique") > 0)) {
+                            this.tryDingDingUrlRedirect()
+                            return
+                        }
+ 
                         // 钉钉登陆
                         //检查环境,如果是钉钉有$CORPID$
                         var key = '?corpid=';
@@ -359,6 +364,13 @@
                 var weixinUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appId+"&redirect_uri="+encodeURI(url)+"&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
                 window.location.href = weixinUrl;
             },
+            tryDingDingUrlRedirect() {
+                let currentAddress = window.location.href+'?ddLoginUnique=true';
+                let ddFixedPrefix = 'http://auth.dingtalk.com/login?redirectUri='
+                let ddFixedUrl = 'https://login.dingtalk.com/oauth2/auth?response_type=code&client_id=dingwa4tibze6jwz7mgv&scope=openid&state=dddd&redirect_uri=' + encodeURIComponent(`${ddFixedPrefix}${currentAddress}`)
+                window.location.href = ddFixedUrl;
+                // window.location.href = window.location.href+'?ddLoginUnique=true';
+            },
             loginByUserId(userId, path) {
                 this.http.post("/user/loginByUserId", {userId:userId} , res => {
                             if (res.code == "ok") {