cnhis-design-vue 3.2.13-release.0 → 3.2.14-beta.14

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 (102) hide show
  1. package/es/components/ai-chat/index.d.ts +3 -4
  2. package/es/components/ai-chat/src/Index.vue.d.ts +3 -4
  3. package/es/components/ai-chat/src/Index.vue2.js +1 -1
  4. package/es/components/ai-chat/src/components/ChatBI.vue.d.ts +101 -0
  5. package/es/components/ai-chat/src/components/ChatBI.vue.js +1 -0
  6. package/es/components/ai-chat/src/components/ChatBI.vue2.js +1 -0
  7. package/es/components/ai-chat/src/components/ChatCard.d.ts +13 -0
  8. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  9. package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +2 -3
  10. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  11. package/es/components/ai-chat/src/components/ChatMain.d.ts +1 -1
  12. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  13. package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
  14. package/es/components/ai-chat/src/utils/index.d.ts +1 -0
  15. package/es/components/ai-chat/src/utils/index.js +1 -0
  16. package/es/components/ai-chat/style/index.css +1 -1
  17. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  18. package/es/components/classification/src/components/table-modal/index.vue.d.ts +3 -0
  19. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  20. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  21. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  22. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
  23. package/es/components/fabric-chart/src/hooks/temperature/useOther.js +1 -1
  24. package/es/components/fabric-chart/src/hooks/useCumputedPoint.js +1 -1
  25. package/es/components/fabric-chart/src/utils/index.d.ts +1 -0
  26. package/es/components/fabric-chart/src/utils/index.js +1 -1
  27. package/es/components/form-config/index.d.ts +9 -110
  28. package/es/components/form-config/index.js +1 -1
  29. package/es/components/form-config/src/FormConfig.vue.d.ts +9 -110
  30. package/es/components/form-config/src/FormConfig.vue2.js +1 -1
  31. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +2 -0
  32. package/es/components/form-config/src/components/FormConfigCreator.vue2.js +1 -1
  33. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +4 -2
  34. package/es/components/form-config/src/components/FormConfigEdit.vue2.js +1 -1
  35. package/es/components/form-config/src/components/renderer/ComplexNode.vue.d.ts +2 -1
  36. package/es/components/form-config/src/components/renderer/ComplexNode.vue2.js +1 -1
  37. package/es/components/form-config/src/components/renderer/DefaultNode.vue2.js +1 -1
  38. package/es/components/form-config/src/constants/index.d.ts +2 -11
  39. package/es/components/form-config/src/constants/index.js +1 -1
  40. package/es/components/form-config/src/hooks/useConfigurationField.js +1 -1
  41. package/es/components/form-config/src/hooks/useLocale.d.ts +52 -0
  42. package/es/components/form-config/src/hooks/useLocale.js +1 -0
  43. package/es/components/form-config/src/types/index.d.ts +1 -0
  44. package/es/components/form-config/src/utils/index.d.ts +1 -0
  45. package/es/components/form-config/src/utils/index.js +1 -1
  46. package/es/components/form-render/index.js +1 -1
  47. package/es/components/form-render/src/hooks/useComplexOptions.js +1 -1
  48. package/es/components/form-render/src/utils/index.d.ts +1 -0
  49. package/es/components/form-render/src/utils/index.js +1 -1
  50. package/es/components/iho-chat/index.d.ts +104 -1
  51. package/es/components/iho-chat/src/Index.vue.d.ts +104 -1
  52. package/es/components/iho-chat/src/Index.vue2.js +1 -1
  53. package/es/components/iho-chat/src/api/index.d.ts +1 -0
  54. package/es/components/iho-chat/src/api/index.js +1 -1
  55. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +13 -0
  56. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  57. package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +13 -0
  58. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +14 -0
  59. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  60. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +48 -1
  61. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
  62. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +13 -0
  63. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  64. package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
  65. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +14 -1
  66. package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
  67. package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
  68. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +13 -0
  69. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  70. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  71. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +2 -0
  72. package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
  73. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  74. package/es/components/iho-chat/src/constants/index.d.ts +11 -2
  75. package/es/components/iho-chat/src/constants/index.js +1 -1
  76. package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -1
  77. package/es/components/iho-chat/src/hooks/useSession.d.ts +2 -0
  78. package/es/components/iho-chat/src/hooks/useSession.js +1 -1
  79. package/es/components/iho-chat/src/utils/index.d.ts +1 -0
  80. package/es/components/iho-chat/src/utils/index.js +1 -1
  81. package/es/components/iho-chat/style/index.css +1 -1
  82. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +20 -0
  83. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  84. package/es/components/iho-table/src/types/index.d.ts +4 -0
  85. package/es/components/iho-table/style/index.css +1 -1
  86. package/es/components/index.css +1 -1
  87. package/es/components/index.js +1 -1
  88. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  89. package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue2.js +1 -1
  90. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -1
  91. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue.d.ts +4 -7
  92. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue2.js +1 -1
  93. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +4 -7
  94. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +4 -7
  95. package/es/env.d.ts +25 -25
  96. package/es/shared/package.json.js +1 -1
  97. package/es/shared/types/index.d.ts +3 -0
  98. package/es/shared/utils/index.d.ts +1 -0
  99. package/es/shared/utils/index.js +1 -1
  100. package/package.json +2 -2
  101. package/es/components/form-config/src/components/FormConfigEventSetting.vue.js +0 -1
  102. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +0 -1
