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
7f637d6c
Commit
7f637d6c
authored
Sep 02, 2022
by
wuyongsheng
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-20220801' into 'release'
Feat 20220801 See merge request
!83
parents
03e84843
6191c175
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
363 additions
and
201 deletions
+363
-201
goback.svg
src/assets/project/goback.svg
+17
-0
index.tsx
src/components/BusinessComponents/SearchInput/index.tsx
+3
-0
MyButton.tsx
src/components/mui/MyButton.tsx
+5
-2
MySelect.tsx
src/components/mui/MySelect.tsx
+43
-2
index.module.css
src/views/ConsoleLayout/components/FileItem/index.module.css
+30
-23
index.tsx
src/views/ConsoleLayout/components/FileItem/index.tsx
+1
-1
index.tsx
src/views/ConsoleLayout/components/TransferList/index.tsx
+8
-5
index.tsx
src/views/MenuLayout/index.tsx
+70
-54
index.module.css
src/views/Project/ProjectData/MoveFile/index.module.css
+22
-23
index.module.css
src/views/Project/ProjectJobDetail/index.module.css
+5
-2
index.tsx
src/views/Project/ProjectJobDetail/index.tsx
+7
-29
index.module.css
src/views/Project/ProjectOverview/TaskCard/index.module.css
+1
-0
index.tsx
src/views/Project/ProjectOverview/TaskCard/index.tsx
+0
-0
index.module.css
src/views/Project/ProjectOverview/index.module.css
+11
-1
index.tsx
src/views/Project/ProjectOverview/index.tsx
+19
-3
index.tsx
src/views/Project/ProjectWorkbench/index.tsx
+1
-0
index.module.css
...s/Project/ProjectWorkbench/workbenchList/index.module.css
+9
-1
index.tsx
src/views/Project/ProjectWorkbench/workbenchList/index.tsx
+9
-8
index.module.css
...workbenchTemplate/components/AddTemplate/index.module.css
+1
-1
index.module.css
...oject/ProjectWorkbench/workbenchTemplate/index.module.css
+1
-0
index.tsx
...iews/Project/ProjectWorkbench/workbenchTemplate/index.tsx
+3
-2
index.module.css
...ect/components/Flow/components/BatchNode/index.module.css
+7
-2
index.module.css
...ject/components/Flow/components/FlowNode/index.module.css
+6
-0
index.tsx
...ews/Project/components/Flow/components/FlowNode/index.tsx
+6
-8
index.tsx
src/views/Project/components/Flow/index.tsx
+14
-11
index.module.css
...ews/Project/components/ProjectListPopper/index.module.css
+2
-1
index.module.css
...ews/WorkFlowEdit/components/OperatorList/index.module.css
+17
-12
index.tsx
src/views/WorkFlowEdit/components/OperatorList/index.tsx
+14
-2
index.module.css
src/views/WorkFlowEdit/index.module.css
+16
-3
index.tsx
src/views/WorkFlowEdit/index.tsx
+15
-5
No files found.
src/assets/project/goback.svg
0 → 100644
View file @
7f637d6c
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"22px"
height=
"22px"
viewBox=
"0 0 22 22"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
编组
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"点击算子"
transform=
"translate(-24.000000, -133.000000)"
>
<g
id=
"编组-12"
transform=
"translate(24.000000, 133.000000)"
>
<g
id=
"编组-16"
transform=
"translate(11.000000, 11.000000) scale(-1, 1) rotate(-90.000000) translate(-11.000000, -11.000000) "
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"22"
height=
"22"
></rect>
<g
id=
"编组-14"
transform=
"translate(5.500000, 8.250000)"
stroke=
"#8A9099"
stroke-linejoin=
"round"
stroke-width=
"2"
>
<polyline
id=
"路径-7备份"
transform=
"translate(5.500000, 2.750000) scale(1, -1) translate(-5.500000, -2.750000) "
points=
"0 5.5 5.5 2.98949133e-16 11 5.5"
></polyline>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/components/BusinessComponents/SearchInput/index.tsx
View file @
7f637d6c
...
@@ -38,6 +38,9 @@ const SearchInput = (props: SearchInputProps) => {
...
@@ -38,6 +38,9 @@ const SearchInput = (props: SearchInputProps) => {
height
:
"32px"
,
height
:
"32px"
,
fontSize
:
"14px"
,
fontSize
:
"14px"
,
paddingRight
:
"8px"
,
paddingRight
:
"8px"
,
"&.Mui-focused .MuiOutlinedInput-notchedOutline"
:
{
borderWidth
:
"1px"
,
},
"& .MuiOutlinedInput-notchedOutline"
:
{
"& .MuiOutlinedInput-notchedOutline"
:
{
borderColor
:
'#DDE1E6'
,
borderColor
:
'#DDE1E6'
,
},
},
...
...
src/components/mui/MyButton.tsx
View file @
7f637d6c
...
@@ -46,7 +46,7 @@ const theme = createTheme({
...
@@ -46,7 +46,7 @@ const theme = createTheme({
MuiButton
:
{
MuiButton
:
{
styleOverrides
:
{
styleOverrides
:
{
root
:
{
root
:
{
minWidth
:
"
4
8px"
,
minWidth
:
"
6
8px"
,
boxShadow
:
"none !important"
,
boxShadow
:
"none !important"
,
"&.MuiButton-textError"
:
{
"&.MuiButton-textError"
:
{
color
:
"rgba(255, 78, 78, 1)"
,
color
:
"rgba(255, 78, 78, 1)"
,
...
@@ -54,7 +54,7 @@ const theme = createTheme({
...
@@ -54,7 +54,7 @@ const theme = createTheme({
"&.MuiButton-outlinedError"
:
{
"&.MuiButton-outlinedError"
:
{
color
:
"rgba(255, 78, 78, 1)"
,
color
:
"rgba(255, 78, 78, 1)"
,
border
:
"1px solid rgba(255, 78, 78, 1)"
,
border
:
"1px solid rgba(255, 78, 78, 1)"
,
"&:hover"
:
{
backgroundColor
:
'transparent'
},
"&:hover"
:
{
backgroundColor
:
"transparent"
},
},
},
"& .MuiLoadingButton-loadingIndicator"
:
{
"& .MuiLoadingButton-loadingIndicator"
:
{
color
:
"#fff"
,
color
:
"#fff"
,
...
@@ -110,16 +110,19 @@ const theme = createTheme({
...
@@ -110,16 +110,19 @@ const theme = createTheme({
"& p"
:
{
fontSize
:
"12px"
},
"& p"
:
{
fontSize
:
"12px"
},
height
:
"28px"
,
height
:
"28px"
,
padding
:
"0 12px"
,
padding
:
"0 12px"
,
minWidth
:
"60px"
,
},
},
sizeMedium
:
{
sizeMedium
:
{
"& p"
:
{
fontSize
:
"14px"
},
"& p"
:
{
fontSize
:
"14px"
},
height
:
"32px"
,
height
:
"32px"
,
padding
:
"0 16px"
,
padding
:
"0 16px"
,
minWidth
:
"68px"
,
},
},
sizeLarge
:
{
sizeLarge
:
{
"& p"
:
{
fontSize
:
"16px"
},
"& p"
:
{
fontSize
:
"16px"
},
height
:
"36px"
,
height
:
"36px"
,
padding
:
"0 16px"
,
padding
:
"0 16px"
,
minWidth
:
"80px"
,
},
},
},
},
},
},
...
...
src/components/mui/MySelect.tsx
View file @
7f637d6c
...
@@ -12,6 +12,7 @@ import FormControl from "@mui/material/FormControl";
...
@@ -12,6 +12,7 @@ import FormControl from "@mui/material/FormControl";
import
FormHelperText
from
"@mui/material/FormHelperText"
;
import
FormHelperText
from
"@mui/material/FormHelperText"
;
import
Select
,
{
SelectChangeEvent
,
SelectProps
}
from
"@mui/material/Select"
;
import
Select
,
{
SelectChangeEvent
,
SelectProps
}
from
"@mui/material/Select"
;
import
{
createTheme
,
ThemeProvider
}
from
"@mui/material"
;
import
{
createTheme
,
ThemeProvider
}
from
"@mui/material"
;
import
selectActive
from
"@/assets/project/selectActive.svg"
;
export
interface
IOption
{
export
interface
IOption
{
label
:
string
;
label
:
string
;
...
@@ -80,10 +81,26 @@ export default function MySelect(props: IProps) {
...
@@ -80,10 +81,26 @@ export default function MySelect(props: IProps) {
},
},
},
},
input
:
{
input
:
{
fontSize
:
"14px"
,
"&.Mui-disabled"
:
{
"&.Mui-disabled"
:
{
background
:
"rgba(247, 248, 250, 1)"
,
background
:
"rgba(247, 248, 250, 1)"
,
cursor
:
"not-allowed"
,
cursor
:
"not-allowed"
,
},
},
img
:
{
display
:
"none"
,
},
},
},
},
MuiList
:
{
styleOverrides
:
{
root
:
{
"& .MuiButtonBase-root"
:
{
"&.Mui-selected"
:
{
backgroundColor
:
"#fff"
,
color
:
"#1370FF"
,
},
},
},
},
},
},
},
},
...
@@ -91,9 +108,12 @@ export default function MySelect(props: IProps) {
...
@@ -91,9 +108,12 @@ export default function MySelect(props: IProps) {
MuiMenuItem
:
{
MuiMenuItem
:
{
styleOverrides
:
{
styleOverrides
:
{
root
:
{
root
:
{
paddingRight
:
"46px"
,
fontSize
:
"14px"
,
lineHeight
:
"24px"
,
":hover"
:
{
":hover"
:
{
backgroundColor
:
"#
ECF4FF
"
,
backgroundColor
:
"#
F0F2F5
"
,
color
:
"#1
370FF
"
,
color
:
"#1
E2633
"
,
},
},
},
},
},
},
...
@@ -152,6 +172,14 @@ export default function MySelect(props: IProps) {
...
@@ -152,6 +172,14 @@ export default function MySelect(props: IProps) {
},
},
},
},
},
},
MuiPaper
:
{
styleOverrides
:
{
root
:
{
boxShadow
:
"0px 3px 10px 0px rgba(0,24,57,0.14)"
,
},
},
},
},
},
});
});
...
@@ -186,6 +214,19 @@ export default function MySelect(props: IProps) {
...
@@ -186,6 +214,19 @@ export default function MySelect(props: IProps) {
key=
{
index
}
key=
{
index
}
>
>
{
item
.
label
}
{
item
.
label
}
{
value
===
item
.
value
&&
(
<
img
style=
{
{
width
:
"16px"
,
height
:
"16px"
,
position
:
"absolute"
,
top
:
"10px"
,
right
:
"12px"
,
}
}
src=
{
selectActive
}
alt=
""
/>
)
}
</
MenuItem
>
</
MenuItem
>
);
);
})
})
...
...
src/views/ConsoleLayout/components/FileItem/index.module.css
View file @
7f637d6c
.itemBox
{
.itemBox
{
height
:
50px
;
height
:
50px
;
padding
:
16px
0
;
padding
:
16px
0
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
border-bottom
:
1px
solid
#f0f2f5
;
border-bottom
:
1px
solid
#f0f2f5
;
}
}
.fileNameBox
{
.fileNameBox
{
white-space
:
nowrap
;
white-space
:
nowrap
;
display
:
inline-block
;
display
:
inline-block
;
vertical-align
:
middle
;
vertical-align
:
middle
;
color
:
#1e2633
;
color
:
#1e2633
;
max-width
:
260px
;
max-width
:
260px
;
overflow
:
hidden
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.contentBox
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
}
.speedBox
{
.speedBox
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
}
}
.rightBox
{
.rightBox
{
cursor
:
pointer
;
cursor
:
pointer
;
font-size
:
12px
;
font-size
:
12px
;
color
:
#1370ff
;
color
:
#1370ff
;
}
}
.leftBox
{
.leftBox
{
display
:
flex
;
display
:
flex
;
}
}
.span
{
.span
{
color
:
#8a9099
;
color
:
#8a9099
;
font-size
:
12px
;
font-size
:
12px
;
}
}
src/views/ConsoleLayout/components/FileItem/index.tsx
View file @
7f637d6c
...
@@ -98,7 +98,7 @@ const FileItem = observer((props: IProps) => {
...
@@ -98,7 +98,7 @@ const FileItem = observer((props: IProps) => {
<
div
className=
{
styles
.
itemBox
}
>
<
div
className=
{
styles
.
itemBox
}
>
<
div
className=
{
styles
.
leftBox
}
>
<
div
className=
{
styles
.
leftBox
}
>
<
img
src=
{
bkunyunFile
}
alt=
""
style=
{
{
marginRight
:
16
}
}
/>
<
img
src=
{
bkunyunFile
}
alt=
""
style=
{
{
marginRight
:
16
}
}
/>
<
div
>
<
div
className=
{
styles
.
contentBox
}
>
<
div
>
<
div
>
<
b
className=
{
styles
.
fileNameBox
}
title=
{
itemInfo
?.
name
||
""
}
>
<
b
className=
{
styles
.
fileNameBox
}
title=
{
itemInfo
?.
name
||
""
}
>
{
itemInfo
?.
name
||
""
}
{
itemInfo
?.
name
||
""
}
...
...
src/views/ConsoleLayout/components/TransferList/index.tsx
View file @
7f637d6c
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-06-10 18:05:21
* @Date: 2022-06-10 18:05:21
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-09-0
1 15:54
:33
* @LastEditTime: 2022-09-0
2 10:47
:33
* @FilePath: /bkunyun/src/views/ConsoleLayout/components/TransferList/index.tsx
* @FilePath: /bkunyun/src/views/ConsoleLayout/components/TransferList/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
*/
...
@@ -20,16 +20,19 @@ const TranSferList = observer(() => {
...
@@ -20,16 +20,19 @@ const TranSferList = observer(() => {
const
uploadInfoStore
=
toJS
(
useGlobalStore
(
"fileListStore"
));
const
uploadInfoStore
=
toJS
(
useGlobalStore
(
"fileListStore"
));
return
(
return
(
<
Box
style=
{
{
width
:
520
,
padding
:
20
}
}
>
<
Box
style=
{
{
width
:
520
}
}
>
<
MyTitle
title=
"传输列表"
/>
<
MyTitle
style=
{
{
padding
:
"12px 16px"
}
}
title=
"传输列表"
/>
<
Box
<
Box
style=
{
{
style=
{
{
display
:
"flex"
,
display
:
"flex"
,
justifyContent
:
"space-between"
,
justifyContent
:
"space-between"
,
alignItems
:
"center"
,
alignItems
:
"center"
,
padding
:
"0 16px"
,
}
}
}
}
>
>
<
Box
style=
{
{
color
:
"#8A9099"
}
}
>
请勿在上传过程中刷新页面!
</
Box
>
<
Box
style=
{
{
color
:
"#8A9099"
,
fontSize
:
14
}
}
>
请勿在上传过程中刷新页面!
</
Box
>
<
MySelect
<
MySelect
variant=
"standard"
variant=
"standard"
value=
{
"default"
}
value=
{
"default"
}
...
@@ -43,7 +46,7 @@ const TranSferList = observer(() => {
...
@@ -43,7 +46,7 @@ const TranSferList = observer(() => {
size=
"small"
size=
"small"
/>
/>
</
Box
>
</
Box
>
<
div
style=
{
{
height
:
400
,
overflow
:
"overlay"
}
}
>
<
div
style=
{
{
height
:
400
,
overflow
:
"overlay"
,
padding
:
"0 16px"
}
}
>
{
uploadInfoStore
?.
fileList
.
map
((
item
)
=>
{
{
uploadInfoStore
?.
fileList
.
map
((
item
)
=>
{
return
<
FileItem
fileItemInfo=
{
item
}
key=
{
item
.
id
}
/>;
return
<
FileItem
fileItemInfo=
{
item
}
key=
{
item
.
id
}
/>;
})
}
})
}
...
...
src/views/MenuLayout/index.tsx
View file @
7f637d6c
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com
* @Author: 吴永生 15770852798@163.com
* @Date: 2022-08-02 11:43:28
* @Date: 2022-08-02 11:43:28
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-0
8-03 19:05:48
* @LastEditTime: 2022-0
9-02 12:01:12
* @FilePath: /bkunyun/src/views/MenuLayout/index.tsx
* @FilePath: /bkunyun/src/views/MenuLayout/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
*/
...
@@ -17,64 +17,80 @@ import classnames from "classnames";
...
@@ -17,64 +17,80 @@ import classnames from "classnames";
import
{
toJS
}
from
"mobx"
;
import
{
toJS
}
from
"mobx"
;
const
MenuLayout
=
observer
(()
=>
{
const
MenuLayout
=
observer
(()
=>
{
const
{
permissionStore
,
currentProjectStore
}
=
useStores
();
const
{
permissionStore
,
currentProjectStore
}
=
useStores
();
let
pathname
=
new
URL
(
window
.
location
.
href
).
pathname
;
let
pathname
=
new
URL
(
window
.
location
.
href
).
pathname
;
const
navigate
=
useNavigate
();
const
navigate
=
useNavigate
();
const
productInfo
=
toJS
(
currentProjectStore
.
currentProductInfo
);
const
productInfo
=
toJS
(
currentProjectStore
.
currentProductInfo
);
// 未选择产品时 直接跳转home页面
// 未选择产品时 直接跳转home页面
if
(
!
productInfo
.
name
)
{
if
(
!
productInfo
.
name
)
{
navigate
(
"/home"
);
navigate
(
"/home"
);
}
}
const
routerIcon
=
(
id
:
string
,
isSelect
:
boolean
)
=>
{
const
routerIcon
=
(
id
:
string
,
isSelect
:
boolean
)
=>
{
try
{
try
{
const
result
=
require
(
`../../assets/project/
${
id
}${
isSelect
?
'_BLUE'
:
''
}
.svg`
)
const
result
=
require
(
`../../assets/project/
${
id
}${
return
result
||
''
isSelect
?
"_BLUE"
:
""
}
catch
(
error
)
{
}
.svg`
);
console
.
log
(
error
)
return
result
||
""
;
}
}
catch
(
error
)
{
}
console
.
log
(
error
);
}
};
return
(
return
(
<
Box
className=
{
style
.
container
}
>
<
Box
className=
{
style
.
container
}
>
<
Box
className=
{
style
.
aside
}
>
<
Box
className=
{
style
.
aside
}
>
{
{
pathname
.
indexOf
(
"userCenter"
)
<
0
&&
<
CurrentProject
/>
}
pathname
.
indexOf
(
'userCenter'
)
<
0
&&
<
CurrentProject
/>
<
List
}
sx=
{
{
<
List
paddingTop
:
0
,
sx=
{
{
paddingBottom
:
0
,
paddingTop
:
0
,
}
}
paddingBottom
:
0
,
>
}
}
{
permissionStore
.
sidebarRouters
.
map
((
item
,
index
)
=>
{
>
if
(
item
.
show
)
{
{
permissionStore
.
sidebarRouters
.
map
((
item
,
index
)
=>
{
return
(
if
(
item
.
show
)
{
<
li
return
(
key=
{
"sidebar"
+
index
}
<
li
className=
{
classnames
({
key=
{
"sidebar"
+
index
}
[
style
.
listItem
]:
true
,
className=
{
classnames
({
[
style
.
active
]:
`/v3${item.path}`
===
pathname
,
[
style
.
listItem
]:
true
,
})
}
[
style
.
active
]:
`/v3${item.path}`
===
pathname
,
style=
{
})
}
`/v3${item.path}`
===
pathname
onClick=
{
()
=>
item
.
type
===
"page"
&&
navigate
(
item
.
path
)
}
?
{
borderLeft
:
"3px solid #1370ff"
}
>
:
undefined
<
img
className=
{
style
.
routerIcon
}
src=
{
routerIcon
(
item
.
id
||
''
,
`/v3${item.path}`
===
pathname
)
||
undefined
}
alt=
''
/>
}
<
span
style=
{
{
verticalAlign
:
'middle'
,
fontWeight
:
'500'
}
}
>
{
item
.
name
}
</
span
>
onClick=
{
()
=>
item
.
type
===
"page"
&&
navigate
(
item
.
path
)
}
</
li
>
>
);
<
img
}
className=
{
style
.
routerIcon
}
return
null
;
src=
{
})
}
routerIcon
(
</
List
>
item
.
id
||
""
,
</
Box
>
`/v3${item.path}`
===
pathname
<
Box
className=
{
style
.
content
}
>
)
||
undefined
<
Outlet
></
Outlet
>
}
</
Box
>
alt=
""
</
Box
>
/>
);
<
span
style=
{
{
verticalAlign
:
"middle"
,
fontWeight
:
"500"
}
}
>
{
item
.
name
}
</
span
>
</
li
>
);
}
return
null
;
})
}
</
List
>
</
Box
>
<
Box
className=
{
style
.
content
}
>
<
Outlet
></
Outlet
>
</
Box
>
</
Box
>
);
});
});
export
default
MenuLayout
;
export
default
MenuLayout
;
src/views/Project/ProjectData/MoveFile/index.module.css
View file @
7f637d6c
.rootTitle
{
.rootTitle
{
border-radius
:
4px
4px
0
0
;
border-radius
:
4px
4px
0
0
;
background-color
:
rgba
(
25
,
118
,
210
,
0.08
);
background-color
:
rgba
(
25
,
118
,
210
,
0.08
);
/* background-color: rgba(25, 118, 210, 0.5); */
line-height
:
44px
;
line-height
:
44px
;
color
:
rgba
(
30
,
38
,
51
,
1
);
color
:
rgba
(
30
,
38
,
51
,
1
);
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
600
;
font-weight
:
600
;
display
:
flex
;
display
:
flex
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
align-items
:
center
;
align-items
:
center
;
}
}
.rootTitleActive
{
.rootTitleActive
{
background-color
:
rgba
(
25
,
118
,
210
,
0.2
);
background-color
:
rgba
(
25
,
118
,
210
,
0.2
);
}
}
.bigFolderIcon
{
.bigFolderIcon
{
margin
:
0
9px
;
margin
:
0
9px
;
}
}
.treeLabel
{
.treeLabel
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
align-items
:
center
;
align-items
:
center
;
}
}
.treeLabelText
{
.treeLabelText
{
line-height
:
44px
;
line-height
:
44px
;
overflow
:
hidden
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
-o-text-overflow
:
ellipsis
;
-o-text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
width
:
320px
;
width
:
320px
;
}
}
.labelFolderIcon
{
.labelFolderIcon
{
margin-right
:
9px
;
margin-right
:
9px
;
}
}
src/views/Project/ProjectJobDetail/index.module.css
View file @
7f637d6c
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
top
:
0
;
top
:
0
;
height
:
56px
;
height
:
56px
;
background-color
:
#fff
;
background-color
:
#fff
;
box-shadow
:
0px
3px
10px
0px
rgba
(
0
,
24
,
57
,
0.0
4
);
box-shadow
:
0px
3px
10px
0px
rgba
(
0
,
24
,
57
,
0.0
6
);
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
...
@@ -25,6 +25,9 @@
...
@@ -25,6 +25,9 @@
justify-content
:
flex-start
;
justify-content
:
flex-start
;
align-items
:
center
;
align-items
:
center
;
}
}
.goBackIcon
{
cursor
:
pointer
;
}
.swTemplateTitle
{
.swTemplateTitle
{
margin
:
0
19px
0
8px
;
margin
:
0
19px
0
8px
;
line-height
:
22px
;
line-height
:
22px
;
...
@@ -39,7 +42,7 @@
...
@@ -39,7 +42,7 @@
}
}
.swFormBox
{
.swFormBox
{
background-color
:
#fff
;
background-color
:
#fff
;
border-right
:
1
xp
solid
rgba
(
235
,
237
,
240
,
1
)
;
border-right
:
1
px
solid
#ebedf0
;
width
:
360px
;
width
:
360px
;
overflow-y
:
overlay
;
overflow-y
:
overlay
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
...
...
src/views/Project/ProjectJobDetail/index.tsx
View file @
7f637d6c
...
@@ -11,8 +11,6 @@ import { toJS } from "mobx";
...
@@ -11,8 +11,6 @@ import { toJS } from "mobx";
import
{
observer
}
from
"mobx-react-lite"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
classNames
from
"classnames"
;
import
classNames
from
"classnames"
;
import
{
useLocation
,
useNavigate
}
from
"react-router-dom"
;
import
{
useLocation
,
useNavigate
}
from
"react-router-dom"
;
import
ArrowBackIosNewIcon
from
"@mui/icons-material/ArrowBackIosNew"
;
import
IconButton
from
"@mui/material/IconButton"
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
...
@@ -27,6 +25,7 @@ import jobStop from "@/assets/project/jobStop.svg";
...
@@ -27,6 +25,7 @@ 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
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
fileIcon
from
"@/assets/project/fileIcon.svg"
;
...
@@ -422,36 +421,17 @@ const ProjectSubmitWork = observer(() => {
...
@@ -422,36 +421,17 @@ const ProjectSubmitWork = observer(() => {
{
fullScreenShow
?
null
:
(
{
fullScreenShow
?
null
:
(
<
div
className=
{
styles
.
swHeader
}
>
<
div
className=
{
styles
.
swHeader
}
>
<
div
className=
{
styles
.
swHeaderLeft
}
>
<
div
className=
{
styles
.
swHeaderLeft
}
>
<
IconButton
<
img
color=
"primary"
onClick=
{
onBack
}
onClick=
{
onBack
}
aria
-
label=
"upload picture"
className=
{
styles
.
goBackIcon
}
component=
"span"
src=
{
goback
}
size=
"small"
alt=
""
>
/>
<
ArrowBackIosNewIcon
sx=
{
{
color
:
"rgba(194, 198, 204, 1)"
,
width
:
"12px"
,
height
:
"12px"
,
}
}
/>
</
IconButton
>
<
div
className=
{
styles
.
swTemplateTitle
}
>
{
name
}
</
div
>
<
div
className=
{
styles
.
swTemplateTitle
}
>
{
name
}
</
div
>
</
div
>
</
div
>
{
returnPermission
&&
(
{
returnPermission
&&
(
<
div
className=
{
styles
.
swHeaderRight
}
>
<
div
className=
{
styles
.
swHeaderRight
}
>
{
/* <MyPopconfirm
title={
state === "RUNNING"
? "正在运行的任务终止后将无法重新运行,确认继续吗?"
: "任务被删除后将无法恢复,确认继续吗?"
}
onConfirm={() => {
state === "RUNNING" ? onStopJob() : onDeleteJob();
}}
> */
}
<
MyButton
<
MyButton
text=
{
text=
{
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
...
@@ -459,7 +439,7 @@ const ProjectSubmitWork = observer(() => {
...
@@ -459,7 +439,7 @@ const ProjectSubmitWork = observer(() => {
:
"删除"
:
"删除"
}
}
variant=
"outlined"
variant=
"outlined"
color=
"
secondary
"
color=
"
error
"
onClick=
{
(
e
:
any
)
=>
onClick=
{
(
e
:
any
)
=>
handleShowPopper
(
handleShowPopper
(
e
,
e
,
...
@@ -468,9 +448,7 @@ const ProjectSubmitWork = observer(() => {
...
@@ -468,9 +448,7 @@ const ProjectSubmitWork = observer(() => {
:
"任务被删除后将无法恢复,确认继续吗?"
:
"任务被删除后将无法恢复,确认继续吗?"
)
)
}
}
// click=
{
onStopJob
}
></
MyButton
>
></
MyButton
>
{
/* </MyPopconfirm> */
}
</
div
>
</
div
>
)
}
)
}
</
div
>
</
div
>
...
...
src/views/Project/ProjectOverview/TaskCard/index.module.css
View file @
7f637d6c
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
.cardLeft
{
.cardLeft
{
flex
:
1
;
flex
:
1
;
cursor
:
pointer
;
padding
:
16px
24px
;
padding
:
16px
24px
;
}
}
...
...
src/views/Project/ProjectOverview/TaskCard/index.tsx
View file @
7f637d6c
This diff is collapsed.
Click to expand it.
src/views/Project/ProjectOverview/index.module.css
View file @
7f637d6c
.box
{
height
:
calc
(
100vh
-
57px
);
overflow
:
overlay
;
}
.topFixed
{
.topFixed
{
position
:
sticky
;
position
:
sticky
;
top
:
0
;
top
:
0
;
...
@@ -5,6 +10,10 @@
...
@@ -5,6 +10,10 @@
background-color
:
#fff
;
background-color
:
#fff
;
}
}
.topFixedShadow
{
box-shadow
:
0
5px
4px
-4px
rgb
(
0
,
0
,
0
,
0.12
);
}
.basicInformation
{
.basicInformation
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
...
@@ -125,4 +134,4 @@
...
@@ -125,4 +134,4 @@
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
height
:
calc
(
100vh
-
100px
);
height
:
calc
(
100vh
-
100px
);
}
}
\ No newline at end of file
src/views/Project/ProjectOverview/index.tsx
View file @
7f637d6c
...
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react";
...
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react";
import
{
observer
}
from
"mobx-react-lite"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
_
from
"lodash"
;
import
_
from
"lodash"
;
import
moment
from
"moment"
;
import
moment
from
"moment"
;
import
classNames
from
"classnames"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
useMyRequest
from
"@/hooks/useMyRequest"
;
import
{
getOverviewInfo
,
getTaskOverview
}
from
"@/api/project_api"
;
import
{
getOverviewInfo
,
getTaskOverview
}
from
"@/api/project_api"
;
...
@@ -27,6 +28,16 @@ const ProjectOverview = observer(() => {
...
@@ -27,6 +28,16 @@ const ProjectOverview = observer(() => {
const
[
size
,
setSize
]
=
useState
(
999
);
const
[
size
,
setSize
]
=
useState
(
999
);
// 选择近7天or近15天or近30天
// 选择近7天or近15天or近30天
const
[
day
,
setDay
]
=
useState
(
"7"
);
const
[
day
,
setDay
]
=
useState
(
"7"
);
// 滚轮是否到顶,判断是否显示阴影
const
[
isTop
,
setIsTop
]
=
useState
(
true
)
// 滚动滚轮时监听是否到顶
const
onscroll
=
(
e
:
any
)
=>
{
if
(
e
.
target
.
scrollTop
<=
0
)
{
setIsTop
(
true
)
}
else
{
setIsTop
(
false
)
}
}
// 获取概览基本信息
// 获取概览基本信息
const
{
run
:
getOverview
,
loading
}
=
useMyRequest
(
getOverviewInfo
,
{
const
{
run
:
getOverview
,
loading
}
=
useMyRequest
(
getOverviewInfo
,
{
onSuccess
:
(
result
:
any
)
=>
{
onSuccess
:
(
result
:
any
)
=>
{
...
@@ -100,8 +111,13 @@ const ProjectOverview = observer(() => {
...
@@ -100,8 +111,13 @@ const ProjectOverview = observer(() => {
);
);
}
else
{
}
else
{
return
(
return
(
<>
<
div
className=
{
style
.
box
}
onScroll=
{
onscroll
}
>
<
div
className=
{
style
.
topFixed
}
>
<
div
className=
{
classNames
({
[
style
.
topFixed
]:
true
,
[
style
.
topFixedShadow
]:
!
isTop
,
})
}
>
<
div
className=
{
style
.
basicInformation
}
>
<
div
className=
{
style
.
basicInformation
}
>
<
div
>
<
div
>
<
div
className=
{
style
.
titleBox
}
>
<
div
className=
{
style
.
titleBox
}
>
...
@@ -227,7 +243,7 @@ const ProjectOverview = observer(() => {
...
@@ -227,7 +243,7 @@ const ProjectOverview = observer(() => {
);
);
})
}
})
}
</
div
>
</
div
>
</>
</
div
>
);
);
}
}
}
else
{
}
else
{
...
...
src/views/Project/ProjectWorkbench/index.tsx
View file @
7f637d6c
...
@@ -58,6 +58,7 @@ const ProjectWorkbench = observer(() => {
...
@@ -58,6 +58,7 @@ const ProjectWorkbench = observer(() => {
lineHeight
:
"26px"
,
lineHeight
:
"26px"
,
fontWeight
:
"600"
,
fontWeight
:
"600"
,
color
:
"#1E2633"
,
color
:
"#1E2633"
,
marginBottom
:
"3px"
,
}
}
}
}
>
>
工作台
工作台
...
...
src/views/Project/ProjectWorkbench/workbenchList/index.module.css
View file @
7f637d6c
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
.tabBox
{
.tabBox
{
padding
:
16px
0px
16px
24px
;
padding
:
16px
0px
16px
24px
;
cursor
:
pointer
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
width
:
100%
;
width
:
100%
;
...
@@ -95,6 +96,12 @@
...
@@ -95,6 +96,12 @@
justify-content
:
center
;
justify-content
:
center
;
}
}
.jobOperateImgBox
:hover
{
padding
:
8px
;
border-radius
:
4px
;
background-color
:
#ebedf0
;
}
.tabUpdate
{
.tabUpdate
{
cursor
:
pointer
;
cursor
:
pointer
;
width
:
32px
;
width
:
32px
;
...
@@ -109,7 +116,8 @@
...
@@ -109,7 +116,8 @@
border-radius
:
4px
;
border-radius
:
4px
;
}
}
.pagination
{
.pagination
{
padding
:
19px
0
;
padding
:
19px
0
0px
;
display
:
flex
;
display
:
flex
;
justify-content
:
end
;
justify-content
:
end
;
align-items
:
center
;
}
}
src/views/Project/ProjectWorkbench/workbenchList/index.tsx
View file @
7f637d6c
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-05-31 10:18:13
* @Date: 2022-05-31 10:18:13
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-09-0
1 16:35:02
* @LastEditTime: 2022-09-0
2 14:45:04
* @FilePath: /bkunyun/src/views/Project/ProjectSetting/index.tsx
* @FilePath: /bkunyun/src/views/Project/ProjectSetting/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
*/
...
@@ -480,6 +480,7 @@ const ProjectMembers = observer(() => {
...
@@ -480,6 +480,7 @@ const ProjectMembers = observer(() => {
<
img
<
img
alt=
""
alt=
""
src=
{
jobDel
}
src=
{
jobDel
}
className=
{
styles
.
jobOperateImgBox
}
style=
{
{
cursor
:
"pointer"
}
}
style=
{
{
cursor
:
"pointer"
}
}
onClick=
{
(
event
)
=>
{
onClick=
{
(
event
)
=>
{
event
.
stopPropagation
();
event
.
stopPropagation
();
...
@@ -495,14 +496,14 @@ const ProjectMembers = observer(() => {
...
@@ -495,14 +496,14 @@ const ProjectMembers = observer(() => {
);
);
})
}
})
}
</
MyCircularProgress
>
</
MyCircularProgress
>
<
div
className=
{
styles
.
pagination
}
>
<
MyPagination
page=
{
page
}
pageChange=
{
handleChangePage
}
count=
{
count
||
jobList
.
length
}
/>
</
div
>
</
Box
>
</
Box
>
<
div
className=
{
styles
.
pagination
}
>
<
MyPagination
page=
{
page
}
pageChange=
{
handleChangePage
}
count=
{
count
||
jobList
.
length
}
/>
</
div
>
{
/* <TablePagination
{
/* <TablePagination
rowsPerPageOptions={[5, 10, 20, 50]}
rowsPerPageOptions={[5, 10, 20, 50]}
...
...
src/views/Project/ProjectWorkbench/workbenchTemplate/components/AddTemplate/index.module.css
View file @
7f637d6c
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
}
}
.headerBoxShadow
{
.headerBoxShadow
{
box-shadow
:
0
5px
4px
-4px
rgb
(
0
,
0
,
0
,
0.1
5
);
box-shadow
:
0
5px
4px
-4px
rgb
(
0
,
0
,
0
,
0.1
2
);
}
}
.templateBox
{
.templateBox
{
...
...
src/views/Project/ProjectWorkbench/workbenchTemplate/index.module.css
View file @
7f637d6c
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
margin-bottom
:
16px
;
margin-bottom
:
16px
;
position
:
relative
;
position
:
relative
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
transition
:
box-shadow
.2s
cubic-bezier
(
0
,
0
,
1
,
1
);
}
}
.templateBlock
:hover
{
.templateBlock
:hover
{
box-shadow
:
6px
8px
22px
0px
rgba
(
0
,
24
,
57
,
0.08
);
box-shadow
:
6px
8px
22px
0px
rgba
(
0
,
24
,
57
,
0.08
);
...
...
src/views/Project/ProjectWorkbench/workbenchTemplate/index.tsx
View file @
7f637d6c
...
@@ -10,7 +10,8 @@ import { memo, useEffect, useState } from "react";
...
@@ -10,7 +10,8 @@ import { memo, useEffect, useState } from "react";
import
{
Box
,
Typography
}
from
"@mui/material"
;
import
{
Box
,
Typography
}
from
"@mui/material"
;
import
{
toJS
}
from
"mobx"
;
import
{
toJS
}
from
"mobx"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
Add
from
"@mui/icons-material/Add"
;
import
FormatListBulletedRoundedIcon
from
'@mui/icons-material/FormatListBulletedRounded'
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
MyButton
from
"@/components/mui/MyButton"
;
import
SearchInput
from
"@/components/BusinessComponents/SearchInput"
;
import
SearchInput
from
"@/components/BusinessComponents/SearchInput"
;
...
@@ -115,7 +116,7 @@ const ProjectMembers = observer(() => {
...
@@ -115,7 +116,7 @@ const ProjectMembers = observer(() => {
{
isPass
(
"PROJECT_WORKBENCH_FLOES_ADD"
,
"MANAGER"
)
&&
(
{
isPass
(
"PROJECT_WORKBENCH_FLOES_ADD"
,
"MANAGER"
)
&&
(
<
MyButton
<
MyButton
text=
{
"管理工作流模板"
}
text=
{
"管理工作流模板"
}
img=
{
<
Add
/>
}
startIcon=
{
<
FormatListBulletedRoundedIcon
fontSize=
"small"
/>
}
onClick=
{
addTemplateBlock
}
onClick=
{
addTemplateBlock
}
size=
{
"medium"
}
size=
{
"medium"
}
/>
/>
...
...
src/views/Project/components/Flow/components/BatchNode/index.module.css
View file @
7f637d6c
.batchNode
{
.batchNode
{
background-color
:
#fff
;
background-color
:
#fff
;
border-radius
:
4px
;
border-radius
:
4px
;
box-shadow
:
0px
3px
10px
0px
rgba
(
0
,
24
,
57
,
0.06
);
/* padding: 12px 20px; */
/* padding: 12px 20px; */
border
:
1px
solid
#e6e8eb
;
/* border: 1px solid #e6e8eb; */
border-left
:
4px
solid
#e6e8eb
;
border-left
:
4px
solid
#e6e8eb
;
/* display: flex; */
/* display: flex; */
align-items
:
center
;
align-items
:
center
;
}
}
.batchNode
:hover
{
box-shadow
:
0px
3px
10px
0px
rgba
(
0
,
24
,
57
,
0.14
);
}
.doneBatchNode
{
.doneBatchNode
{
border-left
:
4px
solid
#0dd09b
;
border-left
:
4px
solid
#0dd09b
;
}
}
...
@@ -45,7 +50,7 @@
...
@@ -45,7 +50,7 @@
/* transform: translateX(-50%) rotate(-90deg); */
/* transform: translateX(-50%) rotate(-90deg); */
}
}
.handleBox
::before
{
.handleBox
::before
{
content
:
""
;
content
:
""
;
position
:
absolute
;
position
:
absolute
;
left
:
-4px
;
left
:
-4px
;
...
...
src/views/Project/components/Flow/components/FlowNode/index.module.css
View file @
7f637d6c
...
@@ -44,3 +44,9 @@
...
@@ -44,3 +44,9 @@
width
:
14px
;
width
:
14px
;
height
:
14px
;
height
:
14px
;
}
}
.handleBox
{
background
:
#fff
;
width
:
6px
;
height
:
6px
;
}
src/views/Project/components/Flow/components/FlowNode/index.tsx
View file @
7f637d6c
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-07-12 11:29:46
* @Date: 2022-07-12 11:29:46
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-0
8-31 17:09:31
* @LastEditTime: 2022-0
9-02 14:23:07
* @FilePath: /bkunyun/src/views/Project/components/Flow/components/FlowNode/index.tsx
* @FilePath: /bkunyun/src/views/Project/components/Flow/components/FlowNode/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
*/
...
@@ -86,8 +86,6 @@ const FlowNode = (props: any) => {
...
@@ -86,8 +86,6 @@ const FlowNode = (props: any) => {
className=
{
styles
.
handleBox
}
className=
{
styles
.
handleBox
}
id=
{
item
.
name
}
id=
{
item
.
name
}
style=
{
{
style=
{
{
background
:
"#fff "
,
border
:
"1px solid #D1D6DE"
,
...
inStyle
,
...
inStyle
,
left
:
index
*
24
+
16
,
left
:
index
*
24
+
16
,
}
}
}
}
...
@@ -98,8 +96,10 @@ const FlowNode = (props: any) => {
...
@@ -98,8 +96,10 @@ const FlowNode = (props: any) => {
);
);
})
})
:
null
}
:
null
}
<
div
style=
{
{
display
:
'flex'
,
alignItems
:
'center'
}
}
>
<
div
style=
{
{
display
:
"flex"
,
alignItems
:
"center"
}
}
>
<
span
style=
{
{
fontSize
:
'12px'
,
lineHeight
:
'24px'
}
}
>
{
title
||
""
}
{
showVersion
&&
version
}
</
span
>
<
span
style=
{
{
fontSize
:
"12px"
,
lineHeight
:
"20px"
}
}
>
{
title
||
""
}
{
showVersion
&&
version
}
</
span
>
{
flowType
!==
"edit"
&&
isCheck
?
(
{
flowType
!==
"edit"
&&
isCheck
?
(
<
span
className=
{
styles
.
successDot
}
></
span
>
<
span
className=
{
styles
.
successDot
}
></
span
>
)
:
null
}
)
:
null
}
...
@@ -108,7 +108,7 @@ const FlowNode = (props: any) => {
...
@@ -108,7 +108,7 @@ const FlowNode = (props: any) => {
)
:
null
}
)
:
null
}
{
getImgUrl
(
executionStatus
)
&&
(
{
getImgUrl
(
executionStatus
)
&&
(
<
img
<
img
style=
{
{
marginLeft
:
"6px"
}
}
style=
{
{
marginLeft
:
"6px"
,
width
:
"12px"
,
height
:
"12px"
}
}
src=
{
getImgUrl
(
executionStatus
)
}
src=
{
getImgUrl
(
executionStatus
)
}
alt=
""
alt=
""
/>
/>
...
@@ -122,8 +122,6 @@ const FlowNode = (props: any) => {
...
@@ -122,8 +122,6 @@ const FlowNode = (props: any) => {
className=
{
styles
.
handleBox
}
className=
{
styles
.
handleBox
}
id=
{
item
.
name
}
id=
{
item
.
name
}
style=
{
{
style=
{
{
background
:
"#fff "
,
border
:
"1px solid #D1D6DE"
,
...
outStyle
,
...
outStyle
,
left
:
index
*
24
+
16
,
left
:
index
*
24
+
16
,
}
}
}
}
...
...
src/views/Project/components/Flow/index.tsx
View file @
7f637d6c
...
@@ -11,7 +11,7 @@ import ReactFlow, {
...
@@ -11,7 +11,7 @@ import ReactFlow, {
import
{
useCallback
,
useEffect
,
useMemo
,
useState
}
from
"react"
;
import
{
useCallback
,
useEffect
,
useMemo
,
useState
}
from
"react"
;
import
{
uuid
}
from
"@/utils/util"
;
import
{
uuid
}
from
"@/utils/util"
;
import
{
IParameter
,
ITask
}
from
"../../ProjectSubmitWork/interface"
;
import
{
IParameter
,
ITask
}
from
"../../ProjectSubmitWork/interface"
;
import
{
ILine
}
from
"./interface"
;
import
{
ILine
}
from
"./interface"
;
import
BatchNode
from
"./components/BatchNode"
;
import
BatchNode
from
"./components/BatchNode"
;
import
FlowNode
from
"./components/FlowNode"
;
import
FlowNode
from
"./components/FlowNode"
;
...
@@ -61,7 +61,7 @@ const Flow = (props: IProps) => {
...
@@ -61,7 +61,7 @@ const Flow = (props: IProps) => {
showControls
=
true
,
showControls
=
true
,
...
other
...
other
}
=
props
;
}
=
props
;
/** 自定义的节点类型 */
/** 自定义的节点类型 */
const
nodeTypes
=
useMemo
(()
=>
{
const
nodeTypes
=
useMemo
(()
=>
{
return
{
batchNode
:
BatchNode
,
flowNode
:
FlowNode
};
return
{
batchNode
:
BatchNode
,
flowNode
:
FlowNode
};
...
@@ -311,22 +311,25 @@ const Flow = (props: IProps) => {
...
@@ -311,22 +311,25 @@ const Flow = (props: IProps) => {
/** tasks 数据 */
/** tasks 数据 */
tasks
:
tasks
,
tasks
:
tasks
,
}
}
:
{
selectedStatus
:
externalSelectedNodeId
:
{
?
externalSelectedNodeId
.
includes
(
item
.
id
)
selectedStatus
:
externalSelectedNodeId
:
inSideFlowNodeId
===
item
.
id
,}),
?
externalSelectedNodeId
.
includes
(
item
.
id
)
:
inSideFlowNodeId
===
item
.
id
,
}),
/** 输入输出圆点状态 */
/** 输入输出圆点状态 */
// dotStatus: nodesInputAndOutputStatus(item.id),
// dotStatus: nodesInputAndOutputStatus(item.id),
/** 样式 */
/** 样式 */
style
:
{
style
:
{
...
getBatchStyle
(
item
),
...
getBatchStyle
(
item
),
marginTop
:
'-44px'
,
marginTop
:
"-44px"
,
padding
:
"12px 20px"
,
padding
:
"12px 20px
20px 20px
"
,
},
},
},
},
/** 坐标 */
/** 坐标 */
position
:
{
position
:
{
x
:
Number
(
item
.
position
?.
x
)
||
0
,
/** 流算子生成的时候多加了15 兼容历史模版数据 直接这边减去15 */
x
:
Number
(
item
.
position
?.
x
-
15
)
||
0
,
y
:
Number
(
item
.
position
?.
y
)
||
0
,
y
:
Number
(
item
.
position
?.
y
)
||
0
,
},
},
/**
/**
...
@@ -379,11 +382,11 @@ const Flow = (props: IProps) => {
...
@@ -379,11 +382,11 @@ const Flow = (props: IProps) => {
style
:
{
stroke
:
"#1370FF"
,
strokeWidth
:
2
},
style
:
{
stroke
:
"#1370FF"
,
strokeWidth
:
2
},
animated
:
true
,
animated
:
true
,
}
}
:
{}),
:
{
stroke
:
"#D1D6DE"
}),
/** 点击batch节点选中 */
/** 点击batch节点选中 */
...(
item
?.
batchId
===
newSelectId
...(
item
?.
batchId
===
newSelectId
?
{
style
:
{
stroke
:
"#1370FF"
},
animated
:
true
}
?
{
style
:
{
stroke
:
"#1370FF"
},
animated
:
true
}
:
{}),
:
{
stroke
:
"#D1D6DE"
}),
labelStyle
:
{
fill
:
"#8A9099"
},
labelStyle
:
{
fill
:
"#8A9099"
},
labelBgStyle
:
{
fill
:
"#F7F8FA "
},
labelBgStyle
:
{
fill
:
"#F7F8FA "
},
label
:
item
.
label
?
`(
${
item
.
label
}
)`
:
""
,
label
:
item
.
label
?
`(
${
item
.
label
}
)`
:
""
,
...
@@ -641,7 +644,7 @@ const Flow = (props: IProps) => {
...
@@ -641,7 +644,7 @@ const Flow = (props: IProps) => {
// const onNodesChange = (val: any)=>{
// const onNodesChange = (val: any)=>{
// // 自定义change事件 不允许react flow组件本身删除事件
// // 自定义change事件 不允许react flow组件本身删除事件
// // return
// // return
// }
// }
// const onEdgesChange = (val: any) =>{
// const onEdgesChange = (val: any) =>{
...
...
src/views/Project/components/ProjectListPopper/index.module.css
View file @
7f637d6c
...
@@ -56,7 +56,8 @@
...
@@ -56,7 +56,8 @@
border-top
:
1px
solid
#f0f2f5
;
border-top
:
1px
solid
#f0f2f5
;
}
}
.noProjectBox
{
.noProjectBox
{
color
:
#edeff2
;
color
:
#8a9099
;
font-size
:
14px
;
height
:
48px
;
height
:
48px
;
line-height
:
48px
;
line-height
:
48px
;
text-align
:
center
;
text-align
:
center
;
...
...
src/views/WorkFlowEdit/components/OperatorList/index.module.css
View file @
7f637d6c
...
@@ -3,6 +3,17 @@
...
@@ -3,6 +3,17 @@
border-radius
:
4px
;
border-radius
:
4px
;
cursor
:
grab
;
cursor
:
grab
;
padding
:
16px
16px
0
24px
;
padding
:
16px
16px
0
24px
;
background-color
:
#fff
;
}
.operatorItemBox
:hover
{
position
:
relative
;
z-index
:
1
;
top
:
-1px
;
left
:
24px
;
box-shadow
:
6px
8px
22px
0px
rgba
(
0
,
24
,
57
,
0.08
);
}
.operatorItemBox
:hover
.footerBox
{
border-bottom
:
none
;
}
}
.dragBox
{
.dragBox
{
...
@@ -34,15 +45,17 @@
...
@@ -34,15 +45,17 @@
.versionBox
{
.versionBox
{
display
:
inline-block
;
display
:
inline-block
;
background
:
#f0f2f5
;
color
:
#1e2633
;
color
:
#1e2633
;
cursor
:
pointer
;
padding
:
1px
9px
;
border-radius
:
2px
;
border-radius
:
2px
;
font-size
:
12px
;
font-size
:
12px
;
padding
:
2px
8px
;
line-height
:
20px
;
background-color
:
#f0f2f5
;
}
}
.searchBox
{
.searchBox
{
padding
:
0
24px
16
px
24px
;
padding
:
0
24px
8
px
24px
;
}
}
.footerBox
{
.footerBox
{
...
@@ -60,16 +73,8 @@
...
@@ -60,16 +73,8 @@
overflow-y
:
overlay
;
overflow-y
:
overlay
;
height
:
calc
(
100%
-
48px
);
height
:
calc
(
100%
-
48px
);
position
:
relative
;
position
:
relative
;
overflow-x
:
visible
;
}
}
.versionBox
{
background
:
#e6e8eb
;
color
:
#1e2633
;
cursor
:
pointer
;
padding
:
0
8px
;
border-radius
:
2px
;
}
.noData
{
.noData
{
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
...
...
src/views/WorkFlowEdit/components/OperatorList/index.tsx
View file @
7f637d6c
...
@@ -13,6 +13,7 @@ import { IResponse } from "@/api/http";
...
@@ -13,6 +13,7 @@ import { IResponse } from "@/api/http";
import
{
fetchOperatorList
}
from
"@/api/workbench_api"
;
import
{
fetchOperatorList
}
from
"@/api/workbench_api"
;
import
{
useStores
}
from
"@/store"
;
import
{
useStores
}
from
"@/store"
;
import
noTemplate
from
"@/assets/project/noTemplate.svg"
;
import
noTemplate
from
"@/assets/project/noTemplate.svg"
;
import
SearchInput
from
"@/components/BusinessComponents/SearchInput"
;
import
styles
from
"./index.module.css"
;
import
styles
from
"./index.module.css"
;
...
@@ -198,7 +199,18 @@ const OperatorList = observer((props: IOperatorListProps) => {
...
@@ -198,7 +199,18 @@ const OperatorList = observer((props: IOperatorListProps) => {
return
(
return
(
<
div
className=
{
styles
.
operatorListBox
}
>
<
div
className=
{
styles
.
operatorListBox
}
>
<
div
className=
{
styles
.
searchBox
}
>
<
div
className=
{
styles
.
searchBox
}
>
<
OutlinedInput
<
SearchInput
onChange=
{
(
e
)
=>
{
if
(
e
.
target
.
value
?.
length
>
30
)
return
;
setKeyword
(
e
.
target
.
value
);
}
}
value=
{
keyword
}
placeholder=
"输入关键词搜索"
onKeyUp=
{
handleEnterCode
}
size=
"medium"
sx=
{
{
height
:
32
,
width
:
"100%"
}
}
/>
{
/* <OutlinedInput
onChange={(e) => {
onChange={(e) => {
if (e.target.value?.length > 30) return;
if (e.target.value?.length > 30) return;
setKeyword(e.target.value);
setKeyword(e.target.value);
...
@@ -209,7 +221,7 @@ const OperatorList = observer((props: IOperatorListProps) => {
...
@@ -209,7 +221,7 @@ const OperatorList = observer((props: IOperatorListProps) => {
size="small"
size="small"
sx={{ height: 32, width: "100%" }}
sx={{ height: 32, width: "100%" }}
endAdornment={<SearchIcon style={{ color: "#8A9099" }} />}
endAdornment={<SearchIcon style={{ color: "#8A9099" }} />}
/>
/>
*/
}
</
div
>
</
div
>
<
div
className=
{
styles
.
listBox
}
>
<
div
className=
{
styles
.
listBox
}
>
{
operatorListData
.
filter
((
item
)
=>
item
.
type
===
"BATCH"
)?.
length
?
(
{
operatorListData
.
filter
((
item
)
=>
item
.
type
===
"BATCH"
)?.
length
?
(
...
...
src/views/WorkFlowEdit/index.module.css
View file @
7f637d6c
...
@@ -25,6 +25,19 @@
...
@@ -25,6 +25,19 @@
justify-content
:
flex-start
;
justify-content
:
flex-start
;
align-items
:
center
;
align-items
:
center
;
}
}
.goBackIcon
{
margin-right
:
8px
;
cursor
:
pointer
;
}
/* .goBackIcon:hover:{
color: ;
} */
.goBack
{
cursor
:
pointer
;
color
:
#1e2633
;
font-size
:
14px
;
font-weight
:
600
;
}
.swContent
{
.swContent
{
display
:
flex
;
display
:
flex
;
height
:
calc
(
100vh
-
56px
);
height
:
calc
(
100vh
-
56px
);
...
@@ -53,8 +66,8 @@
...
@@ -53,8 +66,8 @@
color
:
RGBA
(
66
,
141
,
255
,
1
);
color
:
RGBA
(
66
,
141
,
255
,
1
);
cursor
:
pointer
;
cursor
:
pointer
;
background-color
:
#fff
;
background-color
:
#fff
;
transition
:
width
1
s
;
transition
:
width
0.4
s
;
-webkit-transition
:
width
1
s
;
-webkit-transition
:
width
0.4
s
;
overflow
:
hidden
;
overflow
:
hidden
;
display
:
flex
;
display
:
flex
;
justify-content
:
start
;
justify-content
:
start
;
...
@@ -74,5 +87,5 @@
...
@@ -74,5 +87,5 @@
}
}
.radiosBox
{
.radiosBox
{
background-color
:
#fff
;
background-color
:
#fff
;
padding
:
24px
;
padding
:
24px
24px
20px
;
}
}
src/views/WorkFlowEdit/index.tsx
View file @
7f637d6c
...
@@ -7,8 +7,6 @@
...
@@ -7,8 +7,6 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
*/
import
React
,
{
useCallback
,
useEffect
,
useState
,
useMemo
}
from
"react"
;
import
React
,
{
useCallback
,
useEffect
,
useState
,
useMemo
}
from
"react"
;
import
ArrowBackIosNewIcon
from
"@mui/icons-material/ArrowBackIosNew"
;
import
IconButton
from
"@mui/material/IconButton"
;
import
_
from
"lodash"
;
import
_
from
"lodash"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
{
observer
}
from
"mobx-react-lite"
;
...
@@ -26,6 +24,7 @@ import useMyRequest from "@/hooks/useMyRequest";
...
@@ -26,6 +24,7 @@ import useMyRequest from "@/hooks/useMyRequest";
import
CustomOperator
from
"../CustomOperator"
;
import
CustomOperator
from
"../CustomOperator"
;
import
SaveCustomTemplate
from
"./components/SaveCustomTemplate"
;
import
SaveCustomTemplate
from
"./components/SaveCustomTemplate"
;
import
AddIcon
from
"@mui/icons-material/Add"
;
import
AddIcon
from
"@mui/icons-material/Add"
;
import
goback
from
"@/assets/project/goback.svg"
;
import
styles
from
"./index.module.css"
;
import
styles
from
"./index.module.css"
;
...
@@ -189,8 +188,18 @@ const WorkFlowEdit = observer((props: IProps) => {
...
@@ -189,8 +188,18 @@ const WorkFlowEdit = observer((props: IProps) => {
return
(
return
(
<
div
className=
{
styles
.
swBox
}
>
<
div
className=
{
styles
.
swBox
}
>
<
div
className=
{
styles
.
swHeader
}
>
<
div
className=
{
styles
.
swHeader
}
>
<
div
className=
{
styles
.
swHeaderLeft
}
>
<
div
<
IconButton
className=
{
styles
.
swHeaderLeft
}
onClick=
{
(
e
:
any
)
=>
handleShowPopper
(
e
,
"返回后,当前页面已填写内容将不保存,确认返回吗?"
)
}
>
<
img
className=
{
styles
.
goBackIcon
}
src=
{
goback
}
alt=
""
/>
<
span
className=
{
styles
.
goBack
}
>
返回
</
span
>
{
/* <IconButton
color="primary"
color="primary"
aria-label="upload picture"
aria-label="upload picture"
component="span"
component="span"
...
@@ -209,7 +218,8 @@ const WorkFlowEdit = observer((props: IProps) => {
...
@@ -209,7 +218,8 @@ const WorkFlowEdit = observer((props: IProps) => {
height: "12px",
height: "12px",
}}
}}
/>
/>
</
IconButton
>
返回
</IconButton> */
}
</
div
>
</
div
>
<
div
className=
{
styles
.
swHeaderRight
}
>
<
div
className=
{
styles
.
swHeaderRight
}
>
<
MyButton
text=
"保存"
onClick=
{
()
=>
handlePreserve
()
}
></
MyButton
>
<
MyButton
text=
"保存"
onClick=
{
()
=>
handlePreserve
()
}
></
MyButton
>
...
...
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