cnhis-design-vue 3.3.3-release.0 → 3.3.3-release.13

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 (293) hide show
  1. package/README.md +87 -87
  2. package/es/components/audio-sdk/index.d.ts +18 -16
  3. package/es/components/audio-sdk/src/Index.vue.d.ts +18 -16
  4. package/es/components/audio-sdk/src/Index.vue2.js +47 -12
  5. package/es/components/audio-sdk/src/audioSDK.js +1 -1
  6. package/es/components/audio-sdk/src/components/recording-modal.vue.d.ts +6 -6
  7. package/es/components/audio-sdk/src/components/recording.vue.d.ts +6 -6
  8. package/es/components/audio-sdk/src/components/recording.vue2.js +17 -3
  9. package/es/components/base-search/index.d.ts +3 -0
  10. package/es/components/base-search/src/index.vue.d.ts +3 -0
  11. package/es/components/big-table/src/components/NoData.vue2.js +8 -1
  12. package/es/components/big-table/src/hooks/useTableParse.js +8 -1
  13. package/es/components/button-print/index.d.ts +69 -3
  14. package/es/components/button-print/src/ButtonPrint.vue.d.ts +69 -3
  15. package/es/components/button-print/src/ButtonPrint.vue2.js +12 -1
  16. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +29 -4
  17. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +121 -16
  18. package/es/components/button-print/src/components/OldPrintComponent.vue.d.ts +18 -0
  19. package/es/components/button-print/src/components/OldPrintComponent.vue2.js +17 -3
  20. package/es/components/button-print/src/utils/print.d.ts +6 -4
  21. package/es/components/button-print/src/utils/print.js +201 -27
  22. package/es/components/button-print/style/index.css +1 -1
  23. package/es/components/callback/src/components/render/popupMaps.d.ts +18 -0
  24. package/es/components/card-reader-sdk-cn/src/henan/index.js +8 -1
  25. package/es/components/classification/index.d.ts +56 -6
  26. package/es/components/classification/src/components/search-filter/index.vue.d.ts +56 -6
  27. package/es/components/classification/src/components/set-classification/index.vue.d.ts +56 -6
  28. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  29. package/es/components/classification/src/index.vue.d.ts +56 -6
  30. package/es/components/date-picker/src/DatePicker.vue2.js +8 -1
  31. package/es/components/expand-field/index.d.ts +792 -1
  32. package/es/components/expand-field/src/components/FormItemPerson.vue.d.ts +792 -1
  33. package/es/components/expand-field/src/components/PersonModal.vue.d.ts +792 -1
  34. package/es/components/expand-field/src/components/form.vue.d.ts +792 -1
  35. package/es/components/expand-field/src/components/form.vue2.js +8 -1
  36. package/es/components/expand-field/src/index.vue.d.ts +792 -1
  37. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +3 -1
  38. package/es/components/field-editor/index.d.ts +18 -0
  39. package/es/components/field-editor/src/FieldEditor.vue.d.ts +18 -0
  40. package/es/components/field-editor/src/FieldEditor.vue2.js +2 -1
  41. package/es/components/field-editor/src/fields.d.ts +1 -0
  42. package/es/components/field-editor/src/fields.js +6 -0
  43. package/es/components/field-set/src/FieldColor.vue.d.ts +6 -1
  44. package/es/components/field-set/src/FieldFilter.vue.d.ts +6 -1
  45. package/es/components/field-set/src/FieldSet.vue.d.ts +38 -1
  46. package/es/components/field-set/src/FieldSet.vue2.js +118 -69
  47. package/es/components/field-set/src/Index.vue2.js +8 -3
  48. package/es/components/field-set/src/TableStyle.vue2.js +2 -2
  49. package/es/components/field-set/src/components/table-row.vue.d.ts +2 -1
  50. package/es/components/field-set/src/components/table-row.vue2.js +21 -6
  51. package/es/components/field-set/src/constants/index.d.ts +1 -1
  52. package/es/components/field-set/src/types/index.d.ts +3 -1
  53. package/es/components/field-set/style/index.css +1 -1
  54. package/es/components/form-config/index.d.ts +102 -0
  55. package/es/components/form-config/src/FormConfig.vue.d.ts +102 -0
  56. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +18 -0
  57. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +63 -0
  58. package/es/components/form-config/src/components/FormConfigEdit.vue2.js +4 -4
  59. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +18 -0
  60. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +9 -2
  61. package/es/components/form-config/src/constants/index.d.ts +31 -1
  62. package/es/components/form-config/src/constants/index.js +150 -1
  63. package/es/components/form-config/src/hooks/useConfigurationField.d.ts +2 -2
  64. package/es/components/form-config/src/hooks/useConfigurationField.js +53 -6
  65. package/es/components/form-config/src/hooks/useLocale.d.ts +6 -0
  66. package/es/components/form-config/src/hooks/useLocale.js +34 -0
  67. package/es/components/form-config/src/types/index.d.ts +12 -0
  68. package/es/components/form-render/index.d.ts +18 -0
  69. package/es/components/form-render/src/FormRender.vue.d.ts +18 -0
  70. package/es/components/form-render/src/FormRender.vue2.js +5 -0
  71. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +18 -0
  72. package/es/components/form-render/src/components/renderer/formItem.d.ts +2 -0
  73. package/es/components/form-render/src/components/renderer/formItem.js +17 -3
  74. package/es/components/form-render/src/components/renderer/levelSearchCascader/index.js +4 -2
  75. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
  76. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
  77. package/es/components/form-render/src/components/renderer/radio_checkbox.js +2 -1
  78. package/es/components/form-render/src/components/renderer/searchCascade.js +3 -0
  79. package/es/components/form-render/src/hooks/useBusinessBinding.d.ts +12 -3
  80. package/es/components/form-render/src/hooks/useBusinessBinding.js +7 -7
  81. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +5 -2
  82. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
  83. package/es/components/form-render/src/hooks/useFieldNormalize.js +15 -0
  84. package/es/components/form-render/src/hooks/useFormContext.js +1 -1
  85. package/es/components/form-render/src/hooks/useFormValidator.js +8 -1
  86. package/es/components/form-render/src/hooks/useLowCodeReactions.js +2 -1
  87. package/es/components/form-render/src/types/index.d.ts +1 -0
  88. package/es/components/form-render/src/utils/business.d.ts +3 -1
  89. package/es/components/form-render/src/utils/business.js +7 -1
  90. package/es/components/iho-chat/index.d.ts +901 -98
  91. package/es/components/iho-chat/src/Index.vue.d.ts +901 -98
  92. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +24 -1
  93. package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +181 -8
  94. package/es/components/iho-chat/src/components/ChatFile.vue2.js +51 -41
  95. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +66 -6
  96. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +158 -57
  97. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +329 -15
  98. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +21 -19
  99. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +235 -20
  100. package/es/components/iho-chat/src/components/ChatMain.vue2.js +298 -279
  101. package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +51 -5
  102. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +3 -3
  103. package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +24 -1
  104. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +48 -2
  105. package/es/components/iho-chat/src/components/ContextMenu.js +34 -27
  106. package/es/components/iho-chat/src/components/ImageLightbox.vue.d.ts +104 -0
  107. package/es/components/iho-chat/src/components/ImageLightbox.vue.js +6 -0
  108. package/es/components/iho-chat/src/components/ImageLightbox.vue2.js +307 -0
  109. package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +24 -1
  110. package/es/components/iho-chat/src/components/MessageMergeForward.vue.d.ts +53 -6
  111. package/es/components/iho-chat/src/components/MessageMergeForward.vue2.js +3 -3
  112. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +93 -30
  113. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +349 -143
  114. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +24 -1
  115. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  116. package/es/components/iho-chat/src/components/SelectLabel.vue.d.ts +1 -1
  117. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +24 -1
  118. package/es/components/iho-chat/src/components/Video.vue.d.ts +38 -25
  119. package/es/components/iho-chat/src/components/Video.vue2.js +35 -40
  120. package/es/components/iho-chat/src/hooks/index.d.ts +1 -0
  121. package/es/components/iho-chat/src/hooks/index.js +1 -0
  122. package/es/components/iho-chat/src/hooks/useData.d.ts +51 -4
  123. package/es/components/iho-chat/src/hooks/useData.js +2 -7
  124. package/es/components/iho-chat/src/hooks/useDraggable.d.ts +25 -0
  125. package/es/components/iho-chat/src/hooks/useDraggable.js +160 -0
  126. package/es/components/iho-chat/src/hooks/useVideo.d.ts +78 -11
  127. package/es/components/iho-chat/src/hooks/useVideo.js +422 -44
  128. package/es/components/iho-chat/src/types/index.d.ts +37 -1
  129. package/es/components/iho-chat/src/utils/emoji.d.ts +1 -1
  130. package/es/components/iho-chat/src/utils/emoji.js +1 -1
  131. package/es/components/iho-chat/src/utils/index.d.ts +4 -3
  132. package/es/components/iho-chat/src/utils/index.js +33 -39
  133. package/es/components/iho-chat/style/index.css +1 -1
  134. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +8 -1
  135. package/es/components/iho-table/src/plugins/headerPlugin/index.js +5 -2
  136. package/es/components/iho-table/src/plugins/highLightSetPlugin.js +2 -1
  137. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  138. package/es/components/index.css +1 -1
  139. package/es/components/index.d.ts +2 -0
  140. package/es/components/index.js +1 -0
  141. package/es/components/info-header/index.d.ts +41 -0
  142. package/es/components/info-header/src/InfoHeader.vue.d.ts +41 -0
  143. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  144. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue2.js +56 -22
  145. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  146. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +19 -0
  147. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +18 -0
  148. package/es/components/info-header/src/components/patientInfo/index.vue2.js +16 -2
  149. package/es/components/keyboard/index.d.ts +8 -0
  150. package/es/components/keyboard/src/Keyboard.vue.d.ts +8 -0
  151. package/es/components/keyboard/src/Keyboard.vue2.js +33 -9
  152. package/es/components/keyboard/src/components/NumberPanel.vue.d.ts +3 -0
  153. package/es/components/keyboard/src/components/NumberPanel.vue2.js +27 -7
  154. package/es/components/keyboard/src/types.d.ts +17 -0
  155. package/es/components/keyboard/src/types.js +1 -0
  156. package/es/components/quick-search/index.d.ts +2 -0
  157. package/es/components/quick-search/src/index.vue.d.ts +2 -0
  158. package/es/components/scale-view/index.d.ts +80 -17
  159. package/es/components/scale-view/src/ScaleView.vue.d.ts +83 -19
  160. package/es/components/scale-view/src/ScaleView.vue2.js +84 -10
  161. package/es/components/scale-view/src/components/AnswerParse.vue.d.ts +5 -0
  162. package/es/components/scale-view/src/components/AnswerParse.vue2.js +74 -8
  163. package/es/components/scale-view/src/components/EvaluateCountdown.vue.d.ts +10 -7
  164. package/es/components/scale-view/src/components/EvaluateCountdown.vue2.js +28 -4
  165. package/es/components/scale-view/src/components/EvaluatePage.vue.d.ts +10 -7
  166. package/es/components/scale-view/src/components/EvaluatePage.vue2.js +29 -8
  167. package/es/components/scale-view/src/components/NoData.vue2.js +9 -3
  168. package/es/components/scale-view/src/components/ScaleScore.d.ts +1 -1
  169. package/es/components/scale-view/src/components/ScaleScore.js +47 -4
  170. package/es/components/scale-view/src/components/formitem/r-checkbox.js +20 -2
  171. package/es/components/scale-view/src/components/formitem/r-radio.js +2 -0
  172. package/es/components/scale-view/src/components/formitem/r-sign.js +32 -4
  173. package/es/components/scale-view/src/components/formitem/r-upload.js +65 -7
  174. package/es/components/scale-view/src/components/formitem/sign-com.js +8 -1
  175. package/es/components/scale-view/src/hooks/scaleview-computed.js +22 -6
  176. package/es/components/scale-view/src/hooks/scaleview-init.js +24 -3
  177. package/es/components/scale-view/src/hooks/scaleview-methods.js +40 -5
  178. package/es/components/scale-view/src/hooks/scaleview-props.d.ts +12 -0
  179. package/es/components/scale-view/src/hooks/scaleview-props.js +12 -0
  180. package/es/components/scale-view/src/hooks/scaleview-submit.d.ts +2 -1
  181. package/es/components/scale-view/src/hooks/scaleview-submit.js +64 -8
  182. package/es/components/scale-view/src/hooks/scaleview-validate.d.ts +1 -1
  183. package/es/components/scale-view/src/hooks/scaleview-validate.js +157 -24
  184. package/es/components/scale-view/src/hooks/use-evaluate.js +16 -2
  185. package/es/components/scale-view/src/hooks/use-noData.js +33 -5
  186. package/es/components/scale-view/src/utils/judge-types.d.ts +2 -1
  187. package/es/components/scale-view/src/utils/judge-types.js +10 -10
  188. package/es/components/scale-view/src/utils/watch-form-change.d.ts +13 -0
  189. package/es/components/scale-view/src/utils/watch-form-change.js +71 -0
  190. package/es/components/scale-view/style/index.css +1 -1
  191. package/es/components/select-person/index.d.ts +792 -1
  192. package/es/components/select-person/src/SelectPerson.vue.d.ts +434 -341
  193. package/es/components/select-person/src/SelectPerson.vue2.js +521 -675
  194. package/es/components/select-person/src/SelectPersonRole.vue.d.ts +630 -0
  195. package/es/components/select-person/src/SelectPersonRole.vue.js +6 -0
  196. package/es/components/select-person/src/SelectPersonRole.vue2.js +942 -0
  197. package/es/components/select-person/src/components/GroupItem.vue.d.ts +19 -0
  198. package/es/components/select-person/src/components/GroupItem.vue.js +6 -0
  199. package/es/components/select-person/src/components/GroupItem.vue2.js +37 -0
  200. package/es/components/select-person/src/components/SearchGroupList.vue.d.ts +214 -0
  201. package/es/components/select-person/src/components/SearchGroupList.vue.js +6 -0
  202. package/es/components/select-person/src/components/SearchGroupList.vue2.js +145 -0
  203. package/es/components/select-person/src/components/SearchMultiple.vue2.js +1 -1
  204. package/es/components/select-person/src/components/SearchOrgAndStaff.vue2.js +21 -12
  205. package/es/components/select-person/src/components/TagItem.vue.d.ts +43 -0
  206. package/es/components/select-person/src/components/TagItem.vue.js +6 -0
  207. package/es/components/select-person/src/components/TagItem.vue2.js +40 -0
  208. package/es/components/select-person/src/index.vue.d.ts +793 -1
  209. package/es/components/select-person/src/index.vue2.js +21 -4
  210. package/es/components/select-person/src/types/index.d.ts +35 -0
  211. package/es/components/select-person/src/types/index.js +1 -0
  212. package/es/components/select-person/src/utils/index.d.ts +3 -0
  213. package/es/components/select-person/src/utils/index.js +29 -8
  214. package/es/components/select-person/style/index.css +1 -1
  215. package/es/components/shortcut-setter/index.d.ts +18 -0
  216. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +18 -0
  217. package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue.d.ts +1 -0
  218. package/es/components/table-filter/src/components/bi-filter/components/SelectFilter.vue.d.ts +1 -0
  219. package/es/components/table-filter/src/components/bi-filter/components/index.d.ts +1 -0
  220. package/es/components/table-filter/src/components/bi-filter/index.vue.d.ts +1 -0
  221. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +54 -6
  222. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +26 -10
  223. package/es/components/table-filter/src/components/classify-filter/components/Date.vue.d.ts +17 -2
  224. package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +37 -2
  225. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue.d.ts +18 -2
  226. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +44 -1
  227. package/es/components/table-filter/src/components/classify-filter/components/SelectFilter.vue.d.ts +1 -0
  228. package/es/components/table-filter/src/components/classify-filter/components/index.d.ts +36 -4
  229. package/es/components/table-filter/src/components/classify-filter/hooks/useFilterConditions.js +2 -1
  230. package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +55 -6
  231. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +6 -3
  232. package/es/components/table-filter/src/components/render-widget/components/DateInner.vue.d.ts +1 -1
  233. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +12 -1
  234. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue.d.ts +1 -1
  235. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue2.js +25 -6
  236. package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts +1 -1
  237. package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +12 -1
  238. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +2 -2
  239. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +32 -4
  240. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +2 -2
  241. package/es/components/table-filter/src/hooks/useAdvanced.d.ts +2 -0
  242. package/es/components/table-filter/src/hooks/useAdvanced.js +20 -3
  243. package/es/components/table-filter/src/hooks/useRenderWidget.js +4 -0
  244. package/es/components/table-filter/src/tool/baseOptions.js +8 -1
  245. package/es/components/table-filter/src/tool/date.d.ts +3 -0
  246. package/es/components/table-filter/src/tool/date.js +139 -0
  247. package/es/components/table-filter/src/tool/transformData.d.ts +1 -0
  248. package/es/components/table-filter/src/tool/transformData.js +11 -8
  249. package/es/components/table-filter/src/types/enums.d.ts +1 -0
  250. package/es/components/table-filter/src/types/enums.js +2 -1
  251. package/es/components/table-filter/src/types/index.d.ts +12 -0
  252. package/es/components/vertify/index.d.ts +1 -0
  253. package/es/components/vertify/index.js +1 -0
  254. package/es/components/vertify/src/components/IdentityVerification.vue.d.ts +89 -0
  255. package/es/components/vertify/src/components/IdentityVerification.vue.js +6 -0
  256. package/es/components/vertify/src/components/IdentityVerification.vue2.js +256 -0
  257. package/es/components/vertify/src/utils/dialog.d.ts +7 -0
  258. package/es/components/vertify/src/utils/dialog.js +73 -0
  259. package/es/components/vertify/src/utils/index.d.ts +11 -0
  260. package/es/components/vertify/src/utils/index.js +24 -0
  261. package/es/components/vod-chunk-upload/index.d.ts +16 -0
  262. package/es/components/vod-chunk-upload/src/chunk-upload-new.vue.d.ts +20 -31
  263. package/es/components/vod-chunk-upload/src/chunk-upload-new.vue2.js +205 -78
  264. package/es/components/vod-chunk-upload/src/hooks/upload-computed.d.ts +1 -0
  265. package/es/components/vod-chunk-upload/src/hooks/upload-computed.js +35 -4
  266. package/es/components/vod-chunk-upload/src/hooks/upload-data.d.ts +4 -0
  267. package/es/components/vod-chunk-upload/src/hooks/upload-data.js +78 -11
  268. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.d.ts +16 -0
  269. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +81 -10
  270. package/es/components/vod-chunk-upload/style/index.css +1 -1
  271. package/es/env.d.ts +25 -25
  272. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  273. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  274. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  275. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  276. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  277. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  278. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  279. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  280. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  281. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  282. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  283. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  284. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  285. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  286. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  287. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  288. package/es/shared/components/InputNumberSlash/InputNumberSlash.js +1 -1
  289. package/es/shared/hooks/selectHooks/useSearchContent.js +1 -1
  290. package/es/shared/hooks/useLevelSearchCascader.js +3 -3
  291. package/es/shared/package.json.js +1 -1
  292. package/es/shared/utils/fabricjs/index.js +1 -1
  293. package/package.json +4 -3
@@ -1,11 +1,11 @@
1
- import { createElementVNode, defineComponent, ref, computed, onBeforeUnmount, openBlock, createElementBlock, withDirectives, toDisplayString, unref, vShow, createVNode, withCtx, Fragment, renderList, createCommentVNode, createTextVNode, nextTick } from 'vue';
2
- import { NButton, NIcon } from 'naive-ui';
1
+ import { createElementVNode, defineComponent, ref, computed, watch, onBeforeUnmount, openBlock, createElementBlock, Fragment, withDirectives, normalizeStyle, unref, toDisplayString, vShow, createVNode, withCtx, renderList, createCommentVNode, createTextVNode, nextTick } from 'vue';
2
+ import { NButton, NIcon, NAvatar } from 'naive-ui';
3
3
  import ChatAdd from './ChatAdd.vue.js';
4
- import { Close, Mic, MicOff, Videocam, VideocamOff, Call, PersonAdd } from '@vicons/ionicons5';
4
+ import { Close, Mic, MicOff, Videocam, VideocamOff, Call, PersonAdd, ResizeOutline } from '@vicons/ionicons5';
5
5
  import { getUserDetailApi } from '../api/index.js';
6
6
  import '@vueuse/core';
7
7
  import { $message } from '../utils/index.js';
8
- import { xorBy } from 'lodash-es';
8
+ import 'lodash-es';
9
9
  import { CHAT_TYPE, SUBSCRIBE_MESSAGE_TYPE } from '../constants/index.js';
10
10
  import '../../../../shared/utils/index.js';
11
11
  import 'date-fns';
@@ -16,32 +16,29 @@ import '../../../../shared/hooks/useScrollLoading.js';
16
16
  import 'stompjs';
17
17
  import 'sockjs-client/dist/sockjs.min.js';
18
18
  import { useVideo } from '../hooks/useVideo.js';
19
- import TRTC from 'trtc-sdk-v5';
19
+ import { useDraggable } from '../hooks/useDraggable.js';
20
20
 
21
21
  const _hoisted_1 = {
22
- class: "video-wrapper video-wrapper--multiple"
22
+ class: "top-right-btns"
23
23
  };
24
24
  const _hoisted_2 = {
25
- class: "video-header"
26
- };
27
- const _hoisted_3 = {
28
25
  key: 0,
29
26
  class: "video-main"
30
27
  };
31
- const _hoisted_4 = {
28
+ const _hoisted_3 = {
32
29
  class: "video-main__left"
33
30
  };
34
- const _hoisted_5 = ["data-name"];
35
- const _hoisted_6 = {
31
+ const _hoisted_4 = ["data-name"];
32
+ const _hoisted_5 = {
36
33
  class: "video-bottom"
37
34
  };
38
- const _hoisted_7 = {
35
+ const _hoisted_6 = {
39
36
  class: "btn-group"
40
37
  };
41
- const _hoisted_8 = {
38
+ const _hoisted_7 = {
42
39
  class: "btn"
43
40
  };
44
- const _hoisted_9 = /* @__PURE__ */ createElementVNode("span", {
41
+ const _hoisted_8 = /* @__PURE__ */ createElementVNode("span", {
45
42
  class: "text"
46
43
  }, function() {
47
44
  var _a, _b, _c;
@@ -51,10 +48,10 @@ const _hoisted_9 = /* @__PURE__ */ createElementVNode("span", {
51
48
  return "\u9759\u97F3";
52
49
  }
53
50
  }(), -1);
54
- const _hoisted_10 = {
51
+ const _hoisted_9 = {
55
52
  class: "btn"
56
53
  };
57
- const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
54
+ const _hoisted_10 = /* @__PURE__ */ createElementVNode("span", {
58
55
  class: "text"
59
56
  }, function() {
60
57
  var _a, _b, _c;
@@ -64,7 +61,7 @@ const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
64
61
  return "\u6444\u50CF\u5934";
65
62
  }
66
63
  }(), -1);
67
- const _hoisted_12 = /* @__PURE__ */ createElementVNode("span", {
64
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
68
65
  class: "text"
69
66
  }, function() {
70
67
  var _a, _b, _c;
@@ -74,10 +71,10 @@ const _hoisted_12 = /* @__PURE__ */ createElementVNode("span", {
74
71
  return "\u7ED3\u675F\u4F1A\u8BCA";
75
72
  }
76
73
  }(), -1);
77
- const _hoisted_13 = {
74
+ const _hoisted_12 = {
78
75
  class: "btn"
79
76
  };
80
- const _hoisted_14 = /* @__PURE__ */ createElementVNode("span", {
77
+ const _hoisted_13 = /* @__PURE__ */ createElementVNode("span", {
81
78
  class: "text"
82
79
  }, function() {
83
80
  var _a, _b, _c;
@@ -87,35 +84,35 @@ const _hoisted_14 = /* @__PURE__ */ createElementVNode("span", {
87
84
  return "\u6DFB\u52A0\u53C2\u4F1A\u4EBA";
88
85
  }
89
86
  }(), -1);
90
- const _hoisted_15 = {
87
+ const _hoisted_14 = {
91
88
  class: "video-main__right"
92
89
  };
93
- const _hoisted_16 = ["id", "data-name"];
94
- const _hoisted_17 = {
90
+ const _hoisted_15 = ["id", "data-name"];
91
+ const _hoisted_16 = {
95
92
  class: "user"
96
93
  };
97
- const _hoisted_18 = {
94
+ const _hoisted_17 = {
98
95
  class: "name"
99
96
  };
100
- const _hoisted_19 = {
97
+ const _hoisted_18 = {
101
98
  key: 0,
102
99
  class: "tip"
103
100
  };
104
- const _hoisted_20 = {
101
+ const _hoisted_19 = {
105
102
  key: 0,
106
103
  class: "calling-box"
107
104
  };
108
- const _hoisted_21 = {
105
+ const _hoisted_20 = {
109
106
  class: "btn-box"
110
107
  };
111
- const _hoisted_22 = {
108
+ const _hoisted_21 = {
112
109
  key: 1,
113
110
  class: "opt-btn"
114
111
  };
115
- const _hoisted_23 = {
112
+ const _hoisted_22 = {
116
113
  class: "btn"
117
114
  };
118
- const _hoisted_24 = /* @__PURE__ */ createElementVNode("span", null, function() {
115
+ const _hoisted_23 = /* @__PURE__ */ createElementVNode("span", null, function() {
119
116
  var _a, _b, _c;
120
117
  try {
121
118
  return ((_a = window.getLanguageByCode) == null ? void 0 : _a.call(window, "10010.1.113")) || ((_c = (_b = window.top) == null ? void 0 : _b.getLanguageByCode) == null ? void 0 : _c.call(_b, "10010.1.113")) || "\u62D2\u63A5";
@@ -123,10 +120,10 @@ const _hoisted_24 = /* @__PURE__ */ createElementVNode("span", null, function()
123
120
  return "\u62D2\u63A5";
124
121
  }
125
122
  }(), -1);
126
- const _hoisted_25 = {
123
+ const _hoisted_24 = {
127
124
  class: "btn"
128
125
  };
129
- const _hoisted_26 = /* @__PURE__ */ createElementVNode("span", null, function() {
126
+ const _hoisted_25 = /* @__PURE__ */ createElementVNode("span", null, function() {
130
127
  var _a, _b, _c;
131
128
  try {
132
129
  return ((_a = window.getLanguageByCode) == null ? void 0 : _a.call(window, "10010.1.114")) || ((_c = (_b = window.top) == null ? void 0 : _b.getLanguageByCode) == null ? void 0 : _c.call(_b, "10010.1.114")) || "\u63A5\u542C";
@@ -134,30 +131,51 @@ const _hoisted_26 = /* @__PURE__ */ createElementVNode("span", null, function()
134
131
  return "\u63A5\u542C";
135
132
  }
136
133
  }(), -1);
134
+ const _hoisted_26 = {
135
+ class: "header"
136
+ };
137
+ const _hoisted_27 = {
138
+ class: "content"
139
+ };
137
140
  var _sfc_main = /* @__PURE__ */ defineComponent({
138
141
  __name: "MultipleVideo",
139
142
  setup(__props) {
140
143
  const selfVideoRef = ref();
141
- const remoteUsers = ref([]);
142
144
  const {
143
145
  state,
144
146
  sendMessage,
145
- trtc,
146
- trtcProxy,
147
147
  voiceClose,
148
148
  isAudio,
149
149
  isCall,
150
150
  startTimer,
151
- resetTimer,
152
151
  toggleAudio,
153
152
  messageTypeText,
154
153
  timing,
155
154
  toggleVideo,
156
155
  videocamClose,
157
156
  installEventHandlers,
158
- uninstallEventHandlers
159
- } = useVideo();
160
- const isConnect = ref(false);
157
+ uninstallEventHandlers,
158
+ isConnect,
159
+ remoteUsers,
160
+ enterRoom,
161
+ exitRoom,
162
+ startLocalMedia,
163
+ findUser,
164
+ addOrUpdateUser,
165
+ removeUser,
166
+ tryRenderRemoteVideo,
167
+ stopRemoteVideo,
168
+ setVideoRef,
169
+ checkAndRenderAllVideos,
170
+ MAIN_STREAM_TYPE
171
+ } = useVideo({
172
+ isMultiple: true,
173
+ enableRetry: true
174
+ });
175
+ const wrapperRef = ref(null);
176
+ const handleRef = ref(null);
177
+ const isMaxSize = ref(true);
178
+ const miniWrapperRef = ref(null);
161
179
  const callUser = computed(() => isCall.value ? state.userInfo.name : state.currentAVMsg.sendName);
162
180
  const title = computed(() => {
163
181
  if (!isConnect.value)
@@ -165,18 +183,58 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
165
183
  const count = isCall.value ? `\uFF08${remoteUsers.value.length + 1}/${state.currentAVMsg.checkedIds.length + 1}\uFF09` : "";
166
184
  return `${callUser.value}\u53D1\u8D77\u7684${messageTypeText.value}\u4F1A\u8BCA${count} ${timing.value}`;
167
185
  });
186
+ const {
187
+ style,
188
+ changePosition
189
+ } = useDraggable(wrapperRef, {
190
+ initialPosition: "center",
191
+ handle: handleRef
192
+ });
193
+ const {
194
+ style: miniStyle,
195
+ changePosition: changeMiniPosition
196
+ } = useDraggable(miniWrapperRef);
197
+ watch(() => isMaxSize.value, (val) => {
198
+ if (val) {
199
+ changePosition("center");
200
+ } else {
201
+ changeMiniPosition("top-right");
202
+ }
203
+ });
204
+ watch(() => remoteUsers.value.length, (newLength, oldLength) => {
205
+ console.log(`Remote users count changed: ${oldLength} -> ${newLength}`);
206
+ if (newLength > 0 && isConnect.value) {
207
+ setTimeout(() => {
208
+ checkAndRenderAllVideos();
209
+ }, 500);
210
+ }
211
+ });
168
212
  function handleAddPerson({
169
213
  checkedIds,
170
214
  checkedOptions
171
215
  }) {
172
- console.log("checkedIds :>> ", checkedIds, checkedOptions);
173
- state.currentAVMsg.checkedIds.push(...checkedIds);
174
- handleCall();
216
+ if (!(checkedIds == null ? void 0 : checkedIds.length)) {
217
+ console.warn("No users selected to add");
218
+ return;
219
+ }
220
+ console.log("Adding persons to call:", checkedIds, checkedOptions);
221
+ try {
222
+ state.currentAVMsg.checkedIds.push(...checkedIds);
223
+ if (isConnect.value) {
224
+ sendInvitations(checkedIds);
225
+ } else {
226
+ handleCall();
227
+ }
228
+ } catch (error) {
229
+ console.error("Error adding persons to call:", error);
230
+ $message.error("\u6DFB\u52A0\u53C2\u4F1A\u4EBA\u5931\u8D25");
231
+ }
175
232
  }
176
- function handleCall() {
177
- var _a;
178
- if ((_a = state.currentAVMsg.checkedIds) == null ? void 0 : _a.length) {
179
- state.currentAVMsg.checkedIds.forEach((id) => {
233
+ function sendInvitations(userIds) {
234
+ if (!(userIds == null ? void 0 : userIds.length))
235
+ return;
236
+ userIds.forEach((id) => {
237
+ try {
180
238
  sendMessage({
181
239
  chatType: CHAT_TYPE.SINGLE,
182
240
  content: {
@@ -185,154 +243,281 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
185
243
  },
186
244
  receiver: id
187
245
  });
188
- });
189
- }
190
- if (isConnect.value)
246
+ } catch (error) {
247
+ console.error("Failed to send invitation to user:", id, error);
248
+ }
249
+ });
250
+ }
251
+ function handleCall() {
252
+ var _a;
253
+ if (isConnect.value) {
254
+ console.log("Already connected to call");
191
255
  return;
192
- handleEnter();
256
+ }
257
+ try {
258
+ if ((_a = state.currentAVMsg.checkedIds) == null ? void 0 : _a.length) {
259
+ sendInvitations(state.currentAVMsg.checkedIds);
260
+ }
261
+ handleEnter();
262
+ } catch (error) {
263
+ console.error("Error starting call:", error);
264
+ $message.error("\u5F00\u59CB\u901A\u8BDD\u5931\u8D25");
265
+ }
193
266
  }
194
267
  async function handleEnter() {
195
- const checkResult = await TRTC.isSupported();
196
- if (!checkResult.result || !checkResult.detail.isH264EncodeSupported || !checkResult.detail.isH264DecodeSupported) {
197
- console.log("checkResult :>> ", checkResult);
268
+ const success = await enterRoom();
269
+ if (!success) {
198
270
  state.showMultipleVideo = false;
199
271
  return;
200
272
  }
201
273
  try {
202
- await trtc.enterRoom({
203
- strRoomId: state.currentAVMsg.strRoomId,
204
- sdkAppId: parseInt(state.userInfo.sdkAppID),
205
- userId: state.userInfo.id,
206
- userSig: state.userInfo.userSig,
207
- proxy: trtcProxy.value
208
- });
209
- isConnect.value = true;
210
274
  startTimer();
211
275
  installEventHandlers({
212
276
  handleError,
213
277
  handleRemoteUserEnter,
214
278
  handleRemoteAudioAvailable,
215
279
  handleRemoteUserExit,
216
- handleRemoteVideoAvailable
217
- });
218
- await trtc.startLocalAudio({
219
- mute: voiceClose.value
220
- });
221
- if (isAudio.value)
222
- return;
223
- await trtc.startLocalVideo({
224
- view: selfVideoRef.value,
225
- mute: videocamClose.value
280
+ handleRemoteVideoAvailable,
281
+ handleRemoteVideoUnavailable
226
282
  });
283
+ await startLocalMedia(selfVideoRef.value);
284
+ console.log("Successfully set up multiple video call");
285
+ setTimeout(() => {
286
+ checkAndRenderAllVideos();
287
+ }, 1e3);
288
+ periodicCheckInterval = setInterval(() => {
289
+ if (isConnect.value && remoteUsers.value.length > 0) {
290
+ console.log("Periodic video check, current users:", remoteUsers.value.map((u) => `${u.id}(video:${u.hasVideo})`));
291
+ checkAndRenderAllVideos();
292
+ } else if (!isConnect.value) {
293
+ console.log("Not connected, clearing check interval");
294
+ if (periodicCheckInterval) {
295
+ clearInterval(periodicCheckInterval);
296
+ periodicCheckInterval = null;
297
+ }
298
+ }
299
+ }, 5e3);
227
300
  } catch (error) {
228
- console.log("error :>> ", error);
229
- $message.error(error);
301
+ console.error("Error setting up multiple video call:", error);
302
+ $message.error("\u8BBE\u7F6E\u591A\u4EBA\u89C6\u9891\u901A\u8BDD\u5931\u8D25");
230
303
  state.showMultipleVideo = false;
231
304
  }
232
305
  }
233
306
  async function handleExit() {
234
307
  try {
235
308
  state.showMultipleVideo = false;
236
- uninstallEventHandlers({
237
- handleError,
238
- handleRemoteUserEnter,
239
- handleRemoteAudioAvailable,
240
- handleRemoteUserExit,
241
- handleRemoteVideoAvailable
242
- });
243
- await trtc.exitRoom();
244
- await trtc.stopLocalAudio();
245
- if (isAudio.value)
246
- return;
247
- await trtc.stopLocalVideo();
309
+ if (isConnect.value) {
310
+ uninstallEventHandlers({
311
+ handleError,
312
+ handleRemoteUserEnter,
313
+ handleRemoteAudioAvailable,
314
+ handleRemoteUserExit,
315
+ handleRemoteVideoAvailable,
316
+ handleRemoteVideoUnavailable
317
+ });
318
+ }
319
+ await exitRoom();
248
320
  } catch (error) {
249
- console.log("error :>> ", error);
321
+ console.error("Error during exit:", error);
250
322
  }
251
323
  }
252
324
  async function handleRemoteVideoAvailable(event) {
253
325
  const {
254
326
  userId,
255
- streamType
327
+ streamType,
328
+ available
256
329
  } = event;
330
+ if (!userId) {
331
+ return;
332
+ }
333
+ const isMainStream = !streamType || streamType === MAIN_STREAM_TYPE;
334
+ if (!isMainStream) {
335
+ return;
336
+ }
257
337
  try {
258
- if (streamType === TRTC.TYPE.STREAM_TYPE_MAIN) {
338
+ console.log(`Remote video ${available ? "available" : "unavailable"} for user:`, userId);
339
+ let user = findUser(userId);
340
+ if (!user) {
341
+ const name = await getUserName(userId);
342
+ addOrUpdateUser(userId, {
343
+ name,
344
+ hasVideo: true
345
+ });
346
+ console.log("Added user from video available event:", userId, name);
259
347
  await nextTick();
260
- await trtc.startRemoteVideo({
261
- userId,
262
- streamType,
263
- view: userId
348
+ setTimeout(() => {
349
+ tryRenderRemoteVideo(userId);
350
+ }, 100);
351
+ } else {
352
+ addOrUpdateUser(userId, {
353
+ hasVideo: true
264
354
  });
355
+ await nextTick();
356
+ await tryRenderRemoteVideo(userId);
265
357
  }
266
358
  } catch (error) {
267
- console.log("error :>> ", error);
359
+ console.error("Error handling remote video available:", error);
268
360
  }
269
361
  }
362
+ async function handleRemoteVideoUnavailable(event) {
363
+ const {
364
+ userId,
365
+ streamType,
366
+ available
367
+ } = event;
368
+ addOrUpdateUser(userId, {
369
+ hasVideo: false
370
+ });
371
+ await stopRemoteVideo(userId);
372
+ }
270
373
  async function handleRemoteAudioAvailable(event) {
271
- var _a;
272
374
  const {
273
- userId
375
+ userId,
376
+ available
274
377
  } = event;
275
- if (userId && !((_a = remoteUsers.value.map((user) => user.id)) == null ? void 0 : _a.includes(userId))) {
276
- const name = await getUserName(userId);
277
- remoteUsers.value.push({
278
- id: userId,
279
- name
280
- });
378
+ if (!userId)
379
+ return;
380
+ try {
381
+ console.log(`Remote audio ${available ? "available" : "unavailable"} for user:`, userId);
382
+ let user = findUser(userId);
383
+ if (!user && available) {
384
+ const name = await getUserName(userId);
385
+ addOrUpdateUser(userId, {
386
+ name,
387
+ hasAudio: true
388
+ });
389
+ console.log("Added user from audio available event:", userId, name);
390
+ } else {
391
+ addOrUpdateUser(userId, {
392
+ hasAudio: available
393
+ });
394
+ }
395
+ } catch (error) {
396
+ console.error("Error handling remote audio available:", error);
281
397
  }
282
398
  }
283
399
  async function handleRemoteUserEnter(event) {
284
400
  const {
285
401
  userId
286
402
  } = event;
287
- const name = await getUserName(userId);
288
- remoteUsers.value.push({
289
- id: userId,
290
- name
291
- });
292
- startTimer();
403
+ if (!userId)
404
+ return;
405
+ try {
406
+ console.log("\u76D1\u542C\u5230\u8FDC\u7A0B\u7528\u6237\u8FDB\u623F\u95F4\u4E86\u300B\u300B\u300B\u300B\u300B", userId);
407
+ if (!findUser(userId)) {
408
+ const name = await getUserName(userId);
409
+ addOrUpdateUser(userId, {
410
+ name
411
+ });
412
+ console.log("Remote user entered:", userId, name);
413
+ await nextTick();
414
+ setTimeout(() => {
415
+ const user = findUser(userId);
416
+ if (user == null ? void 0 : user.hasVideo) {
417
+ console.log("User already has video stream, attempting to render");
418
+ tryRenderRemoteVideo(userId);
419
+ }
420
+ }, 100);
421
+ }
422
+ } catch (error) {
423
+ console.error("Error handling remote user enter:", error);
424
+ }
293
425
  }
294
426
  async function getUserName(userId) {
295
- const data = await getUserDetailApi({
296
- userId
297
- });
298
- return (data == null ? void 0 : data.name) || "";
427
+ try {
428
+ const data = await getUserDetailApi({
429
+ userId
430
+ });
431
+ return (data == null ? void 0 : data.name) || userId;
432
+ } catch (error) {
433
+ console.warn("Failed to get user name for:", userId, error);
434
+ return userId;
435
+ }
299
436
  }
300
437
  function handleRemoteUserExit(event) {
301
- console.log("event :>> \u9000\u623F", event);
302
438
  const {
303
439
  userId
304
440
  } = event;
305
- remoteUsers.value = xorBy(remoteUsers.value, [{
306
- id: userId,
307
- name: ""
308
- }], "id");
441
+ if (!userId)
442
+ return;
443
+ console.log("Remote user exited:", userId);
444
+ try {
445
+ removeUser(userId);
446
+ console.log("Cleaned up resources for user:", userId);
447
+ setTimeout(() => {
448
+ const user = findUser(userId);
449
+ if (user) {
450
+ console.warn("User still exists after removal, force removing:", userId);
451
+ const userIndex = remoteUsers.value.findIndex((u) => u.id === userId);
452
+ if (userIndex !== -1) {
453
+ remoteUsers.value.splice(userIndex, 1);
454
+ }
455
+ }
456
+ }, 100);
457
+ } catch (error) {
458
+ console.error("Error handling remote user exit:", error);
459
+ }
309
460
  }
310
461
  function handleError(error) {
311
- console.log("error :>> ", error);
462
+ console.error("TRTC error occurred:", error);
463
+ if (error.code) {
464
+ switch (error.code) {
465
+ case -3301:
466
+ $message.error("\u8FDB\u5165\u623F\u95F4\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5");
467
+ break;
468
+ case -3302:
469
+ $message.error("\u7F51\u7EDC\u8FDE\u63A5\u65AD\u5F00\uFF0C\u6B63\u5728\u5C1D\u8BD5\u91CD\u8FDE...");
470
+ break;
471
+ default:
472
+ $message.error(`\u901A\u8BDD\u51FA\u73B0\u9519\u8BEF: ${error.message || "\u672A\u77E5\u9519\u8BEF"}`);
473
+ }
474
+ } else {
475
+ $message.error("\u901A\u8BDD\u51FA\u73B0\u672A\u77E5\u9519\u8BEF");
476
+ }
312
477
  state.showMultipleVideo = false;
313
478
  }
314
- onBeforeUnmount(() => {
315
- handleExit();
479
+ let periodicCheckInterval = null;
480
+ onBeforeUnmount(async () => {
481
+ console.log("Component unmounting, cleaning up...");
482
+ if (periodicCheckInterval) {
483
+ clearInterval(periodicCheckInterval);
484
+ periodicCheckInterval = null;
485
+ }
486
+ await handleExit();
316
487
  });
317
488
  return (_ctx, _cache) => {
318
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [withDirectives(createElementVNode("span", {
489
+ return openBlock(), createElementBlock(Fragment, null, [withDirectives(createElementVNode("div", {
490
+ class: "video-wrapper video-wrapper--multiple",
491
+ ref_key: "wrapperRef",
492
+ ref: wrapperRef,
493
+ style: normalizeStyle(unref(style))
494
+ }, [createElementVNode("div", {
495
+ class: "video-header",
496
+ ref_key: "handleRef",
497
+ ref: handleRef
498
+ }, [withDirectives(createElementVNode("span", {
319
499
  class: "title"
320
- }, toDisplayString(unref(title)), 513), [[vShow, isConnect.value]]), createVNode(unref(NButton), {
500
+ }, toDisplayString(unref(title)), 513), [[vShow, unref(isConnect)]]), createElementVNode("div", _hoisted_1, [createVNode(unref(NButton), {
321
501
  quaternary: "",
322
- circle: "",
502
+ size: "tiny",
503
+ class: "custom-btn",
504
+ onClick: _cache[0] || (_cache[0] = () => isMaxSize.value = false)
505
+ }), createVNode(unref(NButton), {
506
+ text: "",
323
507
  color: "#ffffffcc",
324
508
  onClick: handleExit
325
509
  }, {
326
- icon: withCtx(() => [createVNode(unref(NIcon), {
510
+ default: withCtx(() => [createVNode(unref(NIcon), {
511
+ size: "18",
327
512
  component: unref(Close)
328
513
  }, null, 8, ["component"])]),
329
514
  _: 1
330
- })]), isConnect.value ? (openBlock(), createElementBlock("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [createElementVNode("div", {
515
+ })])], 512), unref(isConnect) ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [createElementVNode("div", {
331
516
  ref_key: "selfVideoRef",
332
517
  ref: selfVideoRef,
333
518
  class: "video-view",
334
519
  "data-name": unref(state).userInfo.name
335
- }, null, 8, _hoisted_5), createElementVNode("div", _hoisted_6, [createElementVNode("div", _hoisted_7, [createElementVNode("div", _hoisted_8, [createVNode(unref(NButton), {
520
+ }, null, 8, _hoisted_4), createElementVNode("div", _hoisted_5, [createElementVNode("div", _hoisted_6, [createElementVNode("div", _hoisted_7, [createVNode(unref(NButton), {
336
521
  text: "",
337
522
  color: !unref(voiceClose) ? "#fff" : "#000",
338
523
  onClick: unref(toggleAudio)
@@ -341,7 +526,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
341
526
  component: !unref(voiceClose) ? unref(Mic) : unref(MicOff)
342
527
  }, null, 8, ["component"])]),
343
528
  _: 1
344
- }, 8, ["color", "onClick"]), _hoisted_9]), createElementVNode("div", _hoisted_10, [createVNode(unref(NButton), {
529
+ }, 8, ["color", "onClick"]), _hoisted_8]), createElementVNode("div", _hoisted_9, [createVNode(unref(NButton), {
345
530
  text: "",
346
531
  color: !unref(videocamClose) ? "#fff" : "#000",
347
532
  disabled: unref(isAudio),
@@ -351,7 +536,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
351
536
  component: !unref(videocamClose) ? unref(Videocam) : unref(VideocamOff)
352
537
  }, null, 8, ["component"])]),
353
538
  _: 1
354
- }, 8, ["color", "disabled", "onClick"]), _hoisted_11]), createElementVNode("div", {
539
+ }, 8, ["color", "disabled", "onClick"]), _hoisted_10]), createElementVNode("div", {
355
540
  class: "btn",
356
541
  onClick: handleExit
357
542
  }, [createVNode(unref(NButton), {
@@ -363,11 +548,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
363
548
  component: unref(Call)
364
549
  }, null, 8, ["component"])]),
365
550
  _: 1
366
- }), _hoisted_12]), createVNode(ChatAdd, {
551
+ }), _hoisted_11]), createVNode(ChatAdd, {
367
552
  onComfirm: handleAddPerson,
368
553
  disabledIds: unref(state).currentAVMsg.checkedIds
369
554
  }, {
370
- trigger: withCtx(() => [createElementVNode("div", _hoisted_13, [createVNode(unref(NButton), {
555
+ trigger: withCtx(() => [createElementVNode("div", _hoisted_12, [createVNode(unref(NButton), {
371
556
  text: "",
372
557
  color: "#fff"
373
558
  }, {
@@ -375,18 +560,20 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
375
560
  component: unref(PersonAdd)
376
561
  }, null, 8, ["component"])]),
377
562
  _: 1
378
- }), _hoisted_14])]),
563
+ }), _hoisted_13])]),
379
564
  _: 1
380
- }, 8, ["disabledIds"])])])]), createElementVNode("div", _hoisted_15, [(openBlock(true), createElementBlock(Fragment, null, renderList(remoteUsers.value, (user) => {
565
+ }, 8, ["disabledIds"])])])]), createElementVNode("div", _hoisted_14, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(remoteUsers), (user) => {
381
566
  return openBlock(), createElementBlock("div", {
382
567
  key: user.id,
383
568
  id: user.id,
384
569
  class: "video-view",
385
- "data-name": user.name
386
- }, null, 8, _hoisted_16);
570
+ "data-name": user.name,
571
+ ref_for: true,
572
+ ref: (el) => unref(setVideoRef)(user.id, el)
573
+ }, null, 8, _hoisted_15);
387
574
  }), 128))])])) : (openBlock(), createElementBlock(Fragment, {
388
575
  key: 1
389
- }, [createElementVNode("div", _hoisted_17, [createElementVNode("span", _hoisted_18, toDisplayString(unref(callUser)) + function() {
576
+ }, [createElementVNode("div", _hoisted_16, [createElementVNode("span", _hoisted_17, toDisplayString(unref(callUser)) + function() {
390
577
  var _a, _b, _c;
391
578
  try {
392
579
  return ((_a = window.getLanguageByCode) == null ? void 0 : _a.call(window, "10010.1.108")) || ((_c = (_b = window.top) == null ? void 0 : _b.getLanguageByCode) == null ? void 0 : _c.call(_b, "10010.1.108")) || "\u53D1\u8D77\u7684";
@@ -400,7 +587,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
400
587
  } catch (e) {
401
588
  return "\u4F1A\u8BAE";
402
589
  }
403
- }(), 1), !unref(isCall) ? (openBlock(), createElementBlock("span", _hoisted_19, function() {
590
+ }(), 1), !unref(isCall) ? (openBlock(), createElementBlock("span", _hoisted_18, function() {
404
591
  var _a, _b, _c;
405
592
  try {
406
593
  return ((_a = window.getLanguageByCode) == null ? void 0 : _a.call(window, "10010.1.110")) || ((_c = (_b = window.top) == null ? void 0 : _b.getLanguageByCode) == null ? void 0 : _c.call(_b, "10010.1.110")) || "\u9080\u8BF7\u4F60\u52A0\u5165";
@@ -414,7 +601,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
414
601
  } catch (e) {
415
602
  return "\u4F1A\u8BAE";
416
603
  }
417
- }(), 1)) : createCommentVNode("v-if", true)]), unref(isCall) ? (openBlock(), createElementBlock("div", _hoisted_20, [createVNode(ChatAdd, {
604
+ }(), 1)) : createCommentVNode("v-if", true)]), unref(isCall) ? (openBlock(), createElementBlock("div", _hoisted_19, [createVNode(ChatAdd, {
418
605
  onComfirm: handleAddPerson,
419
606
  disabledIds: unref(state).currentAVMsg.checkedIds
420
607
  }, {
@@ -459,10 +646,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
459
646
  }
460
647
  }())]),
461
648
  _: 1
462
- }), createElementVNode("div", _hoisted_21, [createVNode(unref(NButton), {
649
+ }), createElementVNode("div", _hoisted_20, [createVNode(unref(NButton), {
463
650
  color: "#000",
464
651
  round: "",
465
- onClick: _cache[0] || (_cache[0] = ($event) => voiceClose.value = !unref(voiceClose))
652
+ onClick: _cache[1] || (_cache[1] = ($event) => voiceClose.value = !unref(voiceClose))
466
653
  }, {
467
654
  icon: withCtx(() => [createVNode(unref(NIcon), {
468
655
  component: unref(voiceClose) ? unref(MicOff) : unref(Mic)
@@ -471,25 +658,25 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
471
658
  }), createVNode(unref(NButton), {
472
659
  color: "#000",
473
660
  round: "",
474
- onClick: _cache[1] || (_cache[1] = ($event) => videocamClose.value = !unref(videocamClose)),
661
+ onClick: _cache[2] || (_cache[2] = ($event) => videocamClose.value = !unref(videocamClose)),
475
662
  disabled: unref(isAudio)
476
663
  }, {
477
664
  icon: withCtx(() => [createVNode(unref(NIcon), {
478
665
  component: unref(videocamClose) ? unref(VideocamOff) : unref(Videocam)
479
666
  }, null, 8, ["component"])]),
480
667
  _: 1
481
- }, 8, ["disabled"])])])) : (openBlock(), createElementBlock("div", _hoisted_22, [createElementVNode("div", _hoisted_23, [createVNode(unref(NButton), {
668
+ }, 8, ["disabled"])])])) : (openBlock(), createElementBlock("div", _hoisted_21, [createElementVNode("div", _hoisted_22, [createVNode(unref(NButton), {
482
669
  circle: "",
483
670
  color: "#f17568",
484
671
  class: "btn--rotate",
485
- onClick: _cache[2] || (_cache[2] = () => unref(state).showMultipleVideo = false)
672
+ onClick: _cache[3] || (_cache[3] = () => unref(state).showMultipleVideo = false)
486
673
  }, {
487
674
  icon: withCtx(() => [createVNode(unref(NIcon), {
488
675
  size: "30",
489
676
  component: unref(Call)
490
677
  }, null, 8, ["component"])]),
491
678
  _: 1
492
- }), _hoisted_24]), createElementVNode("div", _hoisted_25, [createVNode(unref(NButton), {
679
+ }), _hoisted_23]), createElementVNode("div", _hoisted_24, [createVNode(unref(NButton), {
493
680
  circle: "",
494
681
  color: "#2ac98b",
495
682
  onClick: handleEnter
@@ -499,7 +686,26 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
499
686
  component: unref(Call)
500
687
  }, null, 8, ["component"])]),
501
688
  _: 1
502
- }), _hoisted_26])]))], 64))]);
689
+ }), _hoisted_25])]))], 64))], 4), [[vShow, isMaxSize.value]]), withDirectives(createElementVNode("div", {
690
+ class: "video-wrapper video-wrapper--mini",
691
+ ref_key: "miniWrapperRef",
692
+ ref: miniWrapperRef,
693
+ style: normalizeStyle(unref(miniStyle))
694
+ }, [createElementVNode("div", _hoisted_26, [createVNode(unref(NButton), {
695
+ text: "",
696
+ color: "#ffffffcc",
697
+ onClick: _cache[4] || (_cache[4] = () => isMaxSize.value = true)
698
+ }, {
699
+ default: withCtx(() => [createVNode(unref(NIcon), {
700
+ size: "18",
701
+ component: unref(ResizeOutline)
702
+ }, null, 8, ["component"])]),
703
+ _: 1
704
+ })]), createElementVNode("div", _hoisted_27, [createVNode(unref(NAvatar), {
705
+ round: "",
706
+ size: 48,
707
+ src: unref(state).userInfo.avatar
708
+ }, null, 8, ["src"])])], 4), [[vShow, !isMaxSize.value]])], 64);
503
709
  };
504
710
  }
505
711
  });