许静 5 years ago
parent
commit
5bb9d7dbf6

+ 1
- 1
config/config.js View File

@@ -510,7 +510,7 @@ export default {
510 510
 
511 511
   proxy: {
512 512
     '/api/': {
513
-      target: 'http://localhost:8080/',
513
+      target: 'http://192.168.0.84:8080/',
514 514
       changeOrigin: true,
515 515
       // pathRewrite: { '^/server': '' },
516 516
     },

+ 69
- 64
src/pages/indexEcharts/components/UserBehavior.jsx View File

@@ -17,10 +17,10 @@ const formatDate = (start, end) => {
17 17
 }
18 18
 const UserBehavior = (props) => {
19 19
 
20
-const [data, setData] = useState({ records: [] })
20
+  const [data, setData] = useState({ records: [] })
21 21
   const [datas, setDatas] = useState({ records: [] })
22
- 
23
-  
22
+
23
+
24 24
   //柱图
25 25
 
26 26
   useEffect(() => {
@@ -40,73 +40,73 @@ const [data, setData] = useState({ records: [] })
40 40
 
41 41
     })
42 42
   }
43
-  
44
-  function getUserBehaviorProfile (row) {
43
+
44
+  function getUserBehaviorProfile(row) {
45 45
 
46 46
     setData([])
47 47
     request({
48 48
       ...apis.indexEcharts.userBehavior.profile,
49
-      params:{ event: row.event, personId: row.personId }
49
+      params: { event: row.event, personId: row.personId }
50 50
     }).then((data) => {
51 51
 
52
-      setData(data )
53
-     
52
+      setData(data)
53
+
54 54
     })
55 55
 
56 56
   }
57
-  
58
-    const seriesMaker = (data.selectUserBehavior || []).reduce((series, item) => {
59
-      let { date, activityCount, activity } = item
60
-      date = moment(date).format('YYYY-MM-DD')
61
-      if (!activityCount) activityCount = 0
62
-
63
-      // 使用对象, 可以去重
64
-      series[`${activity}`] = (series[`${activity}`] || []).concat([[ date, activityCount ]])
65
-
66
-      return series;
67
-    }, {})
68
-
69
-
70
-   const dataZoom=props.dataZoom?[
71
-      {
72
-        type: 'inside',
73
-        start: 0,
74
-        end: 100
75
-      },
76
-      {
77
-        type: 'slider',
78
-        start: 0,
79
-        end: 100
80
-      },
81
-    ] : undefined 
82
-    
83
-  
84
-    const options = {
85
-    title:  {},
86
-      icon: "rect",
87
-      legend: {
88
-         show: true, zlevel: 10 ,
89
-         itemGap:100,
90
-      },
91
-      color: ['#F12B3E', '#FE929C', '#647CE1', '#A2B9FF', '#FF844F', '#FFBB9D'],
92
-      tooltip: {
93
-        trigger: 'axis'
94
-      },
95
-      xAxis: { type: 'category' },
96
-      yAxis: {},
97
-      dataZoom,
98
-      series: Object.keys(seriesMaker).map(x => {
99
-        return {
100
-          type: 'line',
101
-          smooth:true, 
102
-          name: x,
103
-          data: seriesMaker[x],
104
-        }
105
-      }),
106
-    }
107
-   function handleBuildingChange (e) {
108
-      getUserBehaviorSummary({ buildingId: e })
109
-    }
57
+
58
+  const seriesMaker = (data.selectUserBehavior || []).reduce((series, item) => {
59
+    let { date, activityCount, activity } = item
60
+    date = moment(date).format('YYYY-MM-DD')
61
+    if (!activityCount) activityCount = 0
62
+
63
+    // 使用对象, 可以去重
64
+    series[`${activity}`] = (series[`${activity}`] || []).concat([[date, activityCount]])
65
+
66
+    return series;
67
+  }, {})
68
+
69
+
70
+  const dataZoom = props.dataZoom ? [
71
+    {
72
+      type: 'inside',
73
+      start: 0,
74
+      end: 100
75
+    },
76
+    {
77
+      type: 'slider',
78
+      start: 0,
79
+      end: 100
80
+    },
81
+  ] : undefined
82
+
83
+
84
+  const options = {
85
+    title: {},
86
+    icon: "rect",
87
+    legend: {
88
+      show: true, zlevel: 10,
89
+      itemGap: 100,
90
+    },
91
+    color: ['#F12B3E', '#FE929C', '#647CE1', '#A2B9FF', '#FF844F', '#FFBB9D'],
92
+    tooltip: {
93
+      trigger: 'axis'
94
+    },
95
+    xAxis: { type: 'category' },
96
+    yAxis: {},
97
+    dataZoom,
98
+    series: Object.keys(seriesMaker).map(x => {
99
+      return {
100
+        type: 'line',
101
+        smooth: true,
102
+        name: x,
103
+        data: seriesMaker[x],
104
+      }
105
+    }),
106
+  }
107
+  function handleBuildingChange(e) {
108
+    getUserBehaviorSummary({ buildingId: e })
109
+  }
110 110
 
111 111
 
112 112
   const style = {
@@ -119,9 +119,14 @@ const [data, setData] = useState({ records: [] })
119 119
     <>
120 120
       <div>
121 121
         {/* onSuccess={(e) => onTabledatas(e)} */}
122
-        <p onClick={()=>router.push('/indexEcharts/userBehavior')}><span style={{borderBottom:'1px solid #f02d40',color:'#333',fontSize:'0.12rem',fontWeight:'600'}}>用户行为</span> <span style={{fontSize:'0.09rem',color:'#888',marginLeft:'0.06rem'}}>最近七天</span></p>
123
-      <div style={{float:'right',marginTop:'-40px',marginBottom:'20px'}}><BuildSelect slot='action' onChange={(e=>handleBuildingChange(e))}></BuildSelect></div>
124
-      <EChart onClick={()=>router.push('/indexEcharts/userBehavior')}  options={options} style={style} />
122
+        <p onClick={() => router.push('/indexEcharts/userBehavior')}>
123
+          <span style={{ borderBottom: '1px solid #f02d40', color: '#333', fontSize: '0.12rem', fontWeight: '600' }}>用户行为</span>
124
+          {!props.BuildSelectHide && <span style={{ fontSize: '0.09rem', color: '#888', marginLeft: '0.06rem' }}></span>}
125
+        </p>
126
+        <div style={{ float: 'right', marginTop: '-40px', marginBottom: '20px' }}>
127
+          {!props.BuildSelectHide && <BuildSelect slot='action' onChange={(e => handleBuildingChange(e))}></BuildSelect>}
128
+        </div>
129
+        <EChart onClick={() => router.push('/indexEcharts/userBehavior')} options={options} style={style} />
125 130
 
126 131
       </div>
127 132
 

+ 1
- 1
src/pages/indexEcharts/components/UserConversion.jsx View File

@@ -78,7 +78,7 @@ const UserSource = (props) => {
78 78
       name: '转化率',
79 79
       radius: ['34%', '52%'],
80 80
       data:[ { name: '授权手机', value: 6 },
81
-      { name: '其余', value: 6 },]
81
+      { name: '其余', value: 5 },]
82 82
     }
83 83
     
84 84
   }

+ 44
- 21
src/pages/indexEcharts/userBehavior.jsx View File

@@ -1,12 +1,12 @@
1 1
 import React, { Component, useState, useEffect } from 'react';
2
-import { Radio, DatePicker, Form, Input, Button, Icon, Select, message,Table} from 'antd';
2
+import { Radio, DatePicker, Form, Input, Button, Icon, Select, message, Table } from 'antd';
3 3
 import { Row, Col, Menu, Dropdown } from 'antd';
4 4
 import UserBehavior from './components/UserBehavior'
5 5
 import moment from 'moment';
6 6
 import EChart from '../../components/EchartsTest/EChart';
7 7
 import request from '../../utils/request';
8 8
 import apis from '../../services/apis';
9
-
9
+import BuildSelect from '../../components/SelectButton/BuildSelect'
10 10
 
11 11
 // const formatDate = (start, end) => {
12 12
 //   const startDate = moment(start).format('YYYY-MM-DDT00:00:00.000') + 'Z'
@@ -20,7 +20,7 @@ const header = props => {
20 20
 
21 21
   const [endDate, setEndDate] = useState({})
22 22
   const [startDate, setStartDate] = useState({})
23
-  let daterange= []
23
+  let daterange = []
24 24
 
25 25
   useEffect(() => {
26 26
 
@@ -31,13 +31,13 @@ const header = props => {
31 31
 
32 32
   const { RangePicker } = DatePicker;
33 33
 
34
-  function onChangetime (dates, dateStrings) {
34
+  function onChangetime(dates, dateStrings) {
35 35
 
36
-    daterange[1]=dateStrings[1]
37
-    daterange[0]=dateStrings[0]
36
+    daterange[1] = dateStrings[1]
37
+    daterange[0] = dateStrings[0]
38 38
 
39 39
   }
40
- 
40
+
41 41
   const getDataOf = (days) => () => {
42 42
 
43 43
     setEndDate(new Date())
@@ -46,22 +46,22 @@ const header = props => {
46 46
   }
47 47
 
48 48
 
49
-  function datalist () {
49
+  function datalist() {
50 50
 
51 51
     setEndDate(daterange[1])
52 52
     setStartDate(daterange[0])
53 53
 
54 54
   }
55
-  
56
-  function redata (e) {
57
-  
58 55
 
59
-    console.log('行为回调数据:' ,e)
60
-  }
61
- 
62
- 
56
+  function redata(e) {
63 57
 
64 58
 
59
+    console.log('行为回调数据:', e)
60
+  }
61
+  function handleChange(value) {
62
+    console.log(`selected ${value}`);
63
+  }
64
+
65 65
   const columns = [
66 66
     {
67 67
       title: '访问事件',
@@ -91,11 +91,11 @@ const header = props => {
91 91
       title: '离开时间',
92 92
       dataIndex: 'stion',
93 93
       key: 'stion',
94
-    
94
+
95 95
     },
96 96
   ];
97 97
 
98
-  const dataSource  = []
98
+  const dataSource = []
99 99
 
100 100
   return (<>
101 101
     <div style={{
@@ -105,7 +105,8 @@ const header = props => {
105 105
       borderRadius: '12px',
106 106
       minHeight: '1000vh'
107 107
     }}>
108
-      <Radio.Group  buttonStyle="solid"  defaultValue="a">
108
+    <div>
109
+    <Radio.Group buttonStyle="solid" defaultValue="a">
109 110
         <Radio.Button value="a" onClick={getDataOf(7)}>最近7天</Radio.Button>
110 111
         <Radio.Button value="b" onClick={getDataOf(30)}>最近1月</Radio.Button>
111 112
       </Radio.Group>
@@ -118,11 +119,33 @@ const header = props => {
118 119
         showTime
119 120
         onChange={onChangetime}
120 121
       />
121
-      <Button type="primary" htmlType="submit" style={{ marginLeft: '30px' }} onClick={datalist}>
122
+      <Button type="primary" htmlType="submit" style={{ marginLeft: '30px',float:'right' }} onClick={datalist}>
122 123
         搜索
123 124
       </Button>
124
-      <div style={{margin:'24px 0'}}>
125
-        <UserBehavior endDate={endDate} startDate={startDate}  dataZoom={true}  onReData={(e) => redata(e)}></UserBehavior>
125
+    </div>
126
+     
127
+      <div style={{ display: 'flex', margin: '24px 0' }}>
128
+      <BuildSelect slot='action' onChange={(e => handleBuildingChange(e))}></BuildSelect>
129
+        <Select placeholder="所有事件组" style={{ width: '14%',minWidth:'160px',marginRight:'2%' }} onChange={handleChange}>
130
+          <Option value="jack">Jack</Option>
131
+          <Option value="lucy">Lucy</Option>
132
+          <Option value="Yiminghe">yiminghe</Option>
133
+        </Select>
134
+        <Select placeholder="请选择事件" style={{ width: '14%',minWidth:'160px',marginRight:'2%' }} onChange={handleChange}>
135
+          <Option value="jack">Jack</Option>
136
+          <Option value="lucy">Lucy</Option>
137
+          <Option value="Yiminghe">yiminghe</Option>
138
+        </Select>
139
+        <Select placeholder="请选择属性" style={{ width: '14%',minWidth:'160px' }} onChange={handleChange}>
140
+          <Option value="jack">Jack</Option>
141
+          <Option value="lucy">Lucy</Option>
142
+          <Option value="Yiminghe">yiminghe</Option>
143
+        </Select>
144
+      </div>
145
+      
146
+      
147
+      <div style={{ margin: '24px 0' }}>
148
+        <UserBehavior BuildSelectHide={true} endDate={endDate} startDate={startDate} dataZoom={true} onReData={(e) => redata(e)}></UserBehavior>
126 149
       </div>
127 150
 
128 151
       <Table dataSource={dataSource} columns={columns} pagination={false} scroll={{ y: 500 }} />