cnhis-design-vue 3.2.15-release.5 → 3.2.16-beta.7

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 (75) hide show
  1. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  2. package/es/components/branch-notice/src/canstants.js +1 -1
  3. package/es/components/button-print/index.d.ts +6 -13
  4. package/es/components/button-print/src/ButtonPrint.vue.d.ts +6 -13
  5. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +6 -13
  6. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  7. package/es/components/button-print/style/index.css +1 -1
  8. package/es/components/callback/src/components/render/popupMaps.d.ts +10 -0
  9. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  10. package/es/components/date-picker/src/DatePicker.vue2.js +1 -1
  11. package/es/components/expand-field/index.d.ts +26 -0
  12. package/es/components/expand-field/src/components/FormItemPerson.vue.d.ts +26 -0
  13. package/es/components/expand-field/src/components/PersonModal.vue.d.ts +26 -0
  14. package/es/components/expand-field/src/components/form.vue.d.ts +26 -0
  15. package/es/components/expand-field/src/index.vue.d.ts +26 -0
  16. package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
  17. package/es/components/field-set/src/FieldFilter.vue.d.ts +1 -1
  18. package/es/components/field-set/src/FieldSet.vue.d.ts +1 -1
  19. package/es/components/field-set/src/components/table-row.vue.d.ts +1 -1
  20. package/es/components/form-config/index.d.ts +30 -0
  21. package/es/components/form-config/src/FormConfig.vue.d.ts +30 -0
  22. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +10 -0
  23. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +10 -0
  24. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +10 -0
  25. package/es/components/form-render/index.d.ts +10 -0
  26. package/es/components/form-render/src/FormRender.vue.d.ts +10 -0
  27. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  28. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +10 -0
  29. package/es/components/form-render/src/components/renderer/input.d.ts +9 -1
  30. package/es/components/form-render/src/components/renderer/input.js +1 -1
  31. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  32. package/es/components/iho-chat/index.d.ts +181 -23
  33. package/es/components/iho-chat/src/Index.vue.d.ts +181 -23
  34. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  35. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  36. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  37. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +24 -12
  38. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +150 -7
  39. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  40. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +12 -6
  41. package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +137 -0
  42. package/es/components/iho-chat/src/components/MessageEvent.vue.js +1 -0
  43. package/es/components/iho-chat/src/components/MessageEvent.vue2.js +1 -0
  44. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +6 -3
  45. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  46. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +13 -6
  47. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  48. package/es/components/iho-chat/src/components/Video.vue.d.ts +1 -1
  49. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  50. package/es/components/iho-chat/src/constants/index.d.ts +2 -1
  51. package/es/components/iho-chat/src/constants/index.js +1 -1
  52. package/es/components/iho-chat/src/hooks/useVideo.d.ts +2 -2
  53. package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
  54. package/es/components/iho-chat/src/utils/asyncQueue.d.ts +10 -0
  55. package/es/components/iho-chat/src/utils/asyncQueue.js +1 -0
  56. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  57. package/es/components/iho-table/src/types/index.d.ts +14 -0
  58. package/es/components/iho-table/src/utils/index.js +1 -1
  59. package/es/components/index.css +1 -1
  60. package/es/components/info-header/index.d.ts +20 -0
  61. package/es/components/info-header/src/InfoHeader.vue.d.ts +20 -0
  62. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +10 -0
  63. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +10 -0
  64. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  65. package/es/components/select-person/index.d.ts +26 -0
  66. package/es/components/select-person/src/SelectPerson.vue.d.ts +14 -0
  67. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  68. package/es/components/select-person/src/index.vue.d.ts +26 -0
  69. package/es/components/select-person/src/index.vue2.js +1 -1
  70. package/es/components/shortcut-setter/index.d.ts +10 -0
  71. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +10 -0
  72. package/es/env.d.ts +25 -25
  73. package/es/shared/hooks/useDateTime.js +1 -1
  74. package/es/shared/package.json.js +1 -1
  75. package/package.json +2 -2
@@ -543,23 +543,27 @@ declare const _default: import("vue").DefineComponent<{
543
543
  NPopconfirm: any;
544
544
  PersonProfile: import("vue").DefineComponent<{
545
545
  userId: {
546
- type: StringConstructor;
547
- required: true;
546
+ type: (NumberConstructor | StringConstructor)[];
548
547
  };
549
548
  disabled: {
550
549
  type: BooleanConstructor;
551
550
  default: boolean;
552
551
  };
552
+ userInfo: {
553
+ type: PropType<AnyObject>;
554
+ };
553
555
  }, {
554
556
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
555
557
  userId: {
556
- type: StringConstructor;
557
- required: true;
558
+ type: (NumberConstructor | StringConstructor)[];
558
559
  };
559
560
  disabled: {
560
561
  type: BooleanConstructor;
561
562
  default: boolean;
562
563
  };
564
+ userInfo: {
565
+ type: PropType<AnyObject>;
566
+ };
563
567
  }>> & {
564
568
  onClose?: ((...args: any[]) => any) | undefined;
565
569
  }>>;
@@ -614,13 +618,15 @@ declare const _default: import("vue").DefineComponent<{
614
618
  EyeOffOutline: 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<{}>>, {}>;
615
619
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
616
620
  userId: {
617
- type: StringConstructor;
618
- required: true;
621
+ type: (NumberConstructor | StringConstructor)[];
619
622
  };
620
623
  disabled: {
621
624
  type: BooleanConstructor;
622
625
  default: boolean;
623
626
  };
627
+ userInfo: {
628
+ type: PropType<AnyObject>;
629
+ };
624
630
  }>> & {
625
631
  onClose?: ((...args: any[]) => any) | undefined;
626
632
  }, {
@@ -683,23 +689,27 @@ declare const _default: import("vue").DefineComponent<{
683
689
  ChevronBackOutline: 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<{}>>, {}>;
684
690
  PersonProfile: import("vue").DefineComponent<{
685
691
  userId: {
686
- type: StringConstructor;
687
- required: true;
692
+ type: (NumberConstructor | StringConstructor)[];
688
693
  };
689
694
  disabled: {
690
695
  type: BooleanConstructor;
691
696
  default: boolean;
692
697
  };
698
+ userInfo: {
699
+ type: PropType<AnyObject>;
700
+ };
693
701
  }, {
694
702
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
695
703
  userId: {
696
- type: StringConstructor;
697
- required: true;
704
+ type: (NumberConstructor | StringConstructor)[];
698
705
  };
699
706
  disabled: {
700
707
  type: BooleanConstructor;
701
708
  default: boolean;
702
709
  };
710
+ userInfo: {
711
+ type: PropType<AnyObject>;
712
+ };
703
713
  }>> & {
704
714
  onClose?: ((...args: any[]) => any) | undefined;
705
715
  }>>;
@@ -754,13 +764,15 @@ declare const _default: import("vue").DefineComponent<{
754
764
  EyeOffOutline: 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<{}>>, {}>;
755
765
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
756
766
  userId: {
757
- type: StringConstructor;
758
- required: true;
767
+ type: (NumberConstructor | StringConstructor)[];
759
768
  };
760
769
  disabled: {
761
770
  type: BooleanConstructor;
762
771
  default: boolean;
763
772
  };
773
+ userInfo: {
774
+ type: PropType<AnyObject>;
775
+ };
764
776
  }>> & {
765
777
  onClose?: ((...args: any[]) => any) | undefined;
766
778
  }, {
@@ -1625,7 +1637,10 @@ declare const _default: import("vue").DefineComponent<{
1625
1637
  resetInfo: () => void;
1626
1638
  setReferenceMsg: (msgItem: AnyObject) => void;
1627
1639
  handleSelect: (key: string, msgItem: AnyObject) => void;
1628
- handleRelay: (checkedIds: string[], remark: string) => void;
1640
+ handleRelay: ({ checkedIds, remark }: {
1641
+ checkedIds: string[];
1642
+ remark: string;
1643
+ }) => void;
1629
1644
  reEdit: (item: AnyObject) => void;
1630
1645
  NAvatar: any;
1631
1646
  NImageGroup: any;
@@ -1636,23 +1651,27 @@ declare const _default: import("vue").DefineComponent<{
1636
1651
  NSpace: any;
1637
1652
  PersonProfile: import("vue").DefineComponent<{
1638
1653
  userId: {
1639
- type: StringConstructor;
1640
- required: true;
1654
+ type: (NumberConstructor | StringConstructor)[];
1641
1655
  };
1642
1656
  disabled: {
1643
1657
  type: BooleanConstructor;
1644
1658
  default: boolean;
1645
1659
  };
1660
+ userInfo: {
1661
+ type: PropType<AnyObject>;
1662
+ };
1646
1663
  }, {
1647
1664
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1648
1665
  userId: {
1649
- type: StringConstructor;
1650
- required: true;
1666
+ type: (NumberConstructor | StringConstructor)[];
1651
1667
  };
1652
1668
  disabled: {
1653
1669
  type: BooleanConstructor;
1654
1670
  default: boolean;
1655
1671
  };
1672
+ userInfo: {
1673
+ type: PropType<AnyObject>;
1674
+ };
1656
1675
  }>> & {
1657
1676
  onClose?: ((...args: any[]) => any) | undefined;
1658
1677
  }>>;
@@ -1707,13 +1726,15 @@ declare const _default: import("vue").DefineComponent<{
1707
1726
  EyeOffOutline: 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<{}>>, {}>;
1708
1727
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1709
1728
  userId: {
1710
- type: StringConstructor;
1711
- required: true;
1729
+ type: (NumberConstructor | StringConstructor)[];
1712
1730
  };
1713
1731
  disabled: {
1714
1732
  type: BooleanConstructor;
1715
1733
  default: boolean;
1716
1734
  };
1735
+ userInfo: {
1736
+ type: PropType<AnyObject>;
1737
+ };
1717
1738
  }>> & {
1718
1739
  onClose?: ((...args: any[]) => any) | undefined;
1719
1740
  }, {
@@ -1797,6 +1818,140 @@ declare const _default: import("vue").DefineComponent<{
1797
1818
  required: true;
1798
1819
  };
1799
1820
  }>>, {}>;
1821
+ MessageEvent: import("vue").DefineComponent<{
1822
+ data: {
1823
+ type: PropType<AnyObject>;
1824
+ required: true;
1825
+ };
1826
+ }, {
1827
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1828
+ data: {
1829
+ type: PropType<AnyObject>;
1830
+ required: true;
1831
+ };
1832
+ }>> & {}>>;
1833
+ state: {
1834
+ orgId: string | number;
1835
+ currentSessionItem: AnyObject;
1836
+ id: string;
1837
+ userInfo: AnyObject;
1838
+ msgList: AnyObject[];
1839
+ currentMsg: AnyObject;
1840
+ isAppendMsg: boolean;
1841
+ sessionList: AnyObject[];
1842
+ isChangeSession: boolean;
1843
+ updateSessionItem: AnyObject;
1844
+ isUpdateSession: boolean;
1845
+ currentReferenceMsg: AnyObject | null;
1846
+ currentReEditMsg: AnyObject | null;
1847
+ showVideo: boolean;
1848
+ currentAVMsg: AnyObject;
1849
+ currentGroupUser: AnyObject[];
1850
+ showMultipleVideo: boolean;
1851
+ };
1852
+ inviter: import("vue").Ref<any>;
1853
+ invitee: import("vue").Ref<any[]>;
1854
+ isValidJSON: (str: string) => boolean;
1855
+ getTask: (_id: string | number, arrRes: AnyObject[]) => () => Promise<unknown>;
1856
+ getEventContent: (data: AnyObject) => Promise<void>;
1857
+ NButton: any;
1858
+ PersonProfile: import("vue").DefineComponent<{
1859
+ userId: {
1860
+ type: (NumberConstructor | StringConstructor)[];
1861
+ };
1862
+ disabled: {
1863
+ type: BooleanConstructor;
1864
+ default: boolean;
1865
+ };
1866
+ userInfo: {
1867
+ type: PropType<AnyObject>;
1868
+ };
1869
+ }, {
1870
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1871
+ userId: {
1872
+ type: (NumberConstructor | StringConstructor)[];
1873
+ };
1874
+ disabled: {
1875
+ type: BooleanConstructor;
1876
+ default: boolean;
1877
+ };
1878
+ userInfo: {
1879
+ type: PropType<AnyObject>;
1880
+ };
1881
+ }>> & {
1882
+ onClose?: ((...args: any[]) => any) | undefined;
1883
+ }>>;
1884
+ emit: (event: "close", ...args: any[]) => void;
1885
+ state: {
1886
+ orgId: string | number;
1887
+ currentSessionItem: AnyObject;
1888
+ id: string;
1889
+ userInfo: AnyObject;
1890
+ msgList: AnyObject[];
1891
+ currentMsg: AnyObject;
1892
+ isAppendMsg: boolean;
1893
+ sessionList: AnyObject[];
1894
+ isChangeSession: boolean;
1895
+ updateSessionItem: AnyObject;
1896
+ isUpdateSession: boolean;
1897
+ currentReferenceMsg: AnyObject | null;
1898
+ currentReEditMsg: AnyObject | null;
1899
+ showVideo: boolean;
1900
+ currentAVMsg: AnyObject;
1901
+ currentGroupUser: AnyObject[];
1902
+ showMultipleVideo: boolean;
1903
+ };
1904
+ openSession: (session: string | AnyObject) => Promise<void>;
1905
+ showUserDetail: import("vue").Ref<boolean>;
1906
+ showLargeAvatar: import("vue").Ref<boolean>;
1907
+ showPhone: import("vue").Ref<boolean>;
1908
+ userDetail: AnyObject;
1909
+ info: {
1910
+ label: string;
1911
+ value: string;
1912
+ key: string;
1913
+ }[];
1914
+ personInfo: import("vue").ComputedRef<{
1915
+ label: string;
1916
+ value: string;
1917
+ key: string;
1918
+ }[]>;
1919
+ toOpenSession: () => Promise<void>;
1920
+ updateShow: (value: boolean) => Promise<void>;
1921
+ getContent: (info: AnyObject) => any;
1922
+ onChange: (options: {
1923
+ file: import("naive-ui").UploadFileInfo;
1924
+ }) => Promise<void>;
1925
+ NAvatar: any;
1926
+ NPopover: any;
1927
+ NButton: any;
1928
+ NIcon: any;
1929
+ ChatbubbleEllipses: 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<{}>>, {}>;
1930
+ Close: 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<{}>>, {}>;
1931
+ EyeOutline: 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<{}>>, {}>;
1932
+ EyeOffOutline: 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<{}>>, {}>;
1933
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1934
+ userId: {
1935
+ type: (NumberConstructor | StringConstructor)[];
1936
+ };
1937
+ disabled: {
1938
+ type: BooleanConstructor;
1939
+ default: boolean;
1940
+ };
1941
+ userInfo: {
1942
+ type: PropType<AnyObject>;
1943
+ };
1944
+ }>> & {
1945
+ onClose?: ((...args: any[]) => any) | undefined;
1946
+ }, {
1947
+ disabled: boolean;
1948
+ }>;
1949
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1950
+ data: {
1951
+ type: PropType<AnyObject>;
1952
+ required: true;
1953
+ };
1954
+ }>>, {}>;
1800
1955
  emojis: {
1801
1956
  default: string[][];
1802
1957
  findEmoji(name: string): any;
@@ -2557,7 +2712,7 @@ declare const _default: import("vue").DefineComponent<{
2557
2712
  trtcProxy: import("vue").Ref<any>;
2558
2713
  trtc: import("trtc-sdk-v5").default;
2559
2714
  timing: import("vue").Ref<string>;
2560
- voiceOpen: import("vue").Ref<boolean>;
2715
+ voiceClose: import("vue").Ref<boolean>;
2561
2716
  isAudio: import("vue").ComputedRef<boolean>;
2562
2717
  isCall: import("vue").ComputedRef<boolean>;
2563
2718
  startTimer: () => void;
@@ -2643,7 +2798,7 @@ declare const _default: import("vue").DefineComponent<{
2643
2798
  }) => Promise<void>;
2644
2799
  trtc: import("trtc-sdk-v5").default;
2645
2800
  trtcProxy: import("vue").Ref<any>;
2646
- voiceOpen: import("vue").Ref<boolean>;
2801
+ voiceClose: import("vue").Ref<boolean>;
2647
2802
  isAudio: import("vue").ComputedRef<boolean>;
2648
2803
  isCall: import("vue").ComputedRef<boolean>;
2649
2804
  startTimer: () => void;
@@ -2652,7 +2807,7 @@ declare const _default: import("vue").DefineComponent<{
2652
2807
  messageTypeText: import("vue").ComputedRef<"语音" | "视频">;
2653
2808
  timing: import("vue").Ref<string>;
2654
2809
  toggleVideo: () => Promise<void>;
2655
- videocamOpen: import("vue").Ref<boolean>;
2810
+ videocamClose: import("vue").Ref<boolean>;
2656
2811
  installEventHandlers: ({ handleError, handleRemoteUserEnter, handleRemoteAudioAvailable, handleRemoteUserExit, handleRemoteVideoAvailable }: {
2657
2812
  handleError: import("../../../shared/types").AnyFn;
2658
2813
  handleRemoteUserEnter: import("../../../shared/types").AnyFn;
@@ -2670,7 +2825,10 @@ declare const _default: import("vue").DefineComponent<{
2670
2825
  isConnect: import("vue").Ref<boolean>;
2671
2826
  callUser: import("vue").ComputedRef<any>;
2672
2827
  title: import("vue").ComputedRef<string>;
2673
- handleAddPerson: (checkedIds: string[]) => void;
2828
+ handleAddPerson: ({ checkedIds, checkedOptions }: {
2829
+ checkedIds: string[];
2830
+ checkedOptions: AnyObject[];
2831
+ }) => void;
2674
2832
  handleCall: () => void;
2675
2833
  handleEnter: () => Promise<void>;
2676
2834
  handleExit: () => Promise<void>;
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as l,ref as a,computed as o,watch as t,openBlock as n,createElementBlock as i,Fragment as u,createVNode as r,unref as d,withCtx as s,createCommentVNode as v,createBlock as c,renderList as p,toDisplayString as m,createTextVNode as f,withDirectives as g,isRef as w,vShow as y,normalizeClass as h,renderSlot as k}from"vue";import{NModal as b,NInput as I,NIcon as _,NSpace as C,NButton as x,NBreadcrumb as L,NBreadcrumbItem as S,NCheckbox as j,NCheckboxGroup as B,NAvatar as U,NTag as R,NTooltip as A}from"naive-ui";import{SearchOutline as G,PersonOutline as T,PeopleOutline as V,ChevronBackOutline as z,AddOutline as E}from"@vicons/ionicons5";import{useData as N}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as $}from"../constants/index.js";import{groupUserApi as D,groupLeaveApi as M,groupJoinApi as P,groupCreateApi as O}from"../api/index.js";import{listSort as q}from"../utils/index.js";import{union as F,unionBy as H,remove as J,last as K,isArray as Q,uniqBy as W,cloneDeep as X,trim as Y}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as Z}from"../hooks/useSearchUserList.js";var ee,le;const ae={class:"iho-chat-dialog__content iho-chat-add-wrapper"},oe={key:0,class:"input-box"},te=e("span",null,(null==(ee=window.getLanguageByCode)?void 0:ee.call(window,"10010.1.34"))||"群名称:",-1),ne={class:"transfer-box"},ie={class:"transfer-box__left"},ue={key:0,class:"nav-wrapper"},re={key:0,class:"chat--iconfont chat--icon-map-site"},de={style:{"font-size":"12px"}},se={key:1,class:"header"},ve={class:"user-list-box"},ce={key:1,class:"no-data"},pe={class:"transfer-box__right"},me={class:"checked-tag-box"},fe={key:0,class:"input-wrapper"};var ge=l({__name:"ChatAdd",props:{title:{type:String,default:(null==(le=window.getLanguageByCode)?void 0:le.call(window,"10010.1.42"))||"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(l,{emit:ee}){const le=l;let ge=[];const we=[{key:"single",label:"按好友选"},{key:"group",label:"按群聊选"},{key:"framework",label:"按架构选"}],{state:ye,setCurrentSessionItem:he}=N(),ke=a(),be=a(""),Ie=a(!1),_e=a([]),Ce=a(""),xe=a(""),Le=a([]),Se=a([]),{userList:je,handleInput:Be}=Z({wrapperRef:ke,keywordRef:be,before:()=>{Le.value.length>0||(je.value=ge)}}),Ue=o((()=>"relay"===le.mode?[]:F(le.disabledIds,[ye.userInfo.id]))),Re=o((()=>{var e;return(null==(e=ye.sessionList)?void 0:e.length)?q(ye.sessionList).map((e=>({id:e.receiver,name:e.name,avatar:e.avatar,chatType:e.chatType}))):[]})),Ae=o((()=>Re.value.filter((e=>e.chatType===$.SINGLE)))),Ge=o((()=>Re.value.filter((e=>e.chatType===$.GROUP)))),Te=o((()=>_e.value.length?_e.value.map((e=>e.id)):[])),Ve=o((()=>"create"===le.mode?Te.value.length<3:Te.value.length<1)),ze=o({get:()=>Ee.value.filter((e=>!Ue.value.includes(e))).length===je.value.filter((e=>!$e(e.id))).length,set(e){const l=je.value.filter((e=>!$e(e.id)));e?_e.value=H(_e.value,l,"id"):J(_e.value,(e=>l.map((e=>e.id)).includes(e.id)))}}),Ee=o({get(){var e,l,a;return null!=(a=null==(l=null==(e=je.value)?void 0:e.filter((e=>Te.value.includes(e.id))))?void 0:l.map((e=>e.id)))?a:[]},set(e){je.value.forEach((l=>{e.includes(l.id)?_e.value=H(_e.value,[l],"id"):J(_e.value,(e=>e.id==l.id))}))}}),Ne=o((()=>{var e;return Le.value.length>0?null==(e=K(Le.value))?void 0:e.key:""}));function $e(e){var l,a;return"group"===Ne.value?"relay"!==le.mode&&(1===Le.value.length||(null==(l=Ue.value)?void 0:l.includes(e))):null==(a=Ue.value)?void 0:a.includes(e)}function De(){if(Le.value.length>1&&"group"===Ne.value)return je.value=Ge.value,void Le.value.pop();Le.value.pop(),je.value=ge}async function Me(){switch(le.mode){case"create":await O({creator:ye.userInfo.id,memberIdSet:Te.value,name:Y(Ce.value),orgId:ye.orgId});break;case"join":if(await P({groupId:ye.currentSessionItem.receiver,operator:ye.userInfo.id,memberIdSet:Te.value}),!ye.currentSessionItem.defaultName){const e=_e.value.map((e=>e.name)).join(",");he({name:`${ye.currentSessionItem.name},${e}`})}ye.currentGroupUser.push(...je.value.filter((e=>Te.value.includes(e.id))));break;case"remove":if(await M({dissolution:!1,groupId:ye.currentSessionItem.receiver,operator:ye.userInfo.id,memberIdSet:Te.value}),!ye.currentSessionItem.defaultName){const e=_e.value.map((e=>e.name)).join(","),l=new RegExp(e,"g");he({name:ye.currentSessionItem.name.replace(l,"")})}J(ye.currentGroupUser,(e=>Te.value.includes(e.id)));break;default:ee("comfirm",Te.value,xe.value)}Ie.value=!1}return t((()=>Ie.value),(e=>{if(!e)return;be.value="",Ce.value="",Le.value=[];const l="relay"===le.mode?Re.value:Ae.value,a=Q(le.options)&&le.options.length?le.options:l;ge=W(a,"id"),je.value=ge,_e.value=Q(le.defaultValue)&&le.defaultValue.length?X(le.defaultValue):[]})),(a,o)=>{var t,N;return n(),i(u,null,[r(d(b),{preset:"dialog",title:l.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:Ie.value,"onUpdate:show":o[5]||(o[5]=e=>Ie.value=e),"negative-text":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.28"))||"取消","positive-text":(null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:d(Ve)},onPositiveClick:Me},{default:s((()=>{var a,t,h,k,b,A,E,N,$;return[e("div",ae,["create"===l.mode?(n(),i("div",oe,[te,r(d(I),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:Ce.value,"onUpdate:value":o[0]||(o[0]=e=>Ce.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),e("div",ne,[e("div",ie,[r(d(I),{placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.36"))||"搜索",clearable:"",value:be.value,"onUpdate:value":[o[1]||(o[1]=e=>be.value=e),d(Be)],valueModifiers:{trim:!0}},{prefix:s((()=>[r(d(_),{component:d(G)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),be.value||"remove"===l.mode?v("v-if",!0):(n(),i("div",ue,[0===Le.value.length?(n(),c(d(C),{key:0,justify:"space-around","wrap-item":!1},{default:s((()=>[(n(),i(u,null,p(we,(l=>r(d(C),{vertical:"",align:"center","wrap-item":!1,key:l.key,onClick:()=>function(e){switch(be.value="",Le.value=[e],e.key){case"single":je.value=Ae.value;break;case"group":je.value=Ge.value;break;case"framework":je.value=[]}}(l)},{default:s((()=>[r(d(x),{tertiary:""},{icon:s((()=>["framework"===l.key?(n(),i("i",re)):(n(),c(d(_),{key:1,component:"single"===l.key?d(T):d(V)},null,8,["component"]))])),_:2},1024),e("span",de,m(l.label),1)])),_:2},1032,["onClick"]))),64))])),_:1})):v("v-if",!0),Le.value.length>0?(n(),i("div",se,[r(d(x),{text:"",onClick:De},{icon:s((()=>[r(d(_),{component:d(z)},null,8,["component"])])),_:1}),e("h4",null,m(null==(h=d(K)(Le.value))?void 0:h.label),1)])):v("v-if",!0),Le.value.length>0&&"framework"===(null==(k=d(K)(Le.value))?void 0:k.key)&&Se.value.length>0?(n(),c(d(L),{key:2,separator:">"},{default:s((()=>[(n(!0),i(u,null,p(Se.value,(e=>(n(),c(d(S),{key:e.id},{default:s((()=>[f(m(e.name),1)])),_:2},1024)))),128))])),_:1})):v("v-if",!0)])),e("div",ve,[d(je).length>0?(n(),i(u,{key:0},[g(r(d(j),{label:(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.37"))||"全选",checked:d(ze),"onUpdate:checked":o[2]||(o[2]=e=>w(ze)?ze.value=e:null)},null,8,["checked"]),[[y,!("relay"!==l.mode&&"group"===d(Ne)&&1===Le.value.length)]]),r(d(B),{ref_key:"listRef",ref:ke,value:d(Ee),"onUpdate:value":o[3]||(o[3]=e=>w(Ee)?Ee.value=e:null)},{default:s((()=>[(n(!0),i(u,null,p(d(je),(l=>(n(),c(d(j),{key:l.id,value:l.id,disabled:$e(l.id),onClick:()=>async function(e){const l=d(Ne);if(l&&"relay"!==le.mode&&"group"===l&&1===Le.value.length)try{Le.value.push({key:l,label:e.name});const a=await D({id:e.id});je.value=Q(a)?a:[]}catch(e){console.log("error ==>",e)}}(l)},{default:s((()=>[r(d(C),{align:"center","wrap-item":!1},{default:s((()=>[r(d(U),{src:l.avatar,round:"",size:32},null,8,["src"]),e("span",null,m(l.name),1)])),_:2},1024)])),_:2},1032,["value","disabled","onClick"])))),128))])),_:1},8,["value"])],64)):(n(),i("div",ce,(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.38"))||"找不到相关结果"))])]),e("div",pe,[e("span",null,((null==(E=window.getLanguageByCode)?void 0:E.call(window,"10010.1.39"))||"已选择")+m(d(Te).length)+((null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.40"))||"人"),1),e("div",me,[(n(!0),i(u,null,p(_e.value,(e=>(n(),c(d(R),{key:e.id,bordered:!1,closable:"relay"===l.mode||e.id!==d(ye).userInfo.id,disabled:d(Ue).includes(e.id),onClose:()=>{return l=e.id,void J(_e.value,(e=>e.id===l));var l}},{avatar:s((()=>[r(d(U),{round:"",src:e.avatar},null,8,["src"])])),default:s((()=>[f(" "+m(e.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===l.mode?(n(),i("div",fe,[r(d(I),{clearable:"",value:xe.value,"onUpdate:value":o[4]||(o[4]=e=>xe.value=e),type:"textarea",placeholder:(null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),e("span",{class:h(["btn-wrapper",{disabled:l.disabled}]),onClick:o[6]||(o[6]=e=>Ie.value=!0)},[k(a.$slots,"trigger",{},(()=>[r(d(A),{"show-arrow":!1,placement:"bottom"},{trigger:s((()=>[r(d(x),{color:"#ffffff4D",class:"add-btn"},{icon:s((()=>[r(d(_),{component:d(E),color:"#fff"},null,8,["component"])])),_:1})])),default:s((()=>[f(" "+m(l.title),1)])),_:1})]))],2)],64)}}});export{ge as default};
1
+ import{createElementVNode as e,defineComponent as l,ref as a,computed as o,watch as t,openBlock as n,createElementBlock as i,Fragment as u,createVNode as r,unref as d,withCtx as s,createCommentVNode as v,createBlock as c,renderList as p,toDisplayString as m,createTextVNode as f,withDirectives as g,isRef as w,vShow as y,normalizeClass as h,renderSlot as k}from"vue";import{NModal as b,NInput as I,NIcon as _,NSpace as C,NButton as x,NBreadcrumb as L,NBreadcrumbItem as S,NCheckbox as j,NCheckboxGroup as B,NAvatar as U,NTag as R,NTooltip as A}from"naive-ui";import{SearchOutline as G,PersonOutline as T,PeopleOutline as V,ChevronBackOutline as z,AddOutline as E}from"@vicons/ionicons5";import{useData as N}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as $}from"../constants/index.js";import{groupUserApi as D,groupLeaveApi as M,groupJoinApi as O,groupCreateApi as P}from"../api/index.js";import{listSort as q}from"../utils/index.js";import{union as F,unionBy as H,remove as J,last as K,isArray as Q,uniqBy as W,cloneDeep as X,trim as Y}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as Z}from"../hooks/useSearchUserList.js";var ee,le;const ae={class:"iho-chat-dialog__content iho-chat-add-wrapper"},oe={key:0,class:"input-box"},te=e("span",null,(null==(ee=window.getLanguageByCode)?void 0:ee.call(window,"10010.1.34"))||"群名称:",-1),ne={class:"transfer-box"},ie={class:"transfer-box__left"},ue={key:0,class:"nav-wrapper"},re={key:0,class:"chat--iconfont chat--icon-map-site"},de={style:{"font-size":"12px"}},se={key:1,class:"header"},ve={class:"user-list-box"},ce={key:1,class:"no-data"},pe={class:"transfer-box__right"},me={class:"checked-tag-box"},fe={key:0,class:"input-wrapper"};var ge=l({__name:"ChatAdd",props:{title:{type:String,default:(null==(le=window.getLanguageByCode)?void 0:le.call(window,"10010.1.42"))||"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(l,{emit:ee}){const le=l;let ge=[];const we=[{key:"single",label:"按好友选"},{key:"group",label:"按群聊选"},{key:"framework",label:"按架构选"}],{state:ye,setCurrentSessionItem:he}=N(),ke=a(),be=a(""),Ie=a(!1),_e=a([]),Ce=a(""),xe=a(""),Le=a([]),Se=a([]),{userList:je,handleInput:Be}=Z({wrapperRef:ke,keywordRef:be,before:()=>{Le.value.length>0||(je.value=ge)}}),Ue=o((()=>"relay"===le.mode?[]:F(le.disabledIds,[ye.userInfo.id]))),Re=o((()=>{var e;return(null==(e=ye.sessionList)?void 0:e.length)?q(ye.sessionList).map((e=>({id:e.receiver,name:e.name,avatar:e.avatar,chatType:e.chatType}))):[]})),Ae=o((()=>Re.value.filter((e=>e.chatType===$.SINGLE)))),Ge=o((()=>Re.value.filter((e=>e.chatType===$.GROUP)))),Te=o((()=>_e.value.length?_e.value.map((e=>e.id)):[])),Ve=o((()=>"create"===le.mode?Te.value.length<3:Te.value.length<1)),ze=o({get:()=>Ee.value.filter((e=>!Ue.value.includes(e))).length===je.value.filter((e=>!$e(e.id))).length,set(e){const l=je.value.filter((e=>!$e(e.id)));e?_e.value=H(_e.value,l,"id"):J(_e.value,(e=>l.map((e=>e.id)).includes(e.id)))}}),Ee=o({get(){var e,l,a;return null!=(a=null==(l=null==(e=je.value)?void 0:e.filter((e=>Te.value.includes(e.id))))?void 0:l.map((e=>e.id)))?a:[]},set(e){je.value.forEach((l=>{e.includes(l.id)?_e.value=H(_e.value,[l],"id"):J(_e.value,(e=>e.id==l.id))}))}}),Ne=o((()=>{var e;return Le.value.length>0?null==(e=K(Le.value))?void 0:e.key:""}));function $e(e){var l,a;return"group"===Ne.value?"relay"!==le.mode&&(1===Le.value.length||(null==(l=Ue.value)?void 0:l.includes(e))):null==(a=Ue.value)?void 0:a.includes(e)}function De(){if(Le.value.length>1&&"group"===Ne.value)return je.value=Ge.value,void Le.value.pop();Le.value.pop(),je.value=ge}async function Me(){const e=d(Te);switch(le.mode){case"create":await P({creator:ye.userInfo.id,memberIdSet:e,name:Y(Ce.value),orgId:ye.orgId});break;case"join":if(await O({groupId:ye.currentSessionItem.receiver,operator:ye.userInfo.id,memberIdSet:e}),!ye.currentSessionItem.defaultName){const e=_e.value.map((e=>e.name)).join(",");he({name:`${ye.currentSessionItem.name},${e}`})}ye.currentGroupUser.push(...je.value.filter((l=>e.includes(l.id))));break;case"remove":if(await M({dissolution:!1,groupId:ye.currentSessionItem.receiver,operator:ye.userInfo.id,memberIdSet:e}),!ye.currentSessionItem.defaultName){const e=_e.value.map((e=>e.name)).join(","),l=new RegExp(e,"g");he({name:ye.currentSessionItem.name.replace(l,"")})}J(ye.currentGroupUser,(l=>e.includes(l.id)));break;default:ee("comfirm",{checkedIds:e,checkedOptions:_e.value,remark:xe.value})}Ie.value=!1}return t((()=>Ie.value),(e=>{if(!e)return;be.value="",Ce.value="",Le.value=[];const l="relay"===le.mode?Re.value:Ae.value,a=Q(le.options)&&le.options.length?le.options:l;ge=W(a,"id"),je.value=ge,_e.value=Q(le.defaultValue)&&le.defaultValue.length?X(le.defaultValue):[]})),(a,o)=>{var t,N;return n(),i(u,null,[r(d(b),{preset:"dialog",title:l.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:Ie.value,"onUpdate:show":o[5]||(o[5]=e=>Ie.value=e),"negative-text":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.28"))||"取消","positive-text":(null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:d(Ve)},onPositiveClick:Me},{default:s((()=>{var a,t,h,k,b,A,E,N,$;return[e("div",ae,["create"===l.mode?(n(),i("div",oe,[te,r(d(I),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:Ce.value,"onUpdate:value":o[0]||(o[0]=e=>Ce.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),e("div",ne,[e("div",ie,[r(d(I),{placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.36"))||"搜索",clearable:"",value:be.value,"onUpdate:value":[o[1]||(o[1]=e=>be.value=e),d(Be)],valueModifiers:{trim:!0}},{prefix:s((()=>[r(d(_),{component:d(G)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),be.value||"remove"===l.mode?v("v-if",!0):(n(),i("div",ue,[0===Le.value.length?(n(),c(d(C),{key:0,justify:"space-around","wrap-item":!1},{default:s((()=>[(n(),i(u,null,p(we,(l=>r(d(C),{vertical:"",align:"center","wrap-item":!1,key:l.key,onClick:()=>function(e){switch(be.value="",Le.value=[e],e.key){case"single":je.value=Ae.value;break;case"group":je.value=Ge.value;break;case"framework":je.value=[]}}(l)},{default:s((()=>[r(d(x),{tertiary:""},{icon:s((()=>["framework"===l.key?(n(),i("i",re)):(n(),c(d(_),{key:1,component:"single"===l.key?d(T):d(V)},null,8,["component"]))])),_:2},1024),e("span",de,m(l.label),1)])),_:2},1032,["onClick"]))),64))])),_:1})):v("v-if",!0),Le.value.length>0?(n(),i("div",se,[r(d(x),{text:"",onClick:De},{icon:s((()=>[r(d(_),{component:d(z)},null,8,["component"])])),_:1}),e("h4",null,m(null==(h=d(K)(Le.value))?void 0:h.label),1)])):v("v-if",!0),Le.value.length>0&&"framework"===(null==(k=d(K)(Le.value))?void 0:k.key)&&Se.value.length>0?(n(),c(d(L),{key:2,separator:">"},{default:s((()=>[(n(!0),i(u,null,p(Se.value,(e=>(n(),c(d(S),{key:e.id},{default:s((()=>[f(m(e.name),1)])),_:2},1024)))),128))])),_:1})):v("v-if",!0)])),e("div",ve,[d(je).length>0?(n(),i(u,{key:0},[g(r(d(j),{label:(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.37"))||"全选",checked:d(ze),"onUpdate:checked":o[2]||(o[2]=e=>w(ze)?ze.value=e:null)},null,8,["checked"]),[[y,!("relay"!==l.mode&&"group"===d(Ne)&&1===Le.value.length)]]),r(d(B),{ref_key:"listRef",ref:ke,value:d(Ee),"onUpdate:value":o[3]||(o[3]=e=>w(Ee)?Ee.value=e:null)},{default:s((()=>[(n(!0),i(u,null,p(d(je),(l=>(n(),c(d(j),{key:l.id,value:l.id,disabled:$e(l.id),onClick:()=>async function(e){const l=d(Ne);if(l&&"relay"!==le.mode&&"group"===l&&1===Le.value.length)try{Le.value.push({key:l,label:e.name});const a=await D({id:e.id});je.value=Q(a)?a:[]}catch(e){console.log("error ==>",e)}}(l)},{default:s((()=>[r(d(C),{align:"center","wrap-item":!1},{default:s((()=>[r(d(U),{src:l.avatar,round:"",size:32},null,8,["src"]),e("span",null,m(l.name),1)])),_:2},1024)])),_:2},1032,["value","disabled","onClick"])))),128))])),_:1},8,["value"])],64)):(n(),i("div",ce,(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.38"))||"找不到相关结果"))])]),e("div",pe,[e("span",null,((null==(E=window.getLanguageByCode)?void 0:E.call(window,"10010.1.39"))||"已选择")+m(d(Te).length)+((null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.40"))||"人"),1),e("div",me,[(n(!0),i(u,null,p(_e.value,(e=>(n(),c(d(R),{key:e.id,bordered:!1,closable:"relay"===l.mode||e.id!==d(ye).userInfo.id,disabled:d(Ue).includes(e.id),onClose:()=>{return l=e.id,void J(_e.value,(e=>e.id===l));var l}},{avatar:s((()=>[r(d(U),{round:"",src:e.avatar},null,8,["src"])])),default:s((()=>[f(" "+m(e.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===l.mode?(n(),i("div",fe,[r(d(I),{clearable:"",value:xe.value,"onUpdate:value":o[4]||(o[4]=e=>xe.value=e),type:"textarea",placeholder:(null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),e("span",{class:h(["btn-wrapper",{disabled:l.disabled}]),onClick:o[6]||(o[6]=e=>Ie.value=!0)},[k(a.$slots,"trigger",{},(()=>[r(d(A),{"show-arrow":!1,placement:"bottom"},{trigger:s((()=>[r(d(x),{color:"#ffffff4D",class:"add-btn"},{icon:s((()=>[r(d(_),{component:d(E),color:"#fff"},null,8,["component"])])),_:1})])),default:s((()=>[f(" "+m(l.title),1)])),_:1})]))],2)],64)}}});export{ge as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as n,createBlock as i,unref as r,withCtx as s,withDirectives as l,createElementVNode as d,createVNode as c,createElementBlock as m,Fragment as u,renderList as p,toDisplayString as g,vShow as v,normalizeStyle as w,createTextVNode as y}from"vue";import{NModal as f,NImageGroup as h,NImage as k,NInput as C,NIcon as M,NTooltip as b}from"naive-ui";import{SearchOutline as _,OpenOutline as j,DownloadOutline as I}from"@vicons/ionicons5";import{searchChatRecordApi as L}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as T}from"@vueuse/core";import{format as x,isSameWeek as S,isSameMonth as A}from"date-fns";import{last as B}from"lodash-es";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as D}from"../../../../shared/hooks/useScrollLoading.js";import{useData as H}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getFileSize as z,downloadFile as U}from"../utils/index.js";import"trtc-sdk-v5";import E from"./ChatAdd.vue.js";const O={class:"label"},$={class:"image-box"},F={class:"file-type"},P={class:"text"},R={class:"name"},G={class:"detail"},N={class:"opt-box"};var V=e({__name:"ChatFile",props:{type:{type:String,default:"image"},visible:{type:Boolean}},setup(e){const V=e,{cssVars:q,state:J,relayMessage:K}=H(),Q=t([]),W=t([]),X=t(),Y=t(),Z=t(),ee=T(ae,500),te={page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")};async function oe(){var e;try{if(!te.hasMore)return;te.page++;const t=await L({orgId:J.orgId,keyword:Z.value,endTime:"",startTime:"",lastSendTime:te.lastSendTime,memberIdSet:[],page:te.page,recordType:"image"===V.type?"IMAGE":"FILE",receiver:J.currentSessionItem.receiver,userId:J.userInfo.id});Array.isArray(t)&&0!==t.length&&Array.isArray(t[0].recordList)||(te.hasMore=!1);let o=t||[];if(Array.isArray(t)&&t.length>0&&(o=t[0].recordList),te.lastSendTime=null==(e=B(o))?void 0:e.sendTime,"image"===V.type){const e=function(e){const t={};e.forEach((e=>{var o,a;const n=new Date(e.sendTime);let i=x(n,"yyyy年MM月");S(n,new Date)?i=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.47"))||"本周":A(n,new Date)&&(i=(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.404"))||"本月"),t[i]||(t[i]=[]),t[i].push(e.content.msg)}));return Object.entries(t).map((([e,t])=>({label:e,list:t})))}(o);Q.value=te.page>1?Q.value.concat(e):e}else{const e=o.map((e=>new Promise((async t=>{const o=await z(e.content.fileUrl);t({...e,size:o})})))),t=await Promise.all(e);W.value=te.page>1?W.value.concat(t):t}}catch(e){}}function ae(){Object.assign(te,{page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")}),oe()}D(X,(()=>{oe()})),D(Y,(()=>{oe()}));const ne=o((()=>{var e,t;return"image"===V.type?(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.49"))||"聊天图片":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.50"))||"聊天文件"}));function ie(e){const{size:t,sendTime:o,senderName:a}=e;return`${t} · ${x(new Date(o),"yyyy/MM/dd HH:mm")} ${a}`}function re(e){var t;const o=(null==(t=e.content)?void 0:t.msg)||"",a=o.lastIndexOf(".");if(-1!==a){return o.charAt(a+1).toUpperCase()}return"?"}return a((()=>V.visible),(e=>{e?ae():Z.value=""})),(t,o)=>(n(),i(r(f),{preset:"dialog",title:r(ne),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:s((()=>{var t;return[l(d("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[c(r(h),{"show-toolbar-tooltip":""},{default:s((()=>[(n(!0),m(u,null,p(Q.value,(e=>(n(),m("div",{class:"image-item",key:e.label},[d("span",O,g(e.label),1),d("div",$,[(n(!0),m(u,null,p(e.list,(e=>(n(),i(r(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[v,"image"===e.type]]),l(d("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:w(r(q))},[c(r(C),{clearable:"",placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.43"))||"搜索文件",value:Z.value,"onUpdate:value":o[0]||(o[0]=e=>Z.value=e),valueModifiers:{trim:!0},onInput:r(ee)},{prefix:s((()=>[c(r(M),{component:r(_)},null,8,["component"])])),_:1},8,["value","onInput"]),d("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(n(!0),m(u,null,p(W.value,((e,t)=>{var o;return n(),m("div",{class:"file-item",key:t},[d("span",F,g(re(e)),1),d("div",P,[d("span",R,g(e.content.msg),1),d("span",G,g(ie(e)),1)]),d("div",N,[c(E,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:(t,o)=>r(K)({content:e.content,checkedIds:t,remark:o})},{trigger:s((()=>[c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(j)},null,8,["component"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发")]})),_:1})])),_:2},1032,["onComfirm"]),c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(I),onClick:()=>r(U)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载")]})),_:2},1024)])])})),128))],512)],4),[[v,"image"!==e.type]])]})),_:1},8,["title"]))}});export{V as default};
1
+ import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as n,createBlock as i,unref as r,withCtx as s,withDirectives as l,createElementVNode as d,createVNode as c,createElementBlock as m,Fragment as u,renderList as p,toDisplayString as g,vShow as v,normalizeStyle as w,createTextVNode as y}from"vue";import{NModal as f,NImageGroup as h,NImage as k,NInput as C,NIcon as M,NTooltip as b}from"naive-ui";import{SearchOutline as _,OpenOutline as j,DownloadOutline as I}from"@vicons/ionicons5";import{searchChatRecordApi as L}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as T}from"@vueuse/core";import{format as x,isSameWeek as S,isSameMonth as A}from"date-fns";import{last as B}from"lodash-es";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as D}from"../../../../shared/hooks/useScrollLoading.js";import{useData as H}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getFileSize as z,downloadFile as U}from"../utils/index.js";import"trtc-sdk-v5";import E from"./ChatAdd.vue.js";const O={class:"label"},$={class:"image-box"},F={class:"file-type"},P={class:"text"},R={class:"name"},G={class:"detail"},N={class:"opt-box"};var V=e({__name:"ChatFile",props:{type:{type:String,default:"image"},visible:{type:Boolean}},setup(e){const V=e,{cssVars:q,state:J,relayMessage:K}=H(),Q=t([]),W=t([]),X=t(),Y=t(),Z=t(),ee=T(ae,500),te={page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")};async function oe(){var e;try{if(!te.hasMore)return;te.page++;const t=await L({orgId:J.orgId,keyword:Z.value,endTime:"",startTime:"",lastSendTime:te.lastSendTime,memberIdSet:[],page:te.page,recordType:"image"===V.type?"IMAGE":"FILE",receiver:J.currentSessionItem.receiver,userId:J.userInfo.id});Array.isArray(t)&&0!==t.length&&Array.isArray(t[0].recordList)||(te.hasMore=!1);let o=t||[];if(Array.isArray(t)&&t.length>0&&(o=t[0].recordList),te.lastSendTime=null==(e=B(o))?void 0:e.sendTime,"image"===V.type){const e=function(e){const t={};e.forEach((e=>{var o,a;const n=new Date(e.sendTime);let i=x(n,"yyyy年MM月");S(n,new Date)?i=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.47"))||"本周":A(n,new Date)&&(i=(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.404"))||"本月"),t[i]||(t[i]=[]),t[i].push(e.content.msg)}));return Object.entries(t).map((([e,t])=>({label:e,list:t})))}(o);Q.value=te.page>1?Q.value.concat(e):e}else{const e=o.map((e=>new Promise((async t=>{const o=await z(e.content.fileUrl);t({...e,size:o})})))),t=await Promise.all(e);W.value=te.page>1?W.value.concat(t):t}}catch(e){}}function ae(){Object.assign(te,{page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")}),oe()}D(X,(()=>{oe()})),D(Y,(()=>{oe()}));const ne=o((()=>{var e,t;return"image"===V.type?(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.49"))||"聊天图片":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.50"))||"聊天文件"}));function ie(e){const{size:t,sendTime:o,senderName:a}=e;return`${t} · ${x(new Date(o),"yyyy/MM/dd HH:mm")} ${a}`}function re(e){var t;const o=(null==(t=e.content)?void 0:t.msg)||"",a=o.lastIndexOf(".");if(-1!==a){return o.charAt(a+1).toUpperCase()}return"?"}return a((()=>V.visible),(e=>{e?ae():Z.value=""})),(t,o)=>(n(),i(r(f),{preset:"dialog",title:r(ne),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:s((()=>{var t;return[l(d("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[c(r(h),{"show-toolbar-tooltip":""},{default:s((()=>[(n(!0),m(u,null,p(Q.value,(e=>(n(),m("div",{class:"image-item",key:e.label},[d("span",O,g(e.label),1),d("div",$,[(n(!0),m(u,null,p(e.list,(e=>(n(),i(r(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[v,"image"===e.type]]),l(d("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:w(r(q))},[c(r(C),{clearable:"",placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.43"))||"搜索文件",value:Z.value,"onUpdate:value":o[0]||(o[0]=e=>Z.value=e),valueModifiers:{trim:!0},onInput:r(ee)},{prefix:s((()=>[c(r(M),{component:r(_)},null,8,["component"])])),_:1},8,["value","onInput"]),d("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(n(!0),m(u,null,p(W.value,((e,t)=>{var o;return n(),m("div",{class:"file-item",key:t},[d("span",F,g(re(e)),1),d("div",P,[d("span",R,g(e.content.msg),1),d("span",G,g(ie(e)),1)]),d("div",N,[c(E,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:t=>r(K)({content:e.content,checkedIds:t.checkedIds,remark:t.remark})},{trigger:s((()=>[c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(j)},null,8,["component"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发")]})),_:1})])),_:2},1032,["onComfirm"]),c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(I),onClick:()=>r(U)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载")]})),_:2},1024)])])})),128))],512)],4),[[v,"image"!==e.type]])]})),_:1},8,["title"]))}});export{V as default};
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as a,openBlock as r,createElementBlock as l,normalizeStyle as s,unref as c,toDisplayString as u,createVNode as d,createCommentVNode as g,withCtx as f,Fragment as m,renderList as w,createBlock as p,createTextVNode as y,mergeProps as v,renderSlot as h,vShow as C}from"vue";import{NIcon as M,NTooltip as k,NPopover as _,NButton as E,NUpload as I,NUploadTrigger as L}from"naive-ui";import T from"./ChatAdd.vue.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as x,AV_STATUS as j}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as B,base64ToFile as O}from"../utils/index.js";import{xor as R,uniq as D,trim as q,cloneDeep as $}from"lodash-es";import"trtc-sdk-v5";import{emojis as A}from"../utils/emoji.js";import{CloseCircleOutline as H,CallOutline as J,VideocamOutline as V}from"@vicons/ionicons5";import{uuidGenerator as K}from"../../../../shared/utils/index.js";import{useStorage as F}from"@vueuse/core";var U,G;const N={key:0,class:"reference-content-box"},X={class:"reference-content"},S=["innerHTML"],P={class:"tool-box"},Q=e("i",{class:"chat--iconfont chat--icon-face"},null,-1),W=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.51"))||"最近使用",-1),Y={class:"list-box",style:{"margin-bottom":"8px"}},Z=["src"],ee=e("span",null,(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.52"))||"默认表情",-1),ne={class:"list-box"},te=["src"],oe=e("i",{class:"chat--iconfont chat--icon-good"},null,-1),ie=e("i",{class:"chat--iconfont chat--icon-image"},null,-1),ae=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),re=["contenteditable"],le={class:"btn-box"},se=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ce=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:ce,isGroupChat:ue,isEnded:de}=b(),ge=t(!1),fe=t(""),me=F("commonEmoticons",[]),we=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),pe=o((()=>!fe.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...R(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):ce({content:{chatMessageType:e,msg:"",avStatus:j.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(),_e()))}function he(){var e;fe.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Ce(e){var n;me.value.unshift(e),me.value=D(me.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(e)} />`)}async function Me(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function ke(e,n){const{file:t,name:o}=e.file,i=await Me(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===x.FILE?o:i,url:i})}async function _e(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(pe.value)return console.log("请输入内容");let o=x.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),a=(t||[]).length;if(n&&0===a)i=n;else if(n||1!==a){if(o=x.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<a;e++)if(t[e].includes(`data-type="${x.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 Me(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(x.EMOJI)){o=x.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=x.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await Me(e);n&&(i=n)}}}}else i=q(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=x.TEXT,msg:t,url:o,origin:i=""}=e,a={msg:t,chatMessageType:n};n===x.FILE&&(a.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([x.TEXT,x.EMOJI,x.BLEND].includes(n)&&(a.referenceContent=$(G.currentReferenceMsg)),G.currentReferenceMsg=null),ce({content:a})}function Ie(){U.value.innerHTML="",fe.value=""}return i((()=>[G.currentReferenceMsg,G.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=U.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===x.TEXT?t:`<img data-msg=${t} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>a((r(),l("section",{class:"chat-footer",style:s({cursor:c(G).id?"default":"not-allowed"})},[c(G).currentReferenceMsg?(r(),l("div",N,[e("div",X,[e("span",null,u(c(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:c(B)(c(G).currentReferenceMsg.content)},null,8,S)]),d(c(M),{component:c(H),onClick:t[0]||(t[0]=()=>c(G).currentReferenceMsg=null)},null,8,["component"])])):g("v-if",!0),e("div",P,[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(_),{"content-class":"emoji-content",class:"emoji-wrapper",show:ge.value,"onUpdate:show":t[1]||(t[1]=e=>ge.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[Q])),_:1})])),default:f((()=>[c(me).length>0?(r(),l(m,{key:0},[W,e("div",Y,[(r(!0),l(m,null,w(c(me),(n=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:c(A).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):g("v-if",!0),ee,e("div",ne,[(r(!0),l(m,null,w(c(A).default,(([n,t])=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.53"))||"表情")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:c(x).EMOJI,msg:0}))},{icon:f((()=>[oe])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.54"))||"点赞")]})),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ke(e,c(x).IMAGE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ie])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.55"))||"上传图片")]})),_:2},1024)])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ke(e,c(x).FILE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ae])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.56"))||"上传文件")]})),_:2},1024)])),_:1})])),_:1}),c(G).userInfo.sdkAppID?(r(),l(m,{key:0},[c(ue)?(r(),l(m,{key:0},[d(T,v(c(we),{onComfirm:t[5]||(t[5]=e=>ye(c(x).AUDIO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1})])),_:1},16),d(T,v(c(we),{onComfirm:t[6]||(t[6]=e=>ye(c(x).VIDEO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.58"))||"视频会议")]})),_:1})])),_:1},16)],64)):(r(),l(m,{key:1},[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(c(x).AUDIO))},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(c(x).VIDEO))},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.59"))||"视频通话")]})),_:1})],64))],64)):g("v-if",!0),h(n.$slots,"footer")]),a(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!c(de),onKeydown:ve,onInput:he},null,40,re),[[C,c(G).id]]),e("div",le,[se,d(c(E),{type:"primary",round:"",disabled:c(pe),onClick:_e},{default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[C,c(G).id]])}});export{ce as default};
1
+ import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as a,openBlock as r,createElementBlock as l,normalizeStyle as s,unref as c,toDisplayString as u,createVNode as d,createCommentVNode as g,withCtx as f,Fragment as m,renderList as w,createBlock as p,createTextVNode as y,mergeProps as h,renderSlot as v,vShow as C}from"vue";import{NIcon as M,NTooltip as k,NPopover as _,NButton as E,NUpload as I,NUploadTrigger as L}from"naive-ui";import T from"./ChatAdd.vue.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as x,AV_STATUS as j}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as B,base64ToFile as O}from"../utils/index.js";import{xor as R,uniq as D,trim as q,cloneDeep as $}from"lodash-es";import"trtc-sdk-v5";import{emojis as A}from"../utils/emoji.js";import{CloseCircleOutline as H,CallOutline as J,VideocamOutline as V}from"@vicons/ionicons5";import{uuidGenerator as K}from"../../../../shared/utils/index.js";import{useStorage as F}from"@vueuse/core";var U,G;const N={key:0,class:"reference-content-box"},X={class:"reference-content"},S=["innerHTML"],P={class:"tool-box"},Q=e("i",{class:"chat--iconfont chat--icon-face"},null,-1),W=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.51"))||"最近使用",-1),Y={class:"list-box",style:{"margin-bottom":"8px"}},Z=["src"],ee=e("span",null,(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.52"))||"默认表情",-1),ne={class:"list-box"},te=["src"],oe=e("i",{class:"chat--iconfont chat--icon-good"},null,-1),ie=e("i",{class:"chat--iconfont chat--icon-image"},null,-1),ae=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),re=["contenteditable"],le={class:"btn-box"},se=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ce=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:ce,isGroupChat:ue,isEnded:de}=b(),ge=t(!1),fe=t(""),me=F("commonEmoticons",[]),we=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),pe=o((()=>!fe.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...R(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):ce({content:{chatMessageType:e,msg:"",avStatus:j.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 ve(){var e;fe.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Ce(e){var n;me.value.unshift(e),me.value=D(me.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(e)} />`)}async function Me(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function ke(e,n){const{file:t,name:o}=e.file,i=await Me(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===x.FILE?o:i,url:i})}async function _e(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(pe.value)return console.log("请输入内容");let o=x.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),a=(t||[]).length;if(n&&0===a)i=n;else if(n||1!==a){if(o=x.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<a;e++)if(t[e].includes(`data-type="${x.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 Me(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(x.EMOJI)){o=x.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=x.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await Me(e);n&&(i=n)}}}}else i=q(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=x.TEXT,msg:t,url:o,origin:i=""}=e,a={msg:t,chatMessageType:n};n===x.FILE&&(a.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([x.TEXT,x.EMOJI,x.BLEND].includes(n)&&(a.referenceContent=$(G.currentReferenceMsg)),G.currentReferenceMsg=null),ce({content:a})}function Ie(){U.value.innerHTML="",fe.value=""}return i((()=>[G.currentReferenceMsg,G.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=U.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===x.TEXT?t:`<img data-msg=${t} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>a((r(),l("section",{class:"chat-footer",style:s({cursor:c(G).id?"default":"not-allowed"})},[c(G).currentReferenceMsg?(r(),l("div",N,[e("div",X,[e("span",null,u(c(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:c(B)(c(G).currentReferenceMsg.content)},null,8,S)]),d(c(M),{component:c(H),onClick:t[0]||(t[0]=()=>c(G).currentReferenceMsg=null)},null,8,["component"])])):g("v-if",!0),e("div",P,[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(_),{"content-class":"emoji-content",class:"emoji-wrapper",show:ge.value,"onUpdate:show":t[1]||(t[1]=e=>ge.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[Q])),_:1})])),default:f((()=>[c(me).length>0?(r(),l(m,{key:0},[W,e("div",Y,[(r(!0),l(m,null,w(c(me),(n=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:c(A).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):g("v-if",!0),ee,e("div",ne,[(r(!0),l(m,null,w(c(A).default,(([n,t])=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.53"))||"表情")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:c(x).EMOJI,msg:0}))},{icon:f((()=>[oe])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.54"))||"点赞")]})),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ke(e,c(x).IMAGE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ie])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.55"))||"上传图片")]})),_:2},1024)])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ke(e,c(x).FILE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ae])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.56"))||"上传文件")]})),_:2},1024)])),_:1})])),_:1}),c(G).userInfo.sdkAppID?(r(),l(m,{key:0},[c(ue)?(r(),l(m,{key:0},[d(T,h(c(we),{onComfirm:t[5]||(t[5]=e=>ye(c(x).AUDIO,e.checkedIds))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1})])),_:1},16),d(T,h(c(we),{onComfirm:t[6]||(t[6]=e=>ye(c(x).VIDEO,e.checkedIds))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.58"))||"视频会议")]})),_:1})])),_:1},16)],64)):(r(),l(m,{key:1},[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(c(x).AUDIO))},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(c(x).VIDEO))},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.59"))||"视频通话")]})),_:1})],64))],64)):g("v-if",!0),v(n.$slots,"footer")]),a(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!c(de),onKeydown:he,onInput:ve},null,40,re),[[C,c(G).id]]),e("div",le,[se,d(c(E),{type:"primary",round:"",disabled:c(pe),onClick:_e},{default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[C,c(G).id]])}});export{ce as default};
@@ -48,23 +48,27 @@ declare const _default: import("vue").DefineComponent<{}, {
48
48
  NPopconfirm: any;
49
49
  PersonProfile: import("vue").DefineComponent<{
50
50
  userId: {
51
- type: StringConstructor;
52
- required: true;
51
+ type: (NumberConstructor | StringConstructor)[];
53
52
  };
54
53
  disabled: {
55
54
  type: BooleanConstructor;
56
55
  default: boolean;
57
56
  };
57
+ userInfo: {
58
+ type: import("vue").PropType<AnyObject>;
59
+ };
58
60
  }, {
59
61
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
60
62
  userId: {
61
- type: StringConstructor;
62
- required: true;
63
+ type: (NumberConstructor | StringConstructor)[];
63
64
  };
64
65
  disabled: {
65
66
  type: BooleanConstructor;
66
67
  default: boolean;
67
68
  };
69
+ userInfo: {
70
+ type: import("vue").PropType<AnyObject>;
71
+ };
68
72
  }>> & {
69
73
  onClose?: ((...args: any[]) => any) | undefined;
70
74
  }>>;
@@ -119,13 +123,15 @@ declare const _default: import("vue").DefineComponent<{}, {
119
123
  EyeOffOutline: 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<{}>>, {}>;
120
124
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
121
125
  userId: {
122
- type: StringConstructor;
123
- required: true;
126
+ type: (NumberConstructor | StringConstructor)[];
124
127
  };
125
128
  disabled: {
126
129
  type: BooleanConstructor;
127
130
  default: boolean;
128
131
  };
132
+ userInfo: {
133
+ type: import("vue").PropType<AnyObject>;
134
+ };
129
135
  }>> & {
130
136
  onClose?: ((...args: any[]) => any) | undefined;
131
137
  }, {
@@ -188,23 +194,27 @@ declare const _default: import("vue").DefineComponent<{}, {
188
194
  ChevronBackOutline: 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<{}>>, {}>;
189
195
  PersonProfile: import("vue").DefineComponent<{
190
196
  userId: {
191
- type: StringConstructor;
192
- required: true;
197
+ type: (NumberConstructor | StringConstructor)[];
193
198
  };
194
199
  disabled: {
195
200
  type: BooleanConstructor;
196
201
  default: boolean;
197
202
  };
203
+ userInfo: {
204
+ type: import("vue").PropType<AnyObject>;
205
+ };
198
206
  }, {
199
207
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
200
208
  userId: {
201
- type: StringConstructor;
202
- required: true;
209
+ type: (NumberConstructor | StringConstructor)[];
203
210
  };
204
211
  disabled: {
205
212
  type: BooleanConstructor;
206
213
  default: boolean;
207
214
  };
215
+ userInfo: {
216
+ type: import("vue").PropType<AnyObject>;
217
+ };
208
218
  }>> & {
209
219
  onClose?: ((...args: any[]) => any) | undefined;
210
220
  }>>;
@@ -259,13 +269,15 @@ declare const _default: import("vue").DefineComponent<{}, {
259
269
  EyeOffOutline: 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<{}>>, {}>;
260
270
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
261
271
  userId: {
262
- type: StringConstructor;
263
- required: true;
272
+ type: (NumberConstructor | StringConstructor)[];
264
273
  };
265
274
  disabled: {
266
275
  type: BooleanConstructor;
267
276
  default: boolean;
268
277
  };
278
+ userInfo: {
279
+ type: import("vue").PropType<AnyObject>;
280
+ };
269
281
  }>> & {
270
282
  onClose?: ((...args: any[]) => any) | undefined;
271
283
  }, {