| ¶Ô±ÈÐÂÎļþ |
| | |
| | | /** IM å
容类åæä¸¾ï¼å¯¹é½å端 ImContentTypeEnumï¼ */ |
| | | export const ImContentType = { |
| | | // ========== ç¨æ·èå¤©æ¶æ¯ï¼101-105 ç´æ¥å¤ç¨ OpenIM 段ä½ç¼å·ï¼ ========== |
| | | TEXT: 101, // ææ¬ï¼å¯¹åº OpenIM Text=101ï¼ |
| | | IMAGE: 102, // å¾çï¼å¯¹åº OpenIM Picture=102ï¼ |
| | | VOICE: 103, // è¯é³ï¼å¯¹åº OpenIM Sound=103ï¼ |
| | | VIDEO: 104, // è§é¢ï¼å¯¹åº OpenIM Video=104ï¼ |
| | | FILE: 105, // æä»¶ï¼å¯¹åº OpenIM File=105ï¼ |
| | | MERGE: 107, // å并转åï¼å¯¹åº OpenIM Merger=107ï¼payload å
åµå®æ´å¿«ç
§ï¼ |
| | | CARD: 108, // åçï¼å¯¹åº OpenIM Card=108ï¼ |
| | | FACE: 115, // 表æ
è´´å¾ï¼å¯¹åº OpenIM Face=115ï¼Unicode emoji ä»èµ° TEXTï¼ |
| | | // ========== é¢éæ¶æ¯æ©å±æ®µï¼125+ï¼OpenIM 122 ä¹åæªå ç¨ï¼ä½ä¸ºé¢é / å
¬ä¼å·ç±»æ¶æ¯æ©å±ï¼ ========== |
| | | MATERIAL: 125, // é¢éç´ æï¼å¾æå¡çï¼title + coverUrl + summary + urlï¼è¯¦æ
æ get-contentï¼ |
| | | // ========== ä¿¡å·ç±»ï¼2101 / 2200 ç´æ¥å¤ç¨ OpenIM 段ä½ç¼å·ï¼2201 èªææ©å±ï¼ ========== |
| | | RECALL: 2101, // æ¤åï¼å¯¹åº OpenIM RevokeNotification=2101ï¼ |
| | | RECEIPT: 2200, // åæ§ï¼å¯¹åº OpenIM HasReadReceipt=2200ï¼ |
| | | READ: 2201, // 已读ï¼å¤ç«¯åæ¥ï¼OpenIM æ 对åºï¼èªææ©å±ï¼ |
| | | // ========== 宿¶éè¯ä¿¡ä»¤ï¼1601-1605 段ä½ä¸ OpenIM 对é½ï¼1610+ èªææ©å±ï¼ ========== |
| | | RTC_CALL: 1601, // éè¯ä¿¡ä»¤ç»ä¸å
¥å£ï¼å¯¹åº OpenIM SignalingNotification=1601ï¼ |
| | | RTC_PARTICIPANT_CONNECTED: 1602, // éè¯åä¸è
å å
¥ï¼å¯¹åº OpenIM RoomParticipantsConnectedNotification=1602ï¼ |
| | | RTC_PARTICIPANT_DISCONNECTED: 1603, // éè¯åä¸è
离å¼ï¼å¯¹åº OpenIM RoomParticipantsDisconnectedNotification=1603ï¼ |
| | | // 1604-1609 OpenIM å·²ç¨ / ç使©å±ï¼æ¬ç³»ç»æä¸ä½¿ç¨ |
| | | RTC_CALL_START: 1610, // éè¯å¼å§ï¼èªææ©å±ï¼OpenIM æ ï¼ä»
群èï¼ä¸ END 两段å¼é
å¯¹ï¼ |
| | | RTC_CALL_END: 1611, // éè¯ç»æï¼èªææ©å±ï¼OpenIM æ ï¼ç§è / 群èï¼ |
| | | // ========== 好åéç¥ï¼1201-1210 ç´æ¥å¤ç¨ OpenIM 段ä½ç¼å·ï¼ ========== |
| | | FRIEND_REQUEST_APPROVED: 1201, // 好åç³è¯·è¢«åæ |
| | | FRIEND_REQUEST_REJECTED: 1202, // 好åç³è¯·è¢«æç» |
| | | FRIEND_REQUEST_RECEIVED: 1203, // æ¶å°æ°ç好åç³è¯· |
| | | FRIEND_ADD: 1204, // æ°å¢å¥½åï¼åæ¹å»ºç«å
³ç³»ï¼ |
| | | FRIEND_DELETE: 1205, // 好å被å é¤ |
| | | // 1206 å¯¹åº OpenIM FriendRemarkSetNotificationï¼æ¬ç³»ç»å¹¶å
¥ FRIEND_UPDATE(1210) ç»ä¸æ¨éï¼åä¸åæ®µåæ´ä¸åç¬ç«éé |
| | | FRIEND_BLOCK: 1207, // å å
¥é»åå |
| | | FRIEND_UNBLOCK: 1208, // ç§»åºé»åå |
| | | FRIEND_INFO_UPDATED: 1209, // 好åèµæåæ´ï¼æµç§° / 头åï¼ |
| | | FRIEND_UPDATE: 1210, // 好åä¿¡æ¯æ¹éæ´æ°ï¼silent / pinnedï¼ |
| | | // ========== 群äºä»¶ï¼1501-1520 ç´æ¥å¤ç¨ OpenIM 段ä½ç¼å·ï¼1530+ èªææ©å±æ®µï¼ ========== |
| | | GROUP_CREATE: 1501, // 群å建 |
| | | GROUP_INFO_UPDATE: 1502, // 群信æ¯åæ´ï¼NAME / NOTICE ä¹å¤å段å
åºï¼ |
| | | GROUP_REQUEST_RECEIVED: 1503, // æ¶å°æ°çå
¥ç¾¤ç³è¯·ï¼ç§èå®åæ¨éç»ç¾¤ä¸» + å
¨é¨ç®¡çåï¼ |
| | | GROUP_MEMBER_QUIT: 1504, // æåé群 |
| | | GROUP_REQUEST_APPROVED: 1505, // å
¥ç¾¤ç³è¯·è¢«åæï¼ç§èæ¨ç»ç³è¯·äºº + 群主 + å
¨é¨ç®¡çåï¼ |
| | | GROUP_REQUEST_REJECTED: 1506, // å
¥ç¾¤ç³è¯·è¢«æç»ï¼åä¸ï¼ |
| | | GROUP_OWNER_TRANSFER: 1507, // 群主转让 |
| | | GROUP_MEMBER_KICK: 1508, // æåè¢«ç§»åº |
| | | GROUP_MEMBER_INVITE: 1509, // æåå å
¥ |
| | | GROUP_MEMBER_ENTER: 1510, // èªç±è¿ç¾¤ï¼FREE æ¨¡å¼æç³è¯·éè¿åï¼å
¨å广æï¼ |
| | | GROUP_DISSOLVE: 1511, // ç¾¤è§£æ£ |
| | | GROUP_MEMBER_MUTED: 1512, // åæåç¦è¨ |
| | | GROUP_MEMBER_CANCEL_MUTED: 1513, // åæååæ¶ç¦è¨ |
| | | GROUP_MUTED: 1514, // å
¨ç¾¤ç¦è¨ |
| | | GROUP_CANCEL_MUTED: 1515, // å
¨ç¾¤åæ¶ç¦è¨ |
| | | GROUP_MEMBER_NICKNAME_UPDATE: 1516, // æåæµç§°åæ´ï¼çªåå° displayUserNameï¼ |
| | | GROUP_ADMIN_ADD: 1517, // æ·»å 管çå |
| | | GROUP_ADMIN_REMOVE: 1518, // æ¤é管çå |
| | | GROUP_NOTICE_UPDATE: 1519, // 群å
¬ååæ´ |
| | | GROUP_NAME_UPDATE: 1520, // 群ååæ´ |
| | | // ========== èªææ©å±æ®µï¼1530+ï¼OpenIM 1500-1520 æ®µä½æ 对åºç©ï¼ ========== |
| | | GROUP_MEMBER_SETTING_UPDATE: 1530, // 群æåä¸ªäººè®¾ç½®åæ´ï¼silent / groupRemark 个人å¤ç«¯åæ¥ |
| | | GROUP_MESSAGE_PIN: 1531, // ç¾¤æ¶æ¯ç½®é¡¶ï¼èªææ©å±ï¼OpenIM æ ï¼ |
| | | GROUP_MESSAGE_UNPIN: 1532, // ç¾¤æ¶æ¯åæ¶ç½®é¡¶ï¼èªææ©å±ï¼OpenIM æ ï¼ |
| | | GROUP_BANNED: 1533 // 群å°ç¦åæ´ï¼èªææ©å±ï¼OpenIM æ ï¼ |
| | | } as const |
| | | |
| | | /** 夿æ¯å¦ã群广æäºä»¶ãï¼[GROUP_CREATE, GROUP_BANNED] 段ä½é½ç®ï¼ä»
GROUP_MEMBER_SETTING_UPDATE æ¯ä¸ªäººä¿¡å·æé¤ */ |
| | | export function isGroupNotification(type: number): boolean { |
| | | return ( |
| | | type >= ImContentType.GROUP_CREATE && |
| | | type <= ImContentType.GROUP_BANNED && |
| | | type !== ImContentType.GROUP_MEMBER_SETTING_UPDATE |
| | | ) |
| | | } |
| | | |
| | | /** 夿æ¯å¦ã好åéç¥äºä»¶ãï¼1201-1210 æ®µä½ */ |
| | | export function isFriendNotification(type: number): boolean { |
| | | return type >= ImContentType.FRIEND_REQUEST_APPROVED && type <= ImContentType.FRIEND_UPDATE |
| | | } |
| | | |
| | | /** 夿æ¯å¦ãå 群ç³è¯·éç¥äºä»¶ãï¼1503/1505/1506 */ |
| | | export function isGroupRequestNotification(type: number): boolean { |
| | | return ( |
| | | type === ImContentType.GROUP_REQUEST_RECEIVED || |
| | | type === ImContentType.GROUP_REQUEST_APPROVED || |
| | | type === ImContentType.GROUP_REQUEST_REJECTED |
| | | ) |
| | | } |
| | | |
| | | /** 夿æ¯å¦ãä¼è¯å
ç好åäºä»¶æ°æ³¡ãï¼FRIEND_ADD / FRIEND_DELETE ç´æ¥æ¸²ææç°è²æç¤ºï¼ä¸ç¾¤äºä»¶åå¤ç */ |
| | | export function isFriendChatTip(type: number): boolean { |
| | | return type === ImContentType.FRIEND_ADD || type === ImContentType.FRIEND_DELETE |
| | | } |
| | | |
| | | /** 夿æ¯å¦ãä¼è¯å
çéè¯äºä»¶æ°æ³¡ãï¼RTC_CALL_START / RTC_CALL_END 渲ææç°è²æç¤º */ |
| | | export function isRtcCallTip(type: number): boolean { |
| | | return type === ImContentType.RTC_CALL_START || type === ImContentType.RTC_CALL_END |
| | | } |
| | | |
| | | /** |
| | | * IM æ®éå
容类åéåï¼normal vs event äºåï¼ä¸å端 ImContentTypeEnum.normal åæ®µè¯ä¹ä¸è´ï¼ |
| | | * |
| | | * è¿ä¸ªéåå¨å¤å¤è¢«å¤ç¨ï¼æ°å¢ç±»ååå
确认ææå¯ä½ç¨é½ç¬¦åé¢æï¼ |
| | | * 1. å端åéå
¥å£æ ¡éªï¼Im{Private,Group}MessageSendReqVO.isNormalTypeï¼ââ ç¨æ·åéçå
容类åå¿
é¡» normal=true |
| | | * 2. åç«¯æ¥æ¶ä¾§æªè¯» / æç¤ºé³ï¼websocketStoreï¼ââ normal æ¶æ¯è®¡å
¥ä¼è¯æªè¯»æ° + 触åå£°é³ |
| | | * 3. å端ä¼è¯å表 lastType / @ æ ç¾ï¼ConversationItemï¼ââ åªæ normal æç®ãæå䏿¡èå¤©æ¶æ¯ã |
| | | * 4. åç«¯ç¾¤æ¶æ¯ç½®é¡¶èåï¼message-item.vue ç canPinï¼ââ normal æå
许群主 / 管çå置顶 |
| | | * |
| | | * åçï¼CARDï¼/ 表æ
ï¼FACEï¼é½æ¯ãç¨æ·ä¸»å¨åçèå¤©æ¶æ¯ãï¼1/2/3 é½ç¬¦å颿ï¼4 åæ¶æ¾å¼ = 群主å¯ç½®é¡¶ï¼è¯ä¹åç |
| | | */ |
| | | const ImContentTypeNormals = new Set<number>([ |
| | | ImContentType.CARD, |
| | | ImContentType.FACE, |
| | | ImContentType.FILE, |
| | | ImContentType.IMAGE, |
| | | ImContentType.MATERIAL, // é¢éç´ æè®¡å
¥æªè¯»æ° + è¿ä¼è¯å表 |
| | | ImContentType.MERGE, |
| | | ImContentType.TEXT, |
| | | ImContentType.VIDEO, |
| | | ImContentType.VOICE |
| | | ]) |
| | | |
| | | /** 夿æ¯å¦"æ®éæ¶æ¯" */ |
| | | export function isNormalMessage(type: number): boolean { |
| | | return ImContentTypeNormals.has(type) |
| | | } |
| | | |
| | | /** IM åªä½å
容类åéåï¼åéä¾èµæ¬å° File ä¸ä¼ ï¼å·æ°å _localFile 丢失å³ä¸å¯æ¢å¤ */ |
| | | const ImContentTypeMedia = new Set<number>([ |
| | | ImContentType.FILE, |
| | | ImContentType.IMAGE, |
| | | ImContentType.VIDEO, |
| | | ImContentType.VOICE |
| | | ]) |
| | | |
| | | /** 夿æ¯å¦ãåªä½æ¶æ¯ãï¼å¾ç / æä»¶ / è¯é³ / è§é¢ */ |
| | | export function isMediaMessageType(type: number): boolean { |
| | | return ImContentTypeMedia.has(type) |
| | | } |
| | | |
| | | /** |
| | | * IM æ¶æ¯ç¶ææä¸¾ï¼å¯¹é½å端 ImMessageStatusEnumï¼å端æ©å± SENDING + FAILEDï¼ |
| | | * |
| | | * çå½å¨æï¼FAILED(-2) â SENDING(-1) â NORMAL(0) â RECALL(2) |
| | | */ |
| | | export const ImMessageStatus = { |
| | | FAILED: -2, // åé失败ï¼åç«¯ç¬æï¼ |
| | | SENDING: -1, // åéä¸ï¼åç«¯ç¬æï¼ |
| | | NORMAL: 0, // æ£å¸¸ |
| | | RECALL: 2 // å·²æ¤å |
| | | } as const |
| | | |
| | | /** IM ä¼è¯ç±»åæä¸¾ */ |
| | | export const ImConversationType = { |
| | | NONE: 0, // æ ä¼è¯ |
| | | PRIVATE: 1, // ç§è |
| | | GROUP: 2, // 群è |
| | | CHANNEL: 3 // é¢é / å
¬ä¼å· |
| | | } as const |
| | | |
| | | /** ImConversationType åå¼ï¼ç¨äºæ¶æ¯ payload åæ®µç±»åæ¶çªï¼ */ |
| | | export type ImConversationTypeValue = (typeof ImConversationType)[keyof typeof ImConversationType] |
| | | |
| | | /** æ¯å¦ç§èä¼è¯ï¼åæ¶æ¶çªç±»å */ |
| | | export function isPrivateConversation(type: number | undefined): boolean { |
| | | return type === ImConversationType.PRIVATE |
| | | } |
| | | |
| | | /** æ¯å¦ç¾¤èä¼è¯ï¼åæ¶æ¶çªç±»å */ |
| | | export function isGroupConversation(type: number | undefined): boolean { |
| | | return type === ImConversationType.GROUP |
| | | } |
| | | |
| | | /** æ¯å¦é¢éä¼è¯ï¼åæ¶æ¶çªç±»å */ |
| | | export function isChannelConversation(type: number | undefined): boolean { |
| | | return type === ImConversationType.CHANNEL |
| | | } |
| | | |
| | | /** IM éè¯åªä½ç±»åï¼å¯¹é½å端 ImRtcCallMediaTypeEnumï¼ */ |
| | | export const ImRtcCallMediaType = { |
| | | VOICE: 1, |
| | | VIDEO: 2 |
| | | } as const |
| | | |
| | | /** IM éè¯ç¶æï¼å¯¹é½å端 ImRtcCallStatusEnumï¼ */ |
| | | export const ImRtcCallStatus = { |
| | | CREATED: 10, // å建ï¼ç§èçè¢«å«æ¥å¬ï¼ç¾¤èåèµ·äººå·²è¿æ¿çå
¶ä»äººå å
¥ |
| | | RUNNING: 20, // è¿è¡ä¸ï¼ç¬¬ä¸ä¸ªéå起人æ¥éåè¿å
¥ |
| | | ENDED: 30 // å·²ç»æ |
| | | } as const |
| | | |
| | | /** IM éè¯ç»æåå ï¼å¯¹é½å端 ImRtcCallEndReasonEnumï¼ */ |
| | | export const ImRtcCallEndReason = { |
| | | HANGUP: 1, // æ¥éå任䏿¹ä¸»å¨ææ |
| | | REJECT: 2, // è¢«å«æ¥éåç¹ææ¥ |
| | | CANCEL: 3, // 䏻嫿¥éå主å¨åæ¶ |
| | | NO_ANSWER: 4, // æ¯éè¶
æ¶æªæ¥é |
| | | BUSY: 5, // ç§èå¼å«æ¶å¯¹æ¹æ£å¿ |
| | | ERROR: 9 // ç½ç»ä¸æ / 设å¤å¤±è´¥ |
| | | } as const |
| | | |
| | | /** ImRtcCallEndReason åå¼ç±»å */ |
| | | export type ImRtcCallEndReasonValue = (typeof ImRtcCallEndReason)[keyof typeof ImRtcCallEndReason] |
| | | |
| | | /** IM éè¯åä¸è
ç¶æï¼å¯¹é½å端 ImRtcParticipantStatusEnumï¼ï¼åæ¶ä½ä¸º RTC_CALL 信令 status åæ®µåå¼ */ |
| | | export const ImRtcParticipantStatus = { |
| | | INVITING: 10, // æ¥çµé请 |
| | | JOINED: 20, // æ¥å¬ / å·²å å
¥ |
| | | REJECTED: 30, // ææ¥ |
| | | NO_ANSWER: 40, // 主å«åæ¶ï¼è¢«éè¯·æ¹æªåºç |
| | | LEFT: 50 // ææç¦»å¼ |
| | | } as const |
| | | |
| | | /** ImRtcParticipantStatus åå¼ç±»å */ |
| | | export type ImRtcParticipantStatusValue = |
| | | (typeof ImRtcParticipantStatus)[keyof typeof ImRtcParticipantStatus] |
| | | |
| | | /** |
| | | * IM éè¯ UI é¶æ®µï¼åç«¯ç¬æï¼ç¨äºé©±å¨ inviting / incoming / running ä¸ç§å¼¹çªåæ¢ï¼ |
| | | * è·å端 ImRtcCallStatus 䏿¯ 1:1 æ å°ï¼stage å¤äºãèªå·±æ¯ä¸»å«è¿æ¯è¢«å«ãçè§è²ç»´åº¦ |
| | | */ |
| | | export const ImRtcCallStage = { |
| | | IDLE: 'idle', // 空é²ï¼å端æ 对åºï¼æ¬ç«¯æ æ´»è·éè¯ï¼ |
| | | INVITING: 'inviting', // 主å«çå¾
å¯¹æ¹æ¥åï¼å¯¹åºå端 ImRtcCallStatus.CREATEDï¼èªå·±æ¯ä¸»å«ï¼ |
| | | INCOMING: 'incoming', // è¢«å«æ¥çµåéï¼å¯¹åºå端 ImRtcCallStatus.CREATEDï¼èªå·±æ¯è¢«å«ï¼ |
| | | RUNNING: 'running' // éè¯ä¸ï¼å¯¹åºå端 ImRtcCallStatus.RUNNING |
| | | } as const |
| | | |
| | | /** ImRtcCallStage åå¼ç±»å */ |
| | | export type ImRtcCallStageValue = (typeof ImRtcCallStage)[keyof typeof ImRtcCallStage] |
| | | |
| | | /** IM WebSocket å¤å±å¸§ç±»å */ |
| | | export const ImWebSocketMessageType = { |
| | | NOTIFICATION: 'im-notification' // IM éç¥ |
| | | } as const |
| | | |
| | | /** IM æ¶æ¯åæ§ç¶ææä¸¾ï¼å¯¹é½å端 ImMessageReceiptStatusEnumï¼ */ |
| | | export const ImMessageReceiptStatus = { |
| | | NO_RECEIPT: 0, // ä¸éè¦åæ§ |
| | | PENDING: 1, // å¾
宿 |
| | | DONE: 2 // 已宿 |
| | | } as const |
| | | |
| | | /** 群æåè§è²ï¼å¯¹é½å端 ImGroupMemberRoleEnumï¼ */ |
| | | export const ImGroupMemberRole = { |
| | | OWNER: 1, // 群主 |
| | | ADMIN: 2, // 管çå |
| | | NORMAL: 3 // æ®éæå |
| | | } as const |
| | | |
| | | /** å ç¾¤æ¥æºï¼å¯¹é½å端 ImGroupAddSourceEnumï¼ */ |
| | | export const ImGroupAddSource = { |
| | | SEARCH: 1, // æç´¢ |
| | | INVITE: 2, // é请 |
| | | QR_CODE: 3, // æ«ç |
| | | SHARE_LINK: 4 // åäº«é¾æ¥ |
| | | } as const |
| | | |
| | | /** å 群ç³è¯·å¤çç»æï¼å¯¹é½å端 ImGroupRequestHandleResultEnumï¼ */ |
| | | export const ImGroupRequestHandleResult = { |
| | | UNHANDLED: 0, // æªå¤ç |
| | | AGREED: 1, // åæ |
| | | REFUSED: 2 // æç» |
| | | } as const |
| | | |
| | | /** 好忷»å æ¥æºï¼å¯¹é½å端 ImFriendAddSourceEnumï¼ */ |
| | | export const ImFriendAddSource = { |
| | | SEARCH: 1, // æç´¢ |
| | | GROUP: 2, // 群è |
| | | QR_CODE: 3, // æ«ç |
| | | CARD: 4 // åç |
| | | } as const |
| | | |
| | | /** 好åç³è¯·å¤çç»æï¼å¯¹é½å端 ImFriendRequestHandleResultEnumï¼ */ |
| | | export const ImFriendRequestHandleResult = { |
| | | UNHANDLED: 0, // æªå¤ç |
| | | AGREED: 1, // åæ |
| | | REFUSED: 2 // æç» |
| | | } as const |
| | | |
| | | /** |
| | | * @å
¨ä½æå çç¹æ® userId æ è¯ï¼atUserIds ä¸å
å« -1 表示 @ å
¨ä½æå |
| | | * |
| | | * ä¸å端约å®ï¼ç¾¤æ¶æ¯ atUserIds æ°ç»éåºç° -1 æ¶ï¼æææå齿¶å°æé |
| | | * MentionPicker 渲æèæé¡¹ + conversationStore.applyAt å¤å® atAll é½é è¿ä¸ªå¼ |
| | | */ |
| | | export const IM_AT_ALL_USER_ID = -1 |
| | | |
| | | /** @å
¨ä½æå çå±ç¤ºåï¼å¯¹é½å¾®ä¿¡ PCï¼ */ |
| | | export const IM_AT_ALL_NICKNAME = 'ææäºº' |
| | | |
| | | /** è½¬åæ¨¡å¼ï¼SINGLE éæ¡åæ ·è½¬ / MERGE æå
æ MergeMessage */ |
| | | export const ImForwardMode = { |
| | | SINGLE: 'single', |
| | | MERGE: 'merge' |
| | | } as const |
| | | |
| | | /** ImForwardMode åå¼ç±»å */ |
| | | export type ImForwardModeValue = (typeof ImForwardMode)[keyof typeof ImForwardMode] |