@zgfe/modules-attribution 1.0.1-alpha.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/README.md +35 -0
- package/es/components/common/index.d.ts +6 -0
- package/es/components/common/index.js +17 -0
- package/es/components/common/styles/index.less +27 -0
- package/es/components/index.d.ts +5 -0
- package/es/components/index.js +5 -0
- package/es/components/option/index.d.ts +5 -0
- package/es/components/option/index.js +134 -0
- package/es/components/option/styles/index.less +17 -0
- package/es/components/option/types.d.ts +8 -0
- package/es/components/option/types.js +1 -0
- package/es/components/searchTime/index.d.ts +5 -0
- package/es/components/searchTime/index.js +41 -0
- package/es/components/searchTime/styles/index.less +19 -0
- package/es/components/searchTime/types.d.ts +8 -0
- package/es/components/searchTime/types.js +1 -0
- package/es/components/tableList/index.d.ts +8 -0
- package/es/components/tableList/index.js +23 -0
- package/es/components/tableList/styles/index.less +7 -0
- package/es/components/title/index.d.ts +5 -0
- package/es/components/title/index.js +187 -0
- package/es/components/title/searchTitle.d.ts +7 -0
- package/es/components/title/searchTitle.js +47 -0
- package/es/components/title/styles/index.less +83 -0
- package/es/components/title/styles/search.less +27 -0
- package/es/components/title/types.d.ts +7 -0
- package/es/components/title/types.js +1 -0
- package/es/constants/apis.d.ts +10 -0
- package/es/constants/apis.js +10 -0
- package/es/constants/chart.d.ts +2 -0
- package/es/constants/chart.js +24 -0
- package/es/constants/color.d.ts +1 -0
- package/es/constants/color.js +1 -0
- package/es/constants/fields.d.ts +146 -0
- package/es/constants/fields.js +179 -0
- package/es/constants/index.d.ts +6 -0
- package/es/constants/index.js +6 -0
- package/es/constants/initData.d.ts +17 -0
- package/es/constants/initData.js +24 -0
- package/es/index.d.ts +3 -0
- package/es/index.js +2 -0
- package/es/modules/content/index.d.ts +5 -0
- package/es/modules/content/index.js +125 -0
- package/es/modules/content/styles/index.less +7 -0
- package/es/modules/content/types.d.ts +8 -0
- package/es/modules/content/types.js +1 -0
- package/es/modules/content/utils.d.ts +8 -0
- package/es/modules/content/utils.js +192 -0
- package/es/modules/home/demo/create.d.ts +2 -0
- package/es/modules/home/demo/create.js +53 -0
- package/es/modules/home/demo/edit.d.ts +2 -0
- package/es/modules/home/demo/edit.js +190 -0
- package/es/modules/home/demo/index.d.ts +3 -0
- package/es/modules/home/demo/index.js +51 -0
- package/es/modules/home/demo/scene.d.ts +2 -0
- package/es/modules/home/demo/scene.js +74 -0
- package/es/modules/home/demo/styles/index.less +33 -0
- package/es/modules/home/index.d.ts +5 -0
- package/es/modules/home/index.js +150 -0
- package/es/modules/home/styles/index.less +63 -0
- package/es/modules/home/types.d.ts +20 -0
- package/es/modules/home/types.js +1 -0
- package/es/modules/searchPanel/components/attributableEvents.d.ts +4 -0
- package/es/modules/searchPanel/components/attributableEvents.js +172 -0
- package/es/modules/searchPanel/components/globalAttribute.d.ts +8 -0
- package/es/modules/searchPanel/components/globalAttribute.js +58 -0
- package/es/modules/searchPanel/components/index.d.ts +4 -0
- package/es/modules/searchPanel/components/index.js +21 -0
- package/es/modules/searchPanel/components/targetEvent.d.ts +4 -0
- package/es/modules/searchPanel/components/targetEvent.js +149 -0
- package/es/modules/searchPanel/demo/index.d.ts +2 -0
- package/es/modules/searchPanel/demo/index.js +28 -0
- package/es/modules/searchPanel/index.d.ts +6 -0
- package/es/modules/searchPanel/index.js +316 -0
- package/es/modules/searchPanel/styles/index.less +202 -0
- package/es/modules/searchPanel/types.d.ts +31 -0
- package/es/modules/searchPanel/types.js +1 -0
- package/es/modules/searchPanel/utils.d.ts +5 -0
- package/es/modules/searchPanel/utils.js +139 -0
- package/es/style/image/noData.png +0 -0
- package/es/style/image/ring.svg +9 -0
- package/es/style/index.less +47 -0
- package/es/style/theme.d.ts +15 -0
- package/es/style/theme.js +14 -0
- package/es/types.d.ts +62 -0
- package/es/types.js +2 -0
- package/es/utils/ajaxConfig.d.ts +8 -0
- package/es/utils/ajaxConfig.js +40 -0
- package/es/utils/request.d.ts +3 -0
- package/es/utils/request.js +5 -0
- package/es/utils/transfer.d.ts +65 -0
- package/es/utils/transfer.js +173 -0
- package/es/utils/util.d.ts +32 -0
- package/es/utils/util.js +139 -0
- package/package.json +54 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
+
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; }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import React, { useEffect, useState } from 'react';
|
|
8
|
+
import { DemoWrapper, setGlobalConfig } from '@zgfe/business-lib';
|
|
9
|
+
import { AttributionHome } from '@zgfe/modules-attribution';
|
|
10
|
+
import { requestConfig } from '../../../utils/ajaxConfig';
|
|
11
|
+
import { Button } from 'antd';
|
|
12
|
+
var defaultValue = {
|
|
13
|
+
source: 'SCENE',
|
|
14
|
+
data: {
|
|
15
|
+
app_id: 177,
|
|
16
|
+
targets: [{
|
|
17
|
+
type: 'event',
|
|
18
|
+
alias: '事件概览',
|
|
19
|
+
eventId: -100,
|
|
20
|
+
eventName: '事件概览',
|
|
21
|
+
eventGroupId: 0,
|
|
22
|
+
analysisDimension: {
|
|
23
|
+
analysisIndex: 'number'
|
|
24
|
+
}
|
|
25
|
+
}],
|
|
26
|
+
userGroup: [0],
|
|
27
|
+
time: {
|
|
28
|
+
unit: 'month',
|
|
29
|
+
relative: [3, 1],
|
|
30
|
+
begin: '2022-09-27',
|
|
31
|
+
end: '2022-12-27'
|
|
32
|
+
},
|
|
33
|
+
chartType: 'line'
|
|
34
|
+
},
|
|
35
|
+
chosen_data: []
|
|
36
|
+
};
|
|
37
|
+
export default (function () {
|
|
38
|
+
var _useState = useState(false),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
isDetail = _useState2[0],
|
|
41
|
+
setIsDetail = _useState2[1];
|
|
42
|
+
var _useState3 = useState(),
|
|
43
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
44
|
+
detailParams = _useState4[0],
|
|
45
|
+
setDetailParams = _useState4[1];
|
|
46
|
+
var _useState5 = useState(defaultValue),
|
|
47
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
48
|
+
searchParams = _useState6[0],
|
|
49
|
+
setSearchParams = _useState6[1];
|
|
50
|
+
useEffect(function () {
|
|
51
|
+
setGlobalConfig(requestConfig);
|
|
52
|
+
}, []);
|
|
53
|
+
var afterEditTarget = function afterEditTarget(type, data) {
|
|
54
|
+
console.log("".concat(type, "\u56DE\u8C03"), data);
|
|
55
|
+
};
|
|
56
|
+
var onUserDrill = function onUserDrill(data, searchData) {
|
|
57
|
+
console.log('onUserDrill:', data, searchData);
|
|
58
|
+
setIsDetail(true);
|
|
59
|
+
setSearchParams(searchData);
|
|
60
|
+
setDetailParams(data);
|
|
61
|
+
};
|
|
62
|
+
return /*#__PURE__*/React.createElement(DemoWrapper, {
|
|
63
|
+
needMeta: true,
|
|
64
|
+
defaultApp: 3
|
|
65
|
+
}, isDetail ? /*#__PURE__*/React.createElement("div", null, JSON.stringify(detailParams), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(Button, {
|
|
66
|
+
onClick: function onClick() {
|
|
67
|
+
return setIsDetail(false);
|
|
68
|
+
}
|
|
69
|
+
}, "\u8FD4\u56DE")) : /*#__PURE__*/React.createElement(AttributionHome, {
|
|
70
|
+
defaultValue: searchParams,
|
|
71
|
+
afterEditTarget: afterEditTarget,
|
|
72
|
+
onUserDrill: onUserDrill
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*滚动条凹槽的颜色,还可以设置边框属性 */
|
|
2
|
+
::-webkit-scrollbar-track-piece {
|
|
3
|
+
background-color: #fff;
|
|
4
|
+
-webkit-border-radius: 10px;
|
|
5
|
+
-moz-border-radius: 10px;
|
|
6
|
+
border-radius: 10px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/*滚动条的宽度*/
|
|
10
|
+
::-webkit-scrollbar {
|
|
11
|
+
width: 10px;
|
|
12
|
+
height: 10px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/*滚动条的设置*/
|
|
16
|
+
::-webkit-scrollbar-thumb {
|
|
17
|
+
background-color: #cacdd4;
|
|
18
|
+
background-clip: padding-box;
|
|
19
|
+
border: 2px solid #fff;
|
|
20
|
+
-webkit-border-radius: 10px;
|
|
21
|
+
-moz-border-radius: 10px;
|
|
22
|
+
border-radius: 10px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/*滚动条鼠标移上去*/
|
|
26
|
+
::-webkit-scrollbar-thumb:hover {
|
|
27
|
+
// background-color: #bbb;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
::-webkit-scrollbar-track-piece {
|
|
31
|
+
width: 6px;
|
|
32
|
+
height: 6px;
|
|
33
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
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
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
5
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
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
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
|
+
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
11
|
+
import { Spin } from 'antd';
|
|
12
|
+
import { BizGlobalDataContext } from '@zgfe/business-lib';
|
|
13
|
+
import './styles/index.less';
|
|
14
|
+
import { AttributableContext } from '../../types';
|
|
15
|
+
import EditTitle from '../../components/title';
|
|
16
|
+
import { getInitDate, initTarget } from '../../constants/initData';
|
|
17
|
+
import { transferEventSearchData } from '../../utils/transfer';
|
|
18
|
+
import InsightContent from '../content';
|
|
19
|
+
var classPrefix = 'attribution-container';
|
|
20
|
+
var AttributionHome = function AttributionHome(props) {
|
|
21
|
+
var _props$defaultValue;
|
|
22
|
+
var _useContext = useContext(BizGlobalDataContext),
|
|
23
|
+
userPropList = _useContext.userPropList,
|
|
24
|
+
eventGroupList = _useContext.eventGroupList,
|
|
25
|
+
eventEnvList = _useContext.eventEnvList;
|
|
26
|
+
var _useState = useState(),
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
searchData = _useState2[0],
|
|
29
|
+
setSearchData = _useState2[1];
|
|
30
|
+
var _useState3 = useState(false),
|
|
31
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
32
|
+
loading = _useState4[0],
|
|
33
|
+
setLoading = _useState4[1];
|
|
34
|
+
var _useState5 = useState(true),
|
|
35
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
36
|
+
pageLoading = _useState6[0],
|
|
37
|
+
setPageLoading = _useState6[1];
|
|
38
|
+
var _useState7 = useState(),
|
|
39
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
40
|
+
title = _useState8[0],
|
|
41
|
+
setTitle = _useState8[1];
|
|
42
|
+
var _useState9 = useState(),
|
|
43
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
44
|
+
panelId = _useState10[0],
|
|
45
|
+
setPanelId = _useState10[1];
|
|
46
|
+
var _useState11 = useState(),
|
|
47
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
48
|
+
elementId = _useState12[0],
|
|
49
|
+
setElementId = _useState12[1];
|
|
50
|
+
var _useState13 = useState(false),
|
|
51
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
52
|
+
searching = _useState14[0],
|
|
53
|
+
setSearching = _useState14[1];
|
|
54
|
+
var _useState15 = useState(true),
|
|
55
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
56
|
+
buttonDisable = _useState16[0],
|
|
57
|
+
setButtonDisable = _useState16[1];
|
|
58
|
+
var insightRef = useRef(null);
|
|
59
|
+
useEffect(function () {
|
|
60
|
+
setPageLoading(true);
|
|
61
|
+
if (!props.defaultValue) {
|
|
62
|
+
initSearch();
|
|
63
|
+
} else {
|
|
64
|
+
setPanelId(props.defaultValue.panelId);
|
|
65
|
+
setElementId(props.defaultValue.id);
|
|
66
|
+
setTitle(props.defaultValue.name);
|
|
67
|
+
var initData = props.defaultValue.data;
|
|
68
|
+
if (!initData) {
|
|
69
|
+
initSearch();
|
|
70
|
+
} else {
|
|
71
|
+
if (initData.module && initData.module !== 'attribution') {
|
|
72
|
+
initData = transferEventSearchData(initData, userPropList, eventGroupList, eventEnvList);
|
|
73
|
+
}
|
|
74
|
+
if (!initData.userGroup || !initData.targets) {
|
|
75
|
+
setSearchData(function (data) {
|
|
76
|
+
return _objectSpread(_objectSpread({}, data), initData);
|
|
77
|
+
});
|
|
78
|
+
} else {
|
|
79
|
+
setSearchData(_objectSpread({}, initData));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
setTimeout(function () {
|
|
84
|
+
setPageLoading(false);
|
|
85
|
+
}, 0);
|
|
86
|
+
}, []);
|
|
87
|
+
var initSearch = function initSearch() {
|
|
88
|
+
setSearchData({
|
|
89
|
+
targetFilters: initTarget,
|
|
90
|
+
sourceFilters: initTarget,
|
|
91
|
+
time: getInitDate(props.includeToday)
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
var changeLoading = function changeLoading(flag) {
|
|
95
|
+
setLoading(flag);
|
|
96
|
+
};
|
|
97
|
+
var onSave = function onSave() {
|
|
98
|
+
if (insightRef) {
|
|
99
|
+
insightRef.current.savePanel();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
var onSaveAs = function onSaveAs() {
|
|
103
|
+
if (insightRef) {
|
|
104
|
+
insightRef.current.saveAsPanel();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
if (pageLoading) {
|
|
108
|
+
return /*#__PURE__*/React.createElement(Spin, null);
|
|
109
|
+
}
|
|
110
|
+
return /*#__PURE__*/React.createElement(Spin, {
|
|
111
|
+
spinning: loading,
|
|
112
|
+
wrapperClassName: classPrefix
|
|
113
|
+
}, /*#__PURE__*/React.createElement(AttributableContext.Provider, {
|
|
114
|
+
value: {
|
|
115
|
+
panelId: panelId,
|
|
116
|
+
elementId: elementId,
|
|
117
|
+
panelName: title,
|
|
118
|
+
searching: searching,
|
|
119
|
+
buttonDisable: buttonDisable,
|
|
120
|
+
setButtonDisable: setButtonDisable,
|
|
121
|
+
includeToday: props.includeToday,
|
|
122
|
+
defaultSearch: props.defaultValue,
|
|
123
|
+
enableAddScene: !props.defaultValue || props.defaultValue.source === 'INSIGHT',
|
|
124
|
+
enableGenerateReport: props.enableGenerateReport,
|
|
125
|
+
changeLoading: changeLoading,
|
|
126
|
+
afterEditTarget: props.afterEditTarget,
|
|
127
|
+
onUserDrill: props.onUserDrill
|
|
128
|
+
}
|
|
129
|
+
}, panelId && /*#__PURE__*/React.createElement(EditTitle, {
|
|
130
|
+
title: title,
|
|
131
|
+
type: (_props$defaultValue = props.defaultValue) === null || _props$defaultValue === void 0 ? void 0 : _props$defaultValue.panelType,
|
|
132
|
+
onSave: onSave,
|
|
133
|
+
onSaveAs: onSaveAs,
|
|
134
|
+
onEditTitle: setTitle
|
|
135
|
+
}), !panelId && /*#__PURE__*/React.createElement("div", {
|
|
136
|
+
className: "".concat(classPrefix, "-header-title")
|
|
137
|
+
}, "\u5F52\u56E0\u5206\u6790"), /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
className: "".concat(classPrefix, "-content ").concat(panelId ? classPrefix + '-content2' : '')
|
|
139
|
+
}, /*#__PURE__*/React.createElement(InsightContent, {
|
|
140
|
+
ref: insightRef,
|
|
141
|
+
value: searchData,
|
|
142
|
+
onSearching: function onSearching(val) {
|
|
143
|
+
return setSearching(val);
|
|
144
|
+
}
|
|
145
|
+
}))));
|
|
146
|
+
};
|
|
147
|
+
AttributionHome.defaultProps = {
|
|
148
|
+
includeToday: true
|
|
149
|
+
};
|
|
150
|
+
export default AttributionHome;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.attribution-container {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
background: #fff;
|
|
6
|
+
.ant-spin-container {
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
&-header-title {
|
|
11
|
+
height: 48px;
|
|
12
|
+
padding: 0px 24px;
|
|
13
|
+
color: #021429;
|
|
14
|
+
font-weight: 500;
|
|
15
|
+
font-size: 16px;
|
|
16
|
+
line-height: 48px;
|
|
17
|
+
border-bottom: 1px solid #f2f3f4;
|
|
18
|
+
}
|
|
19
|
+
&-content {
|
|
20
|
+
width: 100%;
|
|
21
|
+
height: 100%;
|
|
22
|
+
overflow: auto;
|
|
23
|
+
background: #fafafb;
|
|
24
|
+
border-top: 1px solid #eaeaea;
|
|
25
|
+
.attribution-content {
|
|
26
|
+
&-top-content-box {
|
|
27
|
+
margin: 16px 24px;
|
|
28
|
+
padding: 24px;
|
|
29
|
+
background: #fff;
|
|
30
|
+
}
|
|
31
|
+
&-bottom-content-box {
|
|
32
|
+
min-height: 382px;
|
|
33
|
+
padding: 24px;
|
|
34
|
+
background: #fff;
|
|
35
|
+
&-times {
|
|
36
|
+
display: flex;
|
|
37
|
+
justify-content: space-between;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&-content2 {
|
|
44
|
+
height: calc(100% - 64px);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.biz-event-select.border .biz-event-select-handle {
|
|
48
|
+
padding: 0;
|
|
49
|
+
border: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.biz-select-option:not(.biz-select-option-multiple),
|
|
53
|
+
.biz-attr-select-option {
|
|
54
|
+
&.active {
|
|
55
|
+
// background: @primary-color !important;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// 设置下拉框最大高度
|
|
60
|
+
.biz-select-overlay {
|
|
61
|
+
max-height: 300px;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SearchValue } from '../../types';
|
|
2
|
+
export declare namespace InsightProps {
|
|
3
|
+
interface Props {
|
|
4
|
+
defaultValue?: Value;
|
|
5
|
+
includeToday?: boolean;
|
|
6
|
+
enableGenerateReport?: boolean;
|
|
7
|
+
afterEditTarget?: (type: string, value?: any) => void;
|
|
8
|
+
onUserDrill: (data: any, searchData: SearchValue) => void;
|
|
9
|
+
}
|
|
10
|
+
interface Value {
|
|
11
|
+
panelId?: number;
|
|
12
|
+
panelType?: 'edit' | 'add';
|
|
13
|
+
source?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
id?: number;
|
|
16
|
+
data?: any;
|
|
17
|
+
chosen_data?: string[];
|
|
18
|
+
[props: string]: any;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
+
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; }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import React, { useEffect, useRef, useState, useContext } from 'react';
|
|
8
|
+
import { BizAttributeSelector, BizAttrConditionGroup, BizEventSelector, IconFont } from '@zgfe/business-lib';
|
|
9
|
+
import { AttributableContext } from '../../../types';
|
|
10
|
+
import _ from 'lodash';
|
|
11
|
+
import { Tooltip } from 'antd';
|
|
12
|
+
var AttributableEvents = function AttributableEvents(props) {
|
|
13
|
+
var value = props.value,
|
|
14
|
+
verify = props.verify,
|
|
15
|
+
setAttrSourceCount = props.setAttrSourceCount,
|
|
16
|
+
showOverview = props.showOverview,
|
|
17
|
+
onDelete = props.onDelete;
|
|
18
|
+
var _useContext = useContext(AttributableContext),
|
|
19
|
+
setButtonDisable = _useContext.setButtonDisable;
|
|
20
|
+
var _useState = useState(),
|
|
21
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
22
|
+
ReasonData = _useState2[0],
|
|
23
|
+
setReasonData = _useState2[1];
|
|
24
|
+
var _useState3 = useState(false),
|
|
25
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
26
|
+
attrSelectShow = _useState4[0],
|
|
27
|
+
setAttrSelectShow = _useState4[1];
|
|
28
|
+
var _useState5 = useState(),
|
|
29
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
30
|
+
filters = _useState6[0],
|
|
31
|
+
setFilters = _useState6[1];
|
|
32
|
+
var _useState7 = useState(0),
|
|
33
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
34
|
+
count = _useState8[0],
|
|
35
|
+
setCount = _useState8[1];
|
|
36
|
+
var _useState9 = useState(true),
|
|
37
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
38
|
+
isAdd = _useState10[0],
|
|
39
|
+
setIsAdd = _useState10[1];
|
|
40
|
+
var conditionRef = useRef(null);
|
|
41
|
+
var _useState11 = useState(-1),
|
|
42
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
43
|
+
eventId = _useState12[0],
|
|
44
|
+
setEventId = _useState12[1];
|
|
45
|
+
var _useState13 = useState(),
|
|
46
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
47
|
+
aloneAttr = _useState14[0],
|
|
48
|
+
setAloneAttr = _useState14[1];
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
if (value) {
|
|
51
|
+
var _value$filters;
|
|
52
|
+
setFilters(value.filters);
|
|
53
|
+
if ((_value$filters = value.filters) === null || _value$filters === void 0 ? void 0 : _value$filters.conditions) {
|
|
54
|
+
setCount(value.filters.conditions.length);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, []);
|
|
58
|
+
useEffect(function () {
|
|
59
|
+
console.log('判断提交按钮是否可点击-123', count);
|
|
60
|
+
setAttrSourceCount(count);
|
|
61
|
+
setTimeout(function () {
|
|
62
|
+
onChangeHandle(ReasonData, filters, aloneAttr);
|
|
63
|
+
}, 0);
|
|
64
|
+
}, [count]);
|
|
65
|
+
var onChangeFilters = function onChangeFilters(data) {
|
|
66
|
+
console.log('归因事件-2', data);
|
|
67
|
+
setFilters(data);
|
|
68
|
+
onChangeHandle(ReasonData, data, aloneAttr);
|
|
69
|
+
};
|
|
70
|
+
var onAdd = function onAdd() {
|
|
71
|
+
if (ReasonData !== undefined) {
|
|
72
|
+
setIsAdd(true);
|
|
73
|
+
setTimeout(function () {
|
|
74
|
+
conditionRef.current.add();
|
|
75
|
+
}, 0);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var onChangeReason = function onChangeReason(reason) {
|
|
79
|
+
var _reason$event;
|
|
80
|
+
console.log('归因事件-1', reason);
|
|
81
|
+
setReasonData(reason);
|
|
82
|
+
setEventId(reason === null || reason === void 0 ? void 0 : (_reason$event = reason.event) === null || _reason$event === void 0 ? void 0 : _reason$event.id);
|
|
83
|
+
var filterData = _.cloneDeep(filters);
|
|
84
|
+
onChangeHandle(reason, filterData, aloneAttr);
|
|
85
|
+
};
|
|
86
|
+
var onChangeAttr = function onChangeAttr(attr) {
|
|
87
|
+
console.log('归因事件-3', attr);
|
|
88
|
+
var _aloneAttr = attr === undefined ? undefined : {
|
|
89
|
+
propCategory: attr.propCategory,
|
|
90
|
+
type: attr.type,
|
|
91
|
+
attrId: attr.id,
|
|
92
|
+
attrName: attr.name,
|
|
93
|
+
category: attr.category
|
|
94
|
+
};
|
|
95
|
+
setAloneAttr(_aloneAttr);
|
|
96
|
+
onChangeHandle(ReasonData, filters, _aloneAttr);
|
|
97
|
+
};
|
|
98
|
+
var onChangeHandle = function onChangeHandle(reason, filterData, aloneAttr) {
|
|
99
|
+
if (props.onChange) {
|
|
100
|
+
var _reason$event2;
|
|
101
|
+
if (!reason || !reason.event || !((_reason$event2 = reason.event) === null || _reason$event2 === void 0 ? void 0 : _reason$event2.id)) return;
|
|
102
|
+
var event = reason.event;
|
|
103
|
+
var data = {
|
|
104
|
+
eventId: event === null || event === void 0 ? void 0 : event.id,
|
|
105
|
+
eventName: (event === null || event === void 0 ? void 0 : event.alias) || (event === null || event === void 0 ? void 0 : event.name),
|
|
106
|
+
filters: filterData,
|
|
107
|
+
propfilters: aloneAttr
|
|
108
|
+
};
|
|
109
|
+
console.log('待归因事件-变动-组装数据', data);
|
|
110
|
+
props.onChange(data);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: "attributable-events-box"
|
|
115
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
116
|
+
className: "select-and-attr"
|
|
117
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
118
|
+
className: "".concat(verify && ReasonData === undefined ? 'verify-error' : '')
|
|
119
|
+
}, /*#__PURE__*/React.createElement(BizEventSelector, {
|
|
120
|
+
showBuiltInTarget: true,
|
|
121
|
+
showAllEvent: showOverview,
|
|
122
|
+
popupContainer: false,
|
|
123
|
+
defaultSelectAble: false,
|
|
124
|
+
onChange: onChangeReason
|
|
125
|
+
})), attrSelectShow && /*#__PURE__*/React.createElement(BizAttributeSelector, {
|
|
126
|
+
enableEventProp: true,
|
|
127
|
+
enableUserProp: true,
|
|
128
|
+
enableEnvProp: true,
|
|
129
|
+
eventIdList: [eventId],
|
|
130
|
+
enableDelete: true,
|
|
131
|
+
onChange: onChangeAttr,
|
|
132
|
+
onDelete: function onDelete() {
|
|
133
|
+
setAttrSelectShow(false);
|
|
134
|
+
onChangeAttr(undefined);
|
|
135
|
+
}
|
|
136
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
137
|
+
className: "button-box"
|
|
138
|
+
}, /*#__PURE__*/React.createElement(IconFont, {
|
|
139
|
+
type: "qingchu",
|
|
140
|
+
onClick: onDelete
|
|
141
|
+
}), /*#__PURE__*/React.createElement(Tooltip, {
|
|
142
|
+
placement: "top",
|
|
143
|
+
title: '添加属性细分'
|
|
144
|
+
}, /*#__PURE__*/React.createElement(IconFont, {
|
|
145
|
+
className: "".concat(attrSelectShow || ReasonData === undefined ? 'disable' : ''),
|
|
146
|
+
type: "tianjia2",
|
|
147
|
+
onClick: function onClick() {
|
|
148
|
+
if (ReasonData !== undefined) {
|
|
149
|
+
setAttrSelectShow(true);
|
|
150
|
+
setButtonDisable(true);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
})), /*#__PURE__*/React.createElement(Tooltip, {
|
|
154
|
+
placement: "top",
|
|
155
|
+
title: '添加属性筛选'
|
|
156
|
+
}, /*#__PURE__*/React.createElement(IconFont, {
|
|
157
|
+
className: "".concat(count >= 10 || ReasonData === undefined ? 'disable' : ''),
|
|
158
|
+
type: "shaixuan",
|
|
159
|
+
onClick: function onClick() {
|
|
160
|
+
return onAdd();
|
|
161
|
+
}
|
|
162
|
+
})))), /*#__PURE__*/React.createElement("div", null, (filters || isAdd) && /*#__PURE__*/React.createElement(BizAttrConditionGroup, {
|
|
163
|
+
ref: conditionRef,
|
|
164
|
+
value: filters,
|
|
165
|
+
enableEventProp: true,
|
|
166
|
+
enableDelete: true,
|
|
167
|
+
eventIdList: [eventId],
|
|
168
|
+
onChange: onChangeFilters,
|
|
169
|
+
onConditionsCount: setCount
|
|
170
|
+
})));
|
|
171
|
+
};
|
|
172
|
+
export default AttributableEvents;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
+
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; }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { BizAttrConditionGroup, IconFont } from '@zgfe/business-lib';
|
|
8
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
9
|
+
var GlobalAttribute = function GlobalAttribute(props) {
|
|
10
|
+
var classPrefix = 'mi-left-form';
|
|
11
|
+
var max = props.max,
|
|
12
|
+
onChange = props.onChange;
|
|
13
|
+
var conditionRef = useRef(null);
|
|
14
|
+
var _useState = useState(0),
|
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
+
count = _useState2[0],
|
|
17
|
+
setCount = _useState2[1];
|
|
18
|
+
var _useState3 = useState(true),
|
|
19
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
+
init = _useState4[0],
|
|
21
|
+
setInit = _useState4[1];
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
if (props.value) {
|
|
24
|
+
setCount(props.value.conditions.length || 0);
|
|
25
|
+
}
|
|
26
|
+
setInit(false);
|
|
27
|
+
}, []);
|
|
28
|
+
useEffect(function () {
|
|
29
|
+
console.log('eventIdList', props.eventIdList);
|
|
30
|
+
if (init || props.eventIdList && props.eventIdList[0] === -100) return;
|
|
31
|
+
if (!props.value) {
|
|
32
|
+
conditionRef.current.setValue(props.value);
|
|
33
|
+
}
|
|
34
|
+
}, [props.eventIdList]);
|
|
35
|
+
var onAdd = function onAdd() {
|
|
36
|
+
if (props.eventIdList[0] === -100) return;
|
|
37
|
+
conditionRef.current.add();
|
|
38
|
+
};
|
|
39
|
+
return /*#__PURE__*/React.createElement("div", null, props.eventIdList && props.eventIdList[0] === -100 ? '' : /*#__PURE__*/React.createElement(BizAttrConditionGroup, {
|
|
40
|
+
ref: conditionRef,
|
|
41
|
+
value: props.value,
|
|
42
|
+
enableEventProp: true,
|
|
43
|
+
enableDelete: true,
|
|
44
|
+
eventIdList: props.eventIdList,
|
|
45
|
+
onChange: onChange,
|
|
46
|
+
onConditionsCount: setCount
|
|
47
|
+
}), count < max && /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
className: "".concat(classPrefix, "-add ").concat(props.eventIdList[0] === -100 ? 'disabled' : ''),
|
|
49
|
+
onClick: onAdd
|
|
50
|
+
}, /*#__PURE__*/React.createElement(IconFont, {
|
|
51
|
+
className: "".concat(classPrefix, "-add-icon"),
|
|
52
|
+
type: "tianjia1"
|
|
53
|
+
}), "\u6DFB\u52A0\u5C5E\u6027"));
|
|
54
|
+
};
|
|
55
|
+
GlobalAttribute.defaultProps = {
|
|
56
|
+
max: 5
|
|
57
|
+
};
|
|
58
|
+
export default GlobalAttribute;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
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
|
+
import React from 'react';
|
|
5
|
+
import AttributableEvents from './attributableEvents';
|
|
6
|
+
import TargetEvent from './targetEvent';
|
|
7
|
+
var SearchContent = function SearchContent(props) {
|
|
8
|
+
var type = props.type;
|
|
9
|
+
if (type === 'targetFilters') {
|
|
10
|
+
return /*#__PURE__*/React.createElement(TargetEvent, _objectSpread({}, props));
|
|
11
|
+
} else if (type === 'sourceFilters') {
|
|
12
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
13
|
+
className: "search-panel-item"
|
|
14
|
+
}, /*#__PURE__*/React.createElement(AttributableEvents, _objectSpread({}, props)));
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/React.createElement("div", null, "\u6682\u65E0\u76F8\u5173\u7EC4\u4EF6");
|
|
17
|
+
};
|
|
18
|
+
SearchContent.defaultProps = {
|
|
19
|
+
eventIdList: []
|
|
20
|
+
};
|
|
21
|
+
export default SearchContent;
|