Files
vueapp/dist/assets/scenario.BtCl3trE.js
T

2 lines
7.5 KiB
JavaScript
Raw Normal View History

2026-06-08 17:56:06 +08:00
import{d as e,b as a,a as l,c as s,o as t,e as o,f as c,g as n,C as i,w as u,j as d,k as r,t as m,m as p,p as f,F as _,n as v,s as g,u as b,x as h,z as y,y as k,A as C,S as I}from"./index-B49eAbNH.js";import{_ as j}from"./config-doctor.TgARj_nM.js";import{c as G,C as w}from"./chat.BaHKLKmH.js";import{c as O}from"./navigation.CQT08XEb.js";import{_ as S}from"./_plugin-vue_export-helper.BCo6x5W8.js";const T=""+new URL("config-hospital-BKoUC35q.png",import.meta.url).href;const x=S(e({__name:"scenario",props:{caseItem:{}},emits:["open-settings","open-profile","go-home"],setup(e,{emit:S}){const x=e,P=S,F=O(P),N=a({environment:"outpatient",ageGroup:"youth",education:"higher",personality:"calm"}),z=l([]),A=l({environments:[],ageGroups:[],educations:[],personalities:[]}),U=l(""),$=l(!1),q=l(""),B=l(!1),D=l(!1);let E=null;const H=s((()=>x.caseItem?`${x.caseItem.title}${x.caseItem.caseNo}`:"未选择病例"));function K(e,a){N[e]=a,U.value=""}function L(){var e;x.caseItem?($.value=!0,(e={...N,caseId:x.caseItem.id,caseNo:x.caseItem.caseNo,mode:"teaching"===x.caseItem.mode?"teaching":"practice",recommendationId:U.value||void 0},G({case_id:1,training_type:"diagnosis_treatment",mode:e.mode,score_type:"percentage",patient_config:{visit_environment:e.environment,age_group:e.ageGroup,education_level:e.education,personality:e.personality}}).then((a=>({id:a.session_code,...e,session:a,createdAt:(new Date).toISOString()})))).then((e=>{g("clinical-thinking-scenario",e),M("模拟场景已生成"),setTimeout((()=>{D.value=!0}),450)})).catch((e=>{M(e instanceof Error?e.message:"模拟场景生成失败")})).finally((()=>{setTimeout((()=>{$.value=!1}),600)}))):M("请先选择病例")}function M(e){E&&clearTimeout(E),q.value=e,B.value=!0,b({title:e,icon:"none"}),E=setTimeout((()=>{B.value=!1}),2200)}return t((function(){Promise.resolve({recommendations:[{id:"typical-outpatient",title:"典型门诊病例",desc:"门诊常规病例:针对初学者设计的标准化沟通流程。",tags:["中年","配合"],defaults:{environment:"outpatient",ageGroup:"middle_aged",education:"higher",personality:"calm"}},{id:"emergency-crisis",title:"急诊重症危机",desc:"急诊危重:急性心梗紧急入院。",tags:["老年","急躁"],defaults:{environment:"emergency",ageGroup:"elderly",education:"secondary",personality:"impatient"}}],options:{environments:[{value:"outpatient",label:"门诊"},{value:"emergency",label:"急诊"},{value:"ward",label:"病房"}],ageGroups:[{value:"child",label:"儿童"},{value:"youth",label:"青年"},{value:"middle_aged",label:"中年"},{value:"elderly",label:"老年"}],educations:[{value:"primary_or_below",label:"小学及以下"},{value:"secondary",label:"中等教育"},{value:"higher",label:"高等教育"}],personalities:[{value:"calm",label:"平和"},{value:"anxious",label:"焦虑"},{value:"impatient",label:"急躁"},{value:"cooperative",label:"配合"},{value:"suspicious",label:"多疑"}]}}).then((e=>{z.value=e.recommendations,A.value=e.options}))})),o((()=>{E&&clearTimeout(E)})),(e,a)=>{const l=h,s=y,t=k,o=C,g=I;return D.value?(c(),n(w,{key:0,"case-item":e.caseItem,onOpenSettings:a[0]||(a[0]=e=>P("open-settings")),onOpenProfile:i(F),onGoHome:a[1]||(a[1]=e=>P("go-home"))},null,8,["case-item","onOpenProfile"])):(c(),n(s,{key:1,class:"scenario-page"},{default:u((()=>[d(s,{class:"scenario-shell"},{default:u((()=>[d(s,{class:"hero"},{default:u((()=>[d(l,{class:"hero-image",src:T,mode:"aspectFill"}),d(s,{class:"hero-fade"})])),_:1}),d(s,{class:"director-row"},{default:u((()=>[d(s,{class:"director-avatar"},{default:u((()=>[d(l,{class:"director-image",src:j,mode:"aspectFit"})])),_:1}),d(s,{class:"speech-bubble"},{default:u((()=>[d(t,null,{default:u((()=>[r("欢迎回来!请根据您的教学目标配置临床场景。")])),_:1})])),_:1})])),_:1}),d(g,{class:"config-scroll","scroll-y":""},{default:u((()=>[d(s,{class:"selected-case"},{default:u((()=>[d(t,{class:"case-label"},{default:u((()=>[r("当前病例")])),_:1}),d(t,{class:"case-title"},{default:u((()=>[r(m(H.value),1)])),_:1})])),_:1}),d(s,{class:"section"},{default:u(