|
@@ -1,6 +1,6 @@
|
1
|
1
|
import React, { Component, useState, useEffect } from 'react';
|
2
|
2
|
import { Form, Icon, Input, Button, DatePicker, Select, Card, Row, Col, Pagination, Alert, Table, Avatar, Radio, Modal, Descriptions } from 'antd';
|
3
|
|
-import UserSource from './components/UserSource.jsx';
|
|
3
|
+import UserSourceDetail from './components/UserSourceDetail.jsx';
|
4
|
4
|
import UserSourcepie from './components/UserSourcepie.jsx';
|
5
|
5
|
// import XForm, { FieldTypes } from '../../components/XForm';
|
6
|
6
|
import moment from 'moment';
|
|
@@ -21,38 +21,43 @@ const { Option } = Select
|
21
|
21
|
// }
|
22
|
22
|
|
23
|
23
|
let daterange = []
|
24
|
|
-let tableTitle = ['日期']
|
25
|
|
-
|
26
|
|
-const columns = [
|
27
|
|
- {
|
28
|
|
- title: '日期',
|
29
|
|
- dataIndex: 'label',
|
30
|
|
- key: 'label',
|
31
|
|
- width:'20%'
|
32
|
|
- },
|
33
|
|
- {
|
34
|
|
- title: '名片分享',
|
35
|
|
- dataIndex: '名片分享',
|
36
|
|
- key: '名片分享',
|
37
|
|
- },
|
38
|
|
- {
|
39
|
|
- title: '生成海报',
|
40
|
|
- dataIndex: '生成海报',
|
41
|
|
- key: '生成海报',
|
42
|
|
- },
|
|
24
|
+// let tableTitle = ['类型']
|
|
25
|
+
|
|
26
|
+// const columns = [
|
|
27
|
+// {
|
|
28
|
+// title: '日期',
|
|
29
|
+// dataIndex: 'label',
|
|
30
|
+// key: 'label',
|
|
31
|
+// width:'20%'
|
|
32
|
+// },
|
|
33
|
+// {
|
|
34
|
+// title: '名片分享',
|
|
35
|
+// dataIndex: '名片分享',
|
|
36
|
+// key: '名片分享',
|
|
37
|
+// },
|
|
38
|
+// {
|
|
39
|
+// title: '生成海报',
|
|
40
|
+// dataIndex: '生成海报',
|
|
41
|
+// key: '生成海报',
|
|
42
|
+// },
|
|
43
|
+// {
|
|
44
|
+// title: '小程序搜索',
|
|
45
|
+// dataIndex: '小程序搜索',
|
|
46
|
+// key: '小程序搜索',
|
|
47
|
+// },
|
|
48
|
+// {
|
|
49
|
+// title: '好友分享',
|
|
50
|
+// dataIndex: '好友分享',
|
|
51
|
+// key: '好友分享',
|
|
52
|
+// },
|
|
53
|
+// ]
|
|
54
|
+
|
|
55
|
+let columns = [
|
43
|
56
|
{
|
44
|
|
- title: '小程序搜索',
|
45
|
|
- dataIndex: '小程序搜索',
|
46
|
|
- key: '小程序搜索',
|
47
|
|
- },
|
48
|
|
- {
|
49
|
|
- title: '好友分享',
|
50
|
|
- dataIndex: '好友分享',
|
51
|
|
- key: '好友分享',
|
52
|
|
-
|
53
|
|
- },
|
54
|
|
-
|
55
|
|
-
|
|
57
|
+ title: '类型',
|
|
58
|
+ dataIndex: 'value',
|
|
59
|
+ key: 'value',
|
|
60
|
+ }
|
56
|
61
|
]
|
57
|
62
|
|
58
|
63
|
class Header extends React.Component {
|
|
@@ -72,8 +77,6 @@ class Header extends React.Component {
|
72
|
77
|
this.setState({ endDate: new Date(), startDate: moment().subtract(7, 'day').toDate() })
|
73
|
78
|
}
|
74
|
79
|
|
75
|
|
-
|
76
|
|
-
|
77
|
80
|
formatDate = (start, end) => {
|
78
|
81
|
const tempStartDate = `${moment(start).format('YYYY-MM-DDT00:00:00.000')}Z`
|
79
|
82
|
const tempEndDate = `${moment(end).format('YYYY-MM-DDT23:59:59.999')}Z`
|
|
@@ -111,17 +114,41 @@ class Header extends React.Component {
|
111
|
114
|
|
112
|
115
|
onTabledatas = (e) => {
|
113
|
116
|
console.log('this.state.userType: ', this.state.userType)
|
114
|
|
- const data = (e.data || []).reduce((acc, item) => {
|
115
|
|
- const { date, fromName, count, registered } = item
|
116
|
|
- const num = this.state.userType === 'registered' ? registered : count
|
117
|
|
-
|
118
|
|
- tableTitle = tableTitle.indexOf(fromName) > -1 ? tableTitle : tableTitle.concat(fromName) // eslint-disable-line
|
119
|
|
- acc[date] = { ...acc[date], [`${fromName}`]: !num ? 0 : num }
|
|
117
|
+ // const data = (e || []).reduce((acc, item) => {
|
|
118
|
+ // const { date, fromName, count, registered } = item
|
|
119
|
+ // const num = this.state.userType === 'registered' ? registered : count
|
|
120
|
+
|
|
121
|
+ // tableTitle = tableTitle.indexOf(fromName) > -1 ? tableTitle : tableTitle.concat(fromName) // eslint-disable-line
|
|
122
|
+ // acc[date] = { ...acc[date], [`${fromName}`]: !num ? 0 : num }
|
|
123
|
+
|
|
124
|
+ // return acc
|
|
125
|
+ // }, {})
|
|
126
|
+
|
|
127
|
+ const data = (e || []).reduce((acc, item) => {
|
|
128
|
+ const { fromNum, registeredNum, createTime } = item || {}
|
|
129
|
+ const title = createTime.replace(/-/, '年').replace(/-/, '月')
|
|
130
|
+
|
|
131
|
+ columns = columns.filter(x => x.key != createTime).concat({
|
|
132
|
+ title,
|
|
133
|
+ dataIndex: createTime,
|
|
134
|
+ key: createTime,
|
|
135
|
+ })
|
|
136
|
+
|
|
137
|
+ acc[0] = {
|
|
138
|
+ ...acc[0],
|
|
139
|
+ [`${createTime}`]: fromNum,
|
|
140
|
+ }
|
|
141
|
+ acc[1] = {
|
|
142
|
+ ...acc[1],
|
|
143
|
+ [`${createTime}`]: registeredNum,
|
|
144
|
+ }
|
120
|
145
|
|
121
|
146
|
return acc
|
122
|
|
- }, {})
|
|
147
|
+ }, [{key: 'fromNum', value: '新增用户'}, {key: 'registeredNum', value: '授权注册'}])
|
|
148
|
+
|
|
149
|
+ console.log(columns, data)
|
123
|
150
|
|
124
|
|
- this.setState({ tableData: Object.keys(data).map(x => ({ label: x, ...data[x] })) })
|
|
151
|
+ this.setState({ tableData: data })
|
125
|
152
|
|
126
|
153
|
}
|
127
|
154
|
|
|
@@ -169,7 +196,7 @@ class Header extends React.Component {
|
169
|
196
|
paddingTop: '40px',
|
170
|
197
|
marginRight: ' 40px',
|
171
|
198
|
}}>
|
172
|
|
- <UserSource BuildSelectHide={true} endDate={this.state.endDate} startDate={this.state.startDate} onSuccess={(e) => this.onSuccess(e)}></UserSource>
|
|
199
|
+ <UserSourceDetail BuildSelectHide={true} endDate={this.state.endDate} startDate={this.state.startDate} onSuccess={(e) => this.onSuccess(e)}></UserSourceDetail>
|
173
|
200
|
</div>
|
174
|
201
|
<div style={{
|
175
|
202
|
width: '509px',
|
|
@@ -180,10 +207,10 @@ class Header extends React.Component {
|
180
|
207
|
<UserSourcepie endDate={this.state.endDate} startDate={this.state.startDate}></UserSourcepie>
|
181
|
208
|
</div>
|
182
|
209
|
</div>
|
183
|
|
- <Select style={{ width: '180px' }} placeholder="所有用户" onChange={(e) => this.handleSelectChange(e)}>
|
|
210
|
+ {/* <Select style={{ width: '180px' }} placeholder="所有用户" onChange={(e) => this.handleSelectChange(e)}>
|
184
|
211
|
<Option value='all'>所有用户</Option>
|
185
|
212
|
<Option value='registered'>注册用户</Option>
|
186
|
|
- </Select>
|
|
213
|
+ </Select> */}
|
187
|
214
|
|
188
|
215
|
<Table style={{marginTop:'20px'}} dataSource={this.state.tableData} columns={columns} pagination={false} scroll={{ y: 500 }}></Table>
|
189
|
216
|
</div>
|