cnhis-design-vue 3.3.3-beta.19 → 3.3.3-beta.22

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 (88) hide show
  1. package/README.md +87 -87
  2. package/es/components/base-search/index.d.ts +3 -0
  3. package/es/components/base-search/src/index.vue.d.ts +3 -0
  4. package/es/components/callback/src/components/render/popupMaps.d.ts +13 -0
  5. package/es/components/classification/index.d.ts +56 -6
  6. package/es/components/classification/src/components/search-filter/index.vue.d.ts +56 -6
  7. package/es/components/classification/src/components/set-classification/index.vue.d.ts +56 -6
  8. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  9. package/es/components/classification/src/index.vue.d.ts +56 -6
  10. package/es/components/field-editor/index.d.ts +13 -0
  11. package/es/components/field-editor/src/FieldEditor.vue.d.ts +13 -0
  12. package/es/components/field-set/src/FieldColor.vue.d.ts +4 -4
  13. package/es/components/field-set/src/FieldFilter.vue.d.ts +4 -4
  14. package/es/components/field-set/src/FieldSet.vue.d.ts +5 -5
  15. package/es/components/field-set/src/components/table-row.vue.d.ts +4 -4
  16. package/es/components/form-config/index.d.ts +39 -0
  17. package/es/components/form-config/src/FormConfig.vue.d.ts +39 -0
  18. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +13 -0
  19. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +13 -0
  20. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +13 -0
  21. package/es/components/form-render/index.d.ts +13 -0
  22. package/es/components/form-render/src/FormRender.vue.d.ts +13 -0
  23. package/es/components/form-render/src/FormRender.vue2.js +4 -0
  24. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +13 -0
  25. package/es/components/form-render/src/hooks/useBusinessBinding.d.ts +12 -3
  26. package/es/components/form-render/src/hooks/useBusinessBinding.js +7 -7
  27. package/es/components/form-render/src/hooks/useFormContext.js +1 -1
  28. package/es/components/form-render/src/utils/business.d.ts +3 -1
  29. package/es/components/form-render/src/utils/business.js +7 -1
  30. package/es/components/iho-chat/index.d.ts +18 -1
  31. package/es/components/iho-chat/src/Index.vue.d.ts +18 -1
  32. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +2 -1
  33. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +14 -9
  34. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +3 -2
  35. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +16 -0
  36. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +112 -53
  37. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  38. package/es/components/iho-chat/src/hooks/index.d.ts +1 -0
  39. package/es/components/iho-chat/src/hooks/index.js +1 -0
  40. package/es/components/iho-chat/src/hooks/useDraggable.d.ts +25 -0
  41. package/es/components/iho-chat/src/hooks/useDraggable.js +151 -0
  42. package/es/components/iho-chat/style/index.css +1 -1
  43. package/es/components/index.css +1 -1
  44. package/es/components/info-header/index.d.ts +26 -0
  45. package/es/components/info-header/src/InfoHeader.vue.d.ts +26 -0
  46. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +13 -0
  47. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +13 -0
  48. package/es/components/quick-search/index.d.ts +2 -0
  49. package/es/components/quick-search/src/index.vue.d.ts +2 -0
  50. package/es/components/select-person/src/SelectPerson.vue2.js +2 -1
  51. package/es/components/shortcut-setter/index.d.ts +13 -0
  52. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +13 -0
  53. package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue.d.ts +1 -0
  54. package/es/components/table-filter/src/components/bi-filter/components/SelectFilter.vue.d.ts +1 -0
  55. package/es/components/table-filter/src/components/bi-filter/components/index.d.ts +1 -0
  56. package/es/components/table-filter/src/components/bi-filter/index.vue.d.ts +1 -0
  57. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +54 -6
  58. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +26 -10
  59. package/es/components/table-filter/src/components/classify-filter/components/Date.vue.d.ts +17 -2
  60. package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +37 -2
  61. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue.d.ts +18 -2
  62. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +44 -1
  63. package/es/components/table-filter/src/components/classify-filter/components/SelectFilter.vue.d.ts +1 -0
  64. package/es/components/table-filter/src/components/classify-filter/components/index.d.ts +36 -4
  65. package/es/components/table-filter/src/components/classify-filter/hooks/useFilterConditions.js +2 -1
  66. package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +55 -6
  67. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +6 -3
  68. package/es/components/table-filter/src/components/render-widget/components/DateInner.vue.d.ts +1 -1
  69. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +12 -1
  70. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue.d.ts +1 -1
  71. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue2.js +25 -6
  72. package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts +1 -1
  73. package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +12 -1
  74. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +2 -2
  75. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +2 -2
  76. package/es/components/table-filter/src/hooks/useAdvanced.d.ts +2 -0
  77. package/es/components/table-filter/src/hooks/useAdvanced.js +20 -3
  78. package/es/components/table-filter/src/hooks/useRenderWidget.js +4 -0
  79. package/es/components/table-filter/src/tool/date.d.ts +3 -0
  80. package/es/components/table-filter/src/tool/date.js +139 -0
  81. package/es/components/table-filter/src/tool/transformData.d.ts +1 -0
  82. package/es/components/table-filter/src/tool/transformData.js +11 -8
  83. package/es/components/table-filter/src/types/enums.d.ts +1 -0
  84. package/es/components/table-filter/src/types/enums.js +2 -1
  85. package/es/components/table-filter/src/types/index.d.ts +12 -0
  86. package/es/env.d.ts +25 -25
  87. package/es/shared/package.json.js +1 -1
  88. package/package.json +2 -2
