import React, {Component} from 'react'; import {Row, Col, List, Avatar, Space, Pagination} from 'antd'; import {stores_Context} from '../config' import {observer} from 'mobx-react'; import 'moment/locale/zh-cn'; class Wechat_session extends Component { static contextType = stores_Context; constructor(props) { super(props); } componentDidMount() { console.info('Wechat_session.componentDidMount'); const {wechatStore} = this.context; wechatStore.fetchWechatUserList(); } handleUserClick(user) { const {wechatStore} = this.context; wechatStore.fetchContactList(user); } handleContactClick(contact) { const {wechatStore} = this.context; wechatStore.fetchChatMsgList(contact, 0, 20); } handlePageChanged(page, pageSize) { const {wechatStore} = this.context; wechatStore.fetchChatMsgList(wechatStore.selectedContact, page, pageSize); } renderMsgItem(chatMsg) { const msgDate = new Date(chatMsg.msgtime); const msgDateText = msgDate.toLocaleDateString() + ' ' + msgDate.toLocaleTimeString(); return ( } title={chatMsg.from_name} description={msgDateText} /> {this.renderMsgContent(chatMsg)} ) } renderMsgContent(chatMsg) { if (chatMsg.msgtype === 'file') { return ( {chatMsg.content.filename} ) } else if (chatMsg.msgtype === 'image') { return ( {chatMsg.msgid} ) } else if (chatMsg.msgtype === 'text') { return ( <>{chatMsg.content.text} ) } else if (chatMsg.msgtype === 'link') { return ( {chatMsg.content.title} ) } else { return ( <>未知消息[{chatMsg.msgtype}] ) } } render() { const {wechatStore} = this.context; const userList = wechatStore.userList; const contactList = wechatStore.contactList; const chatMsgList = wechatStore.chatMsgList; const chatMsgPage = wechatStore.chatMsgPage; return ( <> ( {this.handleUserClick(user)}}> } title={user.username} /> )} /> ( {this.handleContactClick(contact)}}> } title={contact.username} /> )} /> this.renderMsgItem(chatMsg)} /> { this.handlePageChanged(page, pageSize)}} /> ); } } export default observer(Wechat_session);