提交 d3542796 作者: 毛细亚

更新代码

上级 5bbca450
[data-v-f1859a88]:export{menuText:#606266;menuActiveText:#3491fa;subMenuActiveText:#3491fa;menuBg:#fff;menuHover:#e1fff0;subMenuBg:#fff;themeColor:#3491fa;sidebarWidthOpen:190px;sidebarWidthClosed:56px;navbarHeight:50px;subMenuHover:#e1fff0;sideBarWidth:190px}.current-org[data-v-f1859a88]{font-weight:700;margin-right:5px}.loginContent[data-v-f1859a88]{display:flex;flex-direction:column;align-items:center;justify-content:center}.qr-contain[data-v-f1859a88]{margin:0 auto;width:260px;height:260px;position:relative;overflow:hidden}.qr-contain #dingTalkLoginContainer[data-v-f1859a88]{padding:15px;position:absolute;left:10px;bottom:0}.qr-contain .refresh[data-v-f1859a88]{display:none;text-align:center;position:absolute;width:40px;background:#fff;height:40px;transform:translate(-50%,-50%);left:50%;top:50%}.qr-contain .refresh i[data-v-f1859a88]{line-height:40px;font-size:26px;color:#3491fa;cursor:pointer}.qr-contain:hover .refresh[data-v-f1859a88]{display:block}.loading[data-v-f1859a88]{position:absolute;left:0;top:0;width:100%;height:100%;background:hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center;z-index:20;transition:opacity .3s}.loading-spinner[data-v-f1859a88]{width:40px;height:40px;border:4px solid #e0e0e0;border-top:4px solid #3491fa;border-radius:50%;animation:spin-f1859a88 1s linear infinite}@keyframes spin-f1859a88{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
"use strict";(self["webpackChunkcompany_app"]=self["webpackChunkcompany_app"]||[]).push([[661],{2661:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"loginContent"},[t.token?t._e():e("div",[e("div",[t._v(" 当前选中组织:"),e("span",{staticClass:"current-org"},[t._v(t._s(t.currentOrg.name))]),e("el-button",{attrs:{type:"text"},on:{click:function(e){t.showOrgDialog=!0}}},[t._v("切换组织")])],1),e("div",{staticClass:"qr-contain"},[e("div",{attrs:{id:"dingTalkLoginContainer"}}),e("div",{staticClass:"refresh"},[e("i",{staticClass:"el-icon-refresh-right",on:{click:t.refreshDingTalkQRCode}})]),t.qrLoading?e("div",{staticClass:"loading"},[e("span",{staticClass:"loading-spinner"})]):t._e()])]),e("el-dialog",{attrs:{visible:t.showOrgDialog,width:"300px",title:"选择组织"},on:{"update:visible":function(e){t.showOrgDialog=e}}},[e("ul",{staticStyle:{"list-style":"none",padding:"0","margin-top":"-20px"}},t._l(t.orgList,(function(i){return e("li",{key:i.app_key,style:{padding:"8px 16px",cursor:"pointer",background:i.app_key===t.currentOrg.app_key?"#e6f7ff":"",color:i.app_key===t.currentOrg.app_key?"#1890ff":"",fontWeight:i.app_key===t.currentOrg.app_key?"bold":"normal",borderRadius:"4px",marginBottom:"4px",transition:"background 0.2s"},on:{click:function(e){return t.switchOrg(i)},mouseover:function(e){t.hoveredOrg=i.app_key},mouseleave:function(e){t.hoveredOrg=null}}},[t._v(" "+t._s(i.name)+" "),i.app_key===t.currentOrg.app_key?e("span",{staticStyle:{"margin-left":"8px"}},[t._v("(当前)")]):t._e()])})),0)])],1)},o=[],s=(i(5366),i(6789)),r=i(3602),a=i(5885),c=i(4202),g=i(6707),d=i(1204),l={name:"login",components:{},data(){return{wecomUserInfo:null,dingUserInfo:null,signData:null,orgList:[],organizationNum:5,urlParams:{},currentOrg:{},showOrgDialog:!1,hoveredOrg:null,showRefresh:!1,qrLoading:!1,redirectUri:"https://companywx.zwnet.cn/api/api/sidebar_login/ding",DDTestUrl:"",token:(0,g.gf)()}},async mounted(){this.$nextTick((()=>{this.initLogin()}))},computed:{...(0,c.aH)("user",["corp_id"])},methods:{...(0,c.PY)("user",["set_corp_id","set_userid","set_userInfo","set_token","set_cser_info","set_signData","set_cser_id","set_cser_name","set_external_userid"]),async initLogin(){const t=(0,a.tI)();await this.initOrganization();const e=r.A.get("userid");t.type&&"ding"===t.type?(console.log(1),this.handleDingCallback()):this.token&&e?(console.log(2),await this.getSignature()):(console.log(3),e?(console.log(5),this.initDingTalkLogin()):(console.log(4),await this.startWeComSilentAuth()))},cacheCorp_id(t){r.A.set("corp_id",t,{expires:7}),this.set_corp_id(t)},cacheuserid(t){r.A.set("userid",t,{expires:7}),this.set_userid(t)},cacheCser(t,e){r.A.set("cser_id",t,{expires:7}),r.A.set("cser_name",e,{expires:7}),this.set_cser_info({cser_id:t,cser_name:e}),this.set_cser_id(t),this.set_cser_name(e)},cacheSignData(t){r.A.set("signData",JSON.stringify(t),{expires:7}),this.set_signData(t)},async startWeComSilentAuth(){this.urlParams=(0,a.tI)();const t=r.A.get("corp_id")||this.urlParams.corp_id;if(!t)return void this.$message.error("当前客服号信息异常,请切换会话后重试");if(!this.urlParams.code&&!this.urlParams.state){const e=encodeURIComponent(window.location.href),i=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${t}&redirect_uri=${e}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`;return void(window.location.href=i)}const e=await(0,s.WV)({code:this.urlParams.code,url:window.location.href,corp_id:t});if(1===e.status_code){if(!e.data.userid)return void this.$message.error("获取用户id失败");this.cacheuserid(e.data.userid),this.initDingTalkLogin()}else console.log("获取useid失败",e)},async getSignature(){console.log("获取签名",window.location.href);const t=r.A.get("corp_id");try{const i=await(0,s.dD)({corp_id:t,path:window.location.href});if(1===i.status_code){this.signData=i.data,this.cacheSignData(i.data);try{this.registerWeComSDK()}catch(e){console.log(e,"初始化sdk 失败")}}}catch(e){console.log(e,"获取签名失败"),window.location.href=window.location.origin+"/company_app/index.html?corp_id="+t+"&msg=signerror"}},getCurExternalContact(){this.$ww.getCurExternalContact({success:t=>{"getCurExternalContact:ok"===t.err_msg&&(console.log(t,"重新进入获取企微外部联系人"),this.set_external_userid(t.userId),this.$nextTick((()=>{this.$router.replace("/"),console.log(window.location.href,"window.location.hrefuserInfo")})))},fail:t=>{console.log(t,"获取企微外部联系人失败")}})},registerWeComSDK(){console.log("删除企业签名",1231),this.$ww.register({corpId:r.A.get("corp_id"),agentId:this.signData.agent_id,jsApiList:d.A,getAgentConfigSignature:()=>Promise.resolve({nonceStr:this.signData.nonce_str,timestamp:this.signData.signature_time,signature:this.signData.agent_signature}),onAgentConfigSuccess:t=>{console.log("注册成功可以调用企微 js-sdk",t),this.getCurExternalContact()},onAgentConfigFail:t=>{console.log("注册失败不能使用企微js-sdk",t)}})},async initOrganization(){const t=await(0,s.SA)();1===t.data.status_code&&(this.orgList=t.data.data.data.filter((t=>t.id<=this.organizationNum)),this.initCurrentApp())},initCurrentApp(){const t=this.orgList.find((t=>"dingjigp0ksn9nbljdli"===t.app_key));this.$set(this,"currentOrg",t)},initDingTalkLogin(){if(this.qrLoading=!0,console.log("进入初始化钉钉",this.currentOrg),!this.currentOrg.app_key)return;const t=this.currentOrg.app_key,e=document.getElementById("dingTalkLoginContainer");e&&(e.innerHTML=""),DDLogin({id:"dingTalkLoginContainer",goto:encodeURIComponent(`https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${t}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${this.redirectUri}`),style:"border:none;background-color:#FFFFFF;margin:0",width:"210",height:"250"}),this.$nextTick((()=>{setTimeout((()=>{this.qrLoading=!1}),1e3)})),window.addEventListener("message",this.handleDingTalkLogin,!1),"undefined"!==typeof window.addEventListener?window.addEventListener("message",this.handleDingTalkLogin,!1):"undefined"!==typeof window.attachEvent&&window.attachEvent("onmessage",this.handleDingTalkLogin)},switchOrg(t){t.app_key!==this.currentOrg.app_key&&(this.currentOrg=t,this.showOrgDialog=!1,this.initDingTalkLogin())},async handleDingTalkLogin(t){console.log("收到扫码回调");const e=r.A.get("corp_id"),i=r.A.get("userid");if("https://login.dingtalk.com"!==t.origin)return;const n=t.data,o=this.currentOrg.app_key,s=encodeURIComponent(`${this.currentOrg.app_key}$${this.currentOrg.template_code}$${e}$${i}`),a=`https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${o}&response_type=code&scope=snsapi_login&state=${s}&redirect_uri=${this.redirectUri}&loginTmpCode=${n}`;console.log(a,"回调 url"),this.DDTestUrl=a,window.location.href=a},async handleDingCallback(){console.log("扫码成功");const t=(0,a.tI)(),e=r.A.get("corp_id");if("error"==t.code&&t.msg)return this.$message.error(t.msg),void setTimeout((()=>{window.location.href=window.location.origin+"/company_app/index.html?corp_id="+e+"&msg=error"}),5e3);t.token&&"undefined"!=t.token?((0,g.WG)(t.token),this.set_token(t.token),await this.getSignature()):(console.log("没有token"),window.location.href=window.location.origin+"/company_app/index.html?corp_id="+e+"&msg=notoken"),t.cser_id&&this.cacheCser(t.cser_id,t.cser_name)},refreshDingTalkQRCode(){this.initDingTalkLogin()}}},p=l,h=i(8477),u=(0,h.A)(p,n,o,!1,null,"f1859a88",null),_=u.exports}}]);
//# sourceMappingURL=661.8f16344b.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论