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

2 lines
8.6 KiB
JavaScript
Raw Normal View History

2026-06-13 06:06:07 +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-DR4MYR5F.js";import{o as $}from"./uni-app.es.CXV8m51O.js";import{f as S}from"./cases.CqwTWi6x.js";import{c as x,a as N,b as z}from"./navigation.DbARx0MO.js";import{_ as B}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./auth.CseBt7py.js";const I=B(e({__name:"cases",emits:["open-settings","open-profile","go-home"],setup(e,{emit:B}){const I=B,V=x(I),E=N(I),M=z(I),A=a([]),D=a(""),F=a(!1),G=a(!1),J=a(!1),U=a(""),q=a(0),H=a(1),K=a(10),L=a("recommended"),O=a(""),P=a(""),Q=a(""),R=a(!1),W=l({case_type:"",difficulty:""});let X=null,Y=null,Z=0;const ee={recommended:{title:"开始训练",subtitle:"基于您的训练画像智能推荐病例",placeholder:"搜索病例标题、科室、主诉"},specialty:{title:"专项强化",subtitle:"按配置科室聚焦专项病例",placeholder:"搜索专项病例"},weak:{title:"薄弱环节",subtitle:"优先呈现训练分数低于 70 分的病例",placeholder:"搜索待补强病例"},teaching:{title:"教学互动",subtitle:"练习模式与教学互动模式病例",placeholder:"搜索教学互动病例"},"teacher-task":{title:"教师任务",subtitle:"老师配置的针对性任务训练",placeholder:"搜索教师任务病例"}},ae=t((()=>"teaching"===L.value||"teacher-task"===L.value?[]:[{label:"全部类型",value:""},{label:"练习模式",value:"practice"},{label:"教学互动",value:"teaching"}])),le=[{label:"全部难度",value:""},{label:"简单",value:"easy"},{label:"中等",value:"medium"},{label:"困难",value:"hard"}],te=t((()=>ee[L.value])),se=t((()=>A.value.length<q.value));function ue(e,a){const l=e?{easy:"简单",medium:"中等",hard:"困难"}[e]||e:"难度未设置";return a?`${l} · ${a}`:l}function ce(){Y&&clearTimeout(Y),ne()}async function ie(e=1){var a;const l=1===e;if(F.value&&l||G.value)return;const t=++Z;F.value=l,G.value=!l,J.value=!1,U.value="";try{const s=await S(L.value,function(e){return{search:D.value.trim(),case_type:"teaching"===L.value||"teacher-task"===L.value?void 0:W.case_type,difficulty:W.difficulty,department:O.value,page:e,page_size:K.value}}(e));if(t!==Z)return;A.value=l?s.results:[...A.value,...s.results],q.value=s.count,H.value=e,P.value="specialty"===L.value?(null==(a=A.value.find((e=>e.department)))?void 0:a.department)||P.value:""}catch(s){if(t!==Z)return;J.value=l,U.value=s instanceof Error?s.message:"病例列表加载失败",function(e){X&&clearTimeout(X);Q.value=e,R.value=!0,X=setTimeout((()=>{R.value=!1}),2200)}(U.value)}finally{t===Z&&(F.value=!1,G.value=!1)}}function ne(){H.value=1,A.value=[],q.value=0,ie(1)}function oe(){F.value||G.value||!se.value||ie(H.value+1)}return s(D,(()=>{Y&&clearTimeout(Y),Y=setTimeout((()=>{ne()}),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?L.value=a:"teaching"===l&&(L.value="teaching"),"string"==typeof t&&t.trim()&&(O.value=t),Number.isInteger(s)&&s>0&&(K.value=s)})),u(ie),c((()=>{X&&clearTimeout(X),Y&&clearTimeout(Y)})),(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(E)},{default:o((()=>[r(l,{class:"settings-icon"})])),_:1},8,["onClick"]),r(t,{class:"icon-button home-button","aria-label":"首页",onClick:d(M)},{default:o((()=>[r(l,{class:"home-icon"})])),_:1},8,["onClick"]),r(l,{class:"header-spacer"}),r(t,{class:"icon-button","aria-label":"个人中心",onClick:d(V)},{default:o((()=>[r(l,{class:"account-icon"})])),_:1},8,["onClick"])])),_:1}),r(c,{class:"case-content","scroll-y":"",onScrolltolower:oe},{default:o((()=>[r(l,{class:"list-hero"},{default:o((()=>[r(s,{class:"list-title"},{default:o((()=>[v(f(te.value.title),1)])),_:1}),r(s,{class:"list