@yoka-ui/ui 1.0.5 → 1.0.7

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 (157) hide show
  1. package/@Docs-yoka/exports.generated.md +6 -9
  2. package/README.md +39 -12
  3. package/dist/es/assets/image/skills.zip +0 -0
  4. package/dist/es/business/Empty/index.js.map +1 -1
  5. package/dist/es/business/YkCharts/Area.d.ts +18 -0
  6. package/dist/es/business/YkCharts/Area.js +336 -0
  7. package/dist/es/business/YkCharts/Area.js.map +7 -0
  8. package/dist/es/business/YkCharts/Bar.d.ts +21 -0
  9. package/dist/es/business/YkCharts/Bar.js +316 -0
  10. package/dist/es/business/YkCharts/Bar.js.map +7 -0
  11. package/dist/es/business/YkCharts/BarProperty.d.ts +21 -0
  12. package/dist/es/business/YkCharts/BarProperty.js +357 -0
  13. package/dist/es/business/YkCharts/BarProperty.js.map +7 -0
  14. package/dist/es/business/YkCharts/BarTotal.d.ts +21 -0
  15. package/dist/es/business/YkCharts/BarTotal.js +288 -0
  16. package/dist/es/business/YkCharts/BarTotal.js.map +7 -0
  17. package/dist/es/business/YkCharts/Line.d.ts +21 -0
  18. package/dist/es/business/YkCharts/Line.js +342 -0
  19. package/dist/es/business/YkCharts/Line.js.map +7 -0
  20. package/dist/es/business/YkCharts/Pie.d.ts +19 -0
  21. package/dist/es/business/YkCharts/Pie.js +107 -0
  22. package/dist/es/business/YkCharts/Pie.js.map +7 -0
  23. package/dist/es/business/YkCharts/PieProperty.d.ts +18 -0
  24. package/dist/es/business/YkCharts/PieProperty.js +180 -0
  25. package/dist/es/business/YkCharts/PieProperty.js.map +7 -0
  26. package/dist/es/business/YkCharts/Pies.d.ts +26 -0
  27. package/dist/es/business/YkCharts/Pies.js +348 -0
  28. package/dist/es/business/YkCharts/Pies.js.map +7 -0
  29. package/dist/es/business/YkCharts/constants.d.ts +1 -0
  30. package/dist/es/business/YkCharts/constants.js +47 -0
  31. package/dist/es/business/YkCharts/constants.js.map +7 -0
  32. package/dist/es/business/YkCharts/hooks.d.ts +4 -0
  33. package/dist/es/business/YkCharts/hooks.js +37 -0
  34. package/dist/es/business/YkCharts/hooks.js.map +7 -0
  35. package/dist/es/business/YkCharts/index.d.ts +9 -0
  36. package/dist/es/business/YkCharts/index.js +20 -0
  37. package/dist/es/business/YkCharts/index.js.map +7 -0
  38. package/dist/es/business/YkCharts/index.module.less +164 -0
  39. package/dist/es/business/YkCharts/tooltip.less +92 -0
  40. package/dist/es/business/YkCharts/transformData.js +16 -0
  41. package/dist/es/business/YkCharts/transformData.js.map +7 -0
  42. package/dist/es/business/YkCharts/typing.d.ts +74 -0
  43. package/dist/es/business/YkCharts/typing.js +1 -0
  44. package/dist/es/business/YkCharts/typing.js.map +7 -0
  45. package/dist/es/business/YkCharts/utils.d.ts +4 -0
  46. package/dist/es/business/YkCharts/utils.js +109 -0
  47. package/dist/es/business/YkCharts/utils.js.map +7 -0
  48. package/dist/es/business/YkCharts/variables.less +13 -0
  49. package/dist/es/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
  50. package/dist/es/business/YkLoginModule/SmsLoginForm.js +178 -0
  51. package/dist/es/business/YkLoginModule/SmsLoginForm.js.map +7 -0
  52. package/dist/es/business/YkLoginModule/index.d.ts +48 -0
  53. package/dist/es/business/YkLoginModule/index.js +198 -0
  54. package/dist/es/business/YkLoginModule/index.js.map +7 -0
  55. package/dist/es/business/YkLoginModule/styles.module.less +169 -0
  56. package/dist/es/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
  57. package/dist/es/business/YkSqlEdit/index.d.ts +20 -0
  58. package/dist/es/business/YkSqlEdit/index.js +180 -0
  59. package/dist/es/business/YkSqlEdit/index.js.map +7 -0
  60. package/dist/es/business/YkSqlEdit/sql-language.d.ts +11 -0
  61. package/dist/es/business/YkSqlEdit/sql-language.js +1460 -0
  62. package/dist/es/business/YkSqlEdit/sql-language.js.map +7 -0
  63. package/dist/es/components/YKMarkdown/index.d.ts +11 -0
  64. package/dist/es/components/YKMarkdown/index.js +236 -0
  65. package/dist/es/components/YKMarkdown/index.js.map +7 -0
  66. package/dist/es/components/YKMarkdown/index.module.less +83 -0
  67. package/dist/es/components/YkDateRangePicker/YkDateRangePicker.mdx +3 -3
  68. package/dist/es/creative/GlassSegmentedRadio/index.d.ts +1 -1
  69. package/dist/es/creative/SkillsWriter/index.d.ts +3 -0
  70. package/dist/es/creative/SkillsWriter/index.js +191 -0
  71. package/dist/es/creative/SkillsWriter/index.js.map +7 -0
  72. package/dist/es/creative/SkillsWriter/index.module.less +21 -0
  73. package/dist/es/index.d.ts +4 -2
  74. package/dist/es/index.js +80 -76
  75. package/dist/es/index.js.map +2 -2
  76. package/dist/es/index.less +8 -1
  77. package/dist/es/utils/ykStorybookDoc.d.ts +15 -0
  78. package/dist/es/utils/ykStorybookDoc.js +24 -2
  79. package/dist/es/utils/ykStorybookDoc.js.map +2 -2
  80. package/dist/lib/assets/image/skills.zip +0 -0
  81. package/dist/lib/business/Empty/index.js.map +1 -1
  82. package/dist/lib/business/YkCharts/Area.d.ts +18 -0
  83. package/dist/lib/business/YkCharts/Area.js +346 -0
  84. package/dist/lib/business/YkCharts/Area.js.map +7 -0
  85. package/dist/lib/business/YkCharts/Bar.d.ts +21 -0
  86. package/dist/lib/business/YkCharts/Bar.js +323 -0
  87. package/dist/lib/business/YkCharts/Bar.js.map +7 -0
  88. package/dist/lib/business/YkCharts/BarProperty.d.ts +21 -0
  89. package/dist/lib/business/YkCharts/BarProperty.js +370 -0
  90. package/dist/lib/business/YkCharts/BarProperty.js.map +7 -0
  91. package/dist/lib/business/YkCharts/BarTotal.d.ts +21 -0
  92. package/dist/lib/business/YkCharts/BarTotal.js +295 -0
  93. package/dist/lib/business/YkCharts/BarTotal.js.map +7 -0
  94. package/dist/lib/business/YkCharts/Line.d.ts +21 -0
  95. package/dist/lib/business/YkCharts/Line.js +349 -0
  96. package/dist/lib/business/YkCharts/Line.js.map +7 -0
  97. package/dist/lib/business/YkCharts/Pie.d.ts +19 -0
  98. package/dist/lib/business/YkCharts/Pie.js +117 -0
  99. package/dist/lib/business/YkCharts/Pie.js.map +7 -0
  100. package/dist/lib/business/YkCharts/PieProperty.d.ts +18 -0
  101. package/dist/lib/business/YkCharts/PieProperty.js +193 -0
  102. package/dist/lib/business/YkCharts/PieProperty.js.map +7 -0
  103. package/dist/lib/business/YkCharts/Pies.d.ts +26 -0
  104. package/dist/lib/business/YkCharts/Pies.js +337 -0
  105. package/dist/lib/business/YkCharts/Pies.js.map +7 -0
  106. package/dist/lib/business/YkCharts/constants.d.ts +1 -0
  107. package/dist/lib/business/YkCharts/constants.js +71 -0
  108. package/dist/lib/business/YkCharts/constants.js.map +7 -0
  109. package/dist/lib/business/YkCharts/hooks.d.ts +4 -0
  110. package/dist/lib/business/YkCharts/hooks.js +62 -0
  111. package/dist/lib/business/YkCharts/hooks.js.map +7 -0
  112. package/dist/lib/business/YkCharts/index.d.ts +9 -0
  113. package/dist/lib/business/YkCharts/index.js +61 -0
  114. package/dist/lib/business/YkCharts/index.js.map +7 -0
  115. package/dist/lib/business/YkCharts/index.module.less +164 -0
  116. package/dist/lib/business/YkCharts/tooltip.less +92 -0
  117. package/dist/lib/business/YkCharts/transformData.js +40 -0
  118. package/dist/lib/business/YkCharts/transformData.js.map +7 -0
  119. package/dist/lib/business/YkCharts/typing.d.ts +74 -0
  120. package/dist/lib/business/YkCharts/typing.js +18 -0
  121. package/dist/lib/business/YkCharts/typing.js.map +7 -0
  122. package/dist/lib/business/YkCharts/utils.d.ts +4 -0
  123. package/dist/lib/business/YkCharts/utils.js +143 -0
  124. package/dist/lib/business/YkCharts/utils.js.map +7 -0
  125. package/dist/lib/business/YkCharts/variables.less +13 -0
  126. package/dist/lib/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
  127. package/dist/lib/business/YkLoginModule/SmsLoginForm.js +171 -0
  128. package/dist/lib/business/YkLoginModule/SmsLoginForm.js.map +7 -0
  129. package/dist/lib/business/YkLoginModule/index.d.ts +48 -0
  130. package/dist/lib/business/YkLoginModule/index.js +206 -0
  131. package/dist/lib/business/YkLoginModule/index.js.map +7 -0
  132. package/dist/lib/business/YkLoginModule/styles.module.less +169 -0
  133. package/dist/lib/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
  134. package/dist/lib/business/YkSqlEdit/index.d.ts +20 -0
  135. package/dist/lib/business/YkSqlEdit/index.js +202 -0
  136. package/dist/lib/business/YkSqlEdit/index.js.map +7 -0
  137. package/dist/lib/business/YkSqlEdit/sql-language.d.ts +11 -0
  138. package/dist/lib/business/YkSqlEdit/sql-language.js +1493 -0
  139. package/dist/lib/business/YkSqlEdit/sql-language.js.map +7 -0
  140. package/dist/lib/components/YKMarkdown/index.d.ts +11 -0
  141. package/dist/lib/components/YKMarkdown/index.js +188 -0
  142. package/dist/lib/components/YKMarkdown/index.js.map +7 -0
  143. package/dist/lib/components/YKMarkdown/index.module.less +83 -0
  144. package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +3 -3
  145. package/dist/lib/creative/GlassSegmentedRadio/index.d.ts +1 -1
  146. package/dist/lib/creative/SkillsWriter/index.d.ts +3 -0
  147. package/dist/lib/creative/SkillsWriter/index.js +200 -0
  148. package/dist/lib/creative/SkillsWriter/index.js.map +7 -0
  149. package/dist/lib/creative/SkillsWriter/index.module.less +21 -0
  150. package/dist/lib/index.d.ts +4 -2
  151. package/dist/lib/index.js +6 -0
  152. package/dist/lib/index.js.map +2 -2
  153. package/dist/lib/index.less +8 -1
  154. package/dist/lib/utils/ykStorybookDoc.d.ts +15 -0
  155. package/dist/lib/utils/ykStorybookDoc.js +23 -1
  156. package/dist/lib/utils/ykStorybookDoc.js.map +2 -2
  157. package/package.json +16 -2
