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
b08567c0
Commit
b08567c0
authored
Aug 04, 2022
by
jiangzijing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:滚动时显示阴影、一些交互
parent
ed810906
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
198 additions
and
134 deletions
+198
-134
index.module.css
src/views/Project/ProjectData/index.module.css
+4
-3
index.module.css
...workbenchTemplate/components/AddTemplate/index.module.css
+30
-2
index.tsx
...kbench/workbenchTemplate/components/AddTemplate/index.tsx
+140
-118
templateBox.tsx
...ectWorkbench/workbenchTemplate/components/templateBox.tsx
+1
-1
index.tsx
src/views/Project/components/AddProject/index.tsx
+2
-2
index.tsx
...iews/WorkFlowEdit/components/SaveCustomTemplate/index.tsx
+21
-8
No files found.
src/views/Project/ProjectData/index.module.css
View file @
b08567c0
...
...
@@ -2,7 +2,7 @@
position
:
relative
;
}
.projectDataStickyTop
{
padding
:
28px
24px
;
padding
:
28px
24px
64px
;
position
:
relative
;
}
.projectDataTitle
{
...
...
@@ -56,8 +56,9 @@
.projectDataStickyBox
{
height
:
64px
;
position
:
sticky
;
bottom
:
-1px
;
width
:
calc
(
100vw
-
220px
);
position
:
fixed
;
bottom
:
0px
;
border
:
1px
solid
#ebedf0
;
z-index
:
100
;
background-color
:
#fff
;
...
...
src/views/Project/ProjectWorkbench/workbenchTemplate/components/AddTemplate/index.module.css
View file @
b08567c0
...
...
@@ -2,16 +2,31 @@
flex
:
1
;
background-color
:
#fff
;
border-radius
:
16px
0
0
0
;
padding
:
24px
32
px
;
padding
-top
:
24
px
;
box-sizing
:
border-box
;
}
.headerBox
{
padding
:
0
32px
;
}
.headerBoxShadow
{
box-shadow
:
0
5px
4px
-4px
rgb
(
0
,
0
,
0
,
.15
);
}
.templateBox
{
padding
:
20px
32px
0
;
height
:
calc
(
100vh
-
188px
);
overflow
:
auto
;
}
.templateList
{
/* height: 2000px; */
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
}
.templateLi
{
height
:
146px
;
box-sizing
:
border-box
;
...
...
@@ -24,12 +39,15 @@
margin-right
:
16px
;
margin-bottom
:
16px
;
}
.templateLiCustom
{
height
:
194px
;
}
.templateLiHidden
{
visibility
:
hidden
;
}
.addCustomTemplate
{
height
:
194px
;
box-sizing
:
border-box
;
...
...
@@ -38,23 +56,28 @@
align-items
:
center
;
flex-direction
:
column
;
}
.addCustomTemplateText
{
margin-top
:
12px
;
line-height
:
22px
;
font-size
:
14px
;
color
:
rgba
(
138
,
144
,
153
,
1
);
}
.templateLi
:hover
{
box-shadow
:
6px
8px
22px
0px
rgba
(
0
,
24
,
57
,
0.08
);
}
.templateLi
:nth-child
(
4n
)
{
margin-right
:
0
;
}
.templateLiTop
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.templateTitle
{
font-size
:
14px
;
font-weight
:
600
;
...
...
@@ -64,14 +87,17 @@
text-overflow
:
ellipsis
;
line-height
:
22px
;
}
.templateLiInfo
{
margin-bottom
:
8px
;
}
.templateLiInfoText
{
line-height
:
20px
;
font-size
:
12px
;
color
:
rgba
(
19
,
112
,
255
,
1
);
}
.templateLiDesc
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
...
...
@@ -82,8 +108,9 @@
font-size
:
12px
;
color
:
rgba
(
138
,
144
,
153
,
1
);
}
.templateLiEditBox
{
display
:
flex
;
justify-content
:
flex-end
;
margin-top
:
16px
;
}
}
\ No newline at end of file
src/views/Project/ProjectWorkbench/workbenchTemplate/components/AddTemplate/index.tsx
View file @
b08567c0
...
...
@@ -50,6 +50,9 @@ const AddTemplate = (props: IAddTemplateProps) => {
const
[
templateType
,
setTemplateType
]
=
useState
(
"public"
);
// 滚轮是否到顶,判断是否显示阴影
const
[
isTop
,
setIsTop
]
=
useState
(
true
)
const
handleRadio
=
(
value
:
string
)
=>
{
setTemplateType
(
value
);
};
...
...
@@ -161,153 +164,172 @@ const AddTemplate = (props: IAddTemplateProps) => {
return
arr
;
},
[
addTemplateList
,
templateType
]);
// 滚动滚轮时监听是否到顶
const
onscroll
=
(
e
:
any
)
=>
{
if
(
e
.
target
.
scrollTop
<=
0
)
{
setIsTop
(
true
)
}
else
{
setIsTop
(
false
)
}
}
return
(
<
FullScreenDrawer
handleClose=
{
setShowAddTemplate
}
>
<
div
className=
{
style
.
content
}
>
<
Typography
sx=
{
{
fontSize
:
"18px"
,
fontWeight
:
"600"
,
color
:
"#1E2633"
}
}
>
添加工作流模版
</
Typography
>
<
Box
sx=
{
{
display
:
"flex"
,
justifyContent
:
"space-between"
,
alignItems
:
"center"
,
marginBottom
:
"20px"
,
}
}
<
div
className=
{
classNames
({
[
style
.
headerBox
]:
true
,
[
style
.
headerBoxShadow
]:
!
isTop
,
})
}
>
<
OutlinedInput
value=
{
title
}
onChange=
{
(
e
:
any
)
=>
{
setTitle
(
e
.
target
.
value
);
}
}
placeholder=
"输入关键词搜索"
size=
"small"
sx=
{
{
width
:
340
,
height
:
32
,
marginTop
:
"20px"
}
}
endAdornment=
{
<
SearchIcon
style=
{
{
color
:
"#8A9099"
}
}
/>
}
/>
<
Typography
sx=
{
{
fontSize
:
"18px"
,
fontWeight
:
"600"
,
color
:
"#1E2633"
}
}
>
添加工作流模版
</
Typography
>
<
Box
sx=
{
{
display
:
"flex"
,
justifyContent
:
"
flex-end
"
,
justifyContent
:
"
space-between
"
,
alignItems
:
"center"
,
paddingBottom
:
"20px"
,
paddingTop
:
"20px"
,
}
}
>
<
RadioGroupOfButtonStyle
value=
{
templateType
}
radioOptions=
{
radioOptions
}
handleRadio=
{
handleRadio
}
></
RadioGroupOfButtonStyle
>
<
MyButton
onClick=
{
handleAddTemplate
}
size=
{
"small"
}
style=
{
{
marginLeft
:
"12px"
,
<
OutlinedInput
value=
{
title
}
onChange=
{
(
e
:
any
)
=>
{
setTitle
(
e
.
target
.
value
);
}
}
text=
{
"添加模版"
+
(
selectTemplateData
.
length
===
0
?
""
:
`(${selectTemplateData.length})`
)
}
placeholder=
"输入关键词搜索"
size=
"small"
sx=
{
{
width
:
340
,
height
:
32
}
}
endAdornment=
{
<
SearchIcon
style=
{
{
color
:
"#8A9099"
}
}
/>
}
/>
</
Box
>
</
Box
>
{
templateType
===
"public"
&&
addTemplateList
.
length
===
0
&&
(
<
Box
sx=
{
{
display
:
"flex"
,
alignItems
:
"center"
,
flexDirection
:
"column"
,
minHeight
:
"calc(100vh - 376px)"
,
justifyContent
:
"center"
,
}
}
>
<
img
alt=
""
src=
{
noData
}
/>
<
Typography
sx=
{
{
fontSize
:
"12px"
,
fontWeight
:
"400"
,
color
:
"#8A9099"
}
}
<
Box
sx=
{
{
display
:
"flex"
,
justifyContent
:
"flex-end"
,
alignItems
:
"center"
,
}
}
>
暂无相关模版
</
Typography
>
<
RadioGroupOfButtonStyle
value=
{
templateType
}
radioOptions=
{
radioOptions
}
handleRadio=
{
handleRadio
}
></
RadioGroupOfButtonStyle
>
<
MyButton
onClick=
{
handleAddTemplate
}
size=
{
"small"
}
style=
{
{
marginLeft
:
"12px"
,
}
}
text=
{
"添加模版"
+
(
selectTemplateData
.
length
===
0
?
""
:
`(${selectTemplateData.length})`
)
}
/>
</
Box
>
</
Box
>
)
}
<
div
className=
{
style
.
templateList
}
>
{
templateType
!==
"public"
&&
(
<
div
className=
{
classNames
({
[
style
.
templateLi
]:
true
,
[
style
.
addCustomTemplate
]:
true
,
})
}
onClick=
{
handleAddCustomTemplate
}
</
div
>
<
div
className=
{
style
.
templateBox
}
onScroll=
{
onscroll
}
>
{
templateType
===
"public"
&&
addTemplateList
.
length
===
0
&&
(
<
Box
sx=
{
{
display
:
"flex"
,
alignItems
:
"center"
,
flexDirection
:
"column"
,
minHeight
:
"calc(100vh - 376px)"
,
justifyContent
:
"center"
,
}
}
>
<
AddIcon
/>
<
span
className=
{
style
.
addCustomTemplateText
}
>
创建自定义模板
</
span
>
</
div
>
<
img
alt=
""
src=
{
noData
}
/>
<
Typography
sx=
{
{
fontSize
:
"12px"
,
fontWeight
:
"400"
,
color
:
"#8A9099"
}
}
>
暂无相关模版
</
Typography
>
</
Box
>
)
}
{
addTemplateList
.
map
((
item
:
any
,
index
)
=>
{
return
(
<
div
className=
{
style
.
templateList
}
>
{
templateType
!==
"public"
&&
(
<
div
className=
{
classNames
({
[
style
.
templateLi
]:
true
,
[
style
.
templateLiCustom
]:
templateType
!==
"public"
,
[
style
.
addCustomTemplate
]:
true
,
})
}
key=
{
index
}
onClick=
{
()
=>
{
handleSelectTemplate
(
item
.
id
);
}
}
onClick=
{
handleAddCustomTemplate
}
>
<
div
className=
{
style
.
templateLiTop
}
>
<
span
className=
{
style
.
templateTitle
}
>
{
item
.
title
}
</
span
>
<
Checkbox
size=
"small"
sx=
{
{
padding
:
"0px"
}
}
checked=
{
selectTemplateData
.
includes
(
item
.
id
)
}
/>
</
div
>
<
div
className=
{
style
.
templateLiInfo
}
>
<
span
className=
{
style
.
templateLiInfoText
}
style=
{
{
marginRight
:
"24px"
}
}
>
版本:
{
item
.
version
}
</
span
>
<
span
className=
{
style
.
templateLiInfoText
}
>
更新时间:
{
item
.
updatedTime
}
</
span
>
</
div
>
<
div
className=
{
style
.
templateLiDesc
}
>
{
item
.
description
}
</
div
>
{
templateType
!==
"public"
&&
(
<
div
className=
{
style
.
templateLiEditBox
}
>
<
MyButton
onClick=
{
()
=>
handleEditTemplate
(
item
)
}
size=
{
"small"
}
style=
{
{
height
:
"32px"
,
}
}
color=
"inherit"
text=
"编辑模板"
/>
</
div
>
)
}
<
AddIcon
/>
<
span
className=
{
style
.
addCustomTemplateText
}
>
创建自定义模板
</
span
>
</
div
>
);
})
}
{
hiddenBoxArr
.
length
!==
4
&&
hiddenBoxArr
.
map
((
item
,
index
)
=>
{
)
}
{
addTemplateList
.
map
((
item
:
any
,
index
)
=>
{
return
(
<
div
key=
{
`-${index}`
}
className=
{
classNames
({
[
style
.
templateLi
]:
true
,
[
style
.
templateLi
Hidden
]:
true
,
[
style
.
templateLi
Custom
]:
templateType
!==
"public"
,
})
}
/>
key=
{
index
}
onClick=
{
()
=>
{
handleSelectTemplate
(
item
.
id
);
}
}
>
<
div
className=
{
style
.
templateLiTop
}
>
<
span
className=
{
style
.
templateTitle
}
>
{
item
.
title
}
</
span
>
<
Checkbox
size=
"small"
sx=
{
{
padding
:
"0px"
}
}
checked=
{
selectTemplateData
.
includes
(
item
.
id
)
}
/>
</
div
>
<
div
className=
{
style
.
templateLiInfo
}
>
<
span
className=
{
style
.
templateLiInfoText
}
style=
{
{
marginRight
:
"24px"
}
}
>
版本:
{
item
.
version
}
</
span
>
<
span
className=
{
style
.
templateLiInfoText
}
>
更新时间:
{
item
.
updatedTime
}
</
span
>
</
div
>
<
div
className=
{
style
.
templateLiDesc
}
>
{
item
.
description
}
</
div
>
{
templateType
!==
"public"
&&
(
<
div
className=
{
style
.
templateLiEditBox
}
>
<
MyButton
onClick=
{
()
=>
handleEditTemplate
(
item
)
}
size=
{
"small"
}
style=
{
{
height
:
"32px"
,
}
}
color=
"inherit"
text=
"编辑模板"
/>
</
div
>
)
}
</
div
>
);
})
}
{
hiddenBoxArr
.
length
!==
4
&&
hiddenBoxArr
.
map
((
item
,
index
)
=>
{
return
(
<
div
key=
{
`-${index}`
}
className=
{
classNames
({
[
style
.
templateLi
]:
true
,
[
style
.
templateLiHidden
]:
true
,
})
}
/>
);
})
}
</
div
>
</
div
>
</
div
>
{
customTemplateInfo
?.
show
?
(
...
...
src/views/Project/ProjectWorkbench/workbenchTemplate/components/templateBox.tsx
View file @
b08567c0
...
...
@@ -81,7 +81,7 @@ const TemplateBox = (props: any) => {
</
Typography
>
</
Box
>
<
Typography
className=
{
styles
.
templateDescText
}
>
{
info
.
description
}
{
info
.
description
?
info
.
description
:
"此模板暂无描述。"
}
</
Typography
>
</
Box
>
<
Box
...
...
src/views/Project/components/AddProject/index.tsx
View file @
b08567c0
...
...
@@ -214,7 +214,7 @@ const AddProject = (props: IAddProjectProps) => {
id=
"desc"
label=
"项目描述"
multiline
rows=
{
5
}
rows=
{
4
}
placeholder=
"请输入项目描述"
onChange=
{
handleDescChange
}
helperText=
{
descCheck
.
help
}
...
...
@@ -224,7 +224,7 @@ const AddProject = (props: IAddProjectProps) => {
position
:
"absolute"
,
bottom
:
"7px"
,
right
:
"12px"
,
color
:
desc
.
length
>=
1
00
?
"#d32f2f"
:
"#C2C6CC"
color
:
desc
.
length
>=
3
00
?
"#d32f2f"
:
"#C2C6CC"
}
}
>
{
desc
.
length
}
/300
...
...
src/views/WorkFlowEdit/components/SaveCustomTemplate/index.tsx
View file @
b08567c0
...
...
@@ -240,14 +240,27 @@ const SaveCustomTemplate = (props: IProps) => {
helperText=
{
versionHelper
.
helperText
}
style=
{
{
marginBottom
:
"20px"
}
}
></
MyInput
>
<
MyInput
value=
{
description
}
label=
"模板描述"
placeholder=
"模板描述"
onChange=
{
handleDescriptionChange
}
multiline
rows=
{
4
}
></
MyInput
>
<
div
style=
{
{
position
:
"relative"
}
}
>
<
MyInput
value=
{
description
}
id=
"desc"
label=
"模板描述"
placeholder=
"模板描述"
onChange=
{
handleDescriptionChange
}
multiline
rows=
{
4
}
/>
<
span
style=
{
{
position
:
"absolute"
,
bottom
:
"7px"
,
right
:
"12px"
,
color
:
description
.
length
>=
300
?
"#d32f2f"
:
"#C2C6CC"
}
}
>
{
description
.
length
}
/300
</
span
>
</
div
>
</
div
>
</
MyDialog
>
);
...
...
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