Lijy 2 лет назад
Родитель
Сommit
8b75d677f8
1 измененных файлов с 77 добавлено и 25 удалено
  1. 77 25
      fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

+ 77 - 25
fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

@@ -186,32 +186,55 @@
                         }
                     }
                 } else {
-                    //检查环境,如果是钉钉有$CORPID$
-                    var key = '?corpid=';
-                    var jumpkey = '&jumpto=';
-                    var url = location.href;
-                    console.log('jumpto',location);
-                    // var url = "https://worktime.ttkuaiban.com/?corpid=$CORPID$&jumpto=/info/21#/index"
-                    var that = this;
-                    if (url.indexOf(key) > 0) {
-                        var corpId = ''
-                        var jumpurl = ''
-                        if(url.indexOf(jumpkey) > 0){
-                            corpId = url.substring(url.indexOf(key)+key.length,url.indexOf(jumpkey));
-                            jumpurl = url.substring(url.indexOf(jumpkey)+jumpkey.length,url.indexOf('#'));
-                        }else{
-                            corpId = url.substring(url.indexOf(key)+key.length,url.indexOf('#'));
+                    if(href.indexOf("corpid") > 0 && href.indexOf("jumpto") > 0) {
+                        // 钉钉登陆
+                        //检查环境,如果是钉钉有$CORPID$
+                        var key = '?corpid=';
+                        var jumpkey = '&jumpto=';
+                        var url = location.href;
+                        console.log('jumpto',location);
+                        // var url = "https://worktime.ttkuaiban.com/?corpid=$CORPID$&jumpto=/info/21#/index"
+                        var that = this;
+                        if (url.indexOf(key) > 0) {
+                            var corpId = ''
+                            var jumpurl = ''
+                            if(url.indexOf(jumpkey) > 0){
+                                corpId = url.substring(url.indexOf(key)+key.length,url.indexOf(jumpkey));
+                                jumpurl = url.substring(url.indexOf(jumpkey)+jumpkey.length,url.indexOf('#'));
+                            }else{
+                                corpId = url.substring(url.indexOf(key)+key.length,url.indexOf('#'));
+                            }
+                            dd.ready(function() {
+                                that.isDingchg()
+                                dd.runtime.permission.requestAuthCode({
+                                    corpId: corpId, // 企业id
+                                    onSuccess: function (info) {
+                                        var code = info.code // 通过该免登授权码可以获取用户身份
+                                        that.loginByCode(code, corpId, jumpurl);
+                                    }});
+                            });
+                        } 
+                    } else {
+                        // 飞书登陆
+                        if(href.indexOf("appId") > 0) {
+                            console.log('执行到这里---飞书')
+                            let arr = href.split('appId=')[1]
+                            let str = arr.split('#')[0]
+                            console.log(str, window)
+                            window.h5sdk.ready(() => { // ready方法不需要每次都调用
+                                tt.requestAuthCode({
+                                appId: str,
+                                success: (info) => {
+                                    console.info(info.code, '飞书 code')
+                                    this.flyingBook(str, info.code)
+                                },
+                                fail: (error) => {
+                                    console.error(error)
+                                }
+                                });
+                            });
                         }
-                        dd.ready(function() {
-                            that.isDingchg()
-                            dd.runtime.permission.requestAuthCode({
-                                corpId: corpId, // 企业id
-                                onSuccess: function (info) {
-                                    var code = info.code // 通过该免登授权码可以获取用户身份
-                                    that.loginByCode(code, corpId, jumpurl);
-                                }});
-                        });
-                    } 
+                    }
                 }
             }
             
@@ -490,6 +513,35 @@
                     });
                 })
             },
+            // 飞书登陆
+            flyingBook(appid, code) {
+                this.http.post('/feishu-info/loginByFeishu', {
+                    appId: appid,
+                    code: code
+                } , res => {
+                    console.log(res, '接口返回')
+                    if (res.code == "ok") {
+                        var user = res.data;
+                        localStorage.user = JSON.stringify(res.data);
+                        sessionStorage.setItem('user', JSON.stringify(res.data));
+                        this.permissionsList(res.data)
+                        if(user.moduleList.length > 0) {
+                            this.$router.push({ path: user.moduleList[0].path })
+                        }
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    console.log(error, '抛出异常')
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
+            },
             // 权限控制
             permissionsList(item) {
                 var arr = []