@zgfe/modules-event 0.0.2-event.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/eventFilter/index.js +49 -20
- package/es/components/eventFilter/styles/index.less +6 -3
- package/es/components/eventFilter/types.d.ts +4 -0
- package/es/components/index.d.ts +1 -2
- package/es/components/index.js +1 -2
- package/es/components/renderContent/index.d.ts +1 -1
- package/es/components/renderContent/index.js +19 -18
- package/es/components/renderContent/styles/index.less +3 -8
- package/es/components/renderContent/types.d.ts +0 -1
- package/es/components/searchPanel/index.js +24 -6
- package/es/components/searchPanel/types.d.ts +2 -0
- package/es/components/table/index.js +16 -20
- package/es/components/table/styles/index.less +67 -6
- package/es/components/table/types.d.ts +1 -0
- package/es/components/topBar/index.js +42 -27
- package/es/components/topBar/styles/index.less +14 -0
- package/es/components/topBar/types.d.ts +4 -1
- package/es/constants/fields.js +4 -4
- package/es/modules/chart/index.d.ts +1 -1
- package/es/modules/chart/index.js +53 -41
- package/es/modules/chart/types.d.ts +1 -0
- package/es/modules/content/index.js +72 -57
- package/es/modules/content/types.d.ts +1 -2
- package/es/modules/content/utils.d.ts +6 -1
- package/es/modules/content/utils.js +30 -3
- package/es/modules/home/demo/create.js +10 -2
- package/es/modules/home/demo/edit.js +56 -32
- package/es/modules/home/demo/index.js +4 -0
- package/es/modules/home/demo/scene.js +4 -0
- package/es/modules/home/index.js +67 -34
- package/es/modules/home/styles/index.less +7 -2
- package/es/modules/home/types.d.ts +5 -0
- package/es/modules/topPanel/index.js +39 -31
- package/es/modules/topPanel/styles/index.less +11 -1
- package/es/modules/topPanel/types.d.ts +7 -4
- package/es/style/index.less +6 -3
- package/es/types.d.ts +2 -0
- package/es/utils/formData.d.ts +8 -1
- package/es/utils/formData.js +146 -27
- package/package.json +3 -3
- package/es/components/common/index.d.ts +0 -6
- package/es/components/common/index.js +0 -17
- package/es/components/common/styles/index.less +0 -27
- package/es/components/table/images/empty.png +0 -0
- package/es/style/image/noData.png +0 -0
|
@@ -13,12 +13,17 @@ import { BizAddToPanel, BizAddToScene, BizGlobalDataContext } from '@zgfe/busine
|
|
|
13
13
|
import './styles/index.less';
|
|
14
14
|
import { EventContext } from '../../types';
|
|
15
15
|
import { chartTypes, platformOption } from '../../constants/fields';
|
|
16
|
+
import { getWarningId } from '../../utils/formData';
|
|
16
17
|
var classPrefix = 'modules-event-topbar';
|
|
17
18
|
var TopBar = function TopBar(props) {
|
|
18
19
|
var _useContext = useContext(EventContext),
|
|
19
20
|
panelId = _useContext.panelId,
|
|
20
21
|
afterEditTarget = _useContext.afterEditTarget,
|
|
21
|
-
enableAddScene = _useContext.enableAddScene
|
|
22
|
+
enableAddScene = _useContext.enableAddScene,
|
|
23
|
+
loading = _useContext.loading,
|
|
24
|
+
onLossWarning = _useContext.onLossWarning,
|
|
25
|
+
showWarning = _useContext.showWarning,
|
|
26
|
+
enableGenerateReport = _useContext.enableGenerateReport;
|
|
22
27
|
var _useState = useState(false),
|
|
23
28
|
_useState2 = _slicedToArray(_useState, 2),
|
|
24
29
|
showPanel = _useState2[0],
|
|
@@ -28,10 +33,14 @@ var TopBar = function TopBar(props) {
|
|
|
28
33
|
showScene = _useState4[0],
|
|
29
34
|
setShowScene = _useState4[1];
|
|
30
35
|
var _useContext2 = useContext(BizGlobalDataContext),
|
|
31
|
-
currentApp = _useContext2.currentApp
|
|
36
|
+
currentApp = _useContext2.currentApp,
|
|
37
|
+
eventGroupList = _useContext2.eventGroupList;
|
|
32
38
|
var searchData = props.searchData,
|
|
33
39
|
showList = props.showList,
|
|
34
|
-
platformChange = props.platformChange
|
|
40
|
+
platformChange = props.platformChange,
|
|
41
|
+
eventData = props.eventData,
|
|
42
|
+
onClickGenerateReport = props.onClickGenerateReport,
|
|
43
|
+
enableSelectChart = props.enableSelectChart;
|
|
35
44
|
var _useState5 = useState(chartTypes),
|
|
36
45
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
37
46
|
options = _useState6[0],
|
|
@@ -40,28 +49,29 @@ var TopBar = function TopBar(props) {
|
|
|
40
49
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
41
50
|
selectPlatform = _useState8[0],
|
|
42
51
|
setselectPlatform = _useState8[1];
|
|
43
|
-
|
|
44
|
-
useEffect(function () {
|
|
45
|
-
if (searchData === null || searchData === void 0 ? void 0 : searchData.id) {
|
|
46
|
-
setOptions(chartTypes.map(function (item) {
|
|
47
|
-
if (item.value == 'number') {
|
|
48
|
-
item.disabled = false;
|
|
49
|
-
}
|
|
50
|
-
return item;
|
|
51
|
-
}));
|
|
52
|
-
} else {
|
|
53
|
-
setOptions(chartTypes.map(function (item) {
|
|
54
|
-
if (item.value == 'number') {
|
|
55
|
-
item.disabled = true;
|
|
56
|
-
}
|
|
57
|
-
return item;
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
}, [searchData]);
|
|
61
|
-
var _useState9 = useState(),
|
|
52
|
+
var _useState9 = useState(-1),
|
|
62
53
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
warningId = _useState10[0],
|
|
55
|
+
setWarningId = _useState10[1];
|
|
56
|
+
useEffect(function () {
|
|
57
|
+
setWarningId(getWarningId(searchData, eventData, eventGroupList));
|
|
58
|
+
}, [searchData, eventData, eventGroupList]);
|
|
59
|
+
useEffect(function () {
|
|
60
|
+
options.map(function (item) {
|
|
61
|
+
if (item.value.indexOf('number') !== -1) {
|
|
62
|
+
item.value = "".concat(searchData === null || searchData === void 0 ? void 0 : searchData.chartType, ",number");
|
|
63
|
+
item.disabled = (searchData === null || searchData === void 0 ? void 0 : searchData.id) ? false : true;
|
|
64
|
+
}
|
|
65
|
+
if (item.value.indexOf('map') !== -1) {
|
|
66
|
+
item.disabled = enableSelectChart ? false : true;
|
|
67
|
+
}
|
|
68
|
+
return item;
|
|
69
|
+
}), setOptions(options);
|
|
70
|
+
}, [searchData, enableSelectChart]);
|
|
71
|
+
var _useState11 = useState(),
|
|
72
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
73
|
+
panelType = _useState12[0],
|
|
74
|
+
setPanelType = _useState12[1];
|
|
65
75
|
var closeHandle = function closeHandle(type) {
|
|
66
76
|
if (type === 'panel') {
|
|
67
77
|
setPanelType(undefined);
|
|
@@ -90,7 +100,7 @@ var TopBar = function TopBar(props) {
|
|
|
90
100
|
module: 'event'
|
|
91
101
|
}, searchData),
|
|
92
102
|
styleOptions: options,
|
|
93
|
-
showList: showList,
|
|
103
|
+
showList: (searchData === null || searchData === void 0 ? void 0 : searchData.chartType) !== 'map' ? showList : [],
|
|
94
104
|
onCancel: function onCancel() {
|
|
95
105
|
return closeHandle('panel');
|
|
96
106
|
},
|
|
@@ -115,11 +125,16 @@ var TopBar = function TopBar(props) {
|
|
|
115
125
|
onCancel: function onCancel() {
|
|
116
126
|
return closeHandle('scene');
|
|
117
127
|
}
|
|
118
|
-
})), /*#__PURE__*/React.createElement(
|
|
128
|
+
})), !panelId && enableGenerateReport && /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
className: "".concat(classPrefix, "-panel")
|
|
130
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
131
|
+
onClick: onClickGenerateReport
|
|
132
|
+
}, "\u6DFB\u52A0\u5230\u6570\u636E\u62A5\u544A")), showWarning && /*#__PURE__*/React.createElement(Button, {
|
|
119
133
|
className: "".concat(classPrefix, "-earlywarning"),
|
|
120
134
|
type: "primary",
|
|
135
|
+
disabled: loading,
|
|
121
136
|
onClick: function onClick() {
|
|
122
|
-
return
|
|
137
|
+
return onLossWarning(warningId);
|
|
123
138
|
}
|
|
124
139
|
}, "\u8BBE\u7F6E\u9884\u8B66\u6D41\u5931"), /*#__PURE__*/React.createElement("div", {
|
|
125
140
|
className: "".concat(classPrefix, "-platform")
|
|
@@ -7,9 +7,23 @@
|
|
|
7
7
|
padding-right: 24px;
|
|
8
8
|
&-panel {
|
|
9
9
|
margin-right: 16px;
|
|
10
|
+
.ant-btn {
|
|
11
|
+
background: #fff;
|
|
12
|
+
border-color: #f2f3f4;
|
|
13
|
+
}
|
|
14
|
+
.ant-btn:hover {
|
|
15
|
+
border-color: #165dff;
|
|
16
|
+
}
|
|
10
17
|
}
|
|
11
18
|
&-scene {
|
|
12
19
|
margin-right: 16px;
|
|
20
|
+
.ant-btn {
|
|
21
|
+
background: #fff;
|
|
22
|
+
border-color: #f2f3f4;
|
|
23
|
+
}
|
|
24
|
+
.ant-btn:hover {
|
|
25
|
+
border-color: #165dff;
|
|
26
|
+
}
|
|
13
27
|
}
|
|
14
28
|
&-earlywarning {
|
|
15
29
|
margin-right: 16px;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { SearchValue } from '../../types';
|
|
1
|
+
import { SearchValue, ResponseDataProps } from '../../types';
|
|
2
2
|
export interface TopBarProps {
|
|
3
3
|
searchData?: SearchValue;
|
|
4
4
|
showList: string[];
|
|
5
5
|
platformChange: (data: number) => void;
|
|
6
|
+
eventData?: ResponseDataProps;
|
|
7
|
+
onClickGenerateReport?: (value: any) => void;
|
|
8
|
+
enableSelectChart: boolean;
|
|
6
9
|
}
|
package/es/constants/fields.js
CHANGED
|
@@ -2,14 +2,14 @@ export var platformOption = [{
|
|
|
2
2
|
key: 0,
|
|
3
3
|
value: '全部'
|
|
4
4
|
}, {
|
|
5
|
-
key:
|
|
6
|
-
value: '
|
|
5
|
+
key: 3,
|
|
6
|
+
value: 'JS'
|
|
7
7
|
}, {
|
|
8
8
|
key: 2,
|
|
9
9
|
value: 'IOS'
|
|
10
10
|
}, {
|
|
11
|
-
key:
|
|
12
|
-
value: '
|
|
11
|
+
key: 1,
|
|
12
|
+
value: 'Android'
|
|
13
13
|
}];
|
|
14
14
|
export var chartTypes = [{
|
|
15
15
|
label: '趋势图',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { eventChartProps } from './types';
|
|
3
|
-
declare const EventChart: React.
|
|
3
|
+
declare const EventChart: React.ForwardRefExoticComponent<eventChartProps.Props & React.RefAttributes<any>>;
|
|
4
4
|
export default EventChart;
|
|
@@ -8,17 +8,17 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
8
8
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
9
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
10
|
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { Tooltip, Empty } from 'antd';
|
|
12
|
+
import { BizChart, BizGlobalDataContext, ajax, BizLoading } from '@zgfe/business-lib';
|
|
13
|
+
import { EventTable } from '../../components';
|
|
13
14
|
import { judgeIsCity } from '../content/utils';
|
|
14
15
|
import { getValue } from '../../modules/content/utils';
|
|
15
|
-
import { getDefaultShow, getShowColor } from '../../utils/formData';
|
|
16
|
+
import { getDefaultShow, getShowColor, getUserGroupsCompareData, getSortData, getChartDataEventAliasName } from '../../utils/formData';
|
|
16
17
|
import _ from 'lodash';
|
|
18
|
+
import moment from 'moment';
|
|
17
19
|
import { Apis, chartColors } from '../../constants';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var classPrefix = 'mi-table';
|
|
21
|
-
var EventChart = function EventChart(props) {
|
|
20
|
+
var classPrefix = 'event-mi-table';
|
|
21
|
+
var EventChart = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
22
22
|
var params = props.params;
|
|
23
23
|
var _useState = useState(false),
|
|
24
24
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -49,21 +49,11 @@ var EventChart = function EventChart(props) {
|
|
|
49
49
|
if (!dataSource) return chartColors;
|
|
50
50
|
return getShowColor(dataSource, showList);
|
|
51
51
|
}, [showList]);
|
|
52
|
-
var chartData = useMemo(function () {
|
|
53
|
-
console.log('chartData?.length', dataSource);
|
|
54
|
-
if (dataSource) {
|
|
55
|
-
var data = _.cloneDeep(dataSource);
|
|
56
|
-
data.x_axis = dataSource.xAxis;
|
|
57
|
-
return data;
|
|
58
|
-
} else {
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
}, [dataSource, chartType]);
|
|
62
52
|
useEffect(function () {
|
|
63
53
|
if (!props.dataSource) {
|
|
64
54
|
fetchResult();
|
|
65
55
|
}
|
|
66
|
-
}, []);
|
|
56
|
+
}, [params]);
|
|
67
57
|
useEffect(function () {
|
|
68
58
|
if (!props.showList || !props.showList.length) {
|
|
69
59
|
setShowList(dataSource ? getDefaultShow(dataSource) : []);
|
|
@@ -75,7 +65,10 @@ var EventChart = function EventChart(props) {
|
|
|
75
65
|
var _params$chartType;
|
|
76
66
|
if (!params) return;
|
|
77
67
|
var chartData = ((_params$chartType = params.chartType) === null || _params$chartType === void 0 ? void 0 : _params$chartType.split(',')) || ['line'];
|
|
78
|
-
var type =
|
|
68
|
+
var type = chartData[0];
|
|
69
|
+
if (!props.dataSource) {
|
|
70
|
+
type = (chartData === null || chartData === void 0 ? void 0 : chartData.length) > 1 ? chartData[chartData.length - 1] : chartData[0];
|
|
71
|
+
}
|
|
79
72
|
setChartType(props.type || type);
|
|
80
73
|
if (params.id) {
|
|
81
74
|
var dimensions = params.dimension;
|
|
@@ -86,20 +79,30 @@ var EventChart = function EventChart(props) {
|
|
|
86
79
|
}
|
|
87
80
|
}, [params, props.type]);
|
|
88
81
|
var fetchResult = function fetchResult() {
|
|
82
|
+
var _params$chartType2;
|
|
89
83
|
setLoading(true);
|
|
90
84
|
ajax(Apis.dataList, {
|
|
91
85
|
method: 'post',
|
|
92
|
-
data: _objectSpread({
|
|
86
|
+
data: _objectSpread(_objectSpread({
|
|
93
87
|
appId: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
|
|
94
88
|
platform: (params === null || params === void 0 ? void 0 : params.platform) || 0
|
|
95
|
-
}, params)
|
|
89
|
+
}, params), {}, {
|
|
90
|
+
chartType: (params === null || params === void 0 ? void 0 : (_params$chartType2 = params.chartType) === null || _params$chartType2 === void 0 ? void 0 : _params$chartType2.indexOf(',')) === -1 ? params === null || params === void 0 ? void 0 : params.chartType : 'grid'
|
|
91
|
+
})
|
|
96
92
|
}).then(function (res) {
|
|
97
93
|
if (!res) {
|
|
94
|
+
setLoading(false);
|
|
98
95
|
return;
|
|
99
96
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
var _data = params.dimension ? res.data : getChartDataEventAliasName(res.data, eventGroupList);
|
|
98
|
+
if (['bar', 'pie', 'map'].indexOf(params.chartType) !== -1) {
|
|
99
|
+
_data = getSortData(_data);
|
|
100
|
+
}
|
|
101
|
+
if (params.userGroup.length > 1) {
|
|
102
|
+
setDataSource(getUserGroupsCompareData(_data));
|
|
103
|
+
} else {
|
|
104
|
+
setDataSource(_data);
|
|
105
|
+
}
|
|
103
106
|
setLoading(false);
|
|
104
107
|
});
|
|
105
108
|
};
|
|
@@ -117,35 +120,43 @@ var EventChart = function EventChart(props) {
|
|
|
117
120
|
if (props.onChangeShow) props.onChangeShow(names);
|
|
118
121
|
};
|
|
119
122
|
if (loading) {
|
|
120
|
-
return /*#__PURE__*/React.createElement(
|
|
121
|
-
className: "
|
|
123
|
+
return /*#__PURE__*/React.createElement(BizLoading, {
|
|
124
|
+
className: "".concat(classPrefix, "-loading")
|
|
122
125
|
});
|
|
123
126
|
}
|
|
124
127
|
if (!dataSource || !(dataSource.xAxis.length || dataSource.series.length)) {
|
|
125
|
-
return /*#__PURE__*/React.createElement(
|
|
126
|
-
|
|
128
|
+
return /*#__PURE__*/React.createElement(Empty, {
|
|
129
|
+
image: Empty.PRESENTED_IMAGE_SIMPLE,
|
|
130
|
+
description: "\u6682\u65E0\u6570\u636E"
|
|
127
131
|
});
|
|
128
132
|
}
|
|
133
|
+
var dataUpdateTime = function dataUpdateTime() {
|
|
134
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
135
|
+
className: "".concat(classPrefix, "-chart-box-tooltip"),
|
|
136
|
+
title: '当前图表数据实时更新,约每分钟更新一次'
|
|
137
|
+
}, /*#__PURE__*/React.createElement("div", null, "\u6570\u636E\u66F4\u65B0\u65F6\u95F4\uFF1A", moment().format('YYYY-MM-DD HH:mm')));
|
|
138
|
+
};
|
|
129
139
|
var chartBox = function chartBox() {
|
|
130
|
-
if (
|
|
131
|
-
return /*#__PURE__*/React.createElement(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}), /*#__PURE__*/React.createElement("p", null, "\u6682\u65E0\u6570\u636E"));
|
|
140
|
+
if (dataSource.series.length <= 0) {
|
|
141
|
+
return /*#__PURE__*/React.createElement(Empty, {
|
|
142
|
+
image: Empty.PRESENTED_IMAGE_SIMPLE,
|
|
143
|
+
description: "\u6682\u65E0\u6570\u636E"
|
|
144
|
+
});
|
|
136
145
|
} else {
|
|
137
|
-
return /*#__PURE__*/React.createElement(
|
|
146
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
147
|
+
className: "".concat(classPrefix, "-chart-box")
|
|
148
|
+
}, !!props.dataSource && dataUpdateTime(), /*#__PURE__*/React.createElement(BizChart, {
|
|
149
|
+
ref: ref,
|
|
138
150
|
key: chartType,
|
|
139
151
|
type: chartType,
|
|
140
|
-
data:
|
|
152
|
+
data: dataSource,
|
|
141
153
|
legendPosition: "bottom",
|
|
142
154
|
showList: showList,
|
|
143
155
|
colors: showColors,
|
|
144
156
|
xRotate: chartType === 'bar' && dataSource.series.length > 5 ? 40 : 0,
|
|
145
157
|
reverseXAxis: chartType === 'bar',
|
|
146
|
-
isCity: isCity
|
|
147
|
-
|
|
148
|
-
});
|
|
158
|
+
isCity: isCity
|
|
159
|
+
}));
|
|
149
160
|
}
|
|
150
161
|
};
|
|
151
162
|
switch (chartType) {
|
|
@@ -160,12 +171,13 @@ var EventChart = function EventChart(props) {
|
|
|
160
171
|
searchData: params,
|
|
161
172
|
showList: showList,
|
|
162
173
|
changeShow: onChangeShow,
|
|
163
|
-
changeShowByName: onChangeShowByName
|
|
174
|
+
changeShowByName: onChangeShowByName,
|
|
175
|
+
onSelectEvent: props === null || props === void 0 ? void 0 : props.onSelectEvent
|
|
164
176
|
});
|
|
165
177
|
default:
|
|
166
178
|
return /*#__PURE__*/React.createElement("div", null, "\u6682\u4E0D\u652F\u6301\u8BE5\u56FE\u8868\u7C7B\u578B");
|
|
167
179
|
}
|
|
168
|
-
};
|
|
180
|
+
});
|
|
169
181
|
EventChart.defaultProps = {
|
|
170
182
|
showList: []
|
|
171
183
|
};
|
|
@@ -8,15 +8,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
8
8
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
9
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
10
|
import { ajax, BizGlobalDataContext, BizLayout, BizTargetFromPanelContext } from '@zgfe/business-lib';
|
|
11
|
+
import { message } from 'antd';
|
|
11
12
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
12
13
|
import Request from 'umi-request';
|
|
13
14
|
import TopBar from '../../components/topBar';
|
|
14
15
|
import { EventContext } from '../../types';
|
|
15
16
|
import './styles/index.less';
|
|
16
17
|
import { Apis } from '../../constants';
|
|
17
|
-
import { judgeIsCity, judgeIsArea, getValue } from './utils';
|
|
18
18
|
import { ContentPanel, SearchPanel } from '../../components';
|
|
19
|
-
import { getDefaultShow } from '../../utils/formData';
|
|
19
|
+
import { getDefaultShow, getUserGroupsCompareData, getSortData, getChartDataEventAliasName } from '../../utils/formData';
|
|
20
20
|
import TopPanel from '../topPanel';
|
|
21
21
|
var timer = 0;
|
|
22
22
|
var ajaxFlag = true;
|
|
@@ -24,59 +24,43 @@ var CancelToken = Request.CancelToken;
|
|
|
24
24
|
var cancel;
|
|
25
25
|
var classPrefix = 'event-content';
|
|
26
26
|
var EventContent = function EventContent(props) {
|
|
27
|
-
var _useState = useState(props.value),
|
|
28
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
29
|
-
finalSearchData = _useState2[0],
|
|
30
|
-
setFinalSearchData = _useState2[1];
|
|
31
27
|
var _useContext = useContext(BizGlobalDataContext),
|
|
32
28
|
currentApp = _useContext.currentApp;
|
|
33
|
-
var _useState3 = useState(),
|
|
34
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
35
|
-
eventData = _useState4[0],
|
|
36
|
-
setEventData = _useState4[1];
|
|
37
|
-
var _useState5 = useState(props.show || []),
|
|
38
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
39
|
-
showList = _useState6[0],
|
|
40
|
-
setShowList = _useState6[1];
|
|
41
|
-
var _useState7 = useState(true),
|
|
42
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
43
|
-
loading = _useState8[0],
|
|
44
|
-
setLoading = _useState8[1];
|
|
45
|
-
var _useState9 = useState(false),
|
|
46
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
47
|
-
enableSelectChart = _useState10[0],
|
|
48
|
-
setEnableSelectChart = _useState10[1];
|
|
49
|
-
var _useState11 = useState(false),
|
|
50
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
51
|
-
isCity = _useState12[0],
|
|
52
|
-
setIsCity = _useState12[1];
|
|
53
|
-
var _useState13 = useState(-1),
|
|
54
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
55
|
-
eventId = _useState14[0],
|
|
56
|
-
setEventId = _useState14[1];
|
|
57
29
|
var _useContext2 = useContext(EventContext),
|
|
58
30
|
searchData = _useContext2.searchData,
|
|
59
31
|
setSearchData = _useContext2.setSearchData,
|
|
32
|
+
finalSearchData = _useContext2.finalSearchData,
|
|
33
|
+
setFinalSearchData = _useContext2.setFinalSearchData,
|
|
60
34
|
eventGroupList = _useContext2.eventGroupList,
|
|
61
|
-
|
|
62
|
-
|
|
35
|
+
loading = _useContext2.loading,
|
|
36
|
+
setLoading = _useContext2.setLoading,
|
|
37
|
+
afterEditTarget = _useContext2.afterEditTarget,
|
|
38
|
+
onChangeUrlParam = _useContext2.onChangeUrlParam;
|
|
39
|
+
var _useState = useState(),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
eventData = _useState2[0],
|
|
42
|
+
setEventData = _useState2[1];
|
|
43
|
+
var _useState3 = useState(props.show || []),
|
|
44
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
+
showList = _useState4[0],
|
|
46
|
+
setShowList = _useState4[1];
|
|
47
|
+
var _useState5 = useState(false),
|
|
48
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
49
|
+
enableSelectChart = _useState6[0],
|
|
50
|
+
setEnableSelectChart = _useState6[1];
|
|
51
|
+
var _useState7 = useState(false),
|
|
52
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
53
|
+
isCity = _useState8[0],
|
|
54
|
+
setIsCity = _useState8[1];
|
|
55
|
+
var _useState9 = useState(props.elementId),
|
|
56
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
57
|
+
eventId = _useState10[0],
|
|
58
|
+
setEventId = _useState10[1];
|
|
63
59
|
var _useContext3 = useContext(BizTargetFromPanelContext),
|
|
64
60
|
handleSearch = _useContext3.handleSearch;
|
|
65
61
|
var collapseRef = useRef();
|
|
62
|
+
var chartRef = useRef();
|
|
66
63
|
useEffect(function () {
|
|
67
|
-
if (props.defaultValue) {
|
|
68
|
-
setEventId(props.defaultValue.id);
|
|
69
|
-
}
|
|
70
|
-
}, [props.defaultValue]);
|
|
71
|
-
useEffect(function () {
|
|
72
|
-
if (searchData && searchData.dimension) {
|
|
73
|
-
var _getValue;
|
|
74
|
-
var _attrName = (_getValue = getValue(searchData.dimension, eventGroupList, eventEnvList, userPropList)) === null || _getValue === void 0 ? void 0 : _getValue.name;
|
|
75
|
-
if (_attrName) {
|
|
76
|
-
setEnableSelectChart(judgeIsArea(_attrName));
|
|
77
|
-
setIsCity(judgeIsCity(_attrName));
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
64
|
if (timer) clearTimeout(timer);
|
|
81
65
|
var flag = true;
|
|
82
66
|
timer = setTimeout(function () {
|
|
@@ -93,6 +77,9 @@ var EventContent = function EventContent(props) {
|
|
|
93
77
|
handleSearch && handleSearch(loading);
|
|
94
78
|
}, [loading]);
|
|
95
79
|
var fetchRequest = function fetchRequest(flag) {
|
|
80
|
+
if (JSON.stringify(searchData) === JSON.stringify(finalSearchData)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
96
83
|
if (flag !== undefined) ajaxFlag = flag;
|
|
97
84
|
if (!ajaxFlag) return;
|
|
98
85
|
setLoading(true);
|
|
@@ -100,7 +87,6 @@ var EventContent = function EventContent(props) {
|
|
|
100
87
|
if (typeof cancel === 'function') {
|
|
101
88
|
cancel();
|
|
102
89
|
}
|
|
103
|
-
props.onChange && props.onChange(searchData);
|
|
104
90
|
ajax(Apis.dataList, {
|
|
105
91
|
method: 'post',
|
|
106
92
|
data: _objectSpread({
|
|
@@ -116,14 +102,21 @@ var EventContent = function EventContent(props) {
|
|
|
116
102
|
return;
|
|
117
103
|
}
|
|
118
104
|
var result = res.data;
|
|
119
|
-
|
|
120
|
-
|
|
105
|
+
var _data = searchData.dimension ? result : getChartDataEventAliasName(result, eventGroupList);
|
|
106
|
+
setShowList(_data ? getDefaultShow(_data) : []);
|
|
107
|
+
if (['bar', 'pie', 'map'].indexOf(searchData.chartType) !== -1) {
|
|
108
|
+
_data = getSortData(_data);
|
|
109
|
+
}
|
|
110
|
+
if (searchData.userGroup.length > 1) {
|
|
111
|
+
setEventData(getUserGroupsCompareData(_data));
|
|
112
|
+
} else {
|
|
113
|
+
setEventData(_data);
|
|
114
|
+
}
|
|
121
115
|
setFinalSearchData(_objectSpread({}, searchData));
|
|
116
|
+
onChangeUrlParam(searchData);
|
|
122
117
|
setTimeout(function () {
|
|
123
118
|
setLoading(false);
|
|
124
119
|
}, 0);
|
|
125
|
-
}).catch(function () {
|
|
126
|
-
setLoading(false);
|
|
127
120
|
});
|
|
128
121
|
};
|
|
129
122
|
var onChangeContent = function onChangeContent(data) {
|
|
@@ -147,17 +140,35 @@ var EventContent = function EventContent(props) {
|
|
|
147
140
|
ajaxFlag = flag;
|
|
148
141
|
data.id ? setEventId(data.id) : setEventId(-1);
|
|
149
142
|
setSearchData(function (_searchData) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
chartType: _searchData.chartType
|
|
143
|
+
var _data = _objectSpread(_objectSpread({}, _searchData), {}, {
|
|
144
|
+
dimension: data.dimension,
|
|
145
|
+
filters: data.filters
|
|
154
146
|
}, data);
|
|
147
|
+
return _objectSpread({}, _data);
|
|
155
148
|
});
|
|
156
149
|
};
|
|
150
|
+
var onClickGenerateReport = function onClickGenerateReport() {
|
|
151
|
+
if (!chartRef.current) {
|
|
152
|
+
message.warning('未选择事件或查询失败!');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
var url = chartRef.current.instance.getDataURL();
|
|
156
|
+
var params = {
|
|
157
|
+
image: url,
|
|
158
|
+
context: {
|
|
159
|
+
api: '/web/sdk/v2/event/eventAnalytics',
|
|
160
|
+
queryParam: searchData
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
if (afterEditTarget) afterEditTarget('report', params);
|
|
164
|
+
};
|
|
157
165
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TopBar, {
|
|
166
|
+
eventData: eventData,
|
|
158
167
|
searchData: searchData,
|
|
159
168
|
platformChange: platformChange,
|
|
160
|
-
|
|
169
|
+
enableSelectChart: enableSelectChart,
|
|
170
|
+
showList: showList,
|
|
171
|
+
onClickGenerateReport: onClickGenerateReport
|
|
161
172
|
}), /*#__PURE__*/React.createElement(BizLayout, {
|
|
162
173
|
showTitle: false,
|
|
163
174
|
hasCollapse: true,
|
|
@@ -165,8 +176,10 @@ var EventContent = function EventContent(props) {
|
|
|
165
176
|
topPanel: /*#__PURE__*/React.createElement(TopPanel, {
|
|
166
177
|
ref: collapseRef,
|
|
167
178
|
onChange: onChangeSearch,
|
|
168
|
-
|
|
179
|
+
value: searchData,
|
|
169
180
|
ajaxFlag: ajaxFlag,
|
|
181
|
+
setIsCity: setIsCity,
|
|
182
|
+
setEnableSelectChart: setEnableSelectChart,
|
|
170
183
|
finalSearchData: finalSearchData,
|
|
171
184
|
fetchRequest: fetchRequest
|
|
172
185
|
})
|
|
@@ -175,13 +188,15 @@ var EventContent = function EventContent(props) {
|
|
|
175
188
|
}, /*#__PURE__*/React.createElement(SearchPanel, {
|
|
176
189
|
chartType: searchData === null || searchData === void 0 ? void 0 : searchData.chartType,
|
|
177
190
|
time: searchData === null || searchData === void 0 ? void 0 : searchData.time,
|
|
191
|
+
setIsCity: setIsCity,
|
|
192
|
+
setEnableSelectChart: setEnableSelectChart,
|
|
178
193
|
analysisAttr: searchData === null || searchData === void 0 ? void 0 : searchData.analysisAttr,
|
|
179
194
|
analysisIndex: searchData === null || searchData === void 0 ? void 0 : searchData.analysisIndex,
|
|
180
195
|
eventId: eventId,
|
|
181
196
|
enableSelectChart: enableSelectChart,
|
|
182
197
|
onChange: onChangeContent
|
|
183
198
|
}), /*#__PURE__*/React.createElement(ContentPanel, {
|
|
184
|
-
|
|
199
|
+
ref: chartRef,
|
|
185
200
|
isCity: isCity,
|
|
186
201
|
eventData: eventData,
|
|
187
202
|
searchData: finalSearchData,
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { SearchValue } from '../../types';
|
|
2
2
|
export declare namespace EventContentProps {
|
|
3
3
|
interface Props {
|
|
4
|
-
|
|
4
|
+
elementId: number | undefined;
|
|
5
5
|
value: SearchValue;
|
|
6
6
|
show?: string[];
|
|
7
7
|
onSearching?: (flag: boolean) => void;
|
|
8
|
-
onChange?: (data: SearchValue) => void;
|
|
9
8
|
initSearch?: () => void;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { AttributeSelect } from '@zgfe/business-lib';
|
|
1
|
+
import { AttributeSelect, AttrConditionTypes } from '@zgfe/business-lib';
|
|
2
2
|
import { bizAttributeSelectorValueProp } from '../../types';
|
|
3
3
|
import { EventGroup, UserProp, EnvProp } from '@zgfe/business-lib/es/attributeSelector/types';
|
|
4
|
+
export declare const judgeFilterValue: (data: AttrConditionTypes.GroupValue | undefined, count: number) => boolean;
|
|
4
5
|
export declare const judgeIsCity: (name: string | undefined) => boolean;
|
|
5
6
|
export declare const judgeIsArea: (name: string | undefined) => boolean;
|
|
6
7
|
export declare const getValue: (param: bizAttributeSelectorValueProp, eventGroupList: EventGroup[] | undefined, eventEnvList: EnvProp[] | undefined, userPropList: UserProp[] | undefined) => AttributeSelect.Value | undefined;
|
|
7
8
|
export declare const getNumberPanelData: (data: any) => Promise<unknown>;
|
|
9
|
+
export declare const normalOptions: {
|
|
10
|
+
label: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}[];
|
|
@@ -3,6 +3,21 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
3
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
4
|
import { ajax } from '@zgfe/business-lib';
|
|
5
5
|
import { Apis } from '../../constants';
|
|
6
|
+
export var judgeFilterValue = function judgeFilterValue(data, count) {
|
|
7
|
+
var flag = true;
|
|
8
|
+
if (data === undefined) {
|
|
9
|
+
if (count > 0) flag = false;
|
|
10
|
+
} else {
|
|
11
|
+
if (data.conditions.length <= 0 || data.conditions.length !== count) {
|
|
12
|
+
flag = false;
|
|
13
|
+
}
|
|
14
|
+
data.conditions.map(function (item) {
|
|
15
|
+
var _item$values;
|
|
16
|
+
if (item.values && (((_item$values = item.values) === null || _item$values === void 0 ? void 0 : _item$values.length) <= 0 || item.values[0] === '')) flag = false;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return flag;
|
|
20
|
+
};
|
|
6
21
|
export var judgeIsCity = function judgeIsCity(name) {
|
|
7
22
|
var areaData = ['current_city', 'city'];
|
|
8
23
|
return name && areaData.indexOf(name) !== -1 ? true : false;
|
|
@@ -13,7 +28,7 @@ export var judgeIsArea = function judgeIsArea(name) {
|
|
|
13
28
|
};
|
|
14
29
|
export var getValue = function getValue(param, eventGroupList, eventEnvList, userPropList) {
|
|
15
30
|
var res = undefined;
|
|
16
|
-
var key =
|
|
31
|
+
var key = "".concat(param.propCategory, "-").concat(param.value);
|
|
17
32
|
if ((param === null || param === void 0 ? void 0 : param.propCategory) === 'envProp') {
|
|
18
33
|
eventEnvList === null || eventEnvList === void 0 ? void 0 : eventEnvList.forEach(function (attr) {
|
|
19
34
|
if (attr.key === key) res = attr;
|
|
@@ -31,7 +46,6 @@ export var getValue = function getValue(param, eventGroupList, eventEnvList, use
|
|
|
31
46
|
if (attr.key === key) res = attr;
|
|
32
47
|
});
|
|
33
48
|
}
|
|
34
|
-
console.log('获取当前属性的全部数据', res);
|
|
35
49
|
return res;
|
|
36
50
|
};
|
|
37
51
|
export var getNumberPanelData = function getNumberPanelData(data) {
|
|
@@ -45,4 +59,17 @@ export var getNumberPanelData = function getNumberPanelData(data) {
|
|
|
45
59
|
reject(err);
|
|
46
60
|
});
|
|
47
61
|
});
|
|
48
|
-
};
|
|
62
|
+
};
|
|
63
|
+
export var normalOptions = [{
|
|
64
|
+
label: '人数',
|
|
65
|
+
value: 'number'
|
|
66
|
+
}, {
|
|
67
|
+
label: '次数',
|
|
68
|
+
value: 'times'
|
|
69
|
+
}, {
|
|
70
|
+
label: '活跃比',
|
|
71
|
+
value: 'active_ratio'
|
|
72
|
+
}, {
|
|
73
|
+
label: '人均次数',
|
|
74
|
+
value: 'per'
|
|
75
|
+
}];
|