cnhis-design-vue 3.2.7-beta.14 → 3.2.7-beta.16

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 (61) hide show
  1. package/README.md +87 -87
  2. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  3. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  4. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  5. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  6. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  7. package/es/components/field-set/src/FieldColor.vue.d.ts +4 -4
  8. package/es/components/field-set/src/FieldFilter.vue.d.ts +3 -3
  9. package/es/components/field-set/src/FieldSet.vue.d.ts +5 -5
  10. package/es/components/field-set/src/components/Row.vue.d.ts +3 -3
  11. package/es/components/field-set/src/components/edit-dialog.vue.d.ts +1 -1
  12. package/es/components/form-config/src/components/FormConfigEdit.vue2.js +1 -1
  13. package/es/components/iho-chat/index.d.ts +48 -29
  14. package/es/components/iho-chat/src/Index.vue.d.ts +48 -29
  15. package/es/components/iho-chat/src/Index.vue2.js +1 -1
  16. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +10 -4
  17. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  18. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +10 -4
  19. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +10 -4
  20. package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +3 -10
  21. package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
  22. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +27 -17
  23. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  24. package/es/components/iho-chat/src/hooks/useSearchUserList.d.ts +11 -0
  25. package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -0
  26. package/es/components/iho-chat/src/types/index.d.ts +0 -1
  27. package/es/components/iho-chat/style/index.css +1 -1
  28. package/es/components/index.css +1 -1
  29. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  30. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  31. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  32. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  33. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  34. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  35. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  36. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  37. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  38. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  39. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  40. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  41. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  42. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  43. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  44. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  45. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  46. package/es/shared/assets/img/failure.png.js +1 -1
  47. package/es/shared/assets/img/no-permission.png.js +1 -1
  48. package/es/shared/assets/img/nodata.png.js +1 -1
  49. package/es/shared/assets/img/notfound.png.js +1 -1
  50. package/es/shared/assets/img/qr.png.js +1 -1
  51. package/es/shared/assets/img/success.png.js +1 -1
  52. package/es/shared/assets/img/table_style_2.png.js +1 -1
  53. package/es/shared/assets/img/video.png.js +1 -1
  54. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  55. package/es/shared/assets/img/xb_big.png.js +1 -1
  56. package/es/shared/assets/img/xb_small.png.js +1 -1
  57. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  58. package/es/shared/package.json.js +1 -1
  59. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  60. package/es/shared/utils/tapable/index.d.ts +139 -0
  61. package/package.json +2 -2
@@ -76,7 +76,6 @@ declare const _default: import("vue").DefineComponent<{
76
76
  currentReferenceMsg: AnyObject | null;
77
77
  showVideo: boolean;
78
78
  currentAVMsg: AnyObject;
79
- userList: AnyObject[];
80
79
  currentGroupUser: AnyObject[];
81
80
  showMultipleVideo: boolean;
82
81
  };
@@ -89,7 +88,6 @@ declare const _default: import("vue").DefineComponent<{
89
88
  setCurrentSessionItem: (item: AnyObject) => void;
90
89
  groupSessionList: AnyObject[];
91
90
  init: () => Promise<void>;
92
- handleUserSearch: () => Promise<void>;
93
91
  initWebSocket: () => void;
94
92
  subscribeSessionList: () => void;
95
93
  handleDefaultSession: () => void;
@@ -565,11 +563,15 @@ declare const _default: import("vue").DefineComponent<{
565
563
  }>>;
566
564
  emit: (event: "comfirm", ...args: any[]) => void;
567
565
  state: IState;
566
+ listRef: import("vue").Ref<any>;
567
+ keyword: import("vue").Ref<any>;
568
568
  showModal: import("vue").Ref<boolean>;
569
569
  checkedOptions: import("vue").Ref<AnyObject[]>;
570
570
  options: import("vue").Ref<AnyObject[]>;
571
571
  groupName: import("vue").Ref<string>;
572
572
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
573
+ userList: import("vue").Ref<AnyObject[]>;
574
+ handleInput: () => void;
573
575
  _disabledIds: import("vue").ComputedRef<any[]>;
574
576
  defaultOptions: import("vue").ComputedRef<{
575
577
  id: any;
@@ -580,21 +582,23 @@ declare const _default: import("vue").DefineComponent<{
580
582
  btnDisabled: import("vue").ComputedRef<boolean>;
581
583
  allChecked: import("vue").WritableComputedRef<boolean>;
582
584
  handlePositiveClick: () => Promise<void>;
583
- updateSourceIds: (value: (string | number)[], meta: {
585
+ updateCheckedSourceIds: () => void;
586
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
584
587
  actionType: "check" | "uncheck";
585
588
  value: string | number;
586
589
  }) => void;
587
- renderSourceLabel: ({ option }: {
588
- option: AnyObject;
589
- }) => JSX.Element;
590
590
  closeTag: (id: string) => void;
591
591
  renderTargetList: () => JSX.Element[] | null;
592
592
  NModal: any;
593
593
  NButton: any;
594
+ NSpace: any;
595
+ NAvatar: any;
594
596
  NIcon: any;
597
+ NTag: any;
595
598
  NInput: any;
596
599
  NCheckbox: any;
597
600
  NCheckboxGroup: any;
601
+ SearchOutline: 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<{}>>, {}>;
598
602
  AddOutline: 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<{}>>, {}>;
599
603
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
600
604
  title: {
@@ -924,11 +928,15 @@ declare const _default: import("vue").DefineComponent<{
924
928
  }>>;
925
929
  emit: (event: "comfirm", ...args: any[]) => void;
926
930
  state: IState;
931
+ listRef: import("vue").Ref<any>;
932
+ keyword: import("vue").Ref<any>;
927
933
  showModal: import("vue").Ref<boolean>;
928
934
  checkedOptions: import("vue").Ref<AnyObject[]>;
929
935
  options: import("vue").Ref<AnyObject[]>;
930
936
  groupName: import("vue").Ref<string>;
931
937
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
938
+ userList: import("vue").Ref<AnyObject[]>;
939
+ handleInput: () => void;
932
940
  _disabledIds: import("vue").ComputedRef<any[]>;
933
941
  defaultOptions: import("vue").ComputedRef<{
934
942
  id: any;
@@ -939,21 +947,23 @@ declare const _default: import("vue").DefineComponent<{
939
947
  btnDisabled: import("vue").ComputedRef<boolean>;
940
948
  allChecked: import("vue").WritableComputedRef<boolean>;
941
949
  handlePositiveClick: () => Promise<void>;
942
- updateSourceIds: (value: (string | number)[], meta: {
950
+ updateCheckedSourceIds: () => void;
951
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
943
952
  actionType: "check" | "uncheck";
944
953
  value: string | number;
945
954
  }) => void;
946
- renderSourceLabel: ({ option }: {
947
- option: AnyObject;
948
- }) => JSX.Element;
949
955
  closeTag: (id: string) => void;
950
956
  renderTargetList: () => JSX.Element[] | null;
951
957
  NModal: any;
952
958
  NButton: any;
959
+ NSpace: any;
960
+ NAvatar: any;
953
961
  NIcon: any;
962
+ NTag: any;
954
963
  NInput: any;
955
964
  NCheckbox: any;
956
965
  NCheckboxGroup: any;
966
+ SearchOutline: 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<{}>>, {}>;
957
967
  AddOutline: 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<{}>>, {}>;
958
968
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
959
969
  title: {
@@ -997,16 +1007,10 @@ declare const _default: import("vue").DefineComponent<{
997
1007
  inputRef: import("vue").Ref<any>;
998
1008
  showSearch: import("vue").Ref<boolean>;
999
1009
  keyword: import("vue").Ref<any>;
1000
- userList: import("vue").Ref<any>;
1001
1010
  state: IState;
1002
1011
  openSession: (item: AnyObject) => Promise<void>;
1003
- pageInfo: {
1004
- page: number;
1005
- hasMore: boolean;
1006
- };
1012
+ userList: import("vue").Ref<AnyObject[]>;
1007
1013
  handleInput: () => void;
1008
- handleSearch: () => Promise<void>;
1009
- resetAndSearch: () => void;
1010
1014
  addSession: (userId: string) => Promise<void>;
1011
1015
  NPopover: any;
1012
1016
  NButton: any;
@@ -1059,11 +1063,15 @@ declare const _default: import("vue").DefineComponent<{
1059
1063
  }>>;
1060
1064
  emit: (event: "comfirm", ...args: any[]) => void;
1061
1065
  state: IState;
1066
+ listRef: import("vue").Ref<any>;
1067
+ keyword: import("vue").Ref<any>;
1062
1068
  showModal: import("vue").Ref<boolean>;
1063
1069
  checkedOptions: import("vue").Ref<AnyObject[]>;
1064
1070
  options: import("vue").Ref<AnyObject[]>;
1065
1071
  groupName: import("vue").Ref<string>;
1066
1072
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
1073
+ userList: import("vue").Ref<AnyObject[]>;
1074
+ handleInput: () => void;
1067
1075
  _disabledIds: import("vue").ComputedRef<any[]>;
1068
1076
  defaultOptions: import("vue").ComputedRef<{
1069
1077
  id: any;
@@ -1074,21 +1082,23 @@ declare const _default: import("vue").DefineComponent<{
1074
1082
  btnDisabled: import("vue").ComputedRef<boolean>;
1075
1083
  allChecked: import("vue").WritableComputedRef<boolean>;
1076
1084
  handlePositiveClick: () => Promise<void>;
1077
- updateSourceIds: (value: (string | number)[], meta: {
1085
+ updateCheckedSourceIds: () => void;
1086
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
1078
1087
  actionType: "check" | "uncheck";
1079
1088
  value: string | number;
1080
1089
  }) => void;
1081
- renderSourceLabel: ({ option }: {
1082
- option: AnyObject;
1083
- }) => JSX.Element;
1084
1090
  closeTag: (id: string) => void;
1085
1091
  renderTargetList: () => JSX.Element[] | null;
1086
1092
  NModal: any;
1087
1093
  NButton: any;
1094
+ NSpace: any;
1095
+ NAvatar: any;
1088
1096
  NIcon: any;
1097
+ NTag: any;
1089
1098
  NInput: any;
1090
1099
  NCheckbox: any;
1091
1100
  NCheckboxGroup: any;
1101
+ SearchOutline: 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<{}>>, {}>;
1092
1102
  AddOutline: 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<{}>>, {}>;
1093
1103
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1094
1104
  title: {
@@ -1169,7 +1179,10 @@ declare const _default: import("vue").DefineComponent<{
1169
1179
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1170
1180
  MultipleVideo: import("vue").DefineComponent<{}, {
1171
1181
  selfVideoRef: import("vue").Ref<any>;
1172
- remoteUsers: import("vue").Ref<string[]>;
1182
+ remoteUsers: import("vue").Ref<{
1183
+ id: string;
1184
+ name: string;
1185
+ }[]>;
1173
1186
  state: IState;
1174
1187
  sendMessage: (message: {
1175
1188
  chatType?: string | undefined;
@@ -1197,11 +1210,11 @@ declare const _default: import("vue").DefineComponent<{
1197
1210
  installEventHandlers: () => void;
1198
1211
  uninstallEventHandlers: () => void;
1199
1212
  handleRemoteVideoAvailable: (event: any) => Promise<void>;
1200
- handleRemoteAudioAvailable: (event: any) => void;
1201
- handleRemoteUserEnter: (event: any) => void;
1213
+ handleRemoteAudioAvailable: (event: any) => Promise<void>;
1214
+ handleRemoteUserEnter: (event: any) => Promise<void>;
1215
+ getUserName: (userId: string) => Promise<any>;
1202
1216
  handleRemoteUserExit: (event: any) => void;
1203
1217
  handleError: (error: any) => void;
1204
- getName: (id: string) => any;
1205
1218
  NButton: any;
1206
1219
  NIcon: any;
1207
1220
  ChatAdd: import("vue").DefineComponent<{
@@ -1248,11 +1261,15 @@ declare const _default: import("vue").DefineComponent<{
1248
1261
  }>>;
1249
1262
  emit: (event: "comfirm", ...args: any[]) => void;
1250
1263
  state: IState;
1264
+ listRef: import("vue").Ref<any>;
1265
+ keyword: import("vue").Ref<any>;
1251
1266
  showModal: import("vue").Ref<boolean>;
1252
1267
  checkedOptions: import("vue").Ref<AnyObject[]>;
1253
1268
  options: import("vue").Ref<AnyObject[]>;
1254
1269
  groupName: import("vue").Ref<string>;
1255
1270
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
1271
+ userList: import("vue").Ref<AnyObject[]>;
1272
+ handleInput: () => void;
1256
1273
  _disabledIds: import("vue").ComputedRef<any[]>;
1257
1274
  defaultOptions: import("vue").ComputedRef<{
1258
1275
  id: any;
@@ -1263,21 +1280,23 @@ declare const _default: import("vue").DefineComponent<{
1263
1280
  btnDisabled: import("vue").ComputedRef<boolean>;
1264
1281
  allChecked: import("vue").WritableComputedRef<boolean>;
1265
1282
  handlePositiveClick: () => Promise<void>;
1266
- updateSourceIds: (value: (string | number)[], meta: {
1283
+ updateCheckedSourceIds: () => void;
1284
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
1267
1285
  actionType: "check" | "uncheck";
1268
1286
  value: string | number;
1269
1287
  }) => void;
1270
- renderSourceLabel: ({ option }: {
1271
- option: AnyObject;
1272
- }) => JSX.Element;
1273
1288
  closeTag: (id: string) => void;
1274
1289
  renderTargetList: () => JSX.Element[] | null;
1275
1290
  NModal: any;
1276
1291
  NButton: any;
1292
+ NSpace: any;
1293
+ NAvatar: any;
1277
1294
  NIcon: any;
1295
+ NTag: any;
1278
1296
  NInput: any;
1279
1297
  NCheckbox: any;
1280
1298
  NCheckboxGroup: any;
1299
+ SearchOutline: 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<{}>>, {}>;
1281
1300
  AddOutline: 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<{}>>, {}>;
1282
1301
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1283
1302
  title: {
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,reactive as o,provide as t,onBeforeUnmount as n,openBlock as r,createElementBlock as i,normalizeStyle as a,unref as c,createVNode as d,withCtx as u,createBlock as l,Fragment as p,createElementVNode as m,renderSlot as h,createCommentVNode as f}from"vue";import{NConfigProvider as g,NSpin as y,NLayout as v,NLayoutContent as S}from"naive-ui";import b from"./components/SiderList.vue.js";import I from"./components/ChatHeader.vue.js";import M from"./components/ChatMain.vue.js";import k from"./components/ChatFooter.vue.js";import T from"./components/ChatSearch.vue.js";import V from"./components/ChatAdd.vue.js";import j from"./components/Video.vue.js";import w from"./components/MultipleVideo.vue.js";import{ChatSock as L}from"./utils/chatSock.js";import{instanceAxios as N,listUserApi as U,readMessageApi as _}from"./api/index.js";import{useTheme as A}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isArray as C,isNumber as O}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{CHAT_TYPE as x,SUBSCRIBE_MESSAGE_TYPE as R,AV_STATUS as G}from"./constants/index.js";import{InjectionIChatState as K,InjectionIChatStompClient as E,InjectionIChatEmits as B}from"./types/index.js";import{isAudioOrVideoMessage as J}from"./utils/index.js";import{useSession as P}from"./hooks/useSession.js";import"trtc-sdk-v5";const $={key:0,class:"iho-chat__header"},q={class:"toolbar"};var z=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}},emits:["template-click","unread-message-update"],setup(e,{expose:z,emit:F}){const H=e;N.defaults.baseURL=H.baseURL,N.defaults.headers.Authorization="bearer "+H.token;const D=A(),W=s(!1),Y=s(),Q=o({orgId:H.orgId,currentSessionItem:{},id:"",userInfo:{id:H.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1,currentReferenceMsg:null,showVideo:!1,currentAVMsg:{},userList:[],currentGroupUser:[],showMultipleVideo:!1});t(K,Q),t(E,Y),t(B,F);const{openSession:X,closeSession:Z,getCurrentSession:ee,setSessionList:se,setUpdateSessionItem:oe,setCurrentSessionItem:te}=P(Q),ne=[];function re(){const e={headers:{AccessToken:H.token,UserId:H.userId},heartbeatFn(){try{Y.value.send("test")}catch(e){Y.value.disconnect(),re()}},connectCb(){console.log("连接成功"),Y.value.subscribe("/user/topic/single",(({body:e})=>ae({body:e,chatType:x.SINGLE}))),Y.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{authentication:o,currentUser:t,sessionVos:n}=s;if(console.log("body",s),Object.assign(Q.userInfo,t,o),!(null==n?void 0:n.length))return;se(n),ne.splice(0,ne.length),ne.push(...n.filter((e=>e.chatType===x.GROUP))),ne.forEach((e=>{Y.value.subscribe(`/topic/group/${e.receiver}`,(({body:e})=>ae({body:e,chatType:x.GROUP})))})),function(){const e=Q.sessionList.find((e=>e.sessionKey===H.defaultSessionKey));e&&X(e)}()}catch(e){console.log(e)}}))},errorCb(e,s){console.log("断线了,正在重连...")}};Y.value=new L("/fdp-chat/websocket",e)}async function ie(e,s){if(Q.currentMsg=e,e.sessionKey===Q.currentSessionItem.sessionKey)return Q.isAppendMsg=!0,e.sender!==Q.userInfo.id&&await _({chatType:s,messageIdSet:[e.id],receiver:Q.userInfo.id,sender:e.sender}),void te({lastMessageSendTime:e.sendTime,lastMessage:e.content,sortTime:e.sendTime,unreadNum:0,lastSenderName:e.senderName});const o={lastMessageSendTime:e.sendTime,sortTime:e.sendTime,lastMessage:e.content,sessionKey:e.sessionKey,lastSenderName:e.senderName};oe(o)}async function ae({body:e,chatType:s}){try{console.log(JSON.parse(e),"订阅新增消息");const o=JSON.parse(e),{messageVo:t,sessionVo:n,chatAvStatusVo:r}=o;switch(o.event){case R.MESSAGE:J(t.content)?!Q.showVideo&&!Q.showMultipleVideo||t.content.avStatus!==G.IN_CALL?(Q.currentMsg=t,Object.assign(Q.currentAVMsg,{strRoomId:t.sessionKey,chatMessageType:t.content.chatMessageType,callMode:t.sender===Q.userInfo.id?"call":"invite",currentMsg:t}),Q.showVideo||Q.showMultipleVideo?ie(t,s):Q.showVideo=!0):(Y.value.send("/app/chat/send",{},JSON.stringify({chatType:x.SINGLE,receiver:t.sender,content:{chatMessageType:t.content.chatMessageType,avStatus:G.CALL_BUSY}})),console.log("用户忙!")):ie(t,s);break;case R.AV_STATUS:Object.assign(Q.currentAVMsg,r,{callMode:r.sender===Q.userInfo.id?"call":"invite",checkedIds:[]}),Q.showVideo||Q.showMultipleVideo?console.log("用户忙!"):Q.showMultipleVideo=!0;break;case R.NEW_SESSION:if(s===x.GROUP)return;oe(n);break;case R.JOIN:if(s===x.GROUP)return;oe(n),Y.value.subscribe(`/topic/group/${n.receiver}`,(({body:e})=>ae({body:e,chatType:x.GROUP})))}}catch(e){console.log(e)}}return async function(){re(),async function(){const e=await U({orgId:Q.orgId,keyword:"",page:1,pageSize:50});if(!C(e.records))return;Q.userList=e.records}()}(),n((()=>{var e;null==(e=Y.value)||e.disconnect()})),z({getUnreadData:function(){return Q.sessionList.filter((e=>O(e.unreadNum)&&e.unreadNum>0))},openSession:X,closeSession:Z,getCurrentSession:ee}),(s,o)=>(r(),i("div",{class:"iho-chat",style:a(c(D))},[d(c(g),{abstract:"",namespace:"iho-chat__popover"},{default:u((()=>[W.value?(r(),l(c(y),{key:0,stroke:"#5585f5"})):(r(),i(p,{key:1},[e.chatBox?f("v-if",!0):(r(),i("div",$,[d(T),d(V,{title:"发起群聊",mode:"create","default-value":[Q.userInfo]},null,8,["default-value"]),m("div",q,[h(s.$slots,"toolbar")])])),d(c(v),{class:"iho-chat__body","has-sider":""},{default:u((()=>[e.chatBox?f("v-if",!0):(r(),l(b,{key:0})),d(c(S),{class:"chat-content"},{default:u((()=>[d(I),d(M),d(k)])),_:1}),h(s.$slots,"external")])),_:3}),Q.showVideo?(r(),l(j,{key:1})):f("v-if",!0),Q.showMultipleVideo?(r(),l(w,{key:2})):f("v-if",!0)],64))])),_:3})],4))}});export{z as default};
1
+ import{defineComponent as e,ref as s,reactive as o,provide as t,onBeforeUnmount as n,openBlock as r,createElementBlock as i,normalizeStyle as a,unref as c,createVNode as d,withCtx as u,createBlock as l,Fragment as p,createElementVNode as m,renderSlot as h,createCommentVNode as f}from"vue";import{NConfigProvider as g,NSpin as y,NLayout as v,NLayoutContent as S}from"naive-ui";import b from"./components/SiderList.vue.js";import M from"./components/ChatHeader.vue.js";import I from"./components/ChatMain.vue.js";import k from"./components/ChatFooter.vue.js";import T from"./components/ChatSearch.vue.js";import V from"./components/ChatAdd.vue.js";import j from"./components/Video.vue.js";import N from"./components/MultipleVideo.vue.js";import{ChatSock as w}from"./utils/chatSock.js";import{instanceAxios as L,readMessageApi as U}from"./api/index.js";import{useTheme as _}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as A}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{CHAT_TYPE as C,SUBSCRIBE_MESSAGE_TYPE as O,AV_STATUS as x}from"./constants/index.js";import{InjectionIChatState as R,InjectionIChatStompClient as G,InjectionIChatEmits as K}from"./types/index.js";import{isAudioOrVideoMessage as E}from"./utils/index.js";import{useSession as B}from"./hooks/useSession.js";import"trtc-sdk-v5";const J={key:0,class:"iho-chat__header"},P={class:"toolbar"};var $=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}},emits:["template-click","unread-message-update"],setup(e,{expose:$,emit:q}){const F=e;L.defaults.baseURL=F.baseURL,L.defaults.headers.Authorization="bearer "+F.token;const H=_(),z=s(!1),D=s(),W=o({orgId:F.orgId,currentSessionItem:{},id:"",userInfo:{id:F.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1,currentReferenceMsg:null,showVideo:!1,currentAVMsg:{},currentGroupUser:[],showMultipleVideo:!1});t(R,W),t(G,D),t(K,q);const{openSession:Y,closeSession:Q,getCurrentSession:X,setSessionList:Z,setUpdateSessionItem:ee,setCurrentSessionItem:se}=B(W),oe=[];function te(){const e={headers:{AccessToken:F.token,UserId:F.userId},heartbeatFn(){try{D.value.send("test")}catch(e){D.value.disconnect(),te()}},connectCb(){console.log("连接成功"),D.value.subscribe("/user/topic/single",(({body:e})=>re({body:e,chatType:C.SINGLE}))),D.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{authentication:o,currentUser:t,sessionVos:n}=s;if(console.log("body",s),Object.assign(W.userInfo,t,o),!(null==n?void 0:n.length))return;Z(n),oe.splice(0,oe.length),oe.push(...n.filter((e=>e.chatType===C.GROUP))),oe.forEach((e=>{D.value.subscribe(`/topic/group/${e.receiver}`,(({body:e})=>re({body:e,chatType:C.GROUP})))})),function(){const e=W.sessionList.find((e=>e.sessionKey===F.defaultSessionKey));e&&Y(e)}()}catch(e){console.log(e)}}))},errorCb(e,s){console.log("断线了,正在重连...")}};D.value=new w("/fdp-chat/websocket",e)}async function ne(e,s){if(W.currentMsg=e,e.sessionKey===W.currentSessionItem.sessionKey)return W.isAppendMsg=!0,e.sender!==W.userInfo.id&&await U({chatType:s,messageIdSet:[e.id],receiver:W.userInfo.id,sender:e.sender}),void se({lastMessageSendTime:e.sendTime,lastMessage:e.content,sortTime:e.sendTime,unreadNum:0,lastSenderName:e.senderName});const o={lastMessageSendTime:e.sendTime,sortTime:e.sendTime,lastMessage:e.content,sessionKey:e.sessionKey,lastSenderName:e.senderName};ee(o)}async function re({body:e,chatType:s}){try{console.log(JSON.parse(e),"订阅新增消息");const o=JSON.parse(e),{messageVo:t,sessionVo:n,chatAvStatusVo:r}=o;switch(o.event){case O.MESSAGE:E(t.content)?!W.showVideo&&!W.showMultipleVideo||t.content.avStatus!==x.IN_CALL?(W.currentMsg=t,Object.assign(W.currentAVMsg,{strRoomId:t.sessionKey,chatMessageType:t.content.chatMessageType,callMode:t.sender===W.userInfo.id?"call":"invite",currentMsg:t}),W.showVideo||W.showMultipleVideo?ne(t,s):W.showVideo=!0):(D.value.send("/app/chat/send",{},JSON.stringify({chatType:C.SINGLE,receiver:t.sender,content:{chatMessageType:t.content.chatMessageType,avStatus:x.CALL_BUSY}})),console.log("用户忙!")):ne(t,s);break;case O.AV_STATUS:Object.assign(W.currentAVMsg,r,{callMode:r.sender===W.userInfo.id?"call":"invite",checkedIds:[]}),W.showVideo||W.showMultipleVideo?console.log("用户忙!"):W.showMultipleVideo=!0;break;case O.NEW_SESSION:if(s===C.GROUP)return;ee(n);break;case O.JOIN:if(s===C.GROUP)return;ee(n),D.value.subscribe(`/topic/group/${n.receiver}`,(({body:e})=>re({body:e,chatType:C.GROUP})))}}catch(e){console.log(e)}}return async function(){te()}(),n((()=>{var e;null==(e=D.value)||e.disconnect()})),$({getUnreadData:function(){return W.sessionList.filter((e=>A(e.unreadNum)&&e.unreadNum>0))},openSession:Y,closeSession:Q,getCurrentSession:X}),(s,o)=>(r(),i("div",{class:"iho-chat",style:a(c(H))},[d(c(g),{abstract:"",namespace:"iho-chat__popover"},{default:u((()=>[z.value?(r(),l(c(y),{key:0,stroke:"#5585f5"})):(r(),i(p,{key:1},[e.chatBox?f("v-if",!0):(r(),i("div",J,[d(T),d(V,{title:"发起群聊",mode:"create","default-value":[W.userInfo]},null,8,["default-value"]),m("div",P,[h(s.$slots,"toolbar")])])),d(c(v),{class:"iho-chat__body","has-sider":""},{default:u((()=>[e.chatBox?f("v-if",!0):(r(),l(b,{key:0})),d(c(S),{class:"chat-content"},{default:u((()=>[d(M),d(I),d(k)])),_:1}),h(s.$slots,"external")])),_:3}),W.showVideo?(r(),l(j,{key:1})):f("v-if",!0),W.showMultipleVideo?(r(),l(N,{key:2})):f("v-if",!0)],64))])),_:3})],4))}});export{$ as default};
@@ -44,11 +44,15 @@ declare const _default: import("vue").DefineComponent<{
44
44
  }>>;
45
45
  emit: (event: "comfirm", ...args: any[]) => void;
46
46
  state: import("../types").IState;
47
+ listRef: import("vue").Ref<any>;
48
+ keyword: import("vue").Ref<any>;
47
49
  showModal: import("vue").Ref<boolean>;
48
50
  checkedOptions: import("vue").Ref<AnyObject[]>;
49
51
  options: import("vue").Ref<AnyObject[]>;
50
52
  groupName: import("vue").Ref<string>;
51
53
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
54
+ userList: import("vue").Ref<AnyObject[]>;
55
+ handleInput: () => void;
52
56
  _disabledIds: import("vue").ComputedRef<any[]>;
53
57
  defaultOptions: import("vue").ComputedRef<{
54
58
  id: any;
@@ -59,21 +63,23 @@ declare const _default: import("vue").DefineComponent<{
59
63
  btnDisabled: import("vue").ComputedRef<boolean>;
60
64
  allChecked: import("vue").WritableComputedRef<boolean>;
61
65
  handlePositiveClick: () => Promise<void>;
62
- updateSourceIds: (value: (string | number)[], meta: {
66
+ updateCheckedSourceIds: () => void;
67
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
63
68
  actionType: 'check' | 'uncheck';
64
69
  value: string | number;
65
70
  }) => void;
66
- renderSourceLabel: ({ option }: {
67
- option: AnyObject;
68
- }) => JSX.Element;
69
71
  closeTag: (id: string) => void;
70
72
  renderTargetList: () => JSX.Element[] | null;
71
73
  NModal: any;
72
74
  NButton: any;
75
+ NSpace: any;
76
+ NAvatar: any;
73
77
  NIcon: any;
78
+ NTag: any;
74
79
  NInput: any;
75
80
  NCheckbox: any;
76
81
  NCheckboxGroup: any;
82
+ SearchOutline: 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<{}>>, {}>;
77
83
  AddOutline: 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<{}>>, {}>;
78
84
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
79
85
  title: {
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as a,watch as l,openBlock as i,createElementBlock as n,Fragment as o,createVNode as u,unref as r,withCtx as s,createElementVNode as d,createCommentVNode as v,isRef as c,renderList as p,createBlock as f,resolveDynamicComponent as m,toDisplayString as h,renderSlot as b}from"vue";import{NModal as g,NInput as I,NCheckbox as k,NCheckboxGroup as x,NButton as y,NIcon as _,NSpace as w,NAvatar as S,NTag as j}from"naive-ui";import{AddOutline as U}from"@vicons/ionicons5";import{useState as A}from"../hooks/useState.js";import{listSort as C}from"../utils/index.js";import{union as V,unionBy as L,remove as G,isArray as T,uniqBy as z,cloneDeep as D}from"lodash-es";import{CHAT_TYPE as E}from"../constants/index.js";import{groupJoinApi as M,groupCreateApi as N}from"../api/index.js";import"trtc-sdk-v5";const O={class:"iho-chat-dialog__content iho-chat-add-wrapper"},P={key:0,class:"input-box"},$=d("span",null,"群名称:",-1),q={class:"transfer-box"},B={class:"transfer-box__left"},F={class:"user-list-box"},H={class:"transfer-box__right"},J={class:"checked-tag-box"};var K=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array}},emits:["comfirm"],setup(e,{emit:K}){const Q=e,{state:R}=A(),W=t(!1),X=t([]),Y=t([]),Z=t(""),ee=t([]),te=a((()=>V(Q.disabledIds,[R.userInfo.id]))),ae=a((()=>{var e,t;return(null==(e=R.sessionList)?void 0:e.length)?null==(t=C(R.sessionList).filter((e=>e.chatType===E.SINGLE)))?void 0:t.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar}))):[]})),le=a((()=>X.value.length?X.value.map((e=>e.id)):[])),ie=a((()=>"create"===Q.mode?le.value.length<3:le.value.length<1)),ne=a({get:()=>ee.value.length===Y.value.filter((e=>!e.disabled)).length,set(e){const t=Y.value.filter((e=>!e.disabled));ee.value=e?t.map((e=>e.id)):[],e?X.value=L(X.value,t,"id"):G(X.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function oe(){switch(Q.mode){case"create":await N({creator:R.userInfo.id,memberIdSet:le.value,name:Z.value,orgId:R.orgId});break;case"join":await M({groupId:R.currentSessionItem.receiver,operator:R.userInfo.id,memberIdSet:le.value}),R.currentGroupUser.push(Y.value.filter((e=>le.value.includes(e.value))));break;default:K("comfirm",le.value)}W.value=!1}function ue(e,t){if("check"===t.actionType){const e=Y.value.find((e=>e.id===t.value));X.value.push(e)}else G(X.value,(e=>e.id===t.value))}function re(){return X.value.length>0?X.value.map((e=>u(j,{bordered:!1,closable:e.id!==R.userInfo.id,disabled:te.value.includes(e.id),onClose:()=>{return t=e.id,G(X.value,(e=>e.id===t)),void G(ee.value,(e=>e===t));var t}},{avatar:()=>u(S,{round:!0,src:e.avatar},null),default:()=>e.name}))):null}return l((()=>W.value),(e=>{if(!e)return;const t=T(Q.options)&&Q.options.length?Q.options:ae.value;Y.value=z(t,"id").map((e=>{var t;return{...e,disabled:null==(t=te.value)?void 0:t.includes(e.id)}})),T(Q.defaultValue)&&Q.defaultValue.length?X.value=D(Q.defaultValue):X.value=[]})),(t,a)=>(i(),n(o,null,[u(r(g),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,class:"iho-chat-dialog",show:W.value,"onUpdate:show":a[3]||(a[3]=e=>W.value=e),"negative-text":"取消","positive-text":"确定","positive-button-props":{disabled:r(ie)},onPositiveClick:oe},{default:s((()=>[d("div",O,["create"===e.mode?(i(),n("div",P,[$,u(r(I),{clearable:"",placeholder:"取个群名称方便后续搜索",value:Z.value,"onUpdate:value":a[0]||(a[0]=e=>Z.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),d("div",q,[d("div",B,[v(' <n-input placeholder="搜索">\n\t\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t\t<n-icon :component="SearchOutline" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</n-input> '),d("div",F,[u(r(k),{label:"全选",checked:r(ne),"onUpdate:checked":a[1]||(a[1]=e=>c(ne)?ne.value=e:null)},null,8,["checked"]),u(r(x),{value:ee.value,"onUpdate:value":[a[2]||(a[2]=e=>ee.value=e),ue]},{default:s((()=>[(i(!0),n(o,null,p(Y.value,(e=>(i(),f(r(k),{key:e.id,value:e.id,disabled:e.disabled},{default:s((()=>[(i(),f(m((()=>function({option:e}){return u(w,{align:"center",wrapItem:!1},{default:()=>[u(S,{src:e.avatar,round:!0,size:32},null),u("span",null,[e.name])]})}({option:e})))))])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])])]),d("div",H,[d("span",null,"已选择 "+h(r(le).length)+" 人",1),d("div",J,[(i(),f(m((()=>re()))))])])])])])),_:1},8,["title","show","positive-button-props"]),d("span",{class:"btn-wrapper",onClick:a[4]||(a[4]=e=>W.value=!0)},[b(t.$slots,"trigger",{},(()=>[u(r(y),{color:"#ffffff4D",class:"add-btn"},{icon:s((()=>[u(r(_),{component:r(U),color:"#fff"},null,8,["component"])])),_:1})]))])],64))}});export{K 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 s,unref as r,withCtx as d,createElementVNode as n,createCommentVNode as v,isRef as c,renderList as p,createBlock as f,toDisplayString as m,createTextVNode as h,renderSlot as b}from"vue";import{NModal as g,NInput as k,NIcon as y,NCheckbox as _,NCheckboxGroup as I,NSpace as x,NAvatar as w,NTag as S,NButton as U}from"naive-ui";import{SearchOutline as j,AddOutline as C}from"@vicons/ionicons5";import{useState as L}from"../hooks/useState.js";import{listSort as A}from"../utils/index.js";import{cloneDeep as V,union as R,unionBy as E,remove as G,isArray as M,uniqBy as T}from"lodash-es";import{CHAT_TYPE as z}from"../constants/index.js";import{groupJoinApi as D,groupCreateApi as N}from"../api/index.js";import"trtc-sdk-v5";import{useSearchUserList as P}from"../hooks/useSearchUserList.js";const $={class:"iho-chat-dialog__content iho-chat-add-wrapper"},q={key:0,class:"input-box"},B=n("span",null,"群名称:",-1),F={class:"transfer-box"},H={class:"transfer-box__left"},J={class:"user-list-box"},K={key:1,class:"no-data"},O={class:"transfer-box__right"},Q={class:"checked-tag-box"};var W=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array}},emits:["comfirm"],setup(e,{emit:W}){const X=e,{state:Y}=L(),Z=a(),ee=a(),ae=a(!1),le=a([]),te=a([]),ie=a(""),ue=a([]),{userList:oe,handleInput:se}=P({wrapperRef:Z,keywordRef:ee,before:()=>{oe.value=V(te.value),fe()},after:()=>{oe.value.forEach((e=>{var a;e.disabled=null==(a=re.value)?void 0:a.includes(e.id)})),fe()}}),re=l((()=>R(X.disabledIds,[Y.userInfo.id]))),de=l((()=>{var e,a;return(null==(e=Y.sessionList)?void 0:e.length)?null==(a=A(Y.sessionList).filter((e=>e.chatType===z.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar}))):[]})),ne=l((()=>le.value.length?le.value.map((e=>e.id)):[])),ve=l((()=>"create"===X.mode?ne.value.length<3:ne.value.length<1)),ce=l({get:()=>ue.value.length===oe.value.filter((e=>!e.disabled)).length,set(e){const a=oe.value.filter((e=>!e.disabled));ue.value=e?a.map((e=>e.id)):[],e?le.value=E(le.value,a,"id"):G(le.value,(e=>a.map((e=>e.id)).includes(e.id)))}});async function pe(){switch(X.mode){case"create":await N({creator:Y.userInfo.id,memberIdSet:ne.value,name:ie.value,orgId:Y.orgId});break;case"join":await D({groupId:Y.currentSessionItem.receiver,operator:Y.userInfo.id,memberIdSet:ne.value}),Y.currentGroupUser.push(oe.value.filter((e=>ne.value.includes(e.value))));break;default:W("comfirm",ne.value)}ae.value=!1}function fe(){var e,a;ue.value=null!=(a=null==(e=oe.value.filter((e=>ne.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function me(e,a){if("check"===a.actionType){const e=oe.value.find((e=>e.id===a.value));le.value.push(e)}else G(le.value,(e=>e.id===a.value))}return t((()=>ae.value),(e=>{if(!e)return;const a=M(X.options)&&X.options.length?X.options:de.value;te.value=T(a,"id").map((e=>{var a;return{...e,disabled:null==(a=re.value)?void 0:a.includes(e.id)}})),oe.value=V(te.value),M(X.defaultValue)&&X.defaultValue.length?(le.value=V(X.defaultValue),fe()):(le.value=[],ue.value=[])})),(a,l)=>(i(),u(o,null,[s(r(g),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:ae.value,"onUpdate:show":l[4]||(l[4]=e=>ae.value=e),"negative-text":"取消","positive-text":"确定","positive-button-props":{disabled:r(ve)},onPositiveClick:pe},{default:d((()=>[n("div",$,["create"===e.mode?(i(),u("div",q,[B,s(r(k),{clearable:"",placeholder:"取个群名称方便后续搜索",value:ie.value,"onUpdate:value":l[0]||(l[0]=e=>ie.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),n("div",F,[n("div",H,[s(r(k),{placeholder:"搜索",clearable:"",value:ee.value,"onUpdate:value":[l[1]||(l[1]=e=>ee.value=e),r(se)],valueModifiers:{trim:!0}},{prefix:d((()=>[s(r(y),{component:r(j)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),n("div",J,[r(oe).length>0?(i(),u(o,{key:0},[s(r(_),{label:"全选",checked:r(ce),"onUpdate:checked":l[2]||(l[2]=e=>c(ce)?ce.value=e:null)},null,8,["checked"]),s(r(I),{ref_key:"listRef",ref:Z,value:ue.value,"onUpdate:value":[l[3]||(l[3]=e=>ue.value=e),me]},{default:d((()=>[(i(!0),u(o,null,p(r(oe),(e=>(i(),f(r(_),{key:e.id,value:e.id,disabled:e.disabled},{default:d((()=>[s(r(x),{align:"center","wrap-item":!1},{default:d((()=>[s(r(w),{src:e.avatar,round:"",size:32},null,8,["src"]),n("span",null,m(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),u("div",K,"找不到相关结果"))])]),n("div",O,[n("span",null,"已选择 "+m(r(ne).length)+" 人",1),n("div",Q,[(i(!0),u(o,null,p(le.value,(e=>(i(),f(r(S),{key:e.id,bordered:!1,closable:e.id!==r(Y).userInfo.id,disabled:r(re).includes(e.id),onClose:()=>{return a=e.id,G(le.value,(e=>e.id===a)),void G(ue.value,(e=>e===a));var a}},{avatar:d((()=>[s(r(w),{round:"",src:e.avatar},null,8,["src"])])),default:d((()=>[h(" "+m(e.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))])])])])])),_:1},8,["title","show","positive-button-props"]),n("span",{class:"btn-wrapper",onClick:l[5]||(l[5]=e=>ae.value=!0)},[b(a.$slots,"trigger",{},(()=>[s(r(U),{color:"#ffffff4D",class:"add-btn"},{icon:d((()=>[s(r(y),{component:r(C),color:"#fff"},null,8,["component"])])),_:1})]))])],64))}});export{W as default};
@@ -79,11 +79,15 @@ declare const _default: import("vue").DefineComponent<{}, {
79
79
  }>>;
80
80
  emit: (event: "comfirm", ...args: any[]) => void;
81
81
  state: import("../types").IState;
82
+ listRef: import("vue").Ref<any>;
83
+ keyword: import("vue").Ref<any>;
82
84
  showModal: import("vue").Ref<boolean>;
83
85
  checkedOptions: import("vue").Ref<AnyObject[]>;
84
86
  options: import("vue").Ref<AnyObject[]>;
85
87
  groupName: import("vue").Ref<string>;
86
88
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
89
+ userList: import("vue").Ref<AnyObject[]>;
90
+ handleInput: () => void;
87
91
  _disabledIds: import("vue").ComputedRef<any[]>;
88
92
  defaultOptions: import("vue").ComputedRef<{
89
93
  id: any;
@@ -94,21 +98,23 @@ declare const _default: import("vue").DefineComponent<{}, {
94
98
  btnDisabled: import("vue").ComputedRef<boolean>;
95
99
  allChecked: import("vue").WritableComputedRef<boolean>;
96
100
  handlePositiveClick: () => Promise<void>;
97
- updateSourceIds: (value: (string | number)[], meta: {
101
+ updateCheckedSourceIds: () => void;
102
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
98
103
  actionType: "check" | "uncheck";
99
104
  value: string | number;
100
105
  }) => void;
101
- renderSourceLabel: ({ option }: {
102
- option: AnyObject;
103
- }) => JSX.Element;
104
106
  closeTag: (id: string) => void;
105
107
  renderTargetList: () => JSX.Element[] | null;
106
108
  NModal: any;
107
109
  NButton: any;
110
+ NSpace: any;
111
+ NAvatar: any;
108
112
  NIcon: any;
113
+ NTag: any;
109
114
  NInput: any;
110
115
  NCheckbox: any;
111
116
  NCheckboxGroup: any;
117
+ SearchOutline: 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<{}>>, {}>;
112
118
  AddOutline: 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<{}>>, {}>;
113
119
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
114
120
  title: {
@@ -425,11 +425,15 @@ declare const _default: import("vue").DefineComponent<{}, {
425
425
  }>>;
426
426
  emit: (event: "comfirm", ...args: any[]) => void;
427
427
  state: import("../types").IState;
428
+ listRef: import("vue").Ref<any>;
429
+ keyword: import("vue").Ref<any>;
428
430
  showModal: import("vue").Ref<boolean>;
429
431
  checkedOptions: import("vue").Ref<AnyObject[]>;
430
432
  options: import("vue").Ref<AnyObject[]>;
431
433
  groupName: import("vue").Ref<string>;
432
434
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
435
+ userList: import("vue").Ref<AnyObject[]>;
436
+ handleInput: () => void;
433
437
  _disabledIds: import("vue").ComputedRef<any[]>;
434
438
  defaultOptions: import("vue").ComputedRef<{
435
439
  id: any;
@@ -440,21 +444,23 @@ declare const _default: import("vue").DefineComponent<{}, {
440
444
  btnDisabled: import("vue").ComputedRef<boolean>;
441
445
  allChecked: import("vue").WritableComputedRef<boolean>;
442
446
  handlePositiveClick: () => Promise<void>;
443
- updateSourceIds: (value: (string | number)[], meta: {
447
+ updateCheckedSourceIds: () => void;
448
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
444
449
  actionType: "check" | "uncheck";
445
450
  value: string | number;
446
451
  }) => void;
447
- renderSourceLabel: ({ option }: {
448
- option: AnyObject;
449
- }) => JSX.Element;
450
452
  closeTag: (id: string) => void;
451
453
  renderTargetList: () => JSX.Element[] | null;
452
454
  NModal: any;
453
455
  NButton: any;
456
+ NSpace: any;
457
+ NAvatar: any;
454
458
  NIcon: any;
459
+ NTag: any;
455
460
  NInput: any;
456
461
  NCheckbox: any;
457
462
  NCheckboxGroup: any;
463
+ SearchOutline: 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<{}>>, {}>;
458
464
  AddOutline: 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<{}>>, {}>;
459
465
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
460
466
  title: {
@@ -1,20 +1,13 @@
1
- import { AnyObject } from '../../../../shared/types';
2
1
  declare const _default: import("vue").DefineComponent<{}, {
3
- cssVars: import("vue").ComputedRef<AnyObject>;
2
+ cssVars: import("vue").ComputedRef<import("../../../../shared/types").AnyObject>;
4
3
  listRef: import("vue").Ref<any>;
5
4
  inputRef: import("vue").Ref<any>;
6
5
  showSearch: import("vue").Ref<boolean>;
7
6
  keyword: import("vue").Ref<any>;
8
- userList: import("vue").Ref<any>;
9
7
  state: import("../types").IState;
10
- openSession: (item: AnyObject) => Promise<void>;
11
- pageInfo: {
12
- page: number;
13
- hasMore: boolean;
14
- };
8
+ openSession: (item: import("../../../../shared/types").AnyObject) => Promise<void>;
9
+ userList: import("vue").Ref<import("../../../../shared/types").AnyObject[]>;
15
10
  handleInput: () => void;
16
- handleSearch: () => Promise<void>;
17
- resetAndSearch: () => void;
18
11
  addSession: (userId: string) => Promise<void>;
19
12
  NPopover: any;
20
13
  NButton: any;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,watch as s,nextTick as r,openBlock as a,createBlock as t,unref as i,withCtx as n,createVNode as l,createTextVNode as u,createElementVNode as p,normalizeStyle as c,createElementBlock as f,Fragment as m,renderList as d,toDisplayString as v}from"vue";import{NPopover as h,NButton as g,NIcon as k,NInput as w,NAvatar as y}from"naive-ui";import{SearchOutline as j}from"@vicons/ionicons5";import{useState as S}from"../hooks/useState.js";import{useSession as _}from"../hooks/useSession.js";import"trtc-sdk-v5";import"date-fns";import{isArray as I}from"lodash-es";import"../utils/emoji.js";import{listUserApi as M,openSessionApi as x}from"../api/index.js";import{useDebounceFn as C}from"@vueuse/core";import{useTheme as b}from"../../../../shared/hooks/useTheme.js";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as z}from"../hooks/useScrollLoading.js";const L=["onClick"],N={class:"user-info"};var R=e({__name:"ChatSearch",setup(e){const R=b(),T=o(),U=o(),D=o(!1),E=o(),G=o(),{state:H}=S(),{openSession:O}=_(H),q={page:0,hasMore:!0},A=C((function(){Object.assign(q,{page:0,hasMore:!0}),B()}),300);async function B(){if(!E.value)return void(G.value=[]);if(!q.hasMore)return;q.page++;const e=await M({orgId:H.orgId,keyword:E.value,page:q.page,pageSize:10});I(e.records)&&q.page<=+e.total&&(G.value=q.page>1?G.value.concat(e.records):e.records,q.page==e.total&&(q.hasMore=!1,console.log("没有更多消息了")))}return z(T,(()=>{B()})),s((()=>D.value),(async e=>{var o;e&&(await r(),null==(o=U.value)||o.focus())})),(e,o)=>(a(),t(i(h),{show:D.value,"onUpdate:show":o[1]||(o[1]=e=>D.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:n((()=>[l(i(g),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:n((()=>[l(i(k),{component:i(j),color:"#ffffff80"},null,8,["component"])])),default:n((()=>[u(" 搜索联系人 ")])),_:1})])),default:n((()=>[p("div",{class:"popover-search",style:c(i(R))},[l(i(w),{ref_key:"inputRef",ref:U,size:"small",clearable:"",autofocus:"",value:E.value,"onUpdate:value":o[0]||(o[0]=e=>E.value=e),valueModifiers:{trim:!0},onInput:i(A)},{prefix:n((()=>[l(i(k),{color:"#ffffff80",component:i(j)},null,8,["component"])])),_:1},8,["value","onInput"]),p("div",{class:"user-list-wrapper",ref_key:"listRef",ref:T},[(a(!0),f(m,null,d(G.value,(e=>(a(),f("div",{class:"user-item",key:e.id,onClick:()=>async function(e){D.value=!1;const o=await x({chatType:"SINGLE",receiver:e,sender:H.userInfo.id});O(o)}(e.id)},[l(i(y),{round:"",size:32,src:e.avatar},null,8,["src"]),p("div",N,[p("span",null,v(e.name),1),p("span",null,v(e.deptName),1),p("span",null,v(e.post),1)])],8,L)))),128))],512)],4)])),_:1},8,["show"]))}});export{R as default};
1
+ import{defineComponent as e,ref as o,watch as s,nextTick as r,openBlock as a,createBlock as t,unref as i,withCtx as l,createVNode as n,createTextVNode as u,createElementVNode as p,normalizeStyle as f,createElementBlock as c,Fragment as m,renderList as d,toDisplayString as v}from"vue";import{NPopover as h,NButton as k,NIcon as w,NInput as y,NAvatar as j}from"naive-ui";import{SearchOutline as S}from"@vicons/ionicons5";import{useState as _}from"../hooks/useState.js";import{useSession as g}from"../hooks/useSession.js";import"trtc-sdk-v5";import"date-fns";import"lodash-es";import"../utils/emoji.js";import{openSessionApi as x}from"../api/index.js";import{useTheme as C}from"../../../../shared/hooks/useTheme.js";import"@vueuse/core";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSearchUserList as R}from"../hooks/useSearchUserList.js";const U=["onClick"],I={class:"user-info"};var L=e({__name:"ChatSearch",setup(e){const L=C(),b=o(),z=o(),N=o(!1),T=o(),{state:D}=_(),{openSession:E}=g(D),{userList:G,handleInput:H}=R({wrapperRef:b,keywordRef:T});return s((()=>N.value),(async e=>{var o;e&&(await r(),null==(o=z.value)||o.focus())})),(e,o)=>(a(),t(i(h),{show:N.value,"onUpdate:show":o[1]||(o[1]=e=>N.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:l((()=>[n(i(k),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:l((()=>[n(i(w),{component:i(S),color:"#ffffff80"},null,8,["component"])])),default:l((()=>[u(" 搜索联系人 ")])),_:1})])),default:l((()=>[p("div",{class:"popover-search",style:f(i(L))},[n(i(y),{ref_key:"inputRef",ref:z,size:"small",clearable:"",autofocus:"",value:T.value,"onUpdate:value":[o[0]||(o[0]=e=>T.value=e),i(H)],valueModifiers:{trim:!0}},{prefix:l((()=>[n(i(w),{color:"#ffffff80",component:i(S)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),p("div",{class:"user-list-wrapper",ref_key:"listRef",ref:b},[(a(!0),c(m,null,d(i(G),(e=>(a(),c("div",{class:"user-item",key:e.id,onClick:()=>async function(e){N.value=!1;const o=await x({chatType:"SINGLE",receiver:e,sender:D.userInfo.id});E(o)}(e.id)},[n(i(j),{round:"",size:32,src:e.avatar},null,8,["src"]),p("div",I,[p("span",null,v(e.name),1),p("span",null,v(e.deptName),1),p("span",null,v(e.post),1)])],8,U)))),128))],512)],4)])),_:1},8,["show"]))}});export{L as default};
@@ -1,11 +1,15 @@
1
1
  import TRTC from 'trtc-sdk-v5';
2
+ import { AnyObject } from '../../../../shared/types';
2
3
  declare const _default: import("vue").DefineComponent<{}, {
3
4
  selfVideoRef: import("vue").Ref<any>;
4
- remoteUsers: import("vue").Ref<string[]>;
5
+ remoteUsers: import("vue").Ref<{
6
+ id: string;
7
+ name: string;
8
+ }[]>;
5
9
  state: import("../types").IState;
6
10
  sendMessage: (message: {
7
11
  chatType?: string | undefined;
8
- content: import("../../../../shared/types").AnyObject;
12
+ content: AnyObject;
9
13
  receiver?: string | undefined;
10
14
  }) => Promise<void>;
11
15
  trtc: TRTC;
@@ -29,11 +33,11 @@ declare const _default: import("vue").DefineComponent<{}, {
29
33
  installEventHandlers: () => void;
30
34
  uninstallEventHandlers: () => void;
31
35
  handleRemoteVideoAvailable: (event: any) => Promise<void>;
32
- handleRemoteAudioAvailable: (event: any) => void;
33
- handleRemoteUserEnter: (event: any) => void;
36
+ handleRemoteAudioAvailable: (event: any) => Promise<void>;
37
+ handleRemoteUserEnter: (event: any) => Promise<void>;
38
+ getUserName: (userId: string) => Promise<any>;
34
39
  handleRemoteUserExit: (event: any) => void;
35
40
  handleError: (error: any) => void;
36
- getName: (id: string) => any;
37
41
  NButton: any;
38
42
  NIcon: any;
39
43
  ChatAdd: import("vue").DefineComponent<{
@@ -46,14 +50,14 @@ declare const _default: import("vue").DefineComponent<{}, {
46
50
  default: string;
47
51
  };
48
52
  options: {
49
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
53
+ type: import("vue").PropType<AnyObject[]>;
50
54
  };
51
55
  disabledIds: {
52
56
  type: import("vue").PropType<string[]>;
53
57
  default: () => never[];
54
58
  };
55
59
  defaultValue: {
56
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
60
+ type: import("vue").PropType<AnyObject[]>;
57
61
  };
58
62
  }, {
59
63
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
@@ -66,25 +70,29 @@ declare const _default: import("vue").DefineComponent<{}, {
66
70
  default: string;
67
71
  };
68
72
  options: {
69
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
73
+ type: import("vue").PropType<AnyObject[]>;
70
74
  };
71
75
  disabledIds: {
72
76
  type: import("vue").PropType<string[]>;
73
77
  default: () => never[];
74
78
  };
75
79
  defaultValue: {
76
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
80
+ type: import("vue").PropType<AnyObject[]>;
77
81
  };
78
82
  }>> & {
79
83
  onComfirm?: ((...args: any[]) => any) | undefined;
80
84
  }>>;
81
85
  emit: (event: "comfirm", ...args: any[]) => void;
82
86
  state: import("../types").IState;
87
+ listRef: import("vue").Ref<any>;
88
+ keyword: import("vue").Ref<any>;
83
89
  showModal: import("vue").Ref<boolean>;
84
- checkedOptions: import("vue").Ref<import("../../../../shared/types").AnyObject[]>;
85
- options: import("vue").Ref<import("../../../../shared/types").AnyObject[]>;
90
+ checkedOptions: import("vue").Ref<AnyObject[]>;
91
+ options: import("vue").Ref<AnyObject[]>;
86
92
  groupName: import("vue").Ref<string>;
87
93
  checkedSourceIds: import("vue").Ref<(string | number)[]>;
94
+ userList: import("vue").Ref<AnyObject[]>;
95
+ handleInput: () => void;
88
96
  _disabledIds: import("vue").ComputedRef<any[]>;
89
97
  defaultOptions: import("vue").ComputedRef<{
90
98
  id: any;
@@ -95,21 +103,23 @@ declare const _default: import("vue").DefineComponent<{}, {
95
103
  btnDisabled: import("vue").ComputedRef<boolean>;
96
104
  allChecked: import("vue").WritableComputedRef<boolean>;
97
105
  handlePositiveClick: () => Promise<void>;
98
- updateSourceIds: (value: (string | number)[], meta: {
106
+ updateCheckedSourceIds: () => void;
107
+ handleSourceIdsUpdate: (value: (string | number)[], meta: {
99
108
  actionType: "check" | "uncheck";
100
109
  value: string | number;
101
110
  }) => void;
102
- renderSourceLabel: ({ option }: {
103
- option: import("../../../../shared/types").AnyObject;
104
- }) => JSX.Element;
105
111
  closeTag: (id: string) => void;
106
112
  renderTargetList: () => JSX.Element[] | null;
107
113
  NModal: any;
108
114
  NButton: any;
115
+ NSpace: any;
116
+ NAvatar: any;
109
117
  NIcon: any;
118
+ NTag: any;
110
119
  NInput: any;
111
120
  NCheckbox: any;
112
121
  NCheckboxGroup: any;
122
+ SearchOutline: 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<{}>>, {}>;
113
123
  AddOutline: 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<{}>>, {}>;
114
124
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
115
125
  title: {
@@ -121,14 +131,14 @@ declare const _default: import("vue").DefineComponent<{}, {
121
131
  default: string;
122
132
  };
123
133
  options: {
124
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
134
+ type: import("vue").PropType<AnyObject[]>;
125
135
  };
126
136
  disabledIds: {
127
137
  type: import("vue").PropType<string[]>;
128
138
  default: () => never[];
129
139
  };
130
140
  defaultValue: {
131
- type: import("vue").PropType<import("../../../../shared/types").AnyObject[]>;
141
+ type: import("vue").PropType<AnyObject[]>;
132
142
  };
133
143
  }>> & {
134
144
  onComfirm?: ((...args: any[]) => any) | undefined;