Merge branch 'v1.7' of https://github.com/metersphere/metersphere into v1.7
This commit is contained in:
commit
b136576c40
|
@ -33,4 +33,6 @@ public class ApiBatchRequest extends ApiDefinitionWithBLOBs {
|
|||
|
||||
private List<String> unSelectIds;
|
||||
|
||||
private String moduleId;
|
||||
|
||||
}
|
||||
|
|
|
@ -42,10 +42,10 @@ public class MsIfController extends MsTestElement {
|
|||
private IfController ifController() {
|
||||
IfController ifController = new IfController();
|
||||
ifController.setEnabled(true);
|
||||
ifController.setName(this.getLabelName());
|
||||
ifController.setCondition(this.getCondition());
|
||||
ifController.setName(StringUtils.isEmpty(this.getName()) ? "IfController" : this.getName());
|
||||
ifController.setProperty(TestElement.TEST_CLASS, IfController.class.getName());
|
||||
ifController.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("IfControllerPanel"));
|
||||
ifController.setCondition(this.getCondition());
|
||||
ifController.setEvaluateAll(false);
|
||||
ifController.setUseExpression(true);
|
||||
return ifController;
|
||||
|
|
|
@ -60,6 +60,18 @@ public class TestResult {
|
|||
item.getSubRequestResults().forEach(subItem -> {
|
||||
subItem.setName(item.getName());
|
||||
});
|
||||
} else {
|
||||
if (requestResultMap.containsKey(result.getName())) {
|
||||
requestResultMap.get(result.getName()).add(item);
|
||||
} else {
|
||||
List<RequestResult> requestResults = new LinkedList<>();
|
||||
requestResults.add(item);
|
||||
requestResultMap.put(result.getName(), requestResults);
|
||||
}
|
||||
item.getSubRequestResults().forEach(subItem -> {
|
||||
subItem.setName(item.getName());
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<template>
|
||||
<div>
|
||||
<ms-container v-if="renderComponent">
|
||||
<ms-aside-container>
|
||||
<ms-api-module
|
||||
|
@ -9,6 +10,7 @@
|
|||
@debug="debug"
|
||||
@saveAsEdit="editApi"
|
||||
@setModuleOptions="setModuleOptions"
|
||||
@setNodeTree="setNodeTree"
|
||||
@enableTrash="enableTrash"
|
||||
:type="'edit'"
|
||||
ref="nodeTree"/>
|
||||
|
@ -25,6 +27,8 @@
|
|||
<!-- 列表集合 -->
|
||||
<ms-api-list
|
||||
v-if="item.type === 'list' && isApiListEnable"
|
||||
:module-tree="nodeTree"
|
||||
:module-options="moduleOptions"
|
||||
:current-protocol="currentProtocol"
|
||||
:visible="visible"
|
||||
:currentRow="currentRow"
|
||||
|
@ -102,8 +106,12 @@
|
|||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
|
||||
</ms-main-container>
|
||||
</ms-container>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import MsApiList from './components/list/ApiList';
|
||||
|
@ -177,7 +185,7 @@
|
|||
currentModule: null,
|
||||
selectNodeIds: [],
|
||||
currentApi: {},
|
||||
moduleOptions: {},
|
||||
moduleOptions: [],
|
||||
trashEnable: false,
|
||||
apiTabs: [{
|
||||
title: this.$t('api_test.definition.api_title'),
|
||||
|
@ -187,7 +195,8 @@
|
|||
}],
|
||||
isApiListEnable: true,
|
||||
syncTabs: [],
|
||||
projectId: ""
|
||||
projectId: "",
|
||||
nodeTree: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -215,6 +224,7 @@
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
changeRedirectParam(redirectIDParam) {
|
||||
this.redirectID = redirectIDParam;
|
||||
},
|
||||
|
@ -394,6 +404,10 @@
|
|||
setModuleOptions(data) {
|
||||
this.moduleOptions = data;
|
||||
},
|
||||
setNodeTree(data) {
|
||||
this.nodeTree = data;
|
||||
console.log( this.nodeTree)
|
||||
},
|
||||
changeSelectDataRangeAll(tableType) {
|
||||
this.$route.params.dataSelectRange = 'all';
|
||||
},
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
<template>
|
||||
<div v-if="dialogVisible" class="batch-move" v-loading="result.loading">
|
||||
<el-dialog :title="this.$t('test_track.case.select_catalog')"
|
||||
:visible.sync="dialogVisible"
|
||||
:before-close="close"
|
||||
:destroy-on-close="true"
|
||||
width="20%"
|
||||
>
|
||||
<div>
|
||||
<el-input :placeholder="$t('test_track.module.search')" v-model="filterText" size="small"/>
|
||||
<el-tree
|
||||
class="filter-tree node-tree"
|
||||
:data="treeNodes"
|
||||
node-key="id"
|
||||
:filter-node-method="filterNode"
|
||||
:expand-on-click-node="false"
|
||||
highlight-current
|
||||
style="overflow: auto"
|
||||
@node-click="nodeClick"
|
||||
ref="tree"
|
||||
>
|
||||
<template v-slot:default="{node}">
|
||||
<span>
|
||||
<span class="node-icon">
|
||||
<i class="el-icon-folder"/>
|
||||
</span>
|
||||
<span class="node-title">{{node.label}}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
</div>
|
||||
<template v-slot:footer>
|
||||
<ms-dialog-footer
|
||||
@cancel="close"
|
||||
@confirm="save"/>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import MsDialogFooter from "@/business/components/common/components/MsDialogFooter";
|
||||
export default {
|
||||
name: "CaseBatchMove",
|
||||
components: {
|
||||
MsDialogFooter
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
treeNodes: [],
|
||||
selectIds: [],
|
||||
selectNode: {},
|
||||
dialogVisible: false,
|
||||
currentKey: "",
|
||||
moduleOptions: [],
|
||||
filterText: "",
|
||||
result: {},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
console.log( this.treeNodes)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(treeNodes, selectIds, moduleOptions) {
|
||||
|
||||
this.dialogVisible = true;
|
||||
this.treeNodes = treeNodes;
|
||||
this.selectIds = selectIds;
|
||||
this.moduleOptions = moduleOptions;
|
||||
|
||||
},
|
||||
save() {
|
||||
if (!this.currentKey) {
|
||||
this.$warning(this.$t('test_track.case.input_module'));
|
||||
return;
|
||||
}
|
||||
let param = {};
|
||||
param.nodeId = this.currentKey;
|
||||
if (this.moduleOptions) {
|
||||
this.moduleOptions.forEach(item => {
|
||||
if (item.id === this.currentKey) {
|
||||
param.nodePath = item.path;
|
||||
}
|
||||
});
|
||||
}
|
||||
param.ids = this.selectIds;
|
||||
this.$emit('moveSave', param);
|
||||
},
|
||||
refresh() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
close() {
|
||||
this.filterText = "";
|
||||
this.dialogVisible = false;
|
||||
this.selectNode = {};
|
||||
},
|
||||
filterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
nodeClick() {
|
||||
this.currentKey = this.$refs.tree.getCurrentKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.node-title {
|
||||
width: 0;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
flex: 1 1 auto;
|
||||
padding: 0 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.batch-move {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
|
@ -126,6 +126,7 @@
|
|||
buildNodePath(node, {path: ''}, moduleOptions);
|
||||
});
|
||||
this.$emit('setModuleOptions', moduleOptions);
|
||||
this.$emit('setNodeTree', this.data);
|
||||
if (this.$refs.nodeTree) {
|
||||
this.$refs.nodeTree.filter(this.condition.filterText);
|
||||
}
|
||||
|
|
|
@ -114,9 +114,7 @@ export default {
|
|||
}
|
||||
],
|
||||
phone: [
|
||||
{required: true, message: this.$t('user.input_phone'), trigger: 'blur'},
|
||||
{
|
||||
required: false,
|
||||
pattern: PHONE_REGEX,
|
||||
message: this.$t('member.mobile_number_format_is_incorrect'),
|
||||
trigger: 'blur'
|
||||
|
|
|
@ -399,9 +399,7 @@ export default {
|
|||
}
|
||||
],
|
||||
phone: [
|
||||
{required: true, message: this.$t('user.input_phone'), trigger: 'blur'},
|
||||
{
|
||||
required: true,
|
||||
pattern: PHONE_REGEX,
|
||||
message: this.$t('user.mobile_number_format_is_incorrect'),
|
||||
trigger: 'blur'
|
||||
|
|
|
@ -583,6 +583,7 @@ export default {
|
|||
create_info: 'Create',
|
||||
update_info: 'Update',
|
||||
batch_edit: "Batch edit",
|
||||
batch_move:"Batch move",
|
||||
path_valid_info: "The request path is invalid",
|
||||
other_config: "Other Config",
|
||||
message_template: "Message Template",
|
||||
|
|
|
@ -584,6 +584,7 @@ export default {
|
|||
create_info: '创建',
|
||||
update_info: '更新',
|
||||
batch_edit: "批量编辑",
|
||||
batch_move:"批量移动",
|
||||
path_valid_info: "请求路径无效",
|
||||
other_config: "其他设置",
|
||||
message_template: "报文模版",
|
||||
|
|
|
@ -583,6 +583,7 @@ export default {
|
|||
create_info: '創建',
|
||||
update_info: '更新',
|
||||
batch_edit: "批量編輯",
|
||||
batch_move:"批量移動",
|
||||
path_valid_info: "請求路徑無效",
|
||||
other_config: "其他設置",
|
||||
message_template: "報文模版",
|
||||
|
|
Loading…
Reference in New Issue