aldehyde 0.2.503 → 0.2.504

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 (113) hide show
  1. package/lib/controls/action/index.d.ts +3 -1
  2. package/lib/controls/action/index.d.ts.map +1 -1
  3. package/lib/controls/action/index.js +17 -1
  4. package/lib/controls/action/index.js.map +1 -1
  5. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  6. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  7. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  8. package/lib/lowcode-components/base-table/index.less +61 -61
  9. package/lib/lowcode-components/column-3d-chart/index.d.ts +1 -0
  10. package/lib/lowcode-components/column-3d-chart/index.d.ts.map +1 -1
  11. package/lib/lowcode-components/column-3d-chart/index.js +3 -1
  12. package/lib/lowcode-components/column-3d-chart/index.js.map +1 -1
  13. package/lib/lowcode-components/column-chart/index.d.ts +1 -0
  14. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  15. package/lib/lowcode-components/column-chart/index.js +3 -1
  16. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  17. package/lib/lowcode-components/data-number/index.less +10 -10
  18. package/lib/lowcode-components/date-time/index.less +4 -4
  19. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  20. package/lib/lowcode-components/line-bar-chart/index.d.ts +1 -0
  21. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  22. package/lib/lowcode-components/line-bar-chart/index.js +3 -1
  23. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  24. package/lib/lowcode-components/line-chart/index.d.ts +1 -0
  25. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  26. package/lib/lowcode-components/line-chart/index.js +3 -1
  27. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  28. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  29. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  30. package/lib/lowcode-components/lowcode-view/index.d.ts.map +1 -1
  31. package/lib/lowcode-components/lowcode-view/index.js +8 -0
  32. package/lib/lowcode-components/lowcode-view/index.js.map +1 -1
  33. package/lib/lowcode-components/text-scroller/index.less +28 -28
  34. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  35. package/lib/module/dtmpl-edit-page.js +7 -7
  36. package/lib/module/dtmpl-edit-page.js.map +1 -1
  37. package/lib/table/act-table.d.ts.map +1 -1
  38. package/lib/table/act-table.js +6 -6
  39. package/lib/table/act-table.js.map +1 -1
  40. package/lib/table/column/column-builder.d.ts +1 -0
  41. package/lib/table/column/column-builder.d.ts.map +1 -1
  42. package/lib/table/column/column-builder.js +25 -16
  43. package/lib/table/column/column-builder.js.map +1 -1
  44. package/lib/table/column/index.less +8 -8
  45. package/lib/table/report-table.d.ts.map +1 -1
  46. package/lib/table/report-table.js +3 -3
  47. package/lib/table/report-table.js.map +1 -1
  48. package/lib/tmpl/interface.d.ts +7 -0
  49. package/lib/tmpl/interface.d.ts.map +1 -1
  50. package/lib/tmpl/interface.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/aldehyde/controls/action/index.tsx +33 -2
  53. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  54. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +156 -156
  55. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  56. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  57. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  58. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  59. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  60. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  61. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  62. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  63. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  64. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  65. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  66. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  67. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  68. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  69. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  70. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  71. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  72. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  73. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  74. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  75. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  76. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  77. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  78. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  79. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  80. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  81. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  82. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  83. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  84. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +3 -1
  85. package/src/aldehyde/lowcode-components/column-chart/index.tsx +3 -1
  86. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  87. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  88. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  89. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  90. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  91. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +3 -1
  92. package/src/aldehyde/lowcode-components/line-chart/index.tsx +3 -1
  93. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  94. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  95. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  96. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +144 -144
  97. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  98. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  99. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  100. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  101. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  102. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  103. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  104. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +9 -0
  105. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  106. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  107. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  108. package/src/aldehyde/module/dtmpl-edit-page.tsx +10 -10
  109. package/src/aldehyde/table/act-table.tsx +6 -6
  110. package/src/aldehyde/table/column/column-builder.tsx +26 -36
  111. package/src/aldehyde/table/column/index.less +8 -8
  112. package/src/aldehyde/table/report-table.tsx +3 -2
  113. package/src/aldehyde/tmpl/interface.tsx +7 -0
@@ -112,6 +112,7 @@ export interface ComponentStyle {
112
112
  dataZoom?: boolean;
113
113
  slider?: boolean; // 区域缩放是否显示滑动条
114
114
  markLineColor?: string[]; // 标记线颜色
115
+ groupType?: string; // 图表分组类型(用于图表联动)
115
116
  }
