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
sunyihao
bkunyun
Commits
cdeb7fe3
Commit
cdeb7fe3
authored
Jul 08, 2022
by
chenshouchao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决合并冲突
parent
0c38f37f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
154 additions
and
192 deletions
+154
-192
index.tsx
src/views/Project/ProjectWorkbench/workbenchList/index.tsx
+154
-192
No files found.
src/views/Project/ProjectWorkbench/workbenchList/index.tsx
View file @
cdeb7fe3
...
...
@@ -7,20 +7,18 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import
{
memo
,
useCallback
,
useEffect
,
useState
}
from
"react"
;
import
_
from
"lodash"
;
import
{
useNavigate
}
from
"react-router-dom"
;
import
{
Box
,
Typography
}
from
"@mui/material"
;
import
OutlinedInput
from
"@mui/material/OutlinedInput"
;
import
SearchIcon
from
"@mui/icons-material/Search"
;
import
LinearProgress
,
{
linearProgressClasses
,
}
from
"@mui/material/LinearProgress"
;
import
{
TablePagination
}
from
"@mui/material"
;
import
TextField
from
"@mui/material/TextField"
;
import
MenuItem
from
"@mui/material/MenuItem"
;
import
SimpleDialog
from
"./components/simpleDialog"
;
import
LinearProgress
,
{
linearProgressClasses
}
from
'@mui/material/LinearProgress'
;
import
{
TablePagination
}
from
'@mui/material'
;
import
TextField
from
'@mui/material/TextField'
;
import
MenuItem
from
'@mui/material/MenuItem'
;
import
SimpleDialog
from
"./components/simpleDialog"
import
{
useStores
}
from
"@/store"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
ActionsComponent
from
"../../../../components/Material.Ui/Table/ActionsComponent"
import
runTime
from
'../../../../assets/project/runTime.svg'
...
...
@@ -34,38 +32,38 @@ import jobDel from '../../../../assets/project/jobDel.svg'
import
noData
from
'../../../../assets/project/noTemplate.svg'
import
onload
from
'../../../../assets/project/onload.svg'
import
{
getWorkflowJobList
,
deleteWorkflowJob
,
cancelWorkflowJob
,
getWorkflowJobList
,
deleteWorkflowJob
,
cancelWorkflowJob
}
from
"@/api/workbench_api"
;
import
{
toJS
}
from
"mobx"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
usePass
from
"@/hooks/usePass"
;
import
styles
from
"./index.module.css"
;
import
{
toJS
}
from
"mobx"
;
const
currencies
=
[
{
value
:
"ALL"
,
label
:
"全部"
,
},
{
value
:
"RUNNING"
,
label
:
"正在运行"
,
},
{
value
:
"SUCCEEDED"
,
label
:
"运行成功"
,
},
{
value
:
"FAILED"
,
label
:
"运行失败"
,
},
{
value
:
"ABORTED"
,
label
:
"运行终止"
,
},
{
value
:
'ALL'
,
label
:
'全部'
,
},
{
value
:
'RUNNING'
,
label
:
'正在运行'
,
},
{
value
:
'SUCCEEDED'
,
label
:
'运行成功'
,
},
{
value
:
'FAILED'
,
label
:
'运行失败'
,
},
{
value
:
'ABORTED'
,
label
:
'运行终止'
,
},
];
let
timer
:
string
|
number
|
NodeJS
.
Timeout
|
null
|
undefined
=
null
...
...
@@ -89,7 +87,7 @@ const ProjectMembers = observer(() => {
onSuccess
:
(
result
:
any
)
=>
{
setJobList
(
result
.
data
.
content
);
setCount
(
result
.
data
.
totalElements
)
timer
&&
clearTimeout
(
timer
)
timer
&&
clearTimeout
(
timer
as
number
)
timer
=
null
;
timer
=
setTimeout
(()
=>
{
getWorkflowJobInfo
({
...
...
@@ -136,37 +134,27 @@ const ProjectMembers = observer(() => {
setJobName
(
data
.
length
>
30
?
data
.
slice
(
0
,
30
)
:
data
);
}
// 删除作业
const
{
run
:
delWorkflowJob
}
=
useMyRequest
(
deleteWorkflowJob
,
{
onSuccess
:
(
result
:
any
)
=>
{
setOpenDialog
(
false
);
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
page
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
},
});
// 删除作业
const
{
run
:
cancelWorkflowJobInfo
}
=
useMyRequest
(
cancelWorkflowJob
,
{
onSuccess
:
(
result
:
any
)
=>
{
setOpenDialog
(
false
);
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
page
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
},
});
const
searchChange
=
(
data
:
any
)
=>
{
setJobName
(
data
.
length
>
30
?
data
.
slice
(
0
,
30
)
:
data
);
};
const
handleChange
=
(
event
:
any
)
=>
{
setCurrency
(
event
.
target
.
value
);
};
/** 关闭弹窗 */
const
closeDialog
=
()
=>
{
setOpenDialog
(
false
);
};
/** 弹窗确认 */
const
onConfirm
=
()
=>
{
if
(
dialogType
===
"del"
)
{
delWorkflowJob
({
id
:
jobData
})
}
else
{
cancelWorkflowJobInfo
({
jobid
:
jobData
})
}
};
useEffect
(()
=>
{
getWorkflowJobInfo
({
...
...
@@ -178,76 +166,85 @@ const ProjectMembers = observer(() => {
});
},
[
projectId
,
getWorkflowJobInfo
]);
/** 关闭弹窗 */
const
closeDialog
=
()
=>
{
setOpenDialog
(
false
);
};
/** 弹窗确认 */
const
onConfirm
=
()
=>
{
if
(
dialogType
===
"del"
)
{
delWorkflowJob
({
id
:
jobData
,
});
}
else
{
cancelWorkflowJobInfo
({
jobid
:
jobData
,
});
}
};
useEffect
(()
=>
{
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
page
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
},
[
currentProjectStore
.
currentProjectInfo
.
id
,
getWorkflowJobInfo
,
projectId
,
page
,
size
,
jobName
,
currency
,
]);
const
handleChangePage
=
(
event
:
any
,
newPage
:
any
)
=>
{
setPage
(
newPage
);
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
newPage
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
};
const
handleChangeRowsPerPage
=
(
event
:
any
)
=>
{
setRowsPerPage
(
event
.
target
.
value
);
setSize
(
event
.
target
.
value
);
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
page
,
size
:
event
.
target
.
value
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
};
useEffect
(()
=>
{
setTimeout
(()
=>
{
getWorkflowJobInfo
({
projectId
:
projectId
as
string
,
page
:
page
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
"ALL"
?
""
:
currency
,
});
},
300
);
},
[
jobName
,
currency
,
projectId
,
getWorkflowJobInfo
,
page
,
size
]);
const
handleChangePage
=
(
event
:
any
,
newPage
:
any
)
=>
{
setPage
(
newPage
)
getWorkflowJobInfo
({
projectId
:
currentProjectStore
.
currentProjectInfo
.
id
as
string
,
page
:
newPage
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
'ALL'
?
""
:
currency
});
}
const
handleChangeRowsPerPage
=
(
event
:
any
)
=>
{
setRowsPerPage
(
event
.
target
.
value
)
setSize
(
event
.
target
.
value
)
getWorkflowJobInfo
({
projectId
:
currentProjectStore
.
currentProjectInfo
.
id
as
string
,
page
:
page
,
size
:
event
.
target
.
value
,
name
:
jobName
,
state
:
currency
===
'ALL'
?
""
:
currency
});
}
useEffect
(()
=>
{
setTimeout
(()
=>
{
getWorkflowJobInfo
({
projectId
:
currentProjectStore
.
currentProjectInfo
.
id
as
string
,
page
:
page
,
size
:
size
,
name
:
jobName
,
state
:
currency
===
'ALL'
?
""
:
currency
});
},
300
)
},
[
jobName
,
currency
]);
const
renderStatusIcon
=
(
data
:
string
)
=>
{
switch
(
data
)
{
case
"RUNNING"
:
return
jobRun
case
"ABORTED"
:
return
jobCadence
case
"FAILED"
:
return
jobFail
case
"SUCCEEDED"
:
return
jobSue
default
:
return
jobCadence
}
}
const
renderStatusText
=
(
data
:
string
)
=>
{
switch
(
data
)
{
case
"RUNNING"
:
return
'正在运行'
case
"ABORTED"
:
return
'运行终止'
case
"FAILED"
:
return
'运行失败'
case
"SUCCEEDED"
:
return
'运行成功'
default
:
return
'未知'
}
}
const
renderProgress
=
(
data
:
any
)
=>
{
switch
(
data
)
{
case
"RUNNING"
:
return
'#1370FF'
case
"ABORTED"
:
return
'#C2C6CC'
case
"FAILED"
:
return
'#FF4E4E'
case
"SUCCEEDED"
:
return
'#0DD09B'
default
:
return
'#C2C6CC'
}
}
/** 点击每一行 */
const
rowClick
=
useCallback
(
...
...
@@ -259,20 +256,8 @@ const ProjectMembers = observer(() => {
[
navigate
],
);
const
renderStatusText
=
(
data
:
string
)
=>
{
switch
(
data
)
{
case
"RUNNING"
:
return
"正在运行"
;
case
"ABORTED"
:
return
"运行终止"
;
case
"FAILED"
:
return
"运行失败"
;
case
"SUCCEEDED"
:
return
"运行成功"
;
default
:
return
"未知"
;
}
};
return
(
<
Box
className=
{
styles
.
headerBox
}
>
<
Box
className=
{
styles
.
tabHeader
}
>
...
...
@@ -329,19 +314,7 @@ const ProjectMembers = observer(() => {
<
img
alt=
""
src=
{
onload
}
/>
</
Box
>
return (
<
Box
className=
{
styles
.
headerBox
}
>
<
Box
className=
{
styles
.
tabHeader
}
>
<
OutlinedInput
onChange=
{
(
e
:
any
)
=>
{
searchChange
(
e
.
target
.
value
);
}
}
value=
{
jobName
}
placeholder=
"输入关键词搜索"
size=
"small"
sx=
{
{
width
:
340
,
height
:
32
}
}
endAdornment=
{
<
SearchIcon
style=
{
{
color
:
"#8A9099"
}
}
/>
}
/>
</
Box
>
<
Box
className=
{
styles
.
body
}
>
{
...
...
@@ -430,36 +403,25 @@ const ProjectMembers = observer(() => {
}
</
Box
>
<
Box
className=
{
styles
.
tabBoxJobOperate
}
>
<
img
alt=
""
src=
{
item
.
state
===
"RUNNING"
?
jobStop
:
jobDel
}
style=
{
{
cursor
:
"pointer"
}
}
onClick=
{
(
event
)
=>
{
event
.
stopPropagation
();
event
.
nativeEvent
.
stopImmediatePropagation
();
setJobData
(
item
.
id
);
setOpenDialog
(
true
);
setDialogType
(
item
.
state
===
"RUNNING"
?
"stop"
:
"del"
);
}
}
/>
</
Box
>
</
Box
>
);
})}
</
Box
>
<
TablePagination
rowsPerPageOptions=
{
[
5
,
10
,
20
,
50
]
}
labelRowsPerPage=
{
"每页行数:"
}
ActionsComponent=
{
ActionsComponent
}
component=
"div"
count=
{
count
||
jobList
.
length
}
rowsPerPage=
{
rowsPerPage
||
10
}
page=
{
page
}
onPageChange=
{
handleChangePage
}
//
onRowsPerPageChange=
{
handleChangeRowsPerPage
}
//
/>
<
TablePagination
rowsPerPageOptions=
{
[
5
,
10
,
20
,
50
]
}
labelRowsPerPage=
{
'每页行数:'
}
ActionsComponent=
{
ActionsComponent
}
component=
"div"
count=
{
count
||
jobList
.
length
}
rowsPerPage=
{
rowsPerPage
||
10
}
page=
{
page
}
onPageChange=
{
handleChangePage
}
//
onRowsPerPageChange=
{
handleChangeRowsPerPage
}
//
/>
<
SimpleDialog
text=
{
dialogType
===
"del"
?
'任务被删除后将无法恢复,确认继续吗?'
:
'正在运行的任务终止后将无法重新运行,确认继续吗?'
}
title=
{
dialogType
===
"del"
?
'删除任务'
:
'终止任务'
}
openDialog=
{
openDialog
}
closeDialog=
{
closeDialog
}
onConfirm=
{
onConfirm
}
/>
</
Box
>
);
...
...
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