Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
4cbed26f
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 大约 3 年
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4cbed26f
编写于
5月 19, 2020
作者:
C
chenjianxing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix 节点拖拽
上级
92713050
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
12 deletion
+17
-12
backend/src/main/java/io/metersphere/track/service/TestCaseNodeService.java
...ava/io/metersphere/track/service/TestCaseNodeService.java
+11
-11
frontend/src/business/components/track/common/NodeTree.vue
frontend/src/business/components/track/common/NodeTree.vue
+2
-0
frontend/src/common/js/ajax.js
frontend/src/common/js/ajax.js
+4
-1
未找到文件。
backend/src/main/java/io/metersphere/track/service/TestCaseNodeService.java
浏览文件 @
4cbed26f
...
...
@@ -8,6 +8,7 @@ import io.metersphere.base.mapper.TestPlanMapper;
import
io.metersphere.base.mapper.TestPlanTestCaseMapper
;
import
io.metersphere.base.mapper.ext.ExtTestCaseMapper
;
import
io.metersphere.commons.constants.TestCaseConstants
;
import
io.metersphere.commons.exception.MSException
;
import
io.metersphere.commons.utils.BeanUtils
;
import
io.metersphere.i18n.Translator
;
import
io.metersphere.track.dto.TestCaseDTO
;
...
...
@@ -125,13 +126,7 @@ public class TestCaseNodeService {
testCases
.
forEach
(
testCase
->
{
StringBuilder
path
=
new
StringBuilder
(
testCase
.
getNodePath
());
List
<
String
>
pathLists
=
Arrays
.
asList
(
path
.
toString
().
split
(
"/"
));
if
(
request
.
getLevel
()
<=
pathLists
.
size
())
{
pathLists
.
set
(
request
.
getLevel
(),
request
.
getName
());
}
else
{
pathLists
.
add
(
request
.
getName
());
}
pathLists
.
set
(
request
.
getLevel
(),
request
.
getName
());
path
.
delete
(
0
,
path
.
length
());
for
(
int
i
=
1
;
i
<
pathLists
.
size
();
i
++)
{
path
=
path
.
append
(
"/"
).
append
(
pathLists
.
get
(
i
));
...
...
@@ -379,7 +374,7 @@ public class TestCaseNodeService {
public
void
dragNode
(
DragNodeRequest
request
)
{
editNode
(
request
);
//
editNode(request);
List
<
String
>
nodeIds
=
request
.
getNodeIds
();
...
...
@@ -389,7 +384,7 @@ public class TestCaseNodeService {
List
<
TestCaseNode
>
updateNodes
=
new
ArrayList
<>();
buildUpdateTestCase
(
nodeTree
,
testCases
,
updateNodes
,
"/"
,
1
);
buildUpdateTestCase
(
nodeTree
,
testCases
,
updateNodes
,
"/"
,
null
,
1
);
updateNodes
=
updateNodes
.
stream
()
.
filter
(
item
->
nodeIds
.
contains
(
item
.
getId
()))
...
...
@@ -425,13 +420,18 @@ public class TestCaseNodeService {
}
private
void
buildUpdateTestCase
(
TestCaseNodeDTO
rootNode
,
List
<
TestCaseDTO
>
testCases
,
List
<
TestCaseNode
>
updateNodes
,
String
rootPath
,
int
level
)
{
List
<
TestCaseNode
>
updateNodes
,
String
rootPath
,
String
pId
,
int
level
)
{
rootPath
=
rootPath
+
rootNode
.
getName
();
if
(
level
>
5
)
{
MSException
.
throwException
(
Translator
.
get
(
"node_deep_limit"
));
}
TestCaseNode
testCaseNode
=
new
TestCaseNode
();
testCaseNode
.
setId
(
rootNode
.
getId
());
testCaseNode
.
setLevel
(
level
);
testCaseNode
.
setParentId
(
pId
);
updateNodes
.
add
(
testCaseNode
);
for
(
TestCaseDTO
item
:
testCases
)
{
...
...
@@ -443,7 +443,7 @@ public class TestCaseNodeService {
List
<
TestCaseNodeDTO
>
children
=
rootNode
.
getChildren
();
if
(
children
!=
null
&&
children
.
size
()
>
0
){
for
(
int
i
=
0
;
i
<
children
.
size
();
i
++)
{
buildUpdateTestCase
(
children
.
get
(
i
),
testCases
,
updateNodes
,
rootPath
+
'/'
,
level
+
1
);
buildUpdateTestCase
(
children
.
get
(
i
),
testCases
,
updateNodes
,
rootPath
+
'/'
,
rootNode
.
getId
(),
level
+
1
);
}
}
}
...
...
frontend/src/business/components/track/common/NodeTree.vue
浏览文件 @
4cbed26f
...
...
@@ -124,6 +124,8 @@ export default {
param
.
nodeIds
=
nodeIds
;
this
.
$post
(
"
/case/node/drag
"
,
param
,
()
=>
{
this
.
refreshTable
();
},
(
error
)
=>
{
this
.
refreshNode
();
});
},
refreshTable
()
{
...
...
frontend/src/common/js/ajax.js
浏览文件 @
4cbed26f
...
...
@@ -73,7 +73,7 @@ export default {
}
};
Vue
.
prototype
.
$post
=
function
(
url
,
data
,
success
)
{
Vue
.
prototype
.
$post
=
function
(
url
,
data
,
success
,
failure
)
{
let
result
=
{
loading
:
true
};
if
(
!
success
)
{
return
axios
.
post
(
url
,
data
);
...
...
@@ -82,6 +82,9 @@ export default {
then
(
success
,
response
,
result
);
}).
catch
(
error
=>
{
exception
(
error
,
result
);
if
(
failure
)
{
then
(
failure
,
error
,
result
);
}
});
return
result
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录