116
117
 
117
118
  export interface ComponentProps {
@@ -263,7 +264,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
263
264
  }, [searchParams, initSearchParams]);
264
265
 
265
266
  const renderChart = () => {
266
- const { grid, barMaxWidth, legend, tooltip, color, xAxis, yAxis, dataZoom, slider, markLineColor } = config
267
+ const { grid, barMaxWidth, legend, tooltip, color, xAxis, yAxis, dataZoom, slider, markLineColor, groupType } = config
267
268
  const option = _.cloneDeep(defOption);
268
269
  // 编辑态无数据显示默认数据
269
270
  const temData = isDesignMode && !data?.length ? defDatas[componentType] || [] : data;
@@ -326,6 +327,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
326
327
  }
327
328
  }
328
329
  }).filter(Boolean);
330
+ if (groupType) chart.current.group = groupType;
329
331
  chart.current.setOption(option, true);
330
332
  }
331
333
  useEffect(() => {
@@ -1,11 +1,11 @@
1
- .data-number-component {
2
- --stroke-color: #000000;
3
- --stroke-width: 0;
4
-
5
- height: 100%;
6
- display: flex;
7
- -webkit-text-stroke-color: var(--stroke-color);
8
- -webkit-text-stroke-width: var(--stroke-width);
9
- stroke-color: var(--stroke-color);
10
- stroke-width: var(--stroke-width);
1
+ .data-number-component {
2
+ --stroke-color: #000000;
3
+ --stroke-width: 0;
4
+
5
+ height: 100%;
6
+ display: flex;
7
+ -webkit-text-stroke-color: var(--stroke-color);
8
+ -webkit-text-stroke-width: var(--stroke-width);
9
+ stroke-color: var(--stroke-color);
10
+ stroke-width: var(--stroke-width);
11
11
  }
@@ -1,5 +1,5 @@
1
- .date-time-component {
2
- width: 100%;
3
- height: 100%;
4
- display: flex;
1
+ .date-time-component {
2
+ width: 100%;
3
+ height: 100%;
4
+ display: flex;
5
5
  }
@@ -1,65 +1,65 @@
1
- import React, { ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
2
- import dayjs from "dayjs";
3
- import './index.less';
4
-
5
- export interface DateTimeComponentStyle {
6
- fontSize?: number;
7
- color?: string;
8
- fontFamily?: string;
9
- fontWeight?: number;
10
- alignItems?: string;
11
- justifyContent?: string;
12
- letterSpacing?: string;
13
- formatType?: string;
14
- }
15
-
16
- export interface DateTimeComponentProps {
17
- style?: DateTimeComponentStyle;
18
- }
19
-
20
- export interface DateTimeComponentRef {
21
- updateConfig: (newConfig: DateTimeComponentProps) => void;
22
- setEventHandler: (eventMap: Record<string, Function>) => void;
23
- destroy: () => void;
24
- }
25
-
26
- const defFormatType = "YYYY年MM月DD日 HH时mm分ss秒";
27
-
28
- const DateTimeComponent = forwardRef((props: DateTimeComponentProps, ref: ForwardedRef<DateTimeComponentRef>) => {
29
- const [config, setConfig] = useState<DateTimeComponentProps>({ ...props });
30
- const [datetime, setDateTime] = useState<string>(dayjs().format(config.style?.formatType || defFormatType));
31
- const timeRef = useRef<NodeJS.Timeout | null>(null);
32
- const eventHandlerMap = useRef<Record<string, Function>>({});
33
-
34
- const handleClearInterval = () => {
35
- timeRef.current && clearInterval(timeRef.current);
36
- timeRef.current = null;
37
- }
38
-
39
- useEffect(() => {
40
- timeRef.current = setInterval(() => {
41
- setDateTime(dayjs().format(config.style?.formatType || defFormatType));
42
- }, 1000);
43
- return () => {
44
- handleClearInterval();
45
- }
46
- }, []);
47
-
48
-
49
- useImperativeHandle(ref, () => ({
50
- updateConfig: (newConfig) => setConfig({ ...newConfig }),
51
- setEventHandler: (eventMap) => eventHandlerMap.current = eventMap,
52
- destroy: () => {
53
- handleClearInterval();
54
- }
55
- }));
56
-
57
-
58
- return (
59
- <div className="date-time-component" style={{ ...(config?.style || {}) }}>
60
- {datetime}
61
- </div>
62
- );
63
- });
64
-
1
+ import React, { ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
2
+ import dayjs from "dayjs";
3
+ import './index.less';
4
+
5
+ export interface DateTimeComponentStyle {
6
+ fontSize?: number;
7
+ color?: string;
8
+ fontFamily?: string;
9
+ fontWeight?: number;
10
+ alignItems?: string;
11
+ justifyContent?: string;
12
+ letterSpacing?: string;
13
+ formatType?: string;
14
+ }
15
+
16
+ export interface DateTimeComponentProps {
17
+ style?: DateTimeComponentStyle;
18
+ }
19
+
20
+ export interface DateTimeComponentRef {
21
+ updateConfig: (newConfig: DateTimeComponentProps) => void;
22
+ setEventHandler: (eventMap: Record<string, Function>) => void;
23
+ destroy: () => void;
24
+ }
25
+
26
+ const defFormatType = "YYYY年MM月DD日 HH时mm分ss秒";
27
+
28
+ const DateTimeComponent = forwardRef((props: DateTimeComponentProps, ref: ForwardedRef<DateTimeComponentRef>) => {
29
+ const [config, setConfig] = useState<DateTimeComponentProps>({ ...props });
30
+ const [datetime, setDateTime] = useState<string>(dayjs().format(config.style?.formatType || defFormatType));
31
+ const timeRef = useRef<NodeJS.Timeout | null>(null);
32
+ const eventHandlerMap = useRef<Record<string, Function>>({});
33
+
34
+ const handleClearInterval = () => {
35
+ timeRef.current && clearInterval(timeRef.current);
36
+ timeRef.current = null;
37
+ }
38
+
39
+ useEffect(() => {
40
+ timeRef.current = setInterval(() => {
41
+ setDateTime(dayjs().format(config.style?.formatType || defFormatType));
42
+ }, 1000);
43
+ return () => {
44
+ handleClearInterval();
45
+ }
46
+ }, []);
47
+
48
+
49
+ useImperativeHandle(ref, () => ({
50
+ updateConfig: (newConfig) => setConfig({ ...newConfig }),
51
+ setEventHandler: (eventMap) => eventHandlerMap.current = eventMap,
52
+ destroy: () => {
53
+ handleClearInterval();
54
+ }
55
+ }));
56
+
57
+
58
+ return (
59
+ <div className="date-time-component" style={{ ...(config?.style || {}) }}>
60
+ {datetime}
61
+ </div>
62
+ );
63
+ });
64
+
65
65
  export default DateTimeComponent;
@@ -1,50 +1,50 @@
1
- .four-angle-glow {
2
- --fagb-color: #00ebff;
3
- --fagb-width: 2px;
4
- --fagb-length: 8px;
5
- --fagb-radius: 3px;
6
- width: 100%;
7
- height: 100%;
8
- position: relative;
9
-
10
- .angle {
11
- position: absolute;
12
- border: var(--fagb-width) solid var(--fagb-color);
13
- width: var(--fagb-length);
14
- height: var(--fagb-length);
15
- }
16
-
17
- .angle-tl {
18
- margin: -1px 0 0 -1px;
19
- border-right: 0;
20
- border-bottom: 0;
21
- border-top-left-radius: var(--fagb-radius);
22
- }
23
-
24
- .angle-tr {
25
- top: 0;
26
- right: 0;
27
- border-left: 0;
28
- border-bottom: 0;
29
- margin: -1px -1px 0 0;
30
- border-top-right-radius: var(--fagb-radius);
31
- }
32
-
33
- .angle-bl {
34
- bottom: 0;
35
- left: 0;
36
- border-top: 0;
37
- border-right: 0;
38
- margin: 0 0 -1px -1px;
39
- border-bottom-left-radius: var(--fagb-radius);
40
- }
41
-
42
- .angle-br {
43
- bottom: 0;
44
- right: 0;
45
- border-left: 0;
46
- border-top: 0;
47
- margin: 0 -1px -1px 0;
48
- border-bottom-right-radius: var(--fagb-radius);
49
- }
1
+ .four-angle-glow {
2
+ --fagb-color: #00ebff;
3
+ --fagb-width: 2px;
4
+ --fagb-length: 8px;
5
+ --fagb-radius: 3px;
6
+ width: 100%;
7
+ height: 100%;
8
+ position: relative;
9
+
10
+ .angle {
11
+ position: absolute;
12
+ border: var(--fagb-width) solid var(--fagb-color);
13
+ width: var(--fagb-length);
14
+ height: var(--fagb-length);
15
+ }
16
+
17
+ .angle-tl {
18
+ margin: -1px 0 0 -1px;
19
+ border-right: 0;
20
+ border-bottom: 0;
21
+ border-top-left-radius: var(--fagb-radius);
22
+ }
23
+
24
+ .angle-tr {
25
+ top: 0;
26
+ right: 0;
27
+ border-left: 0;
28
+ border-bottom: 0;
29
+ margin: -1px -1px 0 0;
30
+ border-top-right-radius: var(--fagb-radius);
31
+ }
32
+
33
+ .angle-bl {
34
+ bottom: 0;
35
+ left: 0;
36
+ border-top: 0;
37
+ border-right: 0;
38
+ margin: 0 0 -1px -1px;
39
+ border-bottom-left-radius: var(--fagb-radius);
40
+ }
41
+
42
+ .angle-br {
43
+ bottom: 0;
44
+ right: 0;
45
+ border-left: 0;
46
+ border-top: 0;
47
+ margin: 0 -1px -1px 0;
48
+ border-bottom-right-radius: var(--fagb-radius);
49
+ }
50
50
  }
@@ -1,53 +1,53 @@
1
- import './index.less';
2
- import React, { ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
3
-
4
- export interface FourAngleGlowBorderStyle {
5
- width?: number;
6
- length?: number;
7
- color?: string;
8
- radius?: number;
9
- }
10
-
11
- export interface FourAngleGlowProps {
12
- style?: FourAngleGlowBorderStyle;
13
- }
14
-
15
- export interface FourAngleGlowBorderRef {
16
- updateConfig: (config: FourAngleGlowProps) => void;
17
- }
18
-
19
- const FourAngleGlowBorder = forwardRef((props: FourAngleGlowProps, ref: ForwardedRef<FourAngleGlowBorderRef>) => {
20
- const [config] = useState<FourAngleGlowProps>({ ...props });
21
- const fourAngleGlowRef = useRef<HTMLDivElement | null>(null);
22
-
23
- const updateStyle = (style: FourAngleGlowBorderStyle) => {
24
- const dom = fourAngleGlowRef.current;
25
- if (dom) {
26
- dom.style.setProperty('--fagb-length', `${style?.length}px`);
27
- dom.style.setProperty('--fagb-color', style?.color);
28
- dom.style.setProperty('--fagb-radius', `${style?.radius}px`);
29
- dom.style.setProperty('--fagb-width', `${style?.width}px`);
30
- }
31
- };
32
-
33
- useImperativeHandle(ref, () => ({
34
- updateConfig: (newConfig) => updateStyle({ ...newConfig.style }),
35
- }));
36
-
37
- useEffect(() => {
38
- updateStyle(config.style);
39
- }, []);
40
-
41
- return (
42
- <div className="four-angle-glow" ref={fourAngleGlowRef}>
43
- <span className="angle angle-tl" />
44
- <span className="angle angle-tr" />
45
- <span className="angle angle-bl" />
46
- <span className="angle angle-br" />
47
- </div>
48
- );
49
- })
50
-
51
- export default FourAngleGlowBorder;
52
-
53
-
1
+ import './index.less';
2
+ import React, { ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
3
+
4
+ export interface FourAngleGlowBorderStyle {
5
+ width?: number;
6
+ length?: number;
7
+ color?: string;
8
+ radius?: number;
9
+ }
10
+
11
+ export interface FourAngleGlowProps {
12
+ style?: FourAngleGlowBorderStyle;
13
+ }
14
+
15
+ export interface FourAngleGlowBorderRef {
16
+ updateConfig: (config: FourAngleGlowProps) => void;
17
+ }
18
+
19
+ const FourAngleGlowBorder = forwardRef((props: FourAngleGlowProps, ref: ForwardedRef<FourAngleGlowBorderRef>) => {
20
+ const [config] = useState<FourAngleGlowProps>({ ...props });
21
+ const fourAngleGlowRef = useRef<HTMLDivElement | null>(null);
22
+
23
+ const updateStyle = (style: FourAngleGlowBorderStyle) => {
24
+ const dom = fourAngleGlowRef.current;
25
+ if (dom) {
26
+ dom.style.setProperty('--fagb-length', `${style?.length}px`);
27
+ dom.style.setProperty('--fagb-color', style?.color);
28
+ dom.style.setProperty('--fagb-radius', `${style?.radius}px`);
29
+ dom.style.setProperty('--fagb-width', `${style?.width}px`);
30
+ }
31
+ };
32
+
33
+ useImperativeHandle(ref, () => ({
34
+ updateConfig: (newConfig) => updateStyle({ ...newConfig.style }),
35
+ }));
36
+
37
+ useEffect(() => {
38
+ updateStyle(config.style);
39
+ }, []);
40
+
41
+ return (
42
+ <div className="four-angle-glow" ref={fourAngleGlowRef}>
43
+ <span className="angle angle-tl" />
44
+ <span className="angle angle-tr" />
45
+ <span className="angle angle-bl" />
46
+ <span className="angle angle-br" />
47
+ </div>
48
+ );
49
+ })
50
+
51
+ export default FourAngleGlowBorder;
52
+
53
+
@@ -105,6 +105,7 @@ export interface ComponentStyle {
105
105
  connectNulls?: boolean; // 是否连接空值
106
106
  nullSetZero?: boolean; // 空值是否置0
107
107
  markLineColor?: string[]; // 标记线颜色
108
+ groupType?: string; // 图表分组类型(用于图表联动)
108
109
  }
109
110
 
110
111
  export interface ComponentProps {
@@ -256,7 +257,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
256
257
  }, [searchParams, initSearchParams]);
257
258
 
258
259
  const renderChart = () => {
259
- const { grid, legend, tooltip, color, xAxis, yAxis, smooth, lineStyle, step, isArea, isGradient, areaStyle, barMaxWidth, symbol, dataZoom, slider, connectNulls, markLineColor } = config;
260
+ const { grid, legend, tooltip, color, xAxis, yAxis, smooth, lineStyle, step, isArea, isGradient, areaStyle, barMaxWidth, symbol, dataZoom, slider, connectNulls, markLineColor, groupType } = config;
260
261
  const option = _.cloneDeep(defOption);
261
262
  // 编辑态无数据显示默认数据
262
263
  const temData = isDesignMode && !data?.length ? option.series : data;
@@ -332,6 +333,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
332
333
  }
333
334
  }
334
335
  }).filter(Boolean);
336
+ if (groupType) chart.current.group = groupType;
335
337
  chart.current.setOption(option, true);
336
338
  };
337
339
 
@@ -116,6 +116,7 @@ export interface ComponentStyle {
116
116
  connectNulls?: boolean; // 是否连接空值
117
117
  nullSetZero?: boolean; // 空值是否置0
118
118
  markLineColor?: string[]; // 标记线颜色
119
+ groupType?: string; // 图表分组类型(用于图表联动)
119
120
  }
120
121
 
121
122
  export interface ComponentProps {
@@ -267,7 +268,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
267
268
  }, [searchParams, initSearchParams]);
268
269
 
269
270
  const renderChart = () => {
270
- const { grid, legend, tooltip, color, xAxis, yAxis, smooth, connectNulls, lineStyle, step, isArea, isGradient, areaStyle, dataZoom, slider, symbol: configSymbol, markLineColor } = config;
271
+ const { grid, legend, tooltip, color, xAxis, yAxis, smooth, connectNulls, lineStyle, step, isArea, isGradient, areaStyle, dataZoom, slider, symbol: configSymbol, markLineColor, groupType } = config;
271
272
  const { itemStyle, ...symbol } = configSymbol || {};
272
273
  const option = _.cloneDeep(defOption);
273
274
  // 编辑态无数据显示默认数据
@@ -339,6 +340,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
339
340
  }
340
341
  }
341
342
  }).filter(Boolean);
