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
bb4203a8
Commit
bb4203a8
authored
Jul 13, 2022
by
chenshouchao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 自定义模板版本校验完成,代码注释完善
parent
a624bb6f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
92 additions
and
45 deletions
+92
-45
index.tsx
src/views/WorkFlowEdit/components/ParameterSetting/index.tsx
+7
-12
index.tsx
src/views/WorkFlowEdit/index.tsx
+85
-33
No files found.
src/views/WorkFlowEdit/components/ParameterSetting/index.tsx
View file @
bb4203a8
...
...
@@ -27,7 +27,7 @@ type IParameterSettingProps = {
taskId
:
string
;
setTemplateConfigInfo
:
any
;
};
// 页面调试数据 暂不删除
// const templateConfigInfoMock = [
// {
// id: "id",
...
...
@@ -233,24 +233,19 @@ type IParameterSettingProps = {
// ];
// const taskId = "id";
const
ParameterSetting
=
(
props
:
IParameterSettingProps
)
=>
{
const
{
templateConfigInfo
,
setTemplateConfigInfo
,
taskId
}
=
props
;
const
{
templateConfigInfo
,
setTemplateConfigInfo
,
taskId
}
=
props
;
// 算子大数组
// 页面调试数据 暂不删除
// const [templateConfigInfo, setTemplateConfigInfo] = useState<ITask[]>(
// templateConfigInfoMock as ITask[]
// );
const
[
descHeight
,
setDescHeight
]
=
useState
(
0
);
const
[
isShowAllDese
,
setIsShowAllDese
]
=
useState
(
false
);
const
[
descHeight
,
setDescHeight
]
=
useState
(
0
);
// 算子描述的高度
const
[
isShowAllDese
,
setIsShowAllDese
]
=
useState
(
false
);
// 是否展示全部描述
const
[
fileSelectOpen
,
setFileSelectOpen
]
=
useState
(
false
);
// 选择输出路径的弹窗显示控制
const
[
parameterName
,
setParameterName
]
=
useState
(
""
);
// 当前算子中的parameters中正在编辑饿parameter(参数)
// const [fileSelectObject, setFileSelectObject] = useState({
// taskId: "",
// parameterName: "",
// });
const
[
parameterName
,
setParameterName
]
=
useState
(
""
);
const
div
=
document
.
getElementById
(
"descHeight"
);
const
div
=
document
.
getElementById
(
"descHeight"
);
// 算子描述的元素(不限高)
useEffect
(()
=>
{
if
(
div
)
{
setDescHeight
(
div
.
offsetHeight
);
...
...
src/views/WorkFlowEdit/index.tsx
View file @
bb4203a8
...
...
@@ -52,38 +52,55 @@ const WorkFlowEdit = observer((props: IProps) => {
const
{
onBack
,
id
}
=
props
;
const
{
currentProjectStore
}
=
useStores
();
const
Message
=
useMessage
();
const
[
templateConfigInfo
,
setTemplateConfigInfo
]
=
useState
<
ITask
[]
>
([]);
const
[
templateConfigInfo
,
setTemplateConfigInfo
]
=
useState
<
ITask
[]
>
([]);
// 算子大数组
// const projectId = toJS(currentProjectStore.currentProjectInfo.id);
const
productId
=
toJS
(
currentProjectStore
.
currentProductInfo
.
id
);
const
[
saveFormDialog
,
setSaveFormDialog
]
=
useState
(
false
);
const
[
showFlow
,
setShowFlow
]
=
useState
(
true
);
const
[
title
,
setTitle
]
=
useState
(
""
);
const
[
version
,
setVersion
]
=
useState
(
"1.0.0"
);
const
[
description
,
setDescription
]
=
useState
(
""
);
const
[
saveFormDialog
,
setSaveFormDialog
]
=
useState
(
false
);
// 保存弹窗显示与否控制
const
[
showFlow
,
setShowFlow
]
=
useState
(
true
);
// 是否显示右侧流程图
const
[
title
,
setTitle
]
=
useState
(
""
);
// 自定义模板名称
const
[
version
,
setVersion
]
=
useState
(
"1.0.0"
);
// 自定义模板版本
const
[
oldversion
,
setOldersion
]
=
useState
(
""
);
// 编辑是自定义模板的老版本
const
[
description
,
setDescription
]
=
useState
(
""
);
// 自定义模板描述
const
[
titleHelper
,
setTitleHelper
]
=
useState
({
// 自定义模板名称错误提示
error
:
false
,
helperText
:
""
,
});
const
[
versionHelper
,
setVersionHelper
]
=
useState
({
// 自定义模板版本错误提示
error
:
false
,
helperText
:
""
,
});
const
[
leftContentType
,
setLeftContentType
]
=
useState
(
"list"
);
const
[
leftContentType
,
setLeftContentType
]
=
useState
(
"list"
);
// 页面左侧展示的是算子列表还是参数设置
const
[
popperTitle
,
setPopperTitle
]
=
useState
(
// 确认弹窗标题
"返回后,当前页面已填写内容将不保存,确认返回吗?"
);
// 编辑时获取模板详情的方法
const
{
run
:
fetchTemplateConfigInfoRun
}
=
useMyRequest
(
fetchTemplateConfigInfo
,
{
onSuccess
:
(
res
:
any
)
=>
{
console
.
log
(
res
);
if
(
res
.
data
)
{
setTemplateConfigInfo
(
res
.
data
.
tasks
);
setTitle
(
res
.
data
.
title
);
setOldersion
(
res
.
data
.
version
);
let
version
=
res
.
data
.
version
;
let
arr
=
version
.
split
(
"."
);
arr
[
2
]
=
String
(
Number
(
arr
[
2
])
+
1
);
if
(
arr
.
length
===
3
)
{
if
(
Number
(
arr
[
2
])
<
100
)
{
arr
[
2
]
=
String
(
Number
(
arr
[
2
])
+
1
);
}
else
{
arr
[
2
]
=
"0"
;
if
(
Number
(
arr
[
1
])
<
100
)
{
arr
[
1
]
=
String
(
Number
(
arr
[
1
])
+
1
);
}
else
{
arr
[
1
]
=
"0"
;
arr
[
0
]
=
String
(
Number
(
arr
[
0
])
+
1
);
}
}
}
setVersion
(
arr
.
join
(
"."
));
setDescription
(
res
.
data
.
description
);
}
...
...
@@ -91,12 +108,14 @@ const WorkFlowEdit = observer((props: IProps) => {
}
);
// id存在时获取模板详情
useEffect
(()
=>
{
if
(
id
)
{
fetchTemplateConfigInfoRun
({
id
});
}
},
[
id
,
fetchTemplateConfigInfoRun
]);
// 校验模板名称
const
checkTitle
=
(
title
:
string
)
=>
{
if
(
!
title
)
{
setTitleHelper
({
...
...
@@ -120,15 +139,51 @@ const WorkFlowEdit = observer((props: IProps) => {
});
}
};
// 校验新版本号是否大于旧版本号
const
checkNewOldVersion
=
useCallback
(()
=>
{
let
versionArr
=
version
.
split
(
"."
);
let
oldversionArr
=
oldversion
.
split
(
"."
);
versionArr
.
map
((
item
)
=>
Number
(
item
));
oldversionArr
.
map
((
item
)
=>
Number
(
item
));
if
(
versionArr
[
0
]
<
oldversionArr
[
0
])
{
setVersionHelper
({
error
:
true
,
helperText
:
"新版本号必须大于老版本号,且必须为X.Y.Z格式,XYZ必须为0~99的正整数"
,
});
return
false
;
}
else
if
(
versionArr
[
0
]
===
oldversionArr
[
0
])
{
if
(
versionArr
[
1
]
<
oldversionArr
[
1
])
{
setVersionHelper
({
error
:
true
,
helperText
:
"新版本号必须大于老版本号,且必须为X.Y.Z格式,XYZ必须为0~99的正整数"
,
});
return
false
;
}
else
if
(
versionArr
[
1
]
===
oldversionArr
[
1
])
{
if
(
versionArr
[
2
]
<
oldversionArr
[
2
])
{
setVersionHelper
({
error
:
true
,
helperText
:
"新版本号必须大于老版本号,且必须为X.Y.Z格式,XYZ必须为0~99的正整数"
,
});
return
false
;
}
}
}
return
true
;
},
[
version
,
oldversion
]);
// 校验版本号格式
const
checkVersion
=
(
version
:
string
)
=>
{
const
versionArr
=
version
.
split
(
"."
);
if
(
oldversion
)
{
if
(
!
checkNewOldVersion
())
{
return
;
}
}
const
reg
=
new
RegExp
(
"^([0-9]|[0-9]
\\
d)$"
);
// var a=101;
// if(!reg.test(a)) {
// alert("请输入1-100的整数!")
// }
console
.
log
(
versionArr
);
if
(
versionArr
.
length
!==
3
)
{
setVersionHelper
({
error
:
true
,
...
...
@@ -136,8 +191,6 @@ const WorkFlowEdit = observer((props: IProps) => {
});
}
else
if
(
versionArr
.
every
((
item
)
=>
{
console
.
log
(
item
);
console
.
log
(
reg
.
test
(
item
));
return
reg
.
test
(
item
);
})
)
{
...
...
@@ -152,27 +205,31 @@ const WorkFlowEdit = observer((props: IProps) => {
});
}
};
// 自定义模板名称
const
handleTitleChange
=
(
e
:
any
)
=>
{
console
.
log
(
e
);
const
title
=
e
.
target
.
value
;
console
.
log
(
title
);
setTitle
(
title
);
checkTitle
(
title
);
// 格式不正确,必须在15字符以内,仅限大小写字母、数字、中文
};
// 自定义模板版本
const
handleVersionChange
=
(
e
:
any
)
=>
{
let
version
=
e
.
target
.
value
;
setVersion
(
version
);
checkVersion
(
version
);
console
.
log
(
e
);
// version
};
// 自定义模板描述
const
handleDescriptionChange
=
(
e
:
any
)
=>
{
let
description
=
e
.
target
.
value
;
if
(
description
.
length
<
301
)
{
setDescription
(
description
);
}
};
// 自定义模板保存方法
const
{
run
:
saveUserSpecRun
}
=
useMyRequest
(
saveUserSpec
,
{
onSuccess
:
(
res
)
=>
{
Message
.
success
(
"保存成功!"
);
...
...
@@ -181,25 +238,28 @@ const WorkFlowEdit = observer((props: IProps) => {
},
});
// 确认弹窗相对位置
const
[
anchorEl
,
setAnchorEl
]
=
useState
<
any
>
(
null
);
// 隐藏确认弹窗, 确认弹窗点击取消
const
handleCancel
=
()
=>
{
setAnchorEl
(
null
);
};
// 显示确认弹窗
const
handleShowPopper
=
(
e
:
any
,
title
:
string
)
=>
{
setPopperTitle
(
title
);
setAnchorEl
(
anchorEl
?
null
:
e
.
currentTarget
);
};
// 确认弹窗确认回调
const
handleConfirm
=
()
=>
{
if
(
popperTitle
===
"返回后,当前页面已填写内容将不保存,确认返回吗?"
)
{
onBack
&&
onBack
();
}
};
// 点击保存 先校验工作流 再显示自定义模板基础信息弹窗
const
handlePreserve
=
()
=>
{
console
.
log
(
"提交"
);
console
.
log
(
templateConfigInfo
);
// 校验
if
(
templateConfigInfo
.
length
===
0
)
{
Message
.
error
(
"工作流不能为空!"
);
...
...
@@ -213,7 +273,6 @@ const WorkFlowEdit = observer((props: IProps) => {
parameter
.
error
=
checkResult
.
error
;
parameter
.
helperText
=
checkResult
.
helperText
;
if
(
checkResult
.
error
)
{
console
.
log
(
parameter
);
check
=
false
;
}
});
...
...
@@ -222,25 +281,18 @@ const WorkFlowEdit = observer((props: IProps) => {
if
(
!
check
)
{
Message
.
error
(
"工作流校验未通过,请检查!"
);
}
else
{
console
.
log
(
"弹表单窗"
);
setShowFlow
(
false
);
setSaveFormDialog
(
true
);
// saveUserSpecRun({
// title: "自定义模板标题",
// version: "1.0.0",
// description: "这里是描述",
// tasks: templateConfigInfoClone,
// // projectId,
// productId,
// });
}
};
// 关闭表单弹窗
const
handleCloseDialog
=
()
=>
{
setShowFlow
(
true
);
setSaveFormDialog
(
false
);
};
// 表单弹窗确定,新建/编辑自定义模板保存
const
handleOncofirm
=
()
=>
{
checkTitle
(
title
);
setShowFlow
(
true
);
...
...
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