2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
|
|
import{d as e,r as a,a as l,c as s,o as t,b as n,e as c,f as i,w as u,g as o,h as d,v as A,i as r,j as m,n as v,t as f,k as p,l as g,m as I,F as h,s as y,p as b,q as C,u as k,x as R,y as Q,I as E,z,S as Z,A as V}from"./index-CpNRQgjE.js";import{C as G,f as w,s as B,A as N,l as j}from"./config.CeLegioC.js";import Y from"./pages-profile-profile.B4yr9-t8.js";import{_ as D}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./config-doctor.TgARj_nM.js";import"./navigation.CsipbD6y.js";const O=D(e({__name:"index",setup(e){const D=a([]),O=l({phone:"",code:"",institutionId:""}),J=a(""),F=a(!1),L=a(!1),S=a(!1),T=a(!1),U=a(0),W=a(""),x=a(!1),M=a(!1),H=a(!1),P=a(!1),X=a(!1),q=a(!1);let K=null,_=null;const $=s((()=>D.value.find((e=>e.id===O.institutionId)))),ee=s((()=>U.value>0)),ae=s((()=>S.value?"发送中...":ee.value?`${U.value}s`:"获取验证码"));function le(e){const a=[e.province,e.city].filter(Boolean).join(" · ");return{id:String(e.id),code:e.code,name:e.name,city:a||"其他",typeName:{hospital:"医院",college:"医学院校",school:"学校",clinic:"诊所"}[e.type]||"机构"}}function se(){F.value=!F.value}async function te(){if(!S.value&&!ee.value&&ce()){S.value=!0;try{let a;try{a=await B(O.phone)}catch(e){if(!(e instanceof N&&"AUTH_PHONE_NOT_FOUND"===e.code))throw e;a=await B(O.phone,"register")}oe(a.message||"验证码已发送"),U.value=60,de(),K=setInterval((()=>{U.value-=1,U.value<=0&&de()}),1e3)}catch(e){oe(e instanceof Error?e.message:"验证码发送失败")}finally{S.value=!1}}}function ne(){if(!T.value&&ce())if(O.code.trim())if($.value){if(!F.value)return oe("请阅读并勾选用户协议"),L.value=!1,void C((()=>{L.value=!0,setTimeout((()=>{L.value=!1}),500)}));T.value=!0,j({phone:O.phone,code:O.code,institution_code:$.value.code,institution_name:$.value.name}).then((e=>{var a,l,s;const t=e.user||{},n={...t,id:t.id?String(t.id):"",phone:t.phone||O.phone,institutionId:(null==(a=$.value)?void 0:a.code)||"",institutionCode:(null==(l=$.value)?void 0:l.code)||"",institutionName:(null==(s=$.value)?void 0:s.name)||""};y("clinical-thinking-user",n),y("clinical-thinking-tokens",e.tokens),y("clinical-thinking-access-token",e.tokens.access),y("clinical-thinking-refresh-token",e.tokens.refresh),oe(e.message||"正在进入系统..."),b({url:"/pages/config/config"})})).catch((e=>{oe(e instanceof Error?e.message:"登录失败,请稍后重试")})).finally((()=>{T.value=!1}))}else oe("请选择所属机构");else oe("请输入短信验证码")}function ce(){return!!/^1[3-9]\d{9}$/.test(O.phone)||(oe("请输入正确的手机号"),!1)}function ie(e){V({title:"service"===e?"用户服务协议":"隐私保护政策",content:"这里是前端模拟协议内容,后续可替换为正式协议页面或富文本接口。",showCancel:!1,confirmColor:"#00478d"})}function ue(){H.value=!1,M.value=!0}function oe(e){_&&clearTimeout(_),W.value=e,x.value=!0,_=setTimeout((()=>{x.value=!1}),2500)}function de(){K&&(clearInterval(K),K=null)}return t((()=>{!async function(){X.value=!0;try{const e=await w();D.value=e.map(le)}catch(e){oe(e instanceof Error?e.message:"机构列表加载失败"),D.value=[]}finally{X.value=!1,q.value=!0}}()})),n((()=>{de(),_&&clearTimeout(_)})),(e,a)=>{const l=k,s=R,t=Q,n=E,y=z,b=Z;return c(),i(t,{class:"page-root"},{default:u((()=>[H.value?(c(),i(Y,{key:0,onOpenSettings:ue,onGoHome:a[0]||(a[0]=e=>H.value=!1)})):o("",!0),M.value?d((c(),i(G,{key:1,onOpenProfile:a[1]||(a[1]=e=>H.value=!0)},null,512)),[[A,!H.value]]):o("",!0),M.value||H.value?o("",!0):(c(),i(t,{key:2,class:"auth-page"},{default:u((()=>[r(t,{class:"auth-container"},{default:u((()=>[r(t,{class:"header"},{default:u((()=>[r(l,{class:"logo",mode:"aspectFit",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAAEi6oPRAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwB
|