343
+ if (groupType) chart.current.group = groupType;
342
344
  chart.current.setOption(option, true);
343
345
  };
344
346
 
@@ -1,64 +1,64 @@
1
- export interface UpdateOptions {
2
- reRender: boolean;
3
- }
4
-
5
- /**
6
- * 设计器自定义组件控制器的顶级抽象接口,用于控制自定义组件的整个生命周期
7
- * @param I 组件实例类型,若组件为React的class组件,则I=class的实例化对象。
8
- * 若组件为React的函数式组件,则I=forwardRef钩子传递出的ref引用(当然你也可以有其他自定义的实现)
9
- * 若组件为纯Js实现的组件,则I=组件实例化对象(可参考Echarts活G2创建实例后的返回值)
10
- * @param C 组件配置类型,即组件的完整属性类型
11
- */
12
- abstract class AbstractController<I = any, C = any> {
13
-
14
- /**
15
- * 组件实例引用
16
- * @protected
17
- */
18
- protected instance: I | null = null;
19
- /**
20
- * 组件配置(包括组件数据)
21
- * @protected
22
- */
23
- public config: C | null = null;
24
- /**
25
- * 组件所处容器的dom元素
26
- * @protected
27
- */
28
- public container: HTMLElement | null = null;
29
-
30
- /******************生命周期******************/
31
-
32
- /**
33
- * 创建组件并将组件挂载到指定的容器中
34
- * @param container 容器
35
- * @param config 组件配置
36
- */
37
- public abstract create(container: HTMLElement, config: C): Promise<void>;
38
-
39
- /**
40
- * 更新组件配置,并触发组件重新渲染
41
- * @param config 组件属性(参数)
42
- * @param upOp 操作类型
43
- */
44
- public abstract update(config: C, upOp?: UpdateOptions): void;
45
-
46
- /**
47
- * 销毁组件
48
- */
49
- public destroy(): void {
50
- this.instance = null;
51
- this.config = null;
52
- this.container = null;
53
- }
54
-
55
-
56
- /******************普通方法******************/
57
- /**
58
- * 获取组件配置数据
59
- */
60
- public abstract getConfig(): C | null;
61
-
62
- }
63
-
64
- export default AbstractController;
1
+ export interface UpdateOptions {
2
+ reRender: boolean;
3
+ }
4
+
5
+ /**
6
+ * 设计器自定义组件控制器的顶级抽象接口,用于控制自定义组件的整个生命周期
7
+ * @param I 组件实例类型,若组件为React的class组件,则I=class的实例化对象。
8
+ * 若组件为React的函数式组件,则I=forwardRef钩子传递出的ref引用(当然你也可以有其他自定义的实现)
9
+ * 若组件为纯Js实现的组件,则I=组件实例化对象(可参考Echarts活G2创建实例后的返回值)
10
+ * @param C 组件配置类型,即组件的完整属性类型
11
+ */
12
+ abstract class AbstractController<I = any, C = any> {
13
+
14
+ /**
15
+ * 组件实例引用
16
+ * @protected
17
+ */
18
+ protected instance: I | null = null;
19
+ /**
20
+ * 组件配置(包括组件数据)
21
+ * @protected
22
+ */
23
+ public config: C | null = null;
24
+ /**
25
+ * 组件所处容器的dom元素
26
+ * @protected
27
+ */
28
+ public container: HTMLElement | null = null;
29
+
30
+ /******************生命周期******************/
31
+
32
+ /**
33
+ * 创建组件并将组件挂载到指定的容器中
34
+ * @param container 容器
35
+ * @param config 组件配置
36
+ */
37
+ public abstract create(container: HTMLElement, config: C): Promise<void>;
38
+
39
+ /**
40
+ * 更新组件配置,并触发组件重新渲染
41
+ * @param config 组件属性(参数)
42
+ * @param upOp 操作类型
43
+ */
44
+ public abstract update(config: C, upOp?: UpdateOptions): void;
45
+
46
+ /**
47
+ * 销毁组件
48
+ */
49
+ public destroy(): void {
50
+ this.instance = null;
51
+ this.config = null;
52
+ this.container = null;
53
+ }
54
+
55
+
56
+ /******************普通方法******************/
57
+ /**
58
+ * 获取组件配置数据
59
+ */
60
+ public abstract getConfig(): C | null;
61
+
62
+ }
63
+
64
+ export default AbstractController;