@@ -96,6 +96,7 @@ declare const _default: import("vue").DefineComponent<{
96
96
  setUpdateSessionItem: (item: AnyObject) => void;
97
97
  setCurrentSessionItem: (item: AnyObject) => void;
98
98
  updateSessionList: (sessionItem: AnyObject) => void;
99
+ isEnded: import("vue").ComputedRef<boolean>;
99
100
  reConnention: number;
100
101
  groupSessionList: AnyObject[];
101
102
  init: () => Promise<void>;
@@ -118,6 +119,7 @@ declare const _default: import("vue").DefineComponent<{
118
119
  filterKey: {
119
120
  all: string;
120
121
  unread: string;
122
+ ended: string;
121
123
  };
122
124
  unreadSessionKeys: string[];
123
125
  flexWidth: import("vue").Ref<number>;
@@ -133,6 +135,7 @@ declare const _default: import("vue").DefineComponent<{
133
135
  openSession: (item: AnyObject) => Promise<void>;
134
136
  currentWidth: import("vue").ComputedRef<number>;
135
137
  sessionList: import("vue").ComputedRef<AnyObject[]>;
138
+ getLabelNum: (session: AnyObject) => number;
136
139
  changeWidth: ({ distance }: AnyObject) => void;
137
140
  handleFilter: (key: string) => void;
138
141
  showSession: (item: AnyObject, currentKey?: string) => boolean | undefined;
@@ -149,6 +152,9 @@ declare const _default: import("vue").DefineComponent<{
149
152
  ChatHeader: import("vue").DefineComponent<{}, {
150
153
  state: IState;
151
154
  isGroupChat: import("vue").ComputedRef<boolean>;
155
+ isGroupLeader: import("vue").ComputedRef<boolean>;
156
+ isEnded: import("vue").ComputedRef<boolean>;
157
+ setCurrentSessionItem: (item: AnyObject) => void;
152
158
  showChatSet: import("vue").Ref<boolean>;
153
159
  showChatFile: import("vue").Ref<boolean>;
154
160
  chatFileType: import("vue").Ref<string>;
@@ -156,17 +162,21 @@ declare const _default: import("vue").DefineComponent<{
156
162
  chatAddProps: import("vue").ComputedRef<{
157
163
  mode: string;
158
164
  disabledIds: any[];
165
+ disabled: boolean;
159
166
  defaultValue?: undefined;
160
167
  } | {
161
168
  mode: string;
162
169
  defaultValue: AnyObject[];
163
170
  disabledIds?: undefined;
171
+ disabled?: undefined;
164
172
  }>;
165
173
  handleOpenChatFile: (type: string) => void;
174
+ handleClose: () => Promise<void>;
166
175
  NAvatar: any;
167
176
  NIcon: any;
168
177
  NButton: any;
169
178
  NTooltip: any;
179
+ NPopconfirm: any;
170
180
  PersonProfile: import("vue").DefineComponent<{
171
181
  userId: {
172
182
  type: StringConstructor;
@@ -241,11 +251,11 @@ declare const _default: import("vue").DefineComponent<{
241
251
  state: IState;
242
252
  setCurrentSessionItem: (item: AnyObject) => void;
243
253
  isGroupChat: import("vue").ComputedRef<boolean>;
254
+ isGroupLeader: import("vue").ComputedRef<boolean>;
244
255
  inputRef: import("vue").Ref<any>;
245
256
  groupNameEditing: import("vue").Ref<boolean>;
246
257
  groupName: import("vue").Ref<string>;
247
258
  showGroupDetail: import("vue").Ref<boolean>;
248
- isGroupLeader: import("vue").ComputedRef<boolean>;
249
259
  currentGroupUserIds: import("vue").ComputedRef<any[]>;
250
260
  currentGroupUser: import("vue").ComputedRef<AnyObject[]>;
251
261
  handleTopping: (value: boolean) => Promise<void>;
@@ -358,6 +368,10 @@ declare const _default: import("vue").DefineComponent<{
358
368
  type: PropType<AnyObject[]>;
359
369
  default: () => never[];
360
370
  };
371
+ disabled: {
372
+ type: BooleanConstructor;
373
+ default: boolean;
374
+ };
361
375
  }, {
362
376
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
363
377
  title: {
@@ -379,6 +393,10 @@ declare const _default: import("vue").DefineComponent<{
379
393
  type: PropType<AnyObject[]>;
380
394
  default: () => never[];
381
395
  };
396
+ disabled: {
397
+ type: BooleanConstructor;
398
+ default: boolean;
399
+ };
382
400
  }>> & {
383
401
  onComfirm?: ((...args: any[]) => any) | undefined;
384
402
  }>>;
@@ -443,11 +461,16 @@ declare const _default: import("vue").DefineComponent<{
443
461
  type: PropType<AnyObject[]>;
444
462
  default: () => never[];
445
463
  };
464
+ disabled: {
465
+ type: BooleanConstructor;
466
+ default: boolean;
467
+ };
446
468
  }>> & {
447
469
  onComfirm?: ((...args: any[]) => any) | undefined;
448
470
  }, {
449
471
  title: string;
450
472
  defaultValue: AnyObject[];
473
+ disabled: boolean;
451
474
  mode: string;
452
475
  disabledIds: string[];
453
476
  }>;
@@ -527,6 +550,10 @@ declare const _default: import("vue").DefineComponent<{
527
550
  type: PropType<AnyObject[]>;
528
551
  default: () => never[];
529
552
  };
553
+ disabled: {
554
+ type: BooleanConstructor;
555
+ default: boolean;
556
+ };
530
557
  }, {
531
558
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
532
559
  title: {
@@ -548,6 +575,10 @@ declare const _default: import("vue").DefineComponent<{
548
575
  type: PropType<AnyObject[]>;
549
576
  default: () => never[];
550
577
  };
578
+ disabled: {
579
+ type: BooleanConstructor;
580
+ default: boolean;
581
+ };
551
582
  }>> & {
552
583
  onComfirm?: ((...args: any[]) => any) | undefined;
553
584
  }>>;
@@ -612,11 +643,16 @@ declare const _default: import("vue").DefineComponent<{
612
643
  type: PropType<AnyObject[]>;
613
644
  default: () => never[];
614
645
  };
646
+ disabled: {
647
+ type: BooleanConstructor;
648
+ default: boolean;
649
+ };
615
650
  }>> & {
616
651
  onComfirm?: ((...args: any[]) => any) | undefined;
617
652
  }, {
618
653
  title: string;
619
654
  defaultValue: AnyObject[];
655
+ disabled: boolean;
620
656
  mode: string;
621
657
  disabledIds: string[];
622
658
  }>;
@@ -827,6 +863,10 @@ declare const _default: import("vue").DefineComponent<{
827
863
  type: PropType<AnyObject[]>;
828
864
  default: () => never[];
829
865
  };
866
+ disabled: {
867
+ type: BooleanConstructor;
868
+ default: boolean;
869
+ };
830
870
  }, {
831
871
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
832
872
  title: {
@@ -848,6 +888,10 @@ declare const _default: import("vue").DefineComponent<{
848
888
  type: PropType<AnyObject[]>;
849
889
  default: () => never[];
850
890
  };
891
+ disabled: {
892
+ type: BooleanConstructor;
893
+ default: boolean;
894
+ };
851
895
  }>> & {
852
896
  onComfirm?: ((...args: any[]) => any) | undefined;
853
897
  }>>;
@@ -912,15 +956,21 @@ declare const _default: import("vue").DefineComponent<{
912
956
  type: PropType<AnyObject[]>;
913
957
  default: () => never[];
914
958
  };
959
+ disabled: {
960
+ type: BooleanConstructor;
961
+ default: boolean;
962
+ };
915
963
  }>> & {
916
964
  onComfirm?: ((...args: any[]) => any) | undefined;
917
965
  }, {
918
966
  title: string;
919
967
  defaultValue: AnyObject[];
968
+ disabled: boolean;
920
969
  mode: string;
921
970
  disabledIds: string[];
922
971
  }>;
923
972
  PersonAddOutline: 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<{}>>, {}>;
973
+ CloseOutline: 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<{}>>, {}>;
924
974
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
925
975
  ChatMain: import("vue").DefineComponent<{}, {
926
976
  chatMainRef: import("vue").Ref<HTMLElement | undefined>;
@@ -1170,6 +1220,10 @@ declare const _default: import("vue").DefineComponent<{
1170
1220
  type: PropType<AnyObject[]>;
1171
1221
  default: () => never[];
1172
1222
  };
1223
+ disabled: {
1224
+ type: BooleanConstructor;
1225
+ default: boolean;
1226
+ };
1173
1227
  }, {
1174
1228
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1175
1229
  title: {
@@ -1191,6 +1245,10 @@ declare const _default: import("vue").DefineComponent<{
1191
1245
  type: PropType<AnyObject[]>;
1192
1246
  default: () => never[];
1193
1247
  };
1248
+ disabled: {
1249
+ type: BooleanConstructor;
1250
+ default: boolean;
1251
+ };
1194
1252
  }>> & {
1195
1253
  onComfirm?: ((...args: any[]) => any) | undefined;
1196
1254
  }>>;
@@ -1255,11 +1313,16 @@ declare const _default: import("vue").DefineComponent<{
1255
1313
  type: PropType<AnyObject[]>;
1256
1314
  default: () => never[];
1257
1315
  };
1316
+ disabled: {
1317
+ type: BooleanConstructor;
1318
+ default: boolean;
1319
+ };
1258
1320
  }>> & {
1259
1321
  onComfirm?: ((...args: any[]) => any) | undefined;
1260
1322
  }, {
1261
1323
  title: string;
1262
1324
  defaultValue: AnyObject[];
1325
+ disabled: boolean;
1263
1326
  mode: string;
1264
1327
  disabledIds: string[];
1265
1328
  }>;
@@ -1282,6 +1345,7 @@ declare const _default: import("vue").DefineComponent<{
1282
1345
  receiver?: string | undefined;
1283
1346
  }) => Promise<void>;
1284
1347
  isGroupChat: import("vue").ComputedRef<boolean>;
1348
+ isEnded: import("vue").ComputedRef<boolean>;
1285
1349
  showEmoji: import("vue").Ref<boolean>;
1286
1350
  content: import("vue").Ref<string>;
1287
1351
  commonEmoticons: import("vue").Ref<string[]>;
@@ -1326,6 +1390,10 @@ declare const _default: import("vue").DefineComponent<{
1326
1390
  type: PropType<AnyObject[]>;
1327
1391
  default: () => never[];
1328
1392
  };
1393
+ disabled: {
1394
+ type: BooleanConstructor;
1395
+ default: boolean;
1396
+ };
1329
1397
  }, {
1330
1398
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1331
1399
  title: {
@@ -1347,6 +1415,10 @@ declare const _default: import("vue").DefineComponent<{
1347
1415
  type: PropType<AnyObject[]>;
1348
1416
  default: () => never[];
1349
1417
  };
1418
+ disabled: {
1419
+ type: BooleanConstructor;
1420
+ default: boolean;
1421
+ };
1350
1422
  }>> & {
1351
1423
  onComfirm?: ((...args: any[]) => any) | undefined;
1352
1424
  }>>;
@@ -1411,11 +1483,16 @@ declare const _default: import("vue").DefineComponent<{
1411
1483
  type: PropType<AnyObject[]>;
1412
1484
  default: () => never[];
1413
1485
  };
1486
+ disabled: {
1487
+ type: BooleanConstructor;
1488
+ default: boolean;
1489
+ };
1414
1490
  }>> & {
1415
1491
  onComfirm?: ((...args: any[]) => any) | undefined;
1416
1492
  }, {
1417
1493
  title: string;
1418
1494
  defaultValue: AnyObject[];
1495
+ disabled: boolean;
1419
1496
  mode: string;
1420
1497
  disabledIds: string[];
1421
1498
  }>;
@@ -1523,6 +1600,10 @@ declare const _default: import("vue").DefineComponent<{
1523
1600
  type: PropType<AnyObject[]>;
1524
1601
  default: () => never[];
1525
1602
  };
1603
+ disabled: {
1604
+ type: BooleanConstructor;
1605
+ default: boolean;
1606
+ };
1526
1607
  }, {
1527
1608
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1528
1609
  title: {
@@ -1544,6 +1625,10 @@ declare const _default: import("vue").DefineComponent<{
1544
1625
  type: PropType<AnyObject[]>;
1545
1626
  default: () => never[];
1546
1627
  };
1628
+ disabled: {
1629
+ type: BooleanConstructor;
1630
+ default: boolean;
1631
+ };
1547
1632
  }>> & {
1548
1633
  onComfirm?: ((...args: any[]) => any) | undefined;
1549
1634
  }>>;
@@ -1608,11 +1693,16 @@ declare const _default: import("vue").DefineComponent<{
1608
1693
  type: PropType<AnyObject[]>;
1609
1694
  default: () => never[];
1610
1695
  };
1696
+ disabled: {
1697
+ type: BooleanConstructor;
1698
+ default: boolean;
1699
+ };
1611
1700
  }>> & {
1612
1701
  onComfirm?: ((...args: any[]) => any) | undefined;
1613
1702
  }, {
1614
1703
  title: string;
1615
1704
  defaultValue: AnyObject[];
1705
+ disabled: boolean;
1616
1706
  mode: string;
1617
1707
  disabledIds: string[];
1618
1708
  }>;
@@ -1751,6 +1841,10 @@ declare const _default: import("vue").DefineComponent<{
1751
1841
  type: PropType<AnyObject[]>;
1752
1842
  default: () => never[];
1753
1843
  };
1844
+ disabled: {
1845
+ type: BooleanConstructor;
1846
+ default: boolean;
1847
+ };
1754
1848
  }, {
1755
1849
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1756
1850
  title: {
@@ -1772,6 +1866,10 @@ declare const _default: import("vue").DefineComponent<{
1772
1866
  type: PropType<AnyObject[]>;
1773
1867
  default: () => never[];
1774
1868
  };
1869
+ disabled: {
1870
+ type: BooleanConstructor;
1871
+ default: boolean;
1872
+ };
1775
1873
  }>> & {
1776
1874
  onComfirm?: ((...args: any[]) => any) | undefined;
1777
1875
  }>>;
@@ -1836,11 +1934,16 @@ declare const _default: import("vue").DefineComponent<{
1836
1934
  type: PropType<AnyObject[]>;
1837
1935
  default: () => never[];
1838
1936
  };
1937
+ disabled: {
1938
+ type: BooleanConstructor;
1939
+ default: boolean;
1940
+ };
1839
1941
  }>> & {
1840
1942
  onComfirm?: ((...args: any[]) => any) | undefined;
1841
1943
  }, {
1842
1944
  title: string;
1843
1945
  defaultValue: AnyObject[];
1946
+ disabled: boolean;
1844
1947
  mode: string;
1845
1948
  disabledIds: string[];
1846
1949
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,reactive as t,computed as o,provide as n,onBeforeUnmount as i,watch as r,openBlock as a,createElementBlock as c,normalizeStyle as u,unref as d,createVNode as l,withCtx as p,createBlock as m,Fragment as h,createElementVNode as f,renderSlot as S,createCommentVNode as y}from"vue";import{NConfigProvider as g,NSpin as v,NLayout as b,NLayoutContent as M}from"naive-ui";import I from"./components/SiderList.vue.js";import k from"./components/ChatHeader.vue.js";import L from"./components/ChatMain.vue.js";import T from"./components/ChatFooter.vue.js";import V from"./components/ChatSearch.vue.js";import j from"./components/ChatAdd.vue.js";import w from"./components/Video.vue.js";import N from"./components/MultipleVideo.vue.js";import{ChatSock as U}from"./utils/chatSock.js";import{instanceAxios as A,readMessageApi as C}from"./api/index.js";import{useTheme as _}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{remove as E,isNumber as O}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import{promiseTimeout as x}from"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"../../../shared/hooks/useScrollLoading.js";import{CHAT_TYPE as R,SUBSCRIBE_MESSAGE_TYPE as G,AV_STATUS as K}from"./constants/index.js";import{InjectionIChatState as B,InjectionIChatStompClient as P,InjectionIChatEmits as J,InjectionIChatUnreadTotal as $}from"./types/index.js";import{isAudioOrVideoMessage as q,listSort as F}from"./utils/index.js";import{useSession as H}from"./hooks/useSession.js";import"trtc-sdk-v5";const z={key:0,class:"iho-chat__header"},D={class:"toolbar"};var W=e({__name:"Index",props:{token:{type:String,required:!0},orgId:{type:[String,Number],required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"},chatBox:{type:Boolean,default:!1},defaultSessionKey:{type:String},show:{type:Boolean,default:!0}},emits:["template-click","unread-message-update"],setup(e,{expose:W,emit:Y}){const Q=e;A.defaults.baseURL=Q.baseURL,A.defaults.headers.Authorization="bearer "+Q.token;const X=_(),Z=s(!1),ee=s(),se=t({orgId:Q.orgId,currentSessionItem:{},id:"",userInfo:{id:Q.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1,currentReferenceMsg:null,currentReEditMsg:null,showVideo:!1,currentAVMsg:{},currentGroupUser:[],showMultipleVideo:!1}),te=o((()=>se.sessionList.reduce(((e,s)=>e+ +s.unreadNum),0)));n(B,se),n(P,ee),n(J,Y),n($,te);const{openSession:oe,closeSession:ne,getCurrentSession:ie,setSessionList:re,setUpdateSessionItem:ae,setCurrentSessionItem:ce,updateSessionList:ue}=H(se),de=[];function le(){const e={headers:{AccessToken:Q.token,UserId:Q.userId},heartbeatFn(){try{ee.value.send("test")}catch(e){ee.value.disconnect(),le()}},connectCb(){console.log("连接成功"),ee.value.subscribe("/user/topic/single",(({body:e})=>me({body:e,chatType:R.SINGLE}))),ee.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{authentication:t,currentUser:o,sessionVos:n}=s;if(Object.assign(se.userInfo,o,t),!(null==n?void 0:n.length))return;re(n),de.splice(0,de.length),de.push(...n.filter((e=>e.chatType===R.GROUP))),de.forEach((e=>{ee.value.subscribe(`/topic/group/${e.receiver}`,(({body:e})=>me({body:e,chatType:R.GROUP})))})),function(){const e=se.sessionList.find((e=>e.sessionKey===Q.defaultSessionKey));e&&oe(e)}()}catch(e){console.log(e)}}))},errorCb(e,s){}};ee.value=new U("/fdp-chat/websocket",e)}async function pe(e,s){if(se.currentMsg=e,e.sessionKey===se.currentSessionItem.sessionKey)return se.isAppendMsg=!0,e.sender!==se.userInfo.id&&await C({chatType:s,messageIdSet:[e.id],receiver:se.userInfo.id,sender:e.sender}),void ce({lastMessageSendTime:e.sendTime,lastMessage:e.content,sortTime:e.sendTime,unreadNum:0,lastSenderName:e.senderName});const t={lastMessageSendTime:e.sendTime,sortTime:e.sendTime,lastMessage:e.content,sessionKey:e.sessionKey,lastSenderName:e.senderName,sender:e.sender};ae(t)}async function me({body:e,chatType:s}){try{const t=JSON.parse(e),{messageVo:o,sessionVo:n,chatAvStatusVo:i}=t;switch(t.event){case G.MESSAGE:q(o.content)?!se.showVideo&&!se.showMultipleVideo||o.content.avStatus!==K.IN_CALL?(se.currentMsg=o,Object.assign(se.currentAVMsg,{strRoomId:o.sessionKey,chatMessageType:o.content.chatMessageType,callMode:o.sender===se.userInfo.id?"call":"invite",currentMsg:o}),se.showVideo||se.showMultipleVideo?pe(o,s):se.showVideo=!0):(ee.value.send("/app/chat/send",{},JSON.stringify({chatType:R.SINGLE,receiver:o.sender,content:{chatMessageType:o.content.chatMessageType,avStatus:K.CALL_BUSY}})),console.log("用户忙!")):pe(o,s);break;case G.RECALL_MESSAGE:break;case G.AV_STATUS:Object.assign(se.currentAVMsg,i,{callMode:i.sender===se.userInfo.id?"call":"invite",checkedIds:[]}),se.showVideo||se.showMultipleVideo?console.log("用户忙!"):se.showMultipleVideo=!0;break;case G.NEW_SESSION:if(s===R.GROUP)return;ae(n);break;case G.JOIN:if(s===R.GROUP)return;ae(n),ee.value.subscribe(`/topic/group/${n.receiver}`,(({body:e})=>me({body:e,chatType:R.GROUP})));break;case G.LEAVE:ne(),E(se.sessionList,(e=>e.sessionKey===n.sessionKey))}}catch(e){console.log(e)}}return async function(){le()}(),i((()=>{var e;null==(e=ee.value)||e.disconnect()})),r((()=>te.value),(e=>{!async function s(t=0){const o=F(se.sessionList),n=o.every((e=>!!e.name));if(!(t>2))if(n){const s=o.filter((e=>{var s;return+(null!=(s=e.unreadNum)?s:0)>0}));Y("unread-message-update",e,s)}else await x(100),s(++t)}()})),r([()=>se.isChangeSession,()=>se.isUpdateSession],(([e,s])=>{e&&(ue(se.currentSessionItem),se.isChangeSession=!1),s&&(ue(se.updateSessionItem),se.isUpdateSession=!1)}),{immediate:!0}),W({getUnreadData:function(){return se.sessionList.filter((e=>O(e.unreadNum)&&e.unreadNum>0))},openSession:oe,closeSession:ne,getCurrentSession:ie}),(s,t)=>e.show?(a(),c("div",{key:0,class:"iho-chat",style:u(d(X))},[l(d(g),{abstract:"",namespace:"iho-chat__popover"},{default:p((()=>[Z.value?(a(),m(d(v),{key:0,stroke:"#5585f5"})):(a(),c(h,{key:1},[e.chatBox?y("v-if",!0):(a(),c("div",z,[l(V),l(j,{title:"发起群聊",mode:"create","default-value":[se.userInfo]},null,8,["default-value"]),f("div",D,[S(s.$slots,"toolbar")])])),l(d(b),{class:"iho-chat__body","has-sider":""},{default:p((()=>[e.chatBox?y("v-if",!0):(a(),m(I,{key:0})),l(d(M),{class:"chat-content"},{default:p((()=>[l(k),l(L),l(T)])),_:1}),S(s.$slots,"external")])),_:3}),se.showVideo?(a(),m(w,{key:1})):y("v-if",!0),se.showMultipleVideo?(a(),m(N,{key:2})):y("v-if",!0)],64))])),_:3})],4)):y("v-if",!0)}});export{W as default};
1
+ import{defineComponent as e,ref as s,reactive as t,computed as o,provide as n,onBeforeUnmount as i,watch as r,openBlock as a,createElementBlock as c,normalizeStyle as u,unref as d,createVNode as l,withCtx as p,createBlock as m,Fragment as h,createElementVNode as f,renderSlot as y,createCommentVNode as S}from"vue";import{NConfigProvider as v,NSpin as g,NLayout as b,NLayoutContent as M}from"naive-ui";import I from"./components/SiderList.vue.js";import k from"./components/ChatHeader.vue.js";import L from"./components/ChatMain.vue.js";import T from"./components/ChatFooter.vue.js";import V from"./components/ChatSearch.vue.js";import j from"./components/ChatAdd.vue.js";import w from"./components/Video.vue.js";import U from"./components/MultipleVideo.vue.js";import{ChatSock as N}from"./utils/chatSock.js";import{instanceAxios as _,readMessageApi as A}from"./api/index.js";import{useTheme as C}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{remove as O,isNumber as E}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import{promiseTimeout as R}from"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"../../../shared/hooks/useScrollLoading.js";import{CHAT_TYPE as x,SUBSCRIBE_MESSAGE_TYPE as G,AV_STATUS as K}from"./constants/index.js";import{InjectionIChatState as P,InjectionIChatStompClient as B,InjectionIChatEmits as J,InjectionIChatUnreadTotal as $}from"./types/index.js";import{isAudioOrVideoMessage as q,listSort as F}from"./utils/index.js";import{useSession as H}from"./hooks/useSession.js";import"trtc-sdk-v5";const z={key:0,class:"iho-chat__header"},D={class:"toolbar"};var W=e({__name:"Index",props:{token:{type:String,required:!0},orgId:{type:[String,Number],required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"},chatBox:{type:Boolean,default:!1},defaultSessionKey:{type:String},show:{type:Boolean,default:!0}},emits:["template-click","unread-message-update"],setup(e,{expose:W,emit:Y}){const Q=e;_.defaults.baseURL=Q.baseURL,_.defaults.headers.Authorization="bearer "+Q.token;const X=C(),Z=s(!1),ee=s(),se=t({orgId:Q.orgId,currentSessionItem:{},id:"",userInfo:{id:Q.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1,currentReferenceMsg:null,currentReEditMsg:null,showVideo:!1,currentAVMsg:{},currentGroupUser:[],showMultipleVideo:!1}),te=o((()=>se.sessionList.reduce(((e,s)=>e+ +s.unreadNum),0)));n(P,se),n(B,ee),n(J,Y),n($,te);const{openSession:oe,closeSession:ne,getCurrentSession:ie,setSessionList:re,setUpdateSessionItem:ae,setCurrentSessionItem:ce,updateSessionList:ue,isEnded:de}=H(se),le=[];function pe(){const e={headers:{AccessToken:Q.token,UserId:Q.userId},heartbeatFn(){try{ee.value.send("test")}catch(e){ee.value.disconnect(),pe()}},connectCb(){console.log("连接成功"),ee.value.subscribe("/user/topic/single",(({body:e})=>he({body:e,chatType:x.SINGLE}))),ee.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{authentication:t,currentUser:o,sessionVos:n}=s;if(Object.assign(se.userInfo,o,t),!(null==n?void 0:n.length))return;re(n),le.splice(0,le.length),le.push(...n.filter((e=>e.chatType===x.GROUP))),le.forEach((e=>{ee.value.subscribe(`/topic/group/${e.receiver}`,(({body:e})=>he({body:e,chatType:x.GROUP})))})),function(){const e=se.sessionList.find((e=>e.sessionKey===Q.defaultSessionKey));e&&oe(e)}()}catch(e){console.log(e)}}))},errorCb(e,s){}};ee.value=new N("/fdp-chat/websocket",e)}async function me(e,s){if(se.currentMsg=e,e.sessionKey===se.currentSessionItem.sessionKey)return se.isAppendMsg=!0,e.sender!==se.userInfo.id&&await A({chatType:s,messageIdSet:[e.id],receiver:se.userInfo.id,sender:e.sender}),void ce({lastMessageSendTime:e.sendTime,lastMessage:e.content,sortTime:e.sendTime,unreadNum:0,lastSenderName:e.senderName});const t={lastMessageSendTime:e.sendTime,sortTime:e.sendTime,lastMessage:e.content,sessionKey:e.sessionKey,lastSenderName:e.senderName,sender:e.sender};ae(t)}async function he({body:e,chatType:s}){try{const t=JSON.parse(e),{messageVo:o,sessionVo:n,chatAvStatusVo:i}=t;switch(t.event){case G.MESSAGE:q(o.content)?!se.showVideo&&!se.showMultipleVideo||o.content.avStatus!==K.IN_CALL?(se.currentMsg=o,Object.assign(se.currentAVMsg,{strRoomId:o.sessionKey,chatMessageType:o.content.chatMessageType,callMode:o.sender===se.userInfo.id?"call":"invite",currentMsg:o}),se.showVideo||se.showMultipleVideo?me(o,s):se.showVideo=!0):(ee.value.send("/app/chat/send",{},JSON.stringify({chatType:x.SINGLE,receiver:o.sender,content:{chatMessageType:o.content.chatMessageType,avStatus:K.CALL_BUSY}})),console.log("用户忙!")):me(o,s);break;case G.RECALL_MESSAGE:break;case G.AV_STATUS:Object.assign(se.currentAVMsg,i,{callMode:i.sender===se.userInfo.id?"call":"invite",checkedIds:[]}),se.showVideo||se.showMultipleVideo?console.log("用户忙!"):se.showMultipleVideo=!0;break;case G.NEW_SESSION:if(s===x.GROUP)return;ae(n);break;case G.JOIN_GROUP:if(s===x.GROUP)return;ae(n),ee.value.subscribe(`/topic/group/${n.receiver}`,(({body:e})=>he({body:e,chatType:x.GROUP})));break;case G.LEAVE_GROUP:ne(),O(se.sessionList,(e=>e.sessionKey===n.sessionKey))}}catch(e){console.log(e)}}return async function(){pe()}(),i((()=>{var e;null==(e=ee.value)||e.disconnect()})),r((()=>te.value),(e=>{!async function s(t=0){const o=F(se.sessionList),n=o.every((e=>!!e.name));if(!(t>2))if(n){const s=o.filter((e=>{var s;return+(null!=(s=e.unreadNum)?s:0)>0}));Y("unread-message-update",e,s)}else await R(100),s(++t)}()})),r([()=>se.isChangeSession,()=>se.isUpdateSession],(([e,s])=>{e&&(ue(se.currentSessionItem),se.isChangeSession=!1),s&&(ue(se.updateSessionItem),se.isUpdateSession=!1)}),{immediate:!0}),W({getUnreadData:function(){return se.sessionList.filter((e=>E(e.unreadNum)&&e.unreadNum>0))},openSession:oe,closeSession:ne,getCurrentSession:ie}),(s,t)=>e.show?(a(),c("div",{key:0,class:"iho-chat",style:u(d(X))},[l(d(v),{abstract:"",namespace:"iho-chat__popover"},{default:p((()=>[Z.value?(a(),m(d(g),{key:0,stroke:"#5585f5"})):(a(),c(h,{key:1},[e.chatBox?S("v-if",!0):(a(),c("div",z,[l(V),l(j,{title:"发起群聊",mode:"create","default-value":[se.userInfo]},null,8,["default-value"]),f("div",D,[y(s.$slots,"toolbar")])])),l(d(b),{class:"iho-chat__body","has-sider":""},{default:p((()=>[e.chatBox?S("v-if",!0):(a(),m(I,{key:0})),l(d(M),{class:"chat-content",style:u({"--c-pointer-events":d(de)?"none":"unset","--c-cursor":d(de)?"not-allowed":"unset"})},{default:p((()=>[l(k),l(L),l(T)])),_:1},8,["style"]),y(s.$slots,"external")])),_:3}),se.showVideo?(a(),m(w,{key:1})):S("v-if",!0),se.showMultipleVideo?(a(),m(U,{key:2})):S("v-if",!0)],64))])),_:3})],4)):S("v-if",!0)}});export{W as default};
@@ -15,3 +15,4 @@ export declare function groupJoinApi(params: AnyObject): import("axios").AxiosPr
15
15
  export declare function groupLeaveApi(params: AnyObject): import("axios").AxiosPromise<any>;
