aldehyde 0.2.290 → 0.2.292

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 (174) hide show
  1. package/lib/lowcode-components/act-table/index.js +1 -1
  2. package/lib/lowcode-components/act-table/index.js.map +1 -1
  3. package/lib/lowcode-components/bar-chart/index.d.ts +1 -0
  4. package/lib/lowcode-components/bar-chart/index.d.ts.map +1 -1
  5. package/lib/lowcode-components/bar-chart/index.js +8 -3
  6. package/lib/lowcode-components/bar-chart/index.js.map +1 -1
  7. package/lib/lowcode-components/border/border11/index.d.ts.map +1 -1
  8. package/lib/lowcode-components/border/border11/index.js +4 -3
  9. package/lib/lowcode-components/border/border11/index.js.map +1 -1
  10. package/lib/lowcode-components/border/border12/index.d.ts.map +1 -1
  11. package/lib/lowcode-components/border/border12/index.js +5 -4
  12. package/lib/lowcode-components/border/border12/index.js.map +1 -1
  13. package/lib/lowcode-components/border/border13/index.d.ts.map +1 -1
  14. package/lib/lowcode-components/border/border13/index.js +4 -3
  15. package/lib/lowcode-components/border/border13/index.js.map +1 -1
  16. package/lib/lowcode-components/border/border2/index.d.ts.map +1 -1
  17. package/lib/lowcode-components/border/border2/index.js +4 -3
  18. package/lib/lowcode-components/border/border2/index.js.map +1 -1
  19. package/lib/lowcode-components/border/border3/index.d.ts.map +1 -1
  20. package/lib/lowcode-components/border/border3/index.js +4 -3
  21. package/lib/lowcode-components/border/border3/index.js.map +1 -1
  22. package/lib/lowcode-components/border/border4/index.d.ts.map +1 -1
  23. package/lib/lowcode-components/border/border4/index.js +4 -3
  24. package/lib/lowcode-components/border/border4/index.js.map +1 -1
  25. package/lib/lowcode-components/border/border5/index.d.ts.map +1 -1
  26. package/lib/lowcode-components/border/border5/index.js +4 -3
  27. package/lib/lowcode-components/border/border5/index.js.map +1 -1
  28. package/lib/lowcode-components/border/border6/index.d.ts.map +1 -1
  29. package/lib/lowcode-components/border/border6/index.js +4 -3
  30. package/lib/lowcode-components/border/border6/index.js.map +1 -1
  31. package/lib/lowcode-components/border/border7/index.d.ts.map +1 -1
  32. package/lib/lowcode-components/border/border7/index.js +4 -3
  33. package/lib/lowcode-components/border/border7/index.js.map +1 -1
  34. package/lib/lowcode-components/border/border8/index.d.ts.map +1 -1
  35. package/lib/lowcode-components/border/border8/index.js +4 -3
  36. package/lib/lowcode-components/border/border8/index.js.map +1 -1
  37. package/lib/lowcode-components/border/border9/index.d.ts.map +1 -1
  38. package/lib/lowcode-components/border/border9/index.js +4 -3
  39. package/lib/lowcode-components/border/border9/index.js.map +1 -1
  40. package/lib/lowcode-components/capsule-bar-chart/index.d.ts +1 -0
  41. package/lib/lowcode-components/capsule-bar-chart/index.d.ts.map +1 -1
  42. package/lib/lowcode-components/capsule-bar-chart/index.js +8 -3
  43. package/lib/lowcode-components/capsule-bar-chart/index.js.map +1 -1
  44. package/lib/lowcode-components/circular-progress-chart/index.d.ts +1 -0
  45. package/lib/lowcode-components/circular-progress-chart/index.d.ts.map +1 -1
  46. package/lib/lowcode-components/circular-progress-chart/index.js +8 -3
  47. package/lib/lowcode-components/circular-progress-chart/index.js.map +1 -1
  48. package/lib/lowcode-components/column-chart/index.d.ts +1 -0
  49. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  50. package/lib/lowcode-components/column-chart/index.js +8 -3
  51. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  52. package/lib/lowcode-components/data-number/index.d.ts +1 -0
  53. package/lib/lowcode-components/data-number/index.d.ts.map +1 -1
  54. package/lib/lowcode-components/data-number/index.js +4 -4
  55. package/lib/lowcode-components/data-number/index.js.map +1 -1
  56. package/lib/lowcode-components/decoration/decoration1/index.d.ts.map +1 -1
  57. package/lib/lowcode-components/decoration/decoration1/index.js +4 -3
  58. package/lib/lowcode-components/decoration/decoration1/index.js.map +1 -1
  59. package/lib/lowcode-components/decoration/decoration10/index.d.ts.map +1 -1
  60. package/lib/lowcode-components/decoration/decoration10/index.js +4 -3
  61. package/lib/lowcode-components/decoration/decoration10/index.js.map +1 -1
  62. package/lib/lowcode-components/decoration/decoration11/index.d.ts.map +1 -1
  63. package/lib/lowcode-components/decoration/decoration11/index.js +6 -5
  64. package/lib/lowcode-components/decoration/decoration11/index.js.map +1 -1
  65. package/lib/lowcode-components/decoration/decoration2/index.d.ts.map +1 -1
  66. package/lib/lowcode-components/decoration/decoration2/index.js +4 -3
  67. package/lib/lowcode-components/decoration/decoration2/index.js.map +1 -1
  68. package/lib/lowcode-components/decoration/decoration3/index.d.ts.map +1 -1
  69. package/lib/lowcode-components/decoration/decoration3/index.js +4 -3
  70. package/lib/lowcode-components/decoration/decoration3/index.js.map +1 -1
  71. package/lib/lowcode-components/decoration/decoration4/index.d.ts.map +1 -1
  72. package/lib/lowcode-components/decoration/decoration4/index.js +3 -2
  73. package/lib/lowcode-components/decoration/decoration4/index.js.map +1 -1
  74. package/lib/lowcode-components/decoration/decoration5/index.d.ts.map +1 -1
  75. package/lib/lowcode-components/decoration/decoration5/index.js +4 -3
  76. package/lib/lowcode-components/decoration/decoration5/index.js.map +1 -1
  77. package/lib/lowcode-components/decoration/decoration6/index.d.ts.map +1 -1
  78. package/lib/lowcode-components/decoration/decoration6/index.js +4 -3
  79. package/lib/lowcode-components/decoration/decoration6/index.js.map +1 -1
  80. package/lib/lowcode-components/decoration/decoration7/index.d.ts.map +1 -1
  81. package/lib/lowcode-components/decoration/decoration7/index.js +4 -3
  82. package/lib/lowcode-components/decoration/decoration7/index.js.map +1 -1
  83. package/lib/lowcode-components/decoration/decoration8/index.d.ts.map +1 -1
  84. package/lib/lowcode-components/decoration/decoration8/index.js +5 -5
  85. package/lib/lowcode-components/decoration/decoration8/index.js.map +1 -1
  86. package/lib/lowcode-components/decoration/decoration9/index.d.ts.map +1 -1
  87. package/lib/lowcode-components/decoration/decoration9/index.js +11 -11
  88. package/lib/lowcode-components/decoration/decoration9/index.js.map +1 -1
  89. package/lib/lowcode-components/gauge-chart/index.d.ts +1 -0
  90. package/lib/lowcode-components/gauge-chart/index.d.ts.map +1 -1
  91. package/lib/lowcode-components/gauge-chart/index.js +8 -3
  92. package/lib/lowcode-components/gauge-chart/index.js.map +1 -1
  93. package/lib/lowcode-components/index.d.ts +2 -0
  94. package/lib/lowcode-components/index.d.ts.map +1 -1
  95. package/lib/lowcode-components/index.js +2 -1
  96. package/lib/lowcode-components/index.js.map +1 -1
  97. package/lib/lowcode-components/line-chart/index.d.ts +1 -0
  98. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  99. package/lib/lowcode-components/line-chart/index.js +8 -3
  100. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  101. package/lib/lowcode-components/liquid-chart/index.d.ts +1 -0
  102. package/lib/lowcode-components/liquid-chart/index.d.ts.map +1 -1
  103. package/lib/lowcode-components/liquid-chart/index.js +8 -3
  104. package/lib/lowcode-components/liquid-chart/index.js.map +1 -1
  105. package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -1
  106. package/lib/lowcode-components/lowcode-view/component/assets.js +8 -0
  107. package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -1
  108. package/lib/lowcode-components/pie-chart/index.d.ts +5 -0
  109. package/lib/lowcode-components/pie-chart/index.d.ts.map +1 -1
  110. package/lib/lowcode-components/pie-chart/index.js +11 -5
  111. package/lib/lowcode-components/pie-chart/index.js.map +1 -1
  112. package/lib/lowcode-components/progress-chart/index.d.ts +37 -0
  113. package/lib/lowcode-components/progress-chart/index.d.ts.map +1 -0
  114. package/lib/lowcode-components/progress-chart/index.js +189 -0
  115. package/lib/lowcode-components/progress-chart/index.js.map +1 -0
  116. package/lib/routable/import-route.js +1 -1
  117. package/lib/routable/import-route.js.map +1 -1
  118. package/lib/routable/ltmpl-route.js +2 -2
  119. package/lib/routable/ltmpl-route.js.map +1 -1
  120. package/lib/table/act-table.d.ts +3 -1
  121. package/lib/table/act-table.d.ts.map +1 -1
  122. package/lib/table/act-table.js +15 -9
  123. package/lib/table/act-table.js.map +1 -1
  124. package/lib/table/select-table.js +2 -2
  125. package/lib/table/select-table.js.map +1 -1
  126. package/lib/tmpl/control-type-supportor.d.ts +1 -0
  127. package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
  128. package/lib/tmpl/control-type-supportor.js +9 -0
  129. package/lib/tmpl/control-type-supportor.js.map +1 -1
  130. package/lib/tmpl/tmpl-config-analysis.d.ts.map +1 -1
  131. package/lib/tmpl/tmpl-config-analysis.js +8 -1
  132. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  133. package/package.json +1 -1
  134. package/src/aldehyde/lowcode-components/act-table/index.tsx +1 -1
  135. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +10 -3
  136. package/src/aldehyde/lowcode-components/border/border11/index.tsx +4 -3
  137. package/src/aldehyde/lowcode-components/border/border12/index.tsx +5 -4
  138. package/src/aldehyde/lowcode-components/border/border13/index.tsx +4 -3
  139. package/src/aldehyde/lowcode-components/border/border2/index.tsx +4 -3
  140. package/src/aldehyde/lowcode-components/border/border3/index.tsx +4 -3
  141. package/src/aldehyde/lowcode-components/border/border4/index.tsx +4 -3
  142. package/src/aldehyde/lowcode-components/border/border5/index.tsx +4 -3
  143. package/src/aldehyde/lowcode-components/border/border6/index.tsx +4 -3
  144. package/src/aldehyde/lowcode-components/border/border7/index.tsx +4 -3
  145. package/src/aldehyde/lowcode-components/border/border8/index.tsx +4 -3
  146. package/src/aldehyde/lowcode-components/border/border9/index.tsx +4 -3
  147. package/src/aldehyde/lowcode-components/capsule-bar-chart/index.tsx +10 -3
  148. package/src/aldehyde/lowcode-components/circular-progress-chart/index.tsx +11 -3
  149. package/src/aldehyde/lowcode-components/column-chart/index.tsx +9 -3
  150. package/src/aldehyde/lowcode-components/data-number/index.tsx +9 -6
  151. package/src/aldehyde/lowcode-components/decoration/decoration1/index.tsx +4 -3
  152. package/src/aldehyde/lowcode-components/decoration/decoration10/index.tsx +4 -3
  153. package/src/aldehyde/lowcode-components/decoration/decoration11/index.tsx +6 -5
  154. package/src/aldehyde/lowcode-components/decoration/decoration2/index.tsx +4 -3
  155. package/src/aldehyde/lowcode-components/decoration/decoration3/index.tsx +4 -3
  156. package/src/aldehyde/lowcode-components/decoration/decoration4/index.tsx +3 -2
  157. package/src/aldehyde/lowcode-components/decoration/decoration5/index.tsx +4 -3
  158. package/src/aldehyde/lowcode-components/decoration/decoration6/index.tsx +4 -3
  159. package/src/aldehyde/lowcode-components/decoration/decoration7/index.tsx +4 -3
  160. package/src/aldehyde/lowcode-components/decoration/decoration8/index.tsx +5 -4
  161. package/src/aldehyde/lowcode-components/decoration/decoration9/index.tsx +11 -10
  162. package/src/aldehyde/lowcode-components/gauge-chart/index.tsx +9 -3
  163. package/src/aldehyde/lowcode-components/index.ts +4 -2
  164. package/src/aldehyde/lowcode-components/line-chart/index.tsx +11 -4
  165. package/src/aldehyde/lowcode-components/liquid-chart/index.tsx +11 -4
  166. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +8 -0
  167. package/src/aldehyde/lowcode-components/pie-chart/index.tsx +14 -4
  168. package/src/aldehyde/lowcode-components/progress-chart/index.tsx +235 -0
  169. package/src/aldehyde/routable/import-route.tsx +1 -1
  170. package/src/aldehyde/routable/ltmpl-route.tsx +2 -2
  171. package/src/aldehyde/table/act-table.tsx +19 -23
  172. package/src/aldehyde/table/select-table.tsx +2 -2
  173. package/src/aldehyde/tmpl/control-type-supportor.tsx +9 -0
  174. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +487 -475