@@ -0,0 +1,18 @@
1
+ import { type FC } from 'react';
2
+ import type { ColumnConfig, GroupByItem, TableData } from './typing';
3
+ type RowItem = {
4
+ [key: string]: number | string;
5
+ };
6
+ type PageTypes = {
7
+ count?: number;
8
+ metric: string[];
9
+ groupBys: GroupByItem[];
10
+ tableData: TableData;
11
+ baseData: RowItem[];
12
+ columnConfigMap: {
13
+ [key: string]: ColumnConfig;
14
+ };
15
+ height?: number;
16
+ };
17
+ declare const Line: FC<PageTypes>;
18
+ export default Line;
@@ -0,0 +1,346 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/business/YkCharts/Area.tsx
30
+ var Area_exports = {};
31
+ __export(Area_exports, {
32
+ default: () => Area_default
33
+ });
34
+ module.exports = __toCommonJS(Area_exports);
35
+ var import_antd = require("antd");
36
+ var import_decimal = __toESM(require("decimal.js"));
37
+ var echarts = __toESM(require("echarts"));
38
+ var import_react = __toESM(require("react"));
39
+ var import_server = __toESM(require("react-dom/server"));
40
+ var import_constants = require("./constants");
41
+ var import_hooks = require("./hooks");
42
+ var import_index_module = __toESM(require("./index.module.less"));
43
+ var import_utils = require("./utils");
44
+ var Line = ({
45
+ count,
46
+ // 指标显示数量
47
+ metric,
48
+ // 指标
49
+ groupBys,
50
+ // 维度
51
+ tableData,
52
+ // 表格数据
53
+ baseData,
54
+ // 基础数据
55
+ columnConfigMap,
56
+ // 列配置
57
+ height
58
+ }) => {
59
+ const { x = [], table_head = [], table_body = [], x_field, group_by } = tableData;
60
+ const chartContainerRef = (0, import_react.useRef)(null);
61
+ const chartInstanceRef = (0, import_react.useRef)(null);
62
+ const index = table_head.indexOf(x_field);
63
+ const isTotalData = x.length === 0 && index === -1;
64
+ const effectiveX = isTotalData ? ["合计"] : x;
65
+ const fullData = (0, import_react.useMemo)(() => {
66
+ if (!metric || metric.length === 0) {
67
+ return [];
68
+ }
69
+ if (group_by && group_by.length > 0) {
70
+ const validGroupBys = groupBys.filter((g) => Array.isArray(g.selected) && g.selected.length > 0);
71
+ const validGroupByKeys = validGroupBys.map((g) => g.key);
72
+ const metrics = (0, import_hooks.cartesianProduct)(metric, groupBys);
73
+ const chartData = [];
74
+ metrics.forEach((f) => {
75
+ const groupBysText = groupBys.filter((g) => Array.isArray(g.selected) && g.selected.length > 0).map((g) => f[g.key]).filter((value) => value !== null && value !== "").join(",");
76
+ const mItem = effectiveX.map((m) => {
77
+ const obj = {};
78
+ obj[x_field] = m;
79
+ groupBys.forEach((g) => {
80
+ obj[g.key] = f[g.key];
81
+ });
82
+ const matchKeys = isTotalData ? validGroupByKeys : [x_field, ...validGroupByKeys];
83
+ const value = matchKeys.length > 0 ? baseData.filter((d) => matchKeys.every((key) => obj[key] === d[key])).reduce((sum, d) => sum + (Number(d[f.category]) || 0), 0) : baseData.reduce((sum, d) => sum + (Number(d[f.category]) || 0), 0);
84
+ obj.value = value;
85
+ obj.name = `${f.category}${groupBysText ? "," + groupBysText : ""}`;
86
+ obj.metricName = f.category;
87
+ obj.format = columnConfigMap[f.category];
88
+ obj.x = m;
89
+ return obj;
90
+ });
91
+ chartData.push(...mItem);
92
+ });
93
+ return chartData;
94
+ } else {
95
+ const chartData = [];
96
+ metric.forEach((m) => {
97
+ effectiveX.forEach((item) => {
98
+ if (isTotalData) {
99
+ const value = baseData.reduce((sum, d) => sum + (Number(d[m]) || 0), 0);
100
+ chartData.push({
101
+ x: item,
102
+ name: m,
103
+ metricName: m,
104
+ format: columnConfigMap[m],
105
+ value
106
+ });
107
+ } else {
108
+ const row = table_body.find((d) => d[index] === item);
109
+ const obj = {
110
+ x: item,
111
+ name: m,
112
+ metricName: m,
113
+ format: columnConfigMap[m]
114
+ };
115
+ table_head.forEach((key, i) => {
116
+ obj[key] = row ? row[i] : 0;
117
+ });
118
+ obj.value = obj[m];
119
+ chartData.push(obj);
120
+ }
121
+ });
122
+ });
123
+ return chartData;
124
+ }
125
+ }, [
126
+ baseData,
127
+ metric,
128
+ groupBys,
129
+ effectiveX,
130
+ isTotalData,
131
+ index,
132
+ x_field,
133
+ table_head,
134
+ table_body,
135
+ columnConfigMap,
136
+ group_by,
137
+ x
138
+ ]);
139
+ const yAxisFormatter = (0, import_react.useMemo)(() => {
140
+ var _a;
141
+ if (metric.length === 1) {
142
+ return (_a = columnConfigMap[metric[0]]) == null ? void 0 : _a.format;
143
+ }
144
+ return null;
145
+ }, [metric, columnConfigMap]);
146
+ const series = (0, import_react.useMemo)(() => {
147
+ const first = effectiveX[0];
148
+ const firstData = fullData.filter((f) => f[x_field] === first);
149
+ firstData.sort((a, b) => b.value - a.value);
150
+ const sortedMetric = Array.from(new Set(firstData.map((item) => item.name)));
151
+ const countMetric = (firstData.length > 0 ? count ? sortedMetric.slice(0, count) : sortedMetric : metric).slice().sort((a, b) => {
152
+ const lowerA = (0, import_hooks.getIntervalLower)(String(a));
153
+ const lowerB = (0, import_hooks.getIntervalLower)(String(b));
154
+ if (!Number.isNaN(lowerA) && !Number.isNaN(lowerB))
155
+ return lowerA - lowerB;
156
+ return String(a).localeCompare(String(b));
157
+ });
158
+ return countMetric.map((interval) => ({
159
+ name: interval,
160
+ type: "line",
161
+ smooth: true,
162
+ stack: "Total",
163
+ areaStyle: {},
164
+ showSymbol: true,
165
+ symbol: "emptyCircle",
166
+ symbolSize: 0.8,
167
+ lineStyle: {
168
+ width: 1.5
169
+ },
170
+ emphasis: {
171
+ scale: 8
172
+ },
173
+ data: effectiveX.map((item) => {
174
+ const itemData = fullData.find((d) => d.name === interval && d.x === item);
175
+ return itemData ? itemData.value : 0;
176
+ })
177
+ }));
178
+ }, [fullData, metric, count, effectiveX, x_field]);
179
+ const grid = {
180
+ top: 10,
181
+ left: 0,
182
+ right: 10,
183
+ bottom: 40,
184
+ containLabel: true
185
+ };
186
+ const legend = {
187
+ bottom: 0,
188
+ type: "scroll",
189
+ itemWidth: 13,
190
+ itemStyle: {
191
+ opacity: 0
192
+ },
193
+ lineStyle: {
194
+ width: 2,
195
+ type: "solid"
196
+ }
197
+ };
198
+ const xAxis = {
199
+ type: "category",
200
+ data: effectiveX,
201
+ axisLine: {
202
+ lineStyle: {
203
+ color: "#EBEEF4"
204
+ }
205
+ },
206
+ axisLabel: {
207
+ color: "#9CA4B3",
208
+ fontSize: 12
209
+ },
210
+ axisTick: {
211
+ alignWithLabel: true
212
+ },
213
+ boundaryGap: true
214
+ };
215
+ const yAxis = {
216
+ type: "value",
217
+ splitNumber: 4,
218
+ // 设置Y轴坐标点数量
219
+ axisLine: {
220
+ show: true,
221
+ lineStyle: {
222
+ color: "#EBEEF4",
223
+ shadowOffsetY: -10,
224
+ shadowColor: "#EBEEF4"
225
+ }
226
+ },
227
+ axisLabel: {
228
+ color: "#999999",
229
+ fontSize: 12,
230
+ formatter: (value) => {
231
+ if (yAxisFormatter === "percent") {
232
+ return new import_decimal.default(value).mul(100) + "%";
233
+ }
234
+ if (yAxisFormatter === "decimal") {
235
+ return (0, import_utils.formatValue)(value, yAxisFormatter);
236
+ }
237
+ const [result, unit] = (0, import_utils.formatNumber)(value, true);
238
+ return result + unit;
239
+ }
240
+ },
241
+ splitLine: {
242
+ lineStyle: {
243
+ type: [2, 3],
244
+ // 虚线
245
+ color: "#E7E7E7"
246
+ // 背景线颜色
247
+ }
248
+ },
249
+ axisTick: {
250
+ show: true
251
+ }
252
+ };
253
+ const tooltipFormatter = (params) => {
254
+ var _a;
255
+ const title = ((_a = params[0]) == null ? void 0 : _a.axisValue) ?? "";
256
+ const tooltipDom = /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.tooltip }, /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.title }, title), /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.content }, params.map((m) => {
257
+ const metricName = m.seriesName.split(",")[0];
258
+ const columnConfig = columnConfigMap[metricName];
259
+ const format = (columnConfig == null ? void 0 : columnConfig.format) ?? "string";
260
+ const showValue = format === "currency" ? (0, import_utils.formatNumber)(m.value, true) : (0, import_utils.formatValue)(m.value, format);
261
+ const showValueText = showValue === "" || showValue[0] === "" ? "-" : showValue;
262
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.item, key: m.seriesName }, /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.point, style: { background: m.color } }), /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.category }, m.seriesName), /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.value }, showValueText));
263
+ })));
264
+ return import_server.default.renderToStaticMarkup(tooltipDom);
265
+ };
266
+ const tooltip = {
267
+ trigger: "axis",
268
+ padding: 0,
269
+ confine: true,
270
+ enterable: true,
271
+ axisPointer: {
272
+ type: "line",
273
+ // 设置悬浮指针为线
274
+ lineStyle: {
275
+ color: "#EBEEF4",
276
+ // 设置线的颜色
277
+ type: "dashed"
278
+ // 设置虚线样式
279
+ }
280
+ },
281
+ formatter: tooltipFormatter
282
+ };
283
+ const chartOptions = (0, import_react.useMemo)(() => {
284
+ return {
285
+ color: import_constants.chartColors,
286
+ grid,
287
+ legend: {
288
+ ...legend,
289
+ itemWidth: 13,
290
+ itemStyle: {
291
+ opacity: 0
292
+ },
293
+ lineStyle: {
294
+ width: 2,
295
+ type: "solid"
296
+ }
297
+ },
298
+ xAxis,
299
+ yAxis,
300
+ series,
301
+ tooltip
302
+ };
303
+ }, [series]);
304
+ (0, import_react.useEffect)(() => {
305
+ if (!chartContainerRef.current)
306
+ return;
307
+ let chart = chartInstanceRef.current;
308
+ if (!chart) {
309
+ chart = echarts.init(chartContainerRef.current);
310
+ chartInstanceRef.current = chart;
311
+ }
312
+ chart == null ? void 0 : chart.setOption(chartOptions, true);
313
+ return () => {
314
+ if (chartInstanceRef.current) {
315
+ chartInstanceRef.current.dispose();
316
+ chartInstanceRef.current = null;
317
+ }
318
+ };
319
+ }, [chartOptions]);
320
+ (0, import_react.useEffect)(() => {
321
+ const chartElement = chartContainerRef.current;
322
+ if (!chartElement)
323
+ return;
324
+ const resizeObserver = new ResizeObserver(() => {
325
+ const chart = chartInstanceRef.current;
326
+ if (chart) {
327
+ chart.resize();
328
+ }
329
+ });
330
+ resizeObserver.observe(chartElement);
331
+ return () => {
332
+ resizeObserver.unobserve(chartElement);
333
+ resizeObserver.disconnect();
334
+ };
335
+ }, [fullData]);
336
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, fullData.length > 0 ? /* @__PURE__ */ import_react.default.createElement(
337
+ "div",
338
+ {
339
+ ref: chartContainerRef,
340
+ className: import_index_module.default.echarts,
341
+ style: { width: "100%", height: height || "100%", minHeight: 220 }
342
+ }
343
+ ) : /* @__PURE__ */ import_react.default.createElement(import_antd.Empty, { className: import_index_module.default.empty, description: "暂无数据", image: import_antd.Empty.PRESENTED_IMAGE_SIMPLE }));
344
+ };
345
+ var Area_default = Line;
346
+ //# sourceMappingURL=Area.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/business/YkCharts/Area.tsx"],
4
+ "sourcesContent": ["import { Empty } from 'antd';\nimport Decimal from 'decimal.js';\nimport * as echarts from 'echarts';\nimport React, { type FC, useEffect, useMemo, useRef } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { chartColors } from './constants';\nimport { cartesianProduct, getIntervalLower } from './hooks';\nimport styles from './index.module.less';\nimport type { ColumnConfig, GroupByItem, TableData } from './typing';\nimport { formatNumber, formatValue } from './utils';\n\ntype RowItem = {\n [key: string]: number | string;\n};\n\ntype PageTypes = {\n count?: number;\n metric: string[];\n groupBys: GroupByItem[];\n tableData: TableData;\n baseData: RowItem[];\n columnConfigMap: { [key: string]: ColumnConfig };\n height?: number;\n};\n\nconst Line: FC<PageTypes> = ({\n count, // 指标显示数量\n metric, // 指标\n groupBys, // 维度\n tableData, // 表格数据\n baseData, // 基础数据\n columnConfigMap, // 列配置\n height,\n}) => {\n const { x = [], table_head = [], table_body = [], x_field, group_by } = tableData;\n const chartContainerRef = useRef<HTMLDivElement | null>(null);\n const chartInstanceRef = useRef<echarts.ECharts | null>(null);\n\n // x 为空且 x_field 不在 table_head 中时判定为合计数据,x 轴只显示「合计」\n const index = table_head.indexOf(x_field);\n const isTotalData = x.length === 0 && index === -1;\n const effectiveX = isTotalData ? ['合计'] : x;\n\n const fullData = useMemo(() => {\n if (!metric || metric.length === 0) {\n return [];\n }\n // 存在维度时的数据处理\n if (group_by && group_by.length > 0) {\n // 如果存在已选维度为空,则不显示图表\n // if (\n // Array.isArray(groupBys) &&\n // groupBys.some((g) => Array.isArray(g.selected) && g.selected.length === 0) &&\n // reportType !== 4 // 分布分析时,维度为空代表选了总体\n // ) {\n // return [];\n // }\n // selected 有值时按该维度展开;selected 为空时代表全选,该维度做累计\n const validGroupBys = groupBys.filter((g) => Array.isArray(g.selected) && g.selected.length > 0);\n const validGroupByKeys = validGroupBys.map((g) => g.key);\n\n const metrics = cartesianProduct(metric, groupBys);\n const chartData: any[] = [];\n metrics.forEach((f) => {\n const groupBysText = groupBys\n .filter((g) => Array.isArray(g.selected) && g.selected.length > 0)\n .map((g) => f[g.key])\n .filter((value) => value !== null && value !== '')\n .join(',');\n\n const mItem = effectiveX.map((m) => {\n const obj: any = {};\n obj[x_field] = m;\n groupBys.forEach((g) => {\n obj[g.key] = f[g.key];\n });\n // 合计数据:仅按有选中的维度匹配并求和;否则按 x + 有选中的维度匹配。selected 为空的维度不参与匹配,等价于该维度做累计(总体)\n const matchKeys = isTotalData ? validGroupByKeys : [x_field, ...validGroupByKeys];\n // 当 matchKeys 为空(全部维度都是总体 / 或合计数据且无选中维度)时,直接对全表该指标求和\n const value =\n matchKeys.length > 0\n ? baseData\n .filter((d) => matchKeys.every((key) => obj[key] === d[key]))\n .reduce((sum, d) => sum + (Number(d[f.category]) || 0), 0)\n : baseData.reduce((sum, d) => sum + (Number(d[f.category]) || 0), 0);\n\n obj.value = value;\n obj.name = `${f.category}${groupBysText ? ',' + groupBysText : ''}`;\n obj.metricName = f.category;\n obj.format = columnConfigMap[f.category];\n obj.x = m;\n return obj;\n });\n chartData.push(...mItem);\n });\n return chartData;\n } else {\n const chartData: any[] = [];\n metric.forEach((m) => {\n effectiveX.forEach((item) => {\n if (isTotalData) {\n const value = baseData.reduce((sum, d) => sum + (Number(d[m]) || 0), 0);\n chartData.push({\n x: item,\n name: m,\n metricName: m,\n format: columnConfigMap[m],\n value,\n });\n } else {\n const row = table_body.find((d) => d[index] === item);\n const obj: any = {\n x: item,\n name: m,\n metricName: m,\n format: columnConfigMap[m],\n };\n table_head.forEach((key, i) => {\n obj[key] = row ? row[i] : 0;\n });\n obj.value = obj[m];\n chartData.push(obj);\n }\n });\n });\n return chartData;\n }\n }, [\n baseData,\n metric,\n groupBys,\n effectiveX,\n isTotalData,\n index,\n x_field,\n table_head,\n table_body,\n columnConfigMap,\n group_by,\n x,\n ]);\n\n // 获取y轴的格式化方式\n const yAxisFormatter = useMemo(() => {\n if (metric.length === 1) {\n return columnConfigMap[metric[0]]?.format;\n }\n return null;\n }, [metric, columnConfigMap]);\n\n // 获取series\n const series = useMemo(() => {\n const first = effectiveX[0];\n const firstData = fullData.filter((f) => f[x_field] === first);\n firstData.sort((a, b) => (b.value as number) - (a.value as number));\n const sortedMetric = Array.from(new Set(firstData.map((item: RowItem) => item.name)));\n const countMetric = (firstData.length > 0 ? (count ? sortedMetric.slice(0, count) : sortedMetric) : metric)\n .slice()\n .sort((a, b) => {\n const lowerA = getIntervalLower(String(a));\n const lowerB = getIntervalLower(String(b));\n if (!Number.isNaN(lowerA) && !Number.isNaN(lowerB)) return lowerA - lowerB;\n return String(a).localeCompare(String(b));\n });\n return countMetric.map((interval) => ({\n name: interval,\n type: 'line',\n smooth: true,\n stack: 'Total',\n areaStyle: {},\n showSymbol: true,\n symbol: 'emptyCircle',\n symbolSize: 0.8,\n lineStyle: {\n width: 1.5,\n },\n emphasis: {\n scale: 8,\n },\n data: effectiveX.map((item) => {\n const itemData = fullData.find((d) => d.name === interval && d.x === item);\n return itemData ? itemData.value : 0;\n }),\n }));\n }, [fullData, metric, count, effectiveX, x_field]);\n\n const grid = {\n top: 10,\n left: 0,\n right: 10,\n bottom: 40,\n containLabel: true,\n };\n const legend = {\n bottom: 0,\n type: 'scroll',\n itemWidth: 13,\n itemStyle: {\n opacity: 0,\n },\n lineStyle: {\n width: 2,\n type: 'solid',\n },\n };\n const xAxis = {\n type: 'category',\n data: effectiveX,\n axisLine: {\n lineStyle: {\n color: '#EBEEF4',\n },\n },\n axisLabel: {\n color: '#9CA4B3',\n fontSize: 12,\n },\n axisTick: {\n alignWithLabel: true,\n },\n boundaryGap: true,\n };\n const yAxis = {\n type: 'value',\n splitNumber: 4, // 设置Y轴坐标点数量\n axisLine: {\n show: true,\n lineStyle: {\n color: '#EBEEF4',\n shadowOffsetY: -10,\n shadowColor: '#EBEEF4',\n },\n },\n axisLabel: {\n color: '#999999',\n fontSize: 12,\n formatter: (value: number) => {\n if (yAxisFormatter === 'percent') {\n return new Decimal(value).mul(100) + '%';\n }\n if (yAxisFormatter === 'decimal') {\n return formatValue(value, yAxisFormatter);\n }\n const [result, unit] = formatNumber(value, true);\n return result + unit;\n },\n },\n splitLine: {\n lineStyle: {\n type: [2, 3], // 虚线\n color: '#E7E7E7', // 背景线颜色\n },\n },\n axisTick: {\n show: true,\n },\n };\n const tooltipFormatter = (params: any) => {\n const title = params[0]?.axisValue ?? '';\n const tooltipDom = (\n <div className={styles.tooltip}>\n <div className={styles.title}>{title}</div>\n <div className={styles.content}>\n {params.map((m: any) => {\n const metricName = m.seriesName.split(',')[0];\n const columnConfig = columnConfigMap[metricName];\n const format = columnConfig?.format ?? 'string'; // 使用可选链和默认值\n const showValue = format === 'currency' ? formatNumber(m.value, true) : formatValue(m.value, format);\n const showValueText = showValue === '' || showValue[0] === '' ? '-' : showValue;\n return (\n <div className={styles.item} key={m.seriesName}>\n <div className={styles.point} style={{ background: m.color }}></div>\n <div className={styles.category}>{m.seriesName}</div>\n <div className={styles.value}>{showValueText}</div>\n </div>\n );\n })}\n </div>\n </div>\n );\n return ReactDOMServer.renderToStaticMarkup(tooltipDom);\n };\n const tooltip = {\n trigger: 'axis',\n padding: 0,\n confine: true,\n enterable: true,\n axisPointer: {\n type: 'line', // 设置悬浮指针为线\n lineStyle: {\n color: '#EBEEF4', // 设置线的颜色\n type: 'dashed', // 设置虚线样式\n },\n },\n formatter: tooltipFormatter,\n };\n\n // 图表配置\n const chartOptions = useMemo(() => {\n return {\n color: chartColors,\n grid,\n legend: {\n ...legend,\n itemWidth: 13,\n itemStyle: {\n opacity: 0,\n },\n lineStyle: {\n width: 2,\n type: 'solid',\n },\n },\n xAxis,\n yAxis,\n series,\n tooltip,\n };\n }, [series]);\n\n // 初始化图表\n useEffect(() => {\n if (!chartContainerRef.current) return;\n let chart = chartInstanceRef.current;\n if (!chart) {\n chart = echarts.init(chartContainerRef.current);\n chartInstanceRef.current = chart;\n }\n chart?.setOption(chartOptions, true);\n return () => {\n if (chartInstanceRef.current) {\n chartInstanceRef.current.dispose();\n chartInstanceRef.current = null;\n }\n };\n }, [chartOptions]);\n\n // 监听图表容器大小变化\n useEffect(() => {\n const chartElement = chartContainerRef.current;\n if (!chartElement) return;\n const resizeObserver = new ResizeObserver(() => {\n const chart = chartInstanceRef.current;\n if (chart) {\n chart.resize();\n }\n });\n resizeObserver.observe(chartElement);\n return () => {\n resizeObserver.unobserve(chartElement);\n resizeObserver.disconnect();\n };\n }, [fullData]);\n\n return (\n <>\n {fullData.length > 0 ? (\n <div\n ref={chartContainerRef}\n className={styles.echarts}\n style={{ width: '100%', height: height || '100%', minHeight: 220 }}\n ></div>\n ) : (\n <Empty className={styles.empty} description='暂无数据' image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </>\n );\n};\n\nexport default Line;\n"],
5
+ "mappings": "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",
6
+ "names": ["Decimal", "React", "styles", "ReactDOMServer"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ColumnConfig, GroupByItem, SqlMetaConfig, TableData } from './typing';
3
+ type RowItem = {
4
+ [key: string]: number | string;
5
+ };
6
+ type PageTypes = {
7
+ count?: number;
8
+ metric: string[];
9
+ groupBys: GroupByItem[];
10
+ tableData: TableData;
11
+ baseData: RowItem[];
12
+ columnConfigMap: {
13
+ [key: string]: ColumnConfig;
14
+ };
15
+ sqlFormatMap?: {
16
+ [key: string]: SqlMetaConfig;
17
+ };
18
+ height?: number;
19
+ };
20
+ declare const _default: React.NamedExoticComponent<PageTypes>;
21
+ export default _default;