16
16
  export declare function avFinishApi(params: AnyObject): import("axios").AxiosPromise<any>;
17
17
  export declare function groupUpdateApi(params: FormData): import("axios").AxiosPromise<any>;
18
+ export declare function updateStatusApi(params: AnyObject): import("axios").AxiosPromise<any>;
@@ -1 +1 @@
1
- import t from"axios";import{createDiscreteApi as e}from"naive-ui";const{message:o}=e(["message"]);function r(t){const e=[];for(const o in t){const r=t[o];Array.isArray(r)?r.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(r)}`)}return e.join("&")}const n=t.create({withCredentials:!0,timeout:5e3});function a(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/openSession",data:r(t)})}function u(t){return n({method:"get",url:"/chat/recordList",params:t})}function s(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/toppingSession",data:r(t)})}function d(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function i(t){return n({method:"get",url:"/user/listUser",params:t})}function p(t){return n({method:"get",url:"/user/getUserDetail",params:t})}function c(t){return n({method:"post",url:"/chat/readMessage",data:t})}function m(t){return n({method:"post",url:"/chat/recallMessage",data:t})}function l(t){return n({method:"post",url:"/chat/searchChatRecord",data:t})}function h(t){return n({method:"post",url:"/group/create",data:t})}function f(t){return n({method:"get",url:"/group/user",params:t})}function g(t){return n({method:"post",url:"/group/join",data:t})}function C(t){return n({method:"post",url:"/group/leave",data:t})}function v(t){return n({method:"post",url:"/av/finish",data:t})}function w(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/group/update",data:t})}n.interceptors.response.use((t=>{var e,r,n;if(null==(e=t.data)?void 0:e.result)return null==(r=t.data)?void 0:r.data;500==(null==(n=t.data)?void 0:n.code)&&t.data.msg&&o.error(t.data.msg)}));export{v as avFinishApi,u as getHistoryRecordApi,p as getUserDetailApi,h as groupCreateApi,g as groupJoinApi,C as groupLeaveApi,w as groupUpdateApi,f as groupUserApi,n as instanceAxios,i as listUserApi,a as openSessionApi,c as readMessageApi,m as recallMessageApi,l as searchChatRecordApi,s as toppingSessionApi,d as uploadFileApi};
1
+ import t from"axios";import{createDiscreteApi as e}from"naive-ui";const{message:o}=e(["message"]);function r(t){const e=[];for(const o in t){const r=t[o];Array.isArray(r)?r.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(r)}`)}return e.join("&")}const n=t.create({withCredentials:!0,timeout:5e3});function a(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/openSession",data:r(t)})}function u(t){return n({method:"get",url:"/chat/recordList",params:t})}function s(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/toppingSession",data:r(t)})}function d(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function i(t){return n({method:"get",url:"/user/listUser",params:t})}function p(t){return n({method:"get",url:"/user/getUserDetail",params:t})}function c(t){return n({method:"post",url:"/chat/readMessage",data:t})}function m(t){return n({method:"post",url:"/chat/recallMessage",data:t})}function l(t){return n({method:"post",url:"/chat/searchChatRecord",data:t})}function h(t){return n({method:"post",url:"/group/create",data:t})}function f(t){return n({method:"get",url:"/group/user",params:t})}function g(t){return n({method:"post",url:"/group/join",data:t})}function C(t){return n({method:"post",url:"/group/leave",data:t})}function w(t){return n({method:"post",url:"/av/finish",data:t})}function v(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/group/update",data:t})}function y(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"put",url:"/session/updateStatus",data:r(t)})}n.interceptors.response.use((t=>{var e,r,n;if(null==(e=t.data)?void 0:e.result)return null==(r=t.data)?void 0:r.data;500==(null==(n=t.data)?void 0:n.code)&&t.data.msg&&o.error(t.data.msg)}));export{w as avFinishApi,u as getHistoryRecordApi,p as getUserDetailApi,h as groupCreateApi,g as groupJoinApi,C as groupLeaveApi,v as groupUpdateApi,f as groupUserApi,n as instanceAxios,i as listUserApi,a as openSessionApi,c as readMessageApi,m as recallMessageApi,l as searchChatRecordApi,s as toppingSessionApi,y as updateStatusApi,d as uploadFileApi};
@@ -20,6 +20,10 @@ declare const _default: import("vue").DefineComponent<{
20
20
  type: PropType<AnyObject[]>;
21
21
  default: () => never[];
22
22
  };
23
+ disabled: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
23
27
  }, {
24
28
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
25
29
  title: {
@@ -41,6 +45,10 @@ declare const _default: import("vue").DefineComponent<{
41
45
  type: PropType<AnyObject[]>;
42
46
  default: () => never[];
43
47
  };
48
+ disabled: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
44
52
  }>> & {
45
53
  onComfirm?: ((...args: any[]) => any) | undefined;
46
54
  }>>;
@@ -105,11 +113,16 @@ declare const _default: import("vue").DefineComponent<{
105
113
  type: PropType<AnyObject[]>;
106
114
  default: () => never[];
107
115
  };
116
+ disabled: {
117
+ type: BooleanConstructor;
118
+ default: boolean;
119
+ };
108
120
  }>> & {
109
121
  onComfirm?: ((...args: any[]) => any) | undefined;
110
122
  }, {
111
123
  title: string;
112
124
  defaultValue: AnyObject[];
125
+ disabled: boolean;
113
126
  mode: string;
114
127
  disabledIds: string[];
115
128
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as u,Fragment as o,createVNode as r,unref as s,withCtx as n,createElementVNode as d,createCommentVNode as v,isRef as c,renderList as p,createBlock as m,toDisplayString as f,createTextVNode as h,renderSlot as b}from"vue";import{NModal as g,NInput as y,NIcon as I,NCheckbox as k,NCheckboxGroup as w,NSpace as _,NAvatar as x,NTag as S,NTooltip as U,NButton as j}from"naive-ui";import{SearchOutline as C,AddOutline as R}from"@vicons/ionicons5";import{useState as L}from"../hooks/useState.js";import{useSession as V}from"../hooks/useSession.js";import{CHAT_TYPE as A}from"../constants/index.js";import"trtc-sdk-v5";import{listSort as E}from"../utils/index.js";import{groupLeaveApi as G,groupJoinApi as N,groupCreateApi as $}from"../api/index.js";import{cloneDeep as z,union as M,intersection as T,unionBy as D,remove as P,isArray as q,uniqBy as B,trim as F}from"lodash-es";import{useSearchUserList as H}from"../hooks/useSearchUserList.js";const J={class:"iho-chat-dialog__content iho-chat-add-wrapper"},K={key:0,class:"input-box"},O=d("span",null,"群名称:",-1),Q={class:"transfer-box"},W={class:"transfer-box__left"},X={class:"user-list-box"},Y={key:1,class:"no-data"},Z={class:"transfer-box__right"},ee={class:"checked-tag-box"},ae={key:0,class:"input-wrapper"};var le=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]}},emits:["comfirm"],setup(e,{emit:le}){const te=e,{state:ie}=L(),{setCurrentSessionItem:ue}=V(ie),oe=a(),re=a(""),se=a(!1),ne=a([]),de=a([]),ve=a(""),ce=a([]),pe=a(""),{userList:me,handleInput:fe}=H({wrapperRef:oe,keywordRef:re,before:()=>{me.value=z(de.value),we()},after:()=>{he.value.length&&me.value.forEach((e=>{var a;e.disabled=null==(a=he.value)?void 0:a.includes(e.id)})),we()}}),he=l((()=>"relay"===te.mode?[]:M(te.disabledIds,[ie.userInfo.id]))),be=l((()=>{var e,a;if(!(null==(e=ie.sessionList)?void 0:e.length))return[];const l=E(ie.sessionList);return null==(a="relay"===te.mode?l:l.filter((e=>e.chatType===A.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),ge=l((()=>ne.value.length?ne.value.map((e=>e.id)):[])),ye=l((()=>"create"===te.mode?ge.value.length<3:ge.value.length<1)),Ie=l({get:()=>ce.value.filter((e=>!he.value.includes(e))).length===me.value.filter((e=>!e.disabled)).length,set(e){const a=te.defaultValue.map((e=>e.id)),l=T(a,he.value,me.value.map((e=>e.id))),t=me.value.filter((e=>!e.disabled));ce.value=l.concat(e?t.map((e=>e.id)):[]),e?ne.value=D(ne.value,t,"id"):P(ne.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function ke(){switch(te.mode){case"create":await $({creator:ie.userInfo.id,memberIdSet:ge.value,name:F(ve.value),orgId:ie.orgId});break;case"join":if(await N({groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:ge.value}),!ie.currentSessionItem.defaultName){const e=ne.value.map((e=>e.name)).join(",");ue({name:`${ie.currentSessionItem.name},${e}`})}ie.currentGroupUser.push(...me.value.filter((e=>ge.value.includes(e.id))));break;case"remove":if(await G({dissolution:!1,groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:ge.value}),!ie.currentSessionItem.defaultName){const e=ne.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");ue({name:ie.currentSessionItem.name.replace(a,"")})}P(ie.currentGroupUser,(e=>ge.value.includes(e.id)));break;default:le("comfirm",ge.value,pe.value)}se.value=!1}function we(){var e,a;ce.value=null!=(a=null==(e=me.value.filter((e=>ge.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function _e(e,a){if("check"===a.actionType){const e=me.value.find((e=>e.id===a.value));ne.value.push(e)}else P(ne.value,(e=>e.id===a.value))}return t((()=>se.value),(e=>{if(!e)return;re.value="",ve.value="";const a=q(te.options)&&te.options.length?te.options:be.value;de.value=B(a,"id").map((e=>{var a;return{...e,disabled:null==(a=he.value)?void 0:a.includes(e.id)}})),me.value=z(de.value),q(te.defaultValue)&&te.defaultValue.length?(ne.value=z(te.defaultValue),we()):(ne.value=[],ce.value=[])})),(a,l)=>(i(),u(o,null,[r(s(g),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:se.value,"onUpdate:show":l[5]||(l[5]=e=>se.value=e),"negative-text":"取消","positive-text":"确定","display-directive":"show","positive-button-props":{disabled:s(ye)},onPositiveClick:ke},{default:n((()=>[d("div",J,["create"===e.mode?(i(),u("div",K,[O,r(s(y),{clearable:"",placeholder:"取个群名称方便后续搜索",value:ve.value,"onUpdate:value":l[0]||(l[0]=e=>ve.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),d("div",Q,[d("div",W,[r(s(y),{placeholder:"搜索",clearable:"",value:re.value,"onUpdate:value":[l[1]||(l[1]=e=>re.value=e),s(fe)],valueModifiers:{trim:!0}},{prefix:n((()=>[r(s(I),{component:s(C)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),d("div",X,[s(me).length>0?(i(),u(o,{key:0},[r(s(k),{label:"全选",checked:s(Ie),"onUpdate:checked":l[2]||(l[2]=e=>c(Ie)?Ie.value=e:null)},null,8,["checked"]),r(s(w),{ref_key:"listRef",ref:oe,value:ce.value,"onUpdate:value":[l[3]||(l[3]=e=>ce.value=e),_e]},{default:n((()=>[(i(!0),u(o,null,p(s(me),(e=>(i(),m(s(k),{key:e.id,value:e.id,disabled:e.disabled},{default:n((()=>[r(s(_),{align:"center","wrap-item":!1},{default:n((()=>[r(s(x),{src:e.avatar,round:"",size:32},null,8,["src"]),d("span",null,f(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),u("div",Y,"找不到相关结果"))])]),d("div",Z,[d("span",null,"已选择 "+f(s(ge).length)+" 人",1),d("div",ee,[(i(!0),u(o,null,p(ne.value,(a=>(i(),m(s(S),{key:a.id,bordered:!1,closable:"relay"===e.mode||a.id!==s(ie).userInfo.id,disabled:s(he).includes(a.id),onClose:()=>{return e=a.id,P(ne.value,(a=>a.id===e)),void P(ce.value,(a=>a===e));var e}},{avatar:n((()=>[r(s(x),{round:"",src:a.avatar},null,8,["src"])])),default:n((()=>[h(" "+f(a.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===e.mode?(i(),u("div",ae,[r(s(y),{clearable:"",value:pe.value,"onUpdate:value":l[4]||(l[4]=e=>pe.value=e),type:"textarea",placeholder:"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])])),_:1},8,["title","show","positive-button-props"]),d("span",{class:"btn-wrapper",onClick:l[6]||(l[6]=e=>se.value=!0)},[b(a.$slots,"trigger",{},(()=>[r(s(U),{"show-arrow":!1,placement:"bottom"},{trigger:n((()=>[r(s(j),{color:"#ffffff4D",class:"add-btn"},{icon:n((()=>[r(s(I),{component:s(R),color:"#fff"},null,8,["component"])])),_:1})])),default:n((()=>[h(" "+f(e.title),1)])),_:1})]))])],64))}});export{le as default};
1
+ import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as u,Fragment as o,createVNode as r,unref as s,withCtx as n,createElementVNode as d,createCommentVNode as v,isRef as c,renderList as p,createBlock as m,toDisplayString as f,createTextVNode as h,normalizeClass as b,renderSlot as g}from"vue";import{NModal as y,NInput as I,NIcon as k,NCheckbox as w,NCheckboxGroup as _,NSpace as x,NAvatar as S,NTag as U,NTooltip as j,NButton as C}from"naive-ui";import{SearchOutline as R,AddOutline as L}from"@vicons/ionicons5";import{useState as V}from"../hooks/useState.js";import{useSession as A}from"../hooks/useSession.js";import{CHAT_TYPE as E}from"../constants/index.js";import"trtc-sdk-v5";import{listSort as G}from"../utils/index.js";import{groupLeaveApi as N,groupJoinApi as $,groupCreateApi as z}from"../api/index.js";import{cloneDeep as M,union as T,intersection as B,unionBy as D,remove as P,isArray as q,uniqBy as F,trim as H}from"lodash-es";import{useSearchUserList as J}from"../hooks/useSearchUserList.js";const K={class:"iho-chat-dialog__content iho-chat-add-wrapper"},O={key:0,class:"input-box"},Q=d("span",null,"群名称:",-1),W={class:"transfer-box"},X={class:"transfer-box__left"},Y={class:"user-list-box"},Z={key:1,class:"no-data"},ee={class:"transfer-box__right"},ae={class:"checked-tag-box"},le={key:0,class:"input-wrapper"};var te=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(e,{emit:te}){const ie=e,{state:ue}=V(),{setCurrentSessionItem:oe}=A(ue),re=a(),se=a(""),ne=a(!1),de=a([]),ve=a([]),ce=a(""),pe=a([]),me=a(""),{userList:fe,handleInput:he}=J({wrapperRef:re,keywordRef:se,before:()=>{fe.value=M(ve.value),_e()},after:()=>{be.value.length&&fe.value.forEach((e=>{var a;e.disabled=null==(a=be.value)?void 0:a.includes(e.id)})),_e()}}),be=l((()=>"relay"===ie.mode?[]:T(ie.disabledIds,[ue.userInfo.id]))),ge=l((()=>{var e,a;if(!(null==(e=ue.sessionList)?void 0:e.length))return[];const l=G(ue.sessionList);return null==(a="relay"===ie.mode?l:l.filter((e=>e.chatType===E.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),ye=l((()=>de.value.length?de.value.map((e=>e.id)):[])),Ie=l((()=>"create"===ie.mode?ye.value.length<3:ye.value.length<1)),ke=l({get:()=>pe.value.filter((e=>!be.value.includes(e))).length===fe.value.filter((e=>!e.disabled)).length,set(e){const a=ie.defaultValue.map((e=>e.id)),l=B(a,be.value,fe.value.map((e=>e.id))),t=fe.value.filter((e=>!e.disabled));pe.value=l.concat(e?t.map((e=>e.id)):[]),e?de.value=D(de.value,t,"id"):P(de.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function we(){switch(ie.mode){case"create":await z({creator:ue.userInfo.id,memberIdSet:ye.value,name:H(ce.value),orgId:ue.orgId});break;case"join":if(await $({groupId:ue.currentSessionItem.receiver,operator:ue.userInfo.id,memberIdSet:ye.value}),!ue.currentSessionItem.defaultName){const e=de.value.map((e=>e.name)).join(",");oe({name:`${ue.currentSessionItem.name},${e}`})}ue.currentGroupUser.push(...fe.value.filter((e=>ye.value.includes(e.id))));break;case"remove":if(await N({dissolution:!1,groupId:ue.currentSessionItem.receiver,operator:ue.userInfo.id,memberIdSet:ye.value}),!ue.currentSessionItem.defaultName){const e=de.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");oe({name:ue.currentSessionItem.name.replace(a,"")})}P(ue.currentGroupUser,(e=>ye.value.includes(e.id)));break;default:te("comfirm",ye.value,me.value)}ne.value=!1}function _e(){var e,a;pe.value=null!=(a=null==(e=fe.value.filter((e=>ye.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function xe(e,a){if("check"===a.actionType){const e=fe.value.find((e=>e.id===a.value));de.value.push(e)}else P(de.value,(e=>e.id===a.value))}return t((()=>ne.value),(e=>{if(!e)return;se.value="",ce.value="";const a=q(ie.options)&&ie.options.length?ie.options:ge.value;ve.value=F(a,"id").map((e=>{var a;return{...e,disabled:null==(a=be.value)?void 0:a.includes(e.id)}})),fe.value=M(ve.value),q(ie.defaultValue)&&ie.defaultValue.length?(de.value=M(ie.defaultValue),_e()):(de.value=[],pe.value=[])})),(a,l)=>(i(),u(o,null,[r(s(y),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:ne.value,"onUpdate:show":l[5]||(l[5]=e=>ne.value=e),"negative-text":"取消","positive-text":"确定","display-directive":"show","positive-button-props":{disabled:s(Ie)},onPositiveClick:we},{default:n((()=>[d("div",K,["create"===e.mode?(i(),u("div",O,[Q,r(s(I),{clearable:"",placeholder:"取个群名称方便后续搜索",value:ce.value,"onUpdate:value":l[0]||(l[0]=e=>ce.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),d("div",W,[d("div",X,[r(s(I),{placeholder:"搜索",clearable:"",value:se.value,"onUpdate:value":[l[1]||(l[1]=e=>se.value=e),s(he)],valueModifiers:{trim:!0}},{prefix:n((()=>[r(s(k),{component:s(R)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),d("div",Y,[s(fe).length>0?(i(),u(o,{key:0},[r(s(w),{label:"全选",checked:s(ke),"onUpdate:checked":l[2]||(l[2]=e=>c(ke)?ke.value=e:null)},null,8,["checked"]),r(s(_),{ref_key:"listRef",ref:re,value:pe.value,"onUpdate:value":[l[3]||(l[3]=e=>pe.value=e),xe]},{default:n((()=>[(i(!0),u(o,null,p(s(fe),(e=>(i(),m(s(w),{key:e.id,value:e.id,disabled:e.disabled},{default:n((()=>[r(s(x),{align:"center","wrap-item":!1},{default:n((()=>[r(s(S),{src:e.avatar,round:"",size:32},null,8,["src"]),d("span",null,f(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),u("div",Z,"找不到相关结果"))])]),d("div",ee,[d("span",null,"已选择 "+f(s(ye).length)+" 人",1),d("div",ae,[(i(!0),u(o,null,p(de.value,(a=>(i(),m(s(U),{key:a.id,bordered:!1,closable:"relay"===e.mode||a.id!==s(ue).userInfo.id,disabled:s(be).includes(a.id),onClose:()=>{return e=a.id,P(de.value,(a=>a.id===e)),void P(pe.value,(a=>a===e));var e}},{avatar:n((()=>[r(s(S),{round:"",src:a.avatar},null,8,["src"])])),default:n((()=>[h(" "+f(a.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===e.mode?(i(),u("div",le,[r(s(I),{clearable:"",value:me.value,"onUpdate:value":l[4]||(l[4]=e=>me.value=e),type:"textarea",placeholder:"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])])),_:1},8,["title","show","positive-button-props"]),d("span",{class:b(["btn-wrapper",{disabled:e.disabled}]),onClick:l[6]||(l[6]=e=>ne.value=!0)},[g(a.$slots,"trigger",{},(()=>[r(s(j),{"show-arrow":!1,placement:"bottom"},{trigger:n((()=>[r(s(C),{color:"#ffffff4D",class:"add-btn"},{icon:n((()=>[r(s(k),{component:s(L),color:"#fff"},null,8,["component"])])),_:1})])),default:n((()=>[h(" "+f(e.title),1)])),_:1})]))],2)],64))}});export{te as default};
@@ -76,6 +76,10 @@ declare const _default: import("vue").DefineComponent<{
76
76
  type: PropType<AnyObject[]>;
77
77
  default: () => never[];
78
78
  };
