Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
mindinsight
提交
876bf666
M
mindinsight
项目概览
MindSpore
/
mindinsight
通知
7
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindinsight
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
876bf666
编写于
5月 14, 2020
作者:
P
ph
提交者:
WeiFeng
5月 14, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add graph guild
graph guide
上级
4a5f25c0
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
501 addition
and
67 deletion
+501
-67
mindinsight/ui/src/assets/images/graph-step1.png
mindinsight/ui/src/assets/images/graph-step1.png
+0
-0
mindinsight/ui/src/assets/images/graph-step2.png
mindinsight/ui/src/assets/images/graph-step2.png
+0
-0
mindinsight/ui/src/assets/images/graph-step3.png
mindinsight/ui/src/assets/images/graph-step3.png
+0
-0
mindinsight/ui/src/assets/images/graph-stepimg1.svg
mindinsight/ui/src/assets/images/graph-stepimg1.svg
+92
-0
mindinsight/ui/src/assets/images/graph-stepimg2.svg
mindinsight/ui/src/assets/images/graph-stepimg2.svg
+40
-0
mindinsight/ui/src/assets/images/graph-stepimg3.svg
mindinsight/ui/src/assets/images/graph-stepimg3.svg
+37
-0
mindinsight/ui/src/assets/images/guideIcon.svg
mindinsight/ui/src/assets/images/guideIcon.svg
+19
-0
mindinsight/ui/src/assets/images/guideIconHover.svg
mindinsight/ui/src/assets/images/guideIconHover.svg
+17
-0
mindinsight/ui/src/locales/zh-cn.json
mindinsight/ui/src/locales/zh-cn.json
+13
-2
mindinsight/ui/src/views/train-manage/graph.vue
mindinsight/ui/src/views/train-manage/graph.vue
+283
-65
未找到文件。
mindinsight/ui/src/assets/images/graph-step1.png
0 → 100644
浏览文件 @
876bf666
315.8 KB
mindinsight/ui/src/assets/images/graph-step2.png
0 → 100644
浏览文件 @
876bf666
334.3 KB
mindinsight/ui/src/assets/images/graph-step3.png
0 → 100644
浏览文件 @
876bf666
306.5 KB
mindinsight/ui/src/assets/images/graph-stepimg1.svg
0 → 100644
浏览文件 @
876bf666
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"296px"
height=
"91px"
viewBox=
"0 0 296 91"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>
编组 24
</title>
<desc>
Created with Sketch.
</desc>
<defs>
<rect
id=
"path-1"
x=
"0"
y=
"0"
width=
"264.132893"
height=
"69"
rx=
"2"
></rect>
</defs>
<g
id=
"引导页"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-24"
>
<g
id=
"编组-20"
>
<g
id=
"编组-12"
>
<rect
id=
"矩形"
fill-opacity=
"0.8"
fill=
"#EDF3FF"
fill-rule=
"nonzero"
opacity=
"0.513020833"
x=
"0"
y=
"0"
width=
"296"
height=
"91"
></rect>
<g
id=
"编组-15"
transform=
"translate(17.000000, 16.000000)"
>
<g
id=
"编组-9"
>
<g
id=
"矩形"
>
<mask
id=
"mask-2"
fill=
"white"
>
<use
xlink:href=
"#path-1"
></use>
</mask>
<use
id=
"蒙版"
fill=
"#DDE6FF"
xlink:href=
"#path-1"
></use>
<g
id=
"编组-17"
mask=
"url(#mask-2)"
>
<g
transform=
"translate(10.329219, 9.000000)"
></g>
</g>
</g>
<g
id=
"编组-8"
transform=
"translate(10.329219, 8.000000)"
>
<g
id=
"编组-11"
>
<rect
id=
"矩形"
fill=
"#FFFFFF"
fill-rule=
"nonzero"
x=
"0"
y=
"0"
width=
"134.279851"
height=
"57"
rx=
"1"
></rect>
<g
id=
"编组-2"
transform=
"translate(29.512055, 7.000000)"
>
<path
d=
"M35.4144661,15 C53.5759033,13.5145556 64.3969902,10.847889 67.8777268,7"
id=
"路径-3"
stroke=
"#E1E9FF"
></path>
<path
d=
"M35.4144661,15 C38.5024271,18.9230769 43.4211029,21.9230769 50.1704937,24"
id=
"路径-5"
stroke=
"#E1E9FF"
></path>
<path
d=
"M35.4144661,15 C28.6977869,21 23.7791111,24 20.6584386,24"
id=
"路径-7"
stroke=
"#E1E9FF"
></path>
<path
d=
"M50.1704937,24 C64.4508747,25 72.8126236,25.25 75.2557405,24.75"
id=
"路径-6"
stroke=
"#E1E9FF"
></path>
<path
d=
"M35.4144661,15 C17.2492874,13.8319275 6.92006809,12.1652608 4.42680827,10"
id=
"路径-4"
stroke=
"#E1E9FF"
></path>
<path
d=
"M4.42680827,10 C16.0581322,4.03277918 22.9442784,1.40378251 25.0852468,2.11301"
id=
"路径-8"
stroke=
"#E1E9FF"
></path>
<ellipse
id=
"椭圆形"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"36.1522675"
cy=
"14.5"
rx=
"6.6402124"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"70.0911309"
cy=
"5"
rx=
"5.16460964"
ry=
"2"
></ellipse>
<ellipse
id=
"椭圆形备份-6"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"25.8230482"
cy=
"2"
rx=
"5.16460964"
ry=
"2"
></ellipse>
<ellipse
id=
"椭圆形备份-3"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"50.9082951"
cy=
"24"
rx=
"5.16460964"
ry=
"2"
></ellipse>
<ellipse
id=
"椭圆形备份-5"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"19.9206372"
cy=
"24"
rx=
"5.16460964"
ry=
"2"
></ellipse>
<ellipse
id=
"椭圆形备份-4"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"75.2557405"
cy=
"25"
rx=
"2.95120551"
ry=
"1"
></ellipse>
<ellipse
id=
"椭圆形备份-2"
fill=
"#AEBCEB"
fill-rule=
"nonzero"
cx=
"5.16460964"
cy=
"10"
rx=
"5.16460964"
ry=
"2"
></ellipse>
<line
x1=
"35.4144661"
y1=
"34"
x2=
"35.4144661"
y2=
"38"
id=
"路径-9"
stroke=
"#E1E9FF"
></line>
<polygon
id=
"矩形"
fill=
"#E1E9FF"
points=
"30.9876579 36 39.8412744 36 35.4144661 39"
></polygon>
</g>
<g
id=
"编组-7"
transform=
"translate(7.378014, 31.000000)"
>
<g
id=
"编组-10"
transform=
"translate(28.123253, 4.235294)"
></g>
<g
id=
"主机-(2)"
></g>
</g>
</g>
</g>
<g
id=
"编组-11"
transform=
"translate(78.206946, 39.000000)"
>
<g
id=
"编组-7"
>
<g
id=
"编组-10"
transform=
"translate(26.647650, 4.294118)"
></g>
<g
id=
"主机-(2)"
></g>
</g>
</g>
</g>
</g>
<path
d=
"M27.5,20 L38.5,20 C38.7761424,20 39,20.2238576 39,20.5 C39,20.7761424 38.7761424,21 38.5,21 L27.5,21 C27.2238576,21 27,20.7761424 27,20.5 C27,20.2238576 27.2238576,20 27.5,20 Z"
id=
"矩形备份-29复制备份"
fill=
"#6882DA"
fill-rule=
"nonzero"
></path>
<rect
id=
"矩形备份"
fill=
"#E1E9FF"
fill-rule=
"nonzero"
x=
"104"
y=
"41"
width=
"9"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-3"
fill=
"#E1E9FF"
fill-rule=
"nonzero"
x=
"86"
y=
"53"
width=
"9"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-5"
fill=
"#E1E9FF"
fill-rule=
"nonzero"
x=
"101"
y=
"51"
width=
"9"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-2"
fill=
"#E1E9FF"
fill-rule=
"nonzero"
x=
"72"
y=
"41"
width=
"10"
height=
"1"
rx=
"0.5"
></rect>
<polygon
id=
"Path"
fill=
"#6882DA"
fill-rule=
"nonzero"
points=
"240.749138 45.4941667 236.64241 47.85025 236.027576 49 244 45.4900833 236 42 236.625048 43.148"
></polygon>
<path
d=
"M196.558106,44 C194.592539,44 193,44.8954984 193,46 L193.97274,46 C194.021521,45.181672 195.10043,44.5450161 196.560976,44.5450161 C197.654232,44.5450161 198.747489,44.9212219 199.074605,45.6366559 L198.176471,45.6366559 L198.176471,46 L200.116212,46 L201,45.0916399 L200.440459,44.9099678 L199.946915,45.3890675 C199.487805,44.5836013 198.144907,44 196.558106,44 Z"
id=
"Path"
fill=
"#FFFFFF"
fill-rule=
"nonzero"
></path>
<path
d=
"M196.439024,48.4549839 C195.345768,48.4549839 194.252511,48.0787781 193.925395,47.3633441 L194.823529,47.3633441 L194.823529,47 L192.883788,47 L192,47.9083601 L192.559541,48.0900322 L193.053085,47.6109325 C193.512195,48.4163987 194.855093,49 196.441894,49 C198.407461,49 200,48.1045016 200,47 L199.02439,47 C198.97561,47.818328 197.8967,48.4549839 196.439024,48.4549839 Z"
id=
"Path"
fill=
"#FFFFFF"
fill-rule=
"nonzero"
></path>
<path
d=
"M2,0 L294,0 C295.104569,-2.02906125e-16 296,0.8954305 296,2 L296,10 L296,10 L0,10 L0,2 C-1.3527075e-16,0.8954305 0.8954305,2.02906125e-16 2,0 Z"
id=
"矩形"
fill=
"#F0F4FF"
fill-rule=
"nonzero"
opacity=
"0.7"
></path>
</g>
</g>
<rect
id=
"矩形"
fill=
"#6882DA"
fill-rule=
"nonzero"
x=
"85"
y=
"70"
width=
"17"
height=
"7"
rx=
"2"
></rect>
<g
id=
"编组-19"
transform=
"translate(190.000000, 33.000000)"
>
<g
id=
"编组-18"
transform=
"translate(20.959493, 5.151786)"
></g>
<g
id=
"编组-16"
transform=
"translate(0.429624, 6.276786)"
></g>
<g
id=
"地球-(2)"
transform=
"translate(56.219313, 0.964286)"
></g>
</g>
<g
id=
"编组-23"
transform=
"translate(180.000000, 24.000000)"
>
<rect
id=
"矩形备份-12"
fill=
"#FFFFFF"
fill-rule=
"nonzero"
x=
"0"
y=
"0"
width=
"89.5676047"
height=
"27"
rx=
"1"
></rect>
<rect
id=
"矩形备份-4"
stroke=
"#E1E9FF"
x=
"4.85483871"
y=
"3.5"
width=
"80.2903226"
height=
"20"
></rect>
<g
id=
"编组-22"
transform=
"translate(0.000000, 29.000000)"
fill-rule=
"nonzero"
>
<path
d=
"M1,3.63797881e-12 L88.5676047,3.63797881e-12 C89.1198894,3.63002892e-12 89.5676047,0.44771525 89.5676047,1 L89.5676047,27 C89.5676047,27.5522847 89.1198894,28 88.5676047,28 L1,28 C0.44771525,28 6.76353751e-17,27.5522847 0,27 L0,1 C-6.76353751e-17,0.44771525 0.44771525,3.63808026e-12 1,3.63797881e-12 Z"
id=
"矩形备份-28"
fill=
"#FFFFFF"
></path>
<rect
id=
"矩形备份-29"
fill=
"#E1E9FF"
x=
"4.63280714"
y=
"10"
width=
"69.4921071"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-32"
fill=
"#E1E9FF"
x=
"4.63280714"
y=
"23"
width=
"69.4921071"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-33"
fill=
"#E1E9FF"
x=
"4.63280714"
y=
"7"
width=
"43.5483871"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-34"
fill=
"#E1E9FF"
x=
"4.63280714"
y=
"20"
width=
"33.3870968"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-30"
fill=
"#6882DA"
x=
"4.35483871"
y=
"3"
width=
"10.1612903"
height=
"1"
rx=
"0.5"
></rect>
<rect
id=
"矩形备份-31"
fill=
"#6882DA"
x=
"4.35483871"
y=
"16"
width=
"10.1612903"
height=
"1"
rx=
"0.5"
></rect>
</g>
</g>
<rect
id=
"矩形"
stroke=
"#E1E9FF"
x=
"37.5"
y=
"28.5"
width=
"116"
height=
"36"
></rect>
</g>
</g>
</svg>
\ No newline at end of file
mindinsight/ui/src/assets/images/graph-stepimg2.svg
0 → 100644
浏览文件 @
876bf666
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"301px"
height=
"95px"
viewBox=
"0 0 301 95"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>
编组 10
</title>
<desc>
Created with Sketch.
</desc>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-10"
>
<g
id=
"编组-9"
transform=
"translate(3.000000, 3.000000)"
>
<g
id=
"编组-8"
fill=
"#EDF3FF"
fill-opacity=
"0.8"
fill-rule=
"nonzero"
opacity=
"0.504191"
>
<g
id=
"编组-5"
>
<path
d=
"M5,0 L290,0 C292.761424,-5.07265313e-16 295,2.23857625 295,5 L295,84 C295,86.7614237 292.761424,89 290,89 L5,89 C2.23857625,89 3.38176876e-16,86.7614237 0,84 L0,5 C-3.38176876e-16,2.23857625 2.23857625,5.07265313e-16 5,0 Z"
id=
"矩形"
></path>
</g>
</g>
<polygon
id=
"矩形"
fill=
"#E6ECFB"
fill-rule=
"nonzero"
points=
"14 10 282 10 282 63 14 63"
></polygon>
<polygon
id=
"路径-3"
stroke=
"#FFFFFF"
opacity=
"0.4"
points=
"56.5035461 35.5 107.5 21.5 149.652482 36.5 108.5 51.5"
></polygon>
<polyline
id=
"路径-4"
stroke=
"#FFFFFF"
opacity=
"0.4"
points=
"106.12766 35.5 146 21.5 192.29078 21.5 239.503546 35.5 150 51.5"
></polyline>
<line
x1=
"106.12766"
y1=
"35.5"
x2=
"108.5"
y2=
"51.5"
id=
"路径-6"
stroke=
"#FFFFFF"
opacity=
"0.4"
></line>
<polyline
id=
"路径-5"
stroke=
"#FFFFFF"
opacity=
"0.4"
points=
"146 21.5 194 34.5 149.652482 37 150 51.5"
></polyline>
<rect
id=
"矩形"
fill=
"#6882DA"
fill-rule=
"nonzero"
x=
"18"
y=
"14"
width=
"22.8085106"
height=
"3"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-16"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"143"
y=
"49"
width=
"13.3049645"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"182.787234"
y=
"19"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17备份"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"230"
y=
"33"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17备份-2"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"47"
y=
"33"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<ellipse
id=
"椭圆形"
fill=
"#DBDFE3"
fill-rule=
"nonzero"
cx=
"107.5"
cy=
"21.5"
rx=
"11.5"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形"
fill=
"#DBDFE3"
fill-rule=
"nonzero"
cx=
"146"
cy=
"21.5"
rx=
"7"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-2"
fill=
"#DBDFE3"
fill-rule=
"nonzero"
cx=
"150"
cy=
"36.5"
rx=
"5"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-3"
fill=
"#DBDFE3"
fill-rule=
"nonzero"
cx=
"194"
cy=
"34.5"
rx=
"7"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-4"
fill=
"#DBDFE3"
fill-rule=
"nonzero"
cx=
"108.5"
cy=
"51.5"
rx=
"8.5"
ry=
"2.5"
></ellipse>
<rect
id=
"矩形"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"99"
y=
"33"
width=
"14.2553191"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形"
fill=
"#6882DA"
fill-rule=
"nonzero"
x=
"138"
y=
"70"
width=
"20"
height=
"8"
rx=
"2"
></rect>
<path
d=
"M141.719865,84.9906037 C141.719865,84.9906037 141.68235,85.0033656 143.1872,84.9622439 C144.066328,85.5854495 145.346088,85.8328884 145.346088,85.8328883 L147.119914,85.8328883 L148.831452,85.8421053 C149.011241,85.8392693 149.191738,85.7740419 149.329058,85.637206 C149.505962,85.4608373 149.573882,85.202469 149.506631,84.9617064 C149.439381,84.7209439 149.247465,84.5353916 149.004871,84.4765831 L149.014072,84.3936309 L149.165548,84.3943399 C149.351381,84.3935514 149.529604,84.3203141 149.662446,84.1901496 C149.792106,84.0603832 149.86484,83.8842419 149.864574,83.7006494 C149.864308,83.517057 149.791066,83.3411276 149.661031,83.2117381 C149.533706,83.08411 149.361928,83.0109147 149.181829,83.0075479 L149.16838,82.9720982 L149.283756,82.9728072 C149.463546,82.9706802 149.644043,82.9047438 149.781362,82.768617 C149.911022,82.6388505 149.983755,82.4627092 149.98349,82.2791168 C149.983224,82.0955244 149.909981,81.919595 149.779946,81.7902055 C149.657068,81.6672734 149.492659,81.594926 149.319148,81.5874333 C150.131031,81.5860153 152.044301,81.6441528 152.17171,81.6611686 C152.334512,81.6824384 152.941124,81.6377718 152.996334,81.0287461 C153.052253,80.4204294 152.449888,80.2183662 152.449888,80.2183662 L146.561435,80.0595516 L146.589748,79.9751813 C146.589748,79.9751813 147.158845,79.6993827 147.882249,78.9542302 C148.605653,78.2090777 148.521421,77.7418507 148.200774,77.2313752 C147.880126,76.7208996 147.458966,77.2143593 147.458966,77.2143593 C147.359869,77.3823909 146.402173,78.63022 145.256901,78.8400822 C143.945996,78.747913 142.878586,80.4211384 142.878586,80.4211384 L141.918058,80.3764718 C140.98372,80.4048316 141.129533,81.2421533 141.129533,81.2421533 L141,84.2128374 C141.001416,84.9778418 141.720573,84.9906037 141.720573,84.9906037 L141.719865,84.9906037 Z"
id=
"路径"
stroke=
"#FFFFFF"
stroke-width=
"0.4"
fill=
"#6882DA"
fill-rule=
"nonzero"
transform=
"translate(147.000000, 81.421053) rotate(-90.000000) translate(-147.000000, -81.421053) "
></path>
<circle
id=
"椭圆形"
stroke=
"#6882DA"
fill=
"#FFFFFF"
cx=
"161"
cy=
"74"
r=
"3"
></circle>
<circle
id=
"椭圆形备份"
stroke=
"#6882DA"
fill=
"#FFFFFF"
cx=
"84"
cy=
"59"
r=
"3"
></circle>
<path
id=
"路径-160"
d=
"M165.499272,71.2706701 L165.924019,72.175982 C164.945844,72.6349151 164.502521,73.1741352 164.500193,73.8262152 L164.505579,73.9581457 L163.509089,74.0418543 C163.409715,72.8588772 164.111079,71.921972 165.499272,71.2706701 Z M195.654104,70.7396547 L195.697633,71.7387069 C194.9301,71.7721483 194.130582,71.7877403 193.299048,71.7855039 L192.669394,71.7804841 L192.682548,70.7805706 C193.723525,70.7942645 194.714063,70.7806123 195.654104,70.7396547 Z M186.722647,70.4565857 C186.901067,70.4712473 187.080533,70.4862142 187.261053,70.5014871 C187.821569,70.548918 188.369925,70.5903392 188.907122,70.6258269 L189.704671,70.6746178 L189.648568,71.6730428 C188.84957,71.6281452 188.02676,71.5698552 187.176742,71.4979266 L186.907958,71.4753481 L186.907958,71.4753481 L186.640748,71.4532264 L186.722647,70.4565857 Z M201.503636,69.9843994 L201.740769,70.9558764 C200.97176,71.1435884 200.146646,71.2992996 199.265335,71.4231714 L198.729804,71.493675 L198.60775,70.5011516 C199.654854,70.3723857 200.620201,70.2000421 201.503636,69.9843994 Z M171.632559,70.0522186 L171.700587,71.0499021 C170.757662,71.1141961 169.904607,71.203974 169.141792,71.3190135 L168.767906,71.3786374 L168.601762,70.392536 C169.491201,70.2426778 170.501272,70.1293563 171.632559,70.0522186 Z M180.667594,70.0566803 C181.387913,70.0906965 182.13141,70.1314861 182.898091,70.1790478 L183.6725,70.2288669 L183.606065,71.2266576 C182.828644,71.1748953 182.074477,71.1298758 181.343573,71.0915979 L180.620423,71.0555671 L180.667594,70.0566803 Z M176.976364,69.9384354 L177.609788,69.9499074 L177.588483,70.9496804 C176.743249,70.9316683 175.937946,70.925186 175.172609,70.9302234 L174.6061,70.9361613 L174.591616,69.9362662 C175.346827,69.9253267 176.141731,69.9260531 176.976364,69.9384354 Z M209.178989,60.5303891 L210.315689,70.5282846 L206.294,69.058 L206.238972,69.0973776 C205.890585,69.3309818 205.515987,69.5490715 205.115275,69.7517478 L204.705862,69.9492901 L204.287811,69.0408665 C204.573994,68.9091669 204.845807,68.7701636 205.103291,68.623899 L201.862693,67.438486 L209.178989,60.5303891 Z"
fill=
"#6882DA"
fill-rule=
"nonzero"
></path>
<path
id=
"路径-160备份"
d=
"M130.976369,67.1388051 L138.192659,74.1513046 L128.252885,75.7168375 L130.976369,67.1388051 Z M125.579371,70.2978157 C126.421595,70.4251451 127.224374,70.5546019 127.987732,70.6861954 L128.552859,70.7852913 L128.377238,71.7697491 C127.640766,71.6383669 126.864693,71.5090105 126.049044,71.3816891 L125.429887,71.2865799 L125.579371,70.2978157 Z M119.614622,69.5076916 C120.391754,69.5985298 121.145555,69.6906114 121.876029,69.7839379 L122.598728,69.8776795 L122.468154,70.869118 C121.756923,70.7754477 121.022307,70.6829941 120.264312,70.5917586 L119.498523,70.5009293 L119.614622,69.5076916 Z M113.637928,68.8772129 C114.323138,68.9426667 114.994465,69.008857 115.651912,69.0757839 L116.627671,69.176727 L116.523108,70.1712453 C115.801501,70.0953763 115.062298,70.0204282 114.3055,69.9464013 L113.542837,69.8726815 L113.637928,68.8772129 Z M107.650254,68.3402174 C108.238156,68.3955408 108.838018,68.4491045 109.449813,68.5009058 L110.053416,68.5523989 L110.053416,68.5523989 L110.645077,68.6037184 L110.557943,69.599915 C110.166728,69.5656969 109.772648,69.5317983 109.365468,69.4973425 C108.955536,69.4626331 108.550907,69.427134 108.15158,69.3908449 L107.556565,69.3358189 L107.650254,68.3402174 Z M101.673339,67.6617389 C102.38262,67.7584331 103.115995,67.8515993 103.873455,67.9412343 L104.638944,68.029692 L104.52682,69.0233862 C103.747671,68.9354703 102.992532,68.8439655 102.261397,68.7488685 L101.538262,68.652574 L101.673339,67.6617389 Z M95.7585116,66.6580187 C96.487657,66.8125986 97.2579822,66.9612358 98.0694521,67.1039094 L98.6857685,67.2097961 L98.5201967,68.1959938 C97.6772814,68.0544775 96.8753099,67.9067767 96.1142469,67.7528703 L95.5511196,67.6362766 L95.7585116,66.6580187 Z M90.1178348,65.0298547 C90.8088691,65.3115435 91.591029,65.5810383 92.4640208,65.8380009 L92.9080846,65.9654363 L92.6385904,66.9284383 C91.7054249,66.6672937 90.8624586,66.3919398 90.1093979,66.1020384 L89.7403583,65.9558738 L90.1178348,65.0298547 Z M85.2855065,61.4997669 L86.2855063,61.5002331 C86.2851763,62.2082898 86.6558153,62.8810165 87.4370798,63.5305362 L87.6246789,63.680019 L87.0171722,64.4743336 C85.8787222,63.6036257 85.2849903,62.6070563 85.2855065,61.4997669 Z"
fill=
"#6882DA"
fill-rule=
"nonzero"
></path>
</g>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"301"
height=
"95"
></rect>
</g>
</g>
</svg>
\ No newline at end of file
mindinsight/ui/src/assets/images/graph-stepimg3.svg
0 → 100644
浏览文件 @
876bf666
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"301px"
height=
"95px"
viewBox=
"0 0 301 95"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>
编组 10
</title>
<desc>
Created with Sketch.
</desc>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-10"
>
<g
id=
"编组-9"
transform=
"translate(3.000000, 3.000000)"
>
<g
id=
"编组-8"
fill=
"#EDF3FF"
fill-opacity=
"0.8"
fill-rule=
"nonzero"
opacity=
"0.504191"
>
<g
id=
"编组-5"
>
<path
d=
"M5,0 L290,0 C292.761424,-5.07265313e-16 295,2.23857625 295,5 L295,84 C295,86.7614237 292.761424,89 290,89 L5,89 C2.23857625,89 3.38176876e-16,86.7614237 0,84 L0,5 C-3.38176876e-16,2.23857625 2.23857625,5.07265313e-16 5,0 Z"
id=
"矩形"
></path>
</g>
</g>
<polygon
id=
"矩形"
fill=
"#E6ECFB"
fill-rule=
"nonzero"
points=
"14 10 282 10 282 63 14 63"
></polygon>
<polygon
id=
"路径-3"
stroke=
"#6882DA"
stroke-width=
"2"
points=
"56.5035461 35.5 107.5 21.5 149.652482 36.5 108.5 51.5"
></polygon>
<polyline
id=
"路径-4"
stroke=
"#A6B6EA"
stroke-width=
"2"
points=
"106.12766 35.5 146 21.5 192.29078 21.5 239.503546 35.5 150 51.5"
></polyline>
<line
x1=
"106.12766"
y1=
"35.5"
x2=
"108.5"
y2=
"51.5"
id=
"路径-6"
stroke=
"#6882DA"
stroke-width=
"2"
stroke-dasharray=
"2,2"
></line>
<path
d=
"M146,21.5 L194,34.5 L149.652482,37 L150,51.5"
id=
"路径-5"
stroke=
"#6882DA"
stroke-width=
"2"
stroke-dasharray=
"2,2"
></path>
<rect
id=
"矩形"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"18"
y=
"14"
width=
"22.8085106"
height=
"3"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-16"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
x=
"143"
y=
"49"
width=
"13.3049645"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
x=
"182.787234"
y=
"19"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17备份"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
x=
"230"
y=
"33"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形-copy-17备份-2"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
x=
"47"
y=
"33"
width=
"19.0070922"
height=
"5"
rx=
"1.5"
></rect>
<ellipse
id=
"椭圆形"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
cx=
"107.5"
cy=
"21.5"
rx=
"11.5"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
cx=
"146"
cy=
"21.5"
rx=
"7"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-2"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
cx=
"150"
cy=
"36.5"
rx=
"5"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-3"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
cx=
"194"
cy=
"34.5"
rx=
"7"
ry=
"2.5"
></ellipse>
<ellipse
id=
"椭圆形备份-4"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
cx=
"108.5"
cy=
"51.5"
rx=
"8.5"
ry=
"2.5"
></ellipse>
<rect
id=
"矩形"
fill=
"#F7FAFF"
fill-rule=
"nonzero"
x=
"99"
y=
"33"
width=
"14.2553191"
height=
"5"
rx=
"1.5"
></rect>
<rect
id=
"矩形"
fill=
"#A6B6EA"
fill-rule=
"nonzero"
x=
"138"
y=
"70"
width=
"20"
height=
"8"
rx=
"2"
></rect>
<line
x1=
"147.652482"
y1=
"63"
x2=
"147.652482"
y2=
"68.5"
id=
"路径-10"
stroke=
"#6882DA"
stroke-width=
"2"
></line>
<polygon
id=
"矩形"
fill=
"#6882DA"
points=
"145 67 150 67 147.5 70"
></polygon>
</g>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"301"
height=
"95"
></rect>
</g>
</g>
</svg>
\ No newline at end of file
mindinsight/ui/src/assets/images/guideIcon.svg
0 → 100644
浏览文件 @
876bf666
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"16px"
height=
"16px"
viewBox=
"0 0 16 16"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>
帮助指引
</title>
<desc>
Created with Sketch.
</desc>
<g
id=
"控件"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"帮助指引"
>
<g
id=
"分组-26复制"
>
<rect
id=
"Rectangle-19"
fill=
"#D2EBFD"
fill-rule=
"nonzero"
opacity=
"0"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<rect
id=
"矩形"
fill=
"#575D6C"
x=
"3.5"
y=
"4"
width=
"5"
height=
"1.5"
></rect>
<rect
id=
"矩形"
fill=
"#575D6C"
x=
"3.5"
y=
"7"
width=
"3"
height=
"1.5"
></rect>
<g
id=
"分组-7"
transform=
"translate(1.400000, 0.400000)"
fill-rule=
"nonzero"
>
<path
d=
"M2.59242652,13.9463889 C1.2140705,13.9463889 0.516594998,13.9463889 0.5,13.9463889 C0.223857625,13.9463889 0,13.7225313 0,13.4463889 L0,1.44638889 C0,1.17024651 0.223857625,0.946388889 0.5,0.946388889 L11.5,0.946388889 C11.7761424,0.946388889 12,1.17024651 12,1.44638889 C12,2.26883666 12,2.82983034 12,3.12936992"
id=
"Rectangle-38"
stroke=
"#575D6C"
stroke-width=
"1.4"
stroke-linecap=
"round"
></path>
<path
d=
"M4.86509791,6.02237173 C4.57543153,5.39028109 5.22732823,4.73841895 5.85940351,5.02811884 L10.8580374,7.3191493 C11.2392736,7.49388178 11.5450854,7.79970976 11.7197977,8.18095521 L14.0106749,13.1799545 C14.3003412,13.8120451 13.6484445,14.4639072 13.0163693,14.1742073 L8.01773532,11.8831769 C7.63649913,11.7084444 7.33068736,11.4026164 7.15597509,11.021371 L4.86509791,6.02237173 Z M7.06987833,7.23296344 L8.5196065,10.3964635 C8.5445654,10.4509271 8.58825279,10.4946168 8.6427151,10.5195786 L11.8058944,11.9693627 L10.3561663,8.80586271 C10.3312074,8.75139907 10.28752,8.70770936 10.2330577,8.68274758 L7.06987833,7.23296344 Z M7.06987833,7.23296344 L8.5196065,10.3964635 C8.5445654,10.4509271 8.58825279,10.4946168 8.6427151,10.5195786 L10.3561663,8.80586271 C10.3312074,8.75139907 10.28752,8.70770936 10.2330577,8.68274758 L7.06987833,7.23296344 Z"
id=
"矩形"
fill=
"#575D6C"
transform=
"translate(9.437886, 9.601163) rotate(-270.000000) translate(-9.437886, -9.601163) "
></path>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
mindinsight/ui/src/assets/images/guideIconHover.svg
0 → 100644
浏览文件 @
876bf666
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"16px"
height=
"16px"
viewBox=
"0 0 16 16"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>
帮助指引-hover
</title>
<desc>
Created with Sketch.
</desc>
<g
id=
"帮助指引-hover"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"分组-26复制"
>
<rect
id=
"Rectangle-19"
fill=
"#D2EBFD"
fill-rule=
"nonzero"
opacity=
"0"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<rect
id=
"矩形"
fill=
"#00A5A7"
x=
"3.5"
y=
"4"
width=
"5"
height=
"1.5"
></rect>
<rect
id=
"矩形"
fill=
"#00A5A7"
x=
"3.5"
y=
"7"
width=
"3"
height=
"1.5"
></rect>
<g
id=
"分组-7"
transform=
"translate(1.400000, 0.400000)"
fill-rule=
"nonzero"
>
<path
d=
"M2.59242652,13.9463889 C1.2140705,13.9463889 0.516594998,13.9463889 0.5,13.9463889 C0.223857625,13.9463889 0,13.7225313 0,13.4463889 L0,1.44638889 C0,1.17024651 0.223857625,0.946388889 0.5,0.946388889 L11.5,0.946388889 C11.7761424,0.946388889 12,1.17024651 12,1.44638889 C12,2.26883666 12,2.82983034 12,3.12936992"
id=
"Rectangle-38"
stroke=
"#00A5A7"
stroke-width=
"1.4"
stroke-linecap=
"round"
></path>
<path
d=
"M4.86509791,6.02237173 C4.57543153,5.39028109 5.22732823,4.73841895 5.85940351,5.02811884 L10.8580374,7.3191493 C11.2392736,7.49388178 11.5450854,7.79970976 11.7197977,8.18095521 L14.0106749,13.1799545 C14.3003412,13.8120451 13.6484445,14.4639072 13.0163693,14.1742073 L8.01773532,11.8831769 C7.63649913,11.7084444 7.33068736,11.4026164 7.15597509,11.021371 L4.86509791,6.02237173 Z M7.06987833,7.23296344 L8.5196065,10.3964635 C8.5445654,10.4509271 8.58825279,10.4946168 8.6427151,10.5195786 L11.8058944,11.9693627 L10.3561663,8.80586271 C10.3312074,8.75139907 10.28752,8.70770936 10.2330577,8.68274758 L7.06987833,7.23296344 Z M7.06987833,7.23296344 L8.5196065,10.3964635 C8.5445654,10.4509271 8.58825279,10.4946168 8.6427151,10.5195786 L10.3561663,8.80586271 C10.3312074,8.75139907 10.28752,8.70770936 10.2330577,8.68274758 L7.06987833,7.23296344 Z"
id=
"矩形"
fill=
"#00A5A7"
transform=
"translate(9.437886, 9.601163) rotate(-270.000000) translate(-9.437886, -9.601163) "
></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
mindinsight/ui/src/locales/zh-cn.json
浏览文件 @
876bf666
...
@@ -129,7 +129,6 @@
...
@@ -129,7 +129,6 @@
"operatorNode"
:
"算子节点"
,
"operatorNode"
:
"算子节点"
,
"virtualNode"
:
"虚拟节点"
,
"virtualNode"
:
"虚拟节点"
,
"constantNode"
:
"常量节点"
,
"constantNode"
:
"常量节点"
,
"virtualConstantNode"
:
"虚拟常量节点"
,
"polymetric"
:
"聚合节点"
,
"polymetric"
:
"聚合节点"
,
"dataFlowEdge"
:
"数据流向边"
,
"dataFlowEdge"
:
"数据流向边"
,
"controllDepEdge"
:
"控制依赖边"
,
"controllDepEdge"
:
"控制依赖边"
,
...
@@ -145,7 +144,19 @@
...
@@ -145,7 +144,19 @@
"queryLoading"
:
"正在加载图,请稍候。"
,
"queryLoading"
:
"正在加载图,请稍候。"
,
"fullScreen"
:
"全屏"
,
"fullScreen"
:
"全屏"
,
"tooManyNodes"
:
"节点太多,打开失败"
,
"tooManyNodes"
:
"节点太多,打开失败"
,
"inputNodeName"
:
"请输入节点名称"
"inputNodeName"
:
"请输入节点名称"
,
"guide"
:
"用户指南"
,
"guideTitle1"
:
"1/3 主要功能介绍"
,
"guideTitle2"
:
"2/3 节点类型介绍"
,
"guideTitle3"
:
"3/3 边介绍"
,
"guideContent11"
:
"1. 在计算图展示区域可以查看计算图,可以通过滚轮对计算图放大和缩小,可以鼠标点击后拖拽。"
,
"guideContent12"
:
"2. 支持全屏展示计算图,或者将当前页面保存成SVG文件。"
,
"guideContent13"
:
"3. 在右边的功能区中,可以切换查看不同文件的计算图,或者在计算图中进行节点搜索。"
,
"guideContent14"
:
"4. 在节点信息的输入和输出中,可以选择并点击跳转到该节点。"
,
"guideContent2"
:
"计算图主要由命名空间节点,算子节点,虚拟节点,聚合节点,常量节点等几种类型节点构成。其中
\"
Default
\"
表示正向传播,
\"
Gradients
\"
表示反向传播。"
,
"guideContent3"
:
"计算图中存在数据边和控制边。其中数据边表示数据的输入,控制边表示节点之间执行依赖关系。"
,
"next"
:
"下一步"
,
"finish"
:
"完成"
},
},
"components"
:
{
"components"
:
{
"tagSelectTitle"
:
"标签选择"
,
"tagSelectTitle"
:
"标签选择"
,
...
...
mindinsight/ui/src/views/train-manage/graph.vue
浏览文件 @
876bf666
...
@@ -17,23 +17,65 @@ limitations under the License.
...
@@ -17,23 +17,65 @@ limitations under the License.
<
template
>
<
template
>
<!--cl-graph-manage -->
<!--cl-graph-manage -->
<div
class=
"cl-graph-manage"
>
<div
class=
"cl-graph-manage"
>
<div
class=
'graph-p32'
>
<div
class=
"graph-p32"
>
<div
class=
"guide-content"
v-if=
"guide.show"
>
<el-popover
placement=
"top-start"
ref=
"popover"
:style=
"
{ position: 'absolute', top: guide.top, left: guide.left }"
:title="guide.title"
width="370"
v-model="guide.show">
<i
class=
"el-icon-close"
@
click=
"closeUserGuide"
></i>
<div
v-for=
"item in guide.content"
:key=
"item"
class=
"guide-span"
>
{{
item
}}
</div>
<img
:src=
"require(`@/assets/images/graph-stepimg$
{guide.step}.svg`)" />
<el-button
type=
"primary"
@
click=
"guideNext"
>
{{
guide
.
step
===
3
?
$t
(
'
graph.finish
'
)
:
$t
(
'
graph.next
'
)
}}
</el-button>
</el-popover>
<div
class=
"step"
v-show=
"guide.step == 1"
>
<img
src=
"@/assets/images/graph-step1.png"
alt=
""
/>
</div>
<div
class=
"step"
v-show=
"guide.step == 2"
>
<img
src=
"@/assets/images/graph-step2.png"
alt=
""
/>
</div>
<div
class=
"step"
v-show=
"guide.step == 3"
>
<img
src=
"@/assets/images/graph-step3.png"
alt=
""
/>
</div>
</div>
<div
class=
"cl-title cl-graph-title"
>
<div
class=
"cl-title cl-graph-title"
>
<div
class=
"cl-title-left"
>
{{
$t
(
'
graph.titleText
'
)
}}
</div>
<div
class=
"cl-title-left"
>
{{
$t
(
'
graph.titleText
'
)
}}
<span
@
click=
"showUserGuide"
class=
"guide"
>
<i
class=
"guide-icon"
></i>
{{
$t
(
'
graph.guide
'
)
}}
</span>
</div>
<div
class=
"cl-title-right"
>
<div
class=
"cl-title-right"
>
<div
class=
"cl-close-btn"
<div
class=
"cl-close-btn"
@
click=
"jumpToTrainDashboard"
>
@
click=
"jumpToTrainDashboard"
>
<img
src=
"@/assets/images/close-page.png"
>
<img
src=
"@/assets/images/close-page.png"
/
>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"cl-content"
>
<div
class=
"cl-content"
>
<div
id=
"graphs"
>
<div
id=
"graphs"
>
<div
class=
"cl-graph"
<div
class=
"cl-graph"
:class=
"fullScreen
? 'full-screen':
''"
>
:class=
"fullScreen
? 'full-screen' :
''"
>
<!-- graph -->
<!-- graph -->
<div
class=
"graph-container"
<div
class=
"graph-container"
:class=
"rightShow
?'':
'all'"
>
:class=
"rightShow
? '' :
'all'"
>
<!-- No data is displayed. -->
<!-- No data is displayed. -->
<div
class=
"image-noData"
<div
class=
"image-noData"
v-if=
"!loading.show && !Object.keys(allGraphData).length"
>
v-if=
"!loading.show && !Object.keys(allGraphData).length"
>
...
@@ -41,7 +83,7 @@ limitations under the License.
...
@@ -41,7 +83,7 @@ limitations under the License.
<img
:src=
"require('@/assets/images/nodata.png')"
<img
:src=
"require('@/assets/images/nodata.png')"
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"noData-text"
>
{{
$t
(
"
public.noData
"
)
}}
</div>
<div
class=
"noData-text"
>
{{
$t
(
'
public.noData
'
)
}}
</div>
</div>
</div>
<!-- Operation button column -->
<!-- Operation button column -->
<div
class=
"operate-button-list"
>
<div
class=
"operate-button-list"
>
...
@@ -64,13 +106,13 @@ limitations under the License.
...
@@ -64,13 +106,13 @@ limitations under the License.
:class=
"rightShow ? '' : 'right-hide'"
>
:class=
"rightShow ? '' : 'right-hide'"
>
<div
class=
"toggle-right"
<div
class=
"toggle-right"
@
click=
"toggleRight"
>
@
click=
"toggleRight"
>
<i
:class=
"rightShow
?'icon-toggle':
'icon-toggle icon-left'"
></i>
<i
:class=
"rightShow
? 'icon-toggle' :
'icon-toggle icon-left'"
></i>
</div>
</div>
<!-- Search box -->
<!-- Search box -->
<el-select
@
change=
"fileChange"
<el-select
@
change=
"fileChange"
@
visible-change=
"getSelectList"
@
visible-change=
"getSelectList"
:popper-append-to-body=
"false"
:popper-append-to-body=
"false"
class=
'search'
class=
"search"
v-model=
"fileSearchBox.value"
>
v-model=
"fileSearchBox.value"
>
<el-option
v-for=
"item in fileSearchBox.suggestions"
<el-option
v-for=
"item in fileSearchBox.suggestions"
:key=
"item.value"
:key=
"item.value"
...
@@ -80,7 +122,7 @@ limitations under the License.
...
@@ -80,7 +122,7 @@ limitations under the License.
</el-option>
</el-option>
</el-select>
</el-select>
<!-- Search box -->
<!-- Search box -->
<Autocomplete
class=
'search'
<Autocomplete
class=
"search"
v-model=
"searchBox.value"
v-model=
"searchBox.value"
:disabled=
"!fileSearchBox.value"
:disabled=
"!fileSearchBox.value"
:fetch-suggestions=
"searchNodesNames"
:fetch-suggestions=
"searchNodesNames"
...
@@ -99,7 +141,11 @@ limitations under the License.
...
@@ -99,7 +141,11 @@ limitations under the License.
</div>
</div>
</div>
</div>
<!-- Node information -->
<!-- Node information -->
<div
:class=
"showLegend?'node-info-con node-info-container':'node-info-con node-info-container-long'"
>
<div
:class=
"
showLegend
? 'node-info-con node-info-container'
: 'node-info-con node-info-container-long'
"
>
<div
class=
"title"
>
<div
class=
"title"
>
{{
$t
(
'
graph.nodeInfo
'
)
}}
{{
$t
(
'
graph.nodeInfo
'
)
}}
<img
:src=
"require('@/assets/images/all-drop-down.png')"
<img
:src=
"require('@/assets/images/all-drop-down.png')"
...
@@ -112,11 +158,13 @@ limitations under the License.
...
@@ -112,11 +158,13 @@ limitations under the License.
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"node-info"
<div
class=
"node-info"
v-show=
'selectedNode.show'
>
v-show=
"selectedNode.show"
>
<div
class=
"items"
>
<div
class=
"items"
>
<div
class=
"label item"
>
{{
$t
(
'
graph.name
'
)
}}
</div>
<div
class=
"label item"
>
{{
$t
(
'
graph.name
'
)
}}
</div>
<div
class=
"value"
><span
class=
"cl-display-block"
<div
class=
"value"
>
@
dblclick=
"nodeNameClick"
>
{{
selectedNode
.
title
}}
</span></div>
<span
class=
"cl-display-block"
@
dblclick=
"nodeNameClick"
>
{{
selectedNode
.
title
}}
</span>
</div>
</div>
</div>
<div
class=
"items"
<div
class=
"items"
v-if=
"selectedNode.countShow"
>
v-if=
"selectedNode.countShow"
>
...
@@ -130,51 +178,73 @@ limitations under the License.
...
@@ -130,51 +178,73 @@ limitations under the License.
</div>
</div>
<div
class=
"items itemHeight"
<div
class=
"items itemHeight"
v-if=
"!selectedNode.countShow"
>
v-if=
"!selectedNode.countShow"
>
<div
class=
"item"
>
{{
$t
(
'
graph.attr
'
)
}}
(
{{
selectedNode
.
info
.
Attributes
.
length
}}
)
</div>
<div
class=
"item"
>
{{
$t
(
'
graph.attr
'
)
}}
(
{{
selectedNode
.
info
.
Attributes
.
length
}}
)
</div>
</div>
</div>
<ul
v-if=
"selectedNode.info && !selectedNode.countShow"
<ul
v-if=
"selectedNode.info && !selectedNode.countShow"
class=
"item-content hover"
class=
"item-content hover"
:class=
"selectedNode.info.Attributes.length>2 ?
:class=
"
'item-min2':selectedNode.info.Attributes.length>0?'item-min':''"
>
selectedNode.info.Attributes.length > 2
? 'item-min2'
: selectedNode.info.Attributes.length > 0
? 'item-min'
: ''
"
>
<li
v-for=
"item in selectedNode.info.Attributes"
<li
v-for=
"item in selectedNode.info.Attributes"
:key=
"item.name"
>
:key=
"item.name"
>
<div
class=
"key"
>
<div
class=
"key"
>
{{
item
.
name
}}
{{
item
.
name
}}
</div>
</div>
<div
class=
"input cl-input-value"
>
<div
class=
"input cl-input-value"
>
<pre>
{{
item
.
value
}}
</pre>
<pre>
{{
item
.
value
}}
</pre>
</div>
</div>
</li>
</li>
</ul>
</ul>
<div
class=
"items itemHeight"
>
<div
class=
"items itemHeight"
>
<div
class=
"item"
>
{{
$t
(
'
graph.inputs
'
)
}}
(
<div
class=
"item"
>
{{
selectedNode
.
info
.
input
.
length
+
selectedNode
.
info
.
inputControl
.
length
}}
)
</div>
{{
$t
(
'
graph.inputs
'
)
}}
(
{{
selectedNode
.
info
.
input
.
length
+
selectedNode
.
info
.
inputControl
.
length
}}
)
</div>
</div>
</div>
<ul
v-if=
"selectedNode.info"
<ul
v-if=
"selectedNode.info"
class=
"item-content hover"
class=
"item-content hover"
:class=
"selectedNode.info.input.length>1?'item-min2':
:class=
"
selectedNode.info.input.length>0?'item-min':''"
>
selectedNode.info.input.length > 1
? 'item-min2'
: selectedNode.info.input.length > 0
? 'item-min'
: ''
"
>
<li
v-for=
"item in selectedNode.info.input"
<li
v-for=
"item in selectedNode.info.input"
:key=
"item.$index"
:key=
"item.$index"
@
click=
"querySingleNode(
{
value: item.name
})"
@
click=
"querySingleNode(
{
value: item.name
})"
class="pointer">
class="pointer">
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"clear"
></div>
<div
class=
"clear"
></div>
</li>
</li>
<li
class=
"control-list"
<li
class=
"control-list"
v-if=
"selectedNode.info && selectedNode.info.inputControl.length"
>
v-if=
"
selectedNode.info &&
selectedNode.info.inputControl.length
"
>
<div
class=
"dependence-title"
<div
class=
"dependence-title"
@
click=
"toggleControl('input')"
@
click=
"toggleControl('input')"
:class=
"selectedNode.showControl.input
?'':
'hide'"
>
:class=
"selectedNode.showControl.input
? '' :
'hide'"
>
<img
:src=
"require('@/assets/images/all-uptake.png')"
<img
:src=
"require('@/assets/images/all-uptake.png')"
alt=
""
/>
alt=
""
/>
{{
$t
(
'
graph.controlDependencies
'
)
}}
{{
$t
(
'
graph.controlDependencies
'
)
}}
</div>
</div>
<ul
v-show=
"selectedNode.showControl.input"
>
<ul
v-show=
"selectedNode.showControl.input"
>
<li
v-for=
"item in selectedNode.info.inputControl"
<li
v-for=
"item in selectedNode.info.inputControl"
:key=
"item.$index"
:key=
"item.$index"
@
click=
"querySingleNode(
{
value: item.name
})"
@
click=
"querySingleNode(
{
value: item.name
})"
class="pointer">
class="pointer">
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
...
@@ -184,34 +254,47 @@ limitations under the License.
...
@@ -184,34 +254,47 @@ limitations under the License.
</li>
</li>
</ul>
</ul>
<div
class=
"items"
>
<div
class=
"items"
>
<div
class=
"item"
>
{{
$t
(
'
graph.outputs
'
)
}}
(
<div
class=
"item"
>
{{
selectedNode
.
info
.
output
.
length
+
selectedNode
.
info
.
outputControl
.
length
}}
)
</div>
{{
$t
(
'
graph.outputs
'
)
}}
(
{{
selectedNode
.
info
.
output
.
length
+
selectedNode
.
info
.
outputControl
.
length
}}
)
</div>
</div>
</div>
<ul
v-if=
"selectedNode.info"
<ul
v-if=
"selectedNode.info"
class=
"item-content hover"
class=
"item-content hover"
:class=
"selectedNode.info.output.length>1?
:class=
"
'item-min2':selectedNode.info.output.length>0?'item-min':''"
>
selectedNode.info.output.length > 1
? 'item-min2'
: selectedNode.info.output.length > 0
? 'item-min'
: ''
"
>
<li
v-for=
"item in selectedNode.info.output"
<li
v-for=
"item in selectedNode.info.output"
:key=
"item.$index"
:key=
"item.$index"
@
click=
"querySingleNode(
{
value: item.name
})"
@
click=
"querySingleNode(
{
value: item.name
})"
class="pointer">
class="pointer">
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"clear"
></div>
<div
class=
"clear"
></div>
</li>
</li>
<li
class=
"control-list"
<li
class=
"control-list"
v-if=
"selectedNode.info && selectedNode.info.outputControl.length"
>
v-if=
"
selectedNode.info &&
selectedNode.info.outputControl.length
"
>
<div
class=
"dependence-title"
<div
class=
"dependence-title"
@
click=
"toggleControl('output')"
@
click=
"toggleControl('output')"
:class=
"selectedNode.showControl.output
?'':
'hide'"
>
:class=
"selectedNode.showControl.output
? '' :
'hide'"
>
<img
:src=
"require('@/assets/images/all-uptake.png')"
<img
:src=
"require('@/assets/images/all-uptake.png')"
alt=
""
/>
alt=
""
/>
{{
$t
(
'
graph.controlDependencies
'
)
}}
{{
$t
(
'
graph.controlDependencies
'
)
}}
</div>
</div>
<ul
v-show=
"selectedNode.showControl.output"
>
<ul
v-show=
"selectedNode.showControl.output"
>
<li
v-for=
"item in selectedNode.info.outputControl"
<li
v-for=
"item in selectedNode.info.outputControl"
:key=
"item.$index"
:key=
"item.$index"
@
click=
"querySingleNode(
{
value: item.name
})"
@
click=
"querySingleNode(
{
value: item.name
})"
class="pointer">
class="pointer">
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"input"
>
{{
item
.
name
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
<div
class=
"size"
>
{{
item
.
value
}}
</div>
...
@@ -249,15 +332,19 @@ limitations under the License.
...
@@ -249,15 +332,19 @@ limitations under the License.
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.nameSpace')"
>
{{
$t
(
'
graph.nameSpace
'
)
}}
</div>
:title=
"$t('graph.nameSpace')"
>
{{
$t
(
'
graph.nameSpace
'
)
}}
</div>
</div>
</div>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
<img
:src=
"require('@/assets/images/
operator-node
.png')"
<img
:src=
"require('@/assets/images/
polymetric
.png')"
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.operatorNode')"
>
{{
$t
(
'
graph.operatorNode
'
)
}}
</div>
:title=
"$t('graph.polymetric')"
>
{{
$t
(
'
graph.polymetric
'
)
}}
</div>
</div>
</div>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
...
@@ -265,15 +352,19 @@ limitations under the License.
...
@@ -265,15 +352,19 @@ limitations under the License.
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.virtualNode')"
>
{{
$t
(
'
graph.virtualNode
'
)
}}
</div>
:title=
"$t('graph.virtualNode')"
>
{{
$t
(
'
graph.virtualNode
'
)
}}
</div>
</div>
</div>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
<img
:src=
"require('@/assets/images/
polymetric
.png')"
<img
:src=
"require('@/assets/images/
operator-node
.png')"
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.polymetric')"
>
{{
$t
(
'
graph.polymetric
'
)
}}
</div>
:title=
"$t('graph.operatorNode')"
>
{{
$t
(
'
graph.operatorNode
'
)
}}
</div>
</div>
</div>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
...
@@ -281,23 +372,20 @@ limitations under the License.
...
@@ -281,23 +372,20 @@ limitations under the License.
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.constantNode')"
>
{{
$t
(
'
graph.constantNode
'
)
}}
</div>
:title=
"$t('graph.constantNode')"
>
</div>
{{
$t
(
'
graph.constantNode
'
)
}}
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<img
:src=
"require('@/assets/images/const.png')"
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
:title=
"$t('graph.virtualConstantNode')"
>
{{
$t
(
'
graph.virtualConstantNode
'
)
}}
</div>
</div>
</div>
<br>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
<img
:src=
"require('@/assets/images/data-flow.png')"
<img
:src=
"require('@/assets/images/data-flow.png')"
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.dataFlowEdge')"
>
{{
$t
(
'
graph.dataFlowEdge
'
)
}}
</div>
:title=
"$t('graph.dataFlowEdge')"
>
{{
$t
(
'
graph.dataFlowEdge
'
)
}}
</div>
</div>
</div>
<div
class=
"legend-item"
>
<div
class=
"legend-item"
>
<div
class=
"pic"
>
<div
class=
"pic"
>
...
@@ -305,7 +393,9 @@ limitations under the License.
...
@@ -305,7 +393,9 @@ limitations under the License.
alt=
""
/>
alt=
""
/>
</div>
</div>
<div
class=
"legend-text"
<div
class=
"legend-text"
:title=
"$t('graph.controllDepEdge')"
>
{{
$t
(
'
graph.controllDepEdge
'
)
}}
</div>
:title=
"$t('graph.controllDepEdge')"
>
{{
$t
(
'
graph.controllDepEdge
'
)
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -380,10 +470,40 @@ export default {
...
@@ -380,10 +470,40 @@ export default {
graphviz
:
null
,
graphviz
:
null
,
graphvizTemp
:
null
,
graphvizTemp
:
null
,
initOver
:
false
,
initOver
:
false
,
guide
:
{
show
:
false
,
step
:
1
,
top
:
'
0%
'
,
left
:
'
0%
'
,
content
:
[
this
.
$t
(
'
graph.guideContent11
'
),
this
.
$t
(
'
graph.guideContent12
'
),
this
.
$t
(
'
graph.guideContent13
'
),
this
.
$t
(
'
graph.guideContent14
'
),
],
title
:
''
,
},
};
};
},
},
computed
:
{},
computed
:
{},
watch
:
{},
watch
:
{
guide
:
{
handler
(
newVal
)
{
if
(
newVal
.
step
===
1
)
{
this
.
guide
.
top
=
'
20%
'
;
this
.
guide
.
left
=
'
48%
'
;
}
else
if
(
newVal
.
step
===
2
)
{
this
.
guide
.
top
=
'
47%
'
;
this
.
guide
.
left
=
'
62%
'
;
}
else
if
(
newVal
.
step
===
3
)
{
this
.
guide
.
top
=
'
45%
'
;
this
.
guide
.
left
=
'
52%
'
;
}
this
.
guide
.
title
=
this
.
$t
(
`graph.guideTitle
${
newVal
.
step
}
`
);
},
deep
:
true
,
},
},
mounted
()
{
mounted
()
{
// Judging from the training job overview.
// Judging from the training job overview.
if
(
!
this
.
$route
.
query
||
!
this
.
$route
.
query
.
train_id
)
{
if
(
!
this
.
$route
.
query
||
!
this
.
$route
.
query
.
train_id
)
{
...
@@ -392,6 +512,12 @@ export default {
...
@@ -392,6 +512,12 @@ export default {
document
.
title
=
this
.
$t
(
'
graph.titleText
'
)
+
'
-MindInsight
'
;
document
.
title
=
this
.
$t
(
'
graph.titleText
'
)
+
'
-MindInsight
'
;
return
;
return
;
}
}
const
showGuide
=
window
.
localStorage
.
getItem
(
'
graphShowGuide
'
);
if
(
!
showGuide
)
{
this
.
guide
.
show
=
true
;
window
.
localStorage
.
setItem
(
'
graphShowGuide
'
,
true
);
}
this
.
trainJobID
=
this
.
$route
.
query
.
train_id
;
this
.
trainJobID
=
this
.
$route
.
query
.
train_id
;
document
.
title
=
document
.
title
=
decodeURIComponent
(
this
.
trainJobID
)
+
decodeURIComponent
(
this
.
trainJobID
)
+
...
@@ -415,6 +541,36 @@ export default {
...
@@ -415,6 +541,36 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
showUserGuide
()
{
this
.
guide
.
content
=
[
this
.
$t
(
'
graph.guideContent11
'
),
this
.
$t
(
'
graph.guideContent12
'
),
this
.
$t
(
'
graph.guideContent13
'
),
this
.
$t
(
'
graph.guideContent14
'
),
];
this
.
guide
.
show
=
true
;
this
.
guide
.
step
=
1
;
},
closeUserGuide
()
{
this
.
guide
.
show
=
false
;
},
guideNext
()
{
if
(
this
.
guide
.
step
<
3
)
{
this
.
guide
.
step
++
;
switch
(
this
.
guide
.
step
)
{
case
2
:
this
.
guide
.
content
=
[
this
.
$t
(
'
graph.guideContent2
'
)];
break
;
case
3
:
this
.
guide
.
content
=
[
this
.
$t
(
'
graph.guideContent3
'
)];
break
;
default
:
break
;
}
}
else
if
(
this
.
guide
.
step
>=
3
)
{
this
.
guide
.
show
=
false
;
}
},
/**
/**
* Initializing the graph
* Initializing the graph
* @param {String} dot dot statement encapsulated in graph data
* @param {String} dot dot statement encapsulated in graph data
...
@@ -933,7 +1089,7 @@ export default {
...
@@ -933,7 +1089,7 @@ export default {
*/
*/
packageGraphData
()
{
packageGraphData
()
{
const
initSetting
=
const
initSetting
=
'
node[style="filled";fontsize="10px"];edge[fontsize="
4
px";];
'
;
'
node[style="filled";fontsize="10px"];edge[fontsize="
5
px";];
'
;
return
`digraph {
${
initSetting
}${
this
.
packageNodes
()}${
this
.
packageEdges
()}
}`
;
return
`digraph {
${
initSetting
}${
this
.
packageNodes
()}${
this
.
packageEdges
()}
}`
;
},
},
/**
/**
...
@@ -1058,20 +1214,14 @@ export default {
...
@@ -1058,20 +1214,14 @@ export default {
const
input
=
node
.
input
||
{};
const
input
=
node
.
input
||
{};
const
keys
=
Object
.
keys
(
input
);
const
keys
=
Object
.
keys
(
input
);
keys
.
forEach
((
key
)
=>
{
keys
.
forEach
((
key
)
=>
{
if
(
input
[
key
])
{
if
(
input
[
key
]
&&
!
input
[
key
].
independent_layout
)
{
// Cannot connect to the sub-nodes in the aggregation node and cannot be directly connected to the
// Cannot connect to the sub-nodes in the aggregation node and cannot be directly connected to the
// aggregation node. It can only connect to the outer namespace of the aggregation node.
// aggregation node. It can only connect to the outer namespace of the aggregation node.
// If there is no namespace in the outer layer, you do not need to connect cables.
// If there is no namespace in the outer layer, you do not need to connect cables.
// Other connections are normal.
// Other connections are normal.
let
temp
=
key
;
if
(
input
[
key
].
independent_layout
)
{
const
list
=
key
.
split
(
'
/
'
);
list
.
splice
(
list
.
length
-
2
,
2
);
temp
=
list
.
join
(
'
/
'
);
}
const
source
=
const
source
=
this
.
findChildNamescope
(
temp
,
name
)
||
this
.
findChildNamescope
(
key
,
name
)
||
(
temp
?
analogNodesInputId
:
''
);
(
key
?
analogNodesInputId
:
''
);
let
target
=
node
.
name
;
let
target
=
node
.
name
;
if
(
node
.
independent_layout
)
{
if
(
node
.
independent_layout
)
{
const
list
=
node
.
name
.
split
(
'
/
'
);
const
list
=
node
.
name
.
split
(
'
/
'
);
...
@@ -1483,7 +1633,7 @@ export default {
...
@@ -1483,7 +1633,7 @@ export default {
const
nodeStr
=
this
.
packageNodes
(
name
);
const
nodeStr
=
this
.
packageNodes
(
name
);
const
edgeStr
=
this
.
packageEdges
(
name
);
const
edgeStr
=
this
.
packageEdges
(
name
);
const
initSetting
=
const
initSetting
=
`node[style="filled";fontsize="10px";];`
+
`edge[fontsize="
4
px";];`
;
`node[style="filled";fontsize="10px";];`
+
`edge[fontsize="
5
px";];`
;
const
dotStr
=
const
dotStr
=
`digraph {
${
initSetting
}
label="
${
name
.
split
(
'
/
'
).
pop
()}
";`
+
`digraph {
${
initSetting
}
label="
${
name
.
split
(
'
/
'
).
pop
()}
";`
+
`
${
nodeStr
}${
edgeStr
}
}`
;
`
${
nodeStr
}${
edgeStr
}
}`
;
...
@@ -1574,7 +1724,7 @@ export default {
...
@@ -1574,7 +1724,7 @@ export default {
g
.
append
(
'
text
'
)
g
.
append
(
'
text
'
)
.
attr
(
'
text-anchor
'
,
'
middle
'
)
.
attr
(
'
text-anchor
'
,
'
middle
'
)
.
attr
(
'
font-family
'
,
'
Times,serif
'
)
.
attr
(
'
font-family
'
,
'
Times,serif
'
)
.
attr
(
'
font-size
'
,
'
4
px
'
)
.
attr
(
'
font-size
'
,
'
5
px
'
)
.
attr
(
'
fill
'
,
'
#000000
'
)
.
attr
(
'
fill
'
,
'
#000000
'
)
.
attr
(
'
x
'
,
(
points
[
0
].
x
+
points
[
1
].
x
)
/
2
)
.
attr
(
'
x
'
,
(
points
[
0
].
x
+
points
[
1
].
x
)
/
2
)
.
attr
(
'
y
'
,
(
points
[
0
].
y
+
points
[
1
].
y
)
/
2
)
.
attr
(
'
y
'
,
(
points
[
0
].
y
+
points
[
1
].
y
)
/
2
)
...
@@ -1866,7 +2016,7 @@ export default {
...
@@ -1866,7 +2016,7 @@ export default {
const
output
=
node
.
output
||
{};
const
output
=
node
.
output
||
{};
const
name
=
this
.
findExsitNode
(
node
.
name
);
const
name
=
this
.
findExsitNode
(
node
.
name
);
// Connects to the edge of the actual node.
// Connects to the edge of the actual node.
if
(
name
)
{
if
(
name
&&
!
node
.
independent_layout
)
{
Object
.
keys
(
input
).
forEach
((
key
)
=>
{
Object
.
keys
(
input
).
forEach
((
key
)
=>
{
const
source
=
this
.
findExsitNode
(
key
);
const
source
=
this
.
findExsitNode
(
key
);
if
(
source
)
{
if
(
source
)
{
...
@@ -2656,9 +2806,77 @@ export default {
...
@@ -2656,9 +2806,77 @@ export default {
.cl-graph-title
{
.cl-graph-title
{
height
:
56px
;
height
:
56px
;
line-height
:
56px
;
line-height
:
56px
;
.guide
{
cursor
:
pointer
;
margin-left
:
16px
;
line-height
:
20px
;
display
:
inline-block
;
.guide-icon
{
display
:
inline-block
;
width
:
16px
;
height
:
16px
;
vertical-align
:
-2
.5px
;
margin-right
:
4px
;
background
:
url('../../assets/images/guideIcon.svg')
;
}
}
.guide
:hover
{
color
:
#00a5a7
;
.guide-icon
{
background
:
url('../../assets/images/guideIconHover.svg')
;
}
}
}
}
.graph-p32
{
.graph-p32
{
height
:
100%
;
height
:
100%
;
position
:
relative
;
.guide-content
{
height
:
100%
;
width
:
100%
;
position
:
absolute
;
background-color
:
#c6c8cc
;
z-index
:
9999
;
.step
{
height
:
100%
;
background-repeat
:
round
;
img
{
height
:
100%
;
width
:
100%
;
}
}
.guide-span
{
font-size
:
12px
;
color
:
#575d6c
;
line-height
:
18px
;
text-align
:
left
;
display
:
inline-block
;
}
.el-popover
{
.el-icon-close
{
cursor
:
pointer
;
position
:
absolute
;
right
:
10px
;
top
:
13px
;
font-size
:
20px
;
}
.el-icon-close
:hover
{
color
:
#00a5a7
;
}
}
.el-popover__title
{
font-size
:
16px
;
color
:
#252b3a
;
line-height
:
24px
;
}
.el-button
{
display
:
block
;
float
:
right
;
height
:
28px
;
line-height
:
27px
;
border-radius
:
0
;
padding
:
0
20px
;
}
}
}
}
.cl-content
{
.cl-content
{
height
:
calc
(
100%
-
50px
);
height
:
calc
(
100%
-
50px
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录