Skip to content

Commit 7ed31a0

Browse files
committed
修复坐标轴选项导出问题
1 parent 67e3837 commit 7ed31a0

File tree

2 files changed

+23
-15
lines changed

2 files changed

+23
-15
lines changed

src/editor/options.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<template>
22
<s-scroll-view>
33
<div id="options">
4+
<!-- global -->
45
<s-divider>{{ t("options.global") }}</s-divider>
5-
66
<div class="option">
77
<span class="label">{{ t("options.grid") }}</span>
88
<s-switch
@@ -18,6 +18,7 @@
1818
></s-text-field>
1919
</div>
2020

21+
<!-- xAxis -->
2122
<s-divider>{{ t("options.horizontal") }}</s-divider>
2223
<div class="option">
2324
<span class="label">{{ t("options.axis.reverse") }}</span>
@@ -45,6 +46,7 @@
4546
></s-text-field>
4647
</div>
4748

49+
<!-- yAxis -->
4850
<s-divider>{{ t("options.vertical") }}</s-divider>
4951
<div class="option">
5052
<span class="label">{{ t("options.axis.reverse") }}</span>

src/types/options.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { FunctionPlotOptions } from "function-plot";
22
import { amendAttr, omitAttr } from "./utils";
3-
import cloneDeep from "lodash-es/cloneDeep";
43

54
type PrivateAxis = {
65
invert: boolean;
@@ -15,14 +14,15 @@ export type PrivateOptions = {
1514
title: string;
1615
};
1716

17+
const defaultAxis = {
18+
invert: false,
19+
label: "",
20+
type: "linear",
21+
} as PrivateAxis;
22+
1823
export function toPrivateOptions(
1924
original: Partial<FunctionPlotOptions>
2025
): PrivateOptions {
21-
const defaultAxis = {
22-
invert: false,
23-
label: "",
24-
type: "linear",
25-
} as PrivateAxis;
2626
const { xAxis, yAxis, title, grid } = original;
2727
return amendAttr<PrivateOptions>(
2828
{ xAxis, yAxis, title, grid },
@@ -35,15 +35,21 @@ export function toPrivateOptions(
3535
);
3636
}
3737

38-
const checkAxisUseless = ({ invert, label, type }: PrivateAxis) =>
39-
label === "" && !invert && type === "linear";
38+
const checkObjEmpty = (object: Object) => Object.keys(object).length === 0;
4039

4140
export const toPublicOptions = (
4241
options: PrivateOptions
4342
): Partial<FunctionPlotOptions> =>
44-
omitAttr(cloneDeep(options), {
45-
title: "",
46-
grid: false,
47-
xAxis: checkAxisUseless,
48-
yAxis: checkAxisUseless,
49-
});
43+
omitAttr(
44+
{
45+
...options,
46+
xAxis: omitAttr(options.xAxis, defaultAxis),
47+
yAxis: omitAttr(options.yAxis, defaultAxis),
48+
},
49+
{
50+
title: "",
51+
grid: false,
52+
xAxis: checkObjEmpty,
53+
yAxis: checkObjEmpty,
54+
}
55+
);

0 commit comments

Comments
 (0)