79
+ disabled: {
80
+ type: BooleanConstructor;
81
+ default: boolean;
82
+ };
79
83
  }, {
80
84
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
81
85
  title: {
@@ -97,6 +101,10 @@ declare const _default: import("vue").DefineComponent<{
97
101
  type: PropType<AnyObject[]>;
98
102
  default: () => never[];
99
103
  };
104
+ disabled: {
105
+ type: BooleanConstructor;
106
+ default: boolean;
107
+ };
100
108
  }>> & {
101
109
  onComfirm?: ((...args: any[]) => any) | undefined;
102
110
  }>>;
@@ -161,11 +169,16 @@ declare const _default: import("vue").DefineComponent<{
161
169
  type: PropType<AnyObject[]>;
162
170
  default: () => never[];
163
171
  };
172
+ disabled: {
173
+ type: BooleanConstructor;
174
+ default: boolean;
175
+ };
164
176
  }>> & {
165
177
  onComfirm?: ((...args: any[]) => any) | undefined;
166
178
  }, {
167
179
  title: string;
168
180
  defaultValue: AnyObject[];
181
+ disabled: boolean;
169
182
  mode: string;
170
183
  disabledIds: string[];
171
184
  }>;
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<{}, {
12
12
  receiver?: string | undefined;
13
13
  }) => Promise<void>;
