|
|
@@ -2,7 +2,6 @@ import React from 'react'
|
|
|
import { connect } from 'dva'
|
|
|
import { Input, InputNumber, Form, Checkbox, Select, Tooltip, Divider, Row, Col } from 'antd'
|
|
|
import { deepAssign } from '../../../../utils/baseUtils'
|
|
|
-import adapteGridPosition from '../../../../models/adapteGridPosition'
|
|
|
const FormItem = Form.Item;
|
|
|
|
|
|
class BarStyle extends React.Component {
|
|
|
@@ -23,128 +22,10 @@ class BarStyle extends React.Component {
|
|
|
const { styleConfig, chartOption, barConfig } = chartDesigner;
|
|
|
const { groupBy } = barConfig;
|
|
|
const barStyle = styleConfig.bar || {};
|
|
|
- chartOption.series = chartOption.series || [];
|
|
|
+ chartOption.baseOption = chartOption.baseOption || {};
|
|
|
+ chartOption.baseOption.series = chartOption.baseOption.series || [];
|
|
|
|
|
|
return <Form>
|
|
|
- <Divider>图域</Divider>
|
|
|
- <Form.Item label='位置' {...formItemLayout}>
|
|
|
- <Row>
|
|
|
- <Col span={8}>上边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- key={`bar-grid-position-top-${barStyle.gridPosition ? barStyle.gridPosition['top'] : null}`}
|
|
|
- defaultValue={barStyle.gridPosition ? barStyle.gridPosition['top'] : null}
|
|
|
- placeholder={50}
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { gridPosition: { top: value} } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { grid: {
|
|
|
- top: (value && value !== 'auto') ? ( // 已设置图域上边距
|
|
|
- value
|
|
|
- ) : gridPosition.top,
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>下边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- key={`bar-grid-position-bottom-${barStyle.gridPosition ? barStyle.gridPosition['bottom'] : null}`}
|
|
|
- defaultValue={barStyle.gridPosition ? barStyle.gridPosition['bottom'] : null}
|
|
|
- placeholder={50}
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { gridPosition: { bottom: value} } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { grid: {
|
|
|
- bottom: (value && value !== 'auto') ? ( // 已设置图域下边距
|
|
|
- value
|
|
|
- ) : gridPosition.bottom,
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>左边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- key={`bar-grid-position-left-${barStyle.gridPosition ? barStyle.gridPosition['left'] : null}`}
|
|
|
- defaultValue={barStyle.gridPosition ? barStyle.gridPosition['left'] : null}
|
|
|
- placeholder='5%'
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { gridPosition: { left: value} } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { grid: {
|
|
|
- left: (value && value !== 'auto') ? ( // 已设置图域左边距
|
|
|
- value
|
|
|
- ) : gridPosition.left,
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>右边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- key={`bar-grid-position-right-${barStyle.gridPosition ? barStyle.gridPosition['right'] : null}`}
|
|
|
- defaultValue={barStyle.gridPosition ? barStyle.gridPosition['right'] : null}
|
|
|
- placeholder='5%'
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { gridPosition: { right: value} } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { grid: {
|
|
|
- right: (value !== '' && value !== 'auto') ? ( // 已设置图域右边距
|
|
|
- value
|
|
|
- ) : gridPosition.right
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- </Form.Item>
|
|
|
<Divider>柱条</Divider>
|
|
|
<FormItem label={<Tooltip title="柱条的最大宽度,支持设置成绝对数值或相对于类目宽度的百分比">柱条最大宽度</Tooltip>} {...formItemLayout}>
|
|
|
<Input
|
|
|
@@ -153,14 +34,14 @@ class BarStyle extends React.Component {
|
|
|
onBlur={e => {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
barMaxWidth: value || '80'
|
|
|
});
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { barMaxWidth: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } } ) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -172,14 +53,14 @@ class BarStyle extends React.Component {
|
|
|
onBlur={e => {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
barMinHeight: value || 0
|
|
|
});
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { barMinHeight: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -191,14 +72,14 @@ class BarStyle extends React.Component {
|
|
|
onBlur={e => {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
barGap: value || '30%'
|
|
|
});
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { barGap: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -212,7 +93,7 @@ class BarStyle extends React.Component {
|
|
|
onChange={e => {
|
|
|
let checked = e.target.checked;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: { normal: { show: checked } },
|
|
|
labelLine: { normal: { show: checked } }
|
|
|
@@ -220,7 +101,7 @@ class BarStyle extends React.Component {
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelVisible: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -234,7 +115,7 @@ class BarStyle extends React.Component {
|
|
|
let checked = e.target.checked;
|
|
|
let seriesArr = [];
|
|
|
let labelFormatter = barStyle.labelFormatter;
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: { normal: {
|
|
|
formatterKey: checked,
|
|
|
@@ -267,7 +148,7 @@ class BarStyle extends React.Component {
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelZeroVisible: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -282,7 +163,7 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
let labelZeroVisible = barStyle.labelZeroVisible;
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: { normal: {
|
|
|
formatterKey: value,
|
|
|
@@ -315,7 +196,7 @@ class BarStyle extends React.Component {
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelFormatter: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -325,14 +206,14 @@ class BarStyle extends React.Component {
|
|
|
defaultValue={barStyle.labelPosition || 'inside'}
|
|
|
onChange={(value, item) => {
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: { normal: { position: value } }
|
|
|
});
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelPosition: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
>
|
|
|
@@ -358,7 +239,7 @@ class BarStyle extends React.Component {
|
|
|
onBlur={e => {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: {
|
|
|
normal: { distance: (value === '' || value === null || value === undefined) ? 5 : Number(value) }
|
|
|
@@ -367,7 +248,7 @@ class BarStyle extends React.Component {
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelDistance: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -379,7 +260,7 @@ class BarStyle extends React.Component {
|
|
|
onBlur={e => {
|
|
|
let value = e.target.value;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
label: {
|
|
|
normal: { rotate: (value === '' || value === null || value === undefined) ? 0 : Number(value) }
|
|
|
@@ -388,7 +269,7 @@ class BarStyle extends React.Component {
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { labelRotate: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -400,9 +281,9 @@ class BarStyle extends React.Component {
|
|
|
onChange={(value, item) => {
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xNameLocation: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
nameLocation: (value === '' || value === null || value === undefined) ? 'end' : value
|
|
|
- }} }) },
|
|
|
+ }} } }) },
|
|
|
] });
|
|
|
}}
|
|
|
>
|
|
|
@@ -419,9 +300,9 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xNameGap: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
nameGap: (value === '' || value === null || value === undefined) ? 'end' : Number(value)
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -434,9 +315,9 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xNameRotate: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
nameRotate: (value === '' || value === null || value === undefined) ? 0 : Number(value)
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -449,32 +330,15 @@ class BarStyle extends React.Component {
|
|
|
let checked = e.target.checked;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xLabelHiddenCover: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
axisLabel: {
|
|
|
interval: checked ? 'auto' : 0
|
|
|
}
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
</FormItem>
|
|
|
- {/* <FormItem label={<Tooltip title="使横轴那些超长的标签文本不要占用太多空间">最大长度</Tooltip>} {...formItemLayout}>
|
|
|
- <InputNumber
|
|
|
- defaultValue={(barStyle.xLabelMaxLength === '' || barStyle.xLabelMaxLength === null || barStyle.xLabelMaxLength === undefined) ? null : barStyle.xLabelMaxLength}
|
|
|
- placeholder={8}
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xLabelMaxLength: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
- axisLabel: {
|
|
|
- margin: (value === '' || value === null || value === undefined) ? 8 : Number(value)
|
|
|
- }
|
|
|
- } } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </FormItem> */}
|
|
|
<FormItem label={<Tooltip title="横轴标签与横轴之间的距离">位置距离</Tooltip>} {...formItemLayout}>
|
|
|
<InputNumber
|
|
|
defaultValue={(barStyle.xLabelMargin === '' || barStyle.xLabelMargin === null || barStyle.xLabelMargin === undefined) ? null : barStyle.xLabelMargin}
|
|
|
@@ -483,11 +347,11 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xLabelMargin: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
axisLabel: {
|
|
|
margin: (value === '' || value === null || value === undefined) ? 8 : Number(value)
|
|
|
}
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -500,11 +364,11 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { xLabelRotate: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { xAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { xAxis: { 0: {
|
|
|
axisLabel: {
|
|
|
rotate: (value === '' || value === null || value === undefined) ? 0 : Number(value)
|
|
|
}
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -516,9 +380,9 @@ class BarStyle extends React.Component {
|
|
|
onChange={(value, item) => {
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { yNameLocation: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { yAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { yAxis: { 0: {
|
|
|
nameLocation: (value === '' || value === null || value === undefined) ? 'end' : value,
|
|
|
- }} }) },
|
|
|
+ }} } }) },
|
|
|
] });
|
|
|
}}
|
|
|
>
|
|
|
@@ -535,9 +399,9 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { yNameGap: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { yAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { yAxis: { 0: {
|
|
|
nameGap: (value === '' || value === null || value === undefined) ? 'end' : Number(value)
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -550,9 +414,9 @@ class BarStyle extends React.Component {
|
|
|
let value = e.target.value;
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { yNameRotate: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { yAxis: { 0: {
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { yAxis: { 0: {
|
|
|
nameRotate: (value === '' || value === null || value === undefined) ? 0 : Number(value)
|
|
|
- } } }) },
|
|
|
+ } } } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
@@ -564,214 +428,18 @@ class BarStyle extends React.Component {
|
|
|
onChange={e => {
|
|
|
let checked = e.target.checked;
|
|
|
let seriesArr = [];
|
|
|
- for(let i = 0; i < chartOption.series.length; i++) {
|
|
|
+ for(let i = 0; i < chartOption.baseOption.series.length; i++) {
|
|
|
seriesArr.push({
|
|
|
stack: checked
|
|
|
});
|
|
|
}
|
|
|
dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
{ name: 'styleConfig', value: deepAssign(styleConfig, { bar: { stack: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { series: seriesArr }) },
|
|
|
+ { name: 'chartOption', value: deepAssign(chartOption, { baseOption: { series: seriesArr } }) },
|
|
|
] });
|
|
|
}}
|
|
|
/>
|
|
|
</FormItem>}
|
|
|
- {!!groupBy && !!groupBy.key && <Divider>图例</Divider>}
|
|
|
- {!!groupBy && !!groupBy.key && <Row>
|
|
|
- <Col span={!!barStyle.legendHidden ? 24 : 12}>
|
|
|
- <Form.Item label='隐藏' labelCol={{ span: !!barStyle.legendHidden ? 8 : 16 }} wrapperCol={{ span: !!barStyle.legendHidden ? 16 : 8 }}>
|
|
|
- <Checkbox
|
|
|
- checked={!!barStyle.legendHidden}
|
|
|
- onChange={e => {
|
|
|
- let checked = e.target.checked;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: checked,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendHidden: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: { show: !checked }, grid: {
|
|
|
- left: gridPosition.left,
|
|
|
- right: gridPosition.right,
|
|
|
- top: gridPosition.top,
|
|
|
- bottom: gridPosition.bottom,
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- {!!groupBy && !!groupBy.key && !barStyle.legendHidden && <Col span={12}>
|
|
|
- <Form.Item label='分页' labelCol={{ span: 16 }} wrapperCol={{ span: 8 }}>
|
|
|
- <Checkbox
|
|
|
- checked={!!barStyle.legendInPagination}
|
|
|
- onChange={e => {
|
|
|
- let checked = e.target.checked;
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendInPagination: checked } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: { type: checked ? 'scroll' : 'plain' } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </Col>}
|
|
|
- </Row>}
|
|
|
- {!!groupBy && !!groupBy.key && !barStyle.legendHidden && <Form.Item label='排布方向' {...formItemLayout}>
|
|
|
- <Select
|
|
|
- defaultValue={barStyle.legendOrient || 'vertical'}
|
|
|
- onChange={(value, item) => {
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: value,
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendOrient: value } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, {
|
|
|
- legend: { orient: value },
|
|
|
- grid: {
|
|
|
- top: gridPosition.top,
|
|
|
- left: gridPosition.left,
|
|
|
- bottom: gridPosition.bottom,
|
|
|
- right: gridPosition.right,
|
|
|
- },
|
|
|
- }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- >
|
|
|
- <Select.Option value='vertical'>纵向排布</Select.Option>
|
|
|
- <Select.Option value='horizontal'>横向排布</Select.Option>
|
|
|
- </Select>
|
|
|
- </Form.Item>}
|
|
|
- {!!groupBy && !!groupBy.key && !barStyle.legendHidden && <Form.Item label='位置' {...formItemLayout}>
|
|
|
- <Row>
|
|
|
- <Col span={8}>上边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- defaultValue={barStyle.legendPosition ? barStyle.legendPosition['top'] : null}
|
|
|
- placeholder={50}
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let legendTop = (value === '' || value === null || value === undefined) ? 50 : value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendPosition: { top: value}, gridPosition: { top: gridPosition.top } } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: {
|
|
|
- top: legendTop,
|
|
|
- }, grid: {
|
|
|
- top: gridPosition.top,
|
|
|
- bottom: gridPosition.bottom,
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>下边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- defaultValue={barStyle.legendPosition ? barStyle.legendPosition['bottom'] : null}
|
|
|
- placeholder={50}
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let legendBottom = (value === '' || value === null || value === undefined) ? 50 : value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendPosition: { bottom: value}, gridPosition: { bottom: gridPosition.bottom } } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: {
|
|
|
- bottom: legendBottom
|
|
|
- }, grid: {
|
|
|
- top: gridPosition.top,
|
|
|
- bottom: gridPosition.bottom
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>左边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- defaultValue={barStyle.legendPosition ? barStyle.legendPosition['left'] : null}
|
|
|
- placeholder='auto'
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let legendLeft = (value === '' || value === null || value === undefined) ? 'auto' : value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft,
|
|
|
- legendRight: barStyle.legendPosition ? barStyle.legendPosition.right || '5%' : '5%',
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendPosition: { left: value }, gridPosition: { left: gridPosition.left } } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: {
|
|
|
- left: legendLeft,
|
|
|
- }, grid: {
|
|
|
- left: gridPosition.left,
|
|
|
- right: gridPosition.right
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <Col span={8}>右边距:</Col>
|
|
|
- <Col span={16}>
|
|
|
- <Input
|
|
|
- defaultValue={barStyle.legendPosition ? barStyle.legendPosition['right'] : null}
|
|
|
- placeholder='5%'
|
|
|
- onBlur={e => {
|
|
|
- let value = e.target.value;
|
|
|
- let legendRight = (value === '' || value === null || value === undefined) ? '5%' : value;
|
|
|
- let gridPosition = adapteGridPosition({
|
|
|
- legendHidden: !!groupBy && !!groupBy.key ? barStyle.legendHidden : true,
|
|
|
- legendOrient: barStyle.legendOrient || 'vertical',
|
|
|
- legendLeft: barStyle.legendPosition ? barStyle.legendPosition.left || 'auto' : 'auto',
|
|
|
- legendRight,
|
|
|
- legendTop: barStyle.legendPosition ? barStyle.legendPosition.top || 50 : 50,
|
|
|
- legendBottom: barStyle.legendPosition ? barStyle.legendPosition.bottom || 50 : 50,
|
|
|
- });
|
|
|
- dispatch({ type: 'chartDesigner/setFields', fields: [
|
|
|
- { name: 'styleConfig', value: deepAssign(styleConfig, { bar: { legendPosition: { right: value}, gridPosition: { right: gridPosition.right } } }) },
|
|
|
- { name: 'chartOption', value: deepAssign(chartOption, { legend: {
|
|
|
- right: legendRight
|
|
|
- }, grid: {
|
|
|
- left: gridPosition.left,
|
|
|
- right: gridPosition.right
|
|
|
- } }) },
|
|
|
- ] });
|
|
|
- }}
|
|
|
- />
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- </Form.Item>}
|
|
|
</Form>
|
|
|
}
|
|
|
}
|