diff --git a/src/App.js b/src/App.js index 3a4e687..eab9625 100644 --- a/src/App.js +++ b/src/App.js @@ -13,6 +13,7 @@ import Customer_care_potential from "./charts/Customer_care_potential"; import Customer_care_regular from "./charts/Customer_care_regular"; import Wechat_session from "./charts/Wechat_session"; import WhatsApp_session from "./charts/WhatsApp_session"; +import AgentGroup from "./charts/AgentGroup"; import Credit_card_bill from "./views/Credit_card_bill"; import exchange_rate from "./charts/ExchangeRate"; import Sale from "./views/Sale"; @@ -53,6 +54,7 @@ const App = () => { { key: 33, label: 在华客户 }, { key: 34, label: 微信会话存档 }, { key: 35, label: WhatsApp会话存档 }, + { key: 36, label: 地接社接团 }, ], }, { @@ -95,6 +97,7 @@ const App = () => { } /> } /> } /> + } /> }> } /> diff --git a/src/charts/AgentGroup.js b/src/charts/AgentGroup.js new file mode 100644 index 0000000..b4a92c7 --- /dev/null +++ b/src/charts/AgentGroup.js @@ -0,0 +1,126 @@ +import React, {Component} from 'react'; +import {Row, Col, List, Avatar, Space, Pagination, Button} from 'antd'; +import { + ContainerOutlined, CarryOutOutlined, + SmileOutlined, TagsOutlined, GlobalOutlined, + SearchOutlined, +} from '@ant-design/icons'; +import {stores_Context} from '../config' +import {Line} from "@ant-design/charts"; +import {observer} from 'mobx-react'; +import 'moment/locale/zh-cn'; +import DatePickerCharts from './DatePickerCharts' + +class AgentGroup extends Component { + + static contextType = stores_Context; + constructor(props) { + super(props); + } + + componentDidMount() { + console.info('AgentGroup.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 {dashboard_store} = this.context; + const orders_data = dashboard_store.orders_data; + const line_config = { + data: orders_data.data, + padding: 'auto', + xField: 'ApplyDate', + yField: 'orderCount', + seriesField: 'WebCode', + xAxis: { + type: 'timeCat', + }, + smooth: true, + legend: { + position: 'right-top', + title: { + text: '总合计 ' + orders_data.data.reduce((a, b) => a + b.orderCount, 0), + }, + itemMarginBottom: 12,//垂直间距 + itemValue: { + formatter: (text, item) => { + const items = orders_data.data.filter((d) => d.WebCode === item.value);//按站点筛选 + return items.length ? items.reduce((a, b) => a + b.orderCount, 0) : '';//计算总数 + }, + }, + }, + } + + return ( +
+

全网站订单数统计

+
+ + + + +
+
+ +
+ ); + } + +} + +export default observer(AgentGroup); \ No newline at end of file