Skip to content

Commit f006f89

Browse files
committed
Added sort in Funnel Chart
1 parent 0b84762 commit f006f89

File tree

6 files changed

+54
-6
lines changed

6 files changed

+54
-6
lines changed

client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ const FunnelAlignOptions = [
2626
export const EchartsFunnelAlignConfig = (function () {
2727
return new MultiCompBuilder(
2828
{
29-
position: dropdownControl(FunnelAlignOptions, "center"),
29+
funnelAlign: dropdownControl(FunnelAlignOptions, "center"),
3030
},
3131
(props): FunnelSeriesOption => {
3232
const config: FunnelSeriesOption = {
33-
top: "center",
33+
funnelAlign: "center",
3434
};
35-
config.top = props.position
35+
config.funnelAlign = props.funnelAlign
3636
return config;
3737
}
3838
)
3939
.setPropertyViewFn((children) => (
4040
<>
41-
{children.position.propertyView({
41+
{children.funnelAlign.propertyView({
4242
label: trans("echarts.funnelAlign"),
4343
radioButton: true,
4444
})}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import {
2+
AlignBottom,
3+
AlignTop,
4+
dropdownControl,
5+
MultiCompBuilder,
6+
} from "lowcoder-sdk";
7+
import {FunnelSeriesOption, LegendComponentOption} from "echarts";
8+
import { trans } from "i18n/comps";
9+
10+
const SortingOptions = [
11+
{
12+
label: <AlignBottom />,
13+
value: "descending",
14+
},
15+
{
16+
label: <AlignTop />,
17+
value: "ascending",
18+
},
19+
] as const;
20+
21+
export const EchartsSortingConfig = (function () {
22+
return new MultiCompBuilder(
23+
{
24+
sort: dropdownControl(SortingOptions, "descending"),
25+
},
26+
(props): FunnelSeriesOption => {
27+
const config: FunnelSeriesOption = {
28+
sort: "descending"
29+
};
30+
config.sort = props.sort
31+
return config;
32+
}
33+
)
34+
.setPropertyViewFn((children) => (
35+
<>
36+
{children.sort.propertyView({
37+
label: trans("echarts.sort"),
38+
radioButton: true,
39+
})}
40+
</>
41+
))
42+
.build();
43+
})();

client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { EChartsOption } from "echarts";
3333
import { i18nObjs, trans } from "i18n/comps";
3434
import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig";
3535
import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig";
36+
import {EchartsSortingConfig} from "../chartComp/chartConfigs/echartsSortingConfig";
3637

3738
export const ChartTypeOptions = [
3839
{
@@ -253,6 +254,7 @@ let chartJsonModeChildren: any = {
253254
echartsOption: jsonControl(toObject, i18nObjs.defaultFunnelChartOption),
254255
echartsTitle: withDefault(StringControl, trans("funnelChart.defaultTitle")),
255256
echartsLegendConfig: EchartsLegendConfig,
257+
echartsSortingConfig: EchartsSortingConfig,
256258
echartsLabelConfig: EchartsLabelConfig,
257259
echartsFunnelAlignConfig: EchartsFunnelAlignConfig,
258260
echartsConfig: EchartsOptionComp,

client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export function funnelChartPropertyView(
3232
),
3333
})}
3434
{children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()}
35+
{children.echartsSortingConfig.getPropertyView()}
3536
{children.label.getView()&& children.echartsLabelConfig.getPropertyView()}
3637
{children.echartsFunnelAlignConfig.getPropertyView()}
3738
{children.echartsTitleConfig.getPropertyView()}

client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ export function getEchartsConfig(
161161
"min": props.min,
162162
"max": props.max,
163163
"gap": props.gap,
164-
"funnelAlign": props.echartsFunnelAlignConfig.top,
164+
"funnelAlign": props.echartsFunnelAlignConfig.funnelAlign,
165+
"sort": props.echartsSortingConfig.sort,
165166
"itemStyle": {
166167
"opacity": props.opacity
167168
},

client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ export const en = {
110110
legendPosition: "Legend Position",
111111
labelPosition: "Label Position",
112112
titlePosition: "Title Position",
113-
funnelAlign: "Funnel Align"
113+
funnelAlign: "Funnel Align",
114+
sort: "Sort"
114115
},
115116
chart: {
116117
delete: "Delete",

0 commit comments

Comments
 (0)