完成微信聊天记录分页

feature/2.0-sales-trade
LiaoYijun 3 years ago
parent c701e1cbbc
commit 5d276c7441

@ -1,8 +1,11 @@
import React, {Component} from 'react'; import React, {Component} from 'react';
import {Row, Col, List, Avatar} from 'antd'; import {Row, Col, List, Avatar, DatePicker, Pagination} from 'antd';
import {stores_Context} from '../config' import {stores_Context} from '../config'
import * as config from "../config";
import {observer} from 'mobx-react'; import {observer} from 'mobx-react';
import { toJS } from "mobx"; import moment from "moment";
import 'moment/locale/zh-cn';
import locale from 'antd/es/date-picker/locale/zh_CN';
class Wechat_session extends Component { class Wechat_session extends Component {
@ -12,6 +15,7 @@ class Wechat_session extends Component {
} }
componentDidMount() { componentDidMount() {
console.info('Wechat_session.componentDidMount');
const {wechatStore} = this.context; const {wechatStore} = this.context;
wechatStore.fetchWechatUserList(); wechatStore.fetchWechatUserList();
} }
@ -22,18 +26,23 @@ class Wechat_session extends Component {
} }
handleContactClick(contact) { handleContactClick(contact) {
const {wechatStore} = this.context; const {wechatStore} = this.context;
wechatStore.fetchChatMsgList(contact); wechatStore.fetchChatMsgList(contact, 0, 20);
}
handlePageChanged(page, pageSize) {
const {wechatStore} = this.context;
wechatStore.fetchChatMsgList(wechatStore.selectedContact, page, pageSize);
} }
render() { render() {
const {wechatStore} = this.context; const {wechatStore} = this.context;
const userList = wechatStore.userList; const userList = wechatStore.userList;
const contactList = wechatStore.contactList; const contactList = wechatStore.contactList;
const chatMsgList = wechatStore.chatMsgList; const chatMsgList = wechatStore.chatMsgList;
const chatMsgPage = wechatStore.chatMsgPage;
return ( return (
<div> <>
<Row> <Row>
<Col span={8}> <Col span={6}>
<List <List
itemLayout="horizontal" itemLayout="horizontal"
dataSource={userList} dataSource={userList}
@ -42,13 +51,12 @@ class Wechat_session extends Component {
<List.Item.Meta <List.Item.Meta
avatar={<Avatar src={user.avatar} />} avatar={<Avatar src={user.avatar} />}
title={user.username} title={user.username}
description=""
/> />
</List.Item> </List.Item>
)} )}
/> />
</Col> </Col>
<Col span={8}> <Col span={6}>
<List <List
itemLayout="horizontal" itemLayout="horizontal"
dataSource={contactList} dataSource={contactList}
@ -57,13 +65,12 @@ class Wechat_session extends Component {
<List.Item.Meta <List.Item.Meta
avatar={<Avatar src={contact.avatar} />} avatar={<Avatar src={contact.avatar} />}
title={contact.username} title={contact.username}
description=""
/> />
</List.Item> </List.Item>
)} )}
/> />
</Col> </Col>
<Col span={8}> <Col span={12}>
<List <List
itemLayout="horizontal" itemLayout="horizontal"
dataSource={chatMsgList} dataSource={chatMsgList}
@ -72,18 +79,24 @@ class Wechat_session extends Component {
<List.Item.Meta <List.Item.Meta
avatar={<Avatar src={chatMsg.from_avatar} />} avatar={<Avatar src={chatMsg.from_avatar} />}
title={chatMsg.from_name} title={chatMsg.from_name}
description={chatMsg.content.text} description={chatMsg.msgtime}
/> />
{chatMsg.content.text}
</List.Item> </List.Item>
)} )}
/> />
<Pagination
current={chatMsgPage.currpage}
pageSize={20}
total={chatMsgPage.totalpage*20}
onChange={(page, pageSize) => { this.handlePageChanged(page, pageSize)}} />
</Col> </Col>
</Row> </Row>
</div> </>
); );
} }
} }
export default observer(Wechat_session);
export default observer(Wechat_session);

@ -1,72 +1,63 @@
import {makeAutoObservable, runInAction} from "mobx" import {makeAutoObservable, runInAction} from "mobx"
import {
CaretUpOutlined,
CaretDownOutlined
} from '@ant-design/icons';
import {Tag} from 'antd';
import * as config from "../config"; import * as config from "../config";
import moment from "moment";
import {NavLink} from "react-router-dom";
import * as req from '../utils/request'; import * as req from '../utils/request';
class Wechat { class Wechat {
constructor(rootStore) { constructor(rootStore) {
this.rootStore = rootStore; this.rootStore = rootStore;
makeAutoObservable(this); makeAutoObservable(this);
// req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list')
// .then(json => {
// runInAction(() => {
// this.userList = json.Result.filter(user => {
// return user.SMPlatform === 'weixin';
// });
// });
// });
} }
fetchWechatUserList() { fetchWechatUserList() {
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list') req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list')
.then(json => { .then(json => {
if (json.errcode === 0) {
runInAction(() => { runInAction(() => {
this.userList = json.Result.filter(user => { this.userList = json.Result.filter(user => {
return user.SMPlatform === 'weixin'; return user.SMPlatform === 'weixin';
}); });
}); });
}
}); });
} }
//
fetchContactList(user) { fetchContactList(user) {
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_externalcontact_list?userid='+user.userid) req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_externalcontact_list?userid='+user.userid)
.then(json => { .then(json => {
if (json.errcode === 0) {
runInAction(() => { runInAction(() => {
this.contactList = json.Result.filter(user => { this.contactList = json.Result.filter(user => {
return user.SMPlatform === 'weixin'; return user.SMPlatform === 'weixin';
}); });
}); });
}
}); });
} }
fetchChatMsgList(contact) { fetchChatMsgList(contact, page, pageSize) {
runInAction(() => {
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/GetChatmsg?external_userid='+contact.userid+'&Page_count=20&curr_page=0') this.selectedContact = contact;
});
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/GetChatmsg?external_userid='+this.selectedContact.userid+'&Page_count='+pageSize+'&curr_page='+page)
.then(json => { .then(json => {
if (json.errcode === 0) {
runInAction(() => { runInAction(() => {
console.info(json.chatmsg);
this.chatMsgList = json.chatmsg; this.chatMsgList = json.chatmsg;
this.chatMsgPage = json.chatpage;
}); });
}
}); });
} }
userList = [{username: '---', avatar: 'https://joeschmoe.io/api/v1/random'}]; userList = [{username: '---', avatar: 'https://joeschmoe.io/api/v1/random'}];
contactList = [{username: '---', avatar: 'https://joeschmoe.io/api/v1/random'}]; contactList = [{username: '---', avatar: 'https://joeschmoe.io/api/v1/random'}];
chatMsgList = [{from_name: '---', from_avatar: 'https://joeschmoe.io/api/v1/random', content: {text: '---'}}]; chatMsgList = [{from_name: '---', from_avatar: 'https://joeschmoe.io/api/v1/random', content: {text: '---'}}];
chatMsgPage = {currpage: 1, totalpage: 1};
selectedContact = this.contactList[0];
} }
export default Wechat; export default Wechat;
Loading…
Cancel
Save