2 lines
7.1 KiB
JavaScript
2 lines
7.1 KiB
JavaScript
import{d as e,a as l,b as a,c as s,B as t,o,e as c,f as i,w as n,i as u,j as d,t as r,l as m,m as f,F as p,n as v,s as _,q as g,u as b,y,x as h,z as k,S as C}from"./index-DW9fDEMX.js";import{_ as I}from"./config-doctor.TgARj_nM.js";import G from"./pages-chat-chat.C6x0yrXE.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";const w=""+new URL("config-hospital-BKoUC35q.png",import.meta.url).href;const S=j(e({__name:"scenario",props:{caseItem:{}},emits:["open-settings","open-profile","go-home"],setup(e,{emit:j}){const S=e,O=j,T=l({environment:"outpatient",ageGroup:"young",education:"higher",personality:"calm"}),x=a([]),P=a({environments:[],ageGroups:[],educations:[],personalities:[]}),F=a(""),N=a(!1),$=a(""),q=a(!1),z=a(!1);let B=null;const D=s((()=>S.caseItem?`${S.caseItem.title}(${S.caseItem.caseNo})`:"未选择病例"));function U(e,l){T[e]=l,F.value=""}function A(){var e;S.caseItem?(N.value=!0,(e={...T,caseId:S.caseItem.id,caseNo:S.caseItem.caseNo,recommendationId:F.value||void 0},Promise.resolve({id:`mock-scenario-${Date.now()}`,...e,createdAt:(new Date).toISOString()})).then((e=>{_("clinical-thinking-scenario",e),H("模拟场景已生成"),setTimeout((()=>{z.value=!0}),450)})).finally((()=>{setTimeout((()=>{N.value=!1}),600)}))):H("请先选择病例")}function H(e){B&&clearTimeout(B),$.value=e,q.value=!0,g({title:e,icon:"none"}),B=setTimeout((()=>{q.value=!1}),2200)}return t((function(){Promise.resolve({recommendations:[{id:"typical-outpatient",title:"典型门诊病例",desc:"门诊常规病例:针对初学者设计的标准化沟通流程。",tags:["中年","配合"],defaults:{environment:"outpatient",ageGroup:"middle",education:"higher",personality:"calm"}},{id:"emergency-crisis",title:"急诊重症危机",desc:"急诊危重:急性心梗紧急入院。",tags:["老年","急躁"],defaults:{environment:"emergency",ageGroup:"elderly",education:"secondary",personality:"irritable"}}],options:{environments:[{value:"outpatient",label:"门诊"},{value:"emergency",label:"急诊"},{value:"ward",label:"病房"}],ageGroups:[{value:"child",label:"儿童"},{value:"young",label:"青年"},{value:"middle",label:"中年"},{value:"elderly",label:"老年"}],educations:[{value:"primary",label:"小学及以下"},{value:"secondary",label:"中等教育"},{value:"higher",label:"高等教育"}],personalities:[{value:"calm",label:"平和"},{value:"anxious",label:"焦虑"},{value:"irritable",label:"急躁"},{value:"cooperative",label:"配合"},{value:"suspicious",label:"多疑"}]}}).then((e=>{x.value=e.recommendations,P.value=e.options}))})),o((()=>{B&&clearTimeout(B)})),(e,l)=>{const a=b,s=y,t=h,o=k,_=C;return z.value?(c(),i(G,{key:0,"case-item":e.caseItem,onOpenSettings:l[0]||(l[0]=e=>O("open-settings")),onOpenProfile:l[1]||(l[1]=e=>O("open-profile")),onGoHome:l[2]||(l[2]=e=>O("go-home"))},null,8,["case-item"])):(c(),i(s,{key:1,class:"scenario-page"},{default:n((()=>[u(s,{class:"scenario-shell"},{default:n((()=>[u(s,{class:"hero"},{default:n((()=>[u(a,{class:"hero-image",src:w,mode:"aspectFill"}),u(s,{class:"hero-fade"})])),_:1}),u(s,{class:"director-row"},{default:n((()=>[u(s,{class:"director-avatar"},{default:n((()=>[u(a,{class:"director-image",src:I,mode:"aspectFit"})])),_:1}),u(s,{class:"speech-bubble"},{default:n((()=>[u(t,null,{default:n((()=>[d("欢迎回来!请根据您的教学目标配置临床场景。")])),_:1})])),_:1})])),_:1}),u(_,{class:"config-scroll","scroll-y":""},{default:n((()=>[u(s,{class:"selected-case"},{default:n((()=>[u(t,{class:"case-label"},{default:n((()=>[d("当前病例")])),_:1}),u(t,{class:"case-title"},{default:n((()=>[d(r(D.value),1)])),_:1})])),_:1}),u(s,{class:"section"},{default:n((()=>[u(s,{class:"section-title"},{default:n((()=>[u(s,{class:"star-icon"}),u(t,null,{default:n((()=>[d("王主任推荐")])),_:1})])),_:1}),u(s,{class:"recommend-list"},{default:n((()=>[(c(!0),m(p,null,f(x.value,(e=>(c(),i(o,{key:e.id,class:v(["recommend-card",{active:F.value===e.id}]),onClick:l=>function(e){F.value=e.id,Object.assign(T,e.defaults)}(e)},{default:n((()=>[u(s,{class:"recommend-head"},{default:n((()=>[u(t,{class:"recommend-icon"},{default:n((()=>[d(r(e.tags[0]),1)])),_:2},1024),u(t,{class:"recommend-title"},{default:n((()=>[d(r(e.title),1)])),_:2},1024)])),_:2},1024),u(t,{class:"recommend-desc"},{default:n((()=>[d(r(e.desc),1)])),_:2},1024),u(s,{class:"tag-row"},{default:n((()=>[(c(!0),m(p,null,f(e.tags,(e=>(c(),i(t,{key:e,class:v(["tag",{danger:"急躁"===e}])},{default:n((()=>[d(r(e),1)])),_:2},1032,["class"])))),128))])),_:2},1024)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1}),u(s,{class:"section custom-section"},{default:n((()=>[u(s,{class:"section-title"},{default:n((()=>[u(s,{class:"tune-icon"}),u(t,null,{default:n((()=>[d("自定义配置")])),_:1})])),_:1}),u(s,{class:"option-block"},{default:n((()=>[u(s,{class:"option-label"},{default:n((()=>[u(s,{class:"location-icon"}),u(t,null,{default:n((()=>[d("就诊环境")])),_:1})])),_:1}),u(s,{class:"option-grid grid-3"},{default:n((()=>[(c(!0),m(p,null,f(P.value.environments,(e=>(c(),i(o,{key:e.value,class:v(["choice",{selected:T.environment===e.value}]),onClick:l=>U("environment",e.value)},{default:n((()=>[d(r(e.label),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1}),u(s,{class:"option-block"},{default:n((()=>[u(s,{class:"option-label"},{default:n((()=>[u(s,{class:"cake-icon"}),u(t,null,{default:n((()=>[d("年龄段")])),_:1})])),_:1}),u(s,{class:"option-grid grid-4"},{default:n((()=>[(c(!0),m(p,null,f(P.value.ageGroups,(e=>(c(),i(o,{key:e.value,class:v(["choice small",{selected:T.ageGroup===e.value}]),onClick:l=>U("ageGroup",e.value)},{default:n((()=>[d(r(e.label),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1}),u(s,{class:"option-block"},{default:n((()=>[u(s,{class:"option-label"},{default:n((()=>[u(s,{class:"school-icon"}),u(t,null,{default:n((()=>[d("文化程度")])),_:1})])),_:1}),u(s,{class:"option-grid grid-3"},{default:n((()=>[(c(!0),m(p,null,f(P.value.educations,(e=>(c(),i(o,{key:e.value,class:v(["choice mini",{selected:T.education===e.value}]),onClick:l=>U("education",e.value)},{default:n((()=>[d(r(e.label),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1}),u(s,{class:"option-block personality-block"},{default:n((()=>[u(s,{class:"option-label"},{default:n((()=>[u(s,{class:"mind-icon"}),u(t,null,{default:n((()=>[d("性格")])),_:1})])),_:1}),u(s,{class:"option-grid grid-3"},{default:n((()=>[(c(!0),m(p,null,f(P.value.personalities,(e=>(c(),i(o,{key:e.value,class:v(["choice",{selected:T.personality===e.value}]),onClick:l=>U("personality",e.value)},{default:n((()=>[d(r(e.label),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1})])),_:1})])),_:1}),u(s,{class:"bottom-action"},{default:n((()=>[u(o,{class:"generate-button",disabled:N.value,onClick:A},{default:n((()=>[u(t,null,{default:n((()=>[d(r(N.value?"正在生成...":"生成模拟场景"),1)])),_:1}),u(s,{class:"arrow-icon"})])),_:1},8,["disabled"])])),_:1})])),_:1}),u(s,{class:v(["toast",{visible:q.value}])},{default:n((()=>[d(r($.value),1)])),_:1},8,["class"])])),_:1}))}}}),[["__scopeId","data-v-7b67826e"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:S},Symbol.toStringTag,{value:"Module"}));export{S,w as _,O as s};
|