You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dashboard/src/stores/WhatsApp.js

63 lines
2.1 KiB
JavaScript

import {makeAutoObservable, runInAction} from "mobx";
import * as config from "../config";
import * as req from '../utils/request';
class WhatsApp {
constructor(rootStore) {
this.rootStore = rootStore;
makeAutoObservable(this);
}
fetchWechatUserList() {
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list')
.then(json => {
if (json.errcode === 0) {
runInAction(() => {
this.userList = json.Result.filter(user => {
return user.SMPlatform === 'whatsapp';
});
});
}
});
}
fetchContactList(user) {
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_externalcontact_list?userid='+user.userid)
.then(json => {
if (json.errcode === 0) {
runInAction(() => {
this.contactList = json.Result.filter(user => {
return user.SMPlatform === 'whatsapp';
});
});
}
});
}
fetchChatMsgList(contact, page, pageSize) {
runInAction(() => {
this.selectedContact = contact;
});
req.fetchJSON(config.HT_HOST + '/weixin/wxwork/GetChatmsg?external_userid='+this.selectedContact.userid+'&Page_count='+pageSize+'&curr_page='+page)
.then(json => {
if (json.errcode === 0) {
runInAction(() => {
this.chatMsgList = json.chatmsg;
this.chatMsgPage = json.chatpage;
});
}
});
}
userList = [{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: '---'}}];
chatMsgPage = {currpage: 1, totalpage: 1};
selectedContact = this.contactList[0];
}
export default WhatsApp;