Files
vueapp/dist/assets/pages-index-index.DmVN5sSS.js
T

2 lines
14 KiB
JavaScript
Raw Normal View History

2026-06-05 15:27:29 +08:00
import{r as e,d as a,a as t,b as l,c as s,o as n,e as i,f as o,w as c,g as u,h as d,v as r,i as m,j as A,n as p,t as v,k as f,l as g,m as h,F as I,s as y,p as C,q as b,u as R,x as k,y as Q,I as E,z as j,S as z,A as Z}from"./index-CO9MSRh5.js";import w from"./pages-config-config.DU1bl-i3.js";import N from"./pages-profile-profile.DfpGfnMh.js";import{_ as V}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./scenario.BukjTHcC.js";import"./navigation.CR32hNeX.js";import"./chat.8vobffxZ.js";import"./pages-diagnosis-diagnosis.66q0uZui.js";import"./pages-treatment-treatment.D0F-ACWL.js";import"./pages-assessment-assessment.C4j7M_zU.js";import"./pages-home-home.CT-k3IgO.js";import"./pages-matching-matching.Ct5sJvnH.js";import"./pages-cases-cases.BoP2qVQz.js";import"./pages-teaching-teaching.B-cSP3tJ.js";class G extends Error{constructor(e,a,t){super(e),this.name="ApiRequestError",this.code=a,this.statusCode=t}}function B(a,t){return new Promise(((l,s)=>{e({url:`/server/api${a}`,method:"POST",timeout:1e4,header:{"Content-Type":"application/json"},data:t,success:e=>{if(e.statusCode>=200&&e.statusCode<300)return void l(e.data);const a=e.data,t="string"==typeof(null==a?void 0:a.code)?a.code:void 0;s(new G(function(e,a){if(e&&"object"==typeof e){const a=e,t=a.message||a.detail||a.error;if("string"==typeof t&&t.trim())return t}return a}(e.data,`请求失败(${e.statusCode}`),t,e.statusCode))},fail:e=>{s(new G(e.errMsg||"无法连接服务"))}})}))}function O(e,a="login"){return B("/user/auth/send-code/",{phone:e,scene:a})}function Y(e){return B("/user/auth/login-code/",e).then((e=>{if(function(e){if(!e||"object"!=typeof e)return!1;const a=e,t=a.tokens;return Boolean(a.tokens&&"string"==typeof(null==t?void 0:t.access)&&"string"==typeof(null==t?void 0:t.refresh))}(e))return e;throw new Error("登录接口返回数据格式异常")}))}const D=V(a({__name:"index",setup(e){const a=[{id:"H001",code:"H001",name:"协和医学院",city:"北京",typeName:"医学院校"},{id:"H002",code:"H002",name:"四川大学华西医院",city:"成都",typeName:"三甲医院"},{id:"H003",code:"H003",name:"复旦大学附属中山医院",city:"上海",typeName:"三甲医院"},{id:"H004",code:"H004",name:"中山大学孙逸仙纪念医院",city:"广州",typeName:"三甲医院"},{id:"OTHER",code:"OTHER",name:"其他机构",city:"其他",typeName:"手动登记"}],V=t({phone:"",code:"",institutionId:""}),B=l(""),D=l(!1),J=l(!1),T=l(!1),F=l(!1),L=l(0),S=l(""),H=l(!1),U=l(!1),W=l(!1),x=l(!1);let M=null,P=null;const X=s((()=>a.find((e=>e.id===V.institutionId)))),q=s((()=>L.value>0)),K=s((()=>T.value?"发送中...":q.value?`${L.value}s`:"获取验证码"));function _(){D.value=!D.value}async function $(){if(!T.value&&!q.value&&ae()){T.value=!0;try{let a;try{a=await O(V.phone)}catch(e){if(!(e instanceof G&&"AUTH_PHONE_NOT_FOUND"===e.code))throw e;a=await O(V.phone,"register")}se(a.message||"验证码已发送"),L.value=60,ne(),M=setInterval((()=>{L.value-=1,L.value<=0&&ne()}),1e3)}catch(e){se(e instanceof Error?e.message:"验证码发送失败")}finally{T.value=!1}}}function ee(){if(!F.value&&ae())if(V.code.trim())if(X.value){if(!D.value)return se("请阅读并勾选用户协议"),J.value=!1,void C((()=>{J.value=!0,setTimeout((()=>{J.value=!1}),500)}));F.value=!0,Y({phone:V.phone,code:V.code,institution_code:X.value.code,institution_name:X.value.name}).then((e=>{var a,t,l;const s=e.user||{},n={...s,id:s.id?String(s.id):"",phone:s.phone||V.phone,institutionId:(null==(a=X.value)?void 0:a.code)||"",institutionCode:(null==(t=X.value)?void 0:t.code)||"",institutionName:(null==(l=X.value)?void 0:l.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),se(e.message||"正在进入系统..."),U.value=!0})).catch((e=>{se(e instanceof Error?e.message:"登录失败,请稍后重试")})).finally((()=>{F.value=!1}))}else se("请选择所属机构");else se("请输入短信验证码")}function ae(){return!!/^1[3-9]\d{9}$/.test(V.phone)||(se("