@@ -1,7 +1,7 @@
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';
@@ -16,32 +16,30 @@ 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 { useDraggable } from '../hooks/useDraggable.js';
19
20
  import TRTC from 'trtc-sdk-v5';
20
21
 
21
22
  const _hoisted_1 = {
22
- class: "video-wrapper video-wrapper--multiple"
23
+ class: "top-right-btns"
23
24
  };
24
25
  const _hoisted_2 = {
25
- class: "video-header"
26
- };
27
- const _hoisted_3 = {
28
26
  key: 0,
29
27
  class: "video-main"
30
28
  };
31
- const _hoisted_4 = {
29
+ const _hoisted_3 = {
32
30
  class: "video-main__left"
33
31
  };
34
- const _hoisted_5 = ["data-name"];
35
- const _hoisted_6 = {
32
+ const _hoisted_4 = ["data-name"];
33
+ const _hoisted_5 = {
36
34
  class: "video-bottom"
37
35
  };
38
- const _hoisted_7 = {
36
+ const _hoisted_6 = {
39
37
  class: "btn-group"
40
38
  };
41
- const _hoisted_8 = {
39
+ const _hoisted_7 = {
42
40
  class: "btn"
43
41
  };
44
- const _hoisted_9 = /* @__PURE__ */ createElementVNode("span", {
42
+ const _hoisted_8 = /* @__PURE__ */ createElementVNode("span", {
45
43
  class: "text"
46
44
  }, function() {
47
45
  var _a, _b, _c;
@@ -51,10 +49,10 @@ const _hoisted_9 = /* @__PURE__ */ createElementVNode("span", {
51
49
  return "\u9759\u97F3";
52
50
  }
53
51
  }(), -1);
54
- const _hoisted_10 = {
52
+ const _hoisted_9 = {
55
53
  class: "btn"
56
54
  };
57
- const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
55
+ const _hoisted_10 = /* @__PURE__ */ createElementVNode("span", {
58
56
  class: "text"
59
57
  }, function() {
60
58
  var _a, _b, _c;
@@ -64,7 +62,7 @@ const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
64
62
  return "\u6444\u50CF\u5934";
65
63
  }
66
64
  }(), -1);
67
- const _hoisted_12 = /* @__PURE__ */ createElementVNode("span", {
65
+ const _hoisted_11 = /* @__PURE__ */ createElementVNode("span", {
68
66
  class: "text"
69
67
  }, function() {
70
68
  var _a, _b, _c;
@@ -74,10 +72,10 @@ const _hoisted_12 = /* @__PURE__ */ createElementVNode("span", {
74
72
  return "\u7ED3\u675F\u4F1A\u8BCA";
75
73
  }
76
74
  }(), -1);
77
- const _hoisted_13 = {
75
+ const _hoisted_12 = {
78
76
  class: "btn"
79
77
  };
80
- const _hoisted_14 = /* @__PURE__ */ createElementVNode("span", {
78
+ const _hoisted_13 = /* @__PURE__ */ createElementVNode("span", {
81
79
  class: "text"
82
80
  }, function() {
83
81
  var _a, _b, _c;
@@ -87,35 +85,35 @@ const _hoisted_14 = /* @__PURE__ */ createElementVNode("span", {
87
85
  return "\u6DFB\u52A0\u53C2\u4F1A\u4EBA";
88
86
  }
89
87
  }(), -1);
90
- const _hoisted_15 = {
88
+ const _hoisted_14 = {
91
89
  class: "video-main__right"
92
90
  };
93
- const _hoisted_16 = ["id", "data-name"];
94
- const _hoisted_17 = {
91
+ const _hoisted_15 = ["id", "data-name"];
92
+ const _hoisted_16 = {
95
93
  class: "user"
96
94
  };
97
- const _hoisted_18 = {
95
+ const _hoisted_17 = {
98
96
  class: "name"
99
97
  };
100
- const _hoisted_19 = {
98
+ const _hoisted_18 = {
101
99
  key: 0,
102
100
  class: "tip"
103
101
  };
104
- const _hoisted_20 = {
102
+ const _hoisted_19 = {
105
103
  key: 0,
106
104
  class: "calling-box"
107
105
  };
108
- const _hoisted_21 = {
106
+ const _hoisted_20 = {
109
107
  class: "btn-box"
110
108
  };
111
- const _hoisted_22 = {
109
+ const _hoisted_21 = {
112
110
  key: 1,
113
111
  class: "opt-btn"
114
112
  };
115
- const _hoisted_23 = {
113
+ const _hoisted_22 = {
116
114
  class: "btn"
117
115
  };
118
- const _hoisted_24 = /* @__PURE__ */ createElementVNode("span", null, function() {
116
+ const _hoisted_23 = /* @__PURE__ */ createElementVNode("span", null, function() {
119
117
  var _a, _b, _c;
120
118
  try {
121
119
  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 +121,10 @@ const _hoisted_24 = /* @__PURE__ */ createElementVNode("span", null, function()
123
121
  return "\u62D2\u63A5";
124
122
  }
125
123
  }(), -1);
126
- const _hoisted_25 = {
124
+ const _hoisted_24 = {
127
125
  class: "btn"
128
126
  };
129
- const _hoisted_26 = /* @__PURE__ */ createElementVNode("span", null, function() {
127
+ const _hoisted_25 = /* @__PURE__ */ createElementVNode("span", null, function() {
130
128
  var _a, _b, _c;
131
129
  try {
132
130
  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,6 +132,12 @@ const _hoisted_26 = /* @__PURE__ */ createElementVNode("span", null, function()
134
132
  return "\u63A5\u542C";
135
133
  }
136
134
  }(), -1);
135
+ const _hoisted_26 = {
136
+ class: "header"
137
+ };
138
+ const _hoisted_27 = {
139
+ class: "content"
140
+ };
137
141
  var _sfc_main = /* @__PURE__ */ defineComponent({
138
142
  __name: "MultipleVideo",
139
143
  setup(__props) {
@@ -158,6 +162,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
158
162
  uninstallEventHandlers
159
163
  } = useVideo();
160
164
  const isConnect = ref(false);
165
+ const wrapperRef = ref(null);
166
+ const handleRef = ref(null);
167
+ const isMaxSize = ref(true);
168
+ const miniWrapperRef = ref(null);
161
169
  const callUser = computed(() => isCall.value ? state.userInfo.name : state.currentAVMsg.sendName);
162
170
  const title = computed(() => {
163
171
  if (!isConnect.value)
@@ -165,6 +173,24 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
165
173
  const count = isCall.value ? `\uFF08${remoteUsers.value.length + 1}/${state.currentAVMsg.checkedIds.length + 1}\uFF09` : "";
166
174
  return `${callUser.value}\u53D1\u8D77\u7684${messageTypeText.value}\u4F1A\u8BCA${count} ${timing.value}`;
167
175
  });
176
+ const {
177
+ style,
178
+ changePosition
179
+ } = useDraggable(wrapperRef, {
180
+ initialPosition: "center",
181
+ handle: handleRef
182
+ });
183
+ const {
184
+ style: miniStyle,
185
+ changePosition: changeMiniPosition
186
+ } = useDraggable(miniWrapperRef);
187
+ watch(() => isMaxSize.value, (val) => {
188
+ if (val) {
189
+ changePosition("center");
190
+ } else {
191
+ changeMiniPosition("top-right");
192
+ }
193
+ });
168
194
  function handleAddPerson({
169
195
  checkedIds,
170
196
  checkedOptions
@@ -315,24 +341,38 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
315
341
  handleExit();
316
342
  });
317
343
  return (_ctx, _cache) => {
318
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [withDirectives(createElementVNode("span", {
344
+ return openBlock(), createElementBlock(Fragment, null, [withDirectives(createElementVNode("div", {
345
+ class: "video-wrapper video-wrapper--multiple",
346
+ ref_key: "wrapperRef",
347
+ ref: wrapperRef,
348
+ style: normalizeStyle(unref(style))
349
+ }, [createElementVNode("div", {
350
+ class: "video-header",
351
+ ref_key: "handleRef",
352
+ ref: handleRef
353
+ }, [withDirectives(createElementVNode("span", {
319
354
  class: "title"
320
- }, toDisplayString(unref(title)), 513), [[vShow, isConnect.value]]), createVNode(unref(NButton), {
355
+ }, toDisplayString(unref(title)), 513), [[vShow, isConnect.value]]), createElementVNode("div", _hoisted_1, [createVNode(unref(NButton), {
321
356
  quaternary: "",
322
- circle: "",
357
+ size: "tiny",
358
+ class: "custom-btn",
359
+ onClick: _cache[0] || (_cache[0] = () => isMaxSize.value = false)
360
+ }), createVNode(unref(NButton), {
361
+ text: "",
323
362
  color: "#ffffffcc",
324
363
  onClick: handleExit
325
364
  }, {
326
- icon: withCtx(() => [createVNode(unref(NIcon), {
365
+ default: withCtx(() => [createVNode(unref(NIcon), {
366
+ size: "18",
327
367
  component: unref(Close)
328
368
  }, null, 8, ["component"])]),
329
369
  _: 1
330
- })]), isConnect.value ? (openBlock(), createElementBlock("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [createElementVNode("div", {
370
+ })])], 512), isConnect.value ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [createElementVNode("div", {
331
371
  ref_key: "selfVideoRef",
332
372
  ref: selfVideoRef,
333
373
  class: "video-view",
334
374
  "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), {
375
+ }, null, 8, _hoisted_4), createElementVNode("div", _hoisted_5, [createElementVNode("div", _hoisted_6, [createElementVNode("div", _hoisted_7, [createVNode(unref(NButton), {
336
376
  text: "",
337
377
  color: !unref(voiceClose) ? "#fff" : "#000",
338
378
  onClick: unref(toggleAudio)
@@ -341,7 +381,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
341
381
  component: !unref(voiceClose) ? unref(Mic) : unref(MicOff)
342
382
  }, null, 8, ["component"])]),
343
383
  _: 1
344
- }, 8, ["color", "onClick"]), _hoisted_9]), createElementVNode("div", _hoisted_10, [createVNode(unref(NButton), {
384
+ }, 8, ["color", "onClick"]), _hoisted_8]), createElementVNode("div", _hoisted_9, [createVNode(unref(NButton), {
345
385
  text: "",
346
386
  color: !unref(videocamClose) ? "#fff" : "#000",
347
387
  disabled: unref(isAudio),
@@ -351,7 +391,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
351
391
  component: !unref(videocamClose) ? unref(Videocam) : unref(VideocamOff)
352
392
  }, null, 8, ["component"])]),
353
393
  _: 1
354
- }, 8, ["color", "disabled", "onClick"]), _hoisted_11]), createElementVNode("div", {
394
+ }, 8, ["color", "disabled", "onClick"]), _hoisted_10]), createElementVNode("div", {
355
395
  class: "btn",
356
396
  onClick: handleExit
357
397
  }, [createVNode(unref(NButton), {
@@ -363,11 +403,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
363
403
  component: unref(Call)
364
404
  }, null, 8, ["component"])]),
365
405
  _: 1
366
- }), _hoisted_12]), createVNode(ChatAdd, {
406
+ }), _hoisted_11]), createVNode(ChatAdd, {
367
407
  onComfirm: handleAddPerson,
368
408
  disabledIds: unref(state).currentAVMsg.checkedIds
369
409
  }, {
370
- trigger: withCtx(() => [createElementVNode("div", _hoisted_13, [createVNode(unref(NButton), {
410
+ trigger: withCtx(() => [createElementVNode("div", _hoisted_12, [createVNode(unref(NButton), {
371
411
  text: "",
372
412
  color: "#fff"
373
413
  }, {
@@ -375,18 +415,18 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
375
415
  component: unref(PersonAdd)
376
416
  }, null, 8, ["component"])]),
377
417
  _: 1
378
- }), _hoisted_14])]),
418
+ }), _hoisted_13])]),
379
419
  _: 1
380
- }, 8, ["disabledIds"])])])]), createElementVNode("div", _hoisted_15, [(openBlock(true), createElementBlock(Fragment, null, renderList(remoteUsers.value, (user) => {
420
+ }, 8, ["disabledIds"])])])]), createElementVNode("div", _hoisted_14, [(openBlock(true), createElementBlock(Fragment, null, renderList(remoteUsers.value, (user) => {
381
421
  return openBlock(), createElementBlock("div", {
382
422
  key: user.id,
383
423
  id: user.id,
384
424
  class: "video-view",
385
425
  "data-name": user.name
386
- }, null, 8, _hoisted_16);
426
+ }, null, 8, _hoisted_15);
387
427
  }), 128))])])) : (openBlock(), createElementBlock(Fragment, {
388
428
  key: 1
389
- }, [createElementVNode("div", _hoisted_17, [createElementVNode("span", _hoisted_18, toDisplayString(unref(callUser)) + function() {
429
+ }, [createElementVNode("div", _hoisted_16, [createElementVNode("span", _hoisted_17, toDisplayString(unref(callUser)) + function() {
390
430
  var _a, _b, _c;
391
431
  try {
392
432
  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 +440,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
400
440
  } catch (e) {
401
441
  return "\u4F1A\u8BAE";
402
442
  }
403
- }(), 1), !unref(isCall) ? (openBlock(), createElementBlock("span", _hoisted_19, function() {
443
+ }(), 1), !unref(isCall) ? (openBlock(), createElementBlock("span", _hoisted_18, function() {
404
444
  var _a, _b, _c;
405
445
  try {
406
446
  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 +454,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
414
454
  } catch (e) {
415
455
  return "\u4F1A\u8BAE";
416
456
  }
417
- }(), 1)) : createCommentVNode("v-if", true)]), unref(isCall) ? (openBlock(), createElementBlock("div", _hoisted_20, [createVNode(ChatAdd, {
457
+ }(), 1)) : createCommentVNode("v-if", true)]), unref(isCall) ? (openBlock(), createElementBlock("div", _hoisted_19, [createVNode(ChatAdd, {
418
458
  onComfirm: handleAddPerson,
419
459
  disabledIds: unref(state).currentAVMsg.checkedIds
420
460
  }, {
@@ -459,10 +499,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
459
499
  }
460
500
  }())]),
461
501
  _: 1
462
- }), createElementVNode("div", _hoisted_21, [createVNode(unref(NButton), {
502
+ }), createElementVNode("div", _hoisted_20, [createVNode(unref(NButton), {
463
503
  color: "#000",
464
504
  round: "",
465
- onClick: _cache[0] || (_cache[0] = ($event) => voiceClose.value = !unref(voiceClose))
505
+ onClick: _cache[1] || (_cache[1] = ($event) => voiceClose.value = !unref(voiceClose))
466
506
  }, {
467
507
  icon: withCtx(() => [createVNode(unref(NIcon), {
468
508
  component: unref(voiceClose) ? unref(MicOff) : unref(Mic)
@@ -471,25 +511,25 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
471
511
  }), createVNode(unref(NButton), {
472
512
  color: "#000",
473
513
  round: "",
474
- onClick: _cache[1] || (_cache[1] = ($event) => videocamClose.value = !unref(videocamClose)),
514
+ onClick: _cache[2] || (_cache[2] = ($event) => videocamClose.value = !unref(videocamClose)),
475
515
  disabled: unref(isAudio)
476
516
  }, {
477
517
  icon: withCtx(() => [createVNode(unref(NIcon), {
478
518
  component: unref(videocamClose) ? unref(VideocamOff) : unref(Videocam)
479
519
  }, null, 8, ["component"])]),
480
520
  _: 1
481
- }, 8, ["disabled"])])])) : (openBlock(), createElementBlock("div", _hoisted_22, [createElementVNode("div", _hoisted_23, [createVNode(unref(NButton), {
521
+ }, 8, ["disabled"])])])) : (openBlock(), createElementBlock("div", _hoisted_21, [createElementVNode("div", _hoisted_22, [createVNode(unref(NButton), {
482
522
  circle: "",
483
523
  color: "#f17568",
484
524
  class: "btn--rotate",
485
- onClick: _cache[2] || (_cache[2] = () => unref(state).showMultipleVideo = false)
525
+ onClick: _cache[3] || (_cache[3] = () => unref(state).showMultipleVideo = false)
486
526
  }, {
487
527
  icon: withCtx(() => [createVNode(unref(NIcon), {
488
528
  size: "30",
489
529
  component: unref(Call)
490
530
  }, null, 8, ["component"])]),
491
531
  _: 1
492
- }), _hoisted_24]), createElementVNode("div", _hoisted_25, [createVNode(unref(NButton), {
532
+ }), _hoisted_23]), createElementVNode("div", _hoisted_24, [createVNode(unref(NButton), {
493
533
  circle: "",
494
534
  color: "#2ac98b",
495
535
  onClick: handleEnter
@@ -499,7 +539,26 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
499
539
  component: unref(Call)
500
540
  }, null, 8, ["component"])]),
501
541
  _: 1
502
- }), _hoisted_26])]))], 64))]);
542
+ }), _hoisted_25])]))], 64))], 4), [[vShow, isMaxSize.value]]), withDirectives(createElementVNode("div", {
543
+ class: "video-wrapper video-wrapper--mini",
544
+ ref_key: "miniWrapperRef",
545
+ ref: miniWrapperRef,
546
+ style: normalizeStyle(unref(miniStyle))
547
+ }, [createElementVNode("div", _hoisted_26, [createVNode(unref(NButton), {
548
+ text: "",
549
+ color: "#ffffffcc",
550
+ onClick: _cache[4] || (_cache[4] = () => isMaxSize.value = true)
551
+ }, {
552
+ default: withCtx(() => [createVNode(unref(NIcon), {
553
+ size: "18",
554
+ component: unref(ResizeOutline)
555
+ }, null, 8, ["component"])]),
556
+ _: 1
557
+ })]), createElementVNode("div", _hoisted_27, [createVNode(unref(NAvatar), {
558
+ round: "",
559
+ size: 48,
560
+ src: unref(state).userInfo.avatar
561
+ }, null, 8, ["src"])])], 4), [[vShow, !isMaxSize.value]])], 64);
503
562
  };
