2 lines
5.5 KiB
JavaScript
2 lines
5.5 KiB
JavaScript
import{E as _,d as T,i as $}from"./element-plus-Bolc0EfP.js";import{l as S}from"./@element-plus/icons-vue-B0jSCQ-G.js";import{_ as j}from"./footer.vue_vue_type_script_setup_true_lang-sYlr99nK.js";import{u as z,g as A,P as I,a as D,b as F,_ as M}from"./index-C0Kev2hn.js";import{a as Q}from"./wecomOauthPostMessage-C_e6VGrO.js";import{a as V}from"./vue-router-QlpZ4wdW.js";import{f as X,b as J,d as K,ak as d,I as l,J as a,a as c,aN as y,F as G,O as H,n as C}from"./@vue/runtime-core-C6bnekPw.js";import{y as U,n as k}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const Y={class:"bind-wx flex flex-col"},Z={class:"flex-1 flex items-center justify-center"},tt={class:"bind-wx-card bg-body rounded-md px-10 py-10 w-[480px]"},et={key:0,class:"text-center py-10"},ot={key:0,class:"text-center py-10"},rt={key:1,id:"wxwork_bind_qrcode_container",class:"wxwork-qrcode mx-auto"},it={class:"mt-8 flex justify-center gap-4"},m="bind_wxwork",g="like_admin_wx_bind_oauth",nt=X({__name:"bind-work-wechat",setup(at){const p=V(),f=z(),x=k(!1),w=k(!1),u=k({corp_id:"",agent_id:""}),L=()=>/wxwork/i.test(navigator.userAgent),v=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1";function W(){const o=new URLSearchParams(window.location.search),t=window.location.hash||"",e=t.includes("?")?t.split("?").slice(1).join("?"):"";return e&&new URLSearchParams(e).forEach((r,s)=>{o.has(s)||o.set(s,r)}),o}const E=()=>{f.logout()},B=async()=>{try{await f.getUserInfo()}catch{}if(f.isPaw===0){p.replace("/change-password");return}p.replace(I.INDEX)},b=async o=>{w.value=!0;try{await F({code:o}),window.history.replaceState({},"",window.location.pathname),await B()}catch(t){console.error(t),_.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"绑定失败"),w.value=!1}};let n=null;const P=async()=>{if(!u.value.corp_id)return;x.value=!0,window.WwLogin||await new Promise((t,e)=>{const r=document.createElement("script");r.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",r.onload=()=>t(),r.onerror=()=>e(new Error("加载企业微信 JS 失败")),document.head.appendChild(r)}),await C(),x.value=!1,await C();const o=encodeURIComponent(v());new window.WwLogin({id:"wxwork_bind_qrcode_container",appid:u.value.corp_id,agentid:u.value.agent_id,redirect_uri:o,lang:"zh",state:m,href:"",self_redirect:!1})};return J(async()=>{let o="";try{o=(new URLSearchParams(window.location.search).get("code")||"").trim()}catch{o=""}if(!A()){_.error("请先登录"),p.push(I.LOGIN);return}const t=W(),e=o||(t.get("code")||"").trim(),r=t.get("state"),s=r!=null?String(r).trim():"",R=s===m||s==="admin_bind_wx"||s.toLowerCase()===m.toLowerCase(),N=t.get("bind_wxwork")==="1",O=!!e&&s===""&&p.currentRoute.value.path==="/bind-work-wechat";if(e&&(R||N||O)){if(sessionStorage.getItem(g)===e)return;sessionStorage.setItem(g,e);try{await b(e)}finally{sessionStorage.removeItem(g)}return}try{const i=await D();if(!(i!=null&&i.enabled)||!i.corp_id){_.error("企业微信未配置,请联系管理员");return}if(u.value={corp_id:i.corp_id,agent_id:i.agent_id},L()){w.value=!0;const h=encodeURIComponent(v()),q=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${i.corp_id}&redirect_uri=${h}&response_type=code&scope=snsapi_privateinfo&agentid=${i.agent_id}&state=${m}#wechat_redirect`;window.location.href=q;return}n==null||n(),n=Q({pathIncludes:"bind-work-wechat",lockKey:g,wxBindState:m,onCode:h=>b(h)}),await P()}catch(i){console.error(i),_.error("获取企业微信配置失败")}}),K(()=>{n==null||n(),n=null}),(o,t)=>{const e=T,r=$;return d(),l("div",Y,[a("div",Z,[a("div",tt,[t[4]||(t[4]=a("div",{class:"text-center text-2xl font-medium mb-2"},"绑定企业微信",-1)),t[5]||(t[5]=a("div",{class:"text-center text-gray-500 text-sm mb-8"}," 根据安全策略,需绑定企业微信账号后方可使用管理后台 ",-1)),w.value?(d(),l("div",et,[c(e,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:y(()=>[c(U(S))]),_:1}),t[0]||(t[0]=a("div",{class:"text-gray-500"},"企业微信授权中...",-1))])):(d(),l(G,{key:1},[x.value?(d(),l("div",ot,[c(e,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:y(()=>[c(U(S))]),_:1}),t[1]||(t[1]=a("div",{class:"mt-2 text-gray-400 text-sm"},"加载扫码...",-1))])):(d(),l("div",rt)),t[2]||(t[2]=a("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码完成绑定 ",-1))],64)),a("div",it,[c(r,{onClick:E},{default:y(()=>[...t[3]||(t[3]=[H("退出登录",-1)])]),_:1})])])]),c(j)])}}}),Xt=M(nt,[["__scopeId","data-v-d4a61522"]]);export{Xt as default};
|