|
@@ -160,6 +160,47 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
type: "round",
|
|
|
},
|
|
|
defaultValue: "top",
|
|
|
+ format: (formatModel, value) => {
|
|
|
+ if(['left', 'right'].includes(value)) {
|
|
|
+ formatModel.value["legend.orient"] = 'vertical';
|
|
|
+ } else {
|
|
|
+ formatModel.value["legend.orient"] = 'horizontal';
|
|
|
+ }
|
|
|
+ switch(value) {
|
|
|
+ case 'bottom':
|
|
|
+ formatModel.value["legend.top"] = 'auto';
|
|
|
+ formatModel.value["legend.right"] = 'auto';
|
|
|
+ formatModel.value["legend.bottom"] = 8;
|
|
|
+ formatModel.value["legend.left"] = 'center';
|
|
|
+ break;
|
|
|
+ case 'left':
|
|
|
+ formatModel.value["legend.bottom"] = 'auto';
|
|
|
+ formatModel.value["legend.right"] = 'auto';
|
|
|
+ formatModel.value["legend.left"] = 8;
|
|
|
+ formatModel.value["legend.top"] = 'center';
|
|
|
+ break;
|
|
|
+ case 'right':
|
|
|
+ formatModel.value["legend.bottom"] = 'auto';
|
|
|
+ formatModel.value["legend.left"] = 'auto';
|
|
|
+ formatModel.value["legend.right"] = 8;
|
|
|
+ formatModel.value["legend.top"] = 'center';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ formatModel.value["legend.bottom"] = 'auto';
|
|
|
+ formatModel.value["legend.right"] = 'auto';
|
|
|
+ formatModel.value["legend.top"] = 32;
|
|
|
+ formatModel.value["legend.left"] = 'center';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ valueToForm: (value, model) => {
|
|
|
+ if(get(model, 'legend.orient') === 'vertical') {
|
|
|
+ return value === 'top' ? 'top' : value === 'bottom' ? 'bottom' : 'left';
|
|
|
+ }
|
|
|
+ if(get(model, 'legend.bottom') === 8 && get(model, 'legend.left') === 'center') {
|
|
|
+ return 'bottom';
|
|
|
+ }
|
|
|
+ return 'top';
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
label: "样式",
|
|
@@ -259,8 +300,17 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
},
|
|
|
defaultValue: false,
|
|
|
format: (formatModel, value) => {
|
|
|
- formatModel.value["legend.shadowBlur"] = value ? 10 : 0;
|
|
|
- formatModel.value["legend.shadowColor"] = "#000";
|
|
|
+ if(value) {
|
|
|
+ formatModel.value["legend.shadowBlur"] = 10;
|
|
|
+ formatModel.value["legend.shadowColor"] = formatModel.value['legend.backgroundColor'] || '#000000ff';
|
|
|
+ formatModel.value["legend.shadowOffsetX"] = 3;
|
|
|
+ formatModel.value["legend.shadowOffsetY"] = 3;
|
|
|
+ } else {
|
|
|
+ formatModel.value["legend.shadowBlur"] = 0;
|
|
|
+ formatModel.value["legend.shadowColor"] = "transparent";
|
|
|
+ formatModel.value["legend.shadowOffsetX"] = 0;
|
|
|
+ formatModel.value["legend.shadowOffsetY"] = 0;
|
|
|
+ }
|
|
|
},
|
|
|
valueToForm: (value) => {
|
|
|
return value ? true : false;
|
|
@@ -314,7 +364,16 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
},
|
|
|
defaultValue: [true],
|
|
|
format: (formatModel, value) => {
|
|
|
- formatModel.value["xAxis.showName"] = value?.length ? true : false;
|
|
|
+ if(value?.length) {
|
|
|
+ formatModel.value["xAxis.showName"] = true;
|
|
|
+ formatModel.value["xAxis.name"] = 'X轴标题';
|
|
|
+ formatModel.value["xAxis.nameGap"] = 25;
|
|
|
+ } else {
|
|
|
+ formatModel.value["xAxis.showName"] = false;
|
|
|
+ formatModel.value["xAxis.name"] = "";
|
|
|
+ formatModel.value["xAxis.nameGap"] = 15;
|
|
|
+ formatModel.value["xAxis.nameGap"] = 15;
|
|
|
+ }
|
|
|
},
|
|
|
valueToForm: (value) => {
|
|
|
return value ? [true] : [];
|
|
@@ -336,12 +395,12 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
format: (formatModel, value) => {
|
|
|
if (formatModel.value["xAxis.showName"]) {
|
|
|
formatModel.value["xAxis.name"] = value;
|
|
|
- formatModel.value["grid.bottom"] = 40;
|
|
|
- } else {
|
|
|
- formatModel.value["xAxis.name"] = "";
|
|
|
- formatModel.value["grid.bottom"] = 20;
|
|
|
+ formatModel.value["xAxis.nameGap"] = 25;
|
|
|
}
|
|
|
},
|
|
|
+ valueToForm: (value) => {
|
|
|
+ return value || "X 轴标题";
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
label: "标题位置",
|
|
@@ -364,7 +423,7 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
middle: "center",
|
|
|
end: "right",
|
|
|
};
|
|
|
- return p[value];
|
|
|
+ return p[value] || "center";
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -385,12 +444,12 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
fontStyle: value.italic ? "italic" : "normal",
|
|
|
};
|
|
|
},
|
|
|
- valueToForm: (_, model) => {
|
|
|
+ valueToForm: (value, model) => {
|
|
|
return {
|
|
|
- color: get(model, 'xAxis.nameTextStyle.color', '#000000ff'),
|
|
|
- size: get(model, 'xAxis.nameTextStyle.fontSize', 12),
|
|
|
- bold: get(model, 'xAxis.nameTextStyle.fontWeight') === 'bold',
|
|
|
- italic: get(model, 'xAxis.nameTextStyle.fontStyle') === 'italic',
|
|
|
+ color: value?.color || '#000000ff',
|
|
|
+ size: value?.fontSize || 12,
|
|
|
+ bold: value?.fontWeight === 'bold' || false,
|
|
|
+ italic: value?.fontStyle === 'italic' || false,
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -405,7 +464,7 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
},
|
|
|
{
|
|
|
label: "线宽",
|
|
|
- prop: "xAxis.axisLine.width",
|
|
|
+ prop: "xAxis.axisLine.lineStyle.width",
|
|
|
type: "inputNumber",
|
|
|
fieldProps: {
|
|
|
addonAfter: "px",
|
|
@@ -414,7 +473,7 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
},
|
|
|
{
|
|
|
label: "颜色",
|
|
|
- prop: "xAxis.axisLine.color",
|
|
|
+ prop: "xAxis.axisLine.lineStyle.color",
|
|
|
type: "colorSelect",
|
|
|
defaultValue: "#ccc",
|
|
|
},
|
|
@@ -539,14 +598,22 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
children: [
|
|
|
{
|
|
|
label: " ",
|
|
|
- prop: "yAxis.show",
|
|
|
+ prop: "yAxis.showName",
|
|
|
type: "checkboxGroup",
|
|
|
fieldProps: {
|
|
|
options: [{ label: "显示轴标题", value: true }],
|
|
|
},
|
|
|
defaultValue: [],
|
|
|
format: (formatModel, value) => {
|
|
|
- formatModel.value["yAxis.show"] = value?.length ? true : false;
|
|
|
+ if(value?.length) {
|
|
|
+ formatModel.value["yAxis.showName"] = true;
|
|
|
+ formatModel.value["yAxis.name"] = 'Y轴标题';
|
|
|
+ formatModel.value["yAxis.nameGap"] = 25;
|
|
|
+ } else {
|
|
|
+ formatModel.value["yAxis.showName"] = false;
|
|
|
+ formatModel.value["yAxis.name"] = "";
|
|
|
+ formatModel.value["yAxis.nameGap"] = 15;
|
|
|
+ }
|
|
|
},
|
|
|
valueToForm: (value) => {
|
|
|
return value ? [true] : [];
|
|
@@ -556,9 +623,9 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
label: "",
|
|
|
prop: "",
|
|
|
type: "dependency",
|
|
|
- name: ["yAxis.show"],
|
|
|
+ name: ["yAxis.showName"],
|
|
|
children: (model) => {
|
|
|
- return model["yAxis.show"].length
|
|
|
+ return model["yAxis.showName"].length
|
|
|
? [
|
|
|
{
|
|
|
label: "标题内容",
|
|
@@ -566,14 +633,17 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
type: "input",
|
|
|
defaultValue: "Y 轴标题",
|
|
|
format: (formatModel, value) => {
|
|
|
- if (formatModel.value["yAxis.show"]) {
|
|
|
+ if (formatModel.value["yAxis.showName"]) {
|
|
|
formatModel.value["yAxis.name"] = value;
|
|
|
- formatModel.value["grid.left"] = 40;
|
|
|
+ formatModel.value["yAxis.nameGap"] = 25;
|
|
|
} else {
|
|
|
formatModel.value["yAxis.name"] = "";
|
|
|
- formatModel.value["grid.left"] = 20;
|
|
|
+ formatModel.value["yAxis.nameGap"] = 15;
|
|
|
}
|
|
|
},
|
|
|
+ valueToForm: (value) => {
|
|
|
+ return value || "Y 轴标题";
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
label: "标题位置",
|
|
@@ -596,7 +666,7 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
middle: "center",
|
|
|
end: "right",
|
|
|
};
|
|
|
- return p[value];
|
|
|
+ return p[value] || 'center ';
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -604,7 +674,7 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
prop: "yAxis.nameTextStyle",
|
|
|
type: "fontStyle",
|
|
|
defaultValue: {
|
|
|
- color: "#000000ff",
|
|
|
+ color: "#FFFFFFFF",
|
|
|
size: 12,
|
|
|
bold: false,
|
|
|
italic: false,
|
|
@@ -617,12 +687,12 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
fontStyle: value.italic ? "italic" : "normal",
|
|
|
};
|
|
|
},
|
|
|
- valueToForm: (_, model) => {
|
|
|
+ valueToForm: (value) => {
|
|
|
return {
|
|
|
- color: get(model, 'yAxis.nameTextStyle.color', '#000000ff'),
|
|
|
- size: get(model, 'yAxis.nameTextStyle.fontSize', 12),
|
|
|
- bold: get(model, 'yAxis.nameTextStyle.fontWeight') === 'bold',
|
|
|
- italic: get(model, 'yAxis.nameTextStyle.fontStyle') === 'italic',
|
|
|
+ color: value?.color || '#000000ff',
|
|
|
+ size: value?.fontSize || 12,
|
|
|
+ bold: value?.fontWeight === 'bold' || false,
|
|
|
+ italic: value?.fontStyle === 'italic' || false,
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -636,19 +706,48 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
type: "divider",
|
|
|
},
|
|
|
{
|
|
|
- label: "线宽",
|
|
|
- prop: "yAxis.axisLine.width",
|
|
|
- type: "inputNumber",
|
|
|
+ label: " ",
|
|
|
+ prop: "yAxis.axisLine.show",
|
|
|
+ type: "checkboxGroup",
|
|
|
fieldProps: {
|
|
|
- addonAfter: "px",
|
|
|
+ options: [{ label: "显示轴线", value: true }],
|
|
|
},
|
|
|
- defaultValue: 1,
|
|
|
+ defaultValue: [true],
|
|
|
+ format: (formatModel, value) => {
|
|
|
+ formatModel.value["yAxis.axisLine.show"] = value?.length
|
|
|
+ ? true
|
|
|
+ : false;
|
|
|
+ },
|
|
|
+ valueToForm: (value) => {
|
|
|
+ return value ? [true] : [];
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
- label: "颜色",
|
|
|
- prop: "yAxis.axisLine.color",
|
|
|
- type: "colorSelect",
|
|
|
- defaultValue: "#ccc",
|
|
|
+ label: "",
|
|
|
+ prop: "",
|
|
|
+ type: "dependency",
|
|
|
+ name: ["yAxis.axisLine.show"],
|
|
|
+ children: (model) => {
|
|
|
+ return model["yAxis.axisLine.show"].length
|
|
|
+ ? [
|
|
|
+ {
|
|
|
+ label: "线宽",
|
|
|
+ prop: "yAxis.axisLine.lineStyle.width",
|
|
|
+ type: "inputNumber",
|
|
|
+ fieldProps: {
|
|
|
+ addonAfter: "px",
|
|
|
+ },
|
|
|
+ defaultValue: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "颜色",
|
|
|
+ prop: "yAxis.axisLine.lineStyle.color",
|
|
|
+ type: "colorSelect",
|
|
|
+ defaultValue: "#ccc",
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ : [];
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
label: "刻度",
|
|
@@ -757,6 +856,17 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ {
|
|
|
+ label: '旋转角度',
|
|
|
+ prop: "yAxis.axisLabel.rotate",
|
|
|
+ type: "inputNumber",
|
|
|
+ fieldProps: {
|
|
|
+ addonAfter: "°",
|
|
|
+ min: -90,
|
|
|
+ max: 90,
|
|
|
+ step: 1
|
|
|
+ },
|
|
|
+ }
|
|
|
]
|
|
|
: [];
|
|
|
},
|
|
@@ -811,13 +921,13 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
return get(model, 'tooltip.formatter')?.replace(/\{|\}/g, "")?.split(" ");
|
|
|
}
|
|
|
},
|
|
|
- {
|
|
|
- label: "格式化",
|
|
|
- prop: "tooltip.valueFormatter",
|
|
|
- type: "input",
|
|
|
- tip: "支持字符串模板和回调函数",
|
|
|
- defaultValue: "(value, dataIndex) => value",
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // label: "格式化",
|
|
|
+ // prop: "tooltip.valueFormatter",
|
|
|
+ // type: "input",
|
|
|
+ // tip: "支持字符串模板和回调函数",
|
|
|
+ // defaultValue: "(value, dataIndex) => value",
|
|
|
+ // },
|
|
|
{
|
|
|
label: "样式",
|
|
|
prop: "tooltip.textStyle",
|
|
@@ -865,6 +975,15 @@ export const chartFormItemsMap: Record<string, IFormItem> = {
|
|
|
type: "colorSelect",
|
|
|
defaultValue: "#ccc",
|
|
|
},
|
|
|
+ {
|
|
|
+ label: "圆角",
|
|
|
+ prop: "tooltip.borderRadius",
|
|
|
+ type: "inputNumber",
|
|
|
+ fieldProps: {
|
|
|
+ addonAfter: "px",
|
|
|
+ },
|
|
|
+ defaultValue: 4,
|
|
|
+ },
|
|
|
{
|
|
|
label: "背景",
|
|
|
prop: "",
|