504
563
  }
505
564
  });
@@ -225,7 +225,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
225
225
  round: "",
226
226
  size: 100,
227
227
  onClickCapture: _cache[0] || (_cache[0] = ($event) => showLargeAvatar.value = true)
228
- }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\r\n <n-upload-trigger #="{ handleClick }" abstract>\r\n <n-button\r\n circle\r\n secondary\r\n class="edit-avatar"\r\n v-show="userDetail.id === state.userInfo.id"\r\n @click="handleClick"\r\n >\r\n <template #icon>\r\n <n-icon size="16" color="#666666" :component="Camera" />\r\n </template>\r\n </n-button>\r\n </n-upload-trigger>\r\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
228
+ }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\n <n-upload-trigger #="{ handleClick }" abstract>\n <n-button\n circle\n secondary\n class="edit-avatar"\n v-show="userDetail.id === state.userInfo.id"\n @click="handleClick"\n >\n <template #icon>\n <n-icon size="16" color="#666666" :component="Camera" />\n </template>\n </n-button>\n </n-upload-trigger>\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
229
229
  class: normalizeClass(["iho-chatRole", unref(isDoctorRole)(userDetail.roleInfo) ? "isDoctor" : ""])
230
230
  }, toDisplayString(unref(getRoleName)(userDetail.roleInfo)), 3), [[vShow, unref(getRoleName)(userDetail.roleInfo)]])]), createElementVNode("p", null, toDisplayString(userDetail.orgName), 1)]), createVNode(unref(NButton), {
231
231
  strong: "",
@@ -1,3 +1,4 @@
1
1
  export * from './useData';
2
2
  export * from './useWebSocket';
3
3
  export * from './useVideo';
4
+ export * from './useDraggable';
@@ -1,3 +1,4 @@
1
1
  export { InjectionIChatData, initData, useData } from './useData.js';
2
2
  export { useWebSocket } from './useWebSocket.js';
3
3
  export { useVideo } from './useVideo.js';
4
+ export { useDraggable } from './useDraggable.js';
@@ -0,0 +1,25 @@
1
+ import { type Ref } from 'vue';
2
+ interface Position {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ type PositionStr = 'center' | 'top-right';
7
+ interface UseDraggableOptions {
8
+ handle?: Ref<HTMLElement | null>;
9
+ initialPosition?: PositionStr;
10
+ onDragStart?: (position: Position) => void;
11
+ onDrag?: (position: Position) => void;
12
+ onDragEnd?: (position: Position) => void;
13
+ }
14
+ export declare function useDraggable(target: Ref<HTMLElement | null>, options?: UseDraggableOptions): {
15
+ style: Ref<{
16
+ left: string;
17
+ top: string;
18
+ }>;
19
+ position: {
20
+ x: Ref<number>;
21
+ y: Ref<number>;
22
+ };
23
+ changePosition: (position?: PositionStr) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,151 @@
1
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
2
+
3
+ function useDraggable(target, options = {}) {
4
+ const x = ref(0);
5
+ const y = ref(0);
6
+ const isDragging = ref(false);
7
+ const startPos = ref({
8
+ x: 0,
9
+ y: 0
10
+ });
11
+ const startMousePos = ref({
12
+ x: 0,
13
+ y: 0
14
+ });
15
+ const style = ref({
16
+ left: `${x.value}px`,
17
+ top: `${y.value}px`
18
+ });
19
+ const updatePosition = () => {
20
+ style.value = {
21
+ left: `${x.value}px`,
22
+ top: `${y.value}px`
23
+ };
24
+ };
25
+ const centerElement = () => {
26
+ if (!target.value)
27
+ return;
28
+ const {
29
+ width: width1,
30
+ height: height1
31
+ } = target.value.getBoundingClientRect();
32
+ const {
33
+ width: width2,
34
+ height: height2
35
+ } = getHiddenElementRect(target.value);
36
+ const width = width1 || width2 || 0;
37
+ const height = height1 || height2 || 0;
38
+ x.value = window.innerWidth / 2 - width / 2;
39
+ y.value = window.innerHeight / 2 - height / 2;
40
+ updatePosition();
41
+ };
42
+ const topRightElement = () => {
43
+ if (!target.value)
44
+ return;
45
+ const {
46
+ width: width1
47
+ } = target.value.getBoundingClientRect();
48
+ const {
49
+ width: width2
50
+ } = getHiddenElementRect(target.value);
51
+ const width = width1 || width2 || 0;
52
+ x.value = window.innerWidth - width - 20;
53
+ y.value = 20;
54
+ updatePosition();
55
+ };
56
+ const handlePosition = () => {
57
+ changePosition(options.initialPosition);
58
+ };
59
+ const changePosition = (position) => {
60
+ if (!position)
61
+ return;
62
+ if (position === "center") {
63
+ centerElement();
64
+ } else if (position === "top-right") {
65
+ topRightElement();
66
+ }
67
+ };
68
+ const onMouseDown = (e) => {
69
+ var _a;
70
+ if (!target.value)
71
+ return;
72
+ isDragging.value = true;
73
+ startMousePos.value = {
74
+ x: e.clientX,
75
+ y: e.clientY
76
+ };
77
+ startPos.value = {
78
+ x: x.value,
79
+ y: y.value
80
+ };
81
+ (_a = options.onDragStart) == null ? void 0 : _a.call(options, {
82
+ x: x.value,
83
+ y: y.value
84
+ });
85
+ e.preventDefault();
86
+ document.body.style.userSelect = "none";
87
+ };
88
+ const onMouseMove = (e) => {
89
+ var _a;
90
+ if (!isDragging.value)
91
+ return;
92
+ const dx = e.clientX - startMousePos.value.x;
93
+ const dy = e.clientY - startMousePos.value.y;
94
+ x.value = startPos.value.x + dx;
95
+ y.value = startPos.value.y + dy;
96
+ updatePosition();
97
+ (_a = options.onDrag) == null ? void 0 : _a.call(options, {
98
+ x: x.value,
99
+ y: y.value
100
+ });
101
+ };
102
+ const onMouseUp = () => {
103
+ var _a;
104
+ if (!isDragging.value)
105
+ return;
106
+ isDragging.value = false;
107
+ document.body.style.userSelect = "";
108
+ (_a = options.onDragEnd) == null ? void 0 : _a.call(options, {
109
+ x: x.value,
110
+ y: y.value
111
+ });
112
+ };
113
+ onMounted(() => {
114
+ var _a, _b;
115
+ const handle = (_b = (_a = options.handle) == null ? void 0 : _a.value) != null ? _b : target.value;
116
+ if (!handle)
117
+ return;
118
+ handlePosition();
119
+ handle.addEventListener("mousedown", onMouseDown);
120
+ document.addEventListener("mousemove", onMouseMove);
121
+ document.addEventListener("mouseup", onMouseUp);
122
+ window.addEventListener("resize", handlePosition);
123
+ });
124
+ onBeforeUnmount(() => {
125
+ var _a, _b;
126
+ const handle = (_b = (_a = options.handle) == null ? void 0 : _a.value) != null ? _b : target.value;
127
+ if (!handle)
128
+ return;
129
+ handle.removeEventListener("mousedown", onMouseDown);
130
+ document.removeEventListener("mousemove", onMouseMove);
131
+ document.removeEventListener("mouseup", onMouseUp);
132
+ window.removeEventListener("resize", handlePosition);
133
+ });
134
+ return {
135
+ style,
136
+ position: {
137
+ x,
138
+ y
139
+ },
140
+ changePosition
141
+ };
142
+ }
143
+ function getHiddenElementRect(element) {
144
+ const styles = window.getComputedStyle(element);
145
+ return {
146
+ width: parseFloat(styles.width),
147
+ height: parseFloat(styles.height)
148
+ };
149
+ }
150
+
151
+ export { useDraggable };