Skip to content

Commit 9eb243a

Browse files
committed
fix: Code simplicity
1 parent 855843d commit 9eb243a

File tree

1 file changed

+37
-55
lines changed

1 file changed

+37
-55
lines changed

src/chart/radar/RadarView.ts

Lines changed: 37 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ class RadarView extends ChartView {
184184
const symbolGroup = itemGroup.childAt(2) as graphic.Group;
185185
// Radar uses the visual encoded from itemStyle.
186186
const itemStyle = data.getItemVisual(idx, 'style');
187-
const color = itemStyle.fill as ColorString;
187+
const color = itemStyle.fill;
188188

189189
group.add(itemGroup);
190190

@@ -211,83 +211,65 @@ class RadarView extends ChartView {
211211
const stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();
212212
// Won't be ignore if normal state is not ignore.
213213
polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;
214+
const lineStyle = itemModel.getModel([stateName, 'lineStyle']).getLineStyle();
215+
polyline.ensureState(stateName).style = lineStyle;
216+
const areaStyle = stateModel.getAreaStyle();
217+
polygon.ensureState(stateName).style = areaStyle;
218+
const itemStateStyle = itemModel.getModel([stateName, 'itemStyle']).getItemStyle();
219+
symbolGroup.eachChild(function (symbolPath: RadarSymbol) {
220+
symbolPath.ensureState(stateName).style = zrUtil.clone(itemStateStyle);
221+
});
214222
});
215223

216224
polygon.useStyle(
217225
zrUtil.defaults(
218226
itemModel.getModel('areaStyle').getAreaStyle(),
219227
{
220228
fill: color,
229+
opacity: 0.7,
221230
decal: itemStyle.decal
222231
}
223232
)
224233
);
225-
symbolGroup.eachChild(function(symbolPath: RadarSymbol) {
234+
const emphasisModel = itemModel.getModel('emphasis');
235+
const itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();
236+
symbolGroup.eachChild(function (symbolPath: RadarSymbol) {
226237
if (symbolPath instanceof ZRImage) {
227-
const ps = symbolPath.style
228-
symbolPath.useStyle(
229-
zrUtil.extend(
230-
{
231-
image: ps.image,
232-
x: ps.x,
233-
y: ps.y,
234-
width: ps.width,
235-
height: ps.height,
236-
},
237-
itemStyle,
238-
),
239-
)
240-
} else {
241-
symbolPath.useStyle(itemStyle)
242-
symbolPath.setColor(color)
243-
symbolPath.style.strokeNoScale = true
238+
const pathStyle = symbolPath.style;
239+
symbolPath.useStyle(zrUtil.extend({
240+
// TODO other properties like x, y ?
241+
image: pathStyle.image,
242+
x: pathStyle.x, y: pathStyle.y,
243+
width: pathStyle.width, height: pathStyle.height
244+
}, itemStyle));
244245
}
245-
const emphasisModel = itemModel.getModel('emphasis')
246-
const hoverStyle = emphasisModel.getModel('itemStyle').getItemStyle()
247-
symbolPath.ensureState('emphasis').style = zrUtil.clone(hoverStyle)
248-
let txt = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx)
249-
if (txt == null || isNaN(txt as number)) {
250-
txt = ''
246+
else {
247+
symbolPath.useStyle(itemStyle);
248+
symbolPath.setColor(color);
249+
symbolPath.style.strokeNoScale = true;
251250
}
251+
252+
const pathEmphasisState = symbolPath.ensureState('emphasis');
253+
pathEmphasisState.style = zrUtil.clone(itemHoverStyle);
254+
let defaultText = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx);
255+
(defaultText == null || isNaN(defaultText as number)) && (defaultText = '');
256+
252257
setLabelStyle(
253258
symbolPath, getLabelStatesModels(itemModel),
254259
{
255260
labelFetcher: data.hostModel,
256261
labelDataIndex: idx,
257262
labelDimIndex: symbolPath.__dimIdx,
258-
defaultText: txt as string,
259-
inheritColor: color,
260-
defaultOpacity: itemStyle.opacity,
263+
defaultText: defaultText as string,
264+
inheritColor: color as ColorString,
265+
defaultOpacity: itemStyle.opacity
261266
}
262-
)
263-
})
264-
265-
function bindStateStyles(state: 'emphasis' | 'select' | 'blur') {
266-
const ls = itemModel.getModel([state, 'lineStyle']).getLineStyle()
267-
268-
const as_ = itemModel.getModel([state, 'areaStyle']).getAreaStyle()
269-
270-
const is_ = itemModel.getModel([state, 'itemStyle']).getItemStyle()
271-
272-
polyline.ensureState(state).style = ls
273-
polygon.ensureState(state).style = as_
274-
symbolGroup.eachChild(function(symbolPath: RadarSymbol) {
275-
symbolPath.ensureState(state).style = zrUtil.clone(is_)
276-
})
277-
}
278-
279-
bindStateStyles('emphasis')
280-
bindStateStyles('select')
281-
bindStateStyles('blur')
282-
283-
const emphasisModel = itemModel.getModel('emphasis')
267+
);
268+
});
284269

285270
toggleHoverEmphasis(
286-
itemGroup,
287-
emphasisModel.get('focus'),
288-
emphasisModel.get('blurScope'),
289-
emphasisModel.get('disabled'),
290-
)
271+
itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled')
272+
);
291273
});
292274

293275
this._data = data;

0 commit comments

Comments
 (0)