import{d as e,r as a,a as l,c as t,J as s,o as u,b as c,e as i,f as n,w as o,i as r,E as d,j as v,t as f,l as m,m as p,F as _,g as y,n as h,z as g,A as k,y as b,I as C,S as T,s as w,G as j}from"./index-Q7O_Lt5U.js";import{o as $}from"./uni-app.es.C3mqvWrg.js";import{t as S,f as x}from"./cases.DkC2_zOc.js";import{c as N,a as z,b as B}from"./navigation.Cz4dSzf_.js";import{_ as I}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./auth.DjN40eKL.js";const V=I(e({__name:"cases",emits:["open-settings","open-profile","go-home"],setup(e,{emit:I}){const V=I,E=N(V),M=z(V),A=B(V),D=a([]),F=a(""),G=a(!1),J=a(!1),U=a(!1),q=a(""),H=a(0),K=a(1),L=a(10),O=a("recommended"),P=a(""),Q=a(""),R=a(""),W=a(!1),X=l({case_type:"",difficulty:""});let Y=null,Z=null,ee=0;const ae={recommended:{title:"开始训练",subtitle:"基于您的训练画像智能推荐病例",placeholder:"搜索病例标题、科室、主诉"},specialty:{title:"专项强化",subtitle:"按配置科室聚焦专项病例",placeholder:"搜索专项病例"},weak:{title:"薄弱环节",subtitle:"优先呈现训练分数低于 70 分的病例",placeholder:"搜索待补强病例"},teaching:{title:"教学互动",subtitle:"练习模式与教学互动模式病例",placeholder:"搜索教学互动病例"},"teacher-task":{title:"教师任务",subtitle:"老师配置的针对性任务训练",placeholder:"搜索教师任务病例"}},le=t((()=>"teaching"===O.value||"teacher-task"===O.value?[]:[{label:"全部类型",value:""},{label:"练习模式",value:"practice"},{label:"教学互动",value:"teaching"}])),te=[{label:"全部难度",value:""},{label:"简单",value:"easy"},{label:"中等",value:"medium"},{label:"困难",value:"hard"}],se=t((()=>ae[O.value])),ue=t((()=>D.value.lengthe.department)))?void 0:a.department)||Q.value:""}catch(u){if(t!==ee)return;U.value=l,q.value=u instanceof Error?u.message:"病例列表加载失败",function(e){Y&&clearTimeout(Y);R.value=e,W.value=!0,Y=setTimeout((()=>{W.value=!1}),2200)}(q.value)}finally{t===ee&&(G.value=!1,J.value=!1)}}function oe(){K.value=1,D.value=[],H.value=0,ne(1)}function re(){G.value||J.value||!ue.value||ne(K.value+1)}return s(F,(()=>{Z&&clearTimeout(Z),Z=setTimeout((()=>{oe()}),500)})),$((e=>{const a=null==e?void 0:e.source,l=null==e?void 0:e.mode,t=null==e?void 0:e.department,s=Number(null==e?void 0:e.page_size);var u;"recommended"===(u=a)||"specialty"===u||"weak"===u||"teaching"===u||"teacher-task"===u?O.value=a:"teaching"===l&&(O.value="teaching"),"string"==typeof t&&t.trim()&&(P.value=t),Number.isInteger(s)&&s>0&&(L.value=s)})),u(ne),c((()=>{Y&&clearTimeout(Y),Z&&clearTimeout(Z)})),(e,a)=>{const l=g,t=k,s=b,u=C,c=T;return i(),n(l,{class:"cases-page"},{default:o((()=>[r(l,{class:"case-shell"},{default:o((()=>[r(l,{class:"case-header"},{default:o((()=>[r(t,{class:"icon-button","aria-label":"设置",onClick:d(M)},{default:o((()=>[r(l,{class:"settings-icon"})])),_:1},8,["onClick"]),r(t,{class:"icon-button home-button","aria-label":"首页",onClick:d(A)},{default:o((()=>[r(l,{class:"home-icon"})])),_:1},8,["onClick"]),r(l,{class:"header-spacer"}),r(t,{class:"icon-button","aria-label":"个人中心",onClick:d(E)},{default:o((()=>[r(l,{class:"account-icon"})])),_:1},8,["onClick"])])),_:1}),r(c,{class:"case-content","scroll-y":"",onScrolltolower:re},{default:o((()=>[r(l,{class:"list-hero"},{default:o((()=>[r(s,{class:"list-title"},{default:o((()=>[v(f(se.value.title),1)])),_:1}),r(s,{class:"list-subtitle"},{default:o((()=>[v(f(se.value.subtitle),1)])),_:1})])),_:1}),r(l,{class:"search-row"},{default:o((()=>[r(l,{class:"search-box"},{default:o((()=>[r(l,{class:"search-icon"}),r(u,{class:"search-input",modelValue:F.value,"onUpdate:modelValue":a[0]||(a[0]=e=>F.value=e),type:"text",placeholder:se.value.placeholder,"placeholder-class":"search-placeholder","confirm-type":"search",onConfirm:ie},null,8,["modelValue","placeholder"])])),_:1}),r(t,{class:"search-button",disabled:G.value,onClick:ie},{default:o((()=>[v("搜索")])),_:1},8,["disabled"])])),_:1}),le.value.length?(i(),n(l,{key:0,class:"filter-row"},{default:o((()=>[(i(!0),m(_,null,p(le.value,(e=>(i(),n(t,{key:e.value,class:h(["filter-chip",{active:X.case_type===e.value}]),onClick:a=>{return l=e.value,void(X.case_type!==l&&(X.case_type=l,oe()));var l}},{default:o((()=>[v(f(e.label),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})):y("",!0),r(l,{class:"filter-row compact"},{default:o((()=>[(i(),m(_,null,p(te,(e=>r(t,{key:e.value,class:h(["filter-chip",{active:X.difficulty===e.value}]),onClick:a=>{return l=e.value,void(X.difficulty!==l&&(X.difficulty=l,oe()));var l}},{default:o((()=>[v(f(e.label),1)])),_:2},1032,["class","onClick"]))),64))])),_:1}),r(l,{class:"summary-row"},{default:o((()=>[r(s,null,{default:o((()=>[v(f(G.value&&0===D.value.length?"病例加载中...":`共 ${H.value} 个病例`),1)])),_:1}),Q.value?(i(),n(s,{key:0},{default:o((()=>[v("科室:"+f(Q.value),1)])),_:1})):y("",!0)])),_:1}),r(l,{class:"case-list"},{default:o((()=>[(i(!0),m(_,null,p(D.value,(e=>(i(),n(l,{key:e.id,class:h(["case-card",`mode-${e.mode}`]),onClick:a=>function(e){w("clinical-thinking-selected-case",e),w("clinical-thinking-case-mode",e.mode),j({url:"teaching"===e.mode?"/pages/teaching/teaching":"/pages/scenario/scenario"})}(e)},{default:o((()=>[r(l,{class:"case-main"},{default:o((()=>[r(l,{class:h(["patient-avatar",`avatar-${e.tone}`])},{default:o((()=>[r(s,null,{default:o((()=>[v(f(e.patientName.slice(0,1)),1)])),_:2},1024)])),_:2},1032,["class"]),r(l,{class:"case-info"},{default:o((()=>{var a;return[r(s,{class:"case-title"},{default:o((()=>[v(f(e.title),1)])),_:2},1024),r(s,{class:"case-meta"},{default:o((()=>[v(f(e.gender)+","+f(e.age||"-")+"岁,"+f(e.department)+","+f(e.caseTypeDisplay||e.scene),1)])),_:2},1024),e.description?(i(),n(s,{key:0,class:"case-desc"},{default:o((()=>[v(f(e.description),1)])),_:2},1024)):y("",!0),(null==(a=e.competencyTags)?void 0:a.length)?(i(),n(l,{key:1,class:"tag-row"},{default:o((()=>[(i(!0),m(_,null,p(e.competencyTags.slice(0,3),(e=>(i(),n(s,{key:e,class:"case-tag"},{default:o((()=>[v(f(e),1)])),_:2},1024)))),128))])),_:2},1024)):y("",!0)]})),_:2},1024)])),_:2},1024),r(l,{class:"case-footer"},{default:o((()=>[r(s,{class:"case-no"},{default:o((()=>[v("病例编号: "+f(e.caseNo),1)])),_:2},1024),r(l,{class:h(["mode-badge",`mode-badge-${e.mode}`])},{default:o((()=>[r(l,{class:h(["mode-icon",`mode-icon-${e.mode}`])},null,8,["class"]),r(s,null,{default:o((()=>{return[v(f((a=e.mode,"teaching"===a?"教学模式":"训练模式")),1)];var a})),_:2},1024)])),_:2},1032,["class"])])),_:2},1024),r(l,{class:"stat-row"},{default:o((()=>[r(s,null,{default:o((()=>[v(f(ce(e.difficulty,e.difficultyScore)),1)])),_:2},1024),e.estimatedMinutes?(i(),n(s,{key:0},{default:o((()=>[v(f(e.estimatedMinutes)+"分钟",1)])),_:2},1024)):y("",!0),null!==e.myBestScore&&void 0!==e.myBestScore?(i(),n(s,{key:1},{default:o((()=>[v("最高分 "+f(e.myBestScore),1)])),_:2},1024)):y("",!0),null!==e.myTrainCount&&void 0!==e.myTrainCount?(i(),n(s,{key:2},{default:o((()=>[v("已练 "+f(e.myTrainCount)+" 次",1)])),_:2},1024)):y("",!0)])),_:2},1024)])),_:2},1032,["class","onClick"])))),128)),G.value&&0===D.value.length?(i(),n(l,{key:0,class:"empty-state"},{default:o((()=>[r(l,{class:"spinner"}),r(s,null,{default:o((()=>[v("正在获取病例列表...")])),_:1})])),_:1})):U.value?(i(),n(l,{key:1,class:"empty-state"},{default:o((()=>[r(s,null,{default:o((()=>[v(f(q.value||"病例列表加载失败"),1)])),_:1}),r(t,{class:"retry-button",onClick:oe},{default:o((()=>[v("重新加载")])),_:1})])),_:1})):0===D.value.length?(i(),n(l,{key:2,class:"empty-state"},{default:o((()=>[r(s,null,{default:o((()=>[v("暂无匹配病例")])),_:1})])),_:1})):J.value?(i(),n(l,{key:3,class:"load-more-state"},{default:o((()=>[r(s,null,{default:o((()=>[v("继续加载中...")])),_:1})])),_:1})):ue.value?y("",!0):(i(),n(l,{key:4,class:"load-more-state"},{default:o((()=>[r(s,null,{default:o((()=>[v("已显示全部病例")])),_:1})])),_:1}))])),_:1})])),_:1})])),_:1}),r(l,{class:h(["toast",{visible:W.value}])},{default:o((()=>[v(f(R.value),1)])),_:1},8,["class"])])),_:1})}}}),[["__scopeId","data-v-956f1559"]]);export{V as default};