[split-upload 1/6] f2fd4fa backup via proxy

This commit is contained in:
Simon
2026-08-11 14:15:36 +08:00
parent 6be361fb63
commit 268bf914ce
75 changed files with 5734 additions and 84 deletions
@@ -0,0 +1 @@
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-DyhzhPHB.js";import{g as M,h as W,a as X}from"./auth-F8jfSV8t.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};
@@ -0,0 +1 @@
import{a8 as c,a9 as k,au as p,av as D,aa as m,aw as y,af as f,ax as G,ay as M,ag as g,az as B,aA as O,aB as q,aC as K,aD as E,ac as $,aE as Y,aF as F,aG as j,P as H,aH as U,aI as w}from"./index-DyhzhPHB.js";const[W,J]=f("form"),L={colon:Boolean,disabled:Boolean,readonly:Boolean,required:[Boolean,String],showError:Boolean,labelWidth:p,labelAlign:String,inputAlign:String,scrollToError:Boolean,scrollToErrorPosition:String,validateFirst:Boolean,submitOnEnter:k,showErrorMessage:k,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var Q=c({name:W,props:L,emits:["submit","failed"],setup(t,{emit:d,slots:r}){const{children:o,linkChildren:u}=y(G),s=e=>e?o.filter(a=>e.includes(a.name)):o,h=e=>new Promise((a,n)=>{const l=[];s(e).reduce((R,z)=>R.then(()=>{if(!l.length)return z.validate().then(V=>{V&&l.push(V)})}),Promise.resolve()).then(()=>{l.length?n(l):a()})}),C=e=>new Promise((a,n)=>{const l=s(e);Promise.all(l.map(i=>i.validate())).then(i=>{i=i.filter(Boolean),i.length?n(i):a()})}),N=e=>{const a=o.find(n=>n.name===e);return a?new Promise((n,l)=>{a.validate().then(i=>{i?l(i):n()})}):Promise.reject()},v=e=>typeof e=="string"?N(e):t.validateFirst?h(e):C(e),T=e=>{typeof e=="string"&&(e=[e]),s(e).forEach(n=>{n.resetValidation()})},I=()=>o.reduce((e,a)=>(e[a.name]=a.getValidationStatus(),e),{}),S=(e,a)=>{o.some(n=>n.name===e?(n.$el.scrollIntoView(a),!0):!1)},P=()=>o.reduce((e,a)=>(a.name!==void 0&&(e[a.name]=a.formValue.value),e),{}),b=()=>{const e=P();v().then(()=>d("submit",e)).catch(a=>{d("failed",{values:e,errors:a});const{scrollToError:n,scrollToErrorPosition:l}=t;n&&a[0].name&&S(a[0].name,l?{block:l}:void 0)})},x=e=>{M(e),b()};return u({props:t}),D({submit:b,validate:v,getValues:P,scrollToField:S,resetValidation:T,getValidationStatus:I}),()=>{var e;return m("form",{class:J(),onSubmit:x},[(e=r.default)==null?void 0:e.call(r)])}}});const ce=g(Q),[_,X]=f("radio-group"),Z={shape:String,disabled:Boolean,iconSize:p,direction:String,modelValue:B,checkedColor:String},A=Symbol(_);var ee=c({name:_,props:Z,emits:["change","update:modelValue"],setup(t,{emit:d,slots:r}){const{linkChildren:o}=y(A),u=s=>d("update:modelValue",s);return O(()=>t.modelValue,s=>d("change",s)),o({props:t,updateValue:u}),q(()=>t.modelValue),()=>{var s;return m("div",{class:X([t.direction]),role:"radiogroup"},[(s=r.default)==null?void 0:s.call(r)])}}});const me=g(ee),ae=F({},j,{shape:String}),[te,oe]=f("radio");var ne=c({name:te,props:ae,emits:["update:modelValue"],setup(t,{emit:d,slots:r}){const{parent:o}=K(A),u=()=>(o?o.props.modelValue:t.modelValue)===t.name,s=()=>{o?o.updateValue(t.name):d("update:modelValue",t.name)};return()=>m(Y,$({bem:oe,role:"radio",parent:o,checked:u(),onToggle:s},t),E(r,["default","icon"]))}});const fe=g(ne),[se,le]=f("notify"),re=["lockScroll","position","show","teleport","zIndex"],ie=F({},U,{type:w("danger"),color:String,message:p,position:w("top"),className:B,background:String,lockScroll:Boolean});var de=c({name:se,props:ie,emits:["update:show"],setup(t,{emit:d,slots:r}){const o=u=>d("update:show",u);return()=>m(H,$({class:[le([t.type]),t.className],style:{color:t.color,background:t.background},overlay:!1,duration:.2,"onUpdate:show":o},E(t,re)),{default:()=>[r.default?r.default():t.message]})}});const ge=g(de);export{ce as F,ge as N,fe as R,me as a,ae as b,L as f,ie as n,Z as r};
@@ -0,0 +1 @@
:root,:host{--van-cell-group-background: var(--van-background-2);--van-cell-group-title-color: var(--van-text-color-2);--van-cell-group-title-padding: var(--van-padding-md) var(--van-padding-md);--van-cell-group-title-font-size: var(--van-font-size-md);--van-cell-group-title-line-height: 16px;--van-cell-group-inset-padding: 0 var(--van-padding-md);--van-cell-group-inset-radius: var(--van-radius-lg);--van-cell-group-inset-title-padding: var(--van-padding-md) var(--van-padding-md)}.van-cell-group{background:var(--van-cell-group-background)}.van-cell-group--inset{margin:var(--van-cell-group-inset-padding);border-radius:var(--van-cell-group-inset-radius);overflow:hidden}.van-cell-group__title{padding:var(--van-cell-group-title-padding);color:var(--van-cell-group-title-color);font-size:var(--van-cell-group-title-font-size);line-height:var(--van-cell-group-title-line-height)}.van-cell-group__title--inset{padding:var(--van-cell-group-inset-title-padding)}