14
14
  isGroupChat: import("vue").ComputedRef<boolean>;
15
+ isEnded: import("vue").ComputedRef<boolean>;
15
16
  showEmoji: Ref<boolean>;
16
17
  content: Ref<string>;
17
18
  commonEmoticons: Ref<string[]>;
@@ -56,6 +57,10 @@ declare const _default: import("vue").DefineComponent<{}, {
56
57
  type: import("vue").PropType<AnyObject[]>;
57
58
  default: () => never[];
58
59
  };
60
+ disabled: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
59
64
  }, {
60
65
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
61
66
  title: {
@@ -77,6 +82,10 @@ declare const _default: import("vue").DefineComponent<{}, {
77
82
  type: import("vue").PropType<AnyObject[]>;
78
83
  default: () => never[];
79
84
  };
85
+ disabled: {
86
+ type: BooleanConstructor;
87
+ default: boolean;
88
+ };
80
89
  }>> & {
81
90
  onComfirm?: ((...args: any[]) => any) | undefined;
82
91
  }>>;
@@ -141,11 +150,16 @@ declare const _default: import("vue").DefineComponent<{}, {
141
150
  type: import("vue").PropType<AnyObject[]>;
142
151
  default: () => never[];
143
152
  };
153
+ disabled: {
154
+ type: BooleanConstructor;
155
+ default: boolean;
156
+ };
144
157
  }>> & {
145
158
  onComfirm?: ((...args: any[]) => any) | undefined;
146
159
  }, {
147
160
  title: string;
148
161
  defaultValue: AnyObject[];
162
+ disabled: boolean;
149
163
  mode: string;
150
164
  disabledIds: string[];
151
165
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as n,computed as t,watch as o,withDirectives as i,openBlock as s,createElementBlock as r,normalizeStyle as a,unref as c,createElementVNode as l,toDisplayString as u,createVNode as f,createCommentVNode as d,withCtx as m,Fragment as g,renderList as p,createBlock as h,createTextVNode as y,mergeProps as v,vShow as w}from"vue";import{NIcon as M,NTooltip as _,NPopover as k,NButton as E,NUpload as C,NUploadTrigger as I}from"naive-ui";import T from"./ChatAdd.vue.js";import{useState as x}from"../hooks/useState.js";import{useSession as b}from"../hooks/useSession.js";import{MESSAGE_TYPE as j,AV_STATUS as z}from"../constants/index.js";import"trtc-sdk-v5";import{simplifyMessage as L,base64ToFile as O}from"../utils/index.js";import{emojis as R}from"../utils/emoji.js";import{uploadFileApi as q}from"../api/index.js";import{CloseCircleOutline as D,CallOutline as A,VideocamOutline as $}from"@vicons/ionicons5";import{xor as H,uniq as J,trim as V,cloneDeep as K}from"lodash-es";import{uuidGenerator as F}from"../../../../shared/utils/index.js";import{useStorage as U}from"@vueuse/core";const G={key:0,class:"reference-content-box"},N={class:"reference-content"},X=["innerHTML"],B={class:"tool-box"},S=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),P=l("span",null,"最近使用",-1),Q={class:"list-box",style:{"margin-bottom":"8px"}},W=["src"],Y=l("span",null,"默认表情",-1),Z={class:"list-box"},ee=["src"],ne=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),te=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),oe=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),ie={class:"btn-box"},se=l("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var re=e({__name:"ChatFooter",setup(e){const re=n(),{state:ae,sendMessage:ce}=x(),{isGroupChat:le}=b(ae),ue=n(!1),fe=n(""),de=U("commonEmoticons",[]),me=t((()=>({options:ae.currentGroupUser,defaultValue:[ae.userInfo]}))),ge=t((()=>!fe.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function pe(e,n=[]){const t=F(),o=[],i=n.length>0;ae.showVideo||ae.showMultipleVideo||(i?(o.push(...H(n,[ae.userInfo.id])),Object.assign(ae.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),ae.showMultipleVideo=!0):ce({content:{chatMessageType:e,msg:"",avStatus:z.IN_CALL}}))}function he(e){["Enter"].includes(e.key)&&(e.ctrlKey&&(e.preventDefault(),document.execCommand("InsertLineBreak")),function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),_e()))}function ye(){var e;fe.value=(null==(e=re.value)?void 0:e.innerHTML)||""}function ve(e){var n;de.value.unshift(e),de.value=J(de.value).slice(0,26),null==(n=re.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${j.EMOJI} class="emoji--min" src=${R.findEmoji(e)} />`)}async function we(e){const n=new FormData;return n.append("sender",ae.userInfo.id),n.append("file",e),await q(n)}async function Me(e,n){const{file:t,name:o}=e.file,i=await we(t);if(!i)return console.log("上传失败");ke({chatMessageType:n,msg:n===j.FILE?o:i,url:i})}async function _e(){const{innerHTML:e="",innerText:n="",outerText:t=""}=re.value||{};if(ge.value)return console.log("请输入内容");let o=j.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),s=(t||[]).length;if(n&&0===s)i=n;else if(n||1!==s){if(o=j.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<s;e++)if(t[e].includes(`data-type="${j.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(i=i.replace(t[e],`[${n[1]}]`))}else{const n=t[e].match(/src\s*=\s*"([^"]*)"/);if(n&&n.length>1){const e=await O(n[1]);if(e){const t=await we(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(j.EMOJI)){o=j.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=j.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await we(e);n&&(i=n)}}}}else i=V(n);i&&ke({msg:i,chatMessageType:o,origin:"btn"})}async function ke(e){const{chatMessageType:n=j.TEXT,msg:t,url:o,origin:i=""}=e,s={msg:t,chatMessageType:n};n===j.FILE&&(s.fileUrl=o),"btn"===i&&Ee(),ae.currentReferenceMsg&&([j.TEXT,j.EMOJI,j.BLEND].includes(n)&&(s.referenceContent=K(ae.currentReferenceMsg)),ae.currentReferenceMsg=null),ce({content:s})}function Ee(){re.value.innerHTML="",fe.value=""}return o((()=>[ae.currentReferenceMsg,ae.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=re.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===j.TEXT?t:`<img data-msg=${t} data-type=${j.EMOJI} class="emoji--min" src=${R.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),ae.currentReEditMsg=null}})),o((()=>ae.id),(e=>{e&&Ee()})),(e,n)=>i((s(),r("section",{class:"chat-footer",style:a({cursor:c(ae).id?"default":"not-allowed"})},[c(ae).currentReferenceMsg?(s(),r("div",G,[l("div",N,[l("span",null,u(c(ae).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:c(L)(c(ae).currentReferenceMsg.content)},null,8,X)]),f(c(M),{component:c(D),onClick:n[0]||(n[0]=()=>c(ae).currentReferenceMsg=null)},null,8,["component"])])):d("v-if",!0),l("div",B,[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(k),{"content-class":"emoji-content",class:"emoji-wrapper",show:ue.value,"onUpdate:show":n[1]||(n[1]=e=>ue.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[S])),_:1})])),default:m((()=>[c(de).length>0?(s(),r(g,{key:0},[P,l("div",Q,[(s(!0),r(g,null,p(c(de),(e=>(s(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:()=>ve(e)},{icon:m((()=>[l("img",{src:c(R).findEmoji(e)},null,8,W)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])],64)):d("v-if",!0),Y,l("div",Z,[(s(!0),r(g,null,p(c(R).default,(([e,n])=>(s(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:()=>ve(e)},{icon:m((()=>[l("img",{src:n},null,8,ee)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:m((()=>[y(" 表情 ")])),_:1}),f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:n[2]||(n[2]=()=>ke({chatMessageType:c(j).EMOJI,msg:0}))},{icon:m((()=>[ne])),_:1})])),default:m((()=>[y(" 点赞 ")])),_:1}),f(c(C),{abstract:"",multiple:"",accept:"image/*",onChange:n[3]||(n[3]=e=>Me(e,c(j).IMAGE))},{default:m((()=>[f(c(I),{abstract:""},{default:m((({handleClick:e})=>[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[te])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传图片 ")])),_:2},1024)])),_:1})])),_:1}),f(c(C),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:n[4]||(n[4]=e=>Me(e,c(j).FILE))},{default:m((()=>[f(c(I),{abstract:""},{default:m((({handleClick:e})=>[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[oe])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传文件 ")])),_:2},1024)])),_:1})])),_:1}),c(ae).userInfo.sdkAppID?(s(),r(g,{key:0},[c(le)?(s(),r(g,{key:0},[f(T,v(c(me),{onComfirm:n[5]||(n[5]=e=>pe(c(j).AUDIO,e))}),{trigger:m((()=>[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[f(c(M),{size:"18",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1})])),_:1},16),f(T,v(c(me),{onComfirm:n[6]||(n[6]=e=>pe(c(j).VIDEO,e))}),{trigger:m((()=>[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[f(c(M),{size:"20",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频会议 ")])),_:1})])),_:1},16)],64)):(s(),r(g,{key:1},[f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:n[7]||(n[7]=()=>pe(c(j).AUDIO))},{icon:m((()=>[f(c(M),{size:"18",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1}),f(c(_),{"show-arrow":!1},{trigger:m((()=>[f(c(E),{quaternary:"",size:"tiny",onClick:n[8]||(n[8]=()=>pe(c(j).VIDEO))},{icon:m((()=>[f(c(M),{size:"20",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频通话 ")])),_:1})],64))],64)):d("v-if",!0)]),i(l("div",{ref_key:"inputRef",ref:re,class:"input-box",contenteditable:"",onKeydown:he,onInput:ye},null,544),[[w,c(ae).id]]),l("div",ie,[se,f(c(E),{type:"primary",round:"",disabled:c(ge),onClick:_e},{default:m((()=>[y("发送")])),_:1},8,["disabled"])])],4)),[[w,c(ae).id]])}});export{re as default};
1
+ import{defineComponent as e,ref as n,computed as t,watch as o,withDirectives as i,openBlock as s,createElementBlock as r,normalizeStyle as a,unref as c,createElementVNode as l,toDisplayString as u,createVNode as d,createCommentVNode as f,withCtx as m,Fragment as g,renderList as p,createBlock as h,createTextVNode as y,mergeProps as v,vShow as w}from"vue";import{NIcon as M,NTooltip as _,NPopover as k,NButton as E,NUpload as C,NUploadTrigger as I}from"naive-ui";import T from"./ChatAdd.vue.js";import{useState as b}from"../hooks/useState.js";import{useSession as x}from"../hooks/useSession.js";import{MESSAGE_TYPE as j,AV_STATUS as z}from"../constants/index.js";import"trtc-sdk-v5";import{simplifyMessage as L,base64ToFile as O}from"../utils/index.js";import{emojis as R}from"../utils/emoji.js";import{uploadFileApi as q}from"../api/index.js";import{CloseCircleOutline as D,CallOutline as A,VideocamOutline as $}from"@vicons/ionicons5";import{xor as H,uniq as J,trim as V,cloneDeep as K}from"lodash-es";import{uuidGenerator as F}from"../../../../shared/utils/index.js";import{useStorage as U}from"@vueuse/core";const G={key:0,class:"reference-content-box"},N={class:"reference-content"},X=["innerHTML"],B={class:"tool-box"},S=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),P=l("span",null,"最近使用",-1),Q={class:"list-box",style:{"margin-bottom":"8px"}},W=["src"],Y=l("span",null,"默认表情",-1),Z={class:"list-box"},ee=["src"],ne=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),te=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),oe=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),ie=["contenteditable"],se={class:"btn-box"},re=l("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ae=e({__name:"ChatFooter",setup(e){const ae=n(),{state:ce,sendMessage:le}=b(),{isGroupChat:ue,isEnded:de}=x(ce),fe=n(!1),me=n(""),ge=U("commonEmoticons",[]),pe=t((()=>({options:ce.currentGroupUser,defaultValue:[ce.userInfo]}))),he=t((()=>!me.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=F(),o=[],i=n.length>0;ce.showVideo||ce.showMultipleVideo||(i?(o.push(...H(n,[ce.userInfo.id])),Object.assign(ce.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),ce.showMultipleVideo=!0):le({content:{chatMessageType:e,msg:"",avStatus:z.IN_CALL}}))}function ve(e){["Enter"].includes(e.key)&&(e.ctrlKey&&(e.preventDefault(),document.execCommand("InsertLineBreak")),function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),Ee()))}function we(){var e;me.value=(null==(e=ae.value)?void 0:e.innerHTML)||""}function Me(e){var n;ge.value.unshift(e),ge.value=J(ge.value).slice(0,26),null==(n=ae.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${j.EMOJI} class="emoji--min" src=${R.findEmoji(e)} />`)}async function _e(e){const n=new FormData;return n.append("sender",ce.userInfo.id),n.append("file",e),await q(n)}async function ke(e,n){const{file:t,name:o}=e.file,i=await _e(t);if(!i)return console.log("上传失败");Ce({chatMessageType:n,msg:n===j.FILE?o:i,url:i})}async function Ee(){const{innerHTML:e="",innerText:n="",outerText:t=""}=ae.value||{};if(he.value)return console.log("请输入内容");let o=j.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),s=(t||[]).length;if(n&&0===s)i=n;else if(n||1!==s){if(o=j.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<s;e++)if(t[e].includes(`data-type="${j.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(i=i.replace(t[e],`[${n[1]}]`))}else{const n=t[e].match(/src\s*=\s*"([^"]*)"/);if(n&&n.length>1){const e=await O(n[1]);if(e){const t=await _e(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(j.EMOJI)){o=j.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=j.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await _e(e);n&&(i=n)}}}}else i=V(n);i&&Ce({msg:i,chatMessageType:o,origin:"btn"})}async function Ce(e){const{chatMessageType:n=j.TEXT,msg:t,url:o,origin:i=""}=e,s={msg:t,chatMessageType:n};n===j.FILE&&(s.fileUrl=o),"btn"===i&&Ie(),ce.currentReferenceMsg&&([j.TEXT,j.EMOJI,j.BLEND].includes(n)&&(s.referenceContent=K(ce.currentReferenceMsg)),ce.currentReferenceMsg=null),le({content:s})}function Ie(){ae.value.innerHTML="",me.value=""}return o((()=>[ce.currentReferenceMsg,ce.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=ae.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===j.TEXT?t:`<img data-msg=${t} data-type=${j.EMOJI} class="emoji--min" src=${R.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),ce.currentReEditMsg=null}})),o((()=>ce.id),(e=>{e&&Ie()})),(e,n)=>i((s(),r("section",{class:"chat-footer",style:a({cursor:c(ce).id?"default":"not-allowed"})},[c(ce).currentReferenceMsg?(s(),r("div",G,[l("div",N,[l("span",null,u(c(ce).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:c(L)(c(ce).currentReferenceMsg.content)},null,8,X)]),d(c(M),{component:c(D),onClick:n[0]||(n[0]=()=>c(ce).currentReferenceMsg=null)},null,8,["component"])])):f("v-if",!0),l("div",B,[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(k),{"content-class":"emoji-content",class:"emoji-wrapper",show:fe.value,"onUpdate:show":n[1]||(n[1]=e=>fe.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[S])),_:1})])),default:m((()=>[c(ge).length>0?(s(),r(g,{key:0},[P,l("div",Q,[(s(!0),r(g,null,p(c(ge),(e=>(s(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Me(e)},{icon:m((()=>[l("img",{src:c(R).findEmoji(e)},null,8,W)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])],64)):f("v-if",!0),Y,l("div",Z,[(s(!0),r(g,null,p(c(R).default,(([e,n])=>(s(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Me(e)},{icon:m((()=>[l("img",{src:n},null,8,ee)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:m((()=>[y(" 表情 ")])),_:1}),d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:n[2]||(n[2]=()=>Ce({chatMessageType:c(j).EMOJI,msg:0}))},{icon:m((()=>[ne])),_:1})])),default:m((()=>[y(" 点赞 ")])),_:1}),d(c(C),{abstract:"",multiple:"",accept:"image/*",onChange:n[3]||(n[3]=e=>ke(e,c(j).IMAGE))},{default:m((()=>[d(c(I),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[te])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传图片 ")])),_:2},1024)])),_:1})])),_:1}),d(c(C),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:n[4]||(n[4]=e=>ke(e,c(j).FILE))},{default:m((()=>[d(c(I),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[oe])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传文件 ")])),_:2},1024)])),_:1})])),_:1}),c(ce).userInfo.sdkAppID?(s(),r(g,{key:0},[c(ue)?(s(),r(g,{key:0},[d(T,v(c(pe),{onComfirm:n[5]||(n[5]=e=>ye(c(j).AUDIO,e))}),{trigger:m((()=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(M),{size:"18",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1})])),_:1},16),d(T,v(c(pe),{onComfirm:n[6]||(n[6]=e=>ye(c(j).VIDEO,e))}),{trigger:m((()=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(M),{size:"20",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频会议 ")])),_:1})])),_:1},16)],64)):(s(),r(g,{key:1},[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:n[7]||(n[7]=()=>ye(c(j).AUDIO))},{icon:m((()=>[d(c(M),{size:"18",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1}),d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:n[8]||(n[8]=()=>ye(c(j).VIDEO))},{icon:m((()=>[d(c(M),{size:"20",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频通话 ")])),_:1})],64))],64)):f("v-if",!0)]),i(l("div",{ref_key:"inputRef",ref:ae,class:"input-box",contenteditable:!c(de),onKeydown:ve,onInput:we},null,40,ie),[[w,c(ce).id]]),l("div",se,[re,d(c(E),{type:"primary",round:"",disabled:c(he),onClick:Ee},{default:m((()=>[y("发送")])),_:1},8,["disabled"])])],4)),[[w,c(ce).id]])}});export{ae as default};