123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495 |
- import _data from './_data';
- import _get from './_get';
- import _mixins from './_mixins';
- import _action from './_action';
- import _page from "./common";
- import SDK from "./tendenceImSdk";
- // #ifdef APP-PLUS
- const call = uni.requireNativePlugin('TencentCloud-TUICallKit');
- // let call = uni.requireNativePlugin('TUICallingUniPlugin-TUICallingModule')
- // #endif
- export default {
- closeVoiceRoom() {
- uni.$emit('closeVoiceRoom', {})
- },
- getVoiceRoom(params) {
- let route = _page.getRoute();
- if (route.indexOf('chat/message') > -1) {
- _get.checkVoiceRoomState(params, function(ret) {
- //加入
- uni.$emit('memberJoinRoom', ret)
- })
- }
- },
- clientLink(data) {
- _data.localData('client_id', data.client_id);
- },
- cancleVedio(data) {
- // #ifdef APP-PLUS
- call.logout();
- // #endif
- uni.$emit('close_call', data);
- },
- vedioData(data) {
- //判断是否在线发送视频邀请
- if (!_data.data('isOnlie')) {
- _page.pushVedioLocalMsg(data);
- } else {
- console.log(data);
- // uni.navigateTo({
- // url: '/pages/chat/videoCall?'+_page.pageParam(data)
- // });
- }
- return true;
- },
- /** 验证token */
- checkToken(res) {
- if (res.err) {
- _action.checkFail();
- } else {
- /** 获取基础数据 */
- _get.base();
- }
- },
- /** 下线 */
- offline(res) {
- // uni.showModal({
- // content: '你的账号在另一客户端登陆,如果不是你本人操作,请修改你的密码',
- // success() {
- // _action.checkFail();
- // },
- // });
- _action.checkFail();
- // uni.navigateTo({
- // url:'/pages/in/login'
- // })
- },
- /** 获得会话列表 */
- getChatList() {
- _get.getChatList();
- },
- /** 获得好友列表 */
- getFriendList() {
- _get.getFriendList({
- up: 1
- });
- },
- /** 新好友提醒 */
- newFriend(data) {
- _action.playVoice('/static/voice/friend.mp3');
- let num = _data.data('new_friend_tips_num') + (data.num * 1);
- _data.data('new_friend_tips_num', num);
- _action.setStatusTips();
- },
- /** 点赞提醒 */
- circleLike(data) {
- _action.playVoice('/static/voice/circle.mp3');
- //通知朋友圈
- let circle_data = _data.localData('circle_data');
- for (let i = 0, j = circle_data.length; i < j; i++) {
- if (circle_data[i].post_id == data.id) {
- console.log('circleLike1...')
- circle_data[i].like = data.likes;
- circle_data[i].islike = data.action;
- _data.localData('circle_data', circle_data);
- uni.$emit('data_circle_data', circle_data);
- break;
- }
- }
- let circle_data_user = _data.localData('circle_data_user');
- for (let i = 0, j = circle_data_user.length; i < j; i++) {
- if (circle_data_user[i].post_id == data.id) {
- console.log('circleLike2...')
- circle_data_user[i].like = data.likes;
- circle_data_user[i].islike = data.action;
- _data.localData('circle_data_user', circle_data_user);
- uni.$emit('data_circle_data_user', circle_data_user);
- break;
- }
- }
- },
- addChatList() { //田百合花
- },
- timeData(data) { //田百合花
- uni.$emit('newReadTime', data.data.msg.time)
- // uni.setStorageSync(data.list_id+'_time',data.data.msg.time);
- },
- /** 接收新消息 */
- chatData(data) {
- console.log("删除成员", data);
- if (!_data.localData('token')) return false;
- let chat_data = _data.localData(data.list_id),
- brate = _data.localData('DISTURB:' + data.list_id),
- msg_reader_num = 0;
- /** 如果不是自己的消息,在这条会话界面,震动提示,没有在这条会话界面,震动加声音提示 */
- if (_data.data('user_info').id != data.data.msg.user_info.uid) {
- console.log('到这里');
- // #ifdef APP-PLUS
- _page.pushLocalMsg(data);
- if (brate == 0 || brate == undefined || brate == null) {
- uni.vibrateLong();
- }
- // #endif
- //在列表则更新未读状态
- if (_data.localData('message_list_id') == data.list_id) {
- _action.updataNoReader(data.list_id);
- } else {
- //否则声音提示
- if (brate == 0 || brate == undefined || brate == null) {
- _action.playVoice('/static/voice/chat.mp3');
- }
- msg_reader_num = 1;
- }
- }
- /** 更新对话列表数据 */
- let action_list_data = {};
- for (let i = 0, local_chat_list = _data.localData('chat_list'), j = local_chat_list.length; i < j; i++) {
- if (local_chat_list[i].list_id == data.list_id) {
- switch (data.data.msg.type * 1) {
- case 0:
- local_chat_list[i].last_msg = data.data.msg.content.text;
- break;
- case 1:
- /** 语音 */
- local_chat_list[i].last_msg = '[语音]';
- break;
- case 2:
- /** 图片 */
- local_chat_list[i].last_msg = '[图片]';
- break;
- case 3:
- /** 视频 */
- local_chat_list[i].last_msg = '[视频]';
- break;
- case 4:
- /** 文件 */
- local_chat_list[i].last_msg = '[文件]';
- break;
- case 5:
- /** 红包 */
- local_chat_list[i].last_msg = '[红包]';
- break;
- case 6:
- /** 在线视频 */
- local_chat_list[i].last_msg = '[在线视频]';
- break;
- case 7:
- /** 在线语音 */
- local_chat_list[i].last_msg = '[在线语音]';
- break;
- case 8:
- /** 名片 */
- local_chat_list[i].last_msg = '[名片]';
- break;
- case 9:
- /** 名片 */
- local_chat_list[i].last_msg = '[戳一戳]';
- uni.vibrateLong();
- break;
- default:
- /** 未知消息类型 */
- local_chat_list[i].last_msg = '[未知]';
- break;
- }
- // todo屏蔽 @群朋友 如果屏蔽消息,则不提示
- // if(local_chat_list[i].is_disturb == 1){
- // // 如果屏蔽,但是@本人和所有人all,则提示消息
- // if (data.data.msg.content && data.data.msg.content.user_id){
- // if(data.data.msg.content.user_id.indexOf(_data.data('user_info').id)>-1 || data.data.msg.content.user_id.indexOf('all')>-1){
- // local_chat_list[i].no_reader_num += msg_reader_num;
- // }
- // }
- // }else{
- // local_chat_list[i].no_reader_num += msg_reader_num;
- // }
- local_chat_list[i].no_reader_num += msg_reader_num;
- local_chat_list[i].time = data.data.msg.time;
- local_chat_list.sort((x, y) => {
- if (x.top > y.top) {
- return -1;
- }
- if (x.time > y.time) {
- return -1;
- }
- })
- _data.localData('chat_list', local_chat_list);
- uni.$emit('data_chat_list', local_chat_list);
- action_list_data = local_chat_list[i];
- break;
- }
- }
- if (!Object.keys(action_list_data).length) {
- //如果没有则新增
- action_list_data.list_id = data.list_id;
- action_list_data.chat_id = data.data.msg.id;
- action_list_data.no_reader_num = 1;
- action_list_data.photo_path = data.data.msg.user_info.face;
- action_list_data.show_name = data.data.msg.user_info.name;
- action_list_data.time = data.data.msg.time;
- action_list_data.last_msg = data.data.msg.content.text;
- action_list_data.top = 0;
- action_list_data.top_time = 0;
- action_list_data.type = data.data.type;
- let chat_list = _data.localData('chat_list');
- chat_list.splice(0, 0, action_list_data);
- //排序首选根据top排序,然后根据time排序
- chat_list = chat_list.slice(0, 30);
- chat_list.sort((x, y) => {
- if (x.top == y.top) {
- y.time - x.time;
- } else {
- return y.top - x.top;
- }
- })
- _data.localData('chat_list', chat_list);
- uni.$emit('data_chat_list', chat_list);
- }
- /** 在有这条对话的缓存数据情况下 */
- if (chat_data) {
- chat_data.list.push(data.data);
- chat_data.list = chat_data.list.slice(-15);
- _data.localData(data.list_id, chat_data);
- /** 如果在与对方的对话界面,发送数据到页面显示 */
- if (_data.localData('message_list_id') == data.list_id) {
- /** 保持页面15条数据,提升性能 */
- uni.$emit('data_chat_data_push', chat_data.list);
- }
- }
- _action.setStatusTips();
- },
- /** 接收好友朋友圈动态提示 */
- circleTips(data) {
- _action.playVoice('/static/voice/circle.mp3');
- _data.data('no_reader_circle', 1);
- _action.setStatusTips();
- },
- /** 接收朋友圈好友回复/赞通知 */
- cricleChatTips(data) {
- _action.playVoice('/static/voice/circle.mp3');
- let num = _data.data('no_reader_circle_chat_num');
- num++;
- _data.data('no_reader_circle_chat_num', num);
- _action.setStatusTips();
- },
- /** 撤回消息 */
- deleteChat(data) {
- let chat_data = _data.localData(data.list_id);
- for (let i = 0, j = chat_data.list.length; i < j; i++) {
- if (chat_data.list[i].msg.id == data.data.msg.id) {
- chat_data.list[i] = data.data;
- _data.localData(data.list_id, chat_data);
- uni.$emit('data_chat_data_delete', chat_data.list);
- break;
- }
- }
- },
- // 系统删除一条会话
- adminDeleteChat(data) {
- let chat_data = _data.localData(data.list_id);
- for (let i = 0, j = chat_data.list.length; i < j; i++) {
- if (chat_data.list[i].msg.id == data.data.msg.id) {
- // chat_data.list[i] = data.data;
- chat_data.list.splice(i, 1);
- _data.localData(data.list_id, chat_data);
- uni.$emit('data_chat_data_delete', chat_data.list);
- break;
- }
- }
- },
- /** 加群申请 */
- chatGroupApply(data) {
- let local_data = _data.localData('group_apply_list');
- if (!local_data) {
- local_data = [];
- }
- local_data.push(data);
- _data.localData('group_apply_list', local_data);
- uni.$emit('data_group_apply_data', local_data);
- let num = _data.data('new_group_tips_num');
- num++;
- _data.data('new_group_tips_num', num);
- _action.playVoice('/static/voice/friend.mp3');
- _action.setStatusTips();
- },
- /** 通知群管理已处理 */
- groupChatApplyAllow(id) {
- let local_data = _data.localData('group_apply_list');
- for (let value of local_data) {
- if (value.id == id) {
- value.status = 1;
- value.text = '已接受';
- let num = _data.data('new_group_tips_num');
- num--;
- if (num < 0) {
- num = 0;
- }
- _data.data('new_group_tips_num', num);
- }
- break;
- }
- _data.localData('group_apply_list', local_data);
- uni.$emit('data_group_apply_data', local_data);
- _action.setStatusTips();
- },
- // 清空双方聊天记录(对话)
- chat_del(data) {
- _data.localData(data.list_id, null);
- uni.$emit('chat_del', data.list_id);
- },
- // 删除群聊
- group_del(data) {
- /** 删除对话列表缓存数据 */
- let show_name = '';
- for (let i = 0, local_chat_list = _data.localData('chat_list'), j = local_chat_list.length; i < j; i++) {
- if (local_chat_list[i].list_id == data.list_id) {
- let del_group = local_chat_list.splice(i, 1);
- // console.log("删除群的属性", del_group);
- show_name = del_group[0].show_name;
- _data.localData('chat_list', local_chat_list);
- uni.$emit('data_chat_list', local_chat_list);
- break;
- }
- }
- /** 删除对话缓存数据 */
- _data.localData(data.list_id, null);
- uni.showModal({
- title: show_name + ' 群聊已经被解散了!',
- showCancel: false,
- success: function(res) {
- uni.switchTab({
- url: '/pages/chat/index'
- })
- }
- });
- },
- //清除群聊某些消息
- groupDeleteChat(data) {
- console.log("清空群聊消息", data);
- uni.$emit('group_delete_chat', data.list_id);
- },
- // todo清除移除会员的记录
- removeMember(data) {
- console.log("清空成员消息", data);
- uni.$emit('remove_member', data.list_id);
- },
- /** 解散群 */
- removeGroup(data) {
- /** 删除对话列表缓存数据 */
- for (let i = 0, local_chat_list = _data.localData('chat_list'), j = local_chat_list.length; i < j; i++) {
- if (local_chat_list[i].list_id == data.list_id) {
- local_chat_list.splice(i, 1);
- _data.localData('chat_list', local_chat_list);
- uni.$emit('data_chat_list', local_chat_list);
- break;
- }
- }
- /** 删除对话缓存数据 */
- _data.localData(data.list_id, null);
- uni.showModal({
- title: data.group_name + ' 群聊已经被群主解散了!',
- });
- },
- //付款消息
- payAmount(data) {
- _action.playVoice('/static/voice/chat.mp3');
- let local_data = _data.data('data_pay_tips');
- local_data = parseInt(local_data);
- if (local_data <= 0) {
- local_data = 0
- }
- local_data++;
- _data.data('data_pay_tips', local_data);
- uni.$emit('pay_amount_after', data)
- uni.$emit('data_user_info', data);
- _data.data('user_info', data);
- _action.setStatusTips();
- },
- collectAmount(data) {
- _action.playVoice('/static/voice/chat.mp3');
- let user_info = data.user_info;
- user_info.amount = data.amount;
- uni.navigateTo({
- url: '/pages/pay/collect_money?' + _page.pageParam(user_info)
- })
- },
- //在线支付成功通知
- onlinePaySuccess(data) {
- uni.$emit('data_user_info', data);
- _data.data('user_info', data);
- },
- cricleComment(data) {
- let comment = data.comment;
- let circle = _data.localData('circle_data');
- for (let i = 0, j = circle.length; i < j; i++) {
- if (circle[i].post_id == data.circle_id) {
- circle[i].comments.push(data.comment)
- _data.localData('circle_data', circle);
- uni.$emit('data_circle_data', circle);
- break;
- }
- }
- let circle_user = _data.localData('circle_data_user');
- for (let i = 0, j = circle_user.length; i < j; i++) {
- console.log('circle_user[i]:', circle_user[i])
- if (circle_user[i].post_id == data.circle_id) {
- circle_user[i].comments.push(data.comment)
- _data.localData('circle_data_user', circle_user);
- uni.$emit('data_circle_data_user', circle_user);
- break;
- }
- }
- },
- //购买成功通知
- payCircleOrder(data) {
- console.log('payCircleOrder....')
- _action.playVoice('/static/voice/circle.mp3');
- //通知朋友圈
- let circle_data = _data.localData('circle_data');
- for (let i = 0, j = circle_data.length; i < j; i++) {
- if (circle_data[i].post_id == data.circle_id) {
- console.log('circle_data11[i]', circle_data[i])
- circle_data[i].can_pay_times = data.can_pay_times;
- _data.localData('circle_data', circle_data);
- uni.$emit('data_circle_data', circle_data);
- break;
- }
- }
- let circle_data_user = _data.localData('circle_data_user');
- for (let i = 0, j = circle_data_user.length; i < j; i++) {
- if (circle_data_user[i].post_id == data.circle_id) {
- circle_data_user[i].can_pay_times = data.can_pay_times;
- _data.localData('circle_data_user', circle_data_user);
- uni.$emit('data_circle_data_user', circle_data_user);
- break;
- }
- }
- },
- memberIsOnline() { //消息提醒
- _action.playVoice('/static/voice/chat.mp3');
- },
- setMessagePageTitle(data) { //设置聊天页面的title
- console.log("设置标题:", data)
- let chat_data = _data.localData(data.list_id);
- chat_data.show_name = data.show_name;
- _data.localData(data.list_id, chat_data);
- },
- zhenDong(data) {
- let user_id = _data.data('user_info').id;
- console.log("USER_ID", user_id);
- if (user_id != data['user_id']) {
- // #ifdef APP-PLUS
- uni.vibrateLong();
- // #endif
- }
- }
- }
|