Files
vueapp/dist/assets/pages-profile-profile.DdxcFZio.js
T
2026-06-15 17:55:37 +08:00

2 lines
8.3 KiB
JavaScript

import{d as l,r as a,c as e,o as s,b as t,e as n,f as i,w as o,i as c,j as u,t as r,l as d,m as f,F as v,n as _,Q as m,s as p,q as b,G as g,z as y,A as h,y as k,x as w,S as x,g as C,H as F}from"./index-Bv1M0xYX.js";import{c as j,d as $}from"./profile.vWm15Ukb.js";import{_ as N}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./auth.hegII4fT.js";const I=N(l({__name:"profile",emits:["open-settings","go-home"],setup(l,{emit:N}){var I,S;const M=N,T=a("focused"),A=a(""),B=a(!1),G=a(null),H=a(null),O=a(!1);let P=null;const q=m(),z=Boolean(null==(I=null==q?void 0:q.vnode.props)?void 0:I.onGoHome),E=Boolean(null==(S=null==q?void 0:q.vnode.props)?void 0:S.onOpenSettings),Q=[{id:"steady",label:"平稳专注",icon:"satisfied-icon"},{id:"focused",label:"专注度极高",icon:"bolt-icon"},{id:"mindful",label:"沉浸复盘",icon:"self-icon"}],R=[{label:"首席诊断师",icon:"premium-icon",tone:"tertiary"},{label:"极速响应者",icon:"medical-icon",tone:"secondary"},{label:"病例专家",icon:"history-icon",tone:"primary"}],W=[{title:"我的训练记录",desc:"临床实战数据详细分析",icon:"analytics-icon",tone:"record",route:"/pages/profile/profile-records"},{title:"智能分析",desc:"基于AI的临床能力深度洞察",icon:"insights-icon",tone:"analysis",route:"/pages/profile/profile-analysis"}],D=e((()=>{const l=G.value,a=(null==l?void 0:l.real_name)||(null==l?void 0:l.username)||(null==l?void 0:l.phone);return a?`${a} 医生`:O.value?"加载中...":"未登录医生"})),J=e((()=>{var l;return{student:"学员",teacher:"教师",admin:"管理"}[(null==(l=G.value)?void 0:l.role_type)||""]||"PRO"})),K=e((()=>{var l,a;return(a=null==(l=G.value)?void 0:l.avatar)?/^https?:\/\//i.test(a)||a.startsWith("/")?a:`/${a}`:"/static/config-doctor.png"})),L=e((()=>{var l,a,e;return(null==(l=G.value)?void 0:l.training_stage)||(null==(a=G.value)?void 0:a.current_level)||(null==(e=G.value)?void 0:e.title_name)||"未配置阶段"})),U=e((()=>{var l,a;return(null==(l=G.value)?void 0:l.department_name)||(null==(a=G.value)?void 0:a.major)||"未配置科室"})),V=e((()=>{const l=G.value;return[{label:(null==l?void 0:l.institution_name)||"未绑定机构",icon:"school-icon"},{label:(null==l?void 0:l.department_name)||"未配置科室",icon:"location-icon"},{label:(null==l?void 0:l.title_name)||"未配置职称",icon:"calendar-icon"},{label:ll(null==l?void 0:l.practice_years),icon:"timer-icon"}]})),X=e((()=>{var l,a;const e=H.value,s=(null==e?void 0:e.completed_cases)??(null==(l=G.value)?void 0:l.total_case_count)??(null==(a=G.value)?void 0:a.total_training_count)??0,t=(null==e?void 0:e.completed_cases_week)??0,n=(null==e?void 0:e.total_hours)??0,i=(null==e?void 0:e.avg_score)??0,o=(null==e?void 0:e.diagnosis_accuracy)??0;return[{label:"已完成病例",value:al(s),badge:`本周 +${al(t)}`},{label:"累计训练时长",value:al(n),unit:"小时"},{label:"平均分",value:el(i),progress:`${sl(i)}%`},{label:"诊断准确率",value:`${al(o)}%`,trending:!0}]})),Y=e((()=>{var l;return(null==(l=Q.find((l=>l.id===T.value)))?void 0:l.label)||"专注度极高"}));function Z(l){P&&clearTimeout(P),A.value=l,B.value=!0,P=setTimeout((()=>{B.value=!1}),2200)}function ll(l){return l?l.includes("年")?l:`${l}年经验`:"未配置年限"}function al(l){return Number.isFinite(l)?Number.isInteger(l)?String(l):l.toFixed(1):"0"}function el(l){return Number.isFinite(l)?Number.isInteger(l)?String(l):l.toFixed(1):"0"}function sl(l){return Number.isFinite(l)?Math.max(0,Math.min(100,Math.round(l))):0}function tl(){z?M("go-home"):b({url:"/pages/home/home"})}function nl(){E?M("open-settings"):g({url:"/pages/config/config"})}return s((()=>{!async function(){O.value=!0;try{const[l,a]=await Promise.all([j(),$()]);G.value=l,H.value=a,p("clinical-thinking-user-profile",l)}catch(l){Z(l instanceof Error?l.message:"个人信息加载失败")}finally{O.value=!1}}()})),t((()=>{P&&clearTimeout(P)})),(l,a)=>{const e=y,s=h,t=k,m=w,p=x;return n(),i(e,{class:"profile-page"},{default:o((()=>[c(e,{class:"profile-shell"},{default:o((()=>[c(e,{class:"top-app-bar"},{default:o((()=>[c(s,{class:"top-button nav-left","aria-label":"首页",onClick:tl},{default:o((()=>[c(e,{class:"home-icon"})])),_:1}),c(t,{class:"page-title"},{default:o((()=>[u("个人中心")])),_:1}),c(s,{class:"top-button nav-right","aria-label":"配置",onClick:nl},{default:o((()=>[c(e,{class:"settings-icon"})])),_:1})])),_:1}),c(p,{class:"profile-scroll","scroll-y":""},{default:o((()=>[c(e,{class:"profile-content"},{default:o((()=>[c(e,{class:"user-card"},{default:o((()=>[c(e,{class:"avatar-wrap"},{default:o((()=>[c(m,{class:"avatar-image",src:K.value,mode:"aspectFill"},null,8,["src"]),c(t,{class:"pro-badge"},{default:o((()=>[u(r(J.value),1)])),_:1})])),_:1}),c(e,{class:"user-copy"},{default:o((()=>[c(t,{class:"doctor-name"},{default:o((()=>[u(r(D.value),1)])),_:1}),c(e,{class:"tag-row"},{default:o((()=>[c(t,{class:"tag primary-tag"},{default:o((()=>[u(r(L.value),1)])),_:1}),c(t,{class:"tag secondary-tag"},{default:o((()=>[u(r(U.value),1)])),_:1})])),_:1}),c(e,{class:"meta-grid"},{default:o((()=>[(n(!0),d(v,null,f(V.value,(l=>(n(),i(e,{key:l.label,class:"meta-item"},{default:o((()=>[c(e,{class:_(["meta-icon",l.icon])},null,8,["class"]),c(t,null,{default:o((()=>[u(r(l.label),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1}),c(e,{class:"section-block"},{default:o((()=>[c(e,{class:"section-title-row"},{default:o((()=>[c(t,{class:"section-title"},{default:o((()=>[u("专注状态与荣誉墙")])),_:1})])),_:1}),c(e,{class:"mood-card"},{default:o((()=>[c(e,null,{default:o((()=>[c(t,{class:"sub-label"},{default:o((()=>[u("今日学习状态")])),_:1}),c(t,{class:"mood-title"},{default:o((()=>[u(r(Y.value),1)])),_:1})])),_:1}),c(e,{class:"mood-actions"},{default:o((()=>[(n(),d(v,null,f(Q,(l=>c(s,{key:l.id,class:_(["mood-button",{active:T.value===l.id}]),"aria-label":l.label,onClick:a=>T.value=l.id},{default:o((()=>[c(e,{class:_(["mood-icon",l.icon])},null,8,["class"])])),_:2},1032,["class","aria-label","onClick"]))),64))])),_:1})])),_:1}),c(e,{class:"medal-card"},{default:o((()=>[c(e,{class:"medal-head"},{default:o((()=>[c(t,{class:"sub-label"},{default:o((()=>[u("勋章墙")])),_:1}),c(s,{class:"text-link",onClick:a[0]||(a[0]=l=>Z("勋章墙详情即将开放"))},{default:o((()=>[u("查看全部 (12)")])),_:1})])),_:1}),c(e,{class:"medal-list"},{default:o((()=>[(n(),d(v,null,f(R,(l=>c(e,{key:l.label,class:"medal-item"},{default:o((()=>[c(e,{class:_(["medal-circle",l.tone])},{default:o((()=>[c(e,{class:_(["medal-icon",l.icon])},null,8,["class"])])),_:2},1032,["class"]),c(t,null,{default:o((()=>[u(r(l.label),1)])),_:2},1024)])),_:2},1024))),64))])),_:1})])),_:1})])),_:1}),c(e,{class:"action-stack"},{default:o((()=>[(n(),d(v,null,f(W,(l=>c(s,{key:l.title,class:_(["entry-card",l.tone]),onClick:a=>function(l){l.route?g({url:l.route}):Z(l.toast||"功能即将开放")}(l)},{default:o((()=>[c(e,{class:"entry-main"},{default:o((()=>[c(e,{class:"entry-icon-wrap"},{default:o((()=>[c(e,{class:_(["entry-icon",l.icon])},null,8,["class"])])),_:2},1024),c(e,{class:"entry-copy"},{default:o((()=>[c(t,{class:"entry-title"},{default:o((()=>[u(r(l.title),1)])),_:2},1024),c(t,{class:"entry-desc"},{default:o((()=>[u(r(l.desc),1)])),_:2},1024)])),_:2},1024)])),_:2},1024),c(e,{class:"chevron-icon"})])),_:2},1032,["class","onClick"]))),64))])),_:1}),c(e,{class:"section-block"},{default:o((()=>[c(t,{class:"section-title"},{default:o((()=>[u("临床核心能力指标")])),_:1}),c(e,{class:"metric-grid"},{default:o((()=>[(n(!0),d(v,null,f(X.value,(l=>(n(),i(e,{key:l.label,class:"metric-card"},{default:o((()=>[c(t,{class:"sub-label"},{default:o((()=>[u(r(l.label),1)])),_:2},1024),c(e,{class:"metric-value-row"},{default:o((()=>[c(t,{class:"metric-value"},{default:o((()=>[u(r(l.value),1)])),_:2},1024),l.badge?(n(),i(t,{key:0,class:"metric-badge"},{default:o((()=>[u(r(l.badge),1)])),_:2},1024)):C("",!0),l.unit?(n(),i(t,{key:1,class:"metric-unit"},{default:o((()=>[u(r(l.unit),1)])),_:2},1024)):C("",!0),l.progress?(n(),i(e,{key:2,class:"mini-progress"},{default:o((()=>[c(e,{class:"mini-progress-fill",style:F({width:l.progress})},null,8,["style"])])),_:2},1024)):C("",!0),l.trending?(n(),i(e,{key:3,class:"trend-icon"})):C("",!0)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1})])),_:1}),c(e,{class:_(["toast",{visible:B.value}])},{default:o((()=>[u(r(A.value),1)])),_:1},8,["class"])])),_:1})])),_:1})}}}),[["__scopeId","data-v-b88301c5"]]);export{I as default};