Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
bkunyun
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
bkunyun
Commits
2ab5bfe5
Commit
2ab5bfe5
authored
Sep 20, 2022
by
chenshouchao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-20220920-taskDetails' into 'release'
cn-Feat 20220920 task details See merge request
!107
parents
2ad55c2c
f6e59167
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
403 additions
and
215 deletions
+403
-215
deleteHover.svg
src/assets/project/deleteHover.svg
+17
-0
taskResultsDatasetIcon.svg
src/assets/project/taskResultsDatasetIcon.svg
+22
-0
taskResultsDownloadHoverIcon.svg
src/assets/project/taskResultsDownloadHoverIcon.svg
+15
-0
taskResultsDownloadIcon.svg
src/assets/project/taskResultsDownloadIcon.svg
+15
-0
taskResultsFileIcon.svg
src/assets/project/taskResultsFileIcon.svg
+28
-0
taskResultsSeeHoverIcon.svg
src/assets/project/taskResultsSeeHoverIcon.svg
+19
-0
taskResultsSeeIcon.svg
src/assets/project/taskResultsSeeIcon.svg
+19
-0
index.module.css
src/views/Project/ProjectData/SeeDataset/index.module.css
+7
-0
index.tsx
src/views/Project/ProjectData/SeeDataset/index.tsx
+2
-4
index.tsx
src/views/Project/ProjectJobDetail/TaskInfo/index.tsx
+195
-0
index.module.css
src/views/Project/ProjectJobDetail/index.module.css
+41
-5
index.tsx
src/views/Project/ProjectJobDetail/index.tsx
+12
-193
interface.ts
src/views/Project/ProjectSubmitWork/interface.ts
+1
-1
index.tsx
src/views/demo/MyTableDemo/index.tsx
+10
-12
No files found.
src/assets/project/deleteHover.svg
0 → 100644
View file @
2ab5bfe5
<?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"
>
<title>
编组 58备份 7
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-58备份-7"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-50"
transform=
"translate(1.000000, 1.605109)"
stroke=
"#565C66"
stroke-width=
"1.5"
>
<line
x1=
"0"
y1=
"2.39431484"
x2=
"14"
y2=
"2.39431484"
id=
"路径-16"
></line>
<path
d=
"M3.37934347,2.39431484 L3.37934347,1 C3.37934347,0.44771525 3.82705872,1.01453063e-16 4.37934347,0 L9.63329305,0 C10.1855778,-1.01453063e-16 10.6332931,0.44771525 10.6332931,1 L10.6332931,2.39431484 L10.6332931,2.39431484"
id=
"路径-17"
></path>
<path
d=
"M2.45321216,3.89402686 L2.45321216,11.9292428 C2.45321216,12.4815275 2.90092741,12.9292428 3.45321216,12.9292428 L10.4872657,12.9292428 C11.0395505,12.9292428 11.4872657,12.4815275 11.4872657,11.9292428 L11.4872657,3.89402686 L11.4872657,3.89402686"
id=
"路径-20"
></path>
<line
x1=
"5.49894415"
y1=
"3.89402686"
x2=
"5.49894415"
y2=
"10.3954667"
id=
"路径-21"
></line>
<line
x1=
"8.49836822"
y1=
"3.89402686"
x2=
"8.49836822"
y2=
"10.3954667"
id=
"路径-22"
></line>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsDatasetIcon.svg
0 → 100644
View file @
2ab5bfe5
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"40px"
height=
"40px"
viewBox=
"0 0 40 40"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
编组 13备份
</title>
<defs>
<linearGradient
x1=
"50%"
y1=
"-4.26048086e-13%"
x2=
"50%"
y2=
"100%"
id=
"linearGradient-1"
>
<stop
stop-color=
"#26AAF9"
offset=
"0%"
></stop>
<stop
stop-color=
"#1370FF"
offset=
"100%"
></stop>
</linearGradient>
</defs>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-13备份"
>
<rect
id=
"矩形"
fill=
"url(#linearGradient-1)"
x=
"0"
y=
"0"
width=
"40"
height=
"40"
rx=
"4"
></rect>
<g
id=
"编组-4备份-4"
transform=
"translate(9.000000, 9.000000)"
>
<g
id=
"矩形-2"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"22"
height=
"22"
></rect>
</g>
<path
d=
"M18.14,3 L3.86,3 C3.385,3 3,3.3852 3,3.86 L3,6.54 C3,7.015 3.385,7.4 3.86,7.4 L18.14,7.4 C18.615,7.4 19,7.015 19,6.54 L19,3.86 C19,3.3852 18.615,3 18.14,3 Z M17.28,5.68 L9.28,5.68 C9.298916,5.6446 9.30956773,5.6036 9.30956773,5.56 L9.30956773,4.84 C9.30956773,4.7964 9.298916,4.7554 9.28,4.72 L17.28,4.72 L17.28,5.68 Z M18.14,8.8 L3.86,8.8 C3.385,8.8 3,9.1852 3,9.66 L3,12.34 C3,12.815 3.385,13.2 3.86,13.2 L18.14,13.2 C18.615,13.2 19,12.815 19,12.34 L19,9.66 C19,9.1852 18.615,8.8 18.14,8.8 Z M17.28,11.48 L9.28,11.48 C9.298916,11.4446 9.30956773,11.4036 9.30956773,11.36 L9.30956773,10.64 C9.30956773,10.5964 9.298916,10.5554 9.28,10.52 L17.28,10.52 L17.28,11.48 Z M18.14,14.6 L3.86,14.6 C3.385,14.6 3,14.9852 3,15.46 L3,18.14 C3,18.615 3.385,19 3.86,19 L18.14,19 C18.615,19 19,18.615 19,18.14 L19,15.46 C19,14.9852 18.615,14.6 18.14,14.6 Z M17.28,17.28 L9.28,17.28 C9.298916,17.2446 9.30956773,17.2036 9.30956773,17.16 L9.30956773,16.44 C9.30956773,16.3964 9.298916,16.3554 9.28,16.32 L17.28,16.32 L17.28,17.28 Z"
id=
"形状"
fill=
"#FFFFFF"
fill-rule=
"nonzero"
></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsDownloadHoverIcon.svg
0 → 100644
View file @
2ab5bfe5
<?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"
>
<title>
编组 22备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-22备份"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-57"
transform=
"translate(1.500000, 0.500000)"
stroke=
"#565C66"
stroke-linejoin=
"round"
stroke-width=
"1.5"
>
<polyline
id=
"路径"
points=
"2.61444632e-13 10.5038375 0 14 13 14 13 10.5"
></polyline>
<polyline
id=
"路径"
points=
"11 6 6.5 10.5 2 6"
></polyline>
<line
x1=
"6.49585"
y1=
"0"
x2=
"6.5"
y2=
"10"
id=
"路径"
></line>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsDownloadIcon.svg
0 → 100644
View file @
2ab5bfe5
<?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"
>
<title>
编组 22备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-22备份"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-57"
transform=
"translate(1.500000, 0.500000)"
stroke=
"#8A9099"
stroke-linejoin=
"round"
stroke-width=
"1.5"
>
<polyline
id=
"路径"
points=
"2.61444632e-13 10.5038375 0 14 13 14 13 10.5"
></polyline>
<polyline
id=
"路径"
points=
"11 6 6.5 10.5 2 6"
></polyline>
<line
x1=
"6.49585"
y1=
"0"
x2=
"6.5"
y2=
"10"
id=
"路径"
></line>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsFileIcon.svg
0 → 100644
View file @
2ab5bfe5
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"40px"
height=
"40px"
viewBox=
"0 0 40 40"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
编组 7备份 3
</title>
<defs>
<linearGradient
x1=
"50%"
y1=
"-4.26048086e-13%"
x2=
"50%"
y2=
"100%"
id=
"linearGradient-1"
>
<stop
stop-color=
"#75EBCB"
offset=
"0%"
></stop>
<stop
stop-color=
"#0DD09B"
offset=
"100%"
></stop>
</linearGradient>
</defs>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-7备份-3"
>
<rect
id=
"矩形备份"
fill=
"url(#linearGradient-1)"
x=
"0"
y=
"0"
width=
"40"
height=
"40"
rx=
"4"
></rect>
<g
id=
"编组-7备份-14"
transform=
"translate(9.000000, 9.000000)"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"22"
height=
"22"
></rect>
<g
id=
"编组-6"
transform=
"translate(3.928571, 2.357143)"
>
<path
d=
"M1.2,0 L9.49020093,0 L9.49020093,0 L14.1428571,4.65265622 L14.1428571,16.0857143 C14.1428571,16.748456 13.6055988,17.2857143 12.9428571,17.2857143 L1.2,17.2857143 C0.5372583,17.2857143 -3.6292676e-16,16.748456 0,16.0857143 L0,1.2 C-8.11624501e-17,0.5372583 0.5372583,-3.22345535e-16 1.2,0 Z"
id=
"矩形"
fill=
"#FFFFFF"
></path>
<g
id=
"编组-4"
transform=
"translate(3.535714, 7.142857)"
stroke=
"#0DD09B"
stroke-width=
"1.2"
>
<line
x1=
"7.85086282e-15"
y1=
"6.39285714"
x2=
"7.07142857"
y2=
"6.39285714"
id=
"路径-15备份-2"
></line>
<line
x1=
"7.85086282e-15"
y1=
"3.39285714"
x2=
"7.07142857"
y2=
"3.39285714"
id=
"路径-15备份-3"
></line>
<line
x1=
"7.85086282e-15"
y1=
"0.392857143"
x2=
"7.07142857"
y2=
"0.392857143"
id=
"路径-15备份-4"
></line>
</g>
<path
d=
"M9.49020093,0 L14.1428571,4.65265622 L10.6902009,4.65265622 C10.0274592,4.65265622 9.49020093,4.11539792 9.49020093,3.45265622 L9.49020093,0 L9.49020093,0 Z"
id=
"路径-9"
fill=
"#9AF8E5"
></path>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsSeeHoverIcon.svg
0 → 100644
View file @
2ab5bfe5
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"17px"
height=
"16px"
viewBox=
"0 0 17 16"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
1.Base基础/Icon图标/查看备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"1.Base基础/Icon图标/查看备份"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-58"
transform=
"translate(0.500000, 1.488632)"
stroke=
"#565C66"
stroke-width=
"1.62830815"
>
<g
id=
"编组"
>
<line
x1=
"0"
y1=
"0.5"
x2=
"12.4755135"
y2=
"0.5"
id=
"路径"
></line>
<line
x1=
"0"
y1=
"6.18590274"
x2=
"4.99389897"
y2=
"6.18590274"
id=
"路径"
></line>
<line
x1=
"0"
y1=
"11.8718055"
x2=
"5.66782353"
y2=
"11.8718055"
id=
"路径"
></line>
<line
x1=
"13.0860211"
y1=
"10.7189929"
x2=
"15.2967853"
y2=
"13.4172047"
id=
"路径"
></line>
<path
d=
"M10.6064141,3.72994425 C11.6910045,3.72994425 12.6717682,4.15682942 13.3821406,4.84341174 C14.1027218,5.53986092 14.5458693,6.50270675 14.5458693,7.56473415 C14.5458693,8.62676155 14.1027218,9.58960738 13.3821406,10.2860566 C12.6717682,10.9726389 11.6910045,11.3995241 10.6064141,11.3995241 C9.52182361,11.3995241 8.54105997,10.9726389 7.83068751,10.2860566 C7.11010631,9.58960738 6.66695888,8.62676155 6.66695888,7.56473415 C6.66695888,6.50270675 7.11010631,5.53986092 7.83068751,4.84341174 C8.54105997,4.15682942 9.52182361,3.72994425 10.6064141,3.72994425 Z"
id=
"路径"
></path>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/taskResultsSeeIcon.svg
0 → 100644
View file @
2ab5bfe5
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"17px"
height=
"15px"
viewBox=
"0 0 17 15"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
1.Base基础/Icon图标/查看备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"1.Base基础/Icon图标/查看备份"
transform=
"translate(0.000000, -1.000000)"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-58"
transform=
"translate(0.500000, 1.488632)"
stroke=
"#8A9099"
stroke-width=
"1.62830815"
>
<g
id=
"编组"
>
<line
x1=
"0"
y1=
"0.5"
x2=
"12.4755135"
y2=
"0.5"
id=
"路径"
></line>
<line
x1=
"0"
y1=
"6.18590274"
x2=
"4.99389897"
y2=
"6.18590274"
id=
"路径"
></line>
<line
x1=
"0"
y1=
"11.8718055"
x2=
"5.66782353"
y2=
"11.8718055"
id=
"路径"
></line>
<line
x1=
"13.0860211"
y1=
"10.7189929"
x2=
"15.2967853"
y2=
"13.4172047"
id=
"路径"
></line>
<path
d=
"M10.6064141,3.72994425 C11.6910045,3.72994425 12.6717682,4.15682942 13.3821406,4.84341174 C14.1027218,5.53986092 14.5458693,6.50270675 14.5458693,7.56473415 C14.5458693,8.62676155 14.1027218,9.58960738 13.3821406,10.2860566 C12.6717682,10.9726389 11.6910045,11.3995241 10.6064141,11.3995241 C9.52182361,11.3995241 8.54105997,10.9726389 7.83068751,10.2860566 C7.11010631,9.58960738 6.66695888,8.62676155 6.66695888,7.56473415 C6.66695888,6.50270675 7.11010631,5.53986092 7.83068751,4.84341174 C8.54105997,4.15682942 9.52182361,3.72994425 10.6064141,3.72994425 Z"
id=
"路径"
></path>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/views/Project/ProjectData/SeeDataset/index.module.css
View file @
2ab5bfe5
...
@@ -71,6 +71,13 @@
...
@@ -71,6 +71,13 @@
}
}
.deleteIcon
{
.deleteIcon
{
cursor
:
pointer
;
cursor
:
pointer
;
width
:
16px
;
height
:
16px
;
background-image
:
url(../../../../assets/project/jobDel.svg)
;
background-repeat
:
no-repeat
;
}
.deleteIcon
:hover
{
background-image
:
url(../../../../assets/project/deleteHover.svg)
;
}
}
.deleteIconDisabled
{
.deleteIconDisabled
{
cursor
:
not-allowed
;
cursor
:
not-allowed
;
...
...
src/views/Project/ProjectData/SeeDataset/index.tsx
View file @
2ab5bfe5
...
@@ -296,15 +296,13 @@ const SeeDataset = observer((props: ISeeDatasetProps) => {
...
@@ -296,15 +296,13 @@ const SeeDataset = observer((props: ISeeDatasetProps) => {
onChange=
{
(
e
)
=>
handleQueryChange
(
e
,
index
)
}
onChange=
{
(
e
)
=>
handleQueryChange
(
e
,
index
)
}
sx=
{
{
marginRight
:
"16px"
,
width
:
"180px"
}
}
sx=
{
{
marginRight
:
"16px"
,
width
:
"180px"
}
}
></
MyInput
>
></
MyInput
>
<
img
<
div
onClick=
{
()
=>
handleDeleteQuery
(
index
)
}
onClick=
{
()
=>
handleDeleteQuery
(
index
)
}
src=
{
jobDel
}
alt=
""
className=
{
classNames
({
className=
{
classNames
({
[
style
.
deleteIcon
]:
true
,
[
style
.
deleteIcon
]:
true
,
[
style
.
deleteIconDisabled
]:
querylist
.
length
===
1
,
[
style
.
deleteIconDisabled
]:
querylist
.
length
===
1
,
})
}
})
}
/
>
></
div
>
</
div
>
</
div
>
);
);
})
}
})
}
...
...
src/views/Project/ProjectJobDetail/TaskInfo/index.tsx
0 → 100644
View file @
2ab5bfe5
import
styles
from
"../index.module.css"
;
import
{
ITaskInfo
}
from
"../../ProjectSubmitWork/interface"
;
import
jobSue
from
"@/assets/project/jobSue.svg"
;
import
jobStop
from
"@/assets/project/jobStop.svg"
;
import
jobRun
from
"@/assets/project/jobRun.svg"
;
import
jobFail
from
"@/assets/project/jobFail.svg"
;
import
taskResultsFileIcon
from
"@/assets/project/taskResultsFileIcon.svg"
;
import
taskResultsDatasetIcon
from
"@/assets/project/taskResultsDatasetIcon.svg"
;
import
{
IState
}
from
"../../ProjectSubmitWork/interface"
;
import
classNames
from
"classnames"
;
type
ITaskInfoProps
=
{
workFlowJobInfo
:
ITaskInfo
;
randerOutputs1
:
Array
<
any
>
;
handleDownLoadOutput
:
any
;
handleShowPopper
:
any
;
setGoToProjectDataPath
:
any
;
setShowLogView
:
any
;
state
:
IState
|
undefined
;
name
:
any
;
};
const
stateMap
=
{
SUBMITTED
:
"正在启动"
,
RUNNING
:
"正在运行"
,
ABORTED
:
"运行终止"
,
FAILED
:
"运行失败"
,
SUCCEEDED
:
"运行成功"
,
};
const
TaskInfo
=
(
props
:
ITaskInfoProps
)
=>
{
const
{
workFlowJobInfo
,
randerOutputs1
,
handleDownLoadOutput
,
handleShowPopper
,
setGoToProjectDataPath
,
setShowLogView
,
state
,
name
,
}
=
props
;
return
(
<
div
className=
{
styles
.
taskInfo
}
>
<
div
className=
{
styles
.
title
}
>
任务结果
<
span
className=
{
styles
.
taskResultsNum
}
>
{
randerOutputs1
.
length
}
</
span
>
</
div
>
{
workFlowJobInfo
?.
outputs
&&
Object
.
keys
(
workFlowJobInfo
?.
outputs
).
length
>
0
&&
(
<
div
className=
{
styles
.
taskResults
}
>
{
randerOutputs1
.
map
((
item
,
index
)
=>
{
return
(
<
div
key=
{
index
}
className=
{
styles
.
outputLi
}
>
<
div
className=
{
styles
.
outputLiLeft
}
>
<
img
className=
{
styles
.
outputLiLeftImg
}
src=
{
item
.
type
===
"file"
?
taskResultsFileIcon
:
taskResultsDatasetIcon
}
alt=
""
/>
<
div
className=
{
styles
.
outputLiLeftContent
}
>
<
div
className=
{
styles
.
outputItemName
}
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
outputLiSize
}
>
{
item
.
size
}
</
div
>
</
div
>
</
div
>
<
div
onClick=
{
(
e
:
any
)
=>
{
handleDownLoadOutput
(
item
);
}
}
className=
{
classNames
({
[
styles
.
outputLiRight
]:
true
,
[
styles
.
seeDataset
]:
item
.
type
!==
"file"
,
[
styles
.
downloadFile
]:
item
.
type
===
"file"
,
})
}
></
div
>
</
div
>
);
})
}
</
div
>
)
}
{
(
!
workFlowJobInfo
?.
outputs
||
Object
.
keys
(
workFlowJobInfo
?.
outputs
).
length
===
0
)
&&
(
<
div
className=
{
styles
.
notResults
}
>
暂无结果文件
</
div
>
)
}
<
div
className=
{
styles
.
title
}
>
任务信息
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
任务名称
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
title=
{
name
}
>
{
name
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
任务ID
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
title=
{
workFlowJobInfo
?.
id
}
>
{
workFlowJobInfo
?.
id
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
输出路径
</
div
>
<
div
className=
{
classNames
({
[
styles
.
taskInfoValue
]:
true
,
[
styles
.
taskInfoValueClick
]:
true
,
})
}
onClick=
{
(
e
:
any
)
=>
{
handleShowPopper
(
e
,
"即将跳转至项目数据内该任务的输出路径,确认继续吗?"
,
"bottom"
);
setGoToProjectDataPath
(
workFlowJobInfo
?.
outputPath
as
string
);
}
}
>
{
workFlowJobInfo
?.
outputPath
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
运行状态
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
state
===
"SUCCEEDED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobSue
}
alt=
""
/>
)
}
{
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobRun
}
alt=
""
/>
)
}
{
state
===
"ABORTED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobStop
}
alt=
""
/>
)
}
{
state
===
"FAILED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobFail
}
alt=
""
/>
)
}
{
state
?
stateMap
[
state
]
:
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
源模板
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
specTitle
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
源模板版本
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
specVersion
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
花费(元)
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
jobCost
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
创建人
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
creator
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
创建时间
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
createTime
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
运行时间
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
costTime
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
日志文件
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
logPath
&&
(
<>
<
span
className=
{
styles
.
taskInfoDownload
}
onClick=
{
()
=>
setShowLogView
(
true
)
}
>
查看
</
span
>
</>
)
}
{
!
workFlowJobInfo
?.
logPath
&&
"-"
}
</
div
>
</
div
>
</
div
>
);
};
export
default
TaskInfo
;
src/views/Project/ProjectJobDetail/index.module.css
View file @
2ab5bfe5
...
@@ -70,8 +70,14 @@
...
@@ -70,8 +70,14 @@
font-weight
:
600
;
font-weight
:
600
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
.taskResultsNum
{
color
:
rgba
(
19
,
112
,
255
,
1
);
line-height
:
24px
;
font-size
:
16px
;
margin-left
:
8px
;
}
.taskResults
{
.taskResults
{
padding
:
2
4
px
;
padding
:
2
3px
20
px
;
background-color
:
rgba
(
247
,
248
,
250
,
1
);
background-color
:
rgba
(
247
,
248
,
250
,
1
);
margin-bottom
:
24px
;
margin-bottom
:
24px
;
}
}
...
@@ -79,7 +85,10 @@
...
@@ -79,7 +85,10 @@
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
margin
:
6px
0
;
margin-bottom
:
26px
;
}
.outputLi
:last-child
{
margin-bottom
:
0
;
}
}
.outputLiLeft
{
.outputLiLeft
{
cursor
:
pointer
;
cursor
:
pointer
;
...
@@ -94,13 +103,40 @@
...
@@ -94,13 +103,40 @@
display
:
block
;
display
:
block
;
overflow
:
hidden
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
line-height
:
22px
;
font-size
:
14px
;
font-weight
:
600
;
color
:
rgba
(
30
,
38
,
51
,
1
);
margin-bottom
:
4px
;
}
.outputLiSize
{
line-height
:
20px
;
font-size
:
12px
;
color
:
rgba
(
138
,
144
,
153
,
1
);
}
}
.outputLiLeftImg
{
.outputLiLeftImg
{
margin-right
:
12px
;
margin-right
:
16px
;
width
:
40px
;
height
:
40px
;
}
}
.outputLiRight
{
.outputLiRight
{
color
:
rgba
(
138
,
144
,
153
,
1
);
cursor
:
pointer
;
font-size
:
12px
;
}
.seeDataset
{
width
:
17px
;
height
:
15px
;
background-image
:
url(../../../assets/project/taskResultsSeeIcon.svg)
;
}
.seeDataset
:hover
{
background-image
:
url(../../../assets/project/taskResultsSeeHoverIcon.svg)
;
}
.downloadFile
{
width
:
16px
;
height
:
16px
;
background-image
:
url(../../../assets/project/taskResultsDownloadIcon.svg)
;
}
.downloadFile
:hover
{
background-image
:
url(../../../assets/project/taskResultsDownloadHoverIcon.svg)
;
}
}
.notResults
{
.notResults
{
background-color
:
rgba
(
247
,
248
,
250
,
1
);
background-color
:
rgba
(
247
,
248
,
250
,
1
);
...
...
src/views/Project/ProjectJobDetail/index.tsx
View file @
2ab5bfe5
...
@@ -13,6 +13,7 @@ import classNames from "classnames";
...
@@ -13,6 +13,7 @@ import classNames from "classnames";
import
{
useLocation
,
useNavigate
}
from
"react-router-dom"
;
import
{
useLocation
,
useNavigate
}
from
"react-router-dom"
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
TaskInfo
from
"./TaskInfo"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
{
import
{
fetchWorkFlowJob
,
fetchWorkFlowJob
,
...
@@ -21,15 +22,12 @@ import {
...
@@ -21,15 +22,12 @@ import {
}
from
"@/api/project_api"
;
}
from
"@/api/project_api"
;
import
{
IResponse
}
from
"@/api/http"
;
import
{
IResponse
}
from
"@/api/http"
;
import
jobSue
from
"@/assets/project/jobSue.svg"
;
import
jobSue
from
"@/assets/project/jobSue.svg"
;
import
jobStop
from
"@/assets/project/jobStop.svg"
;
import
jobRun
from
"@/assets/project/jobRun.svg"
;
import
jobRun
from
"@/assets/project/jobRun.svg"
;
import
fullScreen
from
"@/assets/project/fullScreen.svg"
;
import
fullScreen
from
"@/assets/project/fullScreen.svg"
;
import
partialScreen
from
"@/assets/project/partialScreen.svg"
;
import
partialScreen
from
"@/assets/project/partialScreen.svg"
;
import
goback
from
"@/assets/project/goback.svg"
;
import
goback
from
"@/assets/project/goback.svg"
;
import
CloudEController
from
"@/api/fileserver/CloudEController"
;
import
CloudEController
from
"@/api/fileserver/CloudEController"
;
import
jobFail
from
"@/assets/project/jobFail.svg"
;
import
jobFail
from
"@/assets/project/jobFail.svg"
;
import
fileIcon
from
"@/assets/project/fileIcon.svg"
;
import
dataSetIcon
from
"@/assets/project/dataSetIcon.svg"
;
import
{
useStores
}
from
"@/store"
;
import
{
useStores
}
from
"@/store"
;
import
{
ITaskInfo
}
from
"../ProjectSubmitWork/interface"
;
import
{
ITaskInfo
}
from
"../ProjectSubmitWork/interface"
;
import
Flow
from
"../components/Flow"
;
import
Flow
from
"../components/Flow"
;
...
@@ -51,14 +49,6 @@ import MyTooltip from "@/components/mui/MyTooltip";
...
@@ -51,14 +49,6 @@ import MyTooltip from "@/components/mui/MyTooltip";
import
styles
from
"./index.module.css"
;
import
styles
from
"./index.module.css"
;
const
stateMap
=
{
SUBMITTED
:
"正在启动"
,
RUNNING
:
"正在运行"
,
ABORTED
:
"运行终止"
,
FAILED
:
"运行失败"
,
SUCCEEDED
:
"运行成功"
,
};
const
statusMap
=
{
const
statusMap
=
{
Done
:
"运行完成"
,
Done
:
"运行完成"
,
Running
:
"正在运行"
,
Running
:
"正在运行"
,
...
@@ -207,15 +197,6 @@ const ProjectSubmitWork = observer(() => {
...
@@ -207,15 +197,6 @@ const ProjectSubmitWork = observer(() => {
}
}
};
};
// 通过文件路径获取文件所在文件夹路径 如 输入 /ProjectData/task_a.out 输出/ProjectData/
// const getFolderPath = (path: string) => {
// const lastIndex = path.lastIndexOf("/");
// if (lastIndex !== -1) {
// path = path.slice(0, lastIndex);
// }
// return path;
// };
// 下载任务结果
// 下载任务结果
const
handleDownLoadOutput
=
(
item
:
any
)
=>
{
const
handleDownLoadOutput
=
(
item
:
any
)
=>
{
// 是文件下载
// 是文件下载
...
@@ -483,173 +464,16 @@ const ProjectSubmitWork = observer(() => {
...
@@ -483,173 +464,16 @@ const ProjectSubmitWork = observer(() => {
{
fullScreenShow
?
null
:
(
{
fullScreenShow
?
null
:
(
<
div
className=
{
styles
.
swFormBox
}
>
<
div
className=
{
styles
.
swFormBox
}
>
{
!
activeFlowIndex
&&
(
{
!
activeFlowIndex
&&
(
<
div
className=
{
styles
.
taskInfo
}
>
<
TaskInfo
<
div
className=
{
styles
.
title
}
>
任务结果
</
div
>
workFlowJobInfo=
{
workFlowJobInfo
as
ITaskInfo
}
{
workFlowJobInfo
?.
outputs
&&
randerOutputs1=
{
randerOutputs1
}
Object
.
keys
(
workFlowJobInfo
?.
outputs
).
length
>
0
&&
(
handleDownLoadOutput=
{
handleDownLoadOutput
}
<
div
className=
{
styles
.
taskResults
}
>
handleShowPopper=
{
handleShowPopper
}
{
randerOutputs1
.
map
((
item
,
index
)
=>
{
setGoToProjectDataPath=
{
setGoToProjectDataPath
}
return
(
setShowLogView=
{
setShowLogView
}
<
div
key=
{
index
}
className=
{
styles
.
outputLi
}
>
state=
{
state
}
<
div
name=
{
name
}
className=
{
styles
.
outputLiLeft
}
/>
onClick=
{
(
e
:
any
)
=>
{
handleDownLoadOutput
(
item
);
}
}
>
<
img
className=
{
styles
.
outputLiLeftImg
}
src=
{
item
.
type
===
"file"
?
fileIcon
:
dataSetIcon
}
alt=
""
/>
<
span
className=
{
styles
.
outputItemName
}
>
{
item
.
name
}
</
span
>
</
div
>
<
span
className=
{
styles
.
outputLiRight
}
>
{
item
.
size
}
</
span
>
</
div
>
);
})
}
</
div
>
)
}
{
(
!
workFlowJobInfo
?.
outputs
||
Object
.
keys
(
workFlowJobInfo
?.
outputs
).
length
===
0
)
&&
(
<
div
className=
{
styles
.
notResults
}
>
暂无结果文件
</
div
>
)
}
<
div
className=
{
styles
.
title
}
>
任务信息
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
任务名称
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
title=
{
name
}
>
{
name
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
任务ID
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
title=
{
workFlowJobInfo
?.
id
}
>
{
workFlowJobInfo
?.
id
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
输出路径
</
div
>
<
div
className=
{
classNames
({
[
styles
.
taskInfoValue
]:
true
,
[
styles
.
taskInfoValueClick
]:
true
,
})
}
onClick=
{
(
e
:
any
)
=>
{
handleShowPopper
(
e
,
"即将跳转至项目数据内该任务的输出路径,确认继续吗?"
,
"bottom"
);
setGoToProjectDataPath
(
workFlowJobInfo
?.
outputPath
as
string
);
}
}
>
{
workFlowJobInfo
?.
outputPath
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
运行状态
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
state
===
"SUCCEEDED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobSue
}
alt=
""
/>
)
}
{
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobRun
}
alt=
""
/>
)
}
{
state
===
"ABORTED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobStop
}
alt=
""
/>
)
}
{
state
===
"FAILED"
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobFail
}
alt=
""
/>
)
}
{
state
?
stateMap
[
state
]
:
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
源模板
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
specTitle
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
源模板版本
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
specVersion
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
花费(元)
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
jobCost
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
创建人
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
creator
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
创建时间
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
createTime
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
运行时间
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
costTime
||
"-"
}
</
div
>
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
日志文件
</
div
>
<
div
className=
{
styles
.
taskInfoValue
}
>
{
workFlowJobInfo
?.
logPath
&&
(
<>
{
/* <span
className={styles.taskInfoDownload}
onClick={() => handleDownLoad(workFlowJobInfo?.logPath)}
>
下载
</span> */
}
<
span
className=
{
styles
.
taskInfoDownload
}
onClick=
{
()
=>
setShowLogView
(
true
)
}
>
查看
</
span
>
</>
)
}
{
!
workFlowJobInfo
?.
logPath
&&
"-"
}
</
div
>
</
div
>
</
div
>
)
}
)
}
{
activeFlowIndex
&&
(
{
activeFlowIndex
&&
(
<
div
className=
{
styles
.
suanziInfo
}
>
<
div
className=
{
styles
.
suanziInfo
}
>
...
@@ -778,12 +602,7 @@ const ProjectSubmitWork = observer(() => {
...
@@ -778,12 +602,7 @@ const ProjectSubmitWork = observer(() => {
projectId=
{
projectId
as
string
}
projectId=
{
projectId
as
string
}
></
SeeDataset
>
></
SeeDataset
>
)
}
)
}
{
showLogView
&&
(
{
showLogView
&&
<
LogView
logs=
{
logs
}
setShowLogView=
{
handleClose
}
/>
}
<
LogView
logs=
{
logs
}
setShowLogView=
{
handleClose
}
/>
)
}
</
div
>
</
div
>
);
);
});
});
...
...
src/views/Project/ProjectSubmitWork/interface.ts
View file @
2ab5bfe5
...
@@ -132,4 +132,4 @@ export interface ITaskInfo extends ITemplateConfig {
...
@@ -132,4 +132,4 @@ export interface ITaskInfo extends ITemplateConfig {
outputs
?:
any
;
// 结果文件
outputs
?:
any
;
// 结果文件
}
}
type
IState
=
"SUCCEEDED"
|
"RUNNING"
|
"ABORTED"
|
"FAILED"
;
export
type
IState
=
"SUCCEEDED"
|
"RUNNING"
|
"ABORTED"
|
"FAILED"
;
src/views/demo/MyTableDemo/index.tsx
View file @
2ab5bfe5
...
@@ -117,27 +117,26 @@ const MyTableDemo = () => {
...
@@ -117,27 +117,26 @@ const MyTableDemo = () => {
{
{
id
:
"a"
,
id
:
"a"
,
label
:
"属性a"
,
label
:
"属性a"
,
width
:
"150"
,
width
:
150
,
},
},
{
{
id
:
"b"
,
id
:
"b"
,
label
:
"属性b"
,
label
:
"属性b"
,
width
:
"250"
,
width
:
150
,
},
},
{
{
id
:
"c"
,
id
:
"c"
,
label
:
"属性c"
,
label
:
"属性c"
,
width
:
"350"
,
width
:
150
,
},
},
{
{
id
:
"d"
,
id
:
"d"
,
label
:
"属性d"
,
label
:
"属性d"
,
width
:
"250"
,
},
},
{
{
id
:
"caozuo"
,
id
:
"caozuo"
,
label
:
"操作"
,
label
:
"操作"
,
width
:
"250"
,
width
:
150
,
},
},
];
];
...
@@ -145,13 +144,13 @@ const MyTableDemo = () => {
...
@@ -145,13 +144,13 @@ const MyTableDemo = () => {
{
{
id
:
"a"
,
id
:
"a"
,
label
:
"属性a"
,
label
:
"属性a"
,
width
:
"200"
,
width
:
200
,
showOverflowTooltip
:
true
,
showOverflowTooltip
:
true
,
},
},
{
{
id
:
"b"
,
id
:
"b"
,
label
:
"属性b"
,
label
:
"属性b"
,
width
:
"200"
,
width
:
200
,
},
},
{
{
id
:
"c"
,
id
:
"c"
,
...
@@ -161,7 +160,7 @@ const MyTableDemo = () => {
...
@@ -161,7 +160,7 @@ const MyTableDemo = () => {
{
{
id
:
"d"
,
id
:
"d"
,
label
:
"属性d"
,
label
:
"属性d"
,
width
:
"200"
,
width
:
200
,
},
},
];
];
...
@@ -169,24 +168,23 @@ const MyTableDemo = () => {
...
@@ -169,24 +168,23 @@ const MyTableDemo = () => {
{
{
id
:
"a"
,
id
:
"a"
,
label
:
"属性a"
,
label
:
"属性a"
,
width
:
"25%"
,
width
:
200
,
sort
:
true
,
sort
:
true
,
},
},
{
{
id
:
"b"
,
id
:
"b"
,
label
:
"属性b"
,
label
:
"属性b"
,
width
:
"25%"
,
width
:
200
,
sort
:
true
,
sort
:
true
,
},
},
{
{
id
:
"c"
,
id
:
"c"
,
label
:
"属性c"
,
label
:
"属性c"
,
width
:
"25%"
,
width
:
200
,
},
},
{
{
id
:
"d"
,
id
:
"d"
,
label
:
"属性d"
,
label
:
"属性d"
,
width
:
"25%"
,
},
},
];
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment