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
e7ef887f
Commit
e7ef887f
authored
Sep 01, 2022
by
wuyongsheng
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-20220801' into 'release'
Feat 20220801 See merge request
!80
parents
8c1e03bf
c3e98d12
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
524 additions
and
637 deletions
+524
-637
api_prefix.ts
src/api/api_prefix.ts
+3
-3
refresh.svg
src/assets/project/refresh.svg
+11
-0
workbenchList.svg
src/assets/project/workbenchList.svg
+7
-18
workbenchList_hover.svg
src/assets/project/workbenchList_hover.svg
+15
-0
workbenchList_select.svg
src/assets/project/workbenchList_select.svg
+7
-18
workbenchTemplate.svg
src/assets/project/workbenchTemplate.svg
+9
-20
workbenchTemplate_hover.svg
src/assets/project/workbenchTemplate_hover.svg
+16
-0
workbenchTemplate_select.svg
src/assets/project/workbenchTemplate_select.svg
+9
-20
index.module.css
...components/BusinessComponents/FileSelect/index.module.css
+1
-1
index.tsx
src/components/BusinessComponents/FileSelect/index.tsx
+1
-0
index.module.css
...CommonComponents/RadioGroupOfButtonStyle/index.module.css
+8
-0
index.tsx
...onents/CommonComponents/RadioGroupOfButtonStyle/index.tsx
+35
-12
MySnackbarProvider.tsx
src/components/MySnackbar/MySnackbarProvider.tsx
+39
-20
useMySnackbar.ts
src/components/MySnackbar/useMySnackbar.ts
+1
-0
MyInput.tsx
src/components/mui/MyInput.tsx
+5
-1
MySelect.tsx
src/components/mui/MySelect.tsx
+8
-0
index.tsx
src/components/mui/MyTable/index.tsx
+2
-1
Tabs.tsx
src/components/mui/Tabs.tsx
+31
-11
index.tsx
src/index.tsx
+1
-3
index.tsx
src/views/Project/ProjectData/SeeDataset/index.tsx
+17
-13
index.module.css
src/views/Project/ProjectData/index.module.css
+5
-0
index.tsx
src/views/Project/ProjectData/index.tsx
+12
-7
index.tsx
src/views/Project/ProjectJobDetail/index.tsx
+79
-60
index.module.css
src/views/Project/ProjectOverview/index.module.css
+1
-1
index.module.css
src/views/Project/ProjectSetting/BaseInfo/index.module.css
+56
-59
index.tsx
src/views/Project/ProjectSetting/BaseInfo/index.tsx
+27
-11
AddMember.tsx
...ct/ProjectSetting/ProjectMembers/components/AddMember.tsx
+3
-10
index.tsx
src/views/Project/ProjectSubmitWork/ConfigForm/index.tsx
+17
-21
index.tsx
src/views/Project/ProjectSubmitWork/WorkFlow/index.tsx
+5
-5
index.tsx
src/views/Project/ProjectSubmitWork/index.tsx
+5
-4
index.tsx
src/views/Project/ProjectWorkbench/index.tsx
+21
-25
index.tsx
src/views/Project/components/AddProject/index.tsx
+2
-2
index.tsx
src/views/Project/components/CurrentProject/index.tsx
+9
-12
index.tsx
...ws/Project/components/Flow/components/BatchNode/index.tsx
+1
-1
index.tsx
...ews/Project/components/Flow/components/FlowNode/index.tsx
+1
-1
index.tsx
src/views/Project/components/Flow/index.tsx
+22
-21
index.tsx
src/views/Project/components/ProjectListPopper/index.tsx
+11
-4
index.tsx
src/views/WorkFlowEdit/components/OperatorList/index.tsx
+5
-1
index.module.css
...WorkFlowEdit/components/ParameterSetting/index.module.css
+6
-0
index.tsx
src/views/WorkFlowEdit/components/ParameterSetting/index.tsx
+10
-11
button.tsx
src/views/mui_demo/button.tsx
+0
-178
input.tsx
src/views/mui_demo/input.tsx
+0
-62
No files found.
src/api/api_prefix.ts
View file @
e7ef887f
/*
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-05-31 10:17:48
* @LastEditors: 吴永生
#A02208 yongsheng.wu@wholion
.com
* @LastEditTime: 2022-0
7-18 15:44:3
5
* @LastEditors: 吴永生
15770852798@163
.com
* @LastEditTime: 2022-0
8-30 16:22:1
5
* @FilePath: /bkunyun/src/api/api_prefix.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -36,7 +36,7 @@ switch (process.env.REACT_APP_ENV) {
BACKEND_API_URI_PREFIX
=
"https://www.cloudam.cn"
;
}
else
{
BACKEND_API_URI_PREFIX
=
"http://47.
57.4.97
"
;
BACKEND_API_URI_PREFIX
=
"http://47.
75.104.171
"
;
}
break
;
}
...
...
src/assets/project/refresh.svg
0 → 100644
View file @
e7ef887f
<?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>
刷新备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"刷新备份"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<path
d=
"M14.1034483,5.0750097 L12.3103448,6.87501758 C11.862069,4.9250128 10.0689767,3.42499873 7.97701897,3.42499873 C5.51150172,3.42499873 3.49426034,5.45000759 3.49426034,7.92501842 C3.49426034,10.3999842 5.51150172,12.4249931 7.97701897,12.4249931 C10.3678534,12.4249931 12.3850948,10.5500599 12.4597328,8.15001941 L13.8045603,6.8000135 C13.8793103,7.17501139 13.9540603,7.55002053 13.9540603,8.0000225 C13.9540603,11.2999882 11.2644052,14 7.97701897,14 C4.68965517,14 2,11.2999882 2,8.0000225 C2,4.70001181 4.68965517,2 7.97701897,2 C9.91954397,2 11.712681,2.97499677 12.7586207,4.40000675 L12.9080086,4.17500577 L15,4.17500577 L14.1034483,5.0750097 Z"
id=
"路径"
fill=
"#8A9099"
></path>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/workbenchList.svg
View file @
e7ef887f
<?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>
1.Base基础/Icon图标/任务列表
</title>
<defs>
<filter
color-interpolation-filters=
"auto"
id=
"filter-1"
>
<feColorMatrix
in=
"SourceGraphic"
type=
"matrix"
values=
"0 0 0 0 0.760000 0 0 0 0 0.776000 0 0 0 0 0.800000 0 0 0 1.000000 0"
></feColorMatrix>
</filter>
</defs>
<title>
1.Base基础/Icon图标/任务列表备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"工作台(管理员)空"
transform=
"translate(-370.000000, -245.000000)"
>
<g
id=
"编组-5"
transform=
"translate(370.000000, 242.000000)"
>
<g
id=
"1.Base基础/Icon图标/任务列表"
transform=
"translate(0.000000, 3.000000)"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
filter=
"url(#filter-1)"
id=
"编组-4"
>
<g
transform=
"translate(0.500000, 0.000000)"
>
<path
d=
"M7.38809691,0.889939751 C7.45764437,0.855744844 7.53911808,0.85573765 7.60867158,0.889920274 L7.60867158,0.889920274 L14.1102244,4.08516037 C14.1529938,4.10617975 14.187927,4.13844408 14.2121677,4.17736742 C14.2364085,4.21629077 14.2499569,4.26187312 14.2499569,4.30952854 L14.2499569,4.30952854 L14.2499569,11.9840447 C14.2499569,12.0332683 14.2355127,12.0802004 14.2098426,12.119868 C14.1841726,12.1595356 14.1472766,12.1919385 14.1023731,12.2121037 L14.1023731,12.2121037 L7.60081331,15.1318104 C7.53565621,15.161071 7.46109499,15.1610648 7.39594277,15.1317934 L7.39594277,15.1317934 L0.897545722,12.2122049 C0.852652465,12.1920353 0.815766035,12.1596329 0.790102919,12.1199688 C0.764439802,12.0803047 0.75,12.033379 0.75,11.984163 L0.75,11.984163 L0.75,4.30940599 C0.75,4.26175853 0.763543923,4.21618307 0.78777749,4.17726362 L0.78777749,4.17726362 Z"
id=
"路径-15"
stroke=
"#979797"
stroke-width=
"1.5"
></path>
<polyline
id=
"路径-20"
stroke=
"#979797"
stroke-width=
"1.5"
points=
"1.29720478 4.56847209 7.47016174 7.45 13.6431187 4.56847209"
></polyline>
<line
x1=
"7.47016174"
y1=
"7.39513959"
x2=
"7.47016174"
y2=
"14.8580198"
id=
"路径-21"
stroke=
"#979797"
stroke-width=
"1.5"
></line>
</g>
</g>
</g>
<g
id=
"1.Base基础/Icon图标/任务列表备份"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(0.500000, 0.000000)"
stroke=
"#C2C6CC"
stroke-width=
"1.5"
>
<path
d=
"M7.38809691,0.889939751 L14.1102244,4.08516037 L14.2499569,11.9840447 L7.60081331,15.1318104 L0.897545722,12.2122049 L0.75,4.30940599 L7.38809691,0.889939751 Z"
id=
"路径-15"
></path>
<polyline
id=
"路径-20"
points=
"1.29720478 4.56847209 7.47016174 7.45 13.6431187 4.56847209"
></polyline>
<line
x1=
"7.47016174"
y1=
"7.39513959"
x2=
"7.47016174"
y2=
"14.8580198"
id=
"路径-21"
></line>
</g>
</g>
</g>
...
...
src/assets/project/workbenchList_hover.svg
0 → 100644
View file @
e7ef887f
<?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>
1.Base基础/Icon图标/任务列表备份 3
</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=
"编组-4"
transform=
"translate(0.500000, 0.000000)"
stroke=
"#1E2633"
stroke-width=
"1.5"
>
<path
d=
"M7.38809691,0.889939751 L14.1102244,4.08516037 L14.2499569,11.9840447 L7.60081331,15.1318104 L0.897545722,12.2122049 L0.75,4.30940599 L7.38809691,0.889939751 Z"
id=
"路径-15"
></path>
<polyline
id=
"路径-20"
points=
"1.29720478 4.56847209 7.47016174 7.45 13.6431187 4.56847209"
></polyline>
<line
x1=
"7.47016174"
y1=
"7.39513959"
x2=
"7.47016174"
y2=
"14.8580198"
id=
"路径-21"
></line>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/workbenchList_select.svg
View file @
e7ef887f
<?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>
1.Base基础/Icon图标/任务列表
</title>
<defs>
<filter
color-interpolation-filters=
"auto"
id=
"filter-1"
>
<feColorMatrix
in=
"SourceGraphic"
type=
"matrix"
values=
"0 0 0 0 0.076000 0 0 0 0 0.440000 0 0 0 0 1.000000 0 0 0 1.000000 0"
></feColorMatrix>
</filter>
</defs>
<title>
1.Base基础/Icon图标/任务列表备份 2
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"任务列表"
transform=
"translate(-370.000000, -245.000000)"
>
<g
id=
"编组-5"
transform=
"translate(370.000000, 242.000000)"
>
<g
id=
"1.Base基础/Icon图标/任务列表"
transform=
"translate(0.000000, 3.000000)"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
filter=
"url(#filter-1)"
id=
"编组-4"
>
<g
transform=
"translate(0.500000, 0.000000)"
>
<path
d=
"M7.38809691,0.889939751 C7.45764437,0.855744844 7.53911808,0.85573765 7.60867158,0.889920274 L7.60867158,0.889920274 L14.1102244,4.08516037 C14.1529938,4.10617975 14.187927,4.13844408 14.2121677,4.17736742 C14.2364085,4.21629077 14.2499569,4.26187312 14.2499569,4.30952854 L14.2499569,4.30952854 L14.2499569,11.9840447 C14.2499569,12.0332683 14.2355127,12.0802004 14.2098426,12.119868 C14.1841726,12.1595356 14.1472766,12.1919385 14.1023731,12.2121037 L14.1023731,12.2121037 L7.60081331,15.1318104 C7.53565621,15.161071 7.46109499,15.1610648 7.39594277,15.1317934 L7.39594277,15.1317934 L0.897545722,12.2122049 C0.852652465,12.1920353 0.815766035,12.1596329 0.790102919,12.1199688 C0.764439802,12.0803047 0.75,12.033379 0.75,11.984163 L0.75,11.984163 L0.75,4.30940599 C0.75,4.26175853 0.763543923,4.21618307 0.78777749,4.17726362 L0.78777749,4.17726362 Z"
id=
"路径-15"
stroke=
"#979797"
stroke-width=
"1.5"
></path>
<polyline
id=
"路径-20"
stroke=
"#979797"
stroke-width=
"1.5"
points=
"1.29720478 4.56847209 7.47016174 7.45 13.6431187 4.56847209"
></polyline>
<line
x1=
"7.47016174"
y1=
"7.39513959"
x2=
"7.47016174"
y2=
"14.8580198"
id=
"路径-21"
stroke=
"#979797"
stroke-width=
"1.5"
></line>
</g>
</g>
</g>
<g
id=
"1.Base基础/Icon图标/任务列表备份-2"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(0.500000, 0.000000)"
stroke=
"#1370FF"
stroke-width=
"1.5"
>
<path
d=
"M7.38809691,0.889939751 L14.1102244,4.08516037 L14.2499569,11.9840447 L7.60081331,15.1318104 L0.897545722,12.2122049 L0.75,4.30940599 L7.38809691,0.889939751 Z"
id=
"路径-15"
></path>
<polyline
id=
"路径-20"
points=
"1.29720478 4.56847209 7.47016174 7.45 13.6431187 4.56847209"
></polyline>
<line
x1=
"7.47016174"
y1=
"7.39513959"
x2=
"7.47016174"
y2=
"14.8580198"
id=
"路径-21"
></line>
</g>
</g>
</g>
...
...
src/assets/project/workbenchTemplate.svg
View file @
e7ef887f
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"14px"
height=
"14px"
viewBox=
"0 0 14 14"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
1.Base基础/Icon图标/工作流模版
</title>
<defs>
<filter
color-interpolation-filters=
"auto"
id=
"filter-1"
>
<feColorMatrix
in=
"SourceGraphic"
type=
"matrix"
values=
"0 0 0 0 0.760000 0 0 0 0 0.776000 0 0 0 0 0.800000 0 0 0 1.000000 0"
></feColorMatrix>
</filter>
</defs>
<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>
1.Base基础/Icon图标/工作流模版备份 3
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"任务列表"
transform=
"translate(-245.000000, -246.000000)"
>
<g
id=
"编组-4"
transform=
"translate(244.000000, 242.000000)"
>
<g
id=
"编组-5"
transform=
"translate(0.000000, 3.000000)"
filter=
"url(#filter-1)"
>
<g>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(1.000000, 1.000000)"
stroke=
"#979797"
stroke-width=
"1.5"
>
<rect
id=
"矩形"
x=
"0.75"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-2"
x=
"0.75"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份"
x=
"8.5"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-3"
x=
"8.5"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
</g>
</g>
</g>
<g
id=
"编组-5"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(1.000000, 1.000000)"
stroke=
"#C2C6CC"
stroke-width=
"1.5"
>
<rect
id=
"矩形"
x=
"0.75"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-2"
x=
"0.75"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份"
x=
"8.5"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-3"
x=
"8.5"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
</g>
</g>
</g>
...
...
src/assets/project/workbenchTemplate_hover.svg
0 → 100644
View file @
e7ef887f
<?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>
1.Base基础/Icon图标/工作流模版备份 2
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"编组-5"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(1.000000, 1.000000)"
stroke=
"#1E2633"
stroke-width=
"1.5"
>
<rect
id=
"矩形"
x=
"0.75"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-2"
x=
"0.75"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份"
x=
"8.5"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-3"
x=
"8.5"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
</g>
</g>
</g>
</svg>
\ No newline at end of file
src/assets/project/workbenchTemplate_select.svg
View file @
e7ef887f
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"14px"
height=
"14px"
viewBox=
"0 0 14 14"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
1.Base基础/Icon图标/工作流模版
</title>
<defs>
<filter
color-interpolation-filters=
"auto"
id=
"filter-1"
>
<feColorMatrix
in=
"SourceGraphic"
type=
"matrix"
values=
"0 0 0 0 0.076000 0 0 0 0 0.440000 0 0 0 0 1.000000 0 0 0 1.000000 0"
></feColorMatrix>
</filter>
</defs>
<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>
1.Base基础/Icon图标/工作流模版备份
</title>
<g
id=
"上线UI"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"工作台(管理员)空"
transform=
"translate(-245.000000, -246.000000)"
>
<g
id=
"编组-4"
transform=
"translate(244.000000, 242.000000)"
>
<g
id=
"编组-5"
transform=
"translate(0.000000, 3.000000)"
filter=
"url(#filter-1)"
>
<g>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(1.000000, 1.000000)"
stroke=
"#979797"
stroke-width=
"1.5"
>
<rect
id=
"矩形"
x=
"0.75"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-2"
x=
"0.75"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份"
x=
"8.5"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-3"
x=
"8.5"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
</g>
</g>
</g>
<g
id=
"编组-5"
>
<rect
id=
"矩形"
x=
"0"
y=
"0"
width=
"16"
height=
"16"
></rect>
<g
id=
"编组-4"
transform=
"translate(1.000000, 1.000000)"
stroke=
"#1370FF"
stroke-width=
"1.5"
>
<rect
id=
"矩形"
x=
"0.75"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-2"
x=
"0.75"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份"
x=
"8.5"
y=
"0.75"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
<rect
id=
"矩形备份-3"
x=
"8.5"
y=
"8.5"
width=
"4.75"
height=
"4.75"
rx=
"1"
></rect>
</g>
</g>
</g>
...
...
src/components/BusinessComponents/FileSelect/index.module.css
View file @
e7ef887f
.FSBox
{
width
:
900px
;
height
:
6
50px
;
max-height
:
5
50px
;
position
:
relative
;
}
...
...
src/components/BusinessComponents/FileSelect/index.tsx
View file @
e7ef887f
...
...
@@ -447,6 +447,7 @@ const FileSelect = observer((props: FileSelectProps) => {
)
}
</
div
>
<
Table
tableContainerStyle=
{
{
height
:
470
}
}
footer=
{
false
}
rowHover=
{
true
}
nopadding=
{
true
}
...
...
src/components/CommonComponents/RadioGroupOfButtonStyle/index.module.css
View file @
e7ef887f
...
...
@@ -33,3 +33,11 @@
background-color
:
#fff
;
box-shadow
:
2px
4px
12px
0px
rgba
(
0
,
27
,
63
,
0.06
);
}
.border
{
width
:
1px
;
height
:
16px
;
background-color
:
rgba
(
209
,
214
,
222
,
1
);
}
.borderHidden
{
visibility
:
hidden
;
}
src/components/CommonComponents/RadioGroupOfButtonStyle/index.tsx
View file @
e7ef887f
...
...
@@ -8,6 +8,7 @@
*/
// 按钮样式的单选组
import
classnames
from
"classnames"
;
import
{
useMemo
}
from
"react"
;
import
style
from
"./index.module.css"
;
type
radioOption
=
{
...
...
@@ -27,21 +28,43 @@ const RadioGroupOfButtonStyle = (props: IRadioGroupOfButtonStyleProps) => {
const
{
radioOptions
,
value
,
handleRadio
,
RadiosBoxStyle
,
radioStyle
}
=
props
;
const
activeIndex
:
any
=
useMemo
(()
=>
{
let
res
=
0
;
radioOptions
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
value
===
value
)
{
res
=
index
;
}
});
return
res
;
},
[
value
,
radioOptions
]);
return
(
<
div
className=
{
style
.
RadiosBox
}
style=
{
RadiosBoxStyle
}
>
{
radioOptions
.
map
((
options
)
=>
{
{
radioOptions
.
map
((
options
,
index
)
=>
{
return
(
<
div
key=
{
options
.
value
}
className=
{
classnames
({
[
style
.
radio
]:
true
,
[
style
.
radioActive
]:
value
===
options
.
value
,
})
}
onClick=
{
()
=>
handleRadio
(
options
.
value
)
}
style=
{
radioStyle
}
>
{
options
.
label
}
</
div
>
<>
<
div
key=
{
options
.
value
}
className=
{
classnames
({
[
style
.
radio
]:
true
,
[
style
.
radioActive
]:
value
===
options
.
value
,
})
}
onClick=
{
()
=>
handleRadio
(
options
.
value
)
}
style=
{
radioStyle
}
>
{
options
.
label
}
</
div
>
<
div
className=
{
classnames
({
[
style
.
border
]:
true
,
[
style
.
borderHidden
]:
!
(
index
!==
radioOptions
.
length
-
1
&&
index
!==
activeIndex
&&
index
!==
activeIndex
-
1
),
})
}
></
div
>
</>
);
})
}
</
div
>
...
...
src/components/MySnackbar/MySnackbarProvider.tsx
View file @
e7ef887f
...
...
@@ -66,6 +66,7 @@ const MySnackbarProvider = ({
}:
MySnackbarProviderProp
)
=>
{
const
{
open
,
setOpen
,
messageInfo
,
handleExited
,
success
,
...
...
@@ -74,31 +75,46 @@ const MySnackbarProvider = ({
info
,
close
,
}
=
useMySnackbar
();
// .MuiAlert-filledInfo
const
getColorStyle
=
useMemo
(()
=>
{
if
(
messageInfo
.
severity
===
"success"
)
{
return
"#02AB83"
;
}
if
(
messageInfo
.
severity
===
"info"
)
{
return
"#1370FF"
;
}
if
(
messageInfo
.
severity
===
"warning"
)
{
return
"#FFB919"
;
}
if
(
messageInfo
.
severity
===
"error"
)
{
return
"#FF4E4E"
;
}
},
[
messageInfo
.
severity
]);
const
theme
=
createTheme
({
components
:
{
MuiAlert
:
{
styleOverrides
:
{
root
:
{
color
:
getColorStyle
,
"& .MuiAlert-icon"
:
{
color
:
getColorStyle
,
minWidth
:
"360px"
,
maxWidth
:
"542px"
,
minHeight
:
"38px"
,
boxShadow
:
"none"
,
"& .MuiAlert-action"
:
{
paddingLeft
:
"60px"
,
},
"&.MuiAlert-standardError"
:
{
color
:
"#FF4E4E"
,
background
:
"rgba(255, 237, 237, 1)"
,
"& .MuiAlert-icon"
:
{
color
:
"#FF4E4E"
,
},
},
"&.MuiAlert-standardInfo"
:
{
color
:
"rgba(19, 112, 255, 1)"
,
background
:
"rgba(235, 243, 255, 1)"
,
"& .MuiAlert-icon"
:
{
color
:
"rgba(19, 112, 255, 1)"
,
},
},
"&.MuiAlert-standardSuccess"
:
{
color
:
"rgba(2, 171, 131, 1)"
,
background
:
"rgba(217, 255, 238, 1)"
,
"& .MuiAlert-icon"
:
{
color
:
"rgba(2, 171, 131, 1)"
,
},
},
"&.MuiAlert-standardWarning"
:
{
color
:
"rgba(255, 185, 25, 1)"
,
background
:
"rgba(255, 246, 226, 1)"
,
"& .MuiAlert-icon"
:
{
color
:
"rgba(255, 185, 25, 1)"
,
},
},
},
},
...
...
@@ -137,7 +153,10 @@ const MySnackbarProvider = ({
severity=
{
messageInfo
?.
severity
}
variant=
{
variant
}
elevation=
{
elevation
}
sx=
{
{
boxShadow
:
"unset"
,
...
alertSx
}
}
sx=
{
{
...
alertSx
}
}
onClose=
{
()
=>
{
setOpen
(
false
);
}
}
>
{
messageInfo
?.
content
}
</
Alert
>
...
...
src/components/MySnackbar/useMySnackbar.ts
View file @
e7ef887f
...
...
@@ -69,6 +69,7 @@ const useMySnackbar = () => {
return
{
open
,
setOpen
,
messageInfo
,
handleExited
,
success
,
...
...
src/components/mui/MyInput.tsx
View file @
e7ef887f
...
...
@@ -35,9 +35,13 @@ const MyInput = (props: MyInputProps) => {
root
:
{
height
:
"36px"
,
fontSize
:
"14px"
,
border
:
"rgba(221, 225, 230, 1)"
,
"&.MuiInputBase-sizeSmall"
:
{
height
:
"32px"
,
},
"& .Mui-disabled"
:
{
background
:
"rgba(247, 248, 250, 1)"
,
},
},
multiline
:
{
height
:
"auto"
,
...
...
@@ -68,7 +72,7 @@ const MyInput = (props: MyInputProps) => {
borderWidth
:
"1px"
,
},
"& .MuiOutlinedInput-notchedOutline"
:
{
borderColor
:
'#DDE1E6'
,
borderColor
:
"#DDE1E6"
,
},
":hover"
:
{
"& .MuiOutlinedInput-notchedOutline"
:
error
...
...
src/components/mui/MySelect.tsx
View file @
e7ef887f
...
...
@@ -71,6 +71,14 @@ export default function MySelect(props: IProps) {
styleOverrides
:
{
root
:
{
height
:
"36px"
,
"& .Mui-disabled"
:
{
background
:
"rgba(247, 248, 250, 1)"
,
},
"& .MuiSelect-icon"
:
{
"&.Mui-disabled"
:
{
display
:
"none"
,
},
},
},
},
},
...
...
src/components/mui/MyTable/index.tsx
View file @
e7ef887f
...
...
@@ -138,7 +138,8 @@ export default function EnhancedTable(props: ITableProps) {
(
rows
.
length
===
0
&&
!
load
)
&&
<
TableRow
>
<
TableCell
sx=
{
{
borderBottom
:
'1px solid #F0F2F5'
borderBottom
:
'1px solid #F0F2F5'
,
textAlign
:
'center'
}
}
colSpan=
{
headCells
?.
filter
((
k
:
any
)
=>
k
.
id
===
"checkbox"
)?.
length
===
0
?
headCells
?.
length
:
headCells
?.
length
+
1
}
className=
{
classes
.
TypographyStyle
}
...
...
src/components/mui/Tabs.tsx
View file @
e7ef887f
...
...
@@ -2,11 +2,11 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-05-31 10:18:13
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-
16 15:53:31
* @LastEditTime: 2022-08-
31 20:25:56
* @FilePath: /bkunyun/src/views/Project/ProjectSetting/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import
{
memo
}
from
"react"
;
import
{
memo
,
useCallback
}
from
"react"
;
import
{
isEqual
}
from
"lodash"
;
import
{
useState
}
from
"react"
;
import
{
Box
}
from
"@mui/system"
;
...
...
@@ -21,11 +21,14 @@ interface ITabList {
component
:
JSX
.
Element
|
React
.
ReactNode
;
icon
?:
string
;
iconed
?:
string
;
iconHover
?:
string
;
hide
?:
boolean
;
disabled
?:
boolean
;
}
interface
IProps
{
value
?:
string
;
onChange
?:
(
val
:
string
)
=>
void
;
tabList
:
ITabList
[];
defaultValue
?:
string
;
tabPanelSx
?:
any
;
...
...
@@ -70,11 +73,14 @@ const theme = createTheme({
const
Tabs
=
(
props
:
IProps
)
=>
{
const
{
tabList
,
value
,
defaultValue
,
onChange
,
allowNullValue
=
false
,
tabPanelSx
=
{
padding
:
"24px 0 0 0"
},
}
=
props
;
const
[
value
,
setValue
]
=
useState
(
const
[
tabValue
,
setTabValue
]
=
useState
(
defaultValue
?
defaultValue
:
allowNullValue
...
...
@@ -82,17 +88,31 @@ const Tabs = (props: IProps) => {
:
tabList
.
filter
((
e
)
=>
!
e
.
hide
)[
0
].
value
);
const
onChange
=
(
val
:
string
)
=>
{
setValue
(
val
);
const
[
hoverValue
,
setHoverValue
]
=
useState
(
''
)
const
onTabChange
=
(
val
:
string
)
=>
{
setTabValue
(
val
)
onChange
&&
onChange
(
val
);
};
const
getImgSrc
=
useCallback
((
item
:
ITabList
)
=>
{
let
result
=
item
.
icon
if
(
value
===
item
.
value
){
result
=
item
.
iconed
}
if
(
hoverValue
===
item
.
value
){
result
=
item
.
iconHover
}
return
result
},[
hoverValue
,
value
])
const
labelRender
=
(
item
:
ITabList
,
key
:
number
)
=>
{
return
(
<
Box
style=
{
{
display
:
"flex"
,
alignItems
:
"center"
}
}
>
<
div
style=
{
{
display
:
"flex"
,
alignItems
:
"center"
}
}
onMouseOver=
{
()
=>
setHoverValue
(
item
.
value
)
}
onMouseOut=
{
()
=>
setHoverValue
(
''
)
}
>
{
item
.
icon
?
(
<
img
style=
{
{
width
:
"16px"
,
marginRight
:
"8px"
}
}
src=
{
value
===
item
.
value
?
item
.
iconed
:
item
.
icon
}
src=
{
getImgSrc
(
item
)
}
alt=
""
/>
)
:
(
...
...
@@ -108,17 +128,17 @@ const Tabs = (props: IProps) => {
>
{
item
.
label
}
</
Typography
>
</
Box
>
</
div
>
);
};
return
(
<
ThemeProvider
theme=
{
theme
}
>
<
TabContext
value=
{
value
}
>
<
Box
sx=
{
{
borderBottom
:
1
,
borderColor
:
"#
dde1e6
"
}
}
>
<
TabContext
value=
{
value
||
tabValue
}
>
<
Box
sx=
{
{
borderBottom
:
1
,
borderColor
:
"#
EDEFF2
"
}
}
>
<
TabList
onChange=
{
(
e
:
any
,
val
:
string
)
=>
{
onChange
(
val
);
on
Tab
Change
(
val
);
}
}
>
{
tabList
...
...
src/index.tsx
View file @
e7ef887f
...
...
@@ -41,9 +41,7 @@ root.render(
<
React
.
StrictMode
>
<
ThemeProvider
theme=
{
theme
}
>
<
Provider
{
...
stores
}
>
<
MySnackbarProvider
alertSx=
{
{
boxShadow
:
"0px 2px 4px 0px rgb(0 0 0 / 8%)"
}
}
>
<
MySnackbarProvider
>
<
MyRouter
></
MyRouter
>
</
MySnackbarProvider
>
</
Provider
>
...
...
src/views/Project/ProjectData/SeeDataset/index.tsx
View file @
e7ef887f
...
...
@@ -19,6 +19,7 @@ import classNames from "classnames";
import
Save
from
"./save"
;
import
NoData
from
"@/components/BusinessComponents/NoData"
;
import
Download
from
"./download"
;
import
MyTooltip
from
"@/components/mui/MyTooltip"
;
import
style
from
"./index.module.css"
;
type
ISeeDatasetProps
=
{
...
...
@@ -117,14 +118,15 @@ const SeeDataset = observer((props: ISeeDatasetProps) => {
Object
.
keys
(
res
.
data
.
list
[
0
]).
forEach
((
item
)
=>
{
if
(
!
[
"
canonical_smiles
"
,
"
meta
"
,
"id"
,
"mol"
,
"mol2"
,
"pdb"
,
"sdf"
,
"sdf2d"
,
"sdf3d"
,
// "canonical_smiles",
// "mol",
// "mol2",
// "pdb",
// "sdf",
// "sdf2d",
// "sdf3d",
// "smiles",
].
includes
(
item
)
)
{
...
...
@@ -313,7 +315,7 @@ const SeeDataset = observer((props: ISeeDatasetProps) => {
</
div
>
{
showData
.
length
!==
0
&&
(
<
div
className=
{
style
.
datasetLiDataList
}
>
{
Object
.
keys
(
item
.
meta
)
{
Object
.
keys
(
item
)
.
filter
((
key
)
=>
showData
.
indexOf
(
key
)
!==
-
1
)
.
map
((
key
,
index
)
=>
{
return
(
...
...
@@ -326,11 +328,13 @@ const SeeDataset = observer((props: ISeeDatasetProps) => {
>
{
key
}
</
span
>
<
span
className=
{
style
.
datasetLiDataLiValue
}
>
{
item
.
meta
[
key
]
}
</
span
>
<
MyTooltip
title=
{
item
[
key
]
}
>
<
span
className=
{
style
.
datasetLiDataLiValue
}
>
{
item
[
key
]
}
</
span
>
</
MyTooltip
>
</
div
>
);
})
}
...
...
src/views/Project/ProjectData/index.module.css
View file @
e7ef887f
...
...
@@ -40,6 +40,11 @@
align-items
:
center
;
}
.refreshIcon
{
width
:
16px
;
height
:
16px
;
}
.folderIconBox
{
display
:
flex
;
justify-content
:
flex-start
;
...
...
src/views/Project/ProjectData/index.tsx
View file @
e7ef887f
...
...
@@ -2,9 +2,9 @@ import React, { useState, useCallback, useEffect, useMemo } from "react";
import
style
from
"./index.module.css"
;
import
classnames
from
"classnames"
;
import
{
IconButton
}
from
"@mui/material"
;
import
RefreshIcon
from
"@mui/icons-material/Refresh"
;
import
MyTable
from
"@/components/mui/MyTable"
;
import
dataSetIcon
from
"@/assets/project/dataSetIcon.svg"
;
import
refresh
from
"@/assets/project/refresh.svg"
;
import
fileIcon
from
"@/assets/project/fileIcon.svg"
;
import
folderIcon
from
"@/assets/project/folderIcon.svg"
;
import
noFile
from
"@/assets/project/noFile.svg"
;
...
...
@@ -68,7 +68,7 @@ const ProjectData = observer(() => {
useEffect
(()
=>
{
const
locationInfo
:
any
=
location
?.
state
;
setActiveTab
(
locationInfo
?.
dataType
||
'file'
)
setActiveTab
(
locationInfo
?.
dataType
||
"file"
);
setPath
(
locationInfo
?.
pathName
||
"/"
);
},
[
location
]);
...
...
@@ -557,12 +557,17 @@ const ProjectData = observer(() => {
size=
"small"
onClick=
{
handleRefresh
}
disabled=
{
!
isPass
(
"PROJECT_DATA_REFRESH"
,
"USER"
)
}
sx=
{
{
marginLeft
:
"17px"
,
width
:
'32px'
,
height
:
'32px'
,
":hover"
:
{
backgroundColor
:
"#F0F2F5 "
,
borderRadius
:
2
}
}
}
sx=
{
{
marginLeft
:
"12px"
,
width
:
"32px"
,
height
:
"32px"
,
":hover"
:
{
backgroundColor
:
"rgba(240, 242, 245, 1)"
,
borderRadius
:
"4px"
,
},
}
}
>
<
RefreshIcon
sx=
{
{
fontSize
:
"18px"
}
}
/>
<
img
className=
{
style
.
refreshIcon
}
src=
{
refresh
}
alt=
""
/>
</
IconButton
>
</
div
>
</
div
>
...
...
src/views/Project/ProjectJobDetail/index.tsx
View file @
e7ef887f
...
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-06-21 20:03:56
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-0
8-23 19:27:18
* @LastEditTime: 2022-0
9-01 09:39:20
* @FilePath: /bkunyun/src/views/Project/ProjectSubmitWork/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -39,15 +39,20 @@ import { useMessage } from "@/components/MySnackbar";
import
MyPopconfirm
from
"@/components/mui/MyPopconfirm"
;
import
SeeDataset
from
"../ProjectData/SeeDataset"
;
import
{
getToken
,
storageUnitFromB
}
from
"@/utils/util"
;
import
LogView
from
"./LogView"
import
LogView
from
"./LogView"
;
import
usePass
from
"@/hooks/usePass"
;
import
{
IFlowNodeTransmissionNum
}
from
"./interface"
;
import
{
getConnectionArr
,
getDatasetName
,
getDatasetPath
,
getSameBatch
}
from
"./utils"
;
import
{
getConnectionArr
,
getDatasetName
,
getDatasetPath
,
getSameBatch
,
}
from
"./utils"
;
import
styles
from
"./index.module.css"
;
const
stateMap
=
{
SUBMITTED
:
"正在启动"
,
SUBMITTED
:
"正在启动"
,
RUNNING
:
"正在运行"
,
ABORTED
:
"运行终止"
,
FAILED
:
"运行失败"
,
...
...
@@ -85,7 +90,7 @@ const ProjectSubmitWork = observer(() => {
// 查看日志弹框显示
const
[
showLogView
,
setShowLogView
]
=
useState
<
boolean
>
(
false
);
// 日志信息
const
[
logs
,
setLogs
]
=
useState
<
Array
<
any
>>
([])
const
[
logs
,
setLogs
]
=
useState
<
Array
<
any
>>
([])
;
const
{
name
,
state
}
=
workFlowJobInfo
||
{};
// 查看数据集(数据集详情)显示控制
...
...
@@ -97,68 +102,79 @@ const ProjectSubmitWork = observer(() => {
/** 获取模版数据 */
const
{
run
}
=
useMyRequest
(
fetchWorkFlowJob
,
{
pollingInterval
:
1000
*
6
0
,
pollingInterval
:
1000
*
2
0
,
pollingWhenHidden
:
false
,
onSuccess
:
(
res
:
IResponse
<
ITaskInfo
>
)
=>
{
getOutouts
(
res
.
data
.
outputs
);
getLogs
(
res
.
data
);
setWorkFlowJobInfo
(
res
.
data
);
const
newWorkflowId
=
locationInfo
?.
taskId
?.
replaceAll
(
'-'
,
''
)
getFlowNumber
({
projectId
,
workflowId
:
newWorkflowId
,
filetoken
:
fileToken
,
token
:
getToken
()})
const
newWorkflowId
=
locationInfo
?.
taskId
?.
replaceAll
(
"-"
,
""
);
getFlowNumber
({
projectId
,
workflowId
:
newWorkflowId
,
filetoken
:
fileToken
,
token
:
getToken
(),
});
},
});
// 处理日志数据
const
getLogs
=
(
data
:
any
)
=>
{
let
logs
=
[{
logName
:
"workflow.log"
,
logPath
:
data
.
logPath
}]
let
logs
=
[{
logName
:
"workflow.log"
,
logPath
:
data
.
logPath
}]
;
data
.
tasks
.
forEach
((
i
:
any
)
=>
{
if
(
i
.
outLog
)
{
logs
.
push
({
logName
:
`
${
i
.
title
}
.log`
,
logPath
:
i
.
outLog
})
logs
.
push
({
logName
:
`
${
i
.
title
}
.log`
,
logPath
:
i
.
outLog
})
;
}
});
setLogs
(
logs
)
}
setLogs
(
logs
)
;
}
;
/** 更新流节点传输数据 */
const
updateFlowNodeEdgeLabel
=
useCallback
((
flowNodeInfo
:
IFlowNodeTransmissionNum
[])
=>
{
const
newTasks
=
workFlowJobInfo
&&
workFlowJobInfo
?.
tasks
?.
length
&&
workFlowJobInfo
?.
tasks
.
map
(
item
=>
{
if
(
getSameBatch
(
flowNodeInfo
,
item
)){
const
newEdges
=
item
?.
edges
?.
length
&&
item
.
edges
.
map
(
edgeItem
=>
{
const
connectionArr
=
getConnectionArr
(
flowNodeInfo
,
edgeItem
)
if
(
connectionArr
?.
length
){
const
updateFlowNodeEdgeLabel
=
useCallback
(
(
flowNodeInfo
:
IFlowNodeTransmissionNum
[])
=>
{
const
newTasks
=
workFlowJobInfo
&&
workFlowJobInfo
?.
tasks
?.
length
&&
workFlowJobInfo
?.
tasks
.
map
((
item
)
=>
{
if
(
getSameBatch
(
flowNodeInfo
,
item
))
{
const
newEdges
=
item
?.
edges
?.
length
&&
item
.
edges
.
map
((
edgeItem
)
=>
{
const
connectionArr
=
getConnectionArr
(
flowNodeInfo
,
edgeItem
);
if
(
connectionArr
?.
length
)
{
return
{
...
edgeItem
,
label
:
String
(
connectionArr
[
0
]?.
value
),
};
}
else
{
return
edgeItem
;
}
});
return
{
...
edgeI
tem
,
label
:
String
(
connectionArr
[
0
]?.
value
)
}
}
else
{
return
edgeItem
...
i
tem
,
edges
:
newEdges
||
[],
}
;
}
else
{
return
item
;
}
})
return
{
...
item
,
edges
:
newEdges
||
[],
}
}
else
{
return
item
});
if
(
workFlowJobInfo
)
{
setWorkFlowJobInfo
({
...
workFlowJobInfo
,
tasks
:
newTasks
||
[],
});
}
})
if
(
workFlowJobInfo
)
{
setWorkFlowJobInfo
({
...
workFlowJobInfo
,
tasks
:
newTasks
||
[]
})
}
},[
workFlowJobInfo
])
},
[
workFlowJobInfo
]
);
/** 获取流节点数据 */
const
{
run
:
getFlowNumber
}
=
useMyRequest
(
fetchFlowOutputNumber
,
{
pollingInterval
:
1000
*
20
,
pollingWhenHidden
:
false
,
onSuccess
:
(
res
:
IResponse
<
IFlowNodeTransmissionNum
[]
>
)
=>
{
if
(
res
?.
data
?.
length
)
{
updateFlowNodeEdgeLabel
(
res
.
data
)
if
(
res
?.
data
?.
length
)
{
updateFlowNodeEdgeLabel
(
res
.
data
)
;
}
},
});
...
...
@@ -291,8 +307,9 @@ const ProjectSubmitWork = observer(() => {
if
(
Array
.
isArray
(
res
.
data
))
{
res
.
data
.
forEach
((
item1
)
=>
{
if
(
item1
.
name
===
item
.
path
.
slice
(
item
.
path
.
lastIndexOf
(
"/"
)
+
1
))
{
randerOutputs
[
index
].
size
=
`
${
item1
.
size
?
storageUnitFromB
(
Number
(
item1
.
size
))
:
"-"
}
`
;
randerOutputs
[
index
].
size
=
`
${
item1
.
size
?
storageUnitFromB
(
Number
(
item1
.
size
))
:
"-"
}
`
;
setRanderOutputs
([...
randerOutputs
]);
}
});
...
...
@@ -349,7 +366,7 @@ const ProjectSubmitWork = observer(() => {
setOverviewActive
(
false
);
setShowOptions
(
!
showOptions
);
};
/** 终止任务 */
const
onStopJob
=
useCallback
(()
=>
{
cancelWorkJob
({
...
...
@@ -365,7 +382,7 @@ const ProjectSubmitWork = observer(() => {
},
[
deleteWorkJob
,
workFlowJobInfo
?.
id
]);
const
returnPermission
=
useMemo
(()
=>
{
if
([
'SUBMITTED'
,
'RUNNING'
].
includes
(
state
||
''
))
{
if
([
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
))
{
return
isPass
(
"PROJECT_WORKBENCH_JOBS_STOP"
,
"USER"
);
}
else
{
return
isPass
(
"PROJECT_WORKBENCH_JOBS_DELETE"
,
"MANAGER"
);
...
...
@@ -397,8 +414,8 @@ const ProjectSubmitWork = observer(() => {
};
const
handleClose
=
()
=>
{
setShowLogView
(
false
)
}
setShowLogView
(
false
)
;
}
;
return
(
<
div
className=
{
styles
.
swBox
}
>
...
...
@@ -436,18 +453,22 @@ const ProjectSubmitWork = observer(() => {
}}
> */
}
<
MyButton
text=
{
[
'SUBMITTED'
,
'RUNNING'
].
includes
(
state
||
''
)
?
"终止"
:
"删除"
}
text=
{
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
?
"终止"
:
"删除"
}
variant=
"outlined"
color=
"secondary"
onClick=
{
(
e
:
any
)
=>
handleShowPopper
(
e
,
[
'SUBMITTED'
,
'RUNNING'
].
includes
(
state
||
''
)
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
?
"正在运行的任务终止后将无法重新运行,确认继续吗?"
:
"任务被删除后将无法恢复,确认继续吗?"
)
}
// click=
{
onStopJob
}
// click=
{
onStopJob
}
></
MyButton
>
{
/* </MyPopconfirm> */
}
</
div
>
...
...
@@ -480,7 +501,9 @@ const ProjectSubmitWork = observer(() => {
}
alt=
""
/>
<
span
className=
{
styles
.
outputItemName
}
>
{
item
.
name
}
</
span
>
<
span
className=
{
styles
.
outputItemName
}
>
{
item
.
name
}
</
span
>
</
div
>
{
/* </MyPopconfirm> */
}
<
span
className=
{
styles
.
outputLiRight
}
>
...
...
@@ -493,8 +516,8 @@ const ProjectSubmitWork = observer(() => {
)
}
{
(
!
workFlowJobInfo
?.
outputs
||
Object
.
keys
(
workFlowJobInfo
?.
outputs
).
length
===
0
)
&&
(
<
div
className=
{
styles
.
notResults
}
>
暂无结果文件
</
div
>
)
}
<
div
className=
{
styles
.
notResults
}
>
暂无结果文件
</
div
>
)
}
<
div
className=
{
styles
.
title
}
>
任务信息
</
div
>
<
div
className=
{
styles
.
taskInfoLi
}
>
<
div
className=
{
styles
.
taskInfoParams
}
>
任务名称
</
div
>
...
...
@@ -541,7 +564,7 @@ const ProjectSubmitWork = observer(() => {
alt=
""
/>
)
}
{
[
'SUBMITTED'
,
'RUNNING'
].
includes
(
state
||
''
)
&&
(
{
[
"SUBMITTED"
,
"RUNNING"
].
includes
(
state
||
""
)
&&
(
<
img
className=
{
styles
.
taskInfoValueIcon
}
src=
{
jobRun
}
...
...
@@ -766,11 +789,7 @@ const ProjectSubmitWork = observer(() => {
projectId=
{
projectId
as
string
}
></
SeeDataset
>
)
}
<
LogView
isshow=
{
showLogView
}
handleClose=
{
handleClose
}
logs=
{
logs
}
/>
<
LogView
isshow=
{
showLogView
}
handleClose=
{
handleClose
}
logs=
{
logs
}
/>
</
div
>
);
});
...
...
src/views/Project/ProjectOverview/index.module.css
View file @
e7ef887f
...
...
@@ -3,7 +3,7 @@
justify-content
:
space-between
;
margin
:
24px
24px
0
24px
;
padding-bottom
:
20px
;
border-bottom
:
1px
solid
#
F0F2F5
;
border-bottom
:
1px
solid
#
EDEFF2
;
}
.basicInformationRight
{
...
...
src/views/Project/ProjectSetting/BaseInfo/index.module.css
View file @
e7ef887f
.loadingBox
{
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
300px
;
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
300px
;
}
.projectInfoList
{
background-color
:
#fff
;
position
:
relative
;
background-color
:
#fff
;
position
:
relative
;
}
.projectInfoListLi
{
margin-bottom
:
24px
;
margin-bottom
:
24px
;
}
.projectInfoListLiLabel
{
color
:
#1e2633
;
line-height
:
22px
;
font-size
:
14px
;
font-weight
:
550
;
margin-bottom
:
8px
;
color
:
#1e2633
;
line-height
:
22px
;
font-size
:
14px
;
font-weight
:
550
;
margin-bottom
:
8px
;
}
.projectInfoName
::after
{
content
:
"*"
;
color
:
red
;
content
:
"*"
;
color
:
red
;
}
.projectInfoListLiValue
{
width
:
560px
;
height
:
36px
;
border
:
1px
solid
#e6e8eb
;
border-radius
:
4px
;
color
:
#565c66
;
padding
:
0
12px
;
box-sizing
:
border-box
;
outline
:
none
;
width
:
560px
;
height
:
36px
;
border
:
1px
solid
#e6e8eb
;
border-radius
:
4px
;
color
:
#565c66
;
padding
:
0
12px
;
box-sizing
:
border-box
;
outline
:
none
;
}
.projectInfoListLiValue
:focus
{
border
:
2px
solid
#136efa
;
border
:
2px
solid
#136efa
;
}
.projectInfoTextarea
{
line-height
:
22px
;
height
:
82px
;
padding
:
7px
12px
;
resize
:
none
;
font-size
:
14px
;
position
:
relative
;
width
:
560px
;
}
.projectInfoSelect
{
width
:
560px
;
padding
:
0
12px
;
width
:
560px
;
padding
:
0
12px
;
}
.disable
{
background
:
#f7f8fa
;
background
:
#f7f8fa
;
}
.projectInfoListLiText
{
margin-bottom
:
16px
;
color
:
#8a9099
;
font-size
:
12px
;
line-height
:
20px
;
margin-bottom
:
16px
;
color
:
#8a9099
;
font-size
:
12px
;
line-height
:
20px
;
}
.deleteBox
{
width
:
380px
;
width
:
380px
;
}
.deleteText1
{
font-size
:
14px
;
line-height
:
22px
;
color
:
#ff4e4e
;
margin-bottom
:
20px
;
font-size
:
14px
;
line-height
:
22px
;
color
:
#ff4e4e
;
margin-bottom
:
20px
;
}
.deleteText2
{
color
:
#1e2633
;
font-size
:
14px
;
line-height
:
22px
;
margin-bottom
:
8px
;
color
:
#1e2633
;
font-size
:
14px
;
line-height
:
22px
;
margin-bottom
:
8px
;
}
.deleteText3
{
color
:
#1e2633
;
font-size
:
14px
;
line-height
:
22px
;
margin-bottom
:
20px
;
color
:
#1e2633
;
font-size
:
14px
;
line-height
:
22px
;
margin-bottom
:
20px
;
}
.deleteProjectName
{
color
:
#1370ff
;
color
:
#1370ff
;
}
.deleteProjectInput
{
width
:
100%
;
height
:
36px
;
border
:
1px
solid
#e6e8eb
;
border-radius
:
4px
;
color
:
#565c66
;
padding
:
0
12px
;
box-sizing
:
border-box
;
outline
:
none
;
width
:
100%
;
height
:
36px
;
border
:
1px
solid
#e6e8eb
;
border-radius
:
4px
;
color
:
#565c66
;
padding
:
0
12px
;
box-sizing
:
border-box
;
outline
:
none
;
}
.deleteProjectInput
:focus
{
border
:
1px
solid
#136efa
;
border
:
1px
solid
#136efa
;
}
src/views/Project/ProjectSetting/BaseInfo/index.tsx
View file @
e7ef887f
...
...
@@ -184,10 +184,12 @@ const BaseInfo = observer(() => {
};
const
descChange
=
(
e
:
any
)
=>
{
setProjectInfo
({
...
projectInfo
,
desc
:
e
.
target
.
value
,
});
if
(
e
.
target
.
value
.
length
<=
100
)
{
setProjectInfo
({
...
projectInfo
,
desc
:
e
.
target
.
value
,
});
}
};
const
checkBudget
=
(
budget
:
string
,
showMessage
=
false
)
=>
{
...
...
@@ -337,16 +339,30 @@ const BaseInfo = observer(() => {
</
div
>
<
div
className=
{
style
.
projectInfoListLi
}
>
<
div
className=
{
style
.
projectInfoListLiLabel
}
>
项目描述
</
div
>
<
textarea
value=
{
projectInfo
.
desc
}
<
div
className=
{
classnames
({
[
style
.
projectInfoListLiValue
]:
true
,
[
style
.
projectInfoTextarea
]:
true
,
})
}
onChange=
{
descChange
}
placeholder=
"项目描述限制300字以内"
maxLength=
{
300
}
></
textarea
>
>
<
MyInput
value=
{
projectInfo
.
desc
}
id=
"desc"
placeholder=
"项目描述限制100字以内"
onChange=
{
descChange
}
multiline
rows=
{
4
}
/>
<
span
style=
{
{
position
:
"absolute"
,
bottom
:
"7px"
,
right
:
"12px"
,
color
:
projectInfo
.
desc
.
length
>=
100
?
"#d32f2f"
:
"#C2C6CC"
,
}
}
>
{
projectInfo
.
desc
.
length
}
/100
</
span
>
</
div
>
</
div
>
<
div
className=
{
style
.
projectInfoListLi
}
>
<
div
className=
{
style
.
projectInfoListLiLabel
}
>
计算区
</
div
>
...
...
src/views/Project/ProjectSetting/ProjectMembers/components/AddMember.tsx
View file @
e7ef887f
...
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-05-31 10:18:13
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-
03 14:29:19
* @LastEditTime: 2022-08-
31 18:27:26
* @FilePath: /bkunyun/src/views/Project/ProjectSetting/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -79,15 +79,7 @@ const AddMember = observer((props: IProps) => {
useEffect
(()
=>
{
if
(
addMemberDialog
)
{
http
.
get
<
IResponse
<
any
>
>
("/cpp/project/listroles").then((res) =
>
{
const
arr
=
[];
const
{
data
}
=
res
;
for
(
const
key
in
data
)
{
arr
.
push
({
label
:
String
(
data
[
key
]),
value
:
key
,
});
}
setSelectOptions
(
arr
);
setSelectOptions
(
res
.
data
);
}
);
}
}, [addMemberDialog, http]);
...
...
@@ -170,6 +162,7 @@ const AddMember = observer((props: IProps) => {
/>
<
div
style=
{
{
overflowY
:
"scroll"
,
maxHeight
:
400
}
}
>
<
MyTable
tableContainerStyle=
{
{
height
:
346
}
}
checkboxData=
{
(
val
:
string
[])
=>
setCheckData
(
val
)
}
param=
"username"
disabledParam=
{
"enabled"
}
...
...
src/views/Project/ProjectSubmitWork/ConfigForm/index.tsx
View file @
e7ef887f
...
...
@@ -23,11 +23,11 @@ type ConfigFormProps = {
templateConfigInfo
?:
ITemplateConfig
;
setParameter
:
any
;
onRef
?:
React
.
Ref
<
any
>
;
set
SelectedBatch
NodeId
:
(
val
:
string
)
=>
void
;
set
ExternalSelected
NodeId
:
(
val
:
string
)
=>
void
;
};
const
ConfigForm
=
(
props
:
ConfigFormProps
)
=>
{
const
{
templateConfigInfo
,
setParameter
,
set
SelectedBatch
NodeId
}
=
props
;
const
{
templateConfigInfo
,
setParameter
,
set
ExternalSelected
NodeId
}
=
props
;
const
[
name
,
setName
]
=
useState
<
string
>
(
""
);
// 任务名称
const
[
fileSelectType
,
setFileSelectType
]
=
useState
<
FileSelectType
>
(
"path"
);
...
...
@@ -192,7 +192,6 @@ const ConfigForm = (props: ConfigFormProps) => {
const
randerParameters
=
(
parameters
:
Array
<
IParameter
>
,
taskId
:
string
,
batchId
?:
string
)
=>
{
return
parameters
.
filter
((
parameter
)
=>
parameter
.
hidden
===
false
)
...
...
@@ -221,7 +220,7 @@ const ConfigForm = (props: ConfigFormProps) => {
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"file"
&&
(
<
MyInput
onClick=
{
()
=>
{
set
SelectedBatchNodeId
(
batch
Id
||
""
);
set
ExternalSelectedNodeId
(
task
Id
||
""
);
setFileSelectType
(
"file"
);
handleOpenFileSelect
(
taskId
,
parameter
.
name
);
}
}
...
...
@@ -244,7 +243,7 @@ const ConfigForm = (props: ConfigFormProps) => {
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"path"
&&
(
<
MyInput
onClick=
{
()
=>
{
set
SelectedBatchNodeId
(
batch
Id
||
""
);
set
ExternalSelectedNodeId
(
task
Id
||
""
);
setFileSelectType
(
"path"
);
handleOpenFileSelect
(
taskId
,
parameter
.
name
);
}
}
...
...
@@ -267,7 +266,7 @@ const ConfigForm = (props: ConfigFormProps) => {
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"dataset"
&&
(
<
MyInput
onClick=
{
()
=>
{
set
SelectedBatch
NodeId
(
taskId
);
set
ExternalSelected
NodeId
(
taskId
);
setFileSelectType
(
"dataset"
);
handleOpenFileSelect
(
taskId
,
parameter
.
name
);
}
}
...
...
@@ -290,10 +289,9 @@ const ConfigForm = (props: ConfigFormProps) => {
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"input"
&&
(
<
MyInput
onFocus=
{
()
=>
{
setSelectedBatchNodeId
(
batchId
||
""
);
console
.
log
(
batchId
,
"111"
);
setExternalSelectedNodeId
(
taskId
||
""
);
}
}
onBlur=
{
()
=>
set
SelectedBatch
NodeId
(
""
)
}
onBlur=
{
()
=>
set
ExternalSelected
NodeId
(
""
)
}
value=
{
parameter
.
value
||
""
}
onChange=
{
(
e
:
any
)
=>
handleParameterChange
(
e
,
taskId
,
parameter
.
name
||
""
)
...
...
@@ -306,8 +304,8 @@ const ConfigForm = (props: ConfigFormProps) => {
)
}
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"select"
&&
(
<
MySelect
onFocus=
{
()
=>
set
SelectedBatchNodeId
(
batch
Id
||
""
)
}
onBlur=
{
()
=>
set
SelectedBatch
NodeId
(
""
)
}
onFocus=
{
()
=>
set
ExternalSelectedNodeId
(
task
Id
||
""
)
}
onBlur=
{
()
=>
set
ExternalSelected
NodeId
(
""
)
}
value=
{
parameter
.
value
}
onChange=
{
(
e
:
any
)
=>
handleParameterChange
(
...
...
@@ -329,8 +327,8 @@ const ConfigForm = (props: ConfigFormProps) => {
{
(
parameter
.
domType
||
""
).
toLowerCase
()
===
"multipleselect"
&&
(
<
MySelect
onFocus=
{
()
=>
set
SelectedBatchNodeId
(
batch
Id
||
""
)
}
onBlur=
{
()
=>
set
SelectedBatch
NodeId
(
""
)
}
onFocus=
{
()
=>
set
ExternalSelectedNodeId
(
task
Id
||
""
)
}
onBlur=
{
()
=>
set
ExternalSelected
NodeId
(
""
)
}
value=
{
parameter
.
value
}
onChange=
{
(
e
:
any
)
=>
handleParameterChange
(
...
...
@@ -356,8 +354,8 @@ const ConfigForm = (props: ConfigFormProps) => {
onChange=
{
(
e
:
any
)
=>
handleParameterChange
(
e
,
taskId
,
parameter
.
name
||
""
)
}
onFocus=
{
()
=>
set
SelectedBatchNodeId
(
batch
Id
||
""
)
}
onBlur=
{
()
=>
set
SelectedBatch
NodeId
(
""
)
}
onFocus=
{
()
=>
set
ExternalSelectedNodeId
(
task
Id
||
""
)
}
onBlur=
{
()
=>
set
ExternalSelected
NodeId
(
""
)
}
options=
{
parameter
?.
choices
||
[]
}
error=
{
parameter
.
error
||
false
}
helperText=
{
parameter
.
helperText
}
...
...
@@ -378,8 +376,8 @@ const ConfigForm = (props: ConfigFormProps) => {
)
}
options=
{
parameter
?.
choices
||
[]
}
onFocus=
{
()
=>
set
SelectedBatchNodeId
(
batch
Id
||
""
)
}
onBlur=
{
()
=>
set
SelectedBatch
NodeId
(
""
)
}
onFocus=
{
()
=>
set
ExternalSelectedNodeId
(
task
Id
||
""
)
}
onBlur=
{
()
=>
set
ExternalSelected
NodeId
(
""
)
}
error=
{
parameter
.
error
||
false
}
helperText=
{
parameter
.
helperText
}
/>
...
...
@@ -448,7 +446,7 @@ const ConfigForm = (props: ConfigFormProps) => {
<
MyInput
value=
{
outputPath
||
""
}
onClick=
{
()
=>
{
set
SelectedBatch
NodeId
(
""
);
set
ExternalSelected
NodeId
(
""
);
setFileSelectType
(
"path"
);
handleOpenFileSelect
();
}
}
...
...
@@ -500,7 +498,6 @@ const ConfigForm = (props: ConfigFormProps) => {
{
randerParameters
(
task
.
parameters
.
filter
((
parameter
)
=>
!
parameter
?.
thrown
),
task
.
id
,
task
.
id
)
}
{
task
.
flows
.
map
((
flow
)
=>
{
if
(
...
...
@@ -511,7 +508,7 @@ const ConfigForm = (props: ConfigFormProps) => {
return
null
;
}
return
(
<
div
className=
{
styles
.
flowConfigBox
}
key=
{
flow
.
id
}
>
<
div
className=
{
styles
.
flowConfigBox
}
key=
{
flow
.
id
}
id=
{
`point${flow.id}`
}
>
<
div
className=
{
styles
.
flowTitle
}
>
{
flow
.
title
}
{
flow
.
description
&&
(
...
...
@@ -527,7 +524,6 @@ const ConfigForm = (props: ConfigFormProps) => {
{
randerParameters
(
flow
.
parameters
,
flow
.
id
,
flow
.
parentNode
?
flow
.
parentNode
:
flow
.
id
)
}
</
div
>
);
...
...
src/views/Project/ProjectSubmitWork/WorkFlow/index.tsx
View file @
e7ef887f
...
...
@@ -12,11 +12,11 @@ import { ITemplateConfig } from "../interface";
interface
IProps
{
templateConfigInfo
?:
ITemplateConfig
;
set
SelectedBatch
NodeId
?:
(
val
:
string
)
=>
void
;
selectedBatch
NodeId
?:
string
;
set
ExternalSelected
NodeId
?:
(
val
:
string
)
=>
void
;
externalSelected
NodeId
?:
string
;
}
const
WorkFlow
=
(
props
:
IProps
)
=>
{
const
{
templateConfigInfo
,
set
SelectedBatchNodeId
,
selectedBatch
NodeId
}
=
const
{
templateConfigInfo
,
set
ExternalSelectedNodeId
,
externalSelected
NodeId
}
=
props
;
/** 页面刷新提醒 */
...
...
@@ -36,8 +36,8 @@ const WorkFlow = (props: IProps) => {
return
(
<
Flow
tasks=
{
templateConfigInfo
?.
tasks
}
set
SelectedBatchNodeId=
{
setSelectedBatch
NodeId
}
selectedBatchNodeId=
{
selectedBatch
NodeId
}
set
ExternalSelectedNodeId=
{
setExternalSelected
NodeId
}
externalSelectedNodeId=
{
externalSelected
NodeId
}
/>
);
};
...
...
src/views/Project/ProjectSubmitWork/index.tsx
View file @
e7ef887f
...
...
@@ -42,7 +42,8 @@ const ProjectSubmitWork = observer(() => {
let
configFormRef
:
any
=
React
.
createRef
();
/** 是否全屏 */
const
[
fullScreenShow
,
setFullScreenShow
]
=
useState
<
boolean
>
(
false
);
const
[
selectedBatchNodeId
,
setSelectedBatchNodeId
]
=
useState
<
string
>
(
""
);
const
[
externalSelectedNodeId
,
setExternalSelectedNodeId
]
=
useState
<
string
>
(
""
);
// 前往工作台
const
goToWorkbench
=
(
toWorkbenchList
=
false
)
=>
{
...
...
@@ -313,7 +314,7 @@ const ProjectSubmitWork = observer(() => {
onRef=
{
configFormRef
}
templateConfigInfo=
{
templateConfigInfo
}
setParameter=
{
setParameter
}
set
SelectedBatchNodeId=
{
setSelectedBatch
NodeId
}
set
ExternalSelectedNodeId=
{
setExternalSelected
NodeId
}
/>
</
div
>
)
}
...
...
@@ -323,8 +324,8 @@ const ProjectSubmitWork = observer(() => {
>
<
WorkFlow
templateConfigInfo=
{
templateConfigInfo
}
set
SelectedBatchNodeId=
{
setSelectedBatch
NodeId
}
selectedBatchNodeId=
{
selectedBatch
NodeId
}
set
ExternalSelectedNodeId=
{
setExternalSelected
NodeId
}
externalSelectedNodeId=
{
externalSelected
NodeId
}
/>
</
div
>
</
div
>
...
...
src/views/Project/ProjectWorkbench/index.tsx
View file @
e7ef887f
/*
* @Author: rocosen
* @Date: 2022-06-12 10:05:13
* @LastEditors: 吴永生
#A02208 yongsheng.wu@wholion
.com
* @LastEditTime: 2022-0
7-20 15:04:19
* @LastEditors: 吴永生
15770852798@163
.com
* @LastEditTime: 2022-0
9-01 09:31:56
* @FilePath: /bkunyun/src/views/Project/ProjectSetting/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -11,17 +11,16 @@ import { Box } from "@mui/system";
import
{
observer
}
from
"mobx-react-lite"
;
import
{
useLocation
}
from
"react-router-dom"
;
import
projectImg
from
"@/assets/project/projectIconSmall.svg"
;
import
WorkbenchTemplate
from
"./workbenchTemplate"
;
import
WorkbenchList
from
"./workbenchList"
;
import
Tabs
from
"@/components/mui/Tabs"
;
import
usePass
from
"@/hooks/usePass"
;
import
Template
from
"@/assets/project/workbenchTemplate.svg"
;
import
Template_select
from
"@/assets/project/workbenchTemplate_select.svg"
;
import
TemplateSelect
from
"@/assets/project/workbenchTemplate_select.svg"
;
import
TemplateHover
from
"@/assets/project/workbenchTemplate_hover.svg"
;
import
List
from
"@/assets/project/workbenchList.svg"
;
import
List_select
from
"@/assets/project/workbenchList_select.svg"
;
import
ButtonDemo
from
"@/views/mui_demo/button"
;
import
InputDemo
from
"@/views/mui_demo/input"
;
import
ListHover
from
"@/assets/project/workbenchList_hover.svg"
;
import
ListSelect
from
"@/assets/project/workbenchList_select.svg"
;
const
ProjectWorkbench
=
observer
(()
=>
{
const
isPass
=
usePass
();
...
...
@@ -35,7 +34,8 @@ const ProjectWorkbench = observer(() => {
component
:
<
WorkbenchTemplate
/>,
hide
:
!
isPass
(
"PROJECT_WORKBENCH_FLOES"
),
icon
:
Template
,
iconed
:
Template_select
,
iconed
:
TemplateSelect
,
iconHover
:
TemplateHover
,
},
{
label
:
"任务列表"
,
...
...
@@ -43,29 +43,25 @@ const ProjectWorkbench = observer(() => {
component
:
<
WorkbenchList
/>,
hide
:
!
isPass
(
"PROJECT_WORKBENCH_JOBS"
),
icon
:
List
,
iconed
:
List_select
,
},
{
label
:
"按钮组件"
,
value
:
"MUI_BUTTON"
,
component
:
<
ButtonDemo
/>,
icon
:
List
,
iconed
:
List_select
,
},
{
label
:
"输入框组件"
,
value
:
"MUI_INPUT"
,
component
:
<
InputDemo
/>,
icon
:
List
,
iconed
:
List_select
,
iconed
:
ListSelect
,
iconHover
:
ListHover
,
},
];
},
[
isPass
]);
return
(
<
div
style=
{
{
padding
:
'28px 24px 24px'
}
}
>
<
div
style=
{
{
padding
:
"28px 24px 24px"
,
height
:
"100%"
}
}
>
<
div
style=
{
{
display
:
"flex"
,
alignItems
:
"center"
}
}
>
<
span
style=
{
{
fontSize
:
"18px"
,
lineHeight
:
"26px"
,
fontWeight
:
"600"
,
color
:
"#1E2633"
}
}
>
工作台
</
span
>
<
span
style=
{
{
fontSize
:
"18px"
,
lineHeight
:
"26px"
,
fontWeight
:
"600"
,
color
:
"#1E2633"
,
}
}
>
工作台
</
span
>
</
div
>
<
Box
sx=
{
{
width
:
"100%"
,
typography
:
"body1"
}
}
>
<
Tabs
...
...
src/views/Project/components/AddProject/index.tsx
View file @
e7ef887f
...
...
@@ -177,13 +177,13 @@ const AddProject = (props: IAddProjectProps) => {
title=
"新建项目"
loading=
{
loading
}
>
<
div
className=
{
style
.
formBox
}
onClick=
{
handleFromBox
}
>
<
MyInput
required
error=
{
nameCheck
.
error
}
id=
"name"
//
id="name"
label=
"项目名称"
variant=
"outlined"
value=
{
name
}
onChange=
{
handleNameChange
}
helperText=
{
nameCheck
.
help
}
...
...
src/views/Project/components/CurrentProject/index.tsx
View file @
e7ef887f
/*
* @Author: 吴永生 15770852798@163.com
* @Date: 2022-08-26 19:13:55
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-30 19:26:16
* @FilePath: /bkunyun/src/views/Project/components/CurrentProject/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import
logo
from
"@/assets/project/projectIcon.svg"
;
import
style
from
"./index.module.css"
;
import
ArrowForwardIosIcon
from
"@mui/icons-material/ArrowForwardIos"
;
import
{
Popper
,
Fade
}
from
"@mui/material"
;
import
{
useStores
}
from
"@/store/index"
;
import
ProjectListPopper
from
"../ProjectListPopper"
;
import
React
,
{
use
Effect
,
use
State
}
from
"react"
;
import
React
,
{
useState
}
from
"react"
;
import
{
observer
}
from
"mobx-react-lite"
;
import
AddProject
from
"../AddProject"
;
import
{
...
...
@@ -17,17 +25,6 @@ const CurrentProject = observer(() => {
const
[
projectListOpen
,
setProjectListOpen
]
=
useState
(
false
);
const
[
anchorEl
,
setAnchorEl
]
=
useState
<
null
|
HTMLElement
>
(
null
);
useEffect
(()
=>
{
document
.
addEventListener
(
"click"
,
(
e
)
=>
{
setProjectListOpen
(
false
);
});
return
()
=>
{
document
.
removeEventListener
(
"click"
,
(
e
)
=>
{
setProjectListOpen
(
false
);
});
};
},
[]);
const
handleShowProjectList
=
(
event
:
React
.
MouseEvent
<
HTMLElement
>
)
=>
{
event
.
nativeEvent
.
stopImmediatePropagation
();
setAnchorEl
(
event
.
currentTarget
);
...
...
src/views/Project/components/Flow/components/BatchNode/index.tsx
View file @
e7ef887f
...
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-07-12 11:20:29
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-
22 16:41:54
* @LastEditTime: 2022-08-
31 17:09:26
* @FilePath: /bkunyun/src/views/Project/components/Flow/components/BatchNode.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
src/views/Project/components/Flow/components/FlowNode/index.tsx
View file @
e7ef887f
...
...
@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-07-12 11:29:46
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-
22 19:16:06
* @LastEditTime: 2022-08-
31 17:09:31
* @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
*/
...
...
src/views/Project/components/Flow/index.tsx
View file @
e7ef887f
...
...
@@ -33,9 +33,9 @@ interface IProps extends ReactFlowProps {
/** 点击batch事件 */
onBatchClick
?:
(
val
:
string
)
=>
void
;
/** 设置选中的batch节点id */
set
SelectedBatch
NodeId
?:
(
val
:
string
)
=>
void
;
set
ExternalSelected
NodeId
?:
(
val
:
string
)
=>
void
;
/** 选中的batch节点id */
selectedBatch
NodeId
?:
string
;
externalSelected
NodeId
?:
string
;
/** 类型, edit为编辑类型 */
type
?:
"edit"
|
"default"
;
/** 设置组件数据 组件为编辑状态使用 */
...
...
@@ -52,8 +52,8 @@ const Flow = (props: IProps) => {
const
{
tasks
,
onBatchClick
,
set
SelectedBatch
NodeId
,
selectedBatch
NodeId
,
set
ExternalSelected
NodeId
,
externalSelected
NodeId
,
type
:
flowType
=
"default"
,
setTasks
,
onFlowNodeClick
,
...
...
@@ -305,13 +305,15 @@ const Flow = (props: IProps) => {
/** 是否有流节点 */
isFlowNode
:
isFlowNode
(
item
.
id
),
/** 选中状态 */
selectedStatus
:
selectedBatch
NodeId
?
selectedBatchNodeId
===
item
.
id
selectedStatus
:
externalSelected
NodeId
?
externalSelectedNodeId
.
includes
(
item
.
id
)
:
inSideBatchNodeId
===
item
.
id
,
/** tasks 数据 */
tasks
:
tasks
,
}
:
{
selectedStatus
:
inSideFlowNodeId
===
item
.
id
}),
:
{
selectedStatus
:
externalSelectedNodeId
?
externalSelectedNodeId
.
includes
(
item
.
id
)
:
inSideFlowNodeId
===
item
.
id
,}),
/** 输入输出圆点状态 */
// dotStatus: nodesInputAndOutputStatus(item.id),
...
...
@@ -343,7 +345,7 @@ const Flow = (props: IProps) => {
tasks
,
flowType
,
isFlowNode
,
selectedBatch
NodeId
,
externalSelected
NodeId
,
inSideBatchNodeId
,
inSideFlowNodeId
,
// nodesInputAndOutputStatus,
...
...
@@ -365,8 +367,8 @@ const Flow = (props: IProps) => {
},
[]);
});
return
val
.
map
((
item
:
ILine
)
=>
{
const
newSelectId
=
selectedBatch
NodeId
?
selectedBatch
NodeId
const
newSelectId
=
externalSelected
NodeId
?
externalSelected
NodeId
:
inSideBatchNodeId
;
return
{
...
item
,
...
...
@@ -387,19 +389,18 @@ const Flow = (props: IProps) => {
label
:
item
.
label
?
`(
${
item
.
label
}
)`
:
""
,
};
});
},
[
inSideBatchNodeId
,
selectedBatch
NodeId
,
selectedEdge
?.
id
,
tasks
]);
},
[
inSideBatchNodeId
,
externalSelected
NodeId
,
selectedEdge
?.
id
,
tasks
]);
/** 设置nodeId方法 */
const
setNodeIdFun
=
useCallback
(
(
id
:
string
)
=>
{
set
SelectedBatch
NodeId
?
set
SelectedBatch
NodeId
(
id
)
set
ExternalSelected
NodeId
?
set
ExternalSelected
NodeId
(
id
)
:
setInSideBatchNodeId
(
id
);
onBatchClick
&&
onBatchClick
(
id
);
setInSideFlowNodeId
(
""
);
document
.
getElementById
(
`point
${
id
}
`
)?.
scrollIntoView
(
true
);
},
[
onBatchClick
,
set
SelectedBatch
NodeId
]
[
onBatchClick
,
set
ExternalSelected
NodeId
]
);
/** flowNode点击事件 */
...
...
@@ -411,9 +412,9 @@ const Flow = (props: IProps) => {
}
else
{
setInSideFlowNodeId
(
node
.
id
);
setInSideBatchNodeId
(
""
);
setSelectedBatchNodeId
&&
setSelectedBatchNodeId
(
""
);
setExternalSelectedNodeId
&&
setExternalSelectedNodeId
(
""
);
}
document
.
getElementById
(
`point
${
node
.
id
}
`
)?.
scrollIntoView
(
true
);
}
});
if
(
onFlowNodeClick
)
{
...
...
@@ -424,8 +425,8 @@ const Flow = (props: IProps) => {
};
const
handlePaneClick
=
()
=>
{
set
SelectedBatch
NodeId
?
set
SelectedBatch
NodeId
(
""
)
set
ExternalSelected
NodeId
?
set
ExternalSelected
NodeId
(
""
)
:
setInSideBatchNodeId
(
""
);
setInSideFlowNodeId
(
""
);
onBatchClick
&&
onBatchClick
(
""
);
...
...
@@ -633,9 +634,9 @@ const Flow = (props: IProps) => {
/** 点击连线清除选中的node ID */
setInSideFlowNodeId
(
""
);
setInSideBatchNodeId
(
""
);
set
SelectedBatchNodeId
&&
setSelectedBatch
NodeId
(
""
);
set
ExternalSelectedNodeId
&&
setExternalSelected
NodeId
(
""
);
},
[
set
SelectedBatch
NodeId
]
[
set
ExternalSelected
NodeId
]
);
// const onNodesChange = (val: any)=>{
...
...
src/views/Project/components/ProjectListPopper/index.tsx
View file @
e7ef887f
...
...
@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com
* @Date: 2022-08-02 11:43:28
* @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-08-
11 18:50:31
* @LastEditTime: 2022-08-
30 19:32:05
* @FilePath: /bkunyun/src/views/Project/components/ProjectListPopper/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -14,7 +14,8 @@ import AddIcon from "@mui/icons-material/Add";
import
classNames
from
"classnames"
;
import
{
useStores
}
from
"@/store/index"
;
import
moment
from
"moment"
;
import
React
,
{
useMemo
,
useState
}
from
"react"
;
import
React
,
{
useMemo
,
useState
}
from
"react"
;
import
{
useClickAway
}
from
'ahooks'
;
import
{
toJS
}
from
"mobx"
;
import
{
observer
}
from
"mobx-react-lite"
;
...
...
@@ -38,12 +39,18 @@ const ProjectListPopper = observer((props: any) => {
const
handleProjectBox
=
(
e
:
React
.
SyntheticEvent
)
=>
{
setProjectListOpen
(
false
);
e
.
nativeEvent
.
stopImmediatePropagation
();
};
useClickAway
(
()
=>
{
setProjectListOpen
(
false
);
},
()
=>
document
.
getElementById
(
'use-click-projectList-mainBox'
),
);
return
(
<
div
className=
{
style
.
projectBox
}
onClick=
{
handleProjectBox
}
>
<
div
className=
{
style
.
mainBox
}
>
<
div
className=
{
style
.
mainBox
}
id=
"use-click-projectList-mainBox"
onClick=
{
(
e
:
any
)
=>
e
.
stopPropagation
()
}
>
<
div
className=
{
style
.
searchBox
}
>
<
IconButton
type=
"submit"
...
...
src/views/WorkFlowEdit/components/OperatorList/index.tsx
View file @
e7ef887f
...
...
@@ -130,6 +130,8 @@ const OperatorItem = (props: IOperatorItemProps) => {
draggable=
{
true
}
onDragStart=
{
onDragStart
}
onDragEnd=
{
onDragEnd
}
onDragOver=
{
(
e
)
=>
e
.
preventDefault
()
}
// dragOver( e ){ e.preventDefault };
>
<
h2
className=
{
styles
.
operatorItemTitle
}
>
{
title
}
</
h2
>
<
div
className=
{
styles
.
operatorItemText
}
>
{
description
}
</
div
>
...
...
@@ -228,7 +230,9 @@ const OperatorList = observer((props: IOperatorListProps) => {
)
:
(
<
div
className=
{
styles
.
noData
}
>
<
img
src=
{
noTemplate
}
alt=
""
className=
{
styles
.
noDataImg
}
/>
<
span
className=
{
styles
.
noDataText
}
>
没有找到相关算子
</
span
>
<
span
className=
{
styles
.
noDataText
}
>
{
keyword
?
"没有找到相关算子"
:
"暂无相关算子"
}
</
span
>
</
div
>
)
}
</
div
>
...
...
src/views/WorkFlowEdit/components/ParameterSetting/index.module.css
View file @
e7ef887f
...
...
@@ -129,6 +129,12 @@
line-height
:
20px
;
color
:
rgba
(
255
,
78
,
78
,
1
);
}
.noParameters
{
font-size
:
12px
;
text-align
:
center
;
color
:
#C2C6CC
;
line-height
:
84px
;
}
.noData
{
height
:
calc
(
100vh
-
140px
);
...
...
src/views/WorkFlowEdit/components/ParameterSetting/index.tsx
View file @
e7ef887f
import
_
from
"lodash"
;
import
{
useCallback
,
use
Effect
,
useMemo
,
useState
}
from
"react"
;
import
{
useCallback
,
use
Memo
,
useRef
,
useState
}
from
"react"
;
import
classNames
from
"classnames"
;
import
{
...
...
@@ -20,6 +20,7 @@ import MySwitch from "@/components/mui/MySwitch";
import
Tabs
from
"@/components/mui/Tabs"
;
import
{
getCustomTemplateParameterCheckResult
}
from
"../../util"
;
import
MyTooltip
from
"@/components/mui/MyTooltip"
;
import
{
useSize
}
from
"ahooks"
;
import
styles
from
"./index.module.css"
;
...
...
@@ -30,18 +31,13 @@ type IParameterSettingProps = {
};
const
ParameterSetting
=
(
props
:
IParameterSettingProps
)
=>
{
const
{
templateConfigInfo
,
setTemplateConfigInfo
,
taskId
}
=
props
;
// 算子大数组
const
[
descHeight
,
setDescHeight
]
=
useState
(
0
);
// 算子描述的高度 用来完成描述展开收起功能
const
[
isShowAllDese
,
setIsShowAllDese
]
=
useState
(
false
);
// 是否展示全部描述
const
[
fileSelectOpen
,
setFileSelectOpen
]
=
useState
(
false
);
// 选择输出路径的弹窗显示控制
const
[
fileSelectType
,
setFileSelectType
]
=
useState
<
FileSelectType
>
(
"path"
);
const
[
parameterName
,
setParameterName
]
=
useState
(
""
);
// 当前算子中的parameters中正在编辑饿parameter(参数)
const
div
=
document
.
getElementById
(
"descHeight"
);
// 算子描述的元素(不限高)用来完成描述展开收起功能
useEffect
(()
=>
{
if
(
div
)
{
setDescHeight
(
div
.
offsetHeight
);
}
},
[
div
]);
const
resizeRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
size
=
useSize
(
resizeRef
)
;
// 文件夹路线选择器弹窗
const
handleFileSelectOnClose
=
()
=>
{
...
...
@@ -525,13 +521,14 @@ const ParameterSetting = (props: IParameterSettingProps) => {
{
taskInfo
.
description
||
"-"
}
</
div
>
<
div
ref=
{
resizeRef
}
className=
{
classNames
({
[
styles
.
taskDescriptionAll
]:
isShowAllDese
,
[
styles
.
taskDescription
]:
!
isShowAllDese
,
})
}
>
{
taskInfo
.
description
||
"-"
}
{
descHeight
>
60
&&
(
{
size
&&
size
?.
height
>=
60
&&
(
<
span
className=
{
styles
.
descButton
}
onClick=
{
()
=>
setIsShowAllDese
(
!
isShowAllDese
)
}
...
...
@@ -650,10 +647,12 @@ const ParameterSetting = (props: IParameterSettingProps) => {
</
div
>
<
Tabs
tabList=
{
paramsTabList
}
defaultValue=
{
activeParamsTab
}
value=
{
activeParamsTab
}
// defaultValue=
{
activeParamsTab
}
allowNullValue=
{
true
}
tabPanelSx=
{
{
padding
:
"7px 0"
}
}
/>
{
basisParameters
.
length
===
0
&&
seniorParameters
.
length
===
0
&&
hardwareParameters
.
length
===
0
&&
(<
div
className=
{
styles
.
noParameters
}
>
暂无可设置参数
</
div
>)
}
</
div
>
)
}
{
!
taskInfo
&&
(
...
...
src/views/mui_demo/button.tsx
deleted
100644 → 0
View file @
8c1e03bf
import
{
memo
}
from
"react"
;
import
DeleteIcon
from
"@mui/icons-material/Delete"
;
import
Button
from
"@/components/mui/MyButton"
;
const
ProjectMembers
=
()
=>
{
return
(
<>
<
Button
size=
{
"large"
}
text=
{
"确定"
}
/>
<
Button
text=
{
"确定"
}
/>
<
Button
size=
{
"small"
}
text=
{
"确定"
}
/>
<
br
/>
<
br
/>
<
Button
size=
{
"large"
}
text=
{
"确定"
}
disabled
/>
<
Button
text=
{
"确定"
}
disabled
/>
<
Button
size=
{
"small"
}
text=
{
"确定"
}
disabled
/>
<
br
/>
<
br
/>
<
Button
size=
{
"large"
}
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
Button
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
Button
size=
{
"small"
}
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
br
/>
<
br
/>
<
Button
text=
{
"确定"
}
size=
{
"large"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
Button
text=
{
"确定"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
Button
text=
{
"确定"
}
size=
{
"small"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
br
/>
<
br
/>
outlined
<
br
/>
<
Button
size=
{
"large"
}
variant=
{
"outlined"
}
text=
{
"确定"
}
/>
<
Button
variant=
{
"outlined"
}
text=
{
"确定"
}
/>
<
Button
size=
{
"small"
}
variant=
{
"outlined"
}
text=
{
"确定"
}
/>
<
br
/>
<
br
/>
<
Button
size=
{
"large"
}
variant=
{
"outlined"
}
disabled
text=
{
"确定"
}
/>
<
Button
variant=
{
"outlined"
}
disabled
text=
{
"确定"
}
/>
<
Button
size=
{
"small"
}
variant=
{
"outlined"
}
disabled
text=
{
"确定"
}
/>
<
br
/>
<
br
/>
<
Button
size=
{
"large"
}
variant=
{
"outlined"
}
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
Button
variant=
{
"outlined"
}
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
Button
size=
{
"small"
}
variant=
{
"outlined"
}
color=
{
"secondary"
}
text=
{
"确定"
}
/>
<
br
/>
<
br
/>
<
Button
text=
{
"确定"
}
size=
{
"large"
}
variant=
{
"outlined"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
Button
text=
{
"确定"
}
variant=
{
"outlined"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
Button
text=
{
"确定"
}
size=
{
"small"
}
variant=
{
"outlined"
}
style=
{
{
color
:
"aqua"
,
background
:
"burlywood"
}
}
/>
<
br
/>
<
br
/>
text
<
br
/>
<
Button
size=
{
"large"
}
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
size=
{
"small"
}
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
br
/>
<
Button
size=
{
"large"
}
disabled
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
variant=
{
"text"
}
disabled
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
size=
{
"small"
}
disabled
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
br
/>
<
Button
size=
{
"large"
}
color=
{
"secondary"
}
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
variant=
{
"text"
}
color=
{
"secondary"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
Button
size=
{
"small"
}
color=
{
"secondary"
}
variant=
{
"text"
}
text=
{
"确定确定确定确定确定确定"
}
/>
<
br
/>
<
br
/>
img
<
br
/>
<
Button
text=
{
"确定确定确定确定确定确定"
}
img=
{
<
DeleteIcon
/>
}
/>
<
br
/>
<
br
/>
select
<
br
/>
<
Button
text=
{
"更多"
}
select=
{
[
{
name
:
"1111111"
},
{
name
:
"1111111"
},
{
name
:
"1111111"
},
{
name
:
"1111111"
,
color
:
"red"
},
]
}
/>
<
Button
text=
{
"更多"
}
color=
{
"secondary"
}
variant=
{
"text"
}
select=
{
[
{
name
:
"1111111"
},
{
name
:
"1111111"
},
{
name
:
"1111111"
},
{
name
:
"1111111"
,
color
:
"red"
},
]
}
/>
</>
);
};
export
default
memo
(
ProjectMembers
);
src/views/mui_demo/input.tsx
deleted
100644 → 0
View file @
8c1e03bf
import
{
memo
}
from
"react"
;
import
{
InputAdornment
}
from
"@mui/material"
;
import
InputComponent
from
"@/components/mui/MyInput"
;
const
ProjectMembers
=
()
=>
{
return
(
<>
<
InputComponent
fullWidth=
{
false
}
label=
{
"test"
}
defaultValue=
{
"sssssssss"
}
/>
<
InputComponent
fullWidth=
{
false
}
defaultValue=
{
"sssssssss"
}
/>
<
InputComponent
fullWidth=
{
false
}
label=
{
"test"
}
error=
{
true
}
helperText=
{
"你还急急急靠靠靠靠靠靠靠靠靠靠靠靠靠靠"
}
/>
<
InputComponent
fullWidth=
{
false
}
label=
{
"test"
}
size=
{
"small"
}
disabled
/>
<
InputComponent
fullWidth=
{
false
}
label=
{
"xsmall"
}
/>
<
InputComponent
fullWidth=
{
false
}
placeholder=
{
"测试机哦"
}
/>
<
InputComponent
fullWidth=
{
false
}
size=
{
"small"
}
placeholder=
{
"nishuoshenm"
}
label=
{
"asdasfasf"
}
/>
<
br
/>
<
br
/>
<
InputComponent
fullWidth=
{
true
}
/>
<
br
/>
<
br
/>
{
/* <SelectComponent
option={json}
/>
<br /><br />
<SelectComponent
option={json}
size={"large"}
/>
<br /><br />
<SelectComponent
option={json}
size={"small"}
/> */
}
<
br
/>
<
br
/>
</>
);
};
export
default
memo
(
ProjectMembers
);
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