@@ -74,7 +74,8 @@ export interface ComponentStyle {
74
74
  symbol?: { [key: string]: any };
75
75
  step?: boolean; // 是否为阶梯折线图
76
76
  isArea?: boolean; // 是否面积图
77
- areaStyle?: { opacity: number } // 面积图样式
77
+ areaStyle?: { opacity: number }; // 面积图样式
78
+ renderer?: "canvas" | "svg";
78
79
  }
79
80
 
80
81
  export interface ComponentProps {
@@ -92,6 +93,7 @@ export interface ComponentRef {
92
93
  const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>) => {
93
94
  const { style, data: propsData, isDesignMode } = props;
94
95
  const [config, setConfig] = useState<ComponentStyle>(style || {});
96
+ const [renderType, setRenderType] = useState<"canvas" | "svg">(style?.renderer || "svg"); // 渲染模式
95
97
  const [size, setSize] = useState<{ width: number, height: number }>();
96
98
  const [dataConfig, setDataConfig] = useState<DataConfigProps>({ ...propsData }); // 数据源配置
97
99
  const [data, setData] = useState<{ name: string, data: any }[]>([]);
@@ -102,7 +104,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
102
104
  const handleDestroy = () => {
103
105
  pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
104
106
  window.removeEventListener('resize', handleResize);
105
- chart.current.dispose();
107
+ chart.current && chart.current.dispose();
106
108
  };
107
109
 
108
110
  useImperativeHandle(ref, () => ({
@@ -111,6 +113,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
111
113
  setConfig({ ...(newStyle || {}) });
112
114
  setSize({ width: base.width, height: base.height });
113
115
  setDataConfig(newDataConfig);
116
+ setRenderType(newStyle?.renderer || "svg");
114
117
  },
115
118
  destroy: handleDestroy,
116
119
  }));
@@ -121,13 +124,17 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
121
124
  };
122
125
 
123
126
  useEffect(() => {
124
- chart.current = echarts.init(chartRef.current);
125
- window.addEventListener('resize', handleResize);
126
127
  return () => {
127
128
  handleDestroy();
128
129
  }
129
130
  }, []);
130
131
 
132
+ useEffect(() => {
133
+ handleDestroy();
134
+ chart.current = echarts.init(chartRef.current, null, { renderer: renderType });
135
+ window.addEventListener('resize', handleResize);
136
+ }, [renderType]);
137
+
131
138
  // 请求数据
132
139
  const getData = async () => {
133
140
  const { entities: { config, value } } = await HydrocarbonService.requestMstrucLtmplQueryTop(null, dataConfig?.sourceId, null) || {};
@@ -50,7 +50,8 @@ export interface ComponentStyle {
50
50
  dataNum?: number;
51
51
  color?: { color1: string, color2: string };
52
52
  backgroundStyle?: { color: string, [key: string]: any };
53
- label?: { position: { x: number, y: number }, textStyle: { fontSize: number, color: string, }, [key: string]: any }
53
+ label?: { position: { x: number, y: number }, textStyle: { fontSize: number, color: string, }, [key: string]: any };
54
+ renderer?: "canvas" | "svg";
54
55
  }
55
56
 
56
57
  export interface ComponentProps {
@@ -68,6 +69,7 @@ export interface ComponentRef {
68
69
  const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>) => {
69
70
  const { style, data: propsData, isDesignMode } = props;
70
71
  const [config, setConfig] = useState<ComponentStyle>(style || {});
72
+ const [renderType, setRenderType] = useState<"canvas" | "svg">(style?.renderer || "svg"); // 渲染模式
71
73
  const [size, setSize] = useState<{ width: number, height: number }>();
72
74
  const [dataConfig, setDataConfig] = useState<DataConfigProps>({ ...propsData }); // 数据源配置
73
75
  const [data, setData] = useState<number>(0);
@@ -78,7 +80,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
78
80
  const handleDestroy = () => {
79
81
  pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
80
82
  window.removeEventListener('resize', handleResize);
81
- chart.current.dispose();
83
+ chart.current && chart.current.dispose();
82
84
  };
83
85
 
84
86
  useImperativeHandle(ref, () => ({
@@ -87,6 +89,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
87
89
  setConfig({ ...(newStyle || {}) });
88
90
  setSize({ width: base.width, height: base.height });
89
91
  setDataConfig(newDataConfig);
92
+ setRenderType(newStyle?.renderer || "svg");
90
93
  },
91
94
  destroy: handleDestroy,
92
95
  }));
@@ -97,13 +100,17 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
97
100
  };
98
101
 
99
102
  useEffect(() => {
100
- chart.current = echarts.init(chartRef.current);
101
- window.addEventListener('resize', handleResize);
102
103
  return () => {
103
104
  handleDestroy();
104
105
  }
105
106
  }, []);
106
107
 
108
+ useEffect(() => {
109
+ handleDestroy();
110
+ chart.current = echarts.init(chartRef.current, null, { renderer: renderType });
111
+ window.addEventListener('resize', handleResize);
112
+ }, [renderType]);
113
+
107
114
  // 请求数据
108
115
  const getData = async () => {
109
116
  const { entities: { config, value } } = await HydrocarbonService.requestMstrucLtmplQueryTop(null, dataConfig?.sourceId, null) || {};
@@ -43,6 +43,7 @@ import TextScroller from "../../text-scroller";
43
43
  import CapsuleBarChart from "../../capsule-bar-chart";
44
44
  import CircularProgressChart from "../../circular-progress-chart";
45
45
  import ActTable from "../../act-table";
46
+ import ProgressChart from "../../progress-chart";
46
47
 
47
48
  interface ComponentItemConfig {
48
49
  baseInfo: BaseInfoType, // 基础信息
@@ -379,5 +380,12 @@ export const compsConfig: { [key: string]: ComponentItemConfig } = {
379
380
  compName: "全表格",
380
381
  compKey: "ActTable"
381
382
  }
383
+ },
384
+ ProgressChart: {
385
+ componentNode: ProgressChart,
386
+ baseInfo: {
387
+ compName: "进度条",
388
+ compKey: "ProgressChart"
389
+ }
382
390
  }
383
391
  };
@@ -25,6 +25,7 @@ const defOption = {
25
25
  name: '数值',
26
26
  type: 'pie',
27
27
  radius: ["0%", "50%"],
28
+ center: ['50%', '50%'],
28
29
  padAngle: 0,
29
30
  label: {},
30
31
  labelLine: {},
@@ -79,7 +80,9 @@ export interface ComponentStyle {
79
80
  innerRadius?: number;
80
81
  label?: { [key: string]: any };
81
82
  labelLine?: { [key: string]: any };
83
+ center?: { x: number, y: number };
82
84
  roseType?: string; // 玫瑰图配置
85
+ renderer?: "canvas" | "svg";
83
86
  }
84
87
 
85
88
  export interface ComponentProps {
@@ -97,6 +100,7 @@ export interface ComponentRef {
97
100
  const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>) => {
98
101
  const { style, data: propsData, isDesignMode } = props;
99
102
  const [config, setConfig] = useState<ComponentStyle>(style || {});
103
+ const [renderType, setRenderType] = useState<"canvas" | "svg">(style?.renderer || "svg"); // 渲染模式
100
104
  const [size, setSize] = useState<{ width: number, height: number }>();
101
105
  const [dataConfig, setDataConfig] = useState<DataConfigProps>({ ...propsData }); // 数据源配置
102
106
  const [data, setData] = useState<{ name: string, data: any }[]>([]);
@@ -107,7 +111,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
107
111
  const handleDestroy = () => {
108
112
  pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
109
113
  window.removeEventListener('resize', handleResize);
110
- chart.current.dispose();
114
+ chart.current && chart.current.dispose();
111
115
  };
112
116
 
113
117
  useImperativeHandle(ref, () => ({
@@ -116,6 +120,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
116
120
  setConfig({ ...(newStyle || {}) });
117
121
  setSize({ width: base.width, height: base.height });
118
122
  setDataConfig(newDataConfig);
123
+ setRenderType(newStyle?.renderer || "svg");
119
124
  },
120
125
  destroy: handleDestroy,
121
126
  }));
@@ -126,13 +131,17 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
126
131
  };
127
132
 
128
133
  useEffect(() => {
129
- chart.current = echarts.init(chartRef.current);
130
- window.addEventListener('resize', handleResize);
131
134
  return () => {
132
135
  handleDestroy();
133
136
  }
134
137
  }, []);
135
138
 
139
+ useEffect(() => {
140
+ handleDestroy();
141
+ chart.current = echarts.init(chartRef.current, null, { renderer: renderType });
142
+ window.addEventListener('resize', handleResize);
143
+ }, [renderType]);
144
+
136
145
  // 请求数据
137
146
  const getData = async () => {
138
147
  const { entities: { config, value } } = await HydrocarbonService.requestMstrucLtmplQueryTop(null, dataConfig?.sourceId, null) || {};
@@ -170,7 +179,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
170
179
  }, [dataConfig?.sourceType, dataConfig?.sourceId]);
171
180
 
172
181
  const renderChart = () => {
173
- const { legend, tooltip, radius, innerRadius, color, label, labelLine, padAngle, roseType } = config;
182
+ const { legend, tooltip, radius, innerRadius, color, label, labelLine, padAngle, roseType, center } = config;
174
183
  const option = _.cloneDeep(defOption);
175
184
  // 编辑态无数据显示默认数据
176
185
  const temData = isDesignMode && !data?.length ? option.series : data;
@@ -181,6 +190,7 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
181
190
  option.series = temData.map(r => ({
182
191
  type: "pie",
183
192
  radius: [`${innerRadius}%`, `${radius}%`],
193
+ center: [`${center?.x}%`, `${center?.y}%`],
184
194
  padAngle,
185
195
  label,
186
196
  labelLine,
@@ -0,0 +1,235 @@
1
+ import * as echarts from 'echarts';
2
+ import React, { useEffect, useRef, useState, ForwardedRef, forwardRef, useImperativeHandle } from 'react';
3
+ import _ from 'lodash';
4
+ import HydrocarbonService from "../../tmpl/hcservice-v3";
5
+ import { DataConfigProps } from "../data";
6
+
7
+ const itemColor = {
8
+ type: 'linear',
9
+ x: 0,
10
+ y: 0,
11
+ x2: 1,
12
+ y2: 1,
13
+ colorStops: [
14
+ {
15
+ offset: 0,
16
+ color: 'rgba(255,198,26,0.1)'
17
+ },
18
+ {
19
+ offset: 1,
20
+ color: 'rgba(255,198,26,1)'
21
+ }
22
+ ]
23
+ }
24
+
25
+ const defOption = {
26
+ grid: {
27
+ left: 5,
28
+ top: 5,
29
+ bottom: 5,
30
+ right: 5,
31
+ containLabel: true,
32
+ },
33
+ xAxis: {
34
+ splitLine: { show: false },
35
+ axisLine: { show: false },
36
+ axisTick: { show: false },
37
+ axisLabel: { show: false },
38
+ max: 100,
39
+ type: 'value',
40
+ show: false
41
+ },
42
+ yAxis: {
43
+ type: 'category',
44
+ inverse: true,
45
+ splitLine: { show: false },
46
+ axisLine: { show: false },
47
+ axisTick: { show: false },
48
+ axisLabel: { show: true },
49
+ data: ["数值"]
50
+ },
51
+ series: [
52
+ {
53
+ name: '',
54
+ type: 'bar',
55
+ barWidth: 10, // 柱子宽度
56
+ showBackground: true,
57
+ barBorderRadius: 50,
58
+ backgroundStyle: {
59
+ color: 'rgba(255,198,26,0.3)',
60
+ borderColor: 'rgba(255,198,26,1)',
61
+ borderWidth: 1,
62
+ borderRadius: 5
63
+ },
64
+ label: { show: true, position: 'right', color: '#ffffff', fontSize: 14 },
65
+ itemStyle: {
66
+ barBorderRadius: 50,
67
+ color: itemColor
68
+ },
69
+ data: [50]
70
+ }
71
+ ]
72
+ };
73
+
74
+ export interface ComponentStyle {
75
+ title?: { [key: string]: any };
76
+ barWidth?: number;
77
+ max?: number;
78
+ background?: {
79
+ color: string,
80
+ borderColor: string,
81
+ borderWidth: number,
82
+ };
83
+ label?: { [key: string]: any };
84
+ color?: { [key: string]: any };
85
+ renderer?: "canvas" | "svg";
86
+ }
87
+
88
+ export interface ComponentProps {
89
+ style?: ComponentStyle;
90
+ base: { width: number, height: number },
91
+ data?: DataConfigProps;
92
+ isDesignMode?: boolean; // 是否编辑模式
93
+ }
94
+
95
+ export interface ComponentRef {
96
+ updateConfig: (newConfig: ComponentProps) => void;
97
+ destroy: () => void;
98
+ }
99
+
100
+ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>) => {
101
+ const { style, data: propsData, isDesignMode } = props;
102
+ const [config, setConfig] = useState<ComponentStyle>(style || {});
103
+ const [renderType, setRenderType] = useState<"canvas" | "svg">(style?.renderer || "svg"); // 渲染模式
104
+ const [size, setSize] = useState<{ width: number, height: number }>();
105
+ const [dataConfig, setDataConfig] = useState<DataConfigProps>({ ...propsData }); // 数据源配置
106
+ const [data, setData] = useState<number>(0);
107
+ const chartRef = useRef<HTMLDivElement>(null);
108
+ const chart = useRef<any>(null);
109
+ const pollingIntervalRef = useRef<number | NodeJS.Timeout>(null);
110
+
111
+ const handleDestroy = () => {
112
+ pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
113
+ window.removeEventListener('resize', handleResize);
114
+ chart.current && chart.current.dispose();
115
+ };
116
+
117
+ useImperativeHandle(ref, () => ({
118
+ updateConfig: (newConfig) => {
119
+ const { base, style: newStyle, data: newDataConfig } = newConfig;
120
+ setConfig({ ...(newStyle || {}) });
121
+ setSize({ width: base.width, height: base.height });
122
+ setDataConfig(newDataConfig);
123
+ setRenderType(newStyle?.renderer || "svg");
124
+ },
125
+ destroy: handleDestroy,
126
+ }));
127
+
128
+ // 窗口大小变化时重新调整图表大小
129
+ const handleResize = () => {
130
+ chart.current.resize({ animation: { duration: 500 } });
131
+ };
132
+
133
+ useEffect(() => {
134
+ return () => {
135
+ handleDestroy();
136
+ }
137
+ }, []);
138
+
139
+ useEffect(() => {
140
+ handleDestroy();
141
+ chart.current = echarts.init(chartRef.current, null, { renderer: renderType });
142
+ window.addEventListener('resize', handleResize);
143
+ }, [renderType]);
144
+
145
+ // 请求数据
146
+ const getData = async () => {
147
+ const { entities: { config, value } } = await HydrocarbonService.requestMstrucLtmplQueryTop(null, dataConfig?.sourceId, null) || {};
148
+ const temData = value?.[0]?.value?.[0]?.v1 || 0;
149
+ setData(temData);
150
+ return config;
151
+ };
152
+
153
+ // 初始化请求数据
154
+ const getInitData = async () => {
155
+ pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
156
+ const config = await getData();
157
+ if (config?.requestType === "polling") {
158
+ pollingIntervalRef.current = setInterval(() => { getData() }, config?.pollingInterval || 60000);
159
+ }
160
+ };
161
+
162
+ // 静态数据处理
163
+ useEffect(() => {
164
+ if (dataConfig?.sourceType === 'staticData') {
165
+ const { value } = dataConfig.staticData || {};
166
+ setData(value || 0);
167
+ }
168
+ }, [dataConfig?.sourceType, dataConfig?.staticData]);
169
+
170
+ /**
171
+ * 数据源数据请求
172
+ * 1、编辑态不请求数据
173
+ */
174
+ useEffect(() => {
175
+ if (!isDesignMode && dataConfig?.sourceType === 'sourceId' && dataConfig?.sourceId) {
176
+ getInitData();
177
+ } else if (dataConfig?.sourceType === 'sourceId') {
178
+ setData(0);
179
+ }
180
+ }, [dataConfig?.sourceType, dataConfig?.sourceId]);
181
+
182
+ const renderChart = () => {
183
+ const { title, max, background, barWidth, label, color } = config;
184
+ const option = _.cloneDeep(defOption);
185
+ // 编辑态数据源类型显示默认数据50
186
+ const temData = isDesignMode && dataConfig?.sourceType === 'sourceId' ? 50 : (data || 0);
187
+ option.xAxis.max = max || 100;
188
+ option.yAxis.axisLabel = { show: true, ...title };
189
+ option.yAxis.data = [title.text || "数值"];
190
+ option.series = [{
191
+ ...option.series[0],
192
+ backgroundStyle: {
193
+ color: 'rgba(255,198,26,0.3)',
194
+ borderColor: 'rgba(255,198,26,1)',
195
+ borderWidth: 1,
196
+ borderRadius: barWidth / 2,
197
+ ...background
198
+ },
199
+ barWidth,
200
+ label: { show: true, position: 'right', color: '#ffffff', fontSize: 14, ...label },
201
+ itemStyle: {
202
+ barBorderRadius: 50,
203
+ color: {
204
+ ...itemColor, colorStops: [
205
+ {
206
+ offset: 0,
207
+ color: color?.left || "rgba(255,198,26,0.1)"
208
+ },
209
+ {
210
+ offset: 1,
211
+ color: color?.right || "rgba(255,198,26,1)"
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ data: [temData]
217
+ }];
218
+ chart.current.setOption(option, true);
219
+ }
220
+ useEffect(() => {
221
+ if (config) {
222
+ renderChart();
223
+ }
224
+ }, [config, data]);
225
+
226
+ useEffect(() => {
227
+ if (size) {
228
+ handleResize();
229
+ }
230
+ }, [size]);
231
+
232
+ return <div ref={chartRef} style={{ width: '100%', height: '100%' }} />;
233
+ });
234
+
235
+ export default Index;
@@ -28,7 +28,7 @@ class ExcelImportRoute extends React.PureComponent<
28
28
  const { params, serverKey } = this.props;
29
29
  const { sourceId } = params;
30
30
  return (
31
- <ExcelImport key={sourceId} serverKey={serverKey} sourceId={sourceId}></ExcelImport>
31
+ <ExcelImport key={"excelimport"+sourceId} serverKey={serverKey} sourceId={sourceId}></ExcelImport>
32
32
  );
33
33
  }
34
34
  }
@@ -122,7 +122,7 @@ Z
122
122
  (location.pathname == preLocation.pathname &&
123
123
  location.search == preLocation.search)
124
124
  ) {
125
- return;
125
+ return false;
126
126
  }
127
127
  await this.loadData();
128
128
  }
@@ -363,7 +363,7 @@ Z
363
363
  } else {
364
364
  return (
365
365
  <>
366
- <ActTable key={sourceId}
366
+ <ActTable key={"acttable"+sourceId}
367
367
  tableType={tableType} serverKey={null} pageSize={pageSize} pageNo={pageNo} onChangePage={this.onChangePage}
368
368
  menuId={this.getMenuId()} operatable={rowOperatable}
369
369
  mainCode={mainCode} showView={this.showView} doSearch={this.onChangeSearch} doEdit={this.doEdit}
@@ -88,6 +88,7 @@ interface ActTableStat {
88
88
  restatParams?: object;
89
89
  pageInfo?: object;
90
90
  ltreeData?: object;
91
+ userCriteriaData: object;
91
92
  }
92
93
  let serial_number = new Date().getTime();
93
94
  class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
@@ -116,6 +117,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
116
117
  restatParams: undefined,
117
118
  pageInfo:{pageNo:1,pageSize:10},
118
119
  ltreeData:{},
120
+ userCriteriaData:undefined,
119
121
  };
120
122
 
121
123
  static contextType = LocaleContext;
@@ -153,6 +155,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
153
155
 
154
156
  this.setState({
155
157
  loading: true,
158
+ userCriteriaData:criteriaData,
156
159
  });
157
160
  let disabledColIds: string[] = [];
158
161
  let hiddenColIds_ = [...hiddenColIds];
@@ -388,43 +391,43 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
388
391
  this.loadData(defaultDisabledColIds, [], sortedColConfigs);
389
392
  }
390
393
 
391
- async componentDidUpdate(prevProps) {
394
+ async componentDidUpdate(prevProps,prevState) {
392
395
  const { sourceId, criteriaData, ltmplConfig ,tableType,pageSize,pageNo} = this.props;
396
+ // const {userCriteriaData:preUserCriteriaData}=prevState;
397
+ const {userCriteriaData}=this.state;
393
398
  const { translate } = this.context;
394
399
  let {
395
400
  ltmplConfig: preLtmplConfig,
396
401
  criteriaData: preCriteriaData,
397
402
  sourceId: preSourceId,pageSize: prePageSize,pageNo: prePageNo,
398
403
  } = prevProps;
399
-
400
-
401
404
  if(!this.isSameSourceQuery(sourceId,criteriaData)){
402
405
  return false;
403
406
  }
407
+
404
408
  if(prePageSize!=pageSize || pageNo!=prePageNo){
405
409
  this.setState({
406
410
  pageInfo:{pageNo, pageSize},
411
+ userCriteriaData:criteriaData,
407
412
  })
408
413
  }
409
-
410
414
  let { hiddenColIds, sortedColConfigs } = this.state;
411
415
  let currentQueryParams= ProgramConfig.transQueryParamsToStr(criteriaData, false, [
412
416
  "pageSize",
413
417
  "pageNo",
414
418
  ]);
415
- let preCurrentQueryParams=ProgramConfig.transQueryParamsToStr(preCriteriaData, false, [
419
+ let preCurrentQueryParams=ProgramConfig.transQueryParamsToStr(userCriteriaData, false, [
416
420
  "pageSize",
417
421
  "pageNo",
418
422
  ]);
419
- if (
420
- (sourceId && preSourceId != sourceId) ||
423
+ if ((sourceId && preSourceId != sourceId) ||
421
424
  (ltmplConfig &&
422
425
  (!preLtmplConfig || ltmplConfig.id != preLtmplConfig.id)) ||
423
- (currentQueryParams != preCurrentQueryParams && (!criteriaData['menuId'] || preCriteriaData.menuId==criteriaData['menuId']))
426
+ ((currentQueryParams != preCurrentQueryParams ) &&
427
+ (!criteriaData['menuId'] || preCriteriaData.menuId==criteriaData['menuId']))
424
428
  ) {
425
429
  //5秒后允许再次请求数据
426
430
  //refresh=false;
427
-
428
431
  if (preLtmplConfig && ltmplConfig.id == preLtmplConfig.id) {
429
432
  await this.loadData(hiddenColIds, [], sortedColConfigs);
430
433
  } else {
@@ -442,9 +445,9 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
442
445
  });
443
446
  await this.loadData(defaultDisabledColIds, [], sColConfigs);
444
447
  }
445
- // setTimeout( function() {
446
- // refresh=true;
447
- // },112000);
448
+
449
+ }else{
450
+ return false;
448
451
  }
449
452
  }
450
453
 
@@ -1066,8 +1069,8 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1066
1069
  }
1067
1070
 
1068
1071
  renderCriteriaForm = () => {
1069
- let { loading, selectedRows, selectedDatas } = this.state;
1070
- let { ltmplConfig, criteriaData, serverKey,sourceId } = this.props;
1072
+ let { loading, selectedRows, selectedDatas,userCriteriaData } = this.state;
1073
+ let { ltmplConfig,criteriaData, serverKey,sourceId } = this.props;
1071
1074
  return (
1072
1075
  <CriteriaForm
1073
1076
  key={sourceId}
@@ -1077,7 +1080,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1077
1080
  selectedRows={selectedRows}
1078
1081
  doCustomButton={this.doCustomButton}
1079
1082
  ltmplConfig={ltmplConfig}
1080
- data={criteriaData}
1083
+ data={userCriteriaData}
1081
1084
  doCQuery={this.doSelectedCQuery}
1082
1085
  doAction={this.doSelectedAction}
1083
1086
  doDelete={this.doDelete}
@@ -1171,13 +1174,6 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1171
1174
 
1172
1175
  return (
1173
1176
  <>
1174
- {/*暂时不支持L2chart 后续用echart*/}
1175
- {/*{buttons.includes("showChart") && showL2Chart ? <div>*/}
1176
- {/* <StatViewL2Chart queryKey={queryKey.key} ltmplConfig={ltmplConfig} hiddenColIds={hiddenColIds}*/}
1177
- {/* hiddenRowCodes={hiddenRowCodes}/>*/}
1178
- {/* /!*<Divider dashed style={{borderTopColor: "#40a9ff",}} plain></Divider>*!/*/}
1179
- {/*</div> : ""*/}
1180
- {/*}*/}
1181
1177
  {buttons.includes("analysis") && showL2ActTable ? (
1182
1178
  <div>
1183
1179
  <L2ActTable
@@ -1256,7 +1252,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1256
1252
  onChangeRowSelection={this.changeRowSelection}
1257
1253
  leftFixedCols={ltmplConfig.leftFixedCols}
1258
1254
  />:
1259
- <QueryTable key={sourceId} sourceId={sourceId}
1255
+ <QueryTable key={"querytable"+sourceId} sourceId={sourceId}
1260
1256
  // queryTotal={this.queryTotal}
1261
1257
 
1262
1258
  tableProps={{scrollY:ltmplConfig.scrollY,clickDisplayTotal:!ltmplConfig.directShowTotal}}
@@ -256,10 +256,10 @@ class SelectTable extends React.PureComponent<SelectTableProps, SelectTableStat>
256
256
  <div className="actTable"
257
257
  // style={{width: 1100,maxWidth: 'calc(100vw - 60px)', maxHeight: 'calc(100vh - 50px)',overflow:'auto'}}
258
258
  >
259
- <CriteriaForm key={sourceId} serverKey={serverKey} selectedRows={selectedRows} selectedDatas={selectedDatas} ltmplConfig={selectConfig}
259
+ <CriteriaForm key={"CriteriaForm"+sourceId} serverKey={serverKey} selectedRows={selectedRows} selectedDatas={selectedDatas} ltmplConfig={selectConfig}
260
260
  data={criteriaData}
261
261
  doSearch={this.doSearch} loading={loading}/>
262
- <QueryTable key={sourceId} serverKey={serverKey} maxSelectedRows={maxSelectedRows?maxSelectedRows:selectConfig.maxSelectedRows}
262
+ <QueryTable key={"QueryTable"+sourceId} serverKey={serverKey} maxSelectedRows={maxSelectedRows?maxSelectedRows:selectConfig.maxSelectedRows}
263
263
  selectedRows={selectedRows}
264
264
  primaryColumn={selectConfig.primaryColumn}
265
265
  columns={columns}
@@ -116,6 +116,15 @@ ControlTypeSupportor.isUploadControl=function(fieldConfig:FieldBase):boolean{
116
116
  }
117
117
  };
118
118
 
119
+ ControlTypeSupportor.isMultiSelect=function(fieldConfig:FieldBase):boolean{
120
+ let type=this.getSupportControlType(fieldConfig);
121
+ if(type=="multiselect"){
122
+ return true;
123
+ }else{
124
+ return false;
125
+ }
126
+ };
127
+
119
128
  ControlTypeSupportor.isMultiUploadControl=function(fieldConfig:FieldBase):boolean{
120
129
  let type=this.getSupportControlType(fieldConfig);
121
130
  if(type=="relfile"){