fix(接口测试): 引用复制场景保存测试报错

This commit is contained in:
chenjianxing 2020-10-23 12:47:06 +08:00
parent 0da55f5ef0
commit 196bcec3bf
4 changed files with 39 additions and 5 deletions

@ -1 +1 @@
Subproject commit cf6b06526324326a563d933e07118fac014a63b4 Subproject commit ee74568be0beba46da19616f5832e83f9164c688

View File

@ -61,7 +61,7 @@
:request="selected" :scenario="currentScenario" v-if="isRequest"/> :request="selected" :scenario="currentScenario" v-if="isRequest"/>
</div> </div>
</el-main> </el-main>
<ms-api-scenario-select :exclude-id="test.id" @select="selectScenario" ref="selectDialog"/> <ms-api-scenario-select :exclude-id="test.id" :project-id="test.projectId" @select="selectScenario" ref="selectDialog"/>
</el-container> </el-container>
</template> </template>

View File

@ -43,6 +43,7 @@ import MsTableSearchBar from "@/business/components/common/components/MsTableSea
import MsTableAdvSearchBar from "@/business/components/common/components/search/MsTableAdvSearchBar"; import MsTableAdvSearchBar from "@/business/components/common/components/search/MsTableAdvSearchBar";
import MsApiScenarioSelectSubTable from "@/business/components/api/test/components/ApiScenarioSelectSubTable"; import MsApiScenarioSelectSubTable from "@/business/components/api/test/components/ApiScenarioSelectSubTable";
import {Scenario} from "@/business/components/api/test/model/ScenarioModel"; import {Scenario} from "@/business/components/api/test/model/ScenarioModel";
import {parseEnvironment} from "../model/EnvironmentModel";
export default { export default {
name: "MsApiScenarioSelect", name: "MsApiScenarioSelect",
@ -51,7 +52,8 @@ export default {
MsTableAdvSearchBar, MsTableSearchBar, MsTablePagination, MsTableHeader MsTableAdvSearchBar, MsTableSearchBar, MsTablePagination, MsTableHeader
}, },
props: { props: {
excludeId: String excludeId: String,
projectId: String
}, },
data() { data() {
return { return {
@ -64,6 +66,7 @@ export default {
pageSize: 5, pageSize: 5,
total: 0, total: 0,
selection: false, selection: false,
environmentMap: new Map()
} }
}, },
methods: { methods: {
@ -94,19 +97,50 @@ export default {
} }
scenarios.push(scenario); scenarios.push(scenario);
} }
this.initScenarioEnvironment(scenarios);
this.$emit('select', scenarios); this.$emit('select', scenarios);
}, },
getEnvironment() {
if (this.projectId) {
this.result = this.$get('/api/environment/list/' + this.projectId, response => {
let environments = response.data;
this.environmentMap = new Map();
environments.forEach(environment => {
parseEnvironment(environment);
this.environmentMap.set(environment.id, environment);
});
});
}
},
initScenarioEnvironment(scenarios) {
scenarios.forEach(scenario => {
if (scenario.environmentId) {
let env = this.environmentMap.get(scenario.environmentId);
if (!env) {
scenario.environmentId = undefined;
scenario.environment = undefined;
} else {
scenario.environment = env;
}
} else {
scenario.environmentId = undefined;
scenario.environment = undefined;
}
});
},
clone(row) { clone(row) {
let scenarios = []; let scenarios = [];
row.selected.forEach(options => { row.selected.forEach(options => {
// IDID // IDID
options.id = undefined; options.id = undefined;
scenarios.push(new Scenario(options)); scenarios.push(new Scenario(options));
}) });
this.initScenarioEnvironment(scenarios);
this.$emit('select', scenarios); this.$emit('select', scenarios);
}, },
open() { open() {
this.search(); this.search();
this.getEnvironment();
this.visible = true; this.visible = true;
}, },
close() { close() {

@ -1 +1 @@
Subproject commit 06d935cd1d22ab36f09763745c2aff8ad3fb08c1 Subproject commit cc38137a69a0f20fadece9c0f9f50a9468c4ace9