提交 4cbed26f 编写于 作者: C chenjianxing

fix 节点拖拽

上级 92713050
......@@ -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);
}
}
}
......
......@@ -124,6 +124,8 @@ export default {
param.nodeIds = nodeIds;
this.$post("/case/node/drag", param, () => {
this.refreshTable();
}, (error) => {
this.refreshNode();
});
},
refreshTable() {
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册