Files
vueapp/dist/assets/pages-cases-cases.xVKyPJ5Z.js
T

2 lines
8.7 KiB
JavaScript
Raw Normal View History

2026-06-15 18:04:01 +08:00
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-DGiVEDOl.js";import{o as $}from"./uni-app.es.BO1OvM0h.js";import{t as S,f as x}from"./cases.i-QLayjn.js";import{c as N,a as z,b as B}from"./navigation.CRkd1wPM.js";import{_ as I}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./auth.vuBox8Gk.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.length<H.value));function ce(e,a){const l=e?{easy:"简单",medium:"中等",hard:"困难"}[e]||e:"难度未设置";return a?`${l} · ${a}`:l}function ie(){Z&&clearTimeout(Z),oe()}async function ne(e=1){var a;const l=1===e;if(G.value&&l||J.value)return;const t=++ee;G.value=l,J.value=!l,U.value=!1,q.value="";const s=function(e){return{search:F.value.trim(),case_type:"teaching"===O.value||"teacher-task"===O.value?void 0:X.case_type,difficulty:X.difficulty,department:P.value,page:e,page_size:L.value}}(e);try{const u=l&&S(O.value,s)||await x(O.value,s);if(t!==ee)return;D.value=l?u.results:[...D.value,...u.results],H.value=u.count,K.value=e,Q.value="specialty"===O.value?(null==(a=D.value.find((e=>e.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.va