const { uc, form, portal, bpmModel, bpmRunTime } = window.context export default { getQrCodeWeChat(corpId, agentId, url) { var wwLogin = new WwLogin({ id: 'qr_wechat', appid: corpId, agentid: agentId, redirect_uri: encodeURIComponent(url), state: 'htwecom', href: 'data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7aGVpZ2h0OiAyMjBweDt9Ci5pbXBvd2VyQm94IC5xcmNvZGUge3dpZHRoOiAyMjBweDt9Ci5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9Ci5zdGF0dXNfaWNvbiB7ZGlzcGxheTogbm9uZSAgIWltcG9ydGFudH0KLmltcG93ZXJCb3ggLnN0YXR1cyB7dGV4dC1hbGlnbjogY2VudGVyO30g', lang: 'zh', }) var handleMessage = function (event) { setTimeout(() => { wwLogin.destroyed() }, 100); } if (typeof window.addEventListener != 'undefined') { window.addEventListener('message', handleMessage, false) } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onmessage', handleMessage) } }, getQrCodeDing(appIdDd, url) { //二维码 钉钉 let stateDd = 'htDingding' let urlDd = `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appIdDd}&response_type=code&scope=snsapi_login&state=${stateDd}&redirect_uri=${url}` var ddLogin = DDLogin({ id: 'qr_dingding', goto: encodeURIComponent(urlDd), style: 'border:none;background-color:#FFFFFF;', state: 'htdingding', }) var handleMessage = function (event) { var origin = event.origin //判断是否来自ddLogin扫码事件。 if (origin == 'https://login.dingtalk.com') { var loginTmpCode = event.data //获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了 console.log('loginTmpCode', loginTmpCode) window.location.href = `${urlDd}&loginTmpCode=${loginTmpCode}` } } if (typeof window.addEventListener != 'undefined') { window.addEventListener('message', handleMessage, false) } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onmessage', handleMessage) } }, getQrCodeFlyBook(clientId, url) { //二维码 飞书 let state = 'htflybook' var urlGotoFlyBook = `https://passport.feishu.cn/suite/passport/oauth/authorize?client_id=${clientId}&redirect_uri=${url}&response_type=code&state=${state}` var QRLoginObj = QRLogin({ id: 'qr_flyBook', goto: urlGotoFlyBook, height: '260', style: 'border:none;background-color:#FFFFFF;', }) var handleMessage = function (event) { var origin = event.origin // 使用 matchOrigin 方法来判断 message 是否来自飞书页面 if (QRLoginObj.matchOrigin(origin)) { var loginTmpCode = event.data // 在授权页面地址上拼接上参数 tmp_code,并跳转 window.location.href = `${urlGotoFlyBook}&tmp_code=${loginTmpCode}` } } if (typeof window.addEventListener != 'undefined') { window.addEventListener('message', handleMessage, false) } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onmessage', handleMessage) } }, getQrCode(scanApps, scanCodeMode) { var hasFlyBook = false const { weChatWork, dingtalk, flyBook } = scanApps var redirectUri = window.location.href if(redirectUri.indexOf('?') > 0){ redirectUri = redirectUri.split("?")[0] } if (weChatWork && scanCodeMode && scanCodeMode.includes("wechat")) { const { corpId, agentId } = weChatWork this.getQrCodeWeChat(corpId, agentId, redirectUri) } if (dingtalk && scanCodeMode && scanCodeMode.includes("dingding")) { const { corpId } = dingtalk this.getQrCodeDing(corpId, redirectUri) } if (flyBook && scanCodeMode && scanCodeMode.includes("flyBook")) { hasFlyBook = true const { corpId } = flyBook this.getQrCodeFlyBook(corpId, redirectUri) } return hasFlyBook }, }