Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
x649585723
incubator-echarts
提交
6a7dd168
I
incubator-echarts
项目概览
x649585723
/
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,体验更适合开发者的 AI 搜索 >>
提交
6a7dd168
编写于
12月 25, 2015
作者:
L
lang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Toolbox magicType enhancement
上级
e307e1fe
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
139 addition
and
9 deletion
+139
-9
src/component/toolbox/ToolboxModel.js
src/component/toolbox/ToolboxModel.js
+2
-2
src/component/toolbox/ToolboxView.js
src/component/toolbox/ToolboxView.js
+50
-1
src/component/toolbox/feature/MagicType.js
src/component/toolbox/feature/MagicType.js
+87
-6
未找到文件。
src/component/toolbox/ToolboxModel.js
浏览文件 @
6a7dd168
...
...
@@ -41,9 +41,9 @@ define(function (require) {
padding
:
10
,
item
Gap
:
10
,
item
Size
:
15
,
item
Size
:
1
8
,
item
Gap
:
8
,
showTitle
:
true
,
...
...
src/component/toolbox/ToolboxView.js
浏览文件 @
6a7dd168
...
...
@@ -5,6 +5,7 @@ define(function (require) {
var
graphic
=
require
(
'
../../util/graphic
'
);
var
Model
=
require
(
'
../../model/Model
'
);
var
listComponentHelper
=
require
(
'
../helper/listComponent
'
);
var
textContain
=
require
(
'
zrender/contain/text
'
);
return
require
(
'
../../echarts
'
).
extendComponentView
({
...
...
@@ -36,18 +37,38 @@ define(function (require) {
var
normalStyle
=
iconStyleModel
.
getModel
(
'
normal
'
).
getItemStyle
();
var
hoverStyle
=
iconStyleModel
.
getModel
(
'
emphasis
'
).
getItemStyle
();
// If one feature has mutiple icon. they are orginaized as
// {
// icon: {
// foo: '',
// bar: ''
// },
// title: {
// foo: '',
// bar: ''
// }
// }
var
icons
=
feature
.
getIcons
?
feature
.
getIcons
()
:
featureModel
.
get
(
'
icon
'
);
var
titles
=
featureModel
.
get
(
'
title
'
)
||
{};
if
(
typeof
icons
===
'
string
'
)
{
var
icon
=
icons
;
var
title
=
titles
;
icons
=
{};
titles
=
{};
icons
[
featureName
]
=
icon
;
titles
[
featureName
]
=
title
;
}
zrUtil
.
each
(
icons
,
function
(
icon
,
iconName
)
{
var
path
=
graphic
.
makePath
(
icon
,
{
style
:
normalStyle
,
hoverStyle
:
hoverStyle
,
hoverStyle
:
zrUtil
.
extend
({
text
:
titles
[
iconName
],
textPosition
:
'
bottom
'
,
textFill
:
hoverStyle
.
fill
||
hoverStyle
.
stroke
||
'
#000
'
},
hoverStyle
),
rectHover
:
true
},
{
x
:
-
itemSize
/
2
,
...
...
@@ -70,6 +91,34 @@ define(function (require) {
// Render background after group is layout
// FIXME
listComponentHelper
.
addBackground
(
group
,
toolboxModel
);
// Adjust icon title positions to avoid them out of screen
group
.
eachChild
(
function
(
icon
)
{
var
hoverStyle
=
icon
.
hoverStyle
;
// May be background element
if
(
hoverStyle
&&
hoverStyle
.
text
)
{
var
rect
=
textContain
.
getBoundingRect
(
hoverStyle
.
text
,
hoverStyle
.
font
);
var
offsetX
=
icon
.
position
[
0
]
+
group
.
position
[
0
];
var
offsetY
=
icon
.
position
[
1
]
+
group
.
position
[
1
]
+
itemSize
;
var
needPutOnTop
=
false
;
if
(
offsetY
+
rect
.
height
>
api
.
getHeight
())
{
hoverStyle
.
textPosition
=
'
top
'
;
needPutOnTop
=
true
;
}
var
topOffset
=
needPutOnTop
?
(
-
5
-
rect
.
height
)
:
(
itemSize
+
8
);
if
(
offsetX
+
rect
.
width
/
2
>
api
.
getWidth
())
{
hoverStyle
.
textPosition
=
[
'
100%
'
,
topOffset
];
hoverStyle
.
textAlign
=
'
right
'
;
}
else
if
(
offsetX
-
rect
.
width
/
2
<
0
)
{
hoverStyle
.
textPosition
=
[
0
,
topOffset
];
hoverStyle
.
textAlign
=
'
left
'
;
}
}
});
}
});
});
\ No newline at end of file
src/component/toolbox/feature/MagicType.js
浏览文件 @
6a7dd168
...
...
@@ -9,10 +9,11 @@ define(function(require) {
MagicType
.
defaultOption
=
{
show
:
true
,
type
:
[],
// Icon group
icon
:
{
line
:
'
M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4
'
,
bar
:
'
M
8.5,22.9h6.9V50H8.5V22.9z M26.7,12.9h6.9v37h-6.9V12.9z M45,2h6.9v48H45V2z M3.3,58H5
7
'
,
bar
:
'
M
6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.
7
'
,
stack
:
'
M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z
'
,
tiled
:
'
M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z
'
},
...
...
@@ -21,7 +22,9 @@ define(function(require) {
bar
:
'
切换为柱状图
'
,
stack
:
'
切换为堆叠
'
,
tiled
:
'
切换为平铺
'
}
},
option
:
{},
seriesIndex
:
{}
};
var
proto
=
MagicType
.
prototype
;
...
...
@@ -30,7 +33,7 @@ define(function(require) {
var
model
=
this
.
model
;
var
availableIcons
=
model
.
get
(
'
icon
'
);
var
icons
=
{};
zrUtil
.
each
(
model
.
get
(
'
option
'
),
function
(
option
,
type
)
{
zrUtil
.
each
(
model
.
get
(
'
type
'
),
function
(
type
)
{
if
(
availableIcons
[
type
])
{
icons
[
type
]
=
availableIcons
[
type
];
}
...
...
@@ -38,11 +41,89 @@ define(function(require) {
return
icons
;
};
var
seriesOptGenreator
=
{
'
line
'
:
function
(
seriesType
,
seriesId
,
seriesModel
,
model
)
{
if
(
seriesType
===
'
bar
'
)
{
return
zrUtil
.
merge
({
id
:
seriesId
,
type
:
'
line
'
,
// Preserve data related option
data
:
seriesModel
.
get
(
'
data
'
),
stack
:
seriesModel
.
get
(
'
stack
'
)
},
model
.
get
(
'
option.line
'
));
}
},
'
bar
'
:
function
(
seriesType
,
seriesId
,
seriesModel
,
model
)
{
if
(
seriesType
===
'
line
'
)
{
return
zrUtil
.
merge
({
id
:
seriesId
,
type
:
'
bar
'
,
// Preserve data related option
data
:
seriesModel
.
get
(
'
data
'
),
stack
:
seriesModel
.
get
(
'
stack
'
)
},
model
.
get
(
'
option.bar
'
));
}
},
'
stack
'
:
function
(
seriesType
,
seriesId
,
seriesModel
,
model
)
{
if
(
seriesType
===
'
line
'
||
seriesType
===
'
bar
'
)
{
return
{
id
:
seriesId
,
stack
:
'
__ec_magicType_stack__
'
};
}
},
'
tiled
'
:
function
(
seriesType
,
seriesId
,
seriesModel
,
model
)
{
if
(
seriesType
===
'
line
'
||
seriesType
===
'
bar
'
)
{
return
{
id
:
seriesId
,
stack
:
''
};
}
}
};
proto
.
onclick
=
function
(
ecModel
,
api
,
type
)
{
if
(
type
===
'
stack
'
)
{
// var seriesModels =
var
model
=
this
.
model
;
var
seriesIndex
=
model
.
get
(
'
seriesIndex.
'
+
type
);
if
(
type
===
'
stack
'
||
type
===
'
tiled
'
||
type
===
'
bar
'
||
type
===
'
line
'
)
{
var
newOption
=
{
series
:
[]
};
ecModel
.
eachComponent
(
{
mainType
:
'
series
'
,
seriesIndex
:
seriesIndex
},
function
(
seriesModel
)
{
var
seriesType
=
seriesModel
.
subType
;
var
seriesId
=
seriesModel
.
id
;
var
newSeriesOpt
=
seriesOptGenreator
[
type
](
seriesType
,
seriesId
,
seriesModel
,
model
);
if
(
newSeriesOpt
)
{
// PENDING If merge original option?
zrUtil
.
defaults
(
newSeriesOpt
,
seriesModel
.
option
);
newOption
.
series
.
push
(
newSeriesOpt
);
}
}
);
api
.
dispatchAction
({
type
:
'
magicType
'
,
newOption
:
newOption
});
}
}
};
var
echarts
=
require
(
'
../../../echarts
'
);
echarts
.
registerAction
({
type
:
'
magicType
'
,
event
:
'
magicType
'
,
update
:
'
reoption
'
},
function
(
payload
,
ecModel
)
{
ecModel
.
mergeOption
(
payload
.
newOption
);
});
require
(
'
../featureManager
'
).
register
(
'
magicType
'
,
MagicType
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录