cnhis-design-vue 3.2.18-beta.6 → 3.2.18-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -119,6 +119,10 @@ declare const AiChat: SFCWithInstall<import("vue").DefineComponent<{
119
119
  state: import("../../shared/types").AnyObject;
120
120
  ChatMain: import("vue").DefineComponent<{}, () => JSX.Element[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
121
121
  ChatFooter: import("vue").DefineComponent<{}, {
122
+ innerDefaultShortcutList: {
123
+ key: string;
124
+ value: string;
125
+ }[];
122
126
  programMethod: (bpmnProcessId: string, params: import("../../shared/types").AnyObject) => Promise<any>;
123
127
  MedicalOrderId: string;
124
128
  cssVars: import("vue").ComputedRef<import("../../shared/types").AnyObject>;
@@ -155,6 +159,7 @@ declare const AiChat: SFCWithInstall<import("vue").DefineComponent<{
155
159
  btnDisabled: import("vue").ComputedRef<any>;
156
160
  showMagicWand: import("vue").ComputedRef<boolean>;
157
161
  patient: import("vue").ComputedRef<string>;
162
+ currentShortcutList: import("vue").ComputedRef<any>;
158
163
  recorderStart: () => Promise<void>;
159
164
  getShortcutName: (item: string | import("../../shared/types").AnyObject) => any;
160
165
  handleShortcut: (item: string | import("../../shared/types").AnyObject) => Promise<void>;
@@ -322,12 +327,13 @@ declare const AiChat: SFCWithInstall<import("vue").DefineComponent<{
322
327
  key: string;
323
328
  title: string;
324
329
  }[];
325
- emit: (event: string, ...args: any[]) => void;
326
330
  state: any;
331
+ patientInfo: any;
327
332
  toolbarConfig: {
328
333
  toolbarKeys: string[];
329
334
  };
330
335
  content: import("vue").Ref<string>;
336
+ key: import("vue").Ref<string>;
331
337
  handleSave: () => Promise<void>;
332
338
  createMedicalRecord: () => void;
333
339
  extractContentByTitle: () => import("../../shared/types").AnyObject;
@@ -121,6 +121,10 @@ declare const _default: import("vue").DefineComponent<{
121
121
  state: AnyObject;
122
122
  ChatMain: import("vue").DefineComponent<{}, () => JSX.Element[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
123
123
  ChatFooter: import("vue").DefineComponent<{}, {
124
+ innerDefaultShortcutList: {
125
+ key: string;
126
+ value: string;
127
+ }[];
124
128
  programMethod: (bpmnProcessId: string, params: AnyObject) => Promise<any>;
125
129
  MedicalOrderId: string;
126
130
  cssVars: import("vue").ComputedRef<AnyObject>;
@@ -157,6 +161,7 @@ declare const _default: import("vue").DefineComponent<{
157
161
  btnDisabled: import("vue").ComputedRef<any>;
158
162
  showMagicWand: import("vue").ComputedRef<boolean>;
159
163
  patient: import("vue").ComputedRef<string>;
164
+ currentShortcutList: import("vue").ComputedRef<any>;
160
165
  recorderStart: () => Promise<void>;
161
166
  getShortcutName: (item: string | AnyObject) => any;
162
167
  handleShortcut: (item: string | AnyObject) => Promise<void>;
@@ -324,12 +329,13 @@ declare const _default: import("vue").DefineComponent<{
324
329
  key: string;
325
330
  title: string;
326
331
  }[];
327
- emit: (event: string, ...args: any[]) => void;
328
332
  state: any;
333
+ patientInfo: any;
329
334
  toolbarConfig: {
330
335
  toolbarKeys: string[];
331
336
  };
332
337
  content: import("vue").Ref<string>;
338
+ key: import("vue").Ref<string>;
333
339
  handleSave: () => Promise<void>;
334
340
  createMedicalRecord: () => void;
335
341
  extractContentByTitle: () => AnyObject;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,reactive as i,provide as n,toRefs as o,openBlock as r,createElementBlock as s,normalizeStyle as a,unref as u,createElementVNode as l,normalizeClass as p,createBlock as m,createCommentVNode as d}from"vue";import c from"./components/ChatMain.js";import y from"./components/ChatFooter.vue.js";import h from"./components/ChatMainInner.js";import f from"./components/ChatRight.vue.js";import{useTheme as S}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"lodash-es";import"@vue/shared";import{uuidGenerator as v}from"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"naive-ui";import"../../../shared/hooks/useScrollLoading.js";import{InjectionAIChat as g,InjectionAIChatEmits as k}from"./types/index.js";import{instanceAxios as j}from"./api/index.js";import{useWebsocket as I}from"./hooks/useWebsocket.js";const x=["id"];var C=e({__name:"Index",props:{token:{type:String,required:!0},userAvatar:{type:String},defaultShortcutList:{type:Array},shortcutList:{type:Array},queryData:{type:Function},queryRecord:{type:Function},hideInput:{type:Boolean},uiStyle:{type:String,default:"big"},audioTimed:{type:Number,default:10},commandList:{type:Array},queryPrompt:{type:Function},patientInfo:{type:Object},appId:{type:String},orgId:{type:String},userId:{type:String}},emits:["button-click"],setup(e,{expose:C,emit:P}){const _=e,b=S();j.defaults.headers.Authorization="bearer "+_.token,"inner"!==_.uiStyle&&(j.defaults.timeout=5e3,j.interceptors.response.use((e=>{var t;return(null==(t=e.data)?void 0:t.success)?e.data:{success:!1,data:[]}})));const A=t((()=>["small","inner"].includes(_.uiStyle))),F=i({id:"ai-chat-"+v(),loading:!1,sending:!1,sendContent:"",selectedCommand:null,selectedPrompt:null,externalData:null,selectedPatient:null,selectedPatientLabel:"",selectedPatientForm:null,showPatient:!1,showRight:!1,consultationContent:null,params:{}});return n(g,{...o(_),state:F,isSmall:t((()=>"small"===_.uiStyle)),isInner:t((()=>"inner"===_.uiStyle))}),n(k,P),"inner"===_.uiStyle&&I(_),C({pushMessage:e=>{F.externalData=e},updatePatientInfo:e=>{F.selectedPatient=e}}),(t,i)=>(r(),s("div",{class:"ai-chat",style:a(u(b))},[l("div",{id:F.id,class:p(["ai-chat__main",u(A)?"ai-chat__main--small":"","inner"===e.uiStyle?"ai-chat__main--inner":""])},["inner"===e.uiStyle?(r(),m(u(h),{key:0})):(r(),m(u(c),{key:1})),e.hideInput?d("v-if",!0):(r(),m(y,{key:2}))],10,x),"inner"===e.uiStyle?(r(),m(f,{key:0})):d("v-if",!0)],4))}});export{C as default};
1
+ import{defineComponent as e,computed as t,reactive as i,provide as n,toRefs as o,openBlock as r,createElementBlock as s,normalizeStyle as a,unref as u,createElementVNode as l,normalizeClass as p,createBlock as m,createCommentVNode as d}from"vue";import c from"./components/ChatMain.js";import y from"./components/ChatFooter.vue.js";import h from"./components/ChatMainInner.js";import f from"./components/ChatRight.vue.js";import{useTheme as S}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"lodash-es";import"@vue/shared";import{uuidGenerator as v}from"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"naive-ui";import"../../../shared/hooks/useScrollLoading.js";import{InjectionAIChat as g,InjectionAIChatEmits as k}from"./types/index.js";import{instanceAxios as j}from"./api/index.js";import{useWebsocket as I}from"./hooks/useWebsocket.js";const C=["id"];var x=e({__name:"Index",props:{token:{type:String,required:!0},userAvatar:{type:String},defaultShortcutList:{type:Array},shortcutList:{type:Array},queryData:{type:Function},queryRecord:{type:Function},hideInput:{type:Boolean},uiStyle:{type:String,default:"big"},audioTimed:{type:Number,default:10},commandList:{type:Array},queryPrompt:{type:Function},patientInfo:{type:Object},appId:{type:String},orgId:{type:String},userId:{type:String}},emits:["button-click"],setup(e,{expose:x,emit:P}){const _=e,b=S();j.defaults.headers.Authorization="bearer "+_.token,"inner"!==_.uiStyle&&(j.defaults.timeout=5e3,j.interceptors.response.use((e=>{var t;return(null==(t=e.data)?void 0:t.success)?e.data:{success:!1,data:[]}})));const A=t((()=>["small","inner"].includes(_.uiStyle))),F=i({id:"ai-chat-"+v(),loading:!1,sending:!1,sendContent:"",selectedCommand:null,selectedPrompt:null,externalData:null,selectedPatient:null,selectedPatientLabel:"",selectedPatientForm:null,showPatient:!1,showRight:!1,consultationContent:null,params:{},reportContent:null,refreshMedical:!1});return n(g,{...o(_),state:F,isSmall:t((()=>"small"===_.uiStyle)),isInner:t((()=>"inner"===_.uiStyle))}),n(k,P),"inner"===_.uiStyle&&I(_,F),x({pushMessage:e=>{F.externalData=e},updatePatientInfo:e=>{F.selectedPatient=e}}),(t,i)=>(r(),s("div",{class:"ai-chat",style:a(u(b))},[l("div",{id:F.id,class:p(["ai-chat__main",u(A)?"ai-chat__main--small":"","inner"===e.uiStyle?"ai-chat__main--inner":""])},["inner"===e.uiStyle?(r(),m(u(h),{key:0})):(r(),m(u(c),{key:1})),e.hideInput?d("v-if",!0):(r(),m(y,{key:2}))],10,C),"inner"===e.uiStyle?(r(),m(f,{key:0})):d("v-if",!0)],4))}});export{x as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as o,ref as t,computed as a,watch as n,withDirectives as i,openBlock as r,createElementBlock as s,unref as u,createBlock as c,createCommentVNode as l,createElementVNode as p,toDisplayString as d,normalizeStyle as m,createVNode as f,withCtx as v,createTextVNode as h,vShow as w}from"vue";import{NIcon as y,NSpace as g,NButton as b}from"naive-ui";import{StopCircleOutline as k}from"@vicons/ionicons5";import{InjectionAIChat as F}from"../types/index.js";import{useIntervalFn as C}from"@vueuse/core";import S from"../../../audio-sdk/src/audioSDK.js";import{uploadFileApi as x}from"../api/index.js";import{uuidGenerator as I}from"../../../../shared/utils/index.js";const $={class:"ai-chat__audio"};var j=e({__name:"ChatAudio",props:{show:{type:Boolean}},emits:["update:show"],setup(e,{emit:j}){const M=e,T=S.create(),{state:z}=o(F),A=t(0),{pause:N,resume:B,isActive:D}=C((()=>{A.value++}),1e3,{immediate:!1}),L=a((()=>D.value?"正在录音中...":"录音已暂停")),q=a((()=>{const e=Math.floor(A.value/3600),o=Math.floor(A.value%3600/60),t=A.value%60,a=o.toString().padStart(2,"0"),n=t.toString().padStart(2,"0");if(e>0){return`${e.toString().padStart(2,"0")}:${a}:${n}`}return`${a}:${n}`}));function K(){N(),T.pause()}function O(){B(),T.resume()}async function U(){T.stop(),j("update:show",!1)}return n((()=>M.show),(e=>{e?(A.value=0,B(),async function(){try{const e=await T.start(_,{timed:1800,recognizable:!1,showModal:!1});j("update:show",!1);const{result:o,data:t}=e||{};if("success"!==o)return;if(t){const e=new File([t],`${I()}.mp3`,{type:t.type}),o=new FormData;o.append("file",e),o.append("channelId","MINIO");const a=await x(o),n=(null==a?void 0:a.path)||"";console.log("音频地址 ==>",n),z.params={contents:[{role:"user",content:"",contentType:"text"}],platform:"web",sessionType:"text_chat",source:"global",audioUrl:n,opType:"create_inquiry",configs:{businessType:"CLINICIAN",vaa01:"1876237139894923265",bck03a:"西安接口部",vaa07:"1876237140589948928",bce03d:"李雨淋",bce01d:6008046,vaa05:"老大",vac36:"1736164767794",bck01a:3000519,bck02a:"5013",vae96:"1"}},z.sending=!0,z.loading=!0}}catch(e){console.log(e)}}()):N()}),{immediate:!0}),(o,t)=>i((r(),s("div",$,[u(D)?l("v-if",!0):(r(),c(u(y),{key:0,size:"42",color:"#FF1818",component:u(k)},null,8,["component"])),p("p",null,d(u(L)),1),p("h3",{style:m(u(D)?"":"color: #FF1818")},d(u(q)),5),f(u(g),{"wrap-item":!1,size:15},{default:v((()=>[i(f(u(b),{round:"",onClick:K},{default:v((()=>[h("暂停")])),_:1},512),[[w,u(D)]]),i(f(u(b),{round:"",onClick:O},{default:v((()=>[h("继续")])),_:1},512),[[w,!u(D)]]),f(u(b),{round:"",color:"#FF1818",onClick:U},{default:v((()=>{var e;return[h((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.77"))||"结束")]})),_:1})])),_:1})],512)),[[w,e.show]])}});export{j as default};
1
+ import{defineComponent as o,inject as e,ref as t,computed as a,watch as i,withDirectives as n,openBlock as r,createElementBlock as s,unref as u,createBlock as l,createCommentVNode as d,createElementVNode as c,toDisplayString as p,normalizeStyle as m,createVNode as f,withCtx as v,createTextVNode as h,vShow as w}from"vue";import{NIcon as y,NSpace as g,NButton as _}from"naive-ui";import{StopCircleOutline as F}from"@vicons/ionicons5";import{InjectionAIChat as S}from"../types/index.js";import{useIntervalFn as $}from"@vueuse/core";import k from"../../../audio-sdk/src/audioSDK.js";import{uploadFileApi as C}from"../api/index.js";import{uuidGenerator as j}from"../../../../shared/utils/index.js";const x={class:"ai-chat__audio"};var M=o({__name:"ChatAudio",props:{show:{type:Boolean}},emits:["update:show"],setup(o,{emit:M}){const z=o,I=k.create(),{state:A}=e(S),B=t(0),{pause:D,resume:b,isActive:q}=$((()=>{B.value++}),1e3,{immediate:!1}),K=a((()=>q.value?"正在录音中...":"录音已暂停")),L=a((()=>{const o=Math.floor(B.value/3600),e=Math.floor(B.value%3600/60),t=B.value%60,a=e.toString().padStart(2,"0"),i=t.toString().padStart(2,"0");if(o>0){return`${o.toString().padStart(2,"0")}:${a}:${i}`}return`${a}:${i}`}));function N(){D(),I.pause()}function O(){b(),I.resume()}async function T(){I.stop(),M("update:show",!1)}return i((()=>z.show),(o=>{o?(B.value=0,b(),async function(){try{const o=await I.start(void 0,{timed:1800,recognizable:!1,showModal:!1});M("update:show",!1);const{result:e,data:t}=o||{};if("success"!==e)return;if(t){const o=new File([t],`${j()}.mp3`,{type:t.type}),e=new FormData;e.append("file",o),e.append("channelId","MINIO");const a=await C(e),i=(null==a?void 0:a.path)||"";console.log("音频地址 ==>",i),A.params={audioUrl:i,opType:"create_inquiry"},A.sending=!0,A.loading=!0}}catch(o){console.log(o)}}()):D()}),{immediate:!0}),(e,t)=>n((r(),s("div",x,[u(q)?d("v-if",!0):(r(),l(u(y),{key:0,size:"42",color:"#FF1818",component:u(F)},null,8,["component"])),c("p",null,p(u(K)),1),c("h3",{style:m(u(q)?"":"color: #FF1818")},p(u(L)),5),f(u(g),{"wrap-item":!1,size:15},{default:v((()=>[n(f(u(_),{round:"",onClick:N},{default:v((()=>[h("暂停")])),_:1},512),[[w,u(q)]]),n(f(u(_),{round:"",onClick:O},{default:v((()=>[h("继续")])),_:1},512),[[w,!u(q)]]),f(u(_),{round:"",color:"#FF1818",onClick:T},{default:v((()=>{var o;return[h((null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.77"))||"结束")]})),_:1})])),_:1})],512)),[[w,o.show]])}});export{M as default};
@@ -2,6 +2,10 @@ import { CommandItem } from '../types';
2
2
  import { CAudioSDK } from '../../../../components/audio-sdk';
3
3
  import { AnyObject } from '../../../../shared/types';
4
4
  declare const _default: import("vue").DefineComponent<{}, {
5
+ innerDefaultShortcutList: {
6
+ key: string;
7
+ value: string;
8
+ }[];
5
9
  programMethod: (bpmnProcessId: string, params: AnyObject) => Promise<any>;
6
10
  MedicalOrderId: string;
7
11
  cssVars: import("vue").ComputedRef<AnyObject>;
@@ -38,6 +42,7 @@ declare const _default: import("vue").DefineComponent<{}, {
38
42
  btnDisabled: import("vue").ComputedRef<any>;
39
43
  showMagicWand: import("vue").ComputedRef<boolean>;
40
44
  patient: import("vue").ComputedRef<string>;
45
+ currentShortcutList: import("vue").ComputedRef<any>;
41
46
  recorderStart: () => Promise<void>;
42
47
  getShortcutName: (item: string | AnyObject) => any;
43
48
  handleShortcut: (item: string | AnyObject) => Promise<void>;
@@ -1 +1 @@
1
- import{defineComponent as e,inject as t,ref as o,computed as n,onBeforeUnmount as l,watch as a,openBlock as s,createElementBlock as i,normalizeClass as r,unref as u,createElementVNode as d,createBlock as c,withCtx as v,createVNode as m,createTextVNode as h,toDisplayString as f,createCommentVNode as p,Fragment as k,renderList as w,normalizeStyle as g,createSlots as y,withModifiers as C,getCurrentInstance as b}from"vue";import{NButton as x,NIcon as _,NPopover as I,NInput as j,NTag as z,NBreadcrumb as M,NBreadcrumbItem as P}from"naive-ui";import{PeopleOutline as T,SparklesSharp as D,PaperPlane as S,ChevronBack as B,ChevronForward as E}from"@vicons/ionicons5";import{InjectionAIChatEmits as K,InjectionAIChat as L}from"../types/index.js";import U from"../../../audio-sdk/src/audioSDK.js";import{cloneDeep as A,isString as R,last as F}from"lodash-es";import{useTheme as W}from"../../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"../../../../shared/hooks/useScrollLoading.js";import N from"./ChatPrompt.vue.js";import V from"./ChatPatient.vue.js";import q from"./ChatAudio.vue.js";import{useProgram as H}from"../hooks/useProgram.js";const O={class:"menu-box fillet-8"},G={class:"input-wrapper fillet-10"},J=d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 448h128"}),d("path",{d:"M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32",fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 368v80"}),d("path",{d:"M256 64a63.68 63.68 0 0 0-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z",fill:"none",stroke:"#4972EF","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"})],-1),Q={key:0,class:"btn-box"},X=d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 448h128"}),d("path",{d:"M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32",fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 368v80"}),d("path",{d:"M256 64a63.68 63.68 0 0 0-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z",fill:"none",stroke:"#4972EF","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"})],-1),Y=["disabled"],Z={class:"command-box"},$={class:"command-box__header"},ee={key:0,class:"title"},te={class:"command-box__menu"},oe=["onMouseover","onClick"],ne={class:"label"},le={class:"remark"};var ae=e({__name:"ChatFooter",setup(e){const{programMethod:ae,MedicalOrderId:se}=H(),ie=W(),re=U.create(),ue=t(K),{shortcutList:de,state:ce,isSmall:ve,audioTimed:me,commandList:he,isInner:fe,patientInfo:pe}=t(L),ke=o(),we=o(!1),ge=o([]),ye=o(A(he.value||[])),Ce=o(!1),be=o(""),xe=o(!1),_e=o(!1),Ie=n((()=>fe.value?"请向我提问,Shift+Enter换行":ve?'请向我提问或输入"/"查看指令':'请向我提问或输入"/"查看指令,Shift+Enter换行')),je=n((()=>ce.loading||!ce.sendContent.replace(/(&nbsp;|\s|<br>)+/g,""))),ze=n((()=>{var e;return!ce.sendContent&&!(null==(e=ke.value)?void 0:e.activated.value)})),Me=n((()=>{var e,t;if(!ce.selectedPatient)return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.190"))||"选择患者";const{bcq04b:o,vaa05:n}=ce.selectedPatient;let l="";o&&(l+=o+((null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.191"))||"床"));return n&&(l+=(!l||l.endsWith("/")?"":"/")+n),l}));async function Pe(){try{const e=await re.start(b(),{allowPunctuationMark:!1,timed:me.value||10,realTimeRecognition:!0});if("success"!==(null==e?void 0:e.result))return;const{text:t}=e.data;ce.sendContent=t}catch(e){console.log(e)}}function Te(e){var t;if(R(e))return e;if(fe.value)return e.value;const{content:o}=(null==(t=null==e?void 0:e.contents)?void 0:t[0])||{};return null==o?void 0:o.instructionName}function De(){var e;we.value=!1,ye.value=A(he.value||[]),ge.value=[],(null==(e=he.value)?void 0:e.length)&&(we.value=!0,be.value=ye.value[0].shortcutId)}function Se(e){if(fe.value)"Enter"!==e.key||Be(e)||Ke();else if(!["Slash","NumpadDivide"].includes(e.code)||ce.selectedCommand||ce.sendContent)if("Backspace"===e.key)we.value=!1,!ce.sendContent.startsWith("/")&&!ce.sendContent.startsWith("、")||2!==ce.sendContent.length||ce.selectedCommand?!ce.sendContent&&ce.selectedCommand&&(e.preventDefault(),ce.selectedCommand=null,ce.sendContent="/",De()):De();else if(we.value&&["ArrowUp","ArrowDown"].includes(e.key)){const t=ye.value.findIndex((e=>e.shortcutId===be.value));if("ArrowUp"===e.key){const e=t>0?t-1:ye.value.length-1;be.value=ye.value[e].shortcutId}else if("ArrowDown"===e.key){const e=t<ye.value.length-1?t+1:0;be.value=ye.value[e].shortcutId}}else if(["Enter"].includes(e.key)){if(!Be(e))if(e.preventDefault(),we.value){Le(ye.value.find((e=>e.shortcutId===be.value)))}else Ke()}else we.value=!1;else De()}function Be(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function Ee(e){!e&&ce.selectedPrompt&&(ce.selectedPrompt=null)}function Ke(){je.value||(ce.sending=!0,ce.loading=!0)}function Le(e){var t;be.value=e.shortcutId,ke.value.focus(),(null==(t=e.children)?void 0:t.length)?(ye.value=e.children,be.value=ye.value[0].shortcutId,ge.value.push(e)):(ce.selectedCommand=e||{},we.value=!1,ce.sendContent="")}function Ue(){var e;ge.value.pop(),ye.value=F(ge.value)?null==(e=F(ge.value))?void 0:e.children:A(he.value||[]),be.value=ye.value[0].shortcutId,ke.value.focus()}function Ae(e){e||(ce.showPatient=!1)}return l((()=>{U.destroy()})),a((()=>ce.showPatient),(e=>{e&&(xe.value=e)})),(e,t)=>(s(),i("section",{class:r(["chat-footer",u(ce).loading?"disabled":""])},[d("div",O,[u(ve)||u(fe)?p("v-if",!0):(s(),c(u(x),{key:0,secondary:"",size:"small",onClick:t[0]||(t[0]=()=>xe.value=!0)},{icon:v((()=>[m(u(_),{color:u(ie)["--c-primary-color"],size:"20",component:u(T)},null,8,["color","component"])])),default:v((()=>[h(" "+f(u(Me)),1)])),_:1})),u(de)&&u(de).length>0?(s(!0),i(k,{key:1},w(u(de),(e=>(s(),c(u(x),{secondary:"",size:"small",style:g(u(ve)?"background: #fff":""),round:u(ve),key:Te(e),onClick:()=>async function(e){var t,o,n,l,a;if(R(e))ce.sendContent=e;else{if(fe.value&&e.key){switch(e.key){case"medical":ce.consultationContent=null,await ae(se,{vac01:(null==(o=null==(t=pe.value)?void 0:t.info)?void 0:o.vac01)||"1878974046080958465",type:1});break;case"recommend_treatment_plan":ce.params={platform:"web",sessionType:"text_chat",source:"global",opType:"recommend_treatment_plan",...ce.consultationContent,contents:[{role:"user",content:"",contentType:"text"}],configs:null==(n=pe.value)?void 0:n.info},ce.sending=!0;break;case"diagnosis":break;default:ue("button-click",{item:e,patientInfo:null==(l=pe.value)?void 0:l.info})}return}const s=null==(a=null==e?void 0:e.contents)?void 0:a[0];ue("button-click",{msgItem:s,item:e})}}(e)},{default:v((()=>[h(f(Te(e)),1)])),_:2},1032,["style","round","onClick"])))),128)):p("v-if",!0)]),m(u(I),{"content-style":"height: 400px",placement:"top-start",trigger:"manual",width:"trigger","show-arrow":!1,to:!1,show:we.value,onClickoutside:t[4]||(t[4]=e=>we.value=!1)},{trigger:v((()=>[d("div",G,[m(u(j),{ref_key:"inputRef",ref:ke,placeholder:u(Ie),type:"textarea",autosize:{minRows:u(ve)?1:2,maxRows:7},disabled:u(ce).loading,value:u(ce).sendContent,"onUpdate:value":t[2]||(t[2]=e=>u(ce).sendContent=e),onKeydownCapture:Se,onInput:Ee},y({_:2},[u(fe)?void 0:{name:"prefix",fn:v((()=>[u(ce).selectedCommand&&u(ce).selectedCommand.shortcutTitle?(s(),c(u(z),{key:0,bordered:!1,color:{textColor:u(ie)["--c-primary-color"]},style:{"--n-border-radius":"5px"}},{default:v((()=>[h(" /"+f(u(ce).selectedCommand.shortcutTitle),1)])),_:1},8,["color"])):u(ze)?(s(),c(u(x),{key:1,text:"",onClick:t[1]||(t[1]=()=>Ce.value=!0)},{default:v((()=>[m(u(_),{color:"#8f66f7",size:"18",component:u(D)},null,8,["component"])])),_:1})):p("v-if",!0)])),key:"0"},u(ve)?{name:"suffix",fn:v((()=>[m(u(x),{text:"",disabled:u(ce).loading,onClick:Pe},{icon:v((()=>[m(u(_),{size:"30"},{default:v((()=>[J])),_:1})])),_:1},8,["disabled"]),m(u(x),{circle:"",class:"gradient",style:{"margin-left":"10px"},disabled:u(je),onClick:Ke},{icon:v((()=>[m(u(_),{color:"#fff",size:"20",component:u(S)},null,8,["component"])])),_:1},8,["disabled"])])),key:"1"}:void 0]),1032,["placeholder","autosize","disabled","value"]),u(ve)?p("v-if",!0):(s(),i("div",Q,[u(fe)?(s(),c(u(x),{key:0,text:"",disabled:_e.value,onClick:t[3]||(t[3]=e=>_e.value=!0)},{icon:v((()=>[m(u(_),{size:"38"},{default:v((()=>[X])),_:1})])),_:1},8,["disabled"])):p("v-if",!0),d("span",{class:r(["btn-send","gradient","fillet-8",u(je)?"disabled":""]),disabled:u(je),onClick:Ke},[m(u(_),{color:"#fff",size:"22",component:u(S)},null,8,["component"])],10,Y)]))])])),default:v((()=>{var e;return[d("div",Z,[d("div",$,[0===ge.value.length?(s(),i("span",ee,(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.189"))||"推荐指令")):(s(),i(k,{key:1},[m(u(x),{text:"",onClick:Ue},{default:v((()=>[m(u(_),{color:"#999",size:"20",component:u(B)},null,8,["component"])])),_:1}),m(u(M),null,{default:v((()=>[(s(!0),i(k,null,w(ge.value,(e=>(s(),c(u(P),{key:e.shortcutId},{default:v((()=>[h(f(e.shortcutTitle),1)])),_:2},1024)))),128))])),_:1})],64))]),d("div",te,[(s(!0),i(k,null,w(ye.value,(e=>(s(),i("div",{class:r(["menu-item",e.children&&e.children.length?"":"selectable",be.value===e.shortcutId?"selected":""]),key:e.shortcutId,onMouseover:C((()=>be.value=e.shortcutId),["stop"]),onClick:()=>Le(e)},[d("span",ne,f(e.shortcutTitle),1),d("span",le,f(e.shortcutDescription),1),e.children&&e.children.length?(s(),c(u(_),{key:0,color:"#999",size:"20",component:u(E)},null,8,["component"])):p("v-if",!0)],42,oe)))),128))])])]})),_:1},8,["show"]),u(fe)?p("v-if",!0):(s(),c(N,{key:0,show:Ce.value,"onUpdate:show":t[5]||(t[5]=e=>Ce.value=e)},null,8,["show"])),u(fe)?p("v-if",!0):(s(),c(V,{key:1,show:xe.value,"onUpdate:show":[t[6]||(t[6]=e=>xe.value=e),Ae]},null,8,["show"])),u(fe)?(s(),c(q,{key:2,show:_e.value,"onUpdate:show":t[7]||(t[7]=e=>_e.value=e)},null,8,["show"])):p("v-if",!0)],2))}});export{ae as default};
1
+ import{defineComponent as e,inject as o,ref as t,computed as n,onBeforeUnmount as l,watch as a,openBlock as s,createElementBlock as i,normalizeClass as r,unref as u,createElementVNode as d,createBlock as c,withCtx as v,createVNode as m,createTextVNode as h,toDisplayString as f,createCommentVNode as p,Fragment as k,renderList as w,normalizeStyle as g,createSlots as y,withModifiers as C,getCurrentInstance as b}from"vue";import{NButton as x,NIcon as _,NPopover as I,NInput as j,NTag as z,NBreadcrumb as M,NBreadcrumbItem as P}from"naive-ui";import{PeopleOutline as T,SparklesSharp as D,PaperPlane as S,ChevronBack as B,ChevronForward as E}from"@vicons/ionicons5";import{InjectionAIChatEmits as K,InjectionAIChat as L}from"../types/index.js";import U from"../../../audio-sdk/src/audioSDK.js";import{cloneDeep as A,isString as R,last as F}from"lodash-es";import{useTheme as W}from"../../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"../../../../shared/hooks/useScrollLoading.js";import N from"./ChatPrompt.vue.js";import V from"./ChatPatient.vue.js";import q from"./ChatAudio.vue.js";import{useProgram as H}from"../hooks/useProgram.js";const O={class:"menu-box fillet-8"},G={class:"input-wrapper fillet-10"},J=d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 448h128"}),d("path",{d:"M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32",fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 368v80"}),d("path",{d:"M256 64a63.68 63.68 0 0 0-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z",fill:"none",stroke:"#4972EF","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"})],-1),Q={key:0,class:"btn-box"},X=d("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},[d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 448h128"}),d("path",{d:"M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32",fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),d("path",{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 368v80"}),d("path",{d:"M256 64a63.68 63.68 0 0 0-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z",fill:"none",stroke:"#4972EF","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"})],-1),Y=["disabled"],Z={class:"command-box"},$={class:"command-box__header"},ee={key:0,class:"title"},oe={class:"command-box__menu"},te=["onMouseover","onClick"],ne={class:"label"},le={class:"remark"};var ae=e({__name:"ChatFooter",setup(e){const ae=[{key:"recommend_diagnosis",value:"推荐诊断"},{key:"recommend_treatment_plan",value:"推荐诊疗方案"},{key:"medical",value:"病历"}],{programMethod:se,MedicalOrderId:ie}=H(),re=W(),ue=U.create(),de=o(K),{shortcutList:ce,state:ve,isSmall:me,audioTimed:he,commandList:fe,isInner:pe,patientInfo:ke}=o(L),we=t(),ge=t(!1),ye=t([]),Ce=t(A(fe.value||[])),be=t(!1),xe=t(""),_e=t(!1),Ie=t(!1),je=n((()=>pe.value?"请向我提问,Shift+Enter换行":me?'请向我提问或输入"/"查看指令':'请向我提问或输入"/"查看指令,Shift+Enter换行')),ze=n((()=>ve.loading||!ve.sendContent.replace(/(&nbsp;|\s|<br>)+/g,""))),Me=n((()=>{var e;return!ve.sendContent&&!(null==(e=we.value)?void 0:e.activated.value)})),Pe=n((()=>{var e,o;if(!ve.selectedPatient)return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.190"))||"选择患者";const{bcq04b:t,vaa05:n}=ve.selectedPatient;let l="";t&&(l+=t+((null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.191"))||"床"));return n&&(l+=(!l||l.endsWith("/")?"":"/")+n),l})),Te=n((()=>pe.value?ae.concat(ce.value||[]):ce.value));async function De(){try{const e=await ue.start(b(),{allowPunctuationMark:!1,timed:he.value||10,realTimeRecognition:!0});if("success"!==(null==e?void 0:e.result))return;const{text:o}=e.data;ve.sendContent=o}catch(e){console.log(e)}}function Se(e){var o;if(R(e))return e;if(pe.value)return e.value;const{content:t}=(null==(o=null==e?void 0:e.contents)?void 0:o[0])||{};return null==t?void 0:t.instructionName}function Be(){var e;ge.value=!1,Ce.value=A(fe.value||[]),ye.value=[],(null==(e=fe.value)?void 0:e.length)&&(ge.value=!0,xe.value=Ce.value[0].shortcutId)}function Ee(e){if(pe.value)"Enter"!==e.key||Ke(e)||Ue();else if(!["Slash","NumpadDivide"].includes(e.code)||ve.selectedCommand||ve.sendContent)if("Backspace"===e.key)ge.value=!1,!ve.sendContent.startsWith("/")&&!ve.sendContent.startsWith("、")||2!==ve.sendContent.length||ve.selectedCommand?!ve.sendContent&&ve.selectedCommand&&(e.preventDefault(),ve.selectedCommand=null,ve.sendContent="/",Be()):Be();else if(ge.value&&["ArrowUp","ArrowDown"].includes(e.key)){const o=Ce.value.findIndex((e=>e.shortcutId===xe.value));if("ArrowUp"===e.key){const e=o>0?o-1:Ce.value.length-1;xe.value=Ce.value[e].shortcutId}else if("ArrowDown"===e.key){const e=o<Ce.value.length-1?o+1:0;xe.value=Ce.value[e].shortcutId}}else if(["Enter"].includes(e.key)){if(!Ke(e))if(e.preventDefault(),ge.value){Ae(Ce.value.find((e=>e.shortcutId===xe.value)))}else Ue()}else ge.value=!1;else Be()}function Ke(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function Le(e){!e&&ve.selectedPrompt&&(ve.selectedPrompt=null)}function Ue(){ze.value||(ve.sending=!0,ve.loading=!0)}function Ae(e){var o;xe.value=e.shortcutId,we.value.focus(),(null==(o=e.children)?void 0:o.length)?(Ce.value=e.children,xe.value=Ce.value[0].shortcutId,ye.value.push(e)):(ve.selectedCommand=e||{},ge.value=!1,ve.sendContent="")}function Re(){var e;ye.value.pop(),Ce.value=F(ye.value)?null==(e=F(ye.value))?void 0:e.children:A(fe.value||[]),xe.value=Ce.value[0].shortcutId,we.value.focus()}function Fe(e){e||(ve.showPatient=!1)}return l((()=>{U.destroy()})),a((()=>ve.showPatient),(e=>{e&&(_e.value=e)})),(e,o)=>(s(),i("section",{class:r(["chat-footer",u(ve).loading?"disabled":""])},[d("div",O,[u(me)||u(pe)?p("v-if",!0):(s(),c(u(x),{key:0,secondary:"",size:"small",onClick:o[0]||(o[0]=()=>_e.value=!0)},{icon:v((()=>[m(u(_),{color:u(re)["--c-primary-color"],size:"20",component:u(T)},null,8,["color","component"])])),default:v((()=>[h(" "+f(u(Pe)),1)])),_:1})),u(Te)&&u(Te).length>0?(s(!0),i(k,{key:1},w(u(Te),(e=>(s(),c(u(x),{secondary:"",size:"small",style:g(u(me)?"background: #fff":""),round:u(me),key:Se(e),onClick:()=>async function(e){var o,t,n,l;if(R(e))ve.sendContent=e;else{if(pe.value&&e.key){switch(e.key){case"medical":ve.consultationContent=null,ve.showRight=!0,await se(ie,{vac01:(null==(t=null==(o=ke.value)?void 0:o.info)?void 0:t.vac01)||"1878974046080958465",type:1});break;case"recommend_treatment_plan":case"recommend_diagnosis":ve.params={opType:e.key},ve.sending=!0;break;default:de("button-click",{item:e,patientInfo:null==(n=ke.value)?void 0:n.info})}return}const a=null==(l=null==e?void 0:e.contents)?void 0:l[0];de("button-click",{msgItem:a,item:e})}}(e)},{default:v((()=>[h(f(Se(e)),1)])),_:2},1032,["style","round","onClick"])))),128)):p("v-if",!0)]),m(u(I),{"content-style":"height: 400px",placement:"top-start",trigger:"manual",width:"trigger","show-arrow":!1,to:!1,show:ge.value,onClickoutside:o[4]||(o[4]=e=>ge.value=!1)},{trigger:v((()=>[d("div",G,[m(u(j),{ref_key:"inputRef",ref:we,placeholder:u(je),type:"textarea",autosize:{minRows:u(me)?1:2,maxRows:7},disabled:u(ve).loading,value:u(ve).sendContent,"onUpdate:value":o[2]||(o[2]=e=>u(ve).sendContent=e),onKeydownCapture:Ee,onInput:Le},y({_:2},[u(pe)?void 0:{name:"prefix",fn:v((()=>[u(ve).selectedCommand&&u(ve).selectedCommand.shortcutTitle?(s(),c(u(z),{key:0,bordered:!1,color:{textColor:u(re)["--c-primary-color"]},style:{"--n-border-radius":"5px"}},{default:v((()=>[h(" /"+f(u(ve).selectedCommand.shortcutTitle),1)])),_:1},8,["color"])):u(Me)?(s(),c(u(x),{key:1,text:"",onClick:o[1]||(o[1]=()=>be.value=!0)},{default:v((()=>[m(u(_),{color:"#8f66f7",size:"18",component:u(D)},null,8,["component"])])),_:1})):p("v-if",!0)])),key:"0"},u(me)?{name:"suffix",fn:v((()=>[m(u(x),{text:"",disabled:u(ve).loading,onClick:De},{icon:v((()=>[m(u(_),{size:"30"},{default:v((()=>[J])),_:1})])),_:1},8,["disabled"]),m(u(x),{circle:"",class:"gradient",style:{"margin-left":"10px"},disabled:u(ze),onClick:Ue},{icon:v((()=>[m(u(_),{color:"#fff",size:"20",component:u(S)},null,8,["component"])])),_:1},8,["disabled"])])),key:"1"}:void 0]),1032,["placeholder","autosize","disabled","value"]),u(me)?p("v-if",!0):(s(),i("div",Q,[u(pe)?(s(),c(u(x),{key:0,text:"",disabled:Ie.value||u(ve).loading,onClick:o[3]||(o[3]=e=>Ie.value=!0)},{icon:v((()=>[m(u(_),{size:"38"},{default:v((()=>[X])),_:1})])),_:1},8,["disabled"])):p("v-if",!0),d("span",{class:r(["btn-send","gradient","fillet-8",u(ze)?"disabled":""]),disabled:u(ze),onClick:Ue},[m(u(_),{color:"#fff",size:"22",component:u(S)},null,8,["component"])],10,Y)]))])])),default:v((()=>{var e;return[d("div",Z,[d("div",$,[0===ye.value.length?(s(),i("span",ee,(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.189"))||"推荐指令")):(s(),i(k,{key:1},[m(u(x),{text:"",onClick:Re},{default:v((()=>[m(u(_),{color:"#999",size:"20",component:u(B)},null,8,["component"])])),_:1}),m(u(M),null,{default:v((()=>[(s(!0),i(k,null,w(ye.value,(e=>(s(),c(u(P),{key:e.shortcutId},{default:v((()=>[h(f(e.shortcutTitle),1)])),_:2},1024)))),128))])),_:1})],64))]),d("div",oe,[(s(!0),i(k,null,w(Ce.value,(e=>(s(),i("div",{class:r(["menu-item",e.children&&e.children.length?"":"selectable",xe.value===e.shortcutId?"selected":""]),key:e.shortcutId,onMouseover:C((()=>xe.value=e.shortcutId),["stop"]),onClick:()=>Ae(e)},[d("span",ne,f(e.shortcutTitle),1),d("span",le,f(e.shortcutDescription),1),e.children&&e.children.length?(s(),c(u(_),{key:0,color:"#999",size:"20",component:u(E)},null,8,["component"])):p("v-if",!0)],42,te)))),128))])])]})),_:1},8,["show"]),u(pe)?p("v-if",!0):(s(),c(N,{key:0,show:be.value,"onUpdate:show":o[5]||(o[5]=e=>be.value=e)},null,8,["show"])),u(pe)?p("v-if",!0):(s(),c(V,{key:1,show:_e.value,"onUpdate:show":[o[6]||(o[6]=e=>_e.value=e),Fe]},null,8,["show"])),u(pe)?(s(),c(q,{key:2,show:Ie.value,"onUpdate:show":o[7]||(o[7]=e=>Ie.value=e)},null,8,["show"])):p("v-if",!0)],2))}});export{ae as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as n,ref as t,watch as o,nextTick as s,createVNode as r,createTextVNode as a,resolveComponent as l}from"vue";import{NSpin as i}from"naive-ui";import{InjectionAIChatEmits as u,InjectionAIChat as c}from"../types/index.js";import{isArray as d,isFunction as m}from"lodash-es";import{uuidGenerator as p}from"../../../../shared/utils/index.js";import"@vueuse/core";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{useScrollLoading as v}from"../../../../shared/hooks/useScrollLoading.js";import f from"./card/JsonCard.js";import{conversationApi as g}from"../api/index.js";var h=e({name:"ChatMain",inheritAttrs:!1,components:{JsonCard:f},setup(e,{attrs:f,slots:h,emit:y}){n(u);const{patientInfo:j,state:b,queryRecord:C}=n(c),x=t(null),w=t([]),T={page:0,hasMore:!0};async function k(){if(!T.hasMore)return;T.page++,1==T.page&&(w.value=[]);const{records:e,rows:n}=await C.value({page:T.page});d(n)&&w.value.length<=+e&&(w.value=T.page>1?[...w.value,...n]:n,w.value.length>=+e&&(T.hasMore=!1,console.log("没有更多消息了")))}function I(e,n){var t,o;return"json"===(null==(o=null==(t=null==e?void 0:e.contents)?void 0:t[n])?void 0:o.contentType)}function M(e,n){var t;const{contents:o=[],msgId:s=""}=e;if("json"===(null==(t=o[n])?void 0:t.contentType))return function(e,n){return r(l("json-card"),{item:e,messageItem:n},null)}(e,o[n]);return[o[n].content.replace(/\\n|\n|\r\n/g,"<br>").split("<br>").filter((e=>!!e)).map(((e,n,t)=>[e,n===t.length-1?null:r("br",null,null)]))]}function q({role:e=""}){return"user"===e}return v(x,(()=>{k()}),"top"),k(),o((()=>b.sending),(async e=>{var n,t;if(e){b.sendContent&&(w.value.unshift({msgId:p(),contents:[{role:"user",content:b.sendContent}]}),null==(n=x.value)||n.scrollTo({top:0,behavior:"auto"}));const e=await g({contents:{role:"user",content:b.sendContent,contentType:"text"},platform:"web",source:"global",configs:j.value.info,...b.params}),{opType:o}=b.params||{};o&&["create_inquiry","create_medical"].includes(o)&&(d(null==e?void 0:e.contents)&&(w.value.unshift(e),await s(),null==(t=x.value)||t.scrollTo({top:0,behavior:"auto"})),b.consultationContent="create_inquiry"===o?e:null,b.showRight=!0),b.sending=!1,b.loading=!1,b.sendContent="",b.params={}}})),()=>[r("section",{class:"chat-main",ref:x,style:"column-reverse"},[[b.loading?r("div",{class:"message-item"},[r("div",{class:"content-box"},[r("div",{class:"content loading"},[r(i,{size:22,stroke:"#4170EE"},null),r("span",null,[a("正在加载中,请稍等...")])])])]):null,w.value.map((e=>e.contents.map(((n,t)=>r("div",{class:"message-item",key:e.msgId+t},[r("div",{class:["content-box",q(n)?"mine":""]},[r("div",{class:["content",{"content-json":!m(n.render)&&I(e,t)}]},[m(n.render)?n.render():M(e,t)])])])))))]])]}});export{h as default};
1
+ import{defineComponent as e,inject as n,ref as t,watch as o,createVNode as s,createTextVNode as r,nextTick as a,resolveComponent as l}from"vue";import{NSpin as i}from"naive-ui";import{InjectionAIChatEmits as c,InjectionAIChat as u}from"../types/index.js";import{isArray as d,isFunction as m}from"lodash-es";import{uuidGenerator as p}from"../../../../shared/utils/index.js";import"@vueuse/core";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{useScrollLoading as v}from"../../../../shared/hooks/useScrollLoading.js";import f from"./card/JsonCard.js";import{conversationApi as g}from"../api/index.js";import{useProgram as h}from"../hooks/useProgram.js";var y=e({name:"ChatMain",inheritAttrs:!1,components:{JsonCard:f},setup(e,{attrs:f,slots:y,emit:j}){n(c);const{patientInfo:C,state:b,queryRecord:x}=n(u),{programMethod:T,MedicalOrderId:_}=h(),w=t(null),M=t([]),k={page:0,hasMore:!0};async function I(){if(!k.hasMore)return;k.page++,1==k.page&&(M.value=[]);const{records:e,rows:n}=await x.value({page:k.page});d(n)&&M.value.length<=+e&&(M.value=k.page>1?[...M.value,...n]:n,M.value.length>=+e&&(k.hasMore=!1,console.log("没有更多消息了")))}async function q(e){var n;d(e.contents)&&(M.value.unshift(e),await a(),null==(n=w.value)||n.scrollTo({top:0,behavior:"auto"}))}function E(e,n){var t,o;return"json"===(null==(o=null==(t=null==e?void 0:e.contents)?void 0:t[n])?void 0:o.contentType)}function J(e,n){var t;const{contents:o=[],msgId:r=""}=e;if("json"===(null==(t=o[n])?void 0:t.contentType))return function(e,n){return s(l("json-card"),{item:e,messageItem:n},null)}(e,o[n]);return[o[n].content.replace(/\\n|\n|\r\n/g,"<br>").split("<br>").filter((e=>!!e)).map(((e,n,t)=>[e,n===t.length-1?null:s("br",null,null)]))]}function O({role:e=""}){return"user"===e}return v(w,(()=>{I()}),"top"),I(),o((()=>b.reportContent),(e=>{e&&q(e)})),o((()=>b.sending),(async e=>{var n,t,o;if(e){b.sendContent&&(M.value.unshift({msgId:p(),contents:[{role:"user",content:b.sendContent}]}),null==(n=w.value)||n.scrollTo({top:0,behavior:"auto"}));const{opType:e}=b.params||{};if(e&&["recommend_treatment_plan","recommend_diagnosis"].includes(e)&&M.value.length>0){const e=M.value.find((e=>{var n;return!O(null==(n=null==e?void 0:e.contents)?void 0:n[0])}));e&&Object.assign(b.params,e,{contents:[{role:"user",content:"",contentType:"text"}]})}const s=await g({contents:[{role:"user",content:b.sendContent,contentType:"text"}],platform:"web",sessionType:"text_chat",source:"global",configs:C.value.info,...b.params});"diagnosis"===e&&(b.refreshMedical=!0),"create_medical"===e&&d(s.contents)&&s.contents.reverse(),q(s),e&&["create_inquiry","create_medical"].includes(e)&&(b.showRight=!0,"create_inquiry"===e?b.consultationContent=s:(b.consultationContent=null,await T(_,{vac01:(null==(o=null==(t=C.value)?void 0:t.info)?void 0:o.vac01)||"1878974046080958465",type:1}))),b.sending=!1,b.loading=!1,b.sendContent="",b.params={}}})),()=>[s("section",{class:"chat-main",ref:w,style:"column-reverse"},[[b.loading?s("div",{class:"message-item"},[s("div",{class:"content-box"},[s("div",{class:"content loading"},[s(i,{size:22,stroke:"#4170EE"},null),s("span",null,[r("正在加载中,请稍等...")])])])]):null,M.value.map((e=>e.contents.map(((n,t)=>s("div",{class:"message-item",key:e.msgId+t},[s("div",{class:["content-box",O(n)?"mine":""]},[s("div",{class:["content",{"content-json":!m(n.render)&&E(e,t)}]},[m(n.render)?n.render():J(e,t)])])])))))]])]}});export{y as default};
@@ -4,12 +4,13 @@ declare const _default: import("vue").DefineComponent<{}, {
4
4
  key: string;
5
5
  title: string;
6
6
  }[];
7
- emit: (event: string, ...args: any[]) => void;
8
7
  state: any;
8
+ patientInfo: any;
9
9
  toolbarConfig: {
10
10
  toolbarKeys: string[];
11
11
  };
12
12
  content: import("vue").Ref<string>;
13
+ key: import("vue").Ref<string>;
13
14
  handleSave: () => Promise<void>;
14
15
  createMedicalRecord: () => void;
15
16
  extractContentByTitle: () => AnyObject;
@@ -1 +1 @@
1
- import{defineComponent as t,inject as e,reactive as n,ref as o,watch as a,withDirectives as i,openBlock as s,createElementBlock as l,createElementVNode as c,createVNode as r,unref as u,withCtx as y,Fragment as p,createTextVNode as d,createCommentVNode as k,vShow as f}from"vue";import{NButton as _,NIcon as m,NSpace as g}from"naive-ui";import{InjectionAIChatEmits as v,InjectionAIChat as h}from"../types/index.js";import b from"../../../editor/index.js";import{CloseOutline as j}from"@vicons/ionicons5";import{saveApi as w}from"../api/index.js";const C={class:"ai-chat__right"},x={class:"header"},z={class:"main",id:"aiChatMedicalRecord"};var q=t({__name:"ChatRight",setup(t){const q=[{key:"zs_yy",title:"主诉"},{key:"xbs_fuk",title:"现病史"},{key:"jws_vtk",title:"既往史"},{key:"patient_allergy_sync",title:"过敏史"},{key:"tgjcms_wsssss",title:"体格检查描述"},{key:"marriage",title:"婚姻状况"},{key:"nation",title:"民族"},{key:"profession",title:"职业"},{key:"jkzk_wyuu",title:"一般健康状况"},{key:"ryljlz_tbyvrt",title:"外长期居住史"},{key:"yjbz_qisf1",title:"饮酒标志"},{key:"gydwufcjfsxwzjcs_aogt_oietyntrrqk",title:"工业毒物、粉尘及放射性物质接触史"},{key:"yqtysjcs_ua_uirqk",title:"疫区、疫水接触史"},{key:"ryct_tbsw",title:"入院查体"},{key:"fzjclg_lessxj",title:"辅助检查结果"},{key:"o_hn_iyjc_hr",title:"互认回填"},{key:"cbzd_phyo",title:"初步诊断"},{key:"zljh_yuya",title:"诊疗计划"},{key:"wdcqjzs_qftanwk",title:"外地长期居住史"}];e(v);const{state:I}=e(h),R=n({toolbarKeys:["bold","fontSize"]}),T=o("");async function $(){const t=D();I.consultationContent.contents[0].content.autoBackfillData=t,await w({platform:"web",sessionType:"text_chat",source:"global",opType:"diagnosis",...I.consultationContent})}function B(){const t=D();console.log("json ==>",t,I.consultationContent),I.consultationContent.contents[0].content.autoBackfillData=t,I.params={platform:"web",sessionType:"text_chat",source:"global",opType:"create_medical",parentMsgId:"1878670582290931714",msgId:"1878670582290931714",sessionId:"1877992290794184705",...I.consultationContent,contents:[{role:"user",content:"",contentType:"text"}],configs:{businessType:"CLINICIAN",vaa01:"1876237139894923265",bck03a:"西安接口部",vaa07:"1876237140589948928",bce03d:"李雨淋",bce01d:6008046,vaa05:"老大",vac36:"1736164767794",bck01a:3000519,bck02a:"5013",vae96:"1"},medicalInfo:I.consultationContent},I.sending=!0}function D(){const t={};return q.forEach((e=>{const n=new RegExp(`<p><span.*?><strong>\\d+、${e.title}<\\/strong><\\/span><\\/p><p>(.*?)<\\/p>`,"i"),o=T.value.match(n);o&&o[1]&&(t[e.key]=o[1].trim())})),t}return a((()=>I.consultationContent),(t=>{var e,n,o;if(t){const{autoBackfillData:a}=(null==(o=null==(n=null==(e=null==t?void 0:t.contents)?void 0:e[0])?void 0:n.content)?void 0:o.details)||{};if(!a)return;q.forEach(((t,e)=>{T.value+=`<p><span style="font-size: 16px;"><strong>${e+1}、${t.title}</strong></span></p><p><span>${a[t.key]||""}</span></p><p>${e<q.length-1?"<br>":""}`}))}})),a((()=>I.showRight),(t=>{t||(I.consultationContent=null)})),(t,e)=>i((s(),l("div",C,[c("div",x,[r(u(_),{quaternary:"",onClick:e[0]||(e[0]=()=>u(I).showRight=!1)},{icon:y((()=>[r(u(m),{size:"20",component:u(j)},null,8,["component"])])),_:1})]),c("div",z,[u(I).consultationContent?(s(),l(p,{key:0},[r(u(b),{"toolbar-config":R,modelValue:T.value,"onUpdate:modelValue":e[1]||(e[1]=t=>T.value=t)},null,8,["toolbar-config","modelValue"]),r(u(g),{class:"footer","wrap-item":!1},{default:y((()=>[r(u(_),{round:"",class:"gradient",onClick:B},{default:y((()=>[d("审核完成")])),_:1}),r(u(_),{round:"",onClick:$},{default:y((()=>[d("暂存")])),_:1})])),_:1})],64)):k("v-if",!0)])],512)),[[f,u(I).showRight]])}});export{q as default};
1
+ import{defineComponent as t,inject as n,reactive as e,ref as o,watch as i,withDirectives as l,openBlock as a,createElementBlock as s,createElementVNode as c,createVNode as r,unref as u,withCtx as y,Fragment as d,createTextVNode as f,createCommentVNode as p,vShow as k}from"vue";import{NButton as _,NIcon as m,NSpace as g}from"naive-ui";import{InjectionAIChat as v}from"../types/index.js";import h from"../../../editor/index.js";import{CloseOutline as j}from"@vicons/ionicons5";import{saveApi as w}from"../api/index.js";const C={class:"ai-chat__right"},z={class:"header"};var b=t({__name:"ChatRight",setup(t){const b=[{key:"zs_yy",title:"主诉"},{key:"xbs_fuk",title:"现病史"},{key:"jws_vtk",title:"既往史"},{key:"patient_allergy_sync",title:"过敏史"},{key:"tgjcms_wsssss",title:"体格检查描述"},{key:"marriage",title:"婚姻状况"},{key:"nation",title:"民族"},{key:"profession",title:"职业"},{key:"jkzk_wyuu",title:"一般健康状况"},{key:"ryljlz_tbyvrt",title:"外长期居住史"},{key:"yjbz_qisf1",title:"饮酒标志"},{key:"gydwufcjfsxwzjcs_aogt_oietyntrrqk",title:"工业毒物、粉尘及放射性物质接触史"},{key:"yqtysjcs_ua_uirqk",title:"疫区、疫水接触史"},{key:"ryct_tbsw",title:"入院查体"},{key:"fzjclg_lessxj",title:"辅助检查结果"},{key:"o_hn_iyjc_hr",title:"互认回填"},{key:"cbzd_phyo",title:"初步诊断"},{key:"zljh_yuya",title:"诊疗计划"},{key:"wdcqjzs_qftanwk",title:"外地长期居住史"}],{state:x,patientInfo:q}=n(v),R=e({toolbarKeys:["bold","fontSize"]}),D=o(""),$=o(Date.now().toString());async function I(){var t;const n=E();x.consultationContent.contents[0].content.autoBackfillData=n,await w({msgId:x.consultationContent.msgId,contents:x.consultationContent.contents,configs:null==(t=q.value)?void 0:t.info})}function B(){const t=E();console.log("json ==>",t,x.consultationContent),x.consultationContent.contents[0].content.autoBackfillData=t,x.params={opType:"create_medical",...x.consultationContent,contents:[{role:"user",content:"",contentType:"text"}],medicalInfo:x.consultationContent},x.sending=!0}function E(){const t={};return b.forEach((n=>{const e=new RegExp(`<p><span.*?><strong>\\d+、${n.title}<\\/strong><\\/span><\\/p><p>(.*?)<\\/p>`,"i"),o=D.value.match(e);if(o&&o[1]){const e=o[1].trim();t[n.key]="<br>"===e?"":e}})),t}return i((()=>x.consultationContent),(t=>{var n,e,o;if(t){const{autoBackfillData:i}=(null==(o=null==(e=null==(n=null==t?void 0:t.contents)?void 0:n[0])?void 0:e.content)?void 0:o.details)||{};if(!i)return;b.forEach(((t,n)=>{D.value+=`<p><span style="font-size: 16px;"><strong>${n+1}、${t.title}</strong></span></p><p><span>${i[t.key]||""}</span></p><p>${n<b.length-1?"<br>":""}`}))}})),i((()=>x.showRight),(t=>{t||(x.consultationContent=null)})),i((()=>x.refreshMedical),(t=>{t&&($.value=Date.now().toString(),x.refreshMedical=!1)})),(t,n)=>l((a(),s("div",C,[c("div",z,[r(u(_),{quaternary:"",onClick:n[0]||(n[0]=()=>u(x).showRight=!1)},{icon:y((()=>[r(u(m),{size:"20",component:u(j)},null,8,["component"])])),_:1})]),(a(),s("div",{class:"main",id:"aiChatMedicalRecord",key:$.value},[u(x).consultationContent?(a(),s(d,{key:0},[r(u(h),{"toolbar-config":R,modelValue:D.value,"onUpdate:modelValue":n[1]||(n[1]=t=>D.value=t)},null,8,["toolbar-config","modelValue"]),r(u(g),{class:"footer","wrap-item":!1},{default:y((()=>[r(u(_),{round:"",class:"gradient",onClick:B},{default:y((()=>[f("审核完成")])),_:1}),r(u(_),{round:"",onClick:I},{default:y((()=>[f("暂存")])),_:1})])),_:1})],64)):p("v-if",!0)]))],512)),[[k,u(x).showRight]])}});export{b as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as a,ref as i,computed as s,createVNode as l,resolveComponent as n,createTextVNode as t}from"vue";import{NSpace as o,NIcon as c,NImage as d}from"naive-ui";import r from"../../../../../shared/assets/img/file.png.js";import v from"../../../../../shared/assets/img/file-emr.png.js";import m from"../../../../../shared/assets/img/use.png.js";import{CheckmarkCircle as u}from"@vicons/ionicons5";import p from"./SelectIcon.js";import{InjectionAIChat as g}from"../../types/index.js";import{useProgram as f}from"../../hooks/useProgram.js";var h=e({name:"ChatJsonCard",inheritAttrs:!1,props:{item:{type:Object,default:()=>({})},messageItem:{type:Object,default:()=>({})}},components:{NSpace:o,NIcon:c,NImage:d,SelectIcon:p},emits:[],setup(e,{attrs:o,slots:c,emit:d}){const{state:p,patientInfo:h}=a(g),{programMethod:y,MedicalOrderId:b,ReportId:I}=f(),{messageType:_,content:C}=e.messageItem,k=i([]),x=i([]),j=s((()=>{var e,a;return(null==(a=null==(e=h.value)?void 0:e.info)?void 0:a.vac01)||"1878974046080958465"})),w=s((()=>{var e;return null==(e=null==C?void 0:C.diagnosis)?void 0:e[0]})),N=s((()=>{var e;return"diagnosis_added"===_&&(null==(e=w.value)?void 0:e.name)})),S=s((()=>N.value)),T=s((()=>"diagnosis"===_||"diagnosis_added"===_||"treatment_plan"===_));var O,q;"diagnosis_added"===_&&(k.value=null==(q=null==(O=C.recommendedExaminations)?void 0:O.map)?void 0:q.call(O,(e=>e.name)));const P=(e,a="name")=>{x.value.includes(e[a])?x.value=x.value.filter((i=>i!==e[a])):x.value.push(e[a]),console.log(x.value)},A=(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e)},D=async(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const l=a?k.value.includes(a.name)?[a.name]:[]:[...k.value];await y(b,{bbx05List:JSON.stringify(l),vac01:j.value,type:3})},J=async()=>{await y(I,{vaa07:j.value,reportType:C.reportType,reportId:C.reportId})},E=async(e,a)=>{var i,s,l,n;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const t=a?[a.name]:null==(n=null==(l=C.medications)?void 0:l.map)?void 0:n.call(l,(e=>e.name));await y(b,{drugNameList:JSON.stringify(t),vac01:j.value,type:3})},L=()=>{("diagnosis_added"===_?!k.value.length:!x.value.length)||("diagnosis"!==_?"diagnosis_added"!==_?"treatment_plan"!==_||E():D():A())};async function M(){p.showRight=!0,"medical"===_?(async()=>{await y(b,{vac01:j.value,type:1})})():p.consultationContent=e.item}const R=()=>l("div",{class:"diagnosis-added-box"},[l("div",{class:"recommended-wrap"},[l("div",{class:"title"},[t("影像学检查")]),C.recommendedExaminations.map((e=>l("div",{class:"recommended-item"},[l("div",{class:"top"},[l("div",{class:"left-tag"},[l("span",{class:["recommended-tag",{active:k.value.includes(e.name)}],onClick:()=>(e=>{k.value.includes(e.name)?k.value=k.value.filter((a=>a!==e.name)):k.value.push(e.name)})(e)},[e.name,l(n("select-icon"),{class:"select-icon",width:16},null)])]),l("img",{class:"right-icon",src:m,onClick:a=>D(a,e)},null)]),l("div",{class:"desc"},[e.description])])))])]),H=()=>{var e,a;return S.value?l("div",{class:"card-header"},[l("span",{class:"left-title"},[l(n("n-icon"),{component:u},null),t("已添加诊断:"),null==(e=w.value)?void 0:e.name]),l("span",{class:"right-desc"},[t("创建时间: "),null==(a=w.value)?void 0:a.createdTime])]):null},z=()=>{if(!T.value)return null;const e="diagnosis_added"===_?!k.value.length:!x.value.length;return l("div",{class:"card-footer"},[l("span",{class:"left-desc"},[t("请注意,辅助诊断由AI推荐,结果仅供临床")]),l("span",{class:["right-btn",{disabled:e}],onClick:L},[t("引用所选")])])},B=()=>"inquiry"==_||"medical"==_?(()=>{var e,a;const i="inquiry"===_;return l("div",{class:"inquiry_medical-box",onClick:()=>M()},[l("div",{class:"left-img"},[l("img",{src:i?r:v},null)]),l("div",{class:"right-text"},[l("p",{class:"top-info"},[i?null==(e=C.summary)?void 0:e.inquiryStr:C.info]),l("p",{class:"sum-time"},[t("创建时间:"),(null==(a=C.summary)?void 0:a.creationTime)||C.creationTime])])])})():"diagnosis"==_?l("div",{class:"diagnosis-box"},[l("div",{class:"title"},[t("诊断辅助")]),l("div",{class:"desc"},[C.patientHistory]),C.possibleConditions.map((e=>l("div",{class:["con-item",{active:x.value.includes(e.condition)}],onClick:()=>P(e,"condition")},[l("div",{class:"top-content"},[l("div",{class:"left_wrap"},[l("a",{href:e.link,target:"_blank"},[t("【"),e.condition,t("】")]),e.code,t("("),e.probability,t(")")]),l("img",{class:"right-icon",src:m,onClick:e=>A(e)},null)]),l("div",{class:"btm-desc"},[e.description])])))]):"diagnosis_added"==_?R():"treatment_plan"==_?l("div",{class:"treatment-plan-box"},[l("div",{class:"top-div"},[l("div",{class:"title"},[C.title])]),l("div",{class:"desc"},[C.description]),l("div",{class:"medication-wrap"},[l("div",{class:"title"},[t("药物")]),C.medications.map((e=>l("div",{class:["medication-item",{active:x.value.includes(e.name)}],onClick:()=>P(e)},[l("div",{class:"top"},[l("div",{class:"name"},[e.name]),l("img",{class:"right-icon",src:m,onClick:a=>E(a,e)},null)]),l("ul",null,[l("li",null,[t("用量: "),e.dosage,e.purpose]),l("li",null,[t("用法: "),e.usageInstructions])])])))]),l("div",{class:"precaution-wrap"},[l("div",{class:"title"},[t("注意事项")]),l("div",{class:"precaution-div"},[C.precautions.map(((e,a)=>l("div",{class:"treatment-item"},[a+1,t(". "),e])))])])]):"report_message"==_?l("div",{class:"report-message-box"},[l("div",{class:"top-title"},[l("div",{class:"left-title"},[l(n("n-icon"),{component:u},null),C.reportName]),l("span",{class:"right-detail",onClick:J},[t("报告详情")])]),l("div",{class:"center-img"},[C.images.map((e=>l(n("n-image"),{src:e.image},null)))]),l("div",{class:"bottom-interpretation"},[C.reportInterpretation,l("div",{class:"desc-tip"},[t("请注意,辅助诊断由AI推荐,结果仅供临床参考。")])])]):"默认json内容";return()=>l("section",{class:"json-card_section"},[H(),l("div",{class:"card-content"},[B()]),z()])}});export{h as default};
1
+ import{defineComponent as e,inject as a,ref as i,computed as s,createVNode as l,resolveComponent as n,createTextVNode as t}from"vue";import{NSpace as o,NIcon as c,NImage as d,NButton as r}from"naive-ui";import u from"../../../../../shared/assets/img/file.png.js";import v from"../../../../../shared/assets/img/file-emr.png.js";import m from"../../../../../shared/assets/img/use.png.js";import{CheckmarkCircle as p}from"@vicons/ionicons5";import g from"./SelectIcon.js";import{InjectionAIChat as f}from"../../types/index.js";import{useProgram as h}from"../../hooks/useProgram.js";var y=e({name:"ChatJsonCard",inheritAttrs:!1,props:{item:{type:Object,default:()=>({})},messageItem:{type:Object,default:()=>({})}},components:{NSpace:o,NIcon:c,NImage:d,SelectIcon:g},emits:[],setup(e,{attrs:o,slots:c,emit:d}){const{state:g,patientInfo:y}=a(f),{programMethod:b,MedicalOrderId:C,ReportId:I}=h(),{messageType:_,content:x}=e.messageItem,k=i([]),j=i([]),w=s((()=>{var e,a;return(null==(a=null==(e=y.value)?void 0:e.info)?void 0:a.vac01)||"1878974046080958465"})),T=s((()=>{var e;return null==(e=null==x?void 0:x.diagnosis)?void 0:e[0]})),N=s((()=>{var e;return"diagnosis_added"===_&&(null==(e=T.value)?void 0:e.name)})),S=s((()=>N.value)),O=s((()=>"diagnosis"===_||"diagnosis_added"===_||"treatment_plan"===_));var q,P;"diagnosis_added"===_&&(k.value=null==(P=null==(q=x.recommendedExaminations)?void 0:q.map)?void 0:P.call(q,(e=>e.name)));const A=(e,a="name")=>{j.value.includes(e[a])?j.value=j.value.filter((i=>i!==e[a])):j.value.push(e[a]),console.log(j.value)},D=(a,i)=>{var s,l;null==(s=null==a?void 0:a.preventDefault)||s.call(a),null==(l=null==a?void 0:a.stopPropagation)||l.call(a);let n=i?[i]:[];arguments.length||(n=x.possibleConditions.filter((e=>j.value.includes(e.code)))),n.length&&(g.params={...e.item,opType:"diagnosis",contents:[{role:"user",content:"",contentType:"text"}],possibleConditions:n},g.sending=!0)},J=async(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const l=a?k.value.includes(a.name)?[a.name]:[]:[...k.value];await b(C,{bbx05List:JSON.stringify(l),vac01:w.value,type:3})},E=async()=>{var e;const a=(null==(e=x.reports)?void 0:e[0])||{};await b(I,{vaa07:w.value,reportType:a.reportType,reportId:a.reportId})},L=async(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const l=a?[a.name]:j.value;await b(C,{drugNameList:JSON.stringify(l),vac01:w.value,type:3})},M=()=>{if(!("diagnosis_added"===_?!k.value.length:!j.value.length))return"diagnosis"===_?D():"diagnosis_added"===_?J():"treatment_plan"===_?L():void 0};async function R(){g.showRight=!0,"medical"===_?(async()=>{await b(C,{vac01:w.value,type:1})})():g.consultationContent=e.item}const H=()=>l("div",{class:"diagnosis-added-box"},[l("div",{class:"recommended-wrap"},[l("div",{class:"title"},[t("影像学检查")]),x.recommendedExaminations.map((e=>l("div",{class:"recommended-item"},[l("div",{class:"top"},[l("div",{class:"left-tag"},[l("span",{class:["recommended-tag",{active:k.value.includes(e.name)}],onClick:()=>(e=>{k.value.includes(e.name)?k.value=k.value.filter((a=>a!==e.name)):k.value.push(e.name)})(e)},[e.name,l(n("select-icon"),{class:"select-icon",width:16},null)])]),l("img",{class:"right-icon",src:m,onClick:a=>J(a,e)},null)]),l("div",{class:"desc"},[e.description])])))])]),z=()=>{var e,a;return S.value?l("div",{class:"card-header"},[l("span",{class:"left-title"},[l(n("n-icon"),{component:p},null),t("已添加诊断:"),null==(e=T.value)?void 0:e.name]),l("span",{class:"right-desc"},[t("创建时间: "),null==(a=T.value)?void 0:a.createdTime])]):null},B=()=>{if(!O.value)return null;const e="diagnosis_added"===_?!k.value.length:!j.value.length;return l("div",{class:"card-footer"},[l("span",{class:"left-desc"},[t("请注意,辅助诊断由AI推荐,结果仅供临床")]),l("span",{class:["right-btn",{disabled:e}],onClick:M},[t("引用所选")])])},F=()=>"inquiry"==_||"medical"==_?(()=>{var e,a;const i="inquiry"===_;return l("div",{class:"inquiry_medical-box",onClick:()=>R()},[l("div",{class:"left-img"},[l("img",{src:i?u:v},null)]),l("div",{class:"right-text"},[l("p",{class:"top-info"},[i?null==(e=x.summary)?void 0:e.inquiryStr:x.info]),l("p",{class:"sum-time"},[t("创建时间:"),(null==(a=x.summary)?void 0:a.creationTime)||x.creationTime])])])})():"diagnosis"==_?l("div",{class:"diagnosis-box"},[l("div",{class:"title"},[t("诊断辅助")]),l("div",{class:"desc"},[x.patientHistory]),x.possibleConditions.map((e=>l("div",{class:["con-item",{active:j.value.includes(e.condition)}],onClick:()=>A(e,"code")},[l("div",{class:"top-content"},[l("div",{class:"left_wrap"},[l("a",{href:e.link,target:"_blank"},[t("【"),e.condition,t("】")]),e.code,t("("),e.probability,t(")")]),l("img",{class:"right-icon",src:m,onClick:a=>D(a,e)},null)]),l("div",{class:"btm-desc"},[e.description])])))]):"diagnosis_added"==_?H():"treatment_plan"==_?l("div",{class:"treatment-plan-box"},[l("div",{class:"top-div"},[l("div",{class:"title"},[x.title])]),l("div",{class:"desc"},[x.description]),l("div",{class:"medication-wrap"},[l("div",{class:"title"},[t("药物")]),x.medications.map((e=>l("div",{class:["medication-item",{active:j.value.includes(e.name)}],onClick:()=>A(e)},[l("div",{class:"top"},[l("div",{class:"name"},[e.name]),l("img",{class:"right-icon",src:m,onClick:a=>L(a,e)},null)]),l("ul",null,[l("li",null,[t("用量: "),e.dosage,e.purpose]),l("li",null,[t("用法: "),e.usageInstructions])])])))]),l("div",{class:"precaution-wrap"},[l("div",{class:"title"},[t("注意事项")]),l("div",{class:"precaution-div"},[x.precautions.map(((e,a)=>l("div",{class:"treatment-item"},[a+1,t(". "),e])))])])]):"report_message"==_?(()=>{var e,a;const i=(null==(e=x.reports)?void 0:e[0])||{},s=(null==(a=i.reportInterpretation)?void 0:a.replace(/\\n|\n|\r/g,"<br>").split("<br>"))||[""],o=s.map(((e,a)=>[e,a===s.length-1?null:l("br",null,null)]));return l("div",{class:"report-message-box"},[l("div",{class:"top-title"},[l("div",{class:"left-title"},[l(n("n-icon"),{component:p},null),i.reportName]),l("div",{class:"right-detail"},[l(r,{text:!0,onClick:E},{default:()=>[t("报告详情")]}),l(r,{text:!0},{default:()=>[t("推荐方案")]})])]),l("div",{class:"center-img"},[i.images.map((e=>"pdf"===e.imageType?l("embed",{class:"pdf-embed",src:e.image,type:"application/pdf"},null):l(n("n-image"),{src:e.image},null)))]),l("div",{class:"bottom-interpretation"},[o,l("div",{class:"desc-tip"},[t("请注意,辅助诊断由AI推荐,结果仅供临床参考。")])])])})():"默认json内容";return()=>l("section",{class:"json-card_section"},[z(),l("div",{class:"card-content"},[F()]),B()])}});export{y as default};
@@ -1,2 +1,2 @@
1
1
  import { AnyObject } from '../../../../shared/types';
2
- export declare function useWebsocket(props: AnyObject): void;
2
+ export declare function useWebsocket(props: AnyObject, state: AnyObject): void;
@@ -1 +1 @@
1
- function o(o){if(!o.orgId||!o.userId)return;let e=!1;const n=new WebSocket("/flow/ai/opd/1");n.onopen=()=>{e=!0,console.log("0 websocket连接成功 ==>")},n.onerror=()=>console.log("WebSocket连接失败"),n.onmessage=o=>{console.log("张铁柱 ==>",o)},async function o(n=0){return n>5?console.log("websocket连接失败 ==>"):e?console.log("websocket连接成功 ==>"):void setTimeout((()=>{o(++n)}),100)}()}export{o as useWebsocket};
1
+ import{isValidJSON as o}from"../utils/index.js";function e(e,n){if(!e.orgId||!e.userId)return;let t=!1;const r=new WebSocket("/flow/ai/opd/1");r.onopen=()=>{t=!0,console.log("0 websocket连接成功 ==>")},r.onerror=()=>console.log("WebSocket连接失败"),r.onmessage=e=>{if(n.reportContent)return;const{data:t}=e||{};if(console.log("张铁柱 ==>",e),!o(t))return;const r=JSON.parse(t);n.reportContent=r||null},async function o(e=0){return e>5?console.log("websocket连接失败 ==>"):t?console.log("websocket连接成功 ==>"):void setTimeout((()=>{o(++e)}),100)}()}export{e as useWebsocket};
@@ -1 +1 @@
1
- .c-recording-wrapper{align-items:center;background-color:#fff;border-radius:10px;bottom:100px;display:flex;height:350px;justify-content:center;left:calc(50% - 250px);position:fixed;width:500px}@keyframes toScale{0%{transform:translateX(-50%) translateY(-50%) scale(1)}to{transform:translateX(-50%) translateY(-50%) scale(1.5)}}.c-recording-wrapper .content{font-size:18px;position:absolute;text-align:center;top:20px}.c-recording-wrapper .animation{animation:toScale 1s infinite;background-color:#5585f54d;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scale(1);z-index:-1}.c-recording-wrapper .animation,.c-recording-wrapper .icon-box{align-items:center;border-radius:50%;display:flex;height:90px;justify-content:center;width:90px}.c-recording-wrapper .icon-box{background-color:#5585f5;cursor:pointer}.c-recording-wrapper .tip{bottom:20px;position:absolute}.c-template-render{box-sizing:border-box;color:#000;font-size:0;line-height:1.6}.c-template-render__flex{display:flex}.c-template-render__flexAlignCenter{align-items:center}.c-template-render__flex-wrap{flex-wrap:wrap}.c-template-render__flex1{flex:1}.c-template-render__width100{width:100%}.c-template-render__color60{color:rgba(0,0,0,.6)}.c-template-render__color100{color:#000}.c-template-render__text-ellipsis{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box!important;overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;word-break:break-all}.c-template-render__nowrap{white-space:nowrap}.c-template-render__mgr8{margin-right:8px!important}.c-template-render__mgb8{margin-bottom:8px!important}.c-template-render__mgt4{margin-top:4px!important}.c-template-render__mgb4{margin-bottom:4px!important}.c-template-render__un-mgr8{margin-right:-8px!important}.c-template-render__bar{padding-left:8px;position:relative}.c-template-render__bar:before{background:var(--c-primary-color);border-radius:4px;content:"";height:12px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.c-template-render__inline{display:inline}.annotation-edit{align-items:center;color:var(--c-primary-color);cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:var(--c-primary-color);filter:hue-rotate(140deg)}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;min-width:100%;padding:0 8px 0 16px;width:fit-content}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{white-space:nowrap}.search-cascader__optionText--active{color:var(--c-primary-color)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column));position:relative}.form-render__formItemMask{margin-bottom:8px;padding:8px}.form-render__formItemMask:after{border:1px solid #c2c2c2;border-radius:8px;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.form-render__formItemMask--selected:after{border-color:var(--c-primary-color)}.form-render__formItemMask--selected:before{border-bottom:12px solid var(--c-primary-color);border-bottom-right-radius:8px;border-left:12px solid transparent;border-right:12px solid var(--c-primary-color);border-top:12px solid transparent;bottom:0;color:#fff;content:"✓";font-size:10px;height:0;line-height:.9;position:absolute;right:0;width:0}.form-render__formItem.n-form-item--left-labelled .form-render__formItemLabel--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:var(--c-primary-color-opacity2);border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:600;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;font-size:15px;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarHeader--disabled{cursor:auto}.form-render__linebarItem{align-items:start;display:grid!important;flex:1;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebar--horizontal{align-items:stretch;display:flex;position:relative}.form-render__linebar--horizontal .form-render__linebarHeader{align-items:center;background:transparent;border-radius:0;box-sizing:border-box;display:flex;height:unset;justify-content:center;margin-bottom:0;margin-left:-8px;max-width:var(--form-render-linebar-width);padding:8px;text-align:center;width:var(--form-render-linebar-width);word-break:break-all}.form-render__linebar--horizontal .form-render__linebarItem{padding:8px 0 8px 8px}.form-render__linebar--horizontalBorder:after{border-bottom:1px solid #000;bottom:0;content:"";height:1px;left:0;margin-left:-8px;position:absolute;width:calc(100% + 16px)}.form-render__linebar:last-of-type .form-render__linebar--horizontalBorder:after{display:none}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:start;display:grid!important;gap:0 16px;gap:0;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column));grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__inputGroup>div{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.form-render__labelField{align-items:start;display:grid!important;display:inline-grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));grid-template-columns:repeat(var(--column),auto)!important;margin-left:16px}.form-render__labelField .n-form-item{display:inline-grid}.form-render__labelField label.n-form-item-label.n-form-item-label--left-mark{align-items:center}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box{background-color:transparent}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-icon .check-icon{opacity:0}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box__border{border:var(--n-border)}.form-render .form-render__formItem .n-checkbox,.form-render .form-render__formItem .n-radio{align-items:center}.form-render .form-render__formItem .n-radio-input{left:auto;right:auto}.form-render .form-render__formItem .n-checkbox-group>.n-space:not([vertical-space=true]),.form-render .form-render__formItem .n-radio-group>.n-space:not([vertical-space=true]){align-items:center!important}.form-render .form-render__formItem .n-checkbox__label{align-items:center;display:inline-flex;flex:1;flex-wrap:wrap}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot{border-radius:0!important}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot--checked{background:var(--c-primary-color)!important}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot--checked:before{color:#fff;content:"✓";font-size:13px;font-weight:700;line-height:.8;transform:translateX(-1.5px)}.form-render--no-border .n-input{border-radius:0}.form-render--no-border .n-input__border,.form-render--no-border .n-input__state-border{border-width:0!important}.form-render--no-border .n-input:hover .n-input__state-border{border-bottom-width:1px!important}.form-render--no-border .n-input--focus{border-radius:0}.form-render--no-border .n-input--focus .n-input__state-border{border-bottom-width:1px!important;box-shadow:none!important}.form-render--no-border .n-base-selection--active .n-base-selection__state-border,.form-render--no-border .n-base-selection--focus .n-base-selection__state-border,.form-render--no-border .n-base-selection:hover .n-base-selection__state-border,.form-render--no-border .n-base-selection__border,.form-render--no-border .n-base-selection__state-border{border-width:0!important;box-shadow:none!important}.form-render--underline .n-input{border-radius:0}.form-render--underline .n-input__border,.form-render--underline .n-input__state-border{border-left-width:0!important;border-right-width:0!important;border-top-width:0!important}.form-render--underline .n-input--focus{border-radius:0}.form-render--underline .n-input--focus .n-input__state-border{box-shadow:none!important}.form-render--underline .n-base-selection--active .n-base-selection__state-border,.form-render--underline .n-base-selection--focus .n-base-selection__state-border,.form-render--underline .n-base-selection:hover .n-base-selection__state-border,.form-render--underline .n-base-selection__border,.form-render--underline .n-base-selection__state-border{border-left-width:0!important;border-right-width:0!important;border-top-width:0!important;box-shadow:none!important}.form-render--underline .n-input--textarea{background-image:linear-gradient(transparent,transparent 95%,#d5d5d5 0,#d5d5d5);background-origin:content-box;background-position:top;background-repeat:repeat-y;background-size:100% 22px;margin-top:4px;padding:0}.form-render--underline .n-input--textarea .n-input__textarea-el{padding:0}.form-render--underline .n-input--textarea .n-input__placeholder{padding-top:0}.form-render--underline .n-input--textarea .n-input__border,.form-render--underline .n-input--textarea .n-input__state-border{border:0!important}.form-render__selectChildField{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));width:100%}.form-render__selectChildFieldItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render--out-border .form-render__wrapper{border:1px solid #1f2225;padding:0 8px}.form-render__selectOption.n-base-select-option--disabled .n-base-select-option__content{color:rgba(0,0,0,.4)}.json-card_section{border-radius:3px 14px 14px}.json-card_section ul{list-style:none;margin:0;padding:0}.json-card_section li{margin:0;padding:0}.json-card_section .card-header{align-items:center;border-bottom:1px solid hsla(0,0%,59%,.39);display:flex;justify-content:space-between;padding:10px 12px 14px}.json-card_section .card-header .left-title{color:#212121;font-size:14px;font-weight:600;line-height:16px}.json-card_section .card-header .left-title .n-icon{color:#58a268;font-size:16px;margin-right:8px;vertical-align:bottom}.json-card_section .card-header .right-desc{color:#c2c2c2;font-size:12px;font-weight:400}.json-card_section .card-footer{align-items:flex-end;display:flex;justify-content:space-between;padding:0 12px 10px}.json-card_section .card-footer .left-desc{color:#c2c2c2;font-size:12px;font-weight:400;line-height:18px;margin-right:16px}.json-card_section .card-footer .right-btn{background:linear-gradient(178deg,#8f66f7,#4170ee);border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:18px;height:50px;line-height:50px;padding:0 18px}.json-card_section .card-footer .right-btn.disabled{cursor:not-allowed;opacity:.5}.json-card_section .card-content{padding:16px 12px}.json-card_section .card-content .right-icon{cursor:pointer;width:16px}.json-card_section .card-content .inquiry_medical-box{align-items:flex-start;display:flex;justify-content:flex-start;margin-right:16px;width:300px}.json-card_section .card-content .inquiry_medical-box .left-img img{width:40px}.json-card_section .card-content .inquiry_medical-box .right-text{margin-left:10px}.json-card_section .card-content .inquiry_medical-box .right-text .top-info{color:#212121;font-size:14px;font-weight:600}.json-card_section .card-content .inquiry_medical-box .right-text .sum-time{color:rgba(0,0,0,.3);font-size:12px}.json-card_section .card-content .diagnosis-box .title{color:#212121;font-size:16px;font-weight:600;margin-bottom:12px}.json-card_section .card-content .diagnosis-box .desc{font-size:14px;font-weight:400}.json-card_section .card-content .diagnosis-box .con-item{background:#f4f6fb;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 8px 0 rgba(45,79,146,.15);margin-top:16px;padding:10px 12px}.json-card_section .card-content .diagnosis-box .con-item.active{border-color:#2563f4}.json-card_section .card-content .diagnosis-box .con-item .top-content{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .diagnosis-box .con-item .top-content a{color:#2563f4;font-weight:700;text-decoration:none}.json-card_section .card-content .diagnosis-box .con-item .btm-desc{color:rgba(0,0,0,.7);padding-left:6px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap{background:#f4f6fb;border-radius:8px;padding:14px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .title{color:#000;font-weight:600;margin-bottom:12px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-item+.recommended-item{margin-top:16px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .top{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag{align-items:center;background:#fff;border:1px solid #ccc;border-radius:3px;color:#000;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;height:24px;justify-content:center;min-width:50px;padding:0 10px;position:relative}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag .select-icon{border-bottom-right-radius:3px;bottom:-1px;display:none;position:absolute;right:-1px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag.active{border-color:#2563f4}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag.active .select-icon{display:block}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-item .desc{color:rgba(0,0,0,.7);margin-top:8px}.json-card_section .card-content .treatment-plan-box .top-div{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.json-card_section .card-content .treatment-plan-box .top-div .title{color:#212121;font-size:16px;font-weight:600}.json-card_section .card-content .treatment-plan-box .desc{color:#212121;font-size:14px}.json-card_section .card-content .treatment-plan-box .medication-wrap{margin-top:16px}.json-card_section .card-content .treatment-plan-box .medication-wrap .title{font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item{background:#f4f6fb;border:1px solid transparent;border-radius:10px;box-shadow:0 2px 8px 0 rgba(45,79,146,.15);margin-top:8px;padding:12px}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item.active{border-color:#2563f4}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item .top{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item .top .name{color:#2563f4;font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item ul li:before{content:"•";display:inline-block;font-weight:700;width:1em}.json-card_section .card-content .treatment-plan-box .precaution-wrap{margin-top:16px}.json-card_section .card-content .treatment-plan-box .precaution-wrap .title{font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .precaution-wrap .precaution-div{background:#f4f6fb;border-radius:10px;color:rgba(0,0,0,.7);margin-top:12px;padding:12px}.json-card_section .card-content .report-message-box .top-title{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:16px}.json-card_section .card-content .report-message-box .top-title .left-title{color:#212121;line-height:16px}.json-card_section .card-content .report-message-box .top-title .left-title .n-icon{color:#58a268;font-size:16px;margin-right:8px;vertical-align:bottom}.json-card_section .card-content .report-message-box .top-title .right-detail{color:#2563f4;cursor:pointer}.json-card_section .card-content .report-message-box .center-img .n-image{border:1px solid hsla(0,0%,59%,.52);border-radius:8px;margin-bottom:8px}.json-card_section .card-content .report-message-box .bottom-interpretation{background:#f4f6fb;border-radius:10px;margin-top:8px;padding:12px}.json-card_section .card-content .report-message-box .bottom-interpretation .desc-tip{color:rgba(0,0,0,.7);font-size:12px;margin-top:16px}.ai-chat{color:#000;display:flex;flex-flow:row nowrap;font-size:14px;height:100%;width:100%}.ai-chat,.ai-chat *{box-sizing:border-box}.ai-chat .fillet-10{border-radius:10px}.ai-chat .fillet-8{border-radius:8px}.ai-chat .n-avatar{background-color:var(--c-primary-color)}.ai-chat .gradient{background:linear-gradient(178deg,#8f66f7,#4170ee);color:#fff}.ai-chat .gradient:active,.ai-chat .gradient:focus,.ai-chat .gradient:hover{color:#fff}.ai-chat__main{background:linear-gradient(135deg,#c9dbfb,#c9dbfb 20%,rgba(237,237,253,.5) 70%,rgba(151,97,251,.2));box-sizing:border-box;display:flex;flex:1;flex-flow:column nowrap;height:100%;padding:45px 0 60px;position:relative}.ai-chat__main .chat-main{display:flex;flex:1;flex-flow:column-reverse nowrap;overflow-y:auto;padding:0 130px 0 82px;row-gap:16px}.ai-chat__main .chat-main::-webkit-scrollbar{width:5px}.ai-chat__main .chat-main::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .chat-main::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .chat-main .message-item{column-gap:8px;display:flex;flex-flow:row nowrap}.ai-chat__main .chat-main .message-item:first-child{margin-bottom:auto}.ai-chat__main .chat-main .message-item .n-avatar{flex-shrink:0}.ai-chat__main .chat-main .message-item .content-box .content:not(.content-json){padding:10px 12px}.ai-chat__main .chat-main .message-item .content-box .content{background:#fff;border-radius:10px;flex:unset}.ai-chat__main .chat-main .message-item .content-box .content .card{min-width:236px}.ai-chat__main .chat-main .message-item .content-box .content .card>p{font-size:14px;line-height:19px}.ai-chat__main .chat-main .message-item .content-box .content .card .c-template-render .biClass{border-radius:5px;cursor:pointer}.ai-chat__main .chat-main .message-item .content-box .content .card .form-box .n-form:first-child{margin-top:10px}.ai-chat__main .chat-main .message-item .content-box .content .card .form-box .n-form-item-label__text{color:#888}.ai-chat__main .chat-main .message-item .content-box .content.default h2{font-size:22px;font-weight:500;margin:10px 0}.ai-chat__main .chat-main .message-item .content-box .content.loading{align-items:center;color:#999;column-gap:10px;display:flex}.ai-chat__main .chat-main .message-item .content-box.mine .content{background:hsla(0,0%,100%,.48);border-radius:8px}.ai-chat__main .chat-footer{padding:30px 130px 0;position:relative}.ai-chat__main .chat-footer .ai-chat__audio{align-items:center;background:#fff;border:1px solid #e5f0fc;border-radius:15px;bottom:70px;box-shadow:0 6px 11px 0 rgba(173,198,236,.2);display:flex;flex-flow:column nowrap;padding:20px;position:absolute;right:32px}.ai-chat__main .chat-footer .ai-chat__audio p{font-size:13px}.ai-chat__main .chat-footer .ai-chat__audio h3{font-size:28px;font-weight:500;margin:10px auto}.ai-chat__main .chat-footer.disabled{cursor:not-allowed}.ai-chat__main .chat-footer .menu-box{background:#fff;column-gap:8px;display:flex;margin-bottom:8px;overflow-x:auto;padding:10px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar{width:5px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar{height:5px}.ai-chat__main .chat-footer .input-wrapper{background:#fff;box-shadow:0 3px 4px 0 rgba(0,0,0,.1);padding:15px 20px}.ai-chat__main .chat-footer .input-wrapper .n-input__border,.ai-chat__main .chat-footer .input-wrapper .n-input__state-border{border:none}.ai-chat__main .chat-footer .input-wrapper .n-input:not(.n-input--disabled).n-input--focus .n-input__state-border{box-shadow:unset}.ai-chat__main .chat-footer .input-wrapper .btn-box{column-gap:15px;display:flex;justify-content:flex-end}.ai-chat__main .chat-footer .input-wrapper .btn-box .btn-send{align-items:center;cursor:pointer;display:flex;height:46px;justify-content:center;width:58px}.ai-chat__main .chat-footer .input-wrapper .btn-box .btn-send.disabled{cursor:not-allowed;opacity:.5}.ai-chat__main .chat-footer .command-box{display:flex;flex-flow:column nowrap;height:100%}.ai-chat__main .chat-footer .command-box__header{display:flex}.ai-chat__main .chat-footer .command-box__header .title{color:#999}.ai-chat__main .chat-footer .command-box__menu{flex:1;overflow-y:auto}.ai-chat__main .chat-footer .command-box__menu .menu-item{align-items:center;display:flex;padding:8px 0 8px 5px}.ai-chat__main .chat-footer .command-box__menu .menu-item .remark{color:#999;flex:1;font-size:12px;margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-chat__main .chat-footer .command-box__menu .menu-item .n-icon{margin-left:auto}.ai-chat__main .chat-footer .command-box__menu .menu-item:hover{cursor:default}.ai-chat__main .chat-footer .command-box__menu .menu-item.selected{background:#f2f2f2;border-radius:5px}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable{position:relative}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable .label{color:var(--c-primary-color);margin-left:30px}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable:before{background:#e5e5e5;border-radius:5px;content:"/";height:20px;left:5px;line-height:20px;position:absolute;text-align:center;top:10px;width:20px}.ai-chat__main--small{padding:20px 0 44px}.ai-chat__main--small .chat-main{padding:0 20px 10px}.ai-chat__main--small .chat-main .message-item{display:unset}.ai-chat__main--small .chat-main .message-item .n-avatar{background:transparent}.ai-chat__main--small .chat-main .message-item .content-box{display:flex;flex-flow:row nowrap}.ai-chat__main--small .chat-main .message-item .content-box .content{border-radius:3px 14px 14px;max-width:calc(100% - 55px)}.ai-chat__main--small .chat-main .message-item .content-box .content.default{border-radius:4px 16px 16px}.ai-chat__main--small .chat-main .message-item .content-box.mine{flex-flow:row-reverse nowrap}.ai-chat__main--small .chat-main .message-item .content-box.mine .content{background:#5874dc;border-radius:14px 0 14px 14px;color:#fff}.ai-chat__main--small .chat-footer{padding:10px 20px 0}.ai-chat__main--small .chat-footer .menu-box{background:none;padding:0}.ai-chat__main--small .chat-footer .input-wrapper{box-shadow:0 0 6px 0 hsla(240,9%,85%,.74);padding:5px 0}.ai-chat__main .prompt-wrapper{background:linear-gradient(135deg,#ecf3ff,#ecf3ff 20%,rgba(237,237,253,.5) 70%,rgba(203,175,255,.3))}.ai-chat__main .prompt-wrapper .n-drawer-header{padding:15px}.ai-chat__main .prompt-wrapper .n-drawer-header__main{width:100%}.ai-chat__main .prompt-wrapper .n-drawer-header__main .title{display:flex;font-size:14px}.ai-chat__main .prompt-wrapper .n-drawer-header__main .title .n-button{margin-left:auto}.ai-chat__main .prompt-wrapper .n-drawer-header__main .n-input{margin-top:10px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper{padding:0 10px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper{align-content:flex-start;display:flex;flex-wrap:wrap;height:100%;overflow-y:auto}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar{width:5px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item{background:#fff;border-radius:10px;box-sizing:border-box;break-inside:avoid;cursor:pointer;margin:5px;padding:10px;width:calc(50% - 10px)}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item:hover{background-image:linear-gradient(#ecf3ff,#fff 40%,#fff)}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item p:last-child{color:#999;font-size:12px}.ai-chat__main--inner .chat-footer .menu-box{background:#fff;padding:10px}.ai-chat__main--inner .chat-footer .input-wrapper{padding:12px}.ai-chat__right{box-shadow:-6px 0 18px 0 rgba(1,40,161,.1);display:flex;flex-flow:column nowrap;height:100%;width:600px}.ai-chat__right .header{display:flex;justify-content:flex-end;padding:10px}.ai-chat__right .main{display:flex;flex:1;flex-flow:column nowrap;min-height:0}.ai-chat__right .main .c-editor{border:none;flex:1;min-height:0}.ai-chat__right .main .c-editor__main{height:calc(100% - 40px)!important}.ai-chat__right .main .footer{border-top:1px solid #d5d5d5;padding:10px 18px}
1
+ .c-recording-wrapper{align-items:center;background-color:#fff;border-radius:10px;bottom:100px;display:flex;height:350px;justify-content:center;left:calc(50% - 250px);position:fixed;width:500px}@keyframes toScale{0%{transform:translateX(-50%) translateY(-50%) scale(1)}to{transform:translateX(-50%) translateY(-50%) scale(1.5)}}.c-recording-wrapper .content{font-size:18px;position:absolute;text-align:center;top:20px}.c-recording-wrapper .animation{animation:toScale 1s infinite;background-color:#5585f54d;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scale(1);z-index:-1}.c-recording-wrapper .animation,.c-recording-wrapper .icon-box{align-items:center;border-radius:50%;display:flex;height:90px;justify-content:center;width:90px}.c-recording-wrapper .icon-box{background-color:#5585f5;cursor:pointer}.c-recording-wrapper .tip{bottom:20px;position:absolute}.c-template-render{box-sizing:border-box;color:#000;font-size:0;line-height:1.6}.c-template-render__flex{display:flex}.c-template-render__flexAlignCenter{align-items:center}.c-template-render__flex-wrap{flex-wrap:wrap}.c-template-render__flex1{flex:1}.c-template-render__width100{width:100%}.c-template-render__color60{color:rgba(0,0,0,.6)}.c-template-render__color100{color:#000}.c-template-render__text-ellipsis{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box!important;overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;word-break:break-all}.c-template-render__nowrap{white-space:nowrap}.c-template-render__mgr8{margin-right:8px!important}.c-template-render__mgb8{margin-bottom:8px!important}.c-template-render__mgt4{margin-top:4px!important}.c-template-render__mgb4{margin-bottom:4px!important}.c-template-render__un-mgr8{margin-right:-8px!important}.c-template-render__bar{padding-left:8px;position:relative}.c-template-render__bar:before{background:var(--c-primary-color);border-radius:4px;content:"";height:12px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.c-template-render__inline{display:inline}.annotation-edit{align-items:center;color:var(--c-primary-color);cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:var(--c-primary-color);filter:hue-rotate(140deg)}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;min-width:100%;padding:0 8px 0 16px;width:fit-content}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{white-space:nowrap}.search-cascader__optionText--active{color:var(--c-primary-color)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column));position:relative}.form-render__formItemMask{margin-bottom:8px;padding:8px}.form-render__formItemMask:after{border:1px solid #c2c2c2;border-radius:8px;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.form-render__formItemMask--selected:after{border-color:var(--c-primary-color)}.form-render__formItemMask--selected:before{border-bottom:12px solid var(--c-primary-color);border-bottom-right-radius:8px;border-left:12px solid transparent;border-right:12px solid var(--c-primary-color);border-top:12px solid transparent;bottom:0;color:#fff;content:"✓";font-size:10px;height:0;line-height:.9;position:absolute;right:0;width:0}.form-render__formItem.n-form-item--left-labelled .form-render__formItemLabel--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:var(--c-primary-color-opacity2);border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:600;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;font-size:15px;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarHeader--disabled{cursor:auto}.form-render__linebarItem{align-items:start;display:grid!important;flex:1;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebar--horizontal{align-items:stretch;display:flex;position:relative}.form-render__linebar--horizontal .form-render__linebarHeader{align-items:center;background:transparent;border-radius:0;box-sizing:border-box;display:flex;height:unset;justify-content:center;margin-bottom:0;margin-left:-8px;max-width:var(--form-render-linebar-width);padding:8px;text-align:center;width:var(--form-render-linebar-width);word-break:break-all}.form-render__linebar--horizontal .form-render__linebarItem{padding:8px 0 8px 8px}.form-render__linebar--horizontalBorder:after{border-bottom:1px solid #000;bottom:0;content:"";height:1px;left:0;margin-left:-8px;position:absolute;width:calc(100% + 16px)}.form-render__linebar:last-of-type .form-render__linebar--horizontalBorder:after{display:none}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:start;display:grid!important;gap:0 16px;gap:0;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column));grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__inputGroup>div{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.form-render__labelField{align-items:start;display:grid!important;display:inline-grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));grid-template-columns:repeat(var(--column),auto)!important;margin-left:16px}.form-render__labelField .n-form-item{display:inline-grid}.form-render__labelField label.n-form-item-label.n-form-item-label--left-mark{align-items:center}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box{background-color:transparent}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-icon .check-icon{opacity:0}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box__border{border:var(--n-border)}.form-render .form-render__formItem .n-checkbox,.form-render .form-render__formItem .n-radio{align-items:center}.form-render .form-render__formItem .n-radio-input{left:auto;right:auto}.form-render .form-render__formItem .n-checkbox-group>.n-space:not([vertical-space=true]),.form-render .form-render__formItem .n-radio-group>.n-space:not([vertical-space=true]){align-items:center!important}.form-render .form-render__formItem .n-checkbox__label{align-items:center;display:inline-flex;flex:1;flex-wrap:wrap}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot{border-radius:0!important}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot--checked{background:var(--c-primary-color)!important}.form-render .form-render__formItem [showType=checkbox] .n-radio__dot--checked:before{color:#fff;content:"✓";font-size:13px;font-weight:700;line-height:.8;transform:translateX(-1.5px)}.form-render--no-border .n-input{border-radius:0}.form-render--no-border .n-input__border,.form-render--no-border .n-input__state-border{border-width:0!important}.form-render--no-border .n-input:hover .n-input__state-border{border-bottom-width:1px!important}.form-render--no-border .n-input--focus{border-radius:0}.form-render--no-border .n-input--focus .n-input__state-border{border-bottom-width:1px!important;box-shadow:none!important}.form-render--no-border .n-base-selection--active .n-base-selection__state-border,.form-render--no-border .n-base-selection--focus .n-base-selection__state-border,.form-render--no-border .n-base-selection:hover .n-base-selection__state-border,.form-render--no-border .n-base-selection__border,.form-render--no-border .n-base-selection__state-border{border-width:0!important;box-shadow:none!important}.form-render--underline .n-input{border-radius:0}.form-render--underline .n-input__border,.form-render--underline .n-input__state-border{border-left-width:0!important;border-right-width:0!important;border-top-width:0!important}.form-render--underline .n-input--focus{border-radius:0}.form-render--underline .n-input--focus .n-input__state-border{box-shadow:none!important}.form-render--underline .n-base-selection--active .n-base-selection__state-border,.form-render--underline .n-base-selection--focus .n-base-selection__state-border,.form-render--underline .n-base-selection:hover .n-base-selection__state-border,.form-render--underline .n-base-selection__border,.form-render--underline .n-base-selection__state-border{border-left-width:0!important;border-right-width:0!important;border-top-width:0!important;box-shadow:none!important}.form-render--underline .n-input--textarea{background-image:linear-gradient(transparent,transparent 95%,#d5d5d5 0,#d5d5d5);background-origin:content-box;background-position:top;background-repeat:repeat-y;background-size:100% 22px;margin-top:4px;padding:0}.form-render--underline .n-input--textarea .n-input__textarea-el{padding:0}.form-render--underline .n-input--textarea .n-input__placeholder{padding-top:0}.form-render--underline .n-input--textarea .n-input__border,.form-render--underline .n-input--textarea .n-input__state-border{border:0!important}.form-render__selectChildField{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));width:100%}.form-render__selectChildFieldItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render--out-border .form-render__wrapper{border:1px solid #1f2225;padding:0 8px}.form-render__selectOption.n-base-select-option--disabled .n-base-select-option__content{color:rgba(0,0,0,.4)}.json-card_section{border-radius:3px 14px 14px}.json-card_section ul{list-style:none;margin:0;padding:0}.json-card_section li{margin:0;padding:0}.json-card_section .card-header{align-items:center;border-bottom:1px solid hsla(0,0%,59%,.39);display:flex;justify-content:space-between;padding:10px 12px 14px}.json-card_section .card-header .left-title{color:#212121;font-size:14px;font-weight:600;line-height:16px}.json-card_section .card-header .left-title .n-icon{color:#58a268;font-size:16px;margin-right:8px;vertical-align:bottom}.json-card_section .card-header .right-desc{color:#c2c2c2;font-size:12px;font-weight:400}.json-card_section .card-footer{align-items:flex-end;display:flex;justify-content:space-between;padding:0 12px 10px}.json-card_section .card-footer .left-desc{color:#c2c2c2;font-size:12px;font-weight:400;line-height:18px;margin-right:16px}.json-card_section .card-footer .right-btn{background:linear-gradient(178deg,#8f66f7,#4170ee);border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:18px;height:50px;line-height:50px;padding:0 18px}.json-card_section .card-footer .right-btn.disabled{cursor:not-allowed;opacity:.5}.json-card_section .card-content{padding:16px 12px}.json-card_section .card-content .right-icon{cursor:pointer;width:16px}.json-card_section .card-content .inquiry_medical-box{align-items:flex-start;display:flex;justify-content:flex-start;margin-right:16px;width:300px}.json-card_section .card-content .inquiry_medical-box .left-img img{width:40px}.json-card_section .card-content .inquiry_medical-box .right-text{margin-left:10px}.json-card_section .card-content .inquiry_medical-box .right-text .top-info{color:#212121;font-size:14px;font-weight:600}.json-card_section .card-content .inquiry_medical-box .right-text .sum-time{color:rgba(0,0,0,.3);font-size:12px}.json-card_section .card-content .diagnosis-box .title{color:#212121;font-size:16px;font-weight:600;margin-bottom:12px}.json-card_section .card-content .diagnosis-box .desc{font-size:14px;font-weight:400}.json-card_section .card-content .diagnosis-box .con-item{background:#f4f6fb;border:1px solid transparent;border-radius:8px;box-shadow:0 2px 8px 0 rgba(45,79,146,.15);margin-top:16px;padding:10px 12px}.json-card_section .card-content .diagnosis-box .con-item.active,.json-card_section .card-content .diagnosis-box .con-item:hover{border-color:var(--c-primary-color)}.json-card_section .card-content .diagnosis-box .con-item .top-content{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .diagnosis-box .con-item .top-content a{color:var(--c-primary-color);font-weight:700;text-decoration:none}.json-card_section .card-content .diagnosis-box .con-item .btm-desc{color:rgba(0,0,0,.7);padding-left:6px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap{background:#f4f6fb;border-radius:8px;padding:14px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .title{color:#000;font-weight:600;margin-bottom:12px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-item+.recommended-item{margin-top:16px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .top{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag{align-items:center;background:#fff;border:1px solid #ccc;border-radius:3px;color:#000;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;height:24px;justify-content:center;min-width:50px;padding:0 10px;position:relative}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag .select-icon{border-bottom-right-radius:3px;bottom:-1px;display:none;position:absolute;right:-1px}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag.active{border-color:var(--c-primary-color)}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-tag.active .select-icon{display:block}.json-card_section .card-content .diagnosis-added-box .recommended-wrap .recommended-item .desc{color:rgba(0,0,0,.7);margin-top:8px}.json-card_section .card-content .treatment-plan-box .top-div{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.json-card_section .card-content .treatment-plan-box .top-div .title{color:#212121;font-size:16px;font-weight:600}.json-card_section .card-content .treatment-plan-box .desc{color:#212121;font-size:14px}.json-card_section .card-content .treatment-plan-box .medication-wrap{margin-top:16px}.json-card_section .card-content .treatment-plan-box .medication-wrap .title{font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item{background:#f4f6fb;border:1px solid transparent;border-radius:10px;box-shadow:0 2px 8px 0 rgba(45,79,146,.15);margin-top:8px;padding:12px}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item.active{border-color:var(--c-primary-color)}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item .top{align-items:center;display:flex;justify-content:space-between}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item .top .name{color:var(--c-primary-color);font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .medication-wrap .medication-item ul li:before{content:"•";display:inline-block;font-weight:700;width:1em}.json-card_section .card-content .treatment-plan-box .precaution-wrap{margin-top:16px}.json-card_section .card-content .treatment-plan-box .precaution-wrap .title{font-size:14px;font-weight:600}.json-card_section .card-content .treatment-plan-box .precaution-wrap .precaution-div{background:#f4f6fb;border-radius:10px;color:rgba(0,0,0,.7);margin-top:12px;padding:12px}.json-card_section .card-content .report-message-box .top-title{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:16px}.json-card_section .card-content .report-message-box .top-title .left-title{color:#212121;line-height:16px}.json-card_section .card-content .report-message-box .top-title .left-title .n-icon{color:#58a268;font-size:16px;margin-right:8px;vertical-align:bottom}.json-card_section .card-content .report-message-box .top-title .right-detail .n-button{color:var(--c-primary-color)}.json-card_section .card-content .report-message-box .top-title .right-detail .n-button__content{font-weight:600}.json-card_section .card-content .report-message-box .top-title .right-detail .n-button:first-child{margin-right:10px}.json-card_section .card-content .report-message-box .center-img .pdf-embed{border-radius:8px;display:block;height:500px;margin-top:8px;width:100%}.json-card_section .card-content .report-message-box .center-img .n-image{border:1px solid hsla(0,0%,59%,.52);border-radius:8px;display:block;margin-top:8px;width:100%}.json-card_section .card-content .report-message-box .center-img .n-image img{width:100%}.json-card_section .card-content .report-message-box .bottom-interpretation{background:#f4f6fb;border-radius:10px;margin-top:8px;padding:12px}.json-card_section .card-content .report-message-box .bottom-interpretation .desc-tip{color:rgba(0,0,0,.7);font-size:12px;margin-top:16px}.ai-chat{color:#000;display:flex;flex-flow:row nowrap;font-size:14px;height:100%;width:100%}.ai-chat,.ai-chat *{box-sizing:border-box}.ai-chat .fillet-10{border-radius:10px}.ai-chat .fillet-8{border-radius:8px}.ai-chat .n-avatar{background-color:var(--c-primary-color)}.ai-chat .gradient{background:linear-gradient(178deg,#8f66f7,#4170ee);color:#fff}.ai-chat .gradient:active,.ai-chat .gradient:focus,.ai-chat .gradient:hover{color:#fff}.ai-chat__main{background:linear-gradient(135deg,#c9dbfb,#c9dbfb 20%,rgba(237,237,253,.5) 70%,rgba(151,97,251,.2));box-sizing:border-box;display:flex;flex:1;flex-flow:column nowrap;height:100%;padding:45px 0 60px;position:relative}.ai-chat__main .chat-main{display:flex;flex:1;flex-flow:column-reverse nowrap;overflow-y:auto;padding:0 130px 0 82px;row-gap:16px}.ai-chat__main .chat-main::-webkit-scrollbar{width:5px}.ai-chat__main .chat-main::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .chat-main::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .chat-main .message-item{column-gap:8px;display:flex;flex-flow:row nowrap}.ai-chat__main .chat-main .message-item:first-child{margin-bottom:auto}.ai-chat__main .chat-main .message-item .n-avatar{flex-shrink:0}.ai-chat__main .chat-main .message-item .content-box .content:not(.content-json){padding:10px 12px}.ai-chat__main .chat-main .message-item .content-box .content{background:#fff;border-radius:10px;flex:unset}.ai-chat__main .chat-main .message-item .content-box .content .card{min-width:236px}.ai-chat__main .chat-main .message-item .content-box .content .card>p{font-size:14px;line-height:19px}.ai-chat__main .chat-main .message-item .content-box .content .card .c-template-render .biClass{border-radius:5px;cursor:pointer}.ai-chat__main .chat-main .message-item .content-box .content .card .form-box .n-form:first-child{margin-top:10px}.ai-chat__main .chat-main .message-item .content-box .content .card .form-box .n-form-item-label__text{color:#888}.ai-chat__main .chat-main .message-item .content-box .content.default h2{font-size:22px;font-weight:500;margin:10px 0}.ai-chat__main .chat-main .message-item .content-box .content.loading{align-items:center;color:#999;column-gap:10px;display:flex}.ai-chat__main .chat-main .message-item .content-box.mine .content{background:hsla(0,0%,100%,.48);border-radius:8px}.ai-chat__main .chat-footer{padding:30px 130px 0;position:relative}.ai-chat__main .chat-footer .ai-chat__audio{align-items:center;background:#fff;border:1px solid #e5f0fc;border-radius:15px;bottom:70px;box-shadow:0 6px 11px 0 rgba(173,198,236,.2);display:flex;flex-flow:column nowrap;padding:20px;position:absolute;right:32px}.ai-chat__main .chat-footer .ai-chat__audio p{font-size:13px}.ai-chat__main .chat-footer .ai-chat__audio h3{font-size:28px;font-weight:500;margin:10px auto}.ai-chat__main .chat-footer.disabled{cursor:not-allowed}.ai-chat__main .chat-footer .menu-box{background:#fff;column-gap:8px;display:flex;margin-bottom:8px;overflow-x:auto;padding:10px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar{width:5px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .chat-footer .menu-box::-webkit-scrollbar{height:5px}.ai-chat__main .chat-footer .input-wrapper{background:#fff;box-shadow:0 3px 4px 0 rgba(0,0,0,.1);padding:15px 20px}.ai-chat__main .chat-footer .input-wrapper .n-input__border,.ai-chat__main .chat-footer .input-wrapper .n-input__state-border{border:none}.ai-chat__main .chat-footer .input-wrapper .n-input:not(.n-input--disabled).n-input--focus .n-input__state-border{box-shadow:unset}.ai-chat__main .chat-footer .input-wrapper .btn-box{column-gap:15px;display:flex;justify-content:flex-end}.ai-chat__main .chat-footer .input-wrapper .btn-box .btn-send{align-items:center;cursor:pointer;display:flex;height:46px;justify-content:center;width:58px}.ai-chat__main .chat-footer .input-wrapper .btn-box .btn-send.disabled{cursor:not-allowed;opacity:.5}.ai-chat__main .chat-footer .command-box{display:flex;flex-flow:column nowrap;height:100%}.ai-chat__main .chat-footer .command-box__header{display:flex}.ai-chat__main .chat-footer .command-box__header .title{color:#999}.ai-chat__main .chat-footer .command-box__menu{flex:1;overflow-y:auto}.ai-chat__main .chat-footer .command-box__menu .menu-item{align-items:center;display:flex;padding:8px 0 8px 5px}.ai-chat__main .chat-footer .command-box__menu .menu-item .remark{color:#999;flex:1;font-size:12px;margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-chat__main .chat-footer .command-box__menu .menu-item .n-icon{margin-left:auto}.ai-chat__main .chat-footer .command-box__menu .menu-item:hover{cursor:default}.ai-chat__main .chat-footer .command-box__menu .menu-item.selected{background:#f2f2f2;border-radius:5px}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable{position:relative}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable .label{color:var(--c-primary-color);margin-left:30px}.ai-chat__main .chat-footer .command-box__menu .menu-item.selectable:before{background:#e5e5e5;border-radius:5px;content:"/";height:20px;left:5px;line-height:20px;position:absolute;text-align:center;top:10px;width:20px}.ai-chat__main--small{padding:20px 0 44px}.ai-chat__main--small .chat-main{padding:0 20px 10px}.ai-chat__main--small .chat-main .message-item{display:unset}.ai-chat__main--small .chat-main .message-item .n-avatar{background:transparent}.ai-chat__main--small .chat-main .message-item .content-box{display:flex;flex-flow:row nowrap}.ai-chat__main--small .chat-main .message-item .content-box .content{border-radius:3px 14px 14px;max-width:calc(100% - 55px)}.ai-chat__main--small .chat-main .message-item .content-box .content.default{border-radius:4px 16px 16px}.ai-chat__main--small .chat-main .message-item .content-box.mine{flex-flow:row-reverse nowrap}.ai-chat__main--small .chat-main .message-item .content-box.mine .content{background:#5874dc;border-radius:14px 0 14px 14px;color:#fff}.ai-chat__main--small .chat-footer{padding:10px 20px 0}.ai-chat__main--small .chat-footer .menu-box{background:none;padding:0}.ai-chat__main--small .chat-footer .input-wrapper{box-shadow:0 0 6px 0 hsla(240,9%,85%,.74);padding:5px 0}.ai-chat__main .prompt-wrapper{background:linear-gradient(135deg,#ecf3ff,#ecf3ff 20%,rgba(237,237,253,.5) 70%,rgba(203,175,255,.3))}.ai-chat__main .prompt-wrapper .n-drawer-header{padding:15px}.ai-chat__main .prompt-wrapper .n-drawer-header__main{width:100%}.ai-chat__main .prompt-wrapper .n-drawer-header__main .title{display:flex;font-size:14px}.ai-chat__main .prompt-wrapper .n-drawer-header__main .title .n-button{margin-left:auto}.ai-chat__main .prompt-wrapper .n-drawer-header__main .n-input{margin-top:10px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper{padding:0 10px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper{align-content:flex-start;display:flex;flex-wrap:wrap;height:100%;overflow-y:auto}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar{width:5px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item{background:#fff;border-radius:10px;box-sizing:border-box;break-inside:avoid;cursor:pointer;margin:5px;padding:10px;width:calc(50% - 10px)}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item:hover{background-image:linear-gradient(#ecf3ff,#fff 40%,#fff)}.ai-chat__main .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item p:last-child{color:#999;font-size:12px}.ai-chat__main--inner .chat-footer .menu-box{background:#fff;padding:10px}.ai-chat__main--inner .chat-footer .input-wrapper{padding:12px}.ai-chat__right{box-shadow:-6px 0 18px 0 rgba(1,40,161,.1);display:flex;flex-flow:column nowrap;height:100%;width:600px}.ai-chat__right .header{display:flex;justify-content:flex-end;padding:10px}.ai-chat__right .main{display:flex;flex:1;flex-flow:column nowrap;min-height:0}.ai-chat__right .main .c-editor{border:none;flex:1;min-height:0}.ai-chat__right .main .c-editor__main{height:calc(100% - 40px)!important}.ai-chat__right .main .c-editor__main .w-e-scroll::-webkit-scrollbar{width:5px}.ai-chat__right .main .c-editor__main .w-e-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat__right .main .c-editor__main .w-e-scroll::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat__right .main .footer{padding:10px 18px;position:relative}.ai-chat__right .main .footer:before{border-top:1px solid #d5d5d5;content:"";height:0;left:0;position:absolute;top:1px;width:100%}
@@ -1,4 +1,5 @@
1
1
  import { ComponentInternalInstance } from 'vue';
2
+ import { AnyObject } from '../../../shared/types';
2
3
  import 'recorder-core/src/engine/mp3';
3
4
  import 'recorder-core/src/engine/mp3-engine';
4
5
  export default class AudioSDK {
@@ -25,11 +26,7 @@ export default class AudioSDK {
25
26
  resolve: Function;
26
27
  reject: Function;
27
28
  }, instance?: ComponentInternalInstance): void;
28
- start(instance?: ComponentInternalInstance, option?: {
29
- realTimeRecognition?: boolean;
30
- allowPunctuationMark?: boolean;
31
- timed?: number;
32
- }): Promise<unknown>;
29
+ start(instance?: ComponentInternalInstance, option?: AnyObject): Promise<unknown>;
33
30
  pause(): void;
34
31
  resume(): void;
35
32
  stop(): void;
@@ -1 +1 @@
1
- import{ref as e}from"vue";import t from"recorder-core";import"recorder-core/src/engine/mp3";import"recorder-core/src/engine/mp3-engine";import{RecordingModal as s}from"./utils/recordingModal.js";const i=class{constructor(){if(this.recordingModal=null,this.webSocket=null,this.messageHandlerQueue=[],this.recorder=null,this.contentRef=e(""),this.realTimeSendStartTime=0,this.realTimeSendBytesChunks=[],this.realTimeSendClearPrevBufferIdx=0,this.timer=null,this.option={},this.hasEventListener=!1,this.isReady=!1,i.instance)return i.instance;i.instance=this}static create(){return new i}initRecorder(){this.recorder=t({type:"mp3",sampleRate:16e3,bitRate:16,...this.option.realTimeRecognition&&this.option.recognizable?{onProcess:this.onProcess.bind(this),takeoffEncodeChunk:this.takeoffEncodeChunk.bind(this)}:{}})}async onProcess(e,t,s,i,r){0===this.realTimeSendStartTime&&(this.realTimeSendStartTime=Date.now(),this.realTimeSendBytesChunks=[],this.realTimeSendClearPrevBufferIdx=0);for(let t=this.realTimeSendClearPrevBufferIdx;t<r;t++)e[t]=null;this.realTimeSendClearPrevBufferIdx=r}async takeoffEncodeChunk(e){var t;e&&this.realTimeSendBytesChunks.push(e);const s=Date.now();if(s-this.realTimeSendStartTime<i.sendInterval)return;this.realTimeSendStartTime=s;let r=0;for(let e=0;e<this.realTimeSendBytesChunks.length;e++)r+=this.realTimeSendBytesChunks[e].length;const n=new Uint8Array(r);for(let e=0,t=0;e<this.realTimeSendBytesChunks.length;e++){const s=this.realTimeSendBytesChunks[e];n.set(s,t),t+=s.length}if(this.realTimeSendBytesChunks=[],n.length>0){const e=new Blob([n],{type:"audio/wav"});null==(t=this.webSocket)||t.send(e)}}run(e,t){this.recorder||this.initRecorder(),this.messageHandlerQueue.push(e),this.option.timed&&(this.timer=setTimeout((()=>{this.stop()}),1e3*this.option.timed)),this.recorder.open((()=>{var e;this.recorder.start(),null==(e=this.recordingModal)||e.show({instance:t,contentRef:this.contentRef,onClose:()=>this.stop()})}),((e,t)=>{this.handleError({msg:e,isUserNotAllow:t})}))}start(e,t={}){return Object.assign(this.option,{recognizable:!0,showModal:!0},t),this.option.recognizable||(this.option.showModal=!1),new Promise(((t,i)=>{if(this.messageHandlerQueue.length>0)return void i({result:"fail",msg:"当前已存在正在录音的任务"});const{showModal:r}=this.option;if(r&&!this.recordingModal&&(this.recordingModal=new s),r&&!this.hasEventListener&&(document.addEventListener("keydown",this.handleKeydown),this.hasEventListener=!0),this.option.recognizable&&!this.webSocket)return this.webSocket=new WebSocket("wss://emr-tl.cnhis.com/audio/socket"),this.webSocket.onopen=()=>{this.isReady=!0,this.run({resolve:t,reject:i},e)},this.webSocket.onmessage=this.handleMessage.bind(this),this.webSocket.onerror=()=>console.log("WebSocket连接失败"),void(this.webSocket.binaryType="blob");const n=this;!async function s(r=0){if(r>5)return i({result:"fail",msg:"WebSocket连接失败"});n.option.recognizable&&!n.isReady?setTimeout((()=>{s(++r)}),100):n.run({resolve:t,reject:i},e)}()}))}pause(){var e;null==(e=this.recorder)||e.pause()}resume(){var e;null==(e=this.recorder)||e.resume()}stop(){var e,t;if(null==(e=this.recordingModal)||e.hide(),this.option.realTimeRecognition&&this.option.recognizable){const e=this.messageHandlerQueue.shift();if(!e)return;const{resolve:t,reject:s}=e;t({result:"success",data:{text:this.contentRef.value}}),this.reset()}else null==(t=this.recorder)||t.stop((async(e,t)=>{var s;if(this.option.recognizable)null==(s=this.webSocket)||s.send(e);else{const t=this.messageHandlerQueue.shift();if(!t)return;const{resolve:s,reject:i}=t;s({result:"success",data:e}),this.reset()}}),(e=>{this.handleError({msg:e})}),!0)}handleError(e){const t=this.messageHandlerQueue.shift();if(!t)return;const{resolve:s,reject:i}=t;i({result:"fail",...e}),this.reset()}handleMessage(e){const{data:t}=e||{};if(!function(e){try{return JSON.parse(e),!0}catch(e){return!1}}(t))return void this.handleError({msg:"接收数据不是一个有效SJON"});const s=JSON.parse(t);if("success"===s.msg)if(this.option.realTimeRecognition)this.contentRef.value+=s.data.text.replace(/[??,。,.\s]/g,"");else{const e=this.messageHandlerQueue.shift();if(!e)return;const{resolve:t,reject:i}=e;t({result:"success",data:s.data.text.replace(/[??,。,.\s]/g,"")}),this.reset()}else this.handleError({msg:s.msg})}handleKeydown(e){var t,s,r,n;if(" "===e.key||"Space"===e.code){if(!(null==(s=null==(t=i.instance)?void 0:t.recordingModal)?void 0:s.rendered)||0===(null==(r=i.instance)?void 0:r.messageHandlerQueue.length))return;e.preventDefault(),null==(n=i.instance)||n.stop()}}reset(){var e;null==(e=this.recorder)||e.close(),this.realTimeSendStartTime=0,this.contentRef.value="",this.timer&&(clearTimeout(this.timer),this.timer=null),this.option={realTimeRecognition:!1,allowPunctuationMark:!0,timed:5},this.messageHandlerQueue=[]}destroy(){this.webSocket&&(this.webSocket.close(),this.webSocket=null,this.isReady=!1),document.removeEventListener("keydown",this.handleKeydown),this.hasEventListener=!1,this.reset(),this.recorder=null}static destroy(){i.instance&&(i.instance.destroy(),i.instance=null)}};let r=i;r.sendInterval=1500;export{r as default};
1
+ import{ref as e}from"vue";import t from"recorder-core";import"recorder-core/src/engine/mp3";import"recorder-core/src/engine/mp3-engine";import{RecordingModal as s}from"./utils/recordingModal.js";const i=class{constructor(){if(this.recordingModal=null,this.webSocket=null,this.messageHandlerQueue=[],this.recorder=null,this.contentRef=e(""),this.realTimeSendStartTime=0,this.realTimeSendBytesChunks=[],this.realTimeSendClearPrevBufferIdx=0,this.timer=null,this.option={},this.hasEventListener=!1,this.isReady=!1,i.instance)return i.instance;i.instance=this}static create(){return new i}initRecorder(){this.recorder=t({type:"mp3",sampleRate:16e3,bitRate:16,...this.option.realTimeRecognition&&this.option.recognizable?{onProcess:this.onProcess.bind(this),takeoffEncodeChunk:this.takeoffEncodeChunk.bind(this)}:{}})}async onProcess(e,t,s,i,r){0===this.realTimeSendStartTime&&(this.realTimeSendStartTime=Date.now(),this.realTimeSendBytesChunks=[],this.realTimeSendClearPrevBufferIdx=0);for(let t=this.realTimeSendClearPrevBufferIdx;t<r;t++)e[t]=null;this.realTimeSendClearPrevBufferIdx=r}async takeoffEncodeChunk(e){var t;e&&this.realTimeSendBytesChunks.push(e);const s=Date.now();if(s-this.realTimeSendStartTime<i.sendInterval)return;this.realTimeSendStartTime=s;let r=0;for(let e=0;e<this.realTimeSendBytesChunks.length;e++)r+=this.realTimeSendBytesChunks[e].length;const n=new Uint8Array(r);for(let e=0,t=0;e<this.realTimeSendBytesChunks.length;e++){const s=this.realTimeSendBytesChunks[e];n.set(s,t),t+=s.length}if(this.realTimeSendBytesChunks=[],n.length>0){const e=new Blob([n],{type:"audio/wav"});null==(t=this.webSocket)||t.send(e)}}run(e,t){this.recorder||this.initRecorder(),this.messageHandlerQueue.push(e),this.option.timed&&(this.timer=setTimeout((()=>{this.stop()}),1e3*this.option.timed)),this.recorder.open((()=>{var e;this.recorder.start(),null==(e=this.recordingModal)||e.show({instance:t,contentRef:this.contentRef,onClose:()=>this.stop()})}),((e,t)=>{this.handleError({msg:e,isUserNotAllow:t})}))}start(e,t){return Object.assign(this.option,{recognizable:!0,showModal:!0},t||{}),this.option.recognizable||(this.option.showModal=!1),new Promise(((t,i)=>{if(this.messageHandlerQueue.length>0)return void i({result:"fail",msg:"当前已存在正在录音的任务"});const{showModal:r}=this.option;if(r&&!this.recordingModal&&(this.recordingModal=new s),r&&!this.hasEventListener&&(document.addEventListener("keydown",this.handleKeydown),this.hasEventListener=!0),this.option.recognizable&&!this.webSocket)return this.webSocket=new WebSocket("wss://emr-tl.cnhis.com/audio/socket"),this.webSocket.onopen=()=>{this.isReady=!0,this.run({resolve:t,reject:i},e)},this.webSocket.onmessage=this.handleMessage.bind(this),this.webSocket.onerror=()=>console.log("WebSocket连接失败"),void(this.webSocket.binaryType="blob");const n=this;!async function s(r=0){if(r>5)return i({result:"fail",msg:"WebSocket连接失败"});n.option.recognizable&&!n.isReady?setTimeout((()=>{s(++r)}),100):n.run({resolve:t,reject:i},e)}()}))}pause(){var e;null==(e=this.recorder)||e.pause()}resume(){var e;null==(e=this.recorder)||e.resume()}stop(){var e,t;if(null==(e=this.recordingModal)||e.hide(),this.option.realTimeRecognition&&this.option.recognizable){const e=this.messageHandlerQueue.shift();if(!e)return;const{resolve:t,reject:s}=e;t({result:"success",data:{text:this.contentRef.value}}),this.reset()}else null==(t=this.recorder)||t.stop((async(e,t)=>{var s;if(this.option.recognizable)null==(s=this.webSocket)||s.send(e);else{const t=this.messageHandlerQueue.shift();if(!t)return;const{resolve:s,reject:i}=t;s({result:"success",data:e}),this.reset()}}),(e=>{this.handleError({msg:e})}),!0)}handleError(e){const t=this.messageHandlerQueue.shift();if(!t)return;const{resolve:s,reject:i}=t;i({result:"fail",...e}),this.reset()}handleMessage(e){const{data:t}=e||{};if(!function(e){try{return JSON.parse(e),!0}catch(e){return!1}}(t))return void this.handleError({msg:"接收数据不是一个有效SJON"});const s=JSON.parse(t);if("success"===s.msg)if(this.option.realTimeRecognition)this.contentRef.value+=s.data.text.replace(/[??,。,.\s]/g,"");else{const e=this.messageHandlerQueue.shift();if(!e)return;const{resolve:t,reject:i}=e;t({result:"success",data:s.data.text.replace(/[??,。,.\s]/g,"")}),this.reset()}else this.handleError({msg:s.msg})}handleKeydown(e){var t,s,r,n;if(" "===e.key||"Space"===e.code){if(!(null==(s=null==(t=i.instance)?void 0:t.recordingModal)?void 0:s.rendered)||0===(null==(r=i.instance)?void 0:r.messageHandlerQueue.length))return;e.preventDefault(),null==(n=i.instance)||n.stop()}}reset(){var e;null==(e=this.recorder)||e.close(),this.realTimeSendStartTime=0,this.contentRef.value="",this.timer&&(clearTimeout(this.timer),this.timer=null),this.option={realTimeRecognition:!1,allowPunctuationMark:!0,timed:5},this.messageHandlerQueue=[]}destroy(){this.webSocket&&(this.webSocket.close(),this.webSocket=null,this.isReady=!1),document.removeEventListener("keydown",this.handleKeydown),this.hasEventListener=!1,this.reset(),this.recorder=null}static destroy(){i.instance&&(i.instance.destroy(),i.instance=null)}};let r=i;r.sendInterval=1500;export{r as default};