@zgfe/modules-attribution 1.0.1

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.
Files changed (107) hide show
  1. package/README.md +33 -0
  2. package/dist/esm/components/common/index.d.ts +6 -0
  3. package/dist/esm/components/common/index.js +21 -0
  4. package/dist/esm/components/common/styles/index.less +27 -0
  5. package/dist/esm/components/index.d.ts +6 -0
  6. package/dist/esm/components/index.js +6 -0
  7. package/dist/esm/components/option/index.d.ts +5 -0
  8. package/dist/esm/components/option/index.js +199 -0
  9. package/dist/esm/components/option/styles/index.less +17 -0
  10. package/dist/esm/components/option/types.d.ts +9 -0
  11. package/dist/esm/components/option/types.js +1 -0
  12. package/dist/esm/components/renderContent/index.d.ts +5 -0
  13. package/dist/esm/components/renderContent/index.js +92 -0
  14. package/dist/esm/components/renderContent/styles/index.less +21 -0
  15. package/dist/esm/components/renderContent/types.d.ts +15 -0
  16. package/dist/esm/components/renderContent/types.js +1 -0
  17. package/dist/esm/components/searchPanel/index.d.ts +5 -0
  18. package/dist/esm/components/searchPanel/index.js +122 -0
  19. package/dist/esm/components/searchPanel/styles/index.less +38 -0
  20. package/dist/esm/components/searchPanel/types.d.ts +10 -0
  21. package/dist/esm/components/searchPanel/types.js +1 -0
  22. package/dist/esm/components/showList/index.d.ts +10 -0
  23. package/dist/esm/components/showList/index.js +92 -0
  24. package/dist/esm/components/showList/listPanel.d.ts +9 -0
  25. package/dist/esm/components/showList/listPanel.js +118 -0
  26. package/dist/esm/components/showList/styles/index.less +75 -0
  27. package/dist/esm/components/showList/types.d.ts +9 -0
  28. package/dist/esm/components/showList/types.js +1 -0
  29. package/dist/esm/components/table/index.d.ts +5 -0
  30. package/dist/esm/components/table/index.js +194 -0
  31. package/dist/esm/components/table/styles/index.less +12 -0
  32. package/dist/esm/components/table/types.d.ts +11 -0
  33. package/dist/esm/components/table/types.js +1 -0
  34. package/dist/esm/components/title/index.d.ts +5 -0
  35. package/dist/esm/components/title/index.js +184 -0
  36. package/dist/esm/components/title/searchTitle.d.ts +7 -0
  37. package/dist/esm/components/title/searchTitle.js +47 -0
  38. package/dist/esm/components/title/styles/index.less +72 -0
  39. package/dist/esm/components/title/styles/search.less +27 -0
  40. package/dist/esm/components/title/types.d.ts +7 -0
  41. package/dist/esm/components/title/types.js +1 -0
  42. package/dist/esm/constants/apis.d.ts +9 -0
  43. package/dist/esm/constants/apis.js +9 -0
  44. package/dist/esm/constants/chart.d.ts +2 -0
  45. package/dist/esm/constants/chart.js +24 -0
  46. package/dist/esm/constants/color.d.ts +1 -0
  47. package/dist/esm/constants/color.js +1 -0
  48. package/dist/esm/constants/fields.d.ts +218 -0
  49. package/dist/esm/constants/fields.js +242 -0
  50. package/dist/esm/constants/index.d.ts +6 -0
  51. package/dist/esm/constants/index.js +6 -0
  52. package/dist/esm/constants/initData.d.ts +17 -0
  53. package/dist/esm/constants/initData.js +30 -0
  54. package/dist/esm/index.d.ts +2 -0
  55. package/dist/esm/index.js +2 -0
  56. package/dist/esm/modules/content/index.d.ts +5 -0
  57. package/dist/esm/modules/content/index.js +218 -0
  58. package/dist/esm/modules/content/styles/index.less +7 -0
  59. package/dist/esm/modules/content/types.d.ts +8 -0
  60. package/dist/esm/modules/content/types.js +2 -0
  61. package/dist/esm/modules/content/utiles.d.ts +12 -0
  62. package/dist/esm/modules/content/utiles.js +231 -0
  63. package/dist/esm/modules/home/demo/create.d.ts +3 -0
  64. package/dist/esm/modules/home/demo/create.js +54 -0
  65. package/dist/esm/modules/home/demo/edit.d.ts +3 -0
  66. package/dist/esm/modules/home/demo/edit.js +80 -0
  67. package/dist/esm/modules/home/demo/index.d.ts +4 -0
  68. package/dist/esm/modules/home/demo/index.js +52 -0
  69. package/dist/esm/modules/home/demo/scene.d.ts +3 -0
  70. package/dist/esm/modules/home/demo/scene.js +74 -0
  71. package/dist/esm/modules/home/demo/styles/index.less +33 -0
  72. package/dist/esm/modules/home/index.d.ts +5 -0
  73. package/dist/esm/modules/home/index.js +172 -0
  74. package/dist/esm/modules/home/styles/index.less +37 -0
  75. package/dist/esm/modules/home/types.d.ts +19 -0
  76. package/dist/esm/modules/home/types.js +2 -0
  77. package/dist/esm/modules/leftPanel/components/globalAttribute.d.ts +8 -0
  78. package/dist/esm/modules/leftPanel/components/globalAttribute.js +64 -0
  79. package/dist/esm/modules/leftPanel/components/panel.d.ts +4 -0
  80. package/dist/esm/modules/leftPanel/components/panel.js +87 -0
  81. package/dist/esm/modules/leftPanel/demo/index.d.ts +3 -0
  82. package/dist/esm/modules/leftPanel/demo/index.js +28 -0
  83. package/dist/esm/modules/leftPanel/index.d.ts +6 -0
  84. package/dist/esm/modules/leftPanel/index.js +285 -0
  85. package/dist/esm/modules/leftPanel/styles/index.less +55 -0
  86. package/dist/esm/modules/leftPanel/types.d.ts +27 -0
  87. package/dist/esm/modules/leftPanel/types.js +2 -0
  88. package/dist/esm/modules/leftPanel/utils.d.ts +5 -0
  89. package/dist/esm/modules/leftPanel/utils.js +262 -0
  90. package/dist/esm/style/image/noData.png +0 -0
  91. package/dist/esm/style/image/ring.svg +9 -0
  92. package/dist/esm/style/index.less +47 -0
  93. package/dist/esm/style/theme.d.ts +15 -0
  94. package/dist/esm/style/theme.js +16 -0
  95. package/dist/esm/types.d.ts +46 -0
  96. package/dist/esm/types.js +2 -0
  97. package/dist/esm/utils/ajaxConfig.d.ts +8 -0
  98. package/dist/esm/utils/ajaxConfig.js +47 -0
  99. package/dist/esm/utils/base64.d.ts +23 -0
  100. package/dist/esm/utils/base64.js +132 -0
  101. package/dist/esm/utils/formData.d.ts +18 -0
  102. package/dist/esm/utils/formData.js +485 -0
  103. package/dist/esm/utils/transfer.d.ts +65 -0
  104. package/dist/esm/utils/transfer.js +206 -0
  105. package/dist/esm/utils/util.d.ts +32 -0
  106. package/dist/esm/utils/util.js +177 -0
  107. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import './styles/index.less';
3
+ import { ResponseDataProps } from '../../types';
4
+ export declare const classPrefix = "mi-show";
5
+ declare const ShowList: React.FC<{
6
+ value?: string[];
7
+ options?: ResponseDataProps;
8
+ onChange?: (value: string[]) => void;
9
+ }>;
10
+ export default ShowList;
@@ -0,0 +1,92 @@
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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { Button, Dropdown } from 'antd';
8
+ import React, { useEffect, useState } from 'react';
9
+ import "./styles/index.less";
10
+ import { chartColors } from "../../constants/color";
11
+ import _ from 'lodash';
12
+ import { IconFont } from '@zgfe/business-lib';
13
+ import ListPanel from "./listPanel";
14
+ export var classPrefix = 'mi-show';
15
+ var ShowList = function ShowList(props) {
16
+ // 展示列表
17
+ var _useState = useState([]),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ nameList = _useState2[0],
20
+ setNameList = _useState2[1];
21
+ // 显示(选中)内容
22
+ var _useState3 = useState(props.value || []),
23
+ _useState4 = _slicedToArray(_useState3, 2),
24
+ showList = _useState4[0],
25
+ setShowList = _useState4[1];
26
+ useEffect(function () {
27
+ if (props.options) {
28
+ setNameList(revertNames(props.options));
29
+ } else {
30
+ setNameList([]);
31
+ }
32
+ setShowList(props.value || []);
33
+ }, [props.options]);
34
+
35
+ // 转换【属性1,属性2,...,,用户群,指标名称】 为父子结构
36
+ function revertNames(option) {
37
+ var data = _.cloneDeep(option);
38
+ if (!data.series) return [];
39
+ var result = [];
40
+ var count = 0;
41
+ var nameMap = [];
42
+ data.series.forEach(function (item) {
43
+ if (!item.names) return;
44
+ var len = item.names.length;
45
+ var name = item.names[len - 1];
46
+ var text = item.names.join(',');
47
+ var attrs = item.names.splice(0, len - 1);
48
+ var obj = {
49
+ id: Math.random(),
50
+ name: name,
51
+ text: name
52
+ };
53
+ if (attrs.length) {
54
+ obj.children = [{
55
+ id: Math.random(),
56
+ name: attrs.join(','),
57
+ text: text,
58
+ color: chartColors[count++ % 20]
59
+ }];
60
+ }
61
+ var index = nameMap.indexOf(name);
62
+ if (index > -1) {
63
+ if (obj.children && obj.children.length) {
64
+ var _result$index$childre;
65
+ (_result$index$childre = result[index].children) === null || _result$index$childre === void 0 ? void 0 : _result$index$childre.push(obj.children[0]);
66
+ }
67
+ } else {
68
+ nameMap.push(name);
69
+ result.push(obj);
70
+ }
71
+ });
72
+ return result;
73
+ }
74
+ return /*#__PURE__*/React.createElement("div", {
75
+ className: classPrefix
76
+ }, /*#__PURE__*/React.createElement(Dropdown, {
77
+ overlay: /*#__PURE__*/React.createElement(ListPanel, {
78
+ options: nameList,
79
+ value: showList,
80
+ onChange: props.onChange
81
+ }),
82
+ trigger: ['click'],
83
+ overlayClassName: "".concat(classPrefix, "-drop")
84
+ }, /*#__PURE__*/React.createElement(Button, {
85
+ className: "".concat(classPrefix, "-btn"),
86
+ icon: /*#__PURE__*/React.createElement(IconFont, {
87
+ className: "".concat(classPrefix, "-icon"),
88
+ type: "xianshi"
89
+ })
90
+ }, "\u663E\u793A\u8BBE\u7F6E")));
91
+ };
92
+ export default ShowList;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import '../styles/show.less';
3
+ import { SeriesNames } from './types';
4
+ declare const ListPanel: React.FC<{
5
+ value?: string[];
6
+ options?: SeriesNames[];
7
+ onChange?: (value: string[]) => void;
8
+ }>;
9
+ export default ListPanel;
@@ -0,0 +1,118 @@
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 = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) 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 { Checkbox, Collapse } from 'antd';
9
+ import { IconFont } from '@zgfe/business-lib';
10
+ import "../styles/show.less";
11
+ import _ from 'lodash';
12
+ import { classPrefix } from '.';
13
+ var Panel = Collapse.Panel;
14
+ var ListPanel = function ListPanel(props) {
15
+ // 所有的id,默认全部展开
16
+ var _useState = useState([]),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ allKeys = _useState2[0],
19
+ setAllKeys = _useState2[1];
20
+
21
+ // 要显示的列表
22
+ var _useState3 = useState(props.value || []),
23
+ _useState4 = _slicedToArray(_useState3, 2),
24
+ showNames = _useState4[0],
25
+ setShowNames = _useState4[1];
26
+
27
+ // 监听选项列表内容的改变
28
+ useEffect(function () {
29
+ if (props.options) {
30
+ var ids = [];
31
+ props.options.forEach(function (item) {
32
+ ids.push(item.id);
33
+ });
34
+ setAllKeys(ids);
35
+ }
36
+ setShowNames(props.value || []);
37
+ }, [props.options]);
38
+
39
+ // 选项选择
40
+ var _onClick = function onClick(item) {
41
+ var data = _.cloneDeep(showNames);
42
+ var index = data.indexOf(item.text);
43
+ if (index < 0) {
44
+ data.push(item.text);
45
+ } else {
46
+ data.splice(index, 1);
47
+ }
48
+ setShowNames(data);
49
+ if (props.onChange) props.onChange(data);
50
+ };
51
+
52
+ // 全选改变
53
+ var onChange = function onChange(e) {
54
+ var checked = e.target.checked;
55
+ if (!props.options) return;
56
+ var data = [];
57
+ if (checked) {
58
+ props.options.forEach(function (item) {
59
+ if (item.children) {
60
+ item.children.forEach(function (child) {
61
+ data.push(child.text);
62
+ });
63
+ }
64
+ });
65
+ }
66
+ setShowNames(data);
67
+ if (props.onChange) props.onChange(data);
68
+ };
69
+ if (!props.options || !props.options.length || !allKeys.length) {
70
+ return /*#__PURE__*/React.createElement("div", {
71
+ className: "".concat(classPrefix, "-no-data")
72
+ }, "\u6682\u65E0\u6570\u636E");
73
+ }
74
+ return /*#__PURE__*/React.createElement("div", {
75
+ className: "".concat(classPrefix, "-drop-list")
76
+ }, /*#__PURE__*/React.createElement("div", {
77
+ className: "".concat(classPrefix, "-check")
78
+ }, /*#__PURE__*/React.createElement(Checkbox, {
79
+ onChange: onChange
80
+ }, "\u5168\u9009")), /*#__PURE__*/React.createElement("div", {
81
+ className: "".concat(classPrefix, "-list")
82
+ }, /*#__PURE__*/React.createElement(Collapse, {
83
+ collapsible: "header",
84
+ defaultActiveKey: allKeys,
85
+ expandIcon: function expandIcon(_ref) {
86
+ var isActive = _ref.isActive;
87
+ return /*#__PURE__*/React.createElement(IconFont, {
88
+ className: !isActive ? "".concat(classPrefix, "-rotate") : '',
89
+ type: "xiangxia",
90
+ size: 16
91
+ });
92
+ },
93
+ ghost: true
94
+ }, props.options.map(function (item) {
95
+ return /*#__PURE__*/React.createElement(Panel, {
96
+ header: item.name,
97
+ key: item.id,
98
+ forceRender: true
99
+ }, item.children && item.children.map(function (child) {
100
+ return /*#__PURE__*/React.createElement("div", {
101
+ key: child.id,
102
+ className: "".concat(classPrefix, "-list-row").concat(showNames.indexOf(child.text) > -1 ? ' active' : ''),
103
+ onClick: function onClick() {
104
+ return _onClick(child);
105
+ }
106
+ }, /*#__PURE__*/React.createElement("div", {
107
+ className: "".concat(classPrefix, "-circle"),
108
+ style: {
109
+ backgroundColor: child.color
110
+ }
111
+ }), /*#__PURE__*/React.createElement("div", {
112
+ className: "".concat(classPrefix, "-text"),
113
+ title: item.name
114
+ }, child.name));
115
+ }));
116
+ }))));
117
+ };
118
+ export default ListPanel;
@@ -0,0 +1,75 @@
1
+ @import '~@zgfe/business-lib/es/assets/styles/inner.less';
2
+
3
+ .mi-show {
4
+ &-btn {
5
+ margin-right: @margin-xs;
6
+ }
7
+ &-drop.ant-dropdown {
8
+ .__select-panel();
9
+ width: 218px;
10
+ max-height: 420px;
11
+
12
+ .ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {
13
+ font-size: 16px;
14
+ }
15
+
16
+ .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
17
+ padding: 0 !important;
18
+ }
19
+
20
+ .ant-collapse > .ant-collapse-item > .ant-collapse-header {
21
+ padding: 12px @padding-xs @padding-xs !important;
22
+ }
23
+ }
24
+ &-no-data {
25
+ padding: @padding-xs;
26
+ }
27
+
28
+ &-rotate {
29
+ transform: rotate(-90deg);
30
+ transition: transform 0.24s;
31
+ }
32
+
33
+ &-list {
34
+ max-height: 380px;
35
+ overflow: auto;
36
+ }
37
+
38
+ &-list-row {
39
+ display: flex;
40
+ align-items: center;
41
+ padding: @padding-xs;
42
+ cursor: pointer;
43
+ opacity: 0.3;
44
+
45
+ &.active {
46
+ opacity: 1;
47
+ }
48
+ }
49
+
50
+ &-circle {
51
+ width: 10px;
52
+ height: 10px;
53
+ margin-right: 10px;
54
+ margin-left: 3px;
55
+ border-radius: 50%;
56
+ }
57
+
58
+ &-text {
59
+ width: calc(100% - 24px);
60
+ overflow: hidden;
61
+ color: @text-color-secondary;
62
+ white-space: nowrap;
63
+ text-overflow: ellipsis;
64
+ }
65
+
66
+ &-check {
67
+ height: 36px;
68
+ padding: @padding-xs;
69
+ border-bottom: 1px solid #e8efff;
70
+ }
71
+
72
+ &-icon {
73
+ margin-right: @margin-xss;
74
+ }
75
+ }
@@ -0,0 +1,9 @@
1
+ export interface Option {
2
+ id: number;
3
+ name: string;
4
+ text: string;
5
+ color?: string;
6
+ }
7
+ export interface SeriesNames extends Option {
8
+ children?: Option[];
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { InsightTableProps } from './types';
3
+ import './styles/index.less';
4
+ declare const InsightTable: React.FC<InsightTableProps>;
5
+ export default InsightTable;
@@ -0,0 +1,194 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ 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; }
3
+ 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; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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); }
10
+ 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; }
11
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import { BizGlobalDataContext, BizTable } from '@zgfe/business-lib';
14
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
15
+ import { chartColors, initEvent } from "../../constants";
16
+ import { fetchDrillData, formTableData, getColumns, mergeRow } from "../../utils/formData";
17
+ import "./styles/index.less";
18
+ import { AttributionContext } from "../../types";
19
+ import { BuiltinIndicators } from "../../constants/fields";
20
+ var classPrefix = 'mi-table';
21
+ var InsightTable = function InsightTable(props) {
22
+ var dataSource = props.dataSource,
23
+ searchData = props.searchData,
24
+ showList = props.showList;
25
+ // 表格数据
26
+ var _useState = useState([]),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ tableData = _useState2[0],
29
+ setTableData = _useState2[1];
30
+ var _useContext = useContext(BizGlobalDataContext),
31
+ currentApp = _useContext.currentApp,
32
+ _useContext$eventGrou = _useContext.eventGroupList,
33
+ eventGroupList = _useContext$eventGrou === void 0 ? [] : _useContext$eventGrou,
34
+ userPropList = _useContext.userPropList,
35
+ eventEnvList = _useContext.eventEnvList,
36
+ _useContext$userGroup = _useContext.userGroupList,
37
+ userGroupList = _useContext$userGroup === void 0 ? [] : _useContext$userGroup;
38
+ var _useContext2 = useContext(AttributionContext),
39
+ onUserDrill = _useContext2.onUserDrill,
40
+ _useContext2$defaultS = _useContext2.defaultSearch,
41
+ defaultSearch = _useContext2$defaultS === void 0 ? {} : _useContext2$defaultS,
42
+ panelName = _useContext2.panelName;
43
+
44
+ // 按属性排序后的数据(用于合并行)
45
+ var _useState3 = useState([]),
46
+ _useState4 = _slicedToArray(_useState3, 2),
47
+ sortTable = _useState4[0],
48
+ setSortTable = _useState4[1];
49
+ // 过滤后数据
50
+ var _useState5 = useState([]),
51
+ _useState6 = _slicedToArray(_useState5, 2),
52
+ searchTable = _useState6[0],
53
+ setSearchTable = _useState6[1];
54
+
55
+ // 初始化表格表头和内容
56
+ useEffect(function () {
57
+ var gLen = searchData !== null && searchData !== void 0 && searchData.globalDimensions ? searchData === null || searchData === void 0 ? void 0 : searchData.globalDimensions.length : 0;
58
+ var sortData = formTableData(dataSource, searchData.userGroup || [0], gLen, eventGroupList);
59
+ setSearchTable(sortData);
60
+ setSortTable(sortData);
61
+ setTableData(mergeRow(sortData.slice(0, 10), gLen));
62
+ }, []);
63
+ // 指标的位置
64
+ var targetIndex = useMemo(function () {
65
+ var gLen = searchData !== null && searchData !== void 0 && searchData.globalDimensions ? searchData === null || searchData === void 0 ? void 0 : searchData.globalDimensions.length : 0;
66
+ var uLen = !searchData.userGroup || searchData.userGroup.length === 1 && searchData.userGroup[0] === 0 ? 0 : 1;
67
+ return 1 + gLen + uLen;
68
+ }, [searchData]);
69
+ // 表格column
70
+ var columns = useMemo(function () {
71
+ var _searchData$userGroup = searchData.userGroup,
72
+ userGroup = _searchData$userGroup === void 0 ? [0] : _searchData$userGroup,
73
+ _searchData$globalDim = searchData.globalDimensions,
74
+ globalDimensions = _searchData$globalDim === void 0 ? [] : _searchData$globalDim;
75
+ var onTagClick = function onTagClick(record) {
76
+ if (!props.isOverview) return;
77
+ var eventData = initEvent;
78
+ var flag = false;
79
+ eventGroupList.forEach(function (group) {
80
+ group.eventList.forEach(function (event) {
81
+ if (event.alias === record.targetName || event.name === record.targetName) {
82
+ eventData = event;
83
+ flag = true;
84
+ }
85
+ });
86
+ });
87
+ if (!flag) {
88
+ var name = record.targetName.split('(')[0];
89
+ BuiltinIndicators.eventList.forEach(function (event) {
90
+ if (event.name === name) {
91
+ eventData = event;
92
+ }
93
+ });
94
+ }
95
+ var targets = [{
96
+ type: eventData.type || 'event',
97
+ eventGroupId: 0,
98
+ eventId: eventData.id,
99
+ eventName: eventData.name,
100
+ alias: eventData.alias || eventData.name,
101
+ analysisDimension: eventData.isBuiltIn ? {
102
+ analysisIndex: 'number'
103
+ } : searchData === null || searchData === void 0 ? void 0 : searchData.targets[0].analysisDimension,
104
+ isBuiltIn: eventData.isBuiltIn
105
+ }];
106
+ props.onChange(targets);
107
+ };
108
+ var onShowClick = function onShowClick(nameGroup) {
109
+ props.changeShowByName(nameGroup);
110
+ };
111
+ var onFilter = function onFilter(search) {
112
+ var data = sortTable.filter(function (item) {
113
+ return item.name.indexOf(search) > -1;
114
+ }).map(function (content, index) {
115
+ content.color = chartColors[index % 20];
116
+ return content;
117
+ });
118
+ setSearchTable(data);
119
+ setTableData(mergeRow(data.slice(0, 10), globalDimensions.length));
120
+ props.changeShow(data.slice(0, 10).map(function (item) {
121
+ return item.nameGroup;
122
+ }));
123
+ };
124
+ var onClickToDetail = function onClickToDetail(record, time, count) {
125
+ var params = fetchDrillData(record, time, searchData, userGroupList, eventGroupList);
126
+ onUserDrill(_objectSpread(_objectSpread({}, currentApp), {}, {
127
+ count: count,
128
+ params: _objectSpread({
129
+ appid: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
130
+ plat: (currentApp === null || currentApp === void 0 ? void 0 : currentApp.platform) || 0,
131
+ module: 'insight'
132
+ }, params),
133
+ source: 'INSIGHT',
134
+ url: '/data/appEventBatch.jsp'
135
+ }), _objectSpread(_objectSpread({}, defaultSearch), {}, {
136
+ name: panelName,
137
+ data: searchData
138
+ }));
139
+ };
140
+ return getColumns(dataSource.x_axis || [], userGroup, searchData, eventGroupList, userPropList, eventEnvList, showList, onShowClick, onTagClick, onFilter, onClickToDetail);
141
+ }, [dataSource.x_axis, showList, sortTable, panelName]);
142
+
143
+ // 监听分页变化,如果页码发生变化则调用合并行方法
144
+ var onChangeTable = function onChangeTable(pagination) {
145
+ var _searchData$globalDim2;
146
+ var startNum = (pagination.current - 1) * pagination.pageSize;
147
+ var endNum = pagination.current * pagination.pageSize;
148
+ setTableData(mergeRow(searchTable.slice(startNum, endNum), (searchData === null || searchData === void 0 ? void 0 : (_searchData$globalDim2 = searchData.globalDimensions) === null || _searchData$globalDim2 === void 0 ? void 0 : _searchData$globalDim2.length) || 0));
149
+ };
150
+ // 子表格展开收缩监听
151
+ // 用于子表格属性行加入合并
152
+ var onExpand = function onExpand(data, record) {
153
+ setTableData(function (tData) {
154
+ tData.forEach(function (item, i) {
155
+ if (item.id === record.id) {
156
+ var _searchData$globalDim3;
157
+ var childLen = (data ? 1 : -1) * item.children.length || 0;
158
+ var changeSpan = function changeSpan(dimensionIndex, index, sourceData) {
159
+ if (sourceData[index]["dimension".concat(dimensionIndex, "RowSpan")] >= 1) {
160
+ sourceData[index]["dimension".concat(dimensionIndex, "RowSpan")] += childLen;
161
+ return;
162
+ } else {
163
+ if (index <= 0) return;
164
+ changeSpan(dimensionIndex, --index, sourceData);
165
+ }
166
+ };
167
+ if ((_searchData$globalDim3 = searchData.globalDimensions) !== null && _searchData$globalDim3 !== void 0 && _searchData$globalDim3.length) {
168
+ for (var j = 0; j < searchData.globalDimensions.length; j++) {
169
+ changeSpan(j, i, tData);
170
+ }
171
+ }
172
+ }
173
+ });
174
+ return tData;
175
+ });
176
+ };
177
+ return /*#__PURE__*/React.createElement("div", {
178
+ className: classPrefix
179
+ }, /*#__PURE__*/React.createElement(BizTable, {
180
+ total: searchTable.length,
181
+ columns: columns,
182
+ dataSource: tableData,
183
+ rowKey: "id",
184
+ scroll: {
185
+ x: true
186
+ },
187
+ expandIconColumnIndex: targetIndex,
188
+ expandable: {
189
+ onExpand: onExpand
190
+ },
191
+ onChange: onChangeTable
192
+ }));
193
+ };
194
+ export default InsightTable;
@@ -0,0 +1,12 @@
1
+ .mi-table {
2
+ margin-top: 15px;
3
+
4
+ .ant-table-cell-with-append {
5
+ padding-left: 20px;
6
+ .ant-table-row-expand-icon {
7
+ position: absolute;
8
+ left: 0;
9
+ margin-top: 0;
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ import { TargetConditionTypes } from '@zgfe/business-lib';
2
+ import { ResponseDataProps, SearchValue } from '../../types';
3
+ export interface InsightTableProps {
4
+ dataSource: ResponseDataProps;
5
+ searchData: SearchValue;
6
+ showList: string[];
7
+ isOverview?: boolean;
8
+ changeShowByName: (name: string) => void;
9
+ changeShow: (names: string[]) => void;
10
+ onChange: (targets: Array<TargetConditionTypes.Value>) => void;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './styles/index.less';
3
+ import { TitleProps } from './types';
4
+ declare const EditTitle: React.FC<TitleProps>;
5
+ export default EditTitle;