import{C as e,D as a,d as l,a as s,r as t,c,o as n,b as u,e as i,f as o,w as r,i as d,n as f,j as v,t as p,l as m,m as b,F as _,k as g,g as h,s as k,q as y,x as C,z as x,y as j,A as w,S as T}from"./index-DGiVEDOl.js";import{_ as A}from"./config-doctor.TgARj_nM.js";import{c as F}from"./navigation.CRkd1wPM.js";import{a as M,A as P,b as S,c as $}from"./auth.vuBox8Gk.js";import{_ as z}from"./_plugin-vue_export-helper.BCo6x5W8.js";const E={departments:[{value:"im",label:"内科",desc:"心内、呼吸、消化、肾内等临床场景"},{value:"sur",label:"外科",desc:"普外、骨科、神外、胸外等临床场景"},{value:"ped",label:"儿科",desc:"儿童常见病、急重症与沟通训练"},{value:"obg",label:"妇产科",desc:"围产、妇科、产科急症训练"},{value:"er",label:"急诊科",desc:"分诊、抢救、危急值处置训练"},{value:"icu",label:"重症医学科",desc:"危重症评估与多学科决策训练"}],titles:[{value:"resident",label:"住院医师",desc:"强化基础诊疗路径与病历思维"},{value:"attending",label:"主治医师",desc:"提升独立诊疗和带教表达"},{value:"associate_chief",label:"副主任医师",desc:"复杂病例决策与团队协作"},{value:"chief",label:"主任医师",desc:"疑难病例、质控和教学管理"}],experiences:[{value:"1-3",label:"1-3年",desc:"基础病例训练优先"},{value:"3-5",label:"3-5年",desc:"进阶诊疗路径优先"},{value:"5-10",label:"5-10年",desc:"复杂病例推演优先"},{value:"10+",label:"10年以上",desc:"疑难病例与带教模拟优先"}]};function I(l){return new Promise(((s,t)=>{const c=function(){try{return a("clinical-thinking-access-token")||""}catch{return""}}(),n={"Content-Type":"application/json"};c&&(n.Authorization=`Bearer ${c}`),e({url:`${M}/user/profile/config/`,method:"POST",timeout:1e4,header:n,data:l,success:e=>{if(e.statusCode>=200&&e.statusCode<300)return void s(e.data);const a=e.data,l="string"==typeof(null==a?void 0:a.code)?a.code:void 0;t(new P(function(e,a){if(e&&"object"==typeof e){const a=e,l=a.message||a.detail||a.error;if("string"==typeof l&&l.trim())return l}return a}(e.data,`保存失败(${e.statusCode})`),l,e.statusCode))},fail:e=>{t(new P(e.errMsg||"无法连接服务"))}})}))}const N=z(l({__name:"config",emits:["open-profile"],setup(e,{emit:a}){const l=s({department:"im",title:"resident",experience:"1-3"}),M=t(E),P=t("欢迎回来!请配置执业信息,开始精准带教模拟。"),z=t(""),N=t(!1),O=t(""),q=t(!1),B=t(!1),D=t("idle"),G=t(""),H=t(!1),J=t("");F(a);let K=null,L=null;const Q=c((()=>ee("departments",l.department))),R=c((()=>ee("titles",l.title))),U=c((()=>ee("experiences",l.experience))),V=c((()=>{const e={department:M.value.departments,title:M.value.titles,experience:M.value.experiences},a=O.value;return a?e[a]:[]})),W=c((()=>{const e=O.value;return e?{department:"选择执业科室",title:"选择专业职称",experience:"选择执业年限"}[e]:"请选择"})),X=c((()=>B.value?"正在保存...":"saved"===D.value?"已就绪":"确认并继续"));function Y(){Promise.resolve({options:E,defaults:{department:"im",title:"resident",experience:"1-3"},mentor:{name:"王主任",message:"欢迎回来!请配置执业信息,开始精准带教模拟。"}}).then((({options:e,defaults:a,mentor:s})=>{M.value=e,Object.assign(l,a),P.value=s.message,function(){K&&clearTimeout(K);z.value="",N.value=!0;let e=0;const a=()=>{e
e.value===a))||l[0]||{label:"请选择",value:""}}function ae(e){O.value=e,q.value=!0}function le(){q.value=!1,O.value=""}function se(){const e=Number(l.department);if(!Number.isInteger(e)||e<=0)return void ce("请先选择有效执业科室");const a={department:e,title_name:R.value.label,practice_years:U.value.label};B.value=!0,D.value="idle",I(a).then((e=>{k("clinical-thinking-config",e),B.value=!1,D.value="saved",ce("配置已保存"),setTimeout((()=>{y({url:"/pages/home/home"})}),500)})).catch((e=>{B.value=!1,ce(e instanceof Error?e.message:"保存失败,请稍后重试")}))}function te(){"/static/config-hospital.png"!==J.value&&(J.value="/static/config-hospital.png")}function ce(e){L&&clearTimeout(L),G.value=e,H.value=!0,L=setTimeout((()=>{H.value=!1}),2200)}return n((()=>{Y(),async function(){try{const e=await S();if(0===e.length)return;const a=e.map(Z);M.value={...M.value,departments:a},l.department=a[0].value}catch{}}(),async function(){try{const e=await $();J.value=e.banner_url||"/static/config-hospital.png"}catch{J.value="/static/config-hospital.png"}}()})),u((()=>{K&&clearTimeout(K),L&&clearTimeout(L)})),(e,a)=>{const s=C,t=x,c=j,n=w,u=T;return i(),o(t,{class:"config-page"},{default:r((()=>[d(t,{class:"phone-frame"},{default:r((()=>[d(t,{class:"hero-section"},{default:r((()=>[d(s,{class:"hospital-image",src:J.value,mode:"aspectFill",onError:te},null,8,["src"]),d(t,{class:"hero-overlay"})])),_:1}),d(t,{class:"profile-section"},{default:r((()=>[d(t,{class:"section-glow"}),d(t,{class:"profile-content"},{default:r((()=>[d(t,{class:"intro-row"},{default:r((()=>[d(t,{class:"doctor-card"},{default:r((()=>[d(s,{class:"doctor-image",src:A,mode:"aspectFit"})])),_:1}),d(t,{class:"bubble"},{default:r((()=>[d(c,{class:f(["bubble-text",{typing:N.value}])},{default:r((()=>[v(p(z.value),1)])),_:1},8,["class"]),d(t,{class:"bubble-arrow"})])),_:1})])),_:1}),d(t,{class:"form-area"},{default:r((()=>[d(t,{class:"field-block"},{default:r((()=>[d(c,{class:"field-label"},{default:r((()=>[v("执业科室")])),_:1}),d(t,{class:"glass-select",onClick:a[0]||(a[0]=e=>ae("department"))},{default:r((()=>[d(c,{class:"select-value"},{default:r((()=>[v(p(Q.value.label),1)])),_:1}),d(t,{class:"chevron"})])),_:1})])),_:1}),d(t,{class:"field-grid"},{default:r((()=>[d(t,{class:"field-block"},{default:r((()=>[d(c,{class:"field-label"},{default:r((()=>[v("专业职称")])),_:1}),d(t,{class:"glass-select",onClick:a[1]||(a[1]=e=>ae("title"))},{default:r((()=>[d(c,{class:"select-value"},{default:r((()=>[v(p(R.value.label),1)])),_:1}),d(t,{class:"chevron"})])),_:1})])),_:1}),d(t,{class:"field-block"},{default:r((()=>[d(c,{class:"field-label"},{default:r((()=>[v("执业年限")])),_:1}),d(t,{class:"glass-select",onClick:a[2]||(a[2]=e=>ae("experience"))},{default:r((()=>[d(c,{class:"select-value"},{default:r((()=>[v(p(U.value.label),1)])),_:1}),d(t,{class:"chevron"})])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})])),_:1}),d(t,{class:"action-section"},{default:r((()=>[d(n,{class:f(["submit-button",{saved:"saved"===D.value}]),disabled:B.value,onClick:se},{default:r((()=>[B.value?(i(),o(t,{key:0,class:"spinner"})):"saved"===D.value?(i(),o(t,{key:1,class:"check-icon"})):(i(),o(t,{key:2,class:"check-icon"})),d(c,null,{default:r((()=>[v(p(X.value),1)])),_:1})])),_:1},8,["class","disabled"]),d(t,{class:"secure-tip"},{default:r((()=>[d(t,{class:"lock-icon"}),d(c,null,{default:r((()=>[v("数据已进行安全加密处理")])),_:1})])),_:1})])),_:1}),d(t,{class:"home-indicator"})])),_:1}),d(t,{class:f(["toast",{visible:H.value}])},{default:r((()=>[v(p(G.value),1)])),_:1},8,["class"]),q.value?(i(),o(t,{key:0,class:"picker-mask",onClick:le},{default:r((()=>[d(t,{class:"picker-panel",onClick:a[3]||(a[3]=g((()=>{}),["stop"]))},{default:r((()=>[d(t,{class:"picker-header"},{default:r((()=>[d(c,{class:"picker-title"},{default:r((()=>[v(p(W.value),1)])),_:1}),d(c,{class:"picker-close",onClick:le},{default:r((()=>[v("关闭")])),_:1})])),_:1}),d(u,{class:"option-list","scroll-y":""},{default:r((()=>[(i(!0),m(_,null,b(V.value,(e=>(i(),o(t,{key:e.value,class:f(["option-item",{active:e.value===l[O.value]}]),onClick:a=>function(e){const a=O.value;a&&(l[a]=e.value,le())}(e)},{default:r((()=>[d(t,{class:"option-copy"},{default:r((()=>[d(c,{class:"option-label"},{default:r((()=>[v(p(e.label),1)])),_:2},1024),e.desc?(i(),o(c,{key:0,class:"option-desc"},{default:r((()=>[v(p(e.desc),1)])),_:2},1024)):h("",!0)])),_:2},1024),e.value===l[O.value]?(i(),o(t,{key:0,class:"selected-mark"})):h("",!0)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1})])),_:1})):h("",!0)])),_:1})}}}),[["__scopeId","data-v-40671f38"]]);export{N as default};