Files
wecom_it_smart_desk/frontend-h5/dist_v20260806b/assets/Login-DLGQO1HS.js
T
2026-08-11 14:17:15 +08:00

2 lines
3.6 KiB
JavaScript

import{a8 as A,ah as N,ai as P,aj as U,ak as O,a5 as o,a6 as l,al as r,a7 as z,aa as m,L as E,am as Q,an as S,b as R,I as j,ao as q,ap as D,aq as i,s as v,X as T,a4 as I}from"./index-CC8pRDT2.js";import{g as M,h as W,a as X}from"./auth-DqvtnIWf.js";const $={class:"login-page"},F={class:"login-card"},G={key:0,class:"qr-login"},H={class:"qr-container"},J={key:0,class:"qr-loading"},K={key:1,class:"qr-code"},Y=["src"],Z={key:2,class:"qr-error"},ee={key:0,class:"scan-tip"},ae={key:1,class:"loading-container"},te=A({__name:"Login",setup(se){const p=N(),c=P(),s=i(!0),h=i(""),y=i(!1),f=i(""),n=i(!1),_=i("请稍候...");let g=null,w="";function x(){return typeof navigator>"u"?!1:/wxwork/i.test(navigator.userAgent)}async function u(){y.value=!0,f.value="waiting";try{const a=await M();h.value=`data:image/png;base64,${a.qrcode_png_base64}`,w=a.ticket,b()}catch(a){console.error("获取二维码失败:",a),v("获取二维码失败,请重试")}finally{y.value=!1}}async function C(){if(w)try{const a=await X(w);a.status==="scanned"?f.value="scanned":a.status==="confirmed"&&a.token?(d(),await L(a.token,a.user_info)):a.status==="expired"?(d(),v("二维码已过期,请重新扫码"),u()):a.status==="cancelled"&&(d(),v("扫码已取消"),f.value="waiting",u())}catch(a){console.warn("轮询扫码状态失败:",a)}}function b(){d(),g=setInterval(C,2e3)}function d(){g&&(clearInterval(g),g=null)}async function L(a,e){n.value=!0,_.value="登录中...";try{if(e!=null&&e.is_new_user){s.value=!1,await p.push({name:"Bind",query:{userid:e.userid,name:e.name}});return}c.setToken(a),e&&c.setUserInfo(e),s.value=!1,T("登录成功"),await p.push({name:"ChatView"})}catch(t){console.error("登录失败:",t),v("登录失败,请重试"),s.value=!0}finally{n.value=!1}}async function V(a,e){n.value=!0,_.value="授权中...";try{const t=await W(a,e);if(t.is_new_user){s.value=!1,await p.push({name:"Bind",query:{userid:t.user_info.userid,name:t.user_info.name}});return}c.setToken(t.token),c.setUserInfo(t.user_info),s.value=!1,T("登录成功"),await p.push({name:"ChatView"})}catch(t){console.error("OAuth回调处理失败:",t),v("授权失败,请重试"),s.value=!0}finally{n.value=!1}}return U(async()=>{const a=new URLSearchParams(window.location.search),e=a.get("code"),t=a.get("state");if(e){await V(e,t||void 0);return}if(x()){n.value=!0,_.value="正在跳转企微授权...";try{await c.redirectToOAuth()}catch(k){console.error("跳转授权失败:",k),s.value=!0,u()}finally{n.value=!1}}else s.value=!0,u()}),O(()=>{d()}),(a,e)=>{const t=E,k=R,B=j;return o(),l("div",$,[r("div",F,[e[5]||(e[5]=z('<div class="login-header" data-v-069790d6><div class="login-logo-row" data-v-069790d6><span class="logo-block" data-v-069790d6>IT</span><h1 class="login-title" data-v-069790d6>智能IT服务</h1></div><p class="login-subtitle" data-v-069790d6>扫码登录</p></div>',1)),s.value?(o(),l("div",G,[r("div",H,[y.value?(o(),l("div",J,[m(t,{type:"spinner",size:"32px"}),e[0]||(e[0]=r("p",null,"加载中...",-1))])):h.value?(o(),l("div",K,[r("img",{src:h.value,alt:"企微扫码登录"},null,8,Y)])):(o(),l("div",Z,[e[2]||(e[2]=r("p",null,"获取二维码失败",-1)),m(k,{size:"small",onClick:u},{default:Q(()=>[...e[1]||(e[1]=[S("重试",-1)])]),_:1})]))]),e[4]||(e[4]=r("p",{class:"qr-hint"},"请使用企业微信扫码登录",-1)),f.value==="scanned"?(o(),l("p",ee,[m(B,{name:"checked"}),e[3]||(e[3]=S(" 已扫码,请在手机确认 ",-1))])):q("",!0)])):q("",!0),n.value?(o(),l("div",ae,[m(t,{type:"spinner",size:"40px"}),r("p",null,D(_.value),1)])):q("",!0)])])}}}),le=I(te,[["__scopeId","data-v-069790d6"]]);export{le as default};