import Base from './base' import { useDialogueStore, useTalkStore } from '@/store' import { parseTime } from '@/utils/datetime' import { useDialogueListStore } from '@/store' /** * 好友状态事件 */ class Revoke extends Base { /** * @var resource 资源 */ resource /** * 发送者ID */ sender_id = 0 /** * 接收者ID */ receiver_id = 0 /** * 聊天类型[1:私聊;2:群聊;] */ talk_type = 0 /** * 初始化构造方法 * * @param {Object} resource Socket消息 */ constructor(resource) { super() this.resource = resource this.sender_id = resource.sender_id this.receiver_id = resource.receiver_id this.talk_type = resource.talk_type this.msg_id = resource.msg_id this.handle() } /** * 判断消息发送者是否来自于我 * @returns */ isCurrSender() { return this.sender_id == this.getAccountId() } /** * 获取对话索引 * * @return String */ getIndexName() { if (this.talk_type == 2) { return `${this.talk_type}_${this.receiver_id}` } let receiver_id = this.isCurrSender() ? this.receiver_id : this.sender_id return `${this.talk_type}_${receiver_id}` } handle() { const { updateDialogueRecord } = useDialogueListStore() useTalkStore().updateItem({ index_name: this.getIndexName(), msg_text: this.resource.text, revokeInfo: { retracted_id: this.resource.retracted_id, retracted_name: this.resource.retracted_name, withdraw_id: this.resource.withdraw_id, withdraw_name: this.resource.withdraw_name, }, updated_at: parseTime(new Date()), }) useDialogueStore().updateDialogueRecord({ msg_id: this.msg_id, revokeInfo: { retracted_id: this.resource.retracted_id, retracted_name: this.resource.retracted_name, withdraw_id: this.resource.withdraw_id, withdraw_name: this.resource.withdraw_name, }, is_revoke: 1, }) updateDialogueRecord({ msg_id: this.msg_id, revokeInfo: { retracted_id: this.resource.retracted_id, retracted_name: this.resource.retracted_name, withdraw_id: this.resource.withdraw_id, withdraw_name: this.resource.withdraw_name, }, is_revoke: 1, }) } } export default Revoke