cnhis-design-vue 3.2.18-beta.9 → 3.2.19-beta.3

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.
Files changed (110) hide show
  1. package/es/components/ai-chat/index.d.ts +17 -129
  2. package/es/components/ai-chat/src/Index.vue.d.ts +17 -129
  3. package/es/components/ai-chat/src/Index.vue2.js +1 -1
  4. package/es/components/ai-chat/src/components/ChatBI.vue.d.ts +2 -2
  5. package/es/components/ai-chat/src/components/ChatBI.vue2.js +1 -1
  6. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  7. package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +2 -50
  8. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  9. package/es/components/ai-chat/src/components/ChatMain.d.ts +7 -1
  10. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  11. package/es/components/ai-chat/src/utils/index.d.ts +0 -1
  12. package/es/components/ai-chat/src/utils/index.js +1 -1
  13. package/es/components/ai-chat/style/index.css +1 -1
  14. package/es/components/audio-sdk/src/audioSDK.d.ts +7 -6
  15. package/es/components/audio-sdk/src/audioSDK.js +1 -1
  16. package/es/components/audio-sdk/src/utils/recordingModal.d.ts +1 -2
  17. package/es/components/audio-sdk/src/utils/recordingModal.js +1 -1
  18. package/es/components/{template-render → card-render}/index.d.ts +2 -2
  19. package/es/components/card-render/index.js +1 -0
  20. package/es/components/card-render/src/CardRender.vue.js +1 -0
  21. package/es/components/card-render/src/CardRender.vue2.js +1 -0
  22. package/es/components/{template-render → card-render}/src/components/Button.vue2.js +1 -1
  23. package/es/components/card-render/src/components/Field.vue2.js +1 -0
  24. package/es/components/{template-render → card-render}/src/components/FieldGroup.vue2.js +1 -1
  25. package/es/components/{template-render → card-render}/src/components/Label.vue2.js +1 -1
  26. package/es/components/card-render/src/components/Row.vue2.js +1 -0
  27. package/es/components/card-render/src/components/Text.vue2.js +1 -0
  28. package/es/components/card-render/style/index.css +1 -0
  29. package/es/components/editor/src/Editor.js +1 -1
  30. package/es/components/editor/style/index.css +0 -1
  31. package/es/components/field-editor/src/fields.js +1 -1
  32. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  33. package/es/components/form-render/src/components/renderer/combination/jsonCombination.js +1 -1
  34. package/es/components/form-render/src/components/renderer/inputNumber.d.ts +15 -1
  35. package/es/components/form-render/src/components/renderer/inputNumber.js +1 -1
  36. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/inputRendererPlugin.js +1 -1
  37. package/es/components/iho-table/src/plugins/verticalTablePlugin/src/hooks/index.js +1 -1
  38. package/es/components/iho-table/src/plugins/verticalTablePlugin/src/renderer.js +1 -1
  39. package/es/components/iho-table/src/plugins/verticalTablePlugin/src/utils.d.ts +1 -1
  40. package/es/components/iho-table/src/plugins/verticalTablePlugin/src/utils.js +1 -1
  41. package/es/components/iho-table/src/types/index.d.ts +5 -0
  42. package/es/components/index.css +1 -1
  43. package/es/components/index.d.ts +2 -2
  44. package/es/components/index.js +1 -1
  45. package/es/components/shortcut-provider/src/hooks/useShortcuts.js +1 -1
  46. package/es/components/shortcut-provider/src/types/index.d.ts +2 -0
  47. package/es/components/shortcut-provider/src/utils/index.d.ts +1 -1
  48. package/es/components/shortcut-provider/src/utils/index.js +1 -1
  49. package/es/shared/package.json.js +1 -1
  50. package/package.json +2 -2
  51. package/es/components/ai-chat/src/api/index.d.ts +0 -5
  52. package/es/components/ai-chat/src/api/index.js +0 -1
  53. package/es/components/ai-chat/src/components/ChatAudio.vue.d.ts +0 -40
  54. package/es/components/ai-chat/src/components/ChatAudio.vue.js +0 -1
  55. package/es/components/ai-chat/src/components/ChatAudio.vue2.js +0 -1
  56. package/es/components/ai-chat/src/components/ChatMainInner.d.ts +0 -2
  57. package/es/components/ai-chat/src/components/ChatMainInner.js +0 -1
  58. package/es/components/ai-chat/src/components/ChatRight.vue.d.ts +0 -56
  59. package/es/components/ai-chat/src/components/ChatRight.vue.js +0 -1
  60. package/es/components/ai-chat/src/components/ChatRight.vue2.js +0 -1
  61. package/es/components/ai-chat/src/components/card/JsonCard.d.ts +0 -25
  62. package/es/components/ai-chat/src/components/card/JsonCard.js +0 -1
  63. package/es/components/ai-chat/src/components/card/SelectIcon.d.ts +0 -14
  64. package/es/components/ai-chat/src/components/card/SelectIcon.js +0 -1
  65. package/es/components/ai-chat/src/hooks/useProgram.d.ts +0 -6
  66. package/es/components/ai-chat/src/hooks/useProgram.js +0 -1
  67. package/es/components/ai-chat/src/hooks/useWebsocket.d.ts +0 -2
  68. package/es/components/ai-chat/src/hooks/useWebsocket.js +0 -1
  69. package/es/components/template-render/index.js +0 -1
  70. package/es/components/template-render/src/TemplateRender.vue.js +0 -1
  71. package/es/components/template-render/src/TemplateRender.vue2.js +0 -1
  72. package/es/components/template-render/src/components/Field.vue2.js +0 -1
  73. package/es/components/template-render/src/components/Row.vue2.js +0 -1
  74. package/es/components/template-render/src/components/Text.vue2.js +0 -1
  75. package/es/components/template-render/style/index.css +0 -1
  76. package/es/shared/assets/img/file-emr.png.js +0 -1
  77. package/es/shared/assets/img/file.png.js +0 -1
  78. package/es/shared/assets/img/use.png.js +0 -1
  79. /package/es/components/{template-render/src/TemplateRender.vue.d.ts → card-render/src/CardRender.vue.d.ts} +0 -0
  80. /package/es/components/{template-render → card-render}/src/components/Box.vue.d.ts +0 -0
  81. /package/es/components/{template-render → card-render}/src/components/Box.vue.js +0 -0
  82. /package/es/components/{template-render → card-render}/src/components/Box.vue2.js +0 -0
  83. /package/es/components/{template-render → card-render}/src/components/Button.vue.d.ts +0 -0
  84. /package/es/components/{template-render → card-render}/src/components/Button.vue.js +0 -0
  85. /package/es/components/{template-render → card-render}/src/components/Divider.vue.d.ts +0 -0
  86. /package/es/components/{template-render → card-render}/src/components/Divider.vue.js +0 -0
  87. /package/es/components/{template-render → card-render}/src/components/Divider.vue2.js +0 -0
  88. /package/es/components/{template-render → card-render}/src/components/Field.vue.d.ts +0 -0
  89. /package/es/components/{template-render → card-render}/src/components/Field.vue.js +0 -0
  90. /package/es/components/{template-render → card-render}/src/components/FieldGroup.vue.d.ts +0 -0
  91. /package/es/components/{template-render → card-render}/src/components/FieldGroup.vue.js +0 -0
  92. /package/es/components/{template-render → card-render}/src/components/Image.vue.d.ts +0 -0
  93. /package/es/components/{template-render → card-render}/src/components/Image.vue.js +0 -0
  94. /package/es/components/{template-render → card-render}/src/components/Image.vue2.js +0 -0
  95. /package/es/components/{template-render → card-render}/src/components/Label.vue.d.ts +0 -0
  96. /package/es/components/{template-render → card-render}/src/components/Label.vue.js +0 -0
  97. /package/es/components/{template-render → card-render}/src/components/Row.vue.d.ts +0 -0
  98. /package/es/components/{template-render → card-render}/src/components/Row.vue.js +0 -0
  99. /package/es/components/{template-render → card-render}/src/components/Slot.d.ts +0 -0
  100. /package/es/components/{template-render → card-render}/src/components/Slot.js +0 -0
  101. /package/es/components/{template-render → card-render}/src/components/Text.vue.d.ts +0 -0
  102. /package/es/components/{template-render → card-render}/src/components/Text.vue.js +0 -0
  103. /package/es/components/{template-render → card-render}/src/components/index.d.ts +0 -0
  104. /package/es/components/{template-render → card-render}/src/components/index.js +0 -0
  105. /package/es/components/{template-render → card-render}/src/constants/index.d.ts +0 -0
  106. /package/es/components/{template-render → card-render}/src/constants/index.js +0 -0
  107. /package/es/components/{template-render → card-render}/src/hooks/useCommon.d.ts +0 -0
  108. /package/es/components/{template-render → card-render}/src/hooks/useCommon.js +0 -0
  109. /package/es/components/{template-render → card-render}/src/utils/index.d.ts +0 -0
  110. /package/es/components/{template-render → card-render}/src/utils/index.js +0 -0
@@ -2,12 +2,6 @@ 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
- }[];
9
- programMethod: (bpmnProcessId: string, params: AnyObject) => Promise<any>;
10
- MedicalOrderId: string;
11
5
  cssVars: import("vue").ComputedRef<AnyObject>;
12
6
  audioSdk: CAudioSDK;
13
7
  emit: (event: string, ...args: any[]) => void;
@@ -16,8 +10,6 @@ declare const _default: import("vue").DefineComponent<{}, {
16
10
  isSmall: any;
17
11
  audioTimed: any;
18
12
  commandList: any;
19
- isInner: any;
20
- patientInfo: any;
21
13
  inputRef: import("vue").Ref<any>;
22
14
  showPopover: import("vue").Ref<boolean>;
23
15
  breadcrumb: import("vue").Ref<{
@@ -37,15 +29,13 @@ declare const _default: import("vue").DefineComponent<{}, {
37
29
  showPrompt: import("vue").Ref<boolean>;
38
30
  currentShortcutId: import("vue").Ref<string>;
39
31
  showPatient: import("vue").Ref<boolean>;
40
- showAudio: import("vue").Ref<boolean>;
41
- placeholder: import("vue").ComputedRef<"请向我提问,Shift+Enter换行" | "请向我提问或输入\"/\"查看指令" | "请向我提问或输入\"/\"查看指令,Shift+Enter换行">;
32
+ placeholder: import("vue").ComputedRef<"请向我提问或输入\"/\"查看指令" | "请向我提问或输入\"/\"查看指令,Shift+Enter换行">;
42
33
  btnDisabled: import("vue").ComputedRef<any>;
43
34
  showMagicWand: import("vue").ComputedRef<boolean>;
44
35
  patient: import("vue").ComputedRef<string>;
45
- currentShortcutList: import("vue").ComputedRef<any>;
46
36
  recorderStart: () => Promise<void>;
47
37
  getShortcutName: (item: string | AnyObject) => any;
48
- handleShortcut: (item: string | AnyObject) => Promise<void>;
38
+ handleShortcut: (item: string | AnyObject) => void;
49
39
  resetCurrentCommand: () => void;
50
40
  handleKeyDown: (event: KeyboardEvent) => void;
51
41
  isWrap: (event: KeyboardEvent) => boolean;
@@ -165,43 +155,5 @@ declare const _default: import("vue").DefineComponent<{}, {
165
155
  }, {
166
156
  show: boolean;
167
157
  }>;
168
- ChatAudio: import("vue").DefineComponent<{
169
- show: {
170
- type: BooleanConstructor;
171
- };
172
- }, {
173
- audioSdk: CAudioSDK;
174
- props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
175
- show: {
176
- type: BooleanConstructor;
177
- };
178
- }>> & {
179
- "onUpdate:show"?: ((...args: any[]) => any) | undefined;
180
- }>>;
181
- emit: (event: "update:show", ...args: any[]) => void;
182
- state: any;
183
- time: import("vue").Ref<number>;
184
- pause: import("@vueuse/shared").Fn;
185
- resume: import("@vueuse/shared").Fn;
186
- isActive: import("vue").Ref<boolean>;
187
- tip: import("vue").ComputedRef<"正在录音中..." | "录音已暂停">;
188
- formattedTime: import("vue").ComputedRef<string>;
189
- start: () => Promise<void>;
190
- handlePause: () => void;
191
- handlePlay: () => void;
192
- handleEnd: () => Promise<void>;
193
- NSpace: any;
194
- NButton: any;
195
- NIcon: any;
196
- StopCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
197
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:show"[], "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
198
- show: {
199
- type: BooleanConstructor;
200
- };
201
- }>> & {
202
- "onUpdate:show"?: ((...args: any[]) => any) | undefined;
203
- }, {
204
- show: boolean;
205
- }>;
206
158
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
207
159
  export default _default;
@@ -1 +1 @@
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
+ import{defineComponent as e,inject as t,ref as o,computed as n,onBeforeUnmount as l,watch as s,openBlock as a,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 p,createCommentVNode as f,Fragment as k,renderList as w,createSlots as g,withModifiers as C,getCurrentInstance as y}from"vue";import{NButton as b,NIcon as x,NPopover as _,NInput as I,NTag as j,NBreadcrumb as z,NBreadcrumbItem as P}from"naive-ui";import{PeopleOutline as D,SparklesSharp as M,PaperPlane as T,ChevronBack as K,ChevronForward as L}from"@vicons/ionicons5";import{InjectionAIChatEmits as S,InjectionAIChat as B}from"../types/index.js";import U from"../../../audio-sdk/src/audioSDK.js";import{cloneDeep as A,isString as R,last as E}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 F from"./ChatPrompt.vue.js";import N from"./ChatPatient.vue.js";const q={class:"menu-box fillet-8"},H={class:"input-wrapper fillet-10"},V=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),G={key:0,class:"btn-box"},J=["disabled"],O={class:"command-box"},Q={class:"command-box__header"},X={key:0,class:"title"},Y={class:"command-box__menu"},Z=["onMouseover","onClick"],$={class:"label"},ee={class:"remark"};var te=e({__name:"ChatFooter",setup(e){const te=W(),oe=U.create(),ne=t(S),{shortcutList:le,state:se,isSmall:ae,audioTimed:ie,commandList:re}=t(B),ue=o(),de=o(!1),ce=o([]),ve=o(A(re.value||[])),me=o(!1),he=o(""),pe=o(!1),fe=n((()=>ae?'请向我提问或输入"/"查看指令':'请向我提问或输入"/"查看指令,Shift+Enter换行')),ke=n((()=>se.loading||!se.sendContent.replace(/(&nbsp;|\s|<br>)+/g,""))),we=n((()=>{var e;return!se.sendContent&&!(null==(e=ue.value)?void 0:e.activated.value)})),ge=n((()=>{var e,t;if(!se.selectedPatient)return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.190"))||"选择患者";const{bcq04b:o,vaa05:n}=se.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 Ce(){try{const e=await oe.start(y(),{allowPunctuationMark:!1,timed:ie.value||10,realTimeRecognition:!0});if("success"!==(null==e?void 0:e.result))return;const{text:t}=e.data;se.sendContent=t}catch(e){console.log(e)}}function ye(e){var t;if(R(e))return e;const{content:o}=(null==(t=null==e?void 0:e.contents)?void 0:t[0])||{};return o.instructionName}function be(){var e;de.value=!1,ve.value=A(re.value||[]),ce.value=[],(null==(e=re.value)?void 0:e.length)&&(de.value=!0,he.value=ve.value[0].shortcutId)}function xe(e){if(!["Slash","NumpadDivide"].includes(e.code)||se.selectedCommand||se.sendContent)if("Backspace"===e.key)de.value=!1,!se.sendContent.startsWith("/")&&!se.sendContent.startsWith("、")||2!==se.sendContent.length||se.selectedCommand?!se.sendContent&&se.selectedCommand&&(e.preventDefault(),se.selectedCommand=null,se.sendContent="/",be()):be();else if(de.value&&["ArrowUp","ArrowDown"].includes(e.key)){const t=ve.value.findIndex((e=>e.shortcutId===he.value));if("ArrowUp"===e.key){const e=t>0?t-1:ve.value.length-1;he.value=ve.value[e].shortcutId}else if("ArrowDown"===e.key){const e=t<ve.value.length-1?t+1:0;he.value=ve.value[e].shortcutId}}else if(["Enter"].includes(e.key)){if(!function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e))if(e.preventDefault(),de.value){je(ve.value.find((e=>e.shortcutId===he.value)))}else Ie()}else de.value=!1;else be()}function _e(e){!e&&se.selectedPrompt&&(se.selectedPrompt=null)}function Ie(){ke.value||(se.sending=!0,se.loading=!0)}function je(e){var t;he.value=e.shortcutId,ue.value.focus(),(null==(t=e.children)?void 0:t.length)?(ve.value=e.children,he.value=ve.value[0].shortcutId,ce.value.push(e)):(se.selectedCommand=e||{},de.value=!1,se.sendContent="")}function ze(){var e;ce.value.pop(),ve.value=E(ce.value)?null==(e=E(ce.value))?void 0:e.children:A(re.value||[]),he.value=ve.value[0].shortcutId,ue.value.focus()}function Pe(e){e||(se.showPatient=!1)}return l((()=>{oe.destroy()})),s((()=>se.showPatient),(e=>{e&&(pe.value=e)})),(e,t)=>(a(),i("section",{class:r(["chat-footer",u(se).loading?"disabled":""])},[d("div",q,[u(ae)?f("v-if",!0):(a(),c(u(b),{key:0,secondary:"",size:"small",onClick:t[0]||(t[0]=()=>pe.value=!0)},{icon:v((()=>[m(u(x),{color:u(te)["--c-primary-color"],size:"20",component:u(D)},null,8,["color","component"])])),default:v((()=>[h(" "+p(u(ge)),1)])),_:1})),u(le)&&u(le).length>0?(a(!0),i(k,{key:1},w(u(le),(e=>(a(),c(u(b),{secondary:"",size:"small",round:u(ae),key:ye(e),onClick:()=>function(e){var t;if(R(e))se.sendContent=e;else{const o=null==(t=null==e?void 0:e.contents)?void 0:t[0];ne("button-click",{msgItem:o,item:e})}}(e)},{default:v((()=>[h(p(ye(e)),1)])),_:2},1032,["round","onClick"])))),128)):f("v-if",!0)]),m(u(_),{"content-style":"height: 400px",placement:"top-start",trigger:"manual",width:"trigger","show-arrow":!1,to:!1,show:de.value,onClickoutside:t[3]||(t[3]=e=>de.value=!1)},{trigger:v((()=>[d("div",H,[m(u(I),{ref_key:"inputRef",ref:ue,placeholder:u(fe),type:"textarea",autosize:{minRows:u(ae)?1:2,maxRows:7},disabled:u(se).loading,value:u(se).sendContent,"onUpdate:value":t[2]||(t[2]=e=>u(se).sendContent=e),onKeydownCapture:xe,onInput:_e},g({prefix:v((()=>[u(se).selectedCommand&&u(se).selectedCommand.shortcutTitle?(a(),c(u(j),{key:0,bordered:!1,color:{textColor:u(te)["--c-primary-color"]},style:{"--n-border-radius":"5px"}},{default:v((()=>[h(" /"+p(u(se).selectedCommand.shortcutTitle),1)])),_:1},8,["color"])):u(we)?(a(),c(u(b),{key:1,text:"",onClick:t[1]||(t[1]=()=>me.value=!0)},{default:v((()=>[m(u(x),{color:"#8f66f7",size:"18",component:u(M)},null,8,["component"])])),_:1})):f("v-if",!0)])),_:2},[u(ae)?{name:"suffix",fn:v((()=>[m(u(b),{text:"",disabled:u(se).loading,onClick:Ce},{icon:v((()=>[m(u(x),{size:"30"},{default:v((()=>[V])),_:1})])),_:1},8,["disabled"]),m(u(b),{circle:"",class:"gradient",style:{"margin-left":"10px"},disabled:u(ke),onClick:Ie},{icon:v((()=>[m(u(x),{color:"#fff",size:"20",component:u(T)},null,8,["component"])])),_:1},8,["disabled"])])),key:"0"}:void 0]),1032,["placeholder","autosize","disabled","value"]),u(ae)?f("v-if",!0):(a(),i("div",G,[d("span",{class:r(["btn-send","gradient","fillet-8",u(ke)?"disabled":""]),disabled:u(ke),onClick:Ie},[m(u(x),{color:"#fff",size:"22",component:u(T)},null,8,["component"])],10,J)]))])])),default:v((()=>{var e;return[d("div",O,[d("div",Q,[0===ce.value.length?(a(),i("span",X,(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.189"))||"推荐指令")):(a(),i(k,{key:1},[m(u(b),{text:"",onClick:ze},{default:v((()=>[m(u(x),{color:"#999",size:"20",component:u(K)},null,8,["component"])])),_:1}),m(u(z),null,{default:v((()=>[(a(!0),i(k,null,w(ce.value,(e=>(a(),c(u(P),{key:e.shortcutId},{default:v((()=>[h(p(e.shortcutTitle),1)])),_:2},1024)))),128))])),_:1})],64))]),d("div",Y,[(a(!0),i(k,null,w(ve.value,(e=>(a(),i("div",{class:r(["menu-item",e.children&&e.children.length?"":"selectable",he.value===e.shortcutId?"selected":""]),key:e.shortcutId,onMouseover:C((()=>he.value=e.shortcutId),["stop"]),onClick:()=>je(e)},[d("span",$,p(e.shortcutTitle),1),d("span",ee,p(e.shortcutDescription),1),e.children&&e.children.length?(a(),c(u(x),{key:0,color:"#999",size:"20",component:u(L)},null,8,["component"])):f("v-if",!0)],42,Z)))),128))])])]})),_:1},8,["show"]),m(F,{show:me.value,"onUpdate:show":t[4]||(t[4]=e=>me.value=e)},null,8,["show"]),m(N,{show:pe.value,"onUpdate:show":[t[5]||(t[5]=e=>pe.value=e),Pe]},null,8,["show"])],2))}});export{te as default};
@@ -1,2 +1,8 @@
1
- declare const _default: 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<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<Readonly<import("vue").ComponentPropsOptions<{
2
+ [x: string]: unknown;
3
+ }>>, () => JSX.Element[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, never[], never, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<readonly string[] | import("vue").ExtractPropTypes<Readonly<import("vue").ComponentObjectPropsOptions<{
4
+ [x: string]: unknown;
5
+ }>>>> & {}, {
6
+ readonly [x: number]: string;
7
+ } | {}>;
2
8
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,inject as n,ref as t,computed as l,watch as o,createVNode as s,createTextVNode as a,nextTick as i,isVNode as u}from"vue";import{NAvatar as r,NSpin as d,NSpace as c,NButton as v}from"naive-ui";import{InjectionAIChatEmits as m,InjectionAIChat as g}from"../types/index.js";import p from"../../../../shared/assets/img/ai__avatar.png.js";import f from"../../../../shared/assets/img/logo.png.js";import{isArray as h,isFunction as w,has as b}from"lodash-es";import{uuidGenerator as y}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 C}from"../../../../shared/hooks/useScrollLoading.js";import I from"./ChatCard.js";import{isValidJSON as j}from"../utils/index.js";import x from"./ChatBI.vue.js";function k(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!u(e)}var L=e({name:"ChatMain",inheritAttrs:!1,setup(e,{attrs:u,slots:L,emit:T}){const B=n(m),{userAvatar:E,queryData:P,state:S,queryRecord:z,defaultShortcutList:M,hideInput:D=!1,isSmall:O}=n(g),A=t(null),q=t([]),H=t(!1),N=t(!1),R=t(),U=l((()=>O.value?f:p)),_={page:0,hasMore:!0};async function F(e=!1){if(!_.hasMore)return;_.page++,1==_.page&&(q.value=[]);const{records:n,rows:t}=await z.value({page:_.page});h(t)&&q.value.length<=+n&&(q.value=_.page>1?[...q.value,...t]:t,K(),q.value.length>=+n&&(e&&(H.value=!0),_.hasMore=!1,console.log("没有更多消息了")))}async function J(){var e,n;q.value.unshift({msgId:y(),contents:[{role:"user",content:S.sendContent}]}),null==(e=A.value)||e.scrollTo({top:0,behavior:"auto"}),K();const t=S.selectedCommand,l=S.selectedPrompt;S.selectedCommand=null,S.selectedPrompt=null;const o=await P.value({content:S.sendContent,contentType:"text",command:t,prompt:l,patient:S.selectedPatient});h(null==o?void 0:o.contents)&&(q.value.unshift(o),await i(),null==(n=A.value)||n.scrollTo({top:0,behavior:"auto"})),S.selectedPatientLabel="",S.selectedPatientForm=null,S.sending=!1,S.loading=!1,S.sendContent=""}function G(e,n,t){if(e.type!==n){if(e.childrens&&e.childrens.length)for(let l=0;l<e.childrens.length;l++)G(e.childrens[l],n,t)}else t.push(e)}function K(){q.value.forEach((e=>{e.contents.forEach((e=>{var n;if(Reflect.has(e,"disabled")||(e.disabled=!0),"json"===e.contentType&&"string"!=typeof e.content){const{settings:t,data:l,needConfirms:o}=e.content;if(o||!(null==t?void 0:t.setting)||!j(null==t?void 0:t.setting)||!(null==(n=null==l?void 0:l.buttonList)?void 0:n.length))return;const{templates:s=[]}=JSON.parse(t.setting),a=[];s.forEach((e=>{G(e,"BUTTON",a)})),a.forEach((e=>{const{buttonList:n}=e.setting;n.forEach((e=>{var n;const{conditions:t=[]}=(null==(n=null==e?void 0:e.advancedConfig)?void 0:n.disabled)||{};t.length&&(l[e.id+"Disabled"]="1")}))}))}}))}))}function Q(e,n,t,l){const{contentType:o,content:a}=n;return"json"===o&&a?s(I,{selectParams:{taskId:e.taskId,instructionId:e.instructionId},msgItem:n,configs:t,msgId:l,"onButton-click":(t={})=>function(e){var n;const{item:t,msgItem:l,showMore:o}=e;return o?(R.value={item:t,msgItem:l},void(N.value=!0)):l?(B("button-click",e),void(l.disabled=!0)):void(t.link||(S.sendContent=(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.27"))||"确定",S.sending=!0,S.loading=!0))}({item:e,msgItem:n,...t})},null):null}function V(e,n){const{contents:t=[],buttonType:l="",configs:o={},msgId:a=""}=e,i=Q(e,t[n],o,a);if(i)return i;return[t[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 W({role:e=""}){return"user"===e}function X(){var e,n;let t;return s("div",{class:"message-item"},[s(r,{round:!0,size:O.value?64:40,src:U.value},null),s("div",{class:"content-box"},[s("div",{class:"content fillet-10 default"},[s("h2",null,[a((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.192"))||"Hi,我是你的AI助理")]),s("p",null,[a("我汇集了医生站/护士站各项智能服务,可以向我进行提问哦 ~ "),s("br",null,null),a("你的反馈助我成长,期待我们一起探索未来!下次可以在首页和应用页找到我~")]),h(M.value)&&M.value.length>0?[s("p",{style:"margin: 5px 0 5px"},[a((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.195"))||"你可以试着问我:")]),s(c,{"wrap-item":!1},k(t=M.value.map((e=>s(v,{size:"large",secondary:!0,onClick:()=>S.sendContent=e,disabled:S.loading},k(e)?e:{default:()=>[e]}))))?t:{default:()=>[t]})]:null])])])}return C(A,(()=>{F()}),D.value?"bottom":"top"),F(!0),o((()=>S.externalData),(e=>{var n,t;e&&(b(n=e,"msgId")||(n.msgId=y()),q.value.unshift(n),null==(t=A.value)||t.scrollTo({top:0,behavior:"auto"}),S.loading=!1,S.externalData=null)})),o((()=>S.sending),(e=>{var n,t,l,o,s,a,i;if(e){if(q.value.length>0&&[(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.428"))||"确认",(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.27"))||"确定"].includes(S.sendContent)){const e=null==(s=null==(l=q.value[0])?void 0:l.contents)?void 0:s[(null==(o=q.value[0].contents)?void 0:o.length)-1];return(null==(a=e.content)?void 0:a.body)&&!e.disabled?(null==(i=document.getElementById(q.value[0].msgId))||i.click(),void setTimeout((()=>{q.value.unshift({msgId:y(),contents:[{role:"user",content:S.sendContent}]}),S.selectedCommand=null,S.selectedPrompt=null,S.sending=!1,S.sendContent=""}))):void J()}J()}})),()=>[s("section",{class:"chat-main",ref:A,style:{"flex-direction":D.value?"column":"column-reverse"}},[[S.loading?s("div",{class:"message-item"},[[O.value?null:s(r,{round:!0,size:40,src:U.value},null),s("div",{class:"content-box"},[s("div",{class:"content loading"},[s(d,{size:22,stroke:"#4170EE"},null),s("span",null,[a("正在加载中,请稍等...")])])])]]):null,q.value.map((e=>e.contents.map(((n,t)=>s("div",{class:"message-item",key:e.msgId+t},[[O.value?null:s(r,{round:!0,size:40,src:W(n)?E.value:U.value},null),s("div",{class:["content-box",W(n)?"mine":""]},[s("div",{class:"content"},[w(n.render)?n.render():V(e,t)])])]]))))),H.value?X():null]]),s(x,{show:N.value,"onUpdate:show":e=>N.value=e,data:R.value},null)]}});export{L as default};
1
+ import{defineComponent as e,inject as n,ref as t,computed as l,watch as o,createVNode as s,createTextVNode as a,nextTick as i,isVNode as u}from"vue";import{NAvatar as r,NSpin as d,NSpace as c,NButton as v}from"naive-ui";import{InjectionAIChatEmits as m,InjectionAIChat as g}from"../types/index.js";import p from"../../../../shared/assets/img/ai__avatar.png.js";import f from"../../../../shared/assets/img/logo.png.js";import{isArray as h,isFunction as w,has as b}from"lodash-es";import{uuidGenerator as y}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 C}from"../../../../shared/hooks/useScrollLoading.js";import I from"./ChatCard.js";import{isValidJSON as j}from"../utils/index.js";import x from"./ChatBI.vue.js";function k(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!u(e)}var L=e({name:"ChatMain",inheritAttrs:!1,props:{},emits:[],setup(e,{attrs:u,slots:L,emit:T}){const B=n(m),{userAvatar:E,queryData:P,state:S,queryRecord:z,defaultShortcutList:M,hideInput:D=!1,isSmall:O}=n(g),A=t(null),q=t([]),H=t(!1),N=t(!1),R=t(),U=l((()=>O.value?f:p)),_={page:0,hasMore:!0};async function F(e=!1){if(!_.hasMore)return;_.page++,1==_.page&&(q.value=[]);const{records:n,rows:t}=await z.value({page:_.page});h(t)&&q.value.length<=+n&&(q.value=_.page>1?[...q.value,...t]:t,K(),q.value.length>=+n&&(e&&(H.value=!0),_.hasMore=!1,console.log("没有更多消息了")))}async function J(){var e,n;q.value.unshift({msgId:y(),contents:[{role:"user",content:S.sendContent}]}),null==(e=A.value)||e.scrollTo({top:0,behavior:"auto"}),K();const t=S.selectedCommand,l=S.selectedPrompt;S.selectedCommand=null,S.selectedPrompt=null;const o=await P.value({content:S.sendContent,contentType:"text",command:t,prompt:l,patient:S.selectedPatient});h(null==o?void 0:o.contents)&&(q.value.unshift(o),await i(),null==(n=A.value)||n.scrollTo({top:0,behavior:"auto"})),S.selectedPatientLabel="",S.selectedPatientForm=null,S.sending=!1,S.loading=!1,S.sendContent=""}function G(e,n,t){if(e.type!==n){if(e.childrens&&e.childrens.length)for(let l=0;l<e.childrens.length;l++)G(e.childrens[l],n,t)}else t.push(e)}function K(){q.value.forEach((e=>{e.contents.forEach((e=>{var n;if(Reflect.has(e,"disabled")||(e.disabled=!0),"json"===e.contentType&&"string"!=typeof e.content){const{settings:t,data:l,needConfirms:o}=e.content;if(o||!(null==t?void 0:t.setting)||!j(null==t?void 0:t.setting)||!(null==(n=null==l?void 0:l.buttonList)?void 0:n.length))return;const{templates:s=[]}=JSON.parse(t.setting),a=[];s.forEach((e=>{G(e,"BUTTON",a)})),a.forEach((e=>{const{buttonList:n}=e.setting;n.forEach((e=>{var n;const{conditions:t=[]}=(null==(n=null==e?void 0:e.advancedConfig)?void 0:n.disabled)||{};t.length&&(l[e.id+"Disabled"]="1")}))}))}}))}))}function Q(e,n,t,l){const{contentType:o,content:a}=n;return"json"===o&&a?s(I,{selectParams:{taskId:e.taskId,instructionId:e.instructionId},msgItem:n,configs:t,msgId:l,"onButton-click":(t={})=>function(e){var n;const{item:t,msgItem:l,showMore:o}=e;return o?(R.value={item:t,msgItem:l},void(N.value=!0)):l?(B("button-click",e),void(l.disabled=!0)):void(t.link||(S.sendContent=(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.27"))||"确定",S.sending=!0,S.loading=!0))}({item:e,msgItem:n,...t})},null):null}function V(e,n){const{contents:t=[],buttonType:l="",configs:o={},msgId:a=""}=e,i=Q(e,t[n],o,a);if(i)return i;return[t[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 W({role:e=""}){return"user"===e}function X(){var e,n;let t;return s("div",{class:"message-item"},[s(r,{round:!0,size:O.value?64:40,src:U.value},null),s("div",{class:"content-box"},[s("div",{class:"content fillet-10 default"},[s("h2",null,[a((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.192"))||"Hi,我是你的AI助理")]),s("p",null,[a("我汇集了医生站/护士站各项智能服务,可以向我进行提问哦 ~ "),s("br",null,null),a("你的反馈助我成长,期待我们一起探索未来!下次可以在首页和应用页找到我~")]),h(M.value)&&M.value.length>0?[s("p",{style:"margin: 5px 0 5px"},[a((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.195"))||"你可以试着问我:")]),s(c,{"wrap-item":!1},k(t=M.value.map((e=>s(v,{size:"large",secondary:!0,onClick:()=>S.sendContent=e,disabled:S.loading},k(e)?e:{default:()=>[e]}))))?t:{default:()=>[t]})]:null])])])}return C(A,(()=>{F()}),D.value?"bottom":"top"),F(!0),o((()=>S.externalData),(e=>{var n,t;e&&(b(n=e,"msgId")||(n.msgId=y()),q.value.unshift(n),null==(t=A.value)||t.scrollTo({top:0,behavior:"auto"}),S.loading=!1,S.externalData=null)})),o((()=>S.sending),(e=>{var n,t,l,o,s,a,i;if(e){if(q.value.length>0&&[(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.428"))||"确认",(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.27"))||"确定"].includes(S.sendContent)){const e=null==(s=null==(l=q.value[0])?void 0:l.contents)?void 0:s[(null==(o=q.value[0].contents)?void 0:o.length)-1];return(null==(a=e.content)?void 0:a.body)&&!e.disabled?(null==(i=document.getElementById(q.value[0].msgId))||i.click(),void setTimeout((()=>{q.value.unshift({msgId:y(),contents:[{role:"user",content:S.sendContent}]}),S.selectedCommand=null,S.selectedPrompt=null,S.sending=!1,S.sendContent=""}))):void J()}J()}})),()=>[s("section",{class:"chat-main",ref:A,style:{"flex-direction":D.value?"column":"column-reverse"}},[[S.loading?s("div",{class:"message-item"},[[O.value?null:s(r,{round:!0,size:40,src:U.value},null),s("div",{class:"content-box"},[s("div",{class:"content loading"},[s(d,{size:22,stroke:"#4170EE"},null),s("span",null,[a("正在加载中,请稍等...")])])])]]):null,q.value.map((e=>e.contents.map(((n,t)=>s("div",{class:"message-item",key:e.msgId+t},[[O.value?null:s(r,{round:!0,size:40,src:W(n)?E.value:U.value},null),s("div",{class:["content-box",W(n)?"mine":""]},[s("div",{class:"content"},[w(n.render)?n.render():V(e,t)])])]]))))),H.value?X():null]]),s(x,{show:N.value,"onUpdate:show":e=>N.value=e,data:R.value},null)]}});export{L as default};
@@ -1,2 +1 @@
1
- export declare const $message: import("naive-ui").MessageApi;
2
1
  export declare function isValidJSON(str: string): boolean;
@@ -1 +1 @@
1
- import{createDiscreteApi as e}from"naive-ui";const{message:r}=e(["message"]);function t(e){try{return JSON.parse(e),!0}catch(e){return!1}}export{r as $message,t as isValidJSON};
1
+ function r(r){try{return JSON.parse(r),!0}catch(r){return!1}}export{r as isValidJSON};
@@ -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,.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
+ .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-card-render{box-sizing:border-box;color:#000;font-size:0;line-height:1.6}.c-card-render__flex{display:flex}.c-card-render__flexAlignCenter{align-items:center}.c-card-render__flex-wrap{flex-wrap:wrap}.c-card-render__flex1{flex:1}.c-card-render__width100{width:100%}.c-card-render__color60{color:rgba(0,0,0,.6)}.c-card-render__color100{color:#000}.c-card-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-card-render__nowrap{white-space:nowrap}.c-card-render__mgr8{margin-right:8px!important}.c-card-render__mgb8{margin-bottom:8px!important}.c-card-render__mgt4{margin-top:4px!important}.c-card-render__mgb4{margin-bottom:4px!important}.c-card-render__un-mgr8{margin-right:-8px!important}.c-card-render__bar{padding-left:8px;position:relative}.c-card-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-card-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)}.ai-chat{background:linear-gradient(135deg,#c9dbfb,#c9dbfb 20%,rgba(237,237,253,.5) 70%,rgba(151,97,251,.2));color:#000;display:flex;flex-flow:column nowrap;font-size:14px;height:100%;padding:45px 0 60px;position:relative;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 .chat-main{display:flex;flex:1;flex-flow:column-reverse nowrap;overflow-y:auto;padding:0 130px 0 82px;row-gap:16px}.ai-chat .chat-main::-webkit-scrollbar{width:5px}.ai-chat .chat-main::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat .chat-main::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat .chat-main .message-item{column-gap:8px;display:flex;flex-flow:row nowrap}.ai-chat .chat-main .message-item:first-child{margin-bottom:auto}.ai-chat .chat-main .message-item .n-avatar{flex-shrink:0}.ai-chat .chat-main .message-item .content-box .content{background:#fff;border-radius:10px;flex:unset;padding:10px 12px}.ai-chat .chat-main .message-item .content-box .content .card{min-width:236px}.ai-chat .chat-main .message-item .content-box .content .card>p{font-size:14px;line-height:19px}.ai-chat .chat-main .message-item .content-box .content .card .c-template-render .biClass{border-radius:5px;cursor:pointer}.ai-chat .chat-main .message-item .content-box .content .card .form-box .n-form:first-child{margin-top:10px}.ai-chat .chat-main .message-item .content-box .content .card .form-box .n-form-item-label__text{color:#888}.ai-chat .chat-main .message-item .content-box .content.default h2{font-size:22px;font-weight:500;margin:10px 0}.ai-chat .chat-main .message-item .content-box .content.loading{align-items:center;color:#999;column-gap:10px;display:flex}.ai-chat .chat-main .message-item .content-box.mine .content{background:hsla(0,0%,100%,.48);border-radius:8px}.ai-chat .chat-footer{padding:30px 130px 0}.ai-chat .chat-footer.disabled{cursor:not-allowed}.ai-chat .chat-footer .menu-box{background:#fff;column-gap:8px;display:flex;margin-bottom:8px;overflow-x:auto;padding:10px}.ai-chat .chat-footer .menu-box::-webkit-scrollbar{width:5px}.ai-chat .chat-footer .menu-box::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat .chat-footer .menu-box::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat .chat-footer .menu-box::-webkit-scrollbar{height:5px}.ai-chat .chat-footer .input-wrapper{background:#fff;box-shadow:0 3px 4px 0 rgba(0,0,0,.1);padding:15px 20px}.ai-chat .chat-footer .input-wrapper .n-input__border,.ai-chat .chat-footer .input-wrapper .n-input__state-border{border:none}.ai-chat .chat-footer .input-wrapper .n-input:not(.n-input--disabled).n-input--focus .n-input__state-border{box-shadow:unset}.ai-chat .chat-footer .input-wrapper .btn-box{display:flex;justify-content:flex-end}.ai-chat .chat-footer .input-wrapper .btn-box .btn-send{align-items:center;cursor:pointer;display:flex;height:46px;justify-content:center;width:58px}.ai-chat .chat-footer .input-wrapper .btn-box .btn-send.disabled{cursor:not-allowed;opacity:.5}.ai-chat .chat-footer .command-box{display:flex;flex-flow:column nowrap;height:100%}.ai-chat .chat-footer .command-box__header{display:flex}.ai-chat .chat-footer .command-box__header .title{color:#999}.ai-chat .chat-footer .command-box__menu{flex:1;overflow-y:auto}.ai-chat .chat-footer .command-box__menu .menu-item{align-items:center;display:flex;padding:8px 0 8px 5px}.ai-chat .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 .chat-footer .command-box__menu .menu-item .n-icon{margin-left:auto}.ai-chat .chat-footer .command-box__menu .menu-item:hover{cursor:default}.ai-chat .chat-footer .command-box__menu .menu-item.selected{background:#f2f2f2;border-radius:5px}.ai-chat .chat-footer .command-box__menu .menu-item.selectable{position:relative}.ai-chat .chat-footer .command-box__menu .menu-item.selectable .label{color:var(--c-primary-color);margin-left:30px}.ai-chat .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--small{padding:20px 0 44px}.ai-chat--small .chat-main{padding:0 20px 10px}.ai-chat--small .chat-main .message-item{display:unset}.ai-chat--small .chat-main .message-item .n-avatar{background:transparent}.ai-chat--small .chat-main .message-item .content-box{display:flex;flex-flow:row nowrap}.ai-chat--small .chat-main .message-item .content-box .content{border-radius:3px 14px 14px;max-width:calc(100% - 55px)}.ai-chat--small .chat-main .message-item .content-box .content.default{border-radius:4px 16px 16px}.ai-chat--small .chat-main .message-item .content-box.mine{flex-flow:row-reverse nowrap}.ai-chat--small .chat-main .message-item .content-box.mine .content{background:#5874dc;border-radius:14px 0 14px 14px;color:#fff}.ai-chat--small .chat-footer{padding:10px 20px 0}.ai-chat--small .chat-footer .menu-box{background:none;padding:0}.ai-chat--small .chat-footer .menu-box .n-button{background:#fff}.ai-chat--small .chat-footer .input-wrapper{box-shadow:0 0 6px 0 hsla(240,9%,85%,.74);padding:5px 0}.ai-chat .prompt-wrapper{background:linear-gradient(135deg,#ecf3ff,#ecf3ff 20%,rgba(237,237,253,.5) 70%,rgba(203,175,255,.3))}.ai-chat .prompt-wrapper .n-drawer-header{padding:15px}.ai-chat .prompt-wrapper .n-drawer-header__main{width:100%}.ai-chat .prompt-wrapper .n-drawer-header__main .title{display:flex;font-size:14px}.ai-chat .prompt-wrapper .n-drawer-header__main .title .n-button{margin-left:auto}.ai-chat .prompt-wrapper .n-drawer-header__main .n-input{margin-top:10px}.ai-chat .prompt-wrapper .n-drawer-body-content-wrapper{padding:0 10px}.ai-chat .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 .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar{width:5px}.ai-chat .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-thumb{background:rgba(0,0,0,.25);border-radius:5px}.ai-chat .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper::-webkit-scrollbar-track-piece{background-color:unset}.ai-chat .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 .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item:hover{background-image:linear-gradient(#ecf3ff,#fff 40%,#fff)}.ai-chat .prompt-wrapper .n-drawer-body-content-wrapper .list-wrapper .item p:last-child{color:#999;font-size:12px}
@@ -1,5 +1,4 @@
1
1
  import { ComponentInternalInstance } from 'vue';
2
- import { AnyObject } from '../../../shared/types';
3
2
  import 'recorder-core/src/engine/mp3';
4
3
  import 'recorder-core/src/engine/mp3-engine';
5
4
  export default class AudioSDK {
@@ -22,13 +21,15 @@ export default class AudioSDK {
22
21
  private initRecorder;
23
22
  private onProcess;
24
23
  private takeoffEncodeChunk;
25
- run(handle: {
24
+ run(instance: ComponentInternalInstance, handle: {
26
25
  resolve: Function;
27
26
  reject: Function;
28
- }, instance?: ComponentInternalInstance): void;
29
- start(instance?: ComponentInternalInstance, option?: AnyObject): Promise<unknown>;
30
- pause(): void;
31
- resume(): void;
27
+ }): void;
28
+ start(instance: ComponentInternalInstance, option?: {
29
+ realTimeRecognition?: boolean;
30
+ allowPunctuationMark?: boolean;
31
+ timed?: number;
32
+ }): Promise<unknown>;
32
33
  stop(): void;
33
34
  private handleError;
34
35
  private handleMessage;
@@ -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=new s,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?{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(t),this.option.timed&&(this.timer=setTimeout((()=>{this.stop()}),1e3*this.option.timed)),this.recorder.open((()=>{this.recorder.start(),this.recordingModal.show(e,{contentRef:this.contentRef,onClose:()=>this.stop()})}),((e,t)=>{this.handleError({msg:e,isUserNotAllow:t})}))}start(e,t={}){return Object.assign(this.option,t),new Promise(((t,s)=>{if(this.messageHandlerQueue.length>0)return void s({result:"fail",msg:"当前已存在正在录音的任务"});if(this.hasEventListener||(document.addEventListener("keydown",this.handleKeydown),this.hasEventListener=!0),!this.webSocket)return this.webSocket=new WebSocket("wss://emr-tl.cnhis.com/audio/socket"),this.webSocket.onopen=()=>{this.isReady=!0,this.run(e,{resolve:t,reject:s})},this.webSocket.onmessage=this.handleMessage.bind(this),this.webSocket.onerror=()=>console.log("WebSocket连接失败"),void(this.webSocket.binaryType="blob");const i=this;!async function r(n=0){if(n>5)return s({result:"fail",msg:"WebSocket连接失败"});i.isReady?i.run(e,{resolve:t,reject:s}):setTimeout((()=>{r(++n)}),100)}()}))}stop(){if(this.recordingModal.hide(),this.option.realTimeRecognition){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 this.recorder.stop((async(e,t)=>{var s;null==(s=this.webSocket)||s.send(e)}),(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};
@@ -2,10 +2,9 @@ import { ComponentInternalInstance, Ref } from 'vue';
2
2
  export declare class RecordingModal {
3
3
  rendered: boolean;
4
4
  target: HTMLElement | null;
5
- show({ contentRef, onClose, instance }: {
5
+ show(instance: ComponentInternalInstance, { contentRef, onClose }: {
6
6
  contentRef: Ref<string>;
7
7
  onClose: () => void;
8
- instance?: ComponentInternalInstance;
9
8
  }): void;
10
9
  hide(): void;
11
10
  }
@@ -1 +1 @@
1
- import{ref as e,render as t,createVNode as n,withCtx as r,nextTick as o}from"vue";import{createProviderWrapper as s}from"../../../../shared/utils/index.js";import i from"../components/recording.vue.js";class l{constructor(){this.rendered=!1,this.target=null}show({contentRef:l,onClose:a,instance:d}){if(this.rendered)return;this.rendered=!0;const u=document.createElement("div"),h=e(!1),c=s(d);t(n(c,null,{default:r((()=>n(i,{to:u,content:l.value,show:h.value,"onUpdate:show":e=>h.value=e,onClose:()=>p(),onAfterLeave:()=>p()},null)),d)}),u);const m=this;var v;function p(){a()}v=u,document.body.appendChild(v),m.target=v,o((()=>h.value=!0))}hide(){var e;(null==(e=this.target)?void 0:e.parentElement)&&(this.rendered=!1,this.target.parentElement.removeChild(this.target),this.target=null)}}export{l as RecordingModal};
1
+ import{ref as e,render as t,createVNode as n,withCtx as r,nextTick as o}from"vue";import{createProviderWrapper as s}from"../../../../shared/utils/index.js";import l from"../components/recording.vue.js";class i{constructor(){this.rendered=!1,this.target=null}show(i,{contentRef:d,onClose:a}){if(this.rendered)return;this.rendered=!0;const u=document.createElement("div"),h=e(!1),c=s(i);t(n(c,null,{default:r((()=>n(l,{to:u,content:d.value,show:h.value,"onUpdate:show":e=>h.value=e,onClose:()=>p(),onAfterLeave:()=>p()},null)),i)}),u);const m=this;var v;function p(){a()}v=u,document.body.appendChild(v),m.target=v,o((()=>h.value=!0))}hide(){var e;(null==(e=this.target)?void 0:e.parentElement)&&(this.rendered=!1,this.target.parentElement.removeChild(this.target),this.target=null)}}export{i as RecordingModal};
@@ -1,5 +1,5 @@
1
1
  import { SFCWithInstall } from '../../shared/types';
2
- declare const TemplateRender: SFCWithInstall<import("vue").DefineComponent<{
2
+ declare const CardRender: SFCWithInstall<import("vue").DefineComponent<{
3
3
  config: {
4
4
  type: import("vue").PropType<{
5
5
  templateStyle?: import("vue").CSSProperties | undefined;
@@ -57,4 +57,4 @@ declare const TemplateRender: SFCWithInstall<import("vue").DefineComponent<{
57
57
  }, {
58
58
  data: import("../../shared/types").AnyObject;
59
59
  }>>;
60
- export default TemplateRender;
60
+ export default CardRender;
@@ -0,0 +1 @@
1
+ import{COMPONENT_NAMESPACE as r}from"../../shared/global/variable.js";import{safeComponentRegister as e}from"../../shared/utils/index.js";import a from"./src/CardRender.vue.js";const o=a;o.install=function(a){e(a,o,r+"CardRender")};export{o as default};
@@ -0,0 +1 @@
1
+ import e from"./CardRender.vue2.js";import r from"../../../_virtual/_plugin-vue_export-helper.js";var a=r(e,[["__file","CardRender.vue"]]);export{a as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,computed as t,provide as o,openBlock as s,createElementBlock as r,normalizeStyle as i,unref as a,Fragment as n,renderList as d,createBlock as m,resolveDynamicComponent as l,createSlots as p,withCtx as c,renderSlot as u,normalizeProps as f,guardReactiveProps as h}from"vue";import{getComponent as v}from"./components/index.js";import{findValueIsEmpty as j}from"./utils/index.js";import{InjectionTemplateRender as g,InjectionTemplateRenderEmit as y}from"./constants/index.js";import{useTheme as k}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"naive-ui";import"../../../shared/hooks/useScrollLoading.js";var b=e({__name:"CardRender",props:{config:{type:Object},data:{default:()=>({}),type:Object},renders:{type:Object}},emits:["module-click","button-click"],setup(e,{emit:b}){const x=e,O=k(),S=t((()=>{var e;return{...O,...null==(e=x.config)?void 0:e.templateStyle}})),_=t((()=>{var e;return(null==(e=x.config)?void 0:e.templates)?x.config.templates.filter((e=>!e.setting.emptyHide||j(e,x.data))):[]}));return o(g,{...x,globalData:x.data}),o(y,b),(t,o)=>(s(),r("div",{class:"c-card-render",style:i(a(S))},[(s(!0),r(n,null,d(a(_),((o,r)=>(s(),m(l(a(v)(o.type)),{key:r,config:o,data:e.data},p({_:2},[d(t.$slots,((e,o)=>({name:o,fn:c((e=>[u(t.$slots,o,f(h(e)))]))})))]),1032,["config","data"])))),128))],4))}});export{b as default};
@@ -1 +1 @@
1
- import{defineComponent as t,inject as n,computed as e,openBlock as o,createElementBlock as i,normalizeStyle as l,unref as r,normalizeClass as s,Fragment as u,renderList as a,createBlock as d,mergeProps as c,withModifiers as f,withCtx as p,createTextVNode as m,toDisplayString as v}from"vue";import{cloneDeep as b,isObject as g}from"lodash-es";import{InjectionTemplateRenderEmit as y}from"../constants/index.js";import{getRealWidth as k,transNumberToPx as x,isFactor as _,getCurText as z}from"../utils/index.js";import{NButton as C}from"naive-ui";var h=t({__name:"Button",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(t){const h=t,j=n(y),O=e((()=>{var t;return b((null==(t=h.config)?void 0:t.setting)||{})})),S=e((()=>O.value.buttonList||[])),w=e((()=>{const{containerStyle:t={},unitConfig:n={}}=O.value,e=k(t,n);return{"font-size":"14px",...x(t),width:e,"box-sizing":"border-box"}}));function B(t,n){var e;return t.props.block||n===(null==(e=S.value)?void 0:e.length)-1}function L(t){var n,e;const o=(null==(n=null==t?void 0:t.advancedConfig)?void 0:n.disabled)||{};if((null==(e=o.conditions)?void 0:e.length)>0){if(o.conditions.some((t=>_(t,z(h.data[t.field_key])))))return{disabled:!0,title:null==o?void 0:o.title}}return!1}function T(t){const n=L(t),e=t.customTitle||t.name;return g(n)&&n.title?n.title:e}function q(t){return x(null==t?void 0:t.buttonStyle)||{}}return(t,n)=>(o(),i("div",{style:l(r(w)),class:s(r(O).containerClass)},[(o(!0),i(u,null,a(r(S),((t,n)=>(o(),d(r(C),c({class:B(t,n)?"":"c-template-render__mgr8",key:n},function(t){return{...t.props,size:"normal"===t.props.size?"medium":t.props.size}}(t),{style:q(t),disabled:!!L(t),onClick:f((()=>function(t){j("button-click",{...b(h),button:t})}(t)),["stop"])}),{default:p((()=>[m(v(T(t)),1)])),_:2},1040,["class","style","disabled","onClick"])))),128))],6))}});export{h as default};
1
+ import{defineComponent as t,inject as n,computed as e,openBlock as o,createElementBlock as i,normalizeStyle as l,unref as r,normalizeClass as s,Fragment as u,renderList as a,createBlock as d,mergeProps as c,withModifiers as f,withCtx as p,createTextVNode as m,toDisplayString as v}from"vue";import{cloneDeep as b,isObject as g}from"lodash-es";import{InjectionTemplateRenderEmit as y}from"../constants/index.js";import{getRealWidth as k,transNumberToPx as x,isFactor as _,getCurText as z}from"../utils/index.js";import{NButton as C}from"naive-ui";var h=t({__name:"Button",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(t){const h=t,j=n(y),O=e((()=>{var t;return b((null==(t=h.config)?void 0:t.setting)||{})})),S=e((()=>O.value.buttonList||[])),w=e((()=>{const{containerStyle:t={},unitConfig:n={}}=O.value,e=k(t,n);return{"font-size":"14px",...x(t),width:e,"box-sizing":"border-box"}}));function B(t,n){var e;return t.props.block||n===(null==(e=S.value)?void 0:e.length)-1}function L(t){var n,e;const o=(null==(n=null==t?void 0:t.advancedConfig)?void 0:n.disabled)||{};if((null==(e=o.conditions)?void 0:e.length)>0){if(o.conditions.some((t=>_(t,z(h.data[t.field_key])))))return{disabled:!0,title:null==o?void 0:o.title}}return!1}function T(t){const n=L(t),e=t.customTitle||t.name;return g(n)&&n.title?n.title:e}function q(t){return x(null==t?void 0:t.buttonStyle)||{}}return(t,n)=>(o(),i("div",{style:l(r(w)),class:s(r(O).containerClass)},[(o(!0),i(u,null,a(r(S),((t,n)=>(o(),d(r(C),c({class:B(t,n)?"":"c-card-render__mgr8",key:n},function(t){return{...t.props,size:"normal"===t.props.size?"medium":t.props.size}}(t),{style:q(t),disabled:!!L(t),onClick:f((()=>function(t){j("button-click",{...b(h),button:t})}(t)),["stop"])}),{default:p((()=>[m(v(T(t)),1)])),_:2},1040,["class","style","disabled","onClick"])))),128))],6))}});export{h as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,computed as t,unref as l,openBlock as n,createElementBlock as a,normalizeClass as i,normalizeStyle as o,withModifiers as s,createElementVNode as r,toDisplayString as c,createCommentVNode as u,createBlock as d,withCtx as v,createTextVNode as f}from"vue";import{getCurText as p,transNumberToPx as y,getRealWidth as k,isFactor as m}from"../utils/index.js";import{NEllipsis as g}from"naive-ui";import{useCommon as b}from"../hooks/useCommon.js";const h={key:0},x={key:2},C={key:2};var w=e({__name:"Field",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const w=e,{setting:_,handleModuleClick:j}=b(w),O=t((()=>_.value.prefix||"")),S=t((()=>_.value.suffix||"")),z=t((()=>{const{conditionalShowList:e=[],mappingFiled:t=[]}=_.value.advancedConfig||{},l=H(e);if(Object.keys(l).length>0){const e=p(w.data[null==l?void 0:l.fieldName]||"");if(e)return e}const n=H(t);if(Object.keys(n).length>0){const e=null==n?void 0:n.key;if(e)return e}return p(w.data[_.value.fieldName])||""})),F=t((()=>z.value?O.value+z.value+S.value:E.value)),L=t((()=>_.value.rowNum||1)),N=t((()=>_.value.showTitle&&_.value.title)),M=t((()=>({...y(_.value.titleStyle),"box-sizing":"border-box"}))),B=t((()=>({...y(_.value.contentStyle),"word-break":"break-all","white-space":"normal","box-sizing":"border-box"}))),P=t((()=>{let e=_.value.containerClass||"";return _.value.prefixBar&&(e=`c-card-render__bar ${e}`),e})),T=t((()=>{const{containerStyle:e={},unitConfig:t={}}=_.value,l=k(e,t);return{"font-size":"14px",...y(e),width:l,"box-sizing":"border-box"}})),$=t((()=>"ellipsis"==_.value.textOverflow)),q=t((()=>"showMore"==_.value.textOverflow)),A=t((()=>{const{displayCondition:e=[]}=_.value.advancedConfig||{};return!e.length||e.some((e=>m(e,p(w.data[e.field_key]))))})),D=t((()=>{const{conditionalShowList:e=[]}=_.value.advancedConfig||{};return e.length>0?H(e):{}})),E=t((()=>_.value.emptyPlaceholder||"--")),G=t((()=>{const{conditionalShowList:e=[],mappingFiled:t=[]}=_.value.advancedConfig||{},l=H(e);if(Object.keys(l).length>0)return"";const n=H(t);return Object.keys(n).length>0?null==n?void 0:n.color:""}));function H(e){let t={};for(let l=0;l<e.length;l++){const n=e[l];if(n.conditions.some((e=>m(e,p(w.data[e.field_key]))))){t=n;break}}return t}return(t,p)=>l(A)?(n(),a("div",{key:0,class:i(l(P)),style:o(l(T))},[l(N)?(n(),a("span",{key:0,class:i(["c-card-render__color60",l(_).titleClass]),style:o(l(M)),onClick:p[0]||(p[0]=s((()=>l(j)(e.data)),["stop"]))},[r("span",null,c(l(D).title||l(_).title),1)],6)):u("v-if",!0),u(" 如果有枚举判断的颜色,则不考虑查看更多的筛选 "),l(G)?(n(),a("span",{key:1,style:o(l(B)),class:i(l(_).contentClass),onClick:p[1]||(p[1]=(...e)=>l(j)&&l(j)(...e))},[l(O)&&l(z)?(n(),a("span",h,c(l(O)),1)):u("v-if",!0),l(G)?(n(),a("span",{key:1,style:o({color:l(G)})},c(l(z)||l(E)),5)):u("v-if",!0),l(S)&&l(z)?(n(),a("span",x,c(l(S)),1)):u("v-if",!0)],6)):(n(),a("span",{key:2,style:o(l(B)),class:i(l(_).contentClass),onClick:p[2]||(p[2]=(...e)=>l(j)&&l(j)(...e))},[l($)?(n(),a("span",{key:0,class:"c-card-render__text-ellipsis",style:o({"-webkit-line-clamp":l(L)})},c(l(F)),5)):l(q)?(n(),d(l(g),{key:1,"expand-trigger":"click","line-clamp":l(L)},{default:v((()=>[f(c(l(F)),1)])),_:1},8,["line-clamp"])):(n(),a("span",C,c(l(F)),1))],6))],6)):u("v-if",!0)}});export{w as default};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as l,openBlock as t,createElementBlock as a,normalizeClass as r,unref as i,normalizeStyle as s,withModifiers as o,toDisplayString as n,createCommentVNode as u,createElementVNode as c,createBlock as d,withCtx as p,createTextVNode as v}from"vue";import{getCurText as f,transNumberToPx as m,getRealWidth as x}from"../utils/index.js";import{NEllipsis as b}from"naive-ui";import{useCommon as y}from"../hooks/useCommon.js";const k={key:2};var g=e({__name:"FieldGroup",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const g=e,{setting:h,handleModuleClick:w}=y(g),_=l((()=>{if(!h.value.fields)return"";const{delimiter:e,fieldNames:l}=h.value.fields,t=(null==e?void 0:e.length)||0;if((null==l?void 0:l.length)>0){const a=l.reduce(((l,a)=>{const r=t?e:"";return l+(g.data[a]?f(g.data[a])+r:"")}),"");return t>0?a.slice(0,-t):a}return""})),C=l((()=>{const{prefix:e,suffix:l}=h.value,t=e&&_.value?e:"",a=l&&_.value?l:"";return _.value?t+_.value+a:O.value})),j=l((()=>h.value.rowNum||1)),z=l((()=>h.value.showTitle&&h.value.title)),O=l((()=>h.value.emptyPlaceholder||"--")),S=l((()=>({...m(h.value.titleStyle),"box-sizing":"border-box"}))),M=l((()=>({...m(h.value.contentStyle),"word-break":"break-all","white-space":"normal","box-sizing":"border-box"}))),N=l((()=>{let e=h.value.containerClass||"";return h.value.prefixBar&&(e=`c-template-render__bar ${e}`),e})),B=l((()=>{const{containerStyle:e={},unitConfig:l={}}=h.value,t=x(e,l);return{"font-size":"14px",...m(e),width:t,"box-sizing":"border-box"}})),F=l((()=>"ellipsis"==h.value.textOverflow)),G=l((()=>"showMore"==h.value.textOverflow));return(l,f)=>(t(),a("div",{class:r(i(N)),style:s(i(B)),onClick:f[0]||(f[0]=o((()=>i(w)(e.data)),["stop"]))},[i(z)?(t(),a("span",{key:0,class:r(["c-template-render__color60",i(h).titleClass]),style:s(i(S))},n(i(h).title)+": ",7)):u("v-if",!0),c("span",{style:s(i(M)),class:r(i(h).contentClass)},[i(F)?(t(),a("span",{key:0,class:"c-template-render__text-ellipsis",style:s({"-webkit-line-clamp":i(j)})},n(i(C)),5)):i(G)?(t(),d(i(b),{key:1,"expand-trigger":"click","line-clamp":i(j)},{default:p((()=>[v(n(i(C)),1)])),_:1},8,["line-clamp"])):(t(),a("span",k,n(i(C)),1))],6)],6))}});export{g as default};
1
+ import{defineComponent as e,computed as l,openBlock as t,createElementBlock as a,normalizeClass as r,unref as i,normalizeStyle as s,withModifiers as o,toDisplayString as n,createCommentVNode as u,createElementVNode as c,createBlock as d,withCtx as v,createTextVNode as p}from"vue";import{getCurText as f,transNumberToPx as m,getRealWidth as x}from"../utils/index.js";import{NEllipsis as b}from"naive-ui";import{useCommon as y}from"../hooks/useCommon.js";const k={key:2};var g=e({__name:"FieldGroup",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const g=e,{setting:h,handleModuleClick:w}=y(g),_=l((()=>{if(!h.value.fields)return"";const{delimiter:e,fieldNames:l}=h.value.fields,t=(null==e?void 0:e.length)||0;if((null==l?void 0:l.length)>0){const a=l.reduce(((l,a)=>{const r=t?e:"";return l+(g.data[a]?f(g.data[a])+r:"")}),"");return t>0?a.slice(0,-t):a}return""})),C=l((()=>{const{prefix:e,suffix:l}=h.value,t=e&&_.value?e:"",a=l&&_.value?l:"";return _.value?t+_.value+a:O.value})),j=l((()=>h.value.rowNum||1)),z=l((()=>h.value.showTitle&&h.value.title)),O=l((()=>h.value.emptyPlaceholder||"--")),S=l((()=>({...m(h.value.titleStyle),"box-sizing":"border-box"}))),M=l((()=>({...m(h.value.contentStyle),"word-break":"break-all","white-space":"normal","box-sizing":"border-box"}))),N=l((()=>{let e=h.value.containerClass||"";return h.value.prefixBar&&(e=`c-card-render__bar ${e}`),e})),B=l((()=>{const{containerStyle:e={},unitConfig:l={}}=h.value,t=x(e,l);return{"font-size":"14px",...m(e),width:t,"box-sizing":"border-box"}})),F=l((()=>"ellipsis"==h.value.textOverflow)),G=l((()=>"showMore"==h.value.textOverflow));return(l,f)=>(t(),a("div",{class:r(i(N)),style:s(i(B)),onClick:f[0]||(f[0]=o((()=>i(w)(e.data)),["stop"]))},[i(z)?(t(),a("span",{key:0,class:r(["c-card-render__color60",i(h).titleClass]),style:s(i(S))},n(i(h).title)+": ",7)):u("v-if",!0),c("span",{style:s(i(M)),class:r(i(h).contentClass)},[i(F)?(t(),a("span",{key:0,class:"c-card-render__text-ellipsis",style:s({"-webkit-line-clamp":i(j)})},n(i(C)),5)):i(G)?(t(),d(i(b),{key:1,"expand-trigger":"click","line-clamp":i(j)},{default:v((()=>[p(n(i(C)),1)])),_:1},8,["line-clamp"])):(t(),a("span",k,n(i(C)),1))],6)],6))}});export{g as default};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as o,openBlock as t,createElementBlock as s,normalizeClass as r,unref as a,normalizeStyle as i,withModifiers as l,Fragment as n,renderList as d,createBlock as m,withCtx as u,createTextVNode as c,toDisplayString as p}from"vue";import{getRealWidth as h,transNumberToPx as f}from"../utils/index.js";import{NTag as k}from"naive-ui";import{useTheme as v}from"../../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"lodash-es";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"../../../../shared/hooks/useScrollLoading.js";import{useCommon as b}from"../hooks/useCommon.js";var g=e({__name:"Label",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const g=e,{setting:y,handleModuleClick:j}=b(g),x=v(),C=o((()=>g.data[y.value.fieldName]||[])),S=o((()=>{const{containerStyle:e={},contentStyle:o={},unitConfig:t={}}=y.value||{},s=h(e,t);return{"font-size":"14px",...f(e),...f(o),width:s,"box-sizing":"border-box"}}));return(o,h)=>(t(),s("div",{class:r(a(y).containerClass),style:i(a(S)),onClick:h[0]||(h[0]=l((()=>a(j)(e.data)),["stop"]))},[(t(!0),s(n,null,d(a(C),((e,o)=>(t(),m(a(k),{class:r(o==a(C).length-1?"":"c-template-render__mgr8"),key:o,style:i({background:e.backgroundColor||a(x)["--c-primary-color"]})},{default:u((()=>[c(p(e.labelShowText),1)])),_:2},1032,["class","style"])))),128))],6))}});export{g as default};
1
+ import{defineComponent as e,computed as o,openBlock as t,createElementBlock as s,normalizeClass as r,unref as a,normalizeStyle as i,withModifiers as n,Fragment as l,renderList as d,createBlock as u,withCtx as m,createTextVNode as c,toDisplayString as p}from"vue";import{getRealWidth as h,transNumberToPx as f}from"../utils/index.js";import{NTag as k}from"naive-ui";import{useTheme as v}from"../../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import"lodash-es";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"../../../../shared/hooks/useScrollLoading.js";import{useCommon as b}from"../hooks/useCommon.js";var g=e({__name:"Label",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const g=e,{setting:y,handleModuleClick:j}=b(g),x=v(),C=o((()=>g.data[y.value.fieldName]||[])),S=o((()=>{const{containerStyle:e={},contentStyle:o={},unitConfig:t={}}=y.value||{},s=h(e,t);return{"font-size":"14px",...f(e),...f(o),width:s,"box-sizing":"border-box"}}));return(o,h)=>(t(),s("div",{class:r(a(y).containerClass),style:i(a(S)),onClick:h[0]||(h[0]=n((()=>a(j)(e.data)),["stop"]))},[(t(!0),s(l,null,d(a(C),((e,o)=>(t(),u(a(k),{class:r(o==a(C).length-1?"":"c-card-render__mgr8"),key:o,style:i({background:e.backgroundColor||a(x)["--c-primary-color"]})},{default:m((()=>[c(p(e.labelShowText),1)])),_:2},1032,["class","style"])))),128))],6))}});export{g as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as t,computed as n,unref as e,openBlock as o,createElementBlock as i,Fragment as r,renderList as a,normalizeClass as l,normalizeStyle as s,withModifiers as u,createBlock as c,resolveDynamicComponent as d,createSlots as f,withCtx as p,createCommentVNode as g,renderSlot as m,normalizeProps as y,guardReactiveProps as v}from"vue";import{isFactor as h,getCurText as b,getRealWidth as x,transNumberToPx as C,findValueIsEmpty as k}from"../utils/index.js";import{getComponent as j}from"./index.js";import{useCommon as w}from"../hooks/useCommon.js";const _=["onClick"];var z=t({__name:"Row",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(t){const z=t,{setting:M,dataComp:S,handleModuleClick:N}=w(z),O=n((()=>{var t;return(null==(t=z.config)?void 0:t.childrens)||[]})),P=n((()=>{const{displayCondition:t=[]}=M.value.advancedConfig||{};return!t.length||t.some((t=>h(t,b(z.data[t.field_key]))))})),$=n((()=>{const{containerStyle:t={},rowProps:n={},unitConfig:e={}}=M.value||{},o=x(t,e),i={"justify-content":n.justify,"align-items":n.align};return{"font-size":"14px",...C(t),...i,width:o,"box-sizing":"border-box"}}));function H(t){var n;const e=(null==(n=M.value)?void 0:n.columnScale)||"";if(e){const n=e.split(":").reduce(((t,n)=>t+Number(n)),0)||24,o=100*Number(t)/n,i=Math.pow(10,4);return Math.floor(o*i)/i+"%"}}function R(t,n){const{colStyle:e={},rowProps:o={}}=M.value||{},i={};n!==O.value.length-1&&(i["padding-right"]=C(o).gutter);return{flex:t.span,width:H(t.span),...i,...e,"box-sizing":"border-box"}}function q(t,n){return t.filter((t=>{const e={config:z.config,data:z.data};return t.parentConfig=e,!t.setting.emptyHide||k(t,n)}))}return(t,n)=>e(P)?(o(!0),i(r,{key:0},a(e(S),((n,h)=>(o(),i("div",{class:l(["c-card-render__flex",e(M).containerClass]),key:h,style:s(e($)),onClick:u((()=>e(N)(n)),["stop"])},[(o(!0),i(r,null,a(e(O),((l,u)=>(o(),i("div",{key:u,style:s(R(l,u))},[(o(!0),i(r,null,a(q(l.children,n),((i,r)=>(o(),c(d(e(j)(i.type)),{key:r,config:i,data:n},f({_:2},[a(t.$slots,((n,e)=>({name:e,fn:p((n=>[g(" 动态插槽 "),m(t.$slots,e,y(v(n)))]))})))]),1032,["config","data"])))),128))],4)))),128))],14,_)))),128)):g("v-if",!0)}});export{z as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,computed as t,openBlock as o,createElementBlock as r,normalizeClass as a,unref as n,normalizeStyle as s,withModifiers as i,toDisplayString as l}from"vue";import{getRealWidth as u,transNumberToPx as d}from"../utils/index.js";import{useCommon as c}from"../hooks/useCommon.js";var p=e({__name:"Text",props:{config:{default:()=>({}),type:Object},data:{default:()=>({}),type:Object}},setup(e){const p=e,{setting:f,handleModuleClick:m}=c(p),x=t((()=>{const{containerStyle:e={},style:t={},unitConfig:o={}}=f.value||{},r=u(e,o);return{"font-size":"14px",...d(e),...d(t),width:r,"box-sizing":"border-box"}})),b=t((()=>{let e=f.value.containerClass||"";return f.value.prefixBar&&(e=`c-card-render__bar ${e}`),e}));return(t,u)=>(o(),r("div",{class:a(n(b)),style:s(n(x)),onClick:u[0]||(u[0]=i((()=>n(m)(e.data)),["stop"]))},l(n(f).text),7))}});export{p as default};
@@ -0,0 +1 @@
1
+ .c-card-render{box-sizing:border-box;color:#000;font-size:0;line-height:1.6}.c-card-render__flex{display:flex}.c-card-render__flexAlignCenter{align-items:center}.c-card-render__flex-wrap{flex-wrap:wrap}.c-card-render__flex1{flex:1}.c-card-render__width100{width:100%}.c-card-render__color60{color:rgba(0,0,0,.6)}.c-card-render__color100{color:#000}.c-card-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-card-render__nowrap{white-space:nowrap}.c-card-render__mgr8{margin-right:8px!important}.c-card-render__mgb8{margin-bottom:8px!important}.c-card-render__mgt4{margin-top:4px!important}.c-card-render__mgb4{margin-bottom:4px!important}.c-card-render__un-mgr8{margin-right:-8px!important}.c-card-render__bar{padding-left:8px;position:relative}.c-card-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-card-render__inline{display:inline}
@@ -1 +1 @@
1
- import{defineComponent as e,shallowRef as t,reactive as o,onBeforeUnmount as r,createVNode as i,mergeProps as l}from"vue";import"@wangeditor/editor/dist/css/style.css";import{Editor as d,Toolbar as s}from"@wangeditor/editor-for-vue";var a=e({name:"Editor",inheritAttrs:!1,components:{Editor:d,Toolbar:s},props:{editorConfig:{type:Object},toolbarConfig:{type:Object},uploadImgUrl:{type:String},isDisabled:{type:Boolean,default:!1}},emits:[],setup(e,{attrs:a,slots:n,emit:u}){const p=t(),c=o({MENU_CONF:{uploadImage:{server:e.uploadImgUrl||""}},...e.editorConfig});r((()=>{const e=p.value;null!=e&&e.destroy()}));const f=t=>{p.value=t,e.isDisabled&&t.disable(),console.log("实例",t)};return{editorRef:p,renderVN:()=>i("div",{class:"c-editor"},[i(s,{style:"border-bottom: 1px solid #ccc",editor:p.value,defaultConfig:e.toolbarConfig,mode:"default"},null),i(d,l({class:"c-editor__main",style:"height: 500px"},a,{defaultConfig:c,mode:"default",onOnCreated:f}),null)])}},render(){return this.renderVN()}});export{a as default};
1
+ import{defineComponent as e,shallowRef as o,reactive as t,onBeforeUnmount as r,createVNode as d,mergeProps as l}from"vue";import"@wangeditor/editor/dist/css/style.css";import{Editor as i,Toolbar as s}from"@wangeditor/editor-for-vue";var n=e({name:"Editor",inheritAttrs:!1,components:{Editor:i,Toolbar:s},props:{editorConfig:{type:Object},toolbarConfig:{type:Object},uploadImgUrl:{type:String},isDisabled:{type:Boolean,default:!1}},emits:[],setup(e,{attrs:n,slots:a,emit:u}){const p=o(),f=t({MENU_CONF:{uploadImage:{server:e.uploadImgUrl||""}},...e.editorConfig});r((()=>{const e=p.value;null!=e&&e.destroy()}));const c=o=>{p.value=o,e.isDisabled&&o.disable(),console.log("实例",o)};return{editorRef:p,renderVN:()=>d("div",{style:"border: 1px solid #ccc"},[d(s,{style:"border-bottom: 1px solid #ccc",editor:p.value,defaultConfig:e.toolbarConfig,mode:"default"},null),d(i,l({style:"height: 500px; overflow-y: hidden;"},n,{defaultConfig:f,mode:"default",onOnCreated:c}),null)])}},render(){return this.renderVN()}});export{n as default};
@@ -1 +0,0 @@
1
- .c-editor{border:1px solid #ccc}.c-editor__main{height:500px;overflow-y:hidden}
@@ -1 +1 @@
1
- var l,e,a,d,o,n,t,i,w,u,g,v,y,C,L,_,T,B,E,c,m,I,x,s,O,p,A,h,D,H=(l=>(l.INPUT="INPUT",l.TEXTAREA="TEXTAREA",l.DIGITAL="DIGITAL",l.DATE="DATE",l.RADIO="RADIO",l.RADIO_BLOCK="RADIO_BLOCK",l.CHECKBOX="CHECKBOX",l.CHECKBOX_BLOCK="CHECKBOX_BLOCK",l.SELECT="SELECT",l.MULTI_SELECT="MULTI_SELECT",l))(H||{});const M={open:{describe:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.351"))||"是",value:"1"},close:{describe:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.352"))||"否",value:"0"}},k=[{text:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.293"))||"文本框",value:"INPUT"},{text:(null==(d=window.getLanguageByCode)?void 0:d.call(window,"10010.1.564"))||"文本域",value:"TEXTAREA"},{text:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.292"))||"数字框",value:"DIGITAL"},{text:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.74"))||"日期",value:"DATE"},{text:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.565"))||"横向单选",value:"RADIO"},{text:(null==(i=window.getLanguageByCode)?void 0:i.call(window,"10010.1.566"))||"纵向单选",value:"RADIO_BLOCK"},{text:(null==(w=window.getLanguageByCode)?void 0:w.call(window,"10010.1.567"))||"横向多选",value:"CHECKBOX"},{text:(null==(u=window.getLanguageByCode)?void 0:u.call(window,"10010.1.568"))||"纵向多选",value:"CHECKBOX_BLOCK"},{text:(null==(g=window.getLanguageByCode)?void 0:g.call(window,"10010.1.294"))||"下拉框",value:"SELECT"},{text:(null==(v=window.getLanguageByCode)?void 0:v.call(window,"10010.1.569"))||"下拉多选框",value:"MULTI_SELECT"}],r=[{text:"1/3",value:4},{text:"2/3",value:8},{text:"1/4",value:3},{text:"3/4",value:9},{text:"1/6",value:2},{text:"5/6",value:10},{text:"1/8",value:1.5},{text:"7/8",value:10.5},{text:(null==(y=window.getLanguageByCode)?void 0:y.call(window,"10010.1.30"))||"半行",value:6},{text:(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.29"))||"整行",value:12}],N=[{text:(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.548"))||"年-月-日 时:分:秒",value:"yyyy-MM-dd HH:mm:ss"},{text:(null==(_=window.getLanguageByCode)?void 0:_.call(window,"10010.1.549"))||"年-月-日 时:分",value:"yyyy-MM-dd HH:mm"},{text:(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.550"))||"年-月-日",value:"yyyy-MM-dd"},{text:(null==(B=window.getLanguageByCode)?void 0:B.call(window,"10010.1.551"))||"年-月",value:"yyyy-MM"},{text:"月-日 时-分",value:"MM-dd HH:mm"},{text:(null==(E=window.getLanguageByCode)?void 0:E.call(window,"10010.1.553"))||"月-日",value:"MM-dd"},{text:(null==(c=window.getLanguageByCode)?void 0:c.call(window,"10010.1.554"))||"时:分:秒",value:"HH:mm:ss"},{text:(null==(m=window.getLanguageByCode)?void 0:m.call(window,"10010.1.555"))||"时:分",value:"HH:mm"}],U={alias:(null==(I=window.getLanguageByCode)?void 0:I.call(window,"10010.1.541"))||"日期格式",val_key:"date_format",html_type:"SELECT",option:N},K={alias:"选项",val_key:"option",html_type:"COMBINATION",jsonCombination:!1,minGroupNum:0,children:[{elem_width:6,alias:"文本",val_key:"text",html_type:"INPUT",is_null:"0"},{elem_width:6,alias:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.22"))||"值",val_key:"value",html_type:"INPUT",is_null:"0"}]},P=[{alias:"id",val_key:"id",html_type:"TEXT",decoratorProps:{style:{display:"none"}}},{alias:(null==(s=window.getLanguageByCode)?void 0:s.call(window,"10010.1.530"))||"字段键名",val_key:"key",html_type:"INPUT",remark:"数据库字段键名,不填写时由系统生成,填写则以填写为准"},{alias:(null==(O=window.getLanguageByCode)?void 0:O.call(window,"10010.1.16"))||"是否必填",val_key:"is_null",html_type:"SWITCH",...M},{alias:(null==(p=window.getLanguageByCode)?void 0:p.call(window,"10010.1.529"))||"字段标题",val_key:"name",html_type:"INPUT"},{alias:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.532"))||"字段类型",val_key:"html_type",html_type:"SELECT",option:k,is_null:"0"},{alias:"字段默认值",val_key:"default_val",html_type:"INPUT"},{alias:(null==(h=window.getLanguageByCode)?void 0:h.call(window,"10010.1.534"))||"字段问号提示",val_key:"remark",html_type:"INPUT"},{alias:(null==(D=window.getLanguageByCode)?void 0:D.call(window,"10010.1.13"))||"宽度",val_key:"elem_width",html_type:"SELECT",option:r}],S=Object.freeze({DATE_FORMAT_FIELD:U,DECIMAL_LENGTH_FIELD:{alias:"小数位数",val_key:"decimal_length",html_type:"INPUT",remark:"小数位数,默认为0"},OPTION_FIELD:K,DEFAULT_FIELD_LIST:P});export{S as FIELD_EDITOR_FIELDS,H as HtmlType};
1
+ var l,e,a,d,o,t,n,i,w,u,g,v,y,C,_,L,T,B,E,c,m,I,s,x,O,p,A,h,D,H=(l=>(l.INPUT="INPUT",l.TEXTAREA="TEXTAREA",l.DIGITAL="DIGITAL",l.DATE="DATE",l.RADIO="RADIO",l.RADIO_BLOCK="RADIO_BLOCK",l.CHECKBOX="CHECKBOX",l.CHECKBOX_BLOCK="CHECKBOX_BLOCK",l.SELECT="SELECT",l.MULTI_SELECT="MULTI_SELECT",l))(H||{});const M={default_val:1,open:{describe:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.351"))||"是",value:0},close:{describe:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.352"))||"否",value:1}},k=[{text:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.293"))||"文本框",value:"INPUT"},{text:(null==(d=window.getLanguageByCode)?void 0:d.call(window,"10010.1.564"))||"文本域",value:"TEXTAREA"},{text:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.292"))||"数字框",value:"DIGITAL"},{text:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.74"))||"日期",value:"DATE"},{text:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.565"))||"横向单选",value:"RADIO"},{text:(null==(i=window.getLanguageByCode)?void 0:i.call(window,"10010.1.566"))||"纵向单选",value:"RADIO_BLOCK"},{text:(null==(w=window.getLanguageByCode)?void 0:w.call(window,"10010.1.567"))||"横向多选",value:"CHECKBOX"},{text:(null==(u=window.getLanguageByCode)?void 0:u.call(window,"10010.1.568"))||"纵向多选",value:"CHECKBOX_BLOCK"},{text:(null==(g=window.getLanguageByCode)?void 0:g.call(window,"10010.1.294"))||"下拉框",value:"SELECT"},{text:(null==(v=window.getLanguageByCode)?void 0:v.call(window,"10010.1.569"))||"下拉多选框",value:"MULTI_SELECT"}],r=[{text:"1/3",value:"4"},{text:"2/3",value:"8"},{text:"1/4",value:"3"},{text:"3/4",value:"9"},{text:"1/6",value:"2"},{text:"5/6",value:"10"},{text:"1/8",value:"1.5"},{text:"7/8",value:"10.5"},{text:(null==(y=window.getLanguageByCode)?void 0:y.call(window,"10010.1.30"))||"半行",value:"6"},{text:(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.29"))||"整行",value:"12"}],N=[{text:(null==(_=window.getLanguageByCode)?void 0:_.call(window,"10010.1.548"))||"年-月-日 时:分:秒",value:"yyyy-MM-dd HH:mm:ss"},{text:(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.549"))||"年-月-日 时:分",value:"yyyy-MM-dd HH:mm"},{text:(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.550"))||"年-月-日",value:"yyyy-MM-dd"},{text:(null==(B=window.getLanguageByCode)?void 0:B.call(window,"10010.1.551"))||"年-月",value:"yyyy-MM"},{text:"月-日 时-分",value:"MM-dd HH:mm"},{text:(null==(E=window.getLanguageByCode)?void 0:E.call(window,"10010.1.553"))||"月-日",value:"MM-dd"},{text:(null==(c=window.getLanguageByCode)?void 0:c.call(window,"10010.1.554"))||"时:分:秒",value:"HH:mm:ss"},{text:(null==(m=window.getLanguageByCode)?void 0:m.call(window,"10010.1.555"))||"时:分",value:"HH:mm"}],U={alias:(null==(I=window.getLanguageByCode)?void 0:I.call(window,"10010.1.541"))||"日期格式",val_key:"date_format",html_type:"SELECT",is_null:"0",option:N},K={alias:"选项",val_key:"option",html_type:"COMBINATION",jsonCombination:!1,default_val:[],minGroupNum:0,children:[{elem_width:6,alias:"文本",val_key:"text",html_type:"INPUT",is_null:"0"},{elem_width:6,alias:(null==(s=window.getLanguageByCode)?void 0:s.call(window,"10010.1.22"))||"值",val_key:"value",html_type:"INPUT",is_null:"0"}]},P=[{alias:"id",val_key:"id",html_type:"TEXT",decoratorProps:{style:{display:"none"}}},{alias:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.530"))||"字段键名",val_key:"key",html_type:"INPUT",remark:"数据库字段键名,不填写时由系统生成,填写则以填写为准"},{alias:(null==(O=window.getLanguageByCode)?void 0:O.call(window,"10010.1.16"))||"是否必填",val_key:"is_null",html_type:"SWITCH",...M},{alias:(null==(p=window.getLanguageByCode)?void 0:p.call(window,"10010.1.529"))||"字段标题",val_key:"name",html_type:"INPUT",default_val:""},{alias:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.532"))||"字段类型",val_key:"html_type",html_type:"SELECT",option:k,is_null:"0"},{alias:"字段默认值",val_key:"default_val",html_type:"INPUT"},{alias:(null==(h=window.getLanguageByCode)?void 0:h.call(window,"10010.1.534"))||"字段问号提示",val_key:"remark",html_type:"INPUT",default_val:""},{alias:(null==(D=window.getLanguageByCode)?void 0:D.call(window,"10010.1.13"))||"宽度",val_key:"elem_width",html_type:"SELECT",option:r}],S=Object.freeze({DATE_FORMAT_FIELD:U,DECIMAL_LENGTH_FIELD:{alias:"小数位数",val_key:"decimal_length",html_type:"INPUT",default_val:"0",remark:"小数位数,默认为0"},OPTION_FIELD:K,DEFAULT_FIELD_LIST:P});export{S as FIELD_EDITOR_FIELDS,H as HtmlType};