Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
z1593
incubator-echarts
提交
320ffed9
I
incubator-echarts
项目概览
z1593
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
320ffed9
编写于
10月 17, 2015
作者:
L
lang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Global#eachSeriesAll, Global#eachSeriesByTypeAll, Pie label position center
上级
3008b023
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
124 addition
and
76 deletion
+124
-76
src/chart/pie/PieSeries.js
src/chart/pie/PieSeries.js
+2
-1
src/chart/pie/labelLayout.js
src/chart/pie/labelLayout.js
+29
-17
src/chart/pie/pieLayout.js
src/chart/pie/pieLayout.js
+2
-2
src/chart/pie/pieVisual.js
src/chart/pie/pieVisual.js
+19
-13
src/component/legend/LegendModel.js
src/component/legend/LegendModel.js
+1
-1
src/model/Global.js
src/model/Global.js
+50
-24
src/model/mixin/textStyle.js
src/model/mixin/textStyle.js
+2
-2
src/visual/defaultColor.js
src/visual/defaultColor.js
+1
-1
src/visual/symbol.js
src/visual/symbol.js
+18
-15
未找到文件。
src/chart/pie/PieSeries.js
浏览文件 @
320ffed9
...
...
@@ -81,7 +81,7 @@ define(function(require) {
legendHoverLink
:
true
,
// 默认全局居中
center
:
[
'
50%
'
,
'
50%
'
],
radius
:
[
0
,
'
75
%
'
],
radius
:
[
0
,
'
40
%
'
],
// 默认顺时针
clockWise
:
true
,
startAngle
:
90
,
...
...
@@ -101,6 +101,7 @@ define(function(require) {
borderWidth
:
1
,
label
:
{
show
:
true
,
// 'outer', 'inside', 'center'
position
:
'
outer
'
// formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调
// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
...
...
src/chart/pie/labelLayout.js
浏览文件 @
320ffed9
...
...
@@ -13,14 +13,14 @@ define(function (require) {
var
labelLineLen
=
labelLineModel
.
get
(
'
length
'
);
var
labelLineLen2
=
labelLineModel
.
get
(
'
length2
'
);
var
isLabelInside
=
labelModel
.
get
(
'
position
'
)
===
'
inside
'
;
var
avoidLabelOverlap
=
seriesModel
.
get
(
'
avoidLabelOverlap
'
);
data
.
each
(
function
(
idx
)
{
var
layout
=
data
.
getItemLayout
(
idx
);
var
itemModel
=
data
.
getItemModel
(
idx
);
var
font
=
itemModel
.
getModel
(
'
itemStyle.normal.label.textStyle
'
).
getFont
();
var
labelModel
=
itemModel
.
getModel
(
'
itemStyle.normal.label
'
);
var
font
=
labelModel
.
getModel
(
'
textStyle
'
).
getFont
();
var
labelPosition
=
labelModel
.
get
(
'
position
'
);
var
midAngle
=
(
layout
.
startAngle
+
layout
.
endAngle
)
/
2
;
var
dx
=
Math
.
cos
(
midAngle
);
...
...
@@ -28,25 +28,37 @@ define(function (require) {
var
r
=
layout
.
r
;
var
x1
=
(
isLabelInside
?
r
/
2
*
dx
:
r
*
dx
)
+
layout
.
cx
;
var
y1
=
(
isLabelInside
?
r
/
2
*
dy
:
r
*
dy
)
+
layout
.
cy
;
var
textX
=
x1
+
dx
*
3
;
var
textY
=
y1
+
dy
*
3
;
var
textX
;
var
textY
;
var
linePoints
;
var
textAlign
;
if
(
labelPosition
===
'
center
'
)
{
textX
=
layout
.
cx
;
textY
=
layout
.
cy
;
textAlign
=
'
center
'
;
}
else
{
var
isLabelInside
=
labelPosition
===
'
inside
'
;
var
x1
=
(
isLabelInside
?
r
/
2
*
dx
:
r
*
dx
)
+
layout
.
cx
;
var
y1
=
(
isLabelInside
?
r
/
2
*
dy
:
r
*
dy
)
+
layout
.
cy
;
textX
=
x1
+
dx
*
3
;
textY
=
y1
+
dy
*
3
;
if
(
!
isLabelInside
)
{
var
x2
=
x1
+
dx
*
labelLineLen
;
var
y2
=
y1
+
dy
*
labelLineLen
;
var
x3
=
x2
+
((
dx
<
0
?
-
1
:
1
)
*
labelLineLen2
);
var
y3
=
y2
;
if
(
!
isLabelInside
)
{
var
x2
=
x1
+
dx
*
labelLineLen
;
var
y2
=
y1
+
dy
*
labelLineLen
;
var
x3
=
x2
+
((
dx
<
0
?
-
1
:
1
)
*
labelLineLen2
);
var
y3
=
y2
;
textX
=
x3
+
(
dx
<
0
?
-
5
:
5
);
textY
=
y3
;
linePoints
=
[[
x1
,
y1
],
[
x2
,
y2
],
[
x3
,
y3
]];
}
textX
=
x3
+
(
dx
<
0
?
-
5
:
5
);
textY
=
y3
;
linePoints
=
[[
x1
,
y1
],
[
x2
,
y2
],
[
x3
,
y3
]];
textAlign
=
isLabelInside
?
'
center
'
:
(
dx
>
0
?
'
left
'
:
'
right
'
);
}
var
textAlign
=
isLabelInside
?
'
center
'
:
(
dx
>
0
?
'
left
'
:
'
right
'
);
var
textBaseline
=
'
middle
'
;
layout
.
label
=
{
...
...
src/chart/pie/pieLayout.js
浏览文件 @
320ffed9
...
...
@@ -16,8 +16,8 @@ define(function (require) {
var
size
=
Math
.
min
(
width
,
height
);
var
cx
=
parsePercent
(
center
[
0
],
width
);
var
cy
=
parsePercent
(
center
[
1
],
height
);
var
r0
=
parsePercent
(
radius
[
0
],
size
)
/
2
;
var
r
=
parsePercent
(
radius
[
1
],
size
)
/
2
;
var
r0
=
parsePercent
(
radius
[
0
],
size
);
var
r
=
parsePercent
(
radius
[
1
],
size
);
var
data
=
seriesModel
.
getData
();
...
...
src/chart/pie/pieVisual.js
浏览文件 @
320ffed9
define
(
function
(
require
)
{
return
function
(
ecModel
)
{
ecModel
.
eachSeriesByType
(
'
pie
'
,
function
(
seriesModel
)
{
var
colorList
=
ecModel
.
get
(
'
color
'
);
var
data
=
seriesModel
.
getData
();
var
dataAll
=
seriesModel
.
getDataAll
();
data
.
each
(
function
(
idx
)
{
var
itemModel
=
data
.
getItemModel
(
idx
);
var
rawIdx
=
data
.
getRawIndex
(
idx
);
var
color
=
itemModel
.
get
(
'
itemStyle.normal.color
'
)
||
colorList
[
rawIdx
%
colorList
.
length
];
// Legend use the visual info in data before processed
dataAll
.
setItemVisual
(
rawIdx
,
'
color
'
,
color
);
data
.
setItemVisual
(
idx
,
'
color
'
,
color
);
});
var
offset
=
0
;
var
colorList
=
ecModel
.
get
(
'
color
'
);
ecModel
.
eachSeriesByTypeAll
(
'
pie
'
,
function
(
seriesModel
)
{
if
(
!
ecModel
.
isSeriesFiltered
(
seriesModel
))
{
var
data
=
seriesModel
.
getData
();
var
dataAll
=
seriesModel
.
getDataAll
();
data
.
each
(
function
(
idx
)
{
var
itemModel
=
data
.
getItemModel
(
idx
);
var
rawIdx
=
data
.
getRawIndex
(
idx
);
var
color
=
itemModel
.
get
(
'
itemStyle.normal.color
'
)
||
colorList
[(
offset
+
rawIdx
)
%
colorList
.
length
];
// Legend use the visual info in data before processed
dataAll
.
setItemVisual
(
rawIdx
,
'
color
'
,
color
);
data
.
setItemVisual
(
idx
,
'
color
'
,
color
);
});
}
offset
+=
dataAll
.
count
();
});
}
});
\ No newline at end of file
src/component/legend/LegendModel.js
浏览文件 @
320ffed9
...
...
@@ -25,7 +25,7 @@ define(function(require) {
return
new
Model
(
dataItem
,
this
);
},
this
);
var
availableNames
=
zrUtil
.
map
(
ecModel
.
getSeries
All
(),
function
(
series
)
{
var
availableNames
=
zrUtil
.
map
(
ecModel
.
getSeries
(),
function
(
series
)
{
return
series
.
name
;
});
ecModel
.
eachSeries
(
function
(
seriesModel
)
{
...
...
src/model/Global.js
浏览文件 @
320ffed9
...
...
@@ -11,6 +11,7 @@ define(function (require) {
var
zrUtil
=
require
(
'
zrender/core/util
'
);
var
Model
=
require
(
'
./Model
'
);
var
each
=
zrUtil
.
each
;
var
ComponentModel
=
require
(
'
./Component
'
);
...
...
@@ -52,10 +53,11 @@ define(function (require) {
this
.
_componentsIdMap
=
{};
/**
* All components before processing
* @type {Object.<string, module:echarts/model/Model>}
* @private
*/
this
.
_componentsMap
BeforeProcessing
=
{};
this
.
_componentsMap
All
=
{};
/**
* @type {module:echarts/model/Model}
...
...
@@ -99,7 +101,7 @@ define(function (require) {
var
newCptTypes
=
[];
// 如果不存在对应的 component model 则直接 merge
zrUtil
.
each
(
newOption
,
function
(
componentOption
,
componentType
)
{
each
(
newOption
,
function
(
componentOption
,
componentType
)
{
if
(
!
ComponentModel
.
hasClass
(
componentType
))
{
if
(
componentOption
&&
typeof
componentOption
===
'
object
'
)
{
option
[
componentType
]
=
option
[
componentType
]
==
null
...
...
@@ -163,8 +165,8 @@ define(function (require) {
}
// Backup data
zrUtil
.
each
(
componentsMap
,
function
(
components
,
componentType
)
{
this
.
_componentsMap
BeforeProcessing
[
componentType
]
=
components
.
slice
();
each
(
componentsMap
,
function
(
components
,
componentType
)
{
this
.
_componentsMap
All
[
componentType
]
=
components
.
slice
();
},
this
);
},
...
...
@@ -193,7 +195,7 @@ define(function (require) {
var
existComponents
=
(
this
.
_componentsMap
[
componentType
]
||
[]).
slice
();
// Mapping by name if specified.
zrUtil
.
each
(
newComponentOptionList
,
function
(
componentOption
,
index
)
{
each
(
newComponentOptionList
,
function
(
componentOption
,
index
)
{
if
(
!
componentOption
.
name
)
{
return
;
}
...
...
@@ -206,7 +208,7 @@ define(function (require) {
});
// Otherwise mapping by index.
zrUtil
.
each
(
newComponentOptionList
,
function
(
componentOption
,
index
)
{
each
(
newComponentOptionList
,
function
(
componentOption
,
index
)
{
if
(
!
result
[
index
]
&&
existComponents
[
index
])
{
result
[
index
]
=
existComponents
[
index
];
}
...
...
@@ -260,14 +262,14 @@ define(function (require) {
if
(
typeof
type
===
'
function
'
)
{
context
=
cb
;
cb
=
type
;
zrUtil
.
each
(
this
.
_componentsMap
,
function
(
components
,
componentType
)
{
zrUtil
.
each
(
components
,
function
(
component
,
index
)
{
each
(
this
.
_componentsMap
,
function
(
components
,
componentType
)
{
each
(
components
,
function
(
component
,
index
)
{
cb
.
call
(
this
,
componentType
,
component
,
index
);
},
this
);
},
context
);
}
else
{
zrUtil
.
each
(
this
.
_componentsMap
[
type
],
cb
,
context
);
each
(
this
.
_componentsMap
[
type
],
cb
,
context
);
}
},
...
...
@@ -295,9 +297,7 @@ define(function (require) {
* @return {module:echarts/model/Series}
*/
getSeriesByName
:
function
(
name
,
beforeProcessing
)
{
var
series
=
beforeProcessing
?
this
.
_componentsMapBeforeProcessing
.
series
:
this
.
_componentsMap
.
series
;
var
series
=
this
[
'
_componentsMap
'
+
(
beforeProcessing
?
'
All
'
:
''
)].
series
;
for
(
var
i
=
0
,
len
=
series
.
length
;
i
<
len
;
i
++
)
{
// name should be unique.
if
(
series
[
i
].
name
===
name
)
{
...
...
@@ -314,9 +314,7 @@ define(function (require) {
*/
getSeriesByIndex
:
function
(
seriesIndex
,
beforeProcessing
)
{
// return this._componentsMap.series[seriesIndex];
var
series
=
beforeProcessing
?
this
.
_componentsMapBeforeProcessing
.
series
:
this
.
_componentsMap
.
series
;
var
series
=
this
[
'
_componentsMap
'
+
(
beforeProcessing
?
'
All
'
:
''
)].
series
;
for
(
var
i
=
0
,
len
=
series
.
length
;
i
<
len
;
i
++
)
{
// name should be unique.
if
(
series
[
i
].
seriesIndex
===
seriesIndex
)
{
...
...
@@ -327,18 +325,20 @@ define(function (require) {
/**
* @param {string} type
* @param {boolean} beforeProcessing
* @return {Array.<module:echarts/model/Series>}
*/
getSeriesByType
:
function
(
type
)
{
return
zrUtil
.
filter
(
this
.
_componentsMap
.
series
,
function
(
series
)
{
return
ComponentModel
.
parseComponentType
(
series
.
type
).
sub
===
type
;
getSeriesByType
:
function
(
type
,
beforeProcessing
)
{
var
series
=
this
[
'
_componentsMap
'
+
(
beforeProcessing
?
'
All
'
:
''
)].
series
;
return
zrUtil
.
filter
(
series
,
function
(
oneSeries
)
{
return
ComponentModel
.
parseComponentType
(
oneSeries
.
type
).
sub
===
type
;
});
},
/**
* @return {Array.<module:echarts/model/Series>}
*/
getSeries
All
:
function
()
{
getSeries
:
function
()
{
return
this
.
_componentsMap
.
series
.
slice
();
},
...
...
@@ -347,7 +347,16 @@ define(function (require) {
* @param {*} context
*/
eachSeries
:
function
(
cb
,
context
)
{
zrUtil
.
each
(
this
.
_componentsMap
.
series
,
cb
,
context
);
each
(
this
.
_componentsMap
.
series
,
cb
,
context
);
},
/**
* Iterate all series before filtered
* @param {Function} cb
* @param {*} context
*/
eachSeriesAll
:
function
(
cb
,
context
)
{
each
(
this
.
_componentsMapAll
.
series
,
cb
,
context
);
},
/**
...
...
@@ -356,7 +365,24 @@ define(function (require) {
* @param {*} context
*/
eachSeriesByType
:
function
(
type
,
cb
,
context
)
{
return
zrUtil
.
each
(
this
.
getSeriesByType
(
type
),
cb
,
context
);
return
each
(
this
.
getSeriesByType
(
type
),
cb
,
context
);
},
/**
* Iterate all series before filtered of given type
* @parma {string} type
* @param {Function} cb
* @param {*} context
*/
eachSeriesByTypeAll
:
function
(
type
,
cb
,
context
)
{
return
each
(
this
.
getSeriesByType
(
type
,
true
),
cb
,
context
);
},
/**
* @param {}
*/
isSeriesFiltered
:
function
(
seriesModel
)
{
return
zrUtil
.
indexOf
(
this
.
_componentsMap
.
series
,
seriesModel
)
<
0
;
},
/**
...
...
@@ -385,7 +411,7 @@ define(function (require) {
var
componentsMap
=
this
.
_componentsMap
;
var
componentTypes
=
[];
zrUtil
.
each
(
this
.
_componentsMapBeforeProcessing
,
function
(
components
,
componentType
)
{
each
(
this
.
_componentsMapAll
,
function
(
components
,
componentType
)
{
componentsMap
[
componentType
]
=
components
.
slice
();
componentTypes
.
push
(
componentType
);
});
...
...
@@ -394,7 +420,7 @@ define(function (require) {
componentTypes
,
ComponentModel
.
getAllClassMainTypes
(),
function
(
componentType
,
dependencies
)
{
zrUtil
.
each
(
componentsMap
[
componentType
],
function
(
component
)
{
each
(
componentsMap
[
componentType
],
function
(
component
)
{
component
.
restoreData
();
});
}
...
...
@@ -412,7 +438,7 @@ define(function (require) {
}
var
ret
=
{};
zrUtil
.
each
(
types
,
function
(
type
)
{
each
(
types
,
function
(
type
)
{
ret
[
type
]
=
(
this
.
_componentsMap
[
type
]
||
[]).
slice
();
},
this
);
...
...
src/model/mixin/textStyle.js
浏览文件 @
320ffed9
...
...
@@ -4,8 +4,8 @@ define({
return
[
this
.
get
(
'
fontStyle
'
),
this
.
get
(
'
fontWeight
'
),
this
.
get
(
'
fontSize
'
)
+
'
px
'
,
this
.
get
(
'
fontFamily
'
)
(
this
.
get
(
'
fontSize
'
)
||
12
)
+
'
px
'
,
this
.
get
(
'
fontFamily
'
)
||
'
sans-serif
'
].
join
(
'
'
);
},
...
...
src/visual/defaultColor.js
浏览文件 @
320ffed9
define
(
function
(
require
)
{
return
function
(
ecModel
)
{
ecModel
.
eachSeries
(
function
(
seriesModel
)
{
ecModel
.
eachSeries
All
(
function
(
seriesModel
)
{
var
colorList
=
ecModel
.
get
(
'
color
'
);
var
data
=
seriesModel
.
getData
();
var
color
=
seriesModel
.
get
(
'
itemStyle.normal.color
'
)
// Set in itemStyle
...
...
src/visual/symbol.js
浏览文件 @
320ffed9
define
(
function
(
require
)
{
return
function
(
seriesType
,
defaultSymbolType
,
legendSymbol
,
ecModel
,
api
)
{
ecModel
.
eachSeriesByType
(
seriesType
,
function
(
seriesModel
)
{
ecModel
.
eachSeriesByType
All
(
seriesType
,
function
(
seriesModel
)
{
var
data
=
seriesModel
.
getData
();
var
symbolType
=
seriesModel
.
get
(
'
symbol
'
)
||
defaultSymbolType
;
...
...
@@ -13,23 +13,26 @@ define(function (require) {
symbolSize
:
symbolSize
});
if
(
typeof
symbolSize
===
'
function
'
)
{
// Only visible series has each data be visual encoded
if
(
!
ecModel
.
isSeriesFiltered
(
seriesModel
))
{
if
(
typeof
symbolSize
===
'
function
'
)
{
data
.
each
(
function
(
idx
)
{
var
rawValue
=
data
.
getRawValue
(
idx
);
data
.
setItemVisual
(
idx
,
'
symbolSize
'
,
symbolSize
(
rawValue
))
});
}
data
.
each
(
function
(
idx
)
{
var
rawValue
=
data
.
getRawValue
(
idx
);
data
.
setItemVisual
(
idx
,
'
symbolSize
'
,
symbolSize
(
rawValue
))
var
itemModel
=
data
.
getItemModel
(
idx
);
var
symbolType
=
itemModel
.
get
(
'
symbol
'
,
true
);
var
symbolSize
=
itemModel
.
get
(
'
symbolSize
'
,
true
);
if
(
symbolType
!=
null
&&
symbolType
!==
'
none
'
)
{
data
.
setItemVisual
(
idx
,
'
symbol
'
,
symbolType
);
if
(
symbolSize
!=
null
)
{
data
.
setItemVisual
(
idx
,
'
symbolSize
'
,
symbolSize
);
}
}
});
}
data
.
each
(
function
(
idx
)
{
var
itemModel
=
data
.
getItemModel
(
idx
);
var
symbolType
=
itemModel
.
get
(
'
symbol
'
,
true
);
var
symbolSize
=
itemModel
.
get
(
'
symbolSize
'
,
true
);
if
(
symbolType
!=
null
&&
symbolType
!==
'
none
'
)
{
data
.
setItemVisual
(
idx
,
'
symbol
'
,
symbolType
);
if
(
symbolSize
!=
null
)
{
data
.
setItemVisual
(
idx
,
'
symbolSize
'
,
symbolSize
);
}
}
});
});
};
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录