| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- import {
- CustomType,
- GroupSystemMessageTypes,
- AddFriendQrCodePrefix,
- AddGroupQrCodePrefix,
- } from "@/pages_im/constant";
- import {
- subUserOnlineStatus
- } from "../api/imApi";
- import {
- GroupAtType,
- MessageType,
- SessionType,
- } from "../constant/imConstants";
- import {
- initDayjs,
- formatMessageTime,
- formatHyperlink,
- parseLink,
- conversationSort,
- parseAt,
- sec2Time,
- parseMessageByType,
- formatConversionTime,
- caculateTimeago,
- secFormat,
- bytesToSize,
- tipMessaggeFormat,
- } from "./imUtils";
- export {
- formatMessageTime,
- formatHyperlink,
- parseLink,
- conversationSort,
- parseAt,
- sec2Time,
- parseMessageByType,
- formatConversionTime,
- caculateTimeago,
- secFormat,
- bytesToSize,
- tipMessaggeFormat,
- };
- const nomalTypes = [
- GroupAtType.AtMe,
- GroupAtType.AtAll,
- GroupAtType.AtAllAtMe,
- GroupAtType.AtGroupNotice,
- ];
- import IMSDK from "openim-uniapp-polyfill";
- import store from "@/store";
- export const getDesignatedUserOnlineState = (userID, targetID) => {
- return new Promise(async (resolve, reject) => {
- let status = 0;
- try {
- const data = await subUserOnlineStatus(userID, targetID);
- status = data.statusList[0].status;
- } catch (e) {
- reject(e);
- }
- // const onlineStr = switchOnline(
- // statusObj.status,
- // statusObj.detailPlatformStatus
- // );
- const onlineStr = status ? "在线" : "离线";
- resolve(onlineStr);
- });
- };
- export const markConversationAsRead = (conversation, fromChating = false) => {
- //const _IMSDK = getIMSDK();
- if (conversation.unreadCount !== 0) {
- IMSDK.asyncApi(
- IMSDK.IMMethods.MarkConversationMessageAsRead,
- IMSDK.uuid(),
- conversation.conversationID,
- );
- }
- const isNomalAtType = nomalTypes.includes(conversation.groupAtType);
- if (isNomalAtType) {
- console.log('ResetConversationGroupAtType', conversation.conversationID)
- IMSDK.asyncApi(
- IMSDK.IMMethods.ResetConversationGroupAtType,
- IMSDK.uuid(),
- conversation.conversationID,
- );
- }
- };
- export const prepareConversationState = (conversation, back2Tab = false, refreshChat = true) => {
- markConversationAsRead(conversation);
- if (conversation.conversationType === SessionType.WorkingGroup) {
- store.dispatch("conversation/getCurrentGroup", conversation.groupID);
- store.dispatch("conversation/getCurrentMemberInGroup", conversation.groupID);
- }
- // store.dispatch("message/resetMessageState");
- store.commit("conversation/SET_CURRENT_CONVERSATION", conversation);
- let url = `/pages_im/pages/conversation/chating1/index?back2Tab=${back2Tab}`;
- if (conversation.conversationType === SessionType.Notification) {
- url = "/pages_im/pages/conversation/notifyMessageList/index";
- }
- uni.navigateTo({
- url
- });
- };
- export const navigateToDesignatedConversation = (sourceID, sessionType, back2Tab = false, refreshChat = true) => {
- console.log("qxj navigateToDesignatedConversation back2Tab", back2Tab);
- return new Promise(async (resolve, reject) => {
- try {
- const _IMSDK = IMSDK;
- const {
- data
- } = await _IMSDK.asyncApi(
- _IMSDK.IMMethods.GetOneConversation,
- _IMSDK.uuid(), {
- sessionType,
- sourceID
- }
- );
- prepareConversationState(data, back2Tab);
- resolve(data);
- } catch (e) {
- reject(e);
- }
- });
- };
- export const setConversation = (conversationID, exStr) => {
- return new Promise(async (resolve, reject) => {
- try {
- //const _IMSDK = getIMSDK();
- const _IMSDK = IMSDK;
- const {
- data
- } = await _IMSDK.asyncApi(
- _IMSDK.IMMethods.SetConversation,
- _IMSDK.uuid(), {
- conversationID: conversationID,
- isPinned: false,
- ex: exStr
- }
- );
- console.log("qxj data:" + JSON.stringify(data));
- resolve();
- } catch (e) {
- reject(e);
- }
- });
- };
- export const scanQrCodeResult = (result) => {
- if (result?.includes(AddFriendQrCodePrefix)) {
- const userID = result.replace(AddFriendQrCodePrefix, "");
- uni.navigateTo({
- url: `/pages_im/common/userCard/index?sourceID=${userID}&isScan=true`,
- });
- } else if (result?.includes(AddGroupQrCodePrefix)) {
- const groupID = result.replace(AddGroupQrCodePrefix, "");
- uni.navigateTo({
- url: `/pages/common/groupCard/index?sourceID=${groupID}&isScan=true`,
- });
- } else {
- uni.$u.toast("未识别到有效内容");
- }
- };
- export const callingModule = uni.requireNativePlugin("OUICalling");
- export const meetingModule = uni.requireNativePlugin("OUIMeeting");
- export const offlinePushInfo = {
- title: "河山恒康",
- desc: "您有一条新消息",
- ex: "",
- iOSPushSound: "",
- iOSBadgeCount: true,
- };
- export const getOfflinePushInfo = (data) => {
- }
- export const getConversationContent = (message, currentUserID) => {
- let myID = currentUserID;
- if (!myID) {
- try {
- const currentStore = getStore();
- myID = currentStore.getters.storeCurrentUserID;
- } catch (e) {
- // console.warn("Store not available in getConversationContent");
- }
- }
- if (
- !message.groupID ||
- GroupSystemMessageTypes.includes(message.contentType) ||
- message.sendID === myID ||
- message.contentType === MessageType.GroupAnnouncementUpdated
- ) {
- return parseMessageByType(message, myID);
- }
- return `${message.senderNickname}:${parseMessageByType(message, myID)}`;
- };
- export const meetingErrorHandle = ({
- errCode,
- errMsg
- }) => {
- let message = ""
- if (errCode === 1004) {
- message = "会议已结束或会议不存在!"
- } else if (errCode === 200001) {
- message = "您已在其他会议中!"
- }
- uni.$u.toast(message || errMsg);
- }
|