fix: 修复改了资源池之后资源池ID变了的问题

This commit is contained in:
Captain.B 2020-10-28 12:19:19 +08:00
parent d26c05a306
commit 9a34a5f27f
2 changed files with 206 additions and 203 deletions

View File

@ -210,7 +210,6 @@ public class TestResourcePoolService {
private void updateTestResource(TestResource testResource) {
testResource.setUpdateTime(System.currentTimeMillis());
testResource.setCreateTime(System.currentTimeMillis());
testResource.setId(UUID.randomUUID().toString());
testResourceMapper.insertSelective(testResource);
}

View File

@ -3,9 +3,10 @@
<el-card class="table-card" v-loading="result.loading">
<template v-slot:header>
<ms-table-header :condition.sync="condition" @search="search" @create="create"
:create-tip="$t('test_resource_pool.create_resource_pool')" :title="$t('commons.test_resource_pool')"/>
:create-tip="$t('test_resource_pool.create_resource_pool')"
:title="$t('commons.test_resource_pool')"/>
</template>
<el-table border class="adjust-table" :data="items" style="width: 100%">
<el-table border class="adjust-table" :data="items" style="width: 100%">
<el-table-column prop="name" :label="$t('commons.name')"/>
<el-table-column prop="description" :label="$t('commons.description')"/>
<el-table-column prop="type" :label="$t('test_resource_pool.type')">
@ -174,225 +175,228 @@
</template>
<script>
import MsCreateBox from "../CreateBox";
import MsTablePagination from "../../common/pagination/TablePagination";
import MsTableHeader from "../../common/components/MsTableHeader";
import MsTableOperator from "../../common/components/MsTableOperator";
import MsDialogFooter from "../../common/components/MsDialogFooter";
import {listenGoBack, removeGoBackListener} from "../../../../common/js/utils";
import MsCreateBox from "../CreateBox";
import MsTablePagination from "../../common/pagination/TablePagination";
import MsTableHeader from "../../common/components/MsTableHeader";
import MsTableOperator from "../../common/components/MsTableOperator";
import MsDialogFooter from "../../common/components/MsDialogFooter";
import {listenGoBack, removeGoBackListener} from "../../../../common/js/utils";
export default {
name: "MsTestResourcePool",
components: {MsCreateBox, MsTablePagination, MsTableHeader, MsTableOperator, MsDialogFooter},
data() {
return {
result: {},
createVisible: false,
infoList: [],
updateVisible: false,
queryPath: "testresourcepool/list",
condition: {},
items: [],
currentPage: 1,
pageSize: 5,
total: 0,
form: {},
rule: {
name: [
{required: true, message: this.$t('test_resource_pool.input_pool_name'), trigger: 'blur'},
{min: 2, max: 20, message: this.$t('commons.input_limit', [2, 20]), trigger: 'blur'},
{
required: true,
pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9.·-]+$/,
message: this.$t('test_resource_pool.pool_name_valid'),
trigger: 'blur'
}
],
description: [
{max: 60, message: this.$t('commons.input_limit', [0, 60]), trigger: 'blur'}
],
type: [
{required: true, message: this.$t('test_resource_pool.select_pool_type'), trigger: 'blur'}
]
}
export default {
name: "MsTestResourcePool",
components: {MsCreateBox, MsTablePagination, MsTableHeader, MsTableOperator, MsDialogFooter},
data() {
return {
result: {},
createVisible: false,
infoList: [],
updateVisible: false,
queryPath: "testresourcepool/list",
condition: {},
items: [],
currentPage: 1,
pageSize: 5,
total: 0,
form: {},
rule: {
name: [
{required: true, message: this.$t('test_resource_pool.input_pool_name'), trigger: 'blur'},
{min: 2, max: 20, message: this.$t('commons.input_limit', [2, 20]), trigger: 'blur'},
{
required: true,
pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9.·-]+$/,
message: this.$t('test_resource_pool.pool_name_valid'),
trigger: 'blur'
}
],
description: [
{max: 60, message: this.$t('commons.input_limit', [0, 60]), trigger: 'blur'}
],
type: [
{required: true, message: this.$t('test_resource_pool.select_pool_type'), trigger: 'blur'}
]
}
}
},
activated() {
this.initTableData();
},
methods: {
initTableData() {
this.result = this.$post(this.buildPagePath(this.queryPath), this.condition, response => {
let data = response.data;
this.items = data.listObject;
this.total = data.itemCount;
})
},
changeResourceType() {
this.infoList = [];
this.infoList.push({})
},
addResourceInfo() {
this.infoList.push({})
},
removeResourceInfo(index) {
if (this.infoList.length > 1) {
this.infoList.splice(index, 1)
} else {
this.$warning(this.$t('test_resource_pool.cannot_remove_all_node'))
}
},
activated() {
this.initTableData();
},
methods: {
initTableData() {
validateResourceInfo() {
if (this.infoList.length <= 0) {
return {validate: false, msg: this.$t('test_resource_pool.cannot_empty')}
}
this.result = this.$post(this.buildPagePath(this.queryPath), this.condition, response => {
let data = response.data;
this.items = data.listObject;
this.total = data.itemCount;
})
},
changeResourceType() {
this.infoList = [];
this.infoList.push({})
},
addResourceInfo() {
this.infoList.push({})
},
removeResourceInfo(index) {
if (this.infoList.length > 1) {
this.infoList.splice(index, 1)
} else {
this.$warning(this.$t('test_resource_pool.cannot_remove_all_node'))
}
},
validateResourceInfo() {
if (this.infoList.length <= 0) {
return {validate: false, msg: this.$t('test_resource_pool.cannot_empty')}
}
let resultValidate = {validate: true, msg: this.$t('test_resource_pool.fill_the_data')};
this.infoList.forEach(function (info) {
for (let key in info) {
if (info[key] != '0' && !info[key]) {
resultValidate.validate = false
return false;
}
}
if (!info.maxConcurrency) {
let resultValidate = {validate: true, msg: this.$t('test_resource_pool.fill_the_data')};
this.infoList.forEach(function (info) {
for (let key in info) {
if (info[key] != '0' && !info[key]) {
resultValidate.validate = false
return false;
}
});
return resultValidate;
},
buildPagePath(path) {
return path + "/" + this.currentPage + "/" + this.pageSize;
},
search() {
this.initTableData();
},
create() {
this.createVisible = true;
listenGoBack(this.closeFunc);
},
edit(row) {
this.updateVisible = true;
this.form = JSON.parse(JSON.stringify(row));
this.convertResources();
listenGoBack(this.closeFunc);
},
convertResources() {
let resources = [];
if (this.form.resources) {
this.form.resources.forEach(function (resource) {
resources.push(JSON.parse(resource.configuration));
})
}
this.infoList = resources;
},
del(row) {
window.console.log(row);
this.$confirm(this.$t('test_resource_pool.delete_prompt'), this.$t('commons.prompt'), {
confirmButtonText: this.$t('commons.confirm'),
cancelButtonText: this.$t('commons.cancel'),
type: 'warning'
}).then(() => {
this.result = this.$get(`/testresourcepool/delete/${row.id}`,() => {
this.initTableData();
this.$success(this.$t('commons.delete_success'));
});
}).catch(() => {
this.$info(this.$t('commons.delete_cancel'));
});
},
createTestResourcePool(createTestResourcePoolForm) {
this.$refs[createTestResourcePoolForm].validate(valid => {
if (valid) {
let vri = this.validateResourceInfo();
if (vri.validate) {
this.convertSubmitResources();
this.result = this.$post("/testresourcepool/add", this.form, () => {
this.$message({
type: 'success',
message: this.$t('commons.save_success')
},
this.createVisible = false,
this.initTableData());
});
} else {
this.$warning(vri.msg);
return false;
}
} else {
return false;
}
if (!info.maxConcurrency) {
resultValidate.validate = false
return false;
}
});
return resultValidate;
},
buildPagePath(path) {
return path + "/" + this.currentPage + "/" + this.pageSize;
},
search() {
this.initTableData();
},
create() {
this.createVisible = true;
listenGoBack(this.closeFunc);
},
edit(row) {
this.updateVisible = true;
this.form = JSON.parse(JSON.stringify(row));
this.convertResources();
listenGoBack(this.closeFunc);
},
convertResources() {
let resources = [];
if (this.form.resources) {
this.form.resources.forEach(function (resource) {
let configuration = JSON.parse(resource.configuration);
configuration.id = resource.id
resources.push(configuration);
})
},
convertSubmitResources() {
let resources = [];
let poolId = this.form.id;
this.infoList.forEach(function (info) {
let resource = {"configuration": JSON.stringify(info)};
if (poolId) {
resource.testResourcePoolId = poolId;
}
resources.push(resource);
}
this.infoList = resources;
},
del(row) {
window.console.log(row);
this.$confirm(this.$t('test_resource_pool.delete_prompt'), this.$t('commons.prompt'), {
confirmButtonText: this.$t('commons.confirm'),
cancelButtonText: this.$t('commons.cancel'),
type: 'warning'
}).then(() => {
this.result = this.$get(`/testresourcepool/delete/${row.id}`, () => {
this.initTableData();
this.$success(this.$t('commons.delete_success'));
});
this.form.resources = resources;
},
updateTestResourcePool(updateTestResourcePoolForm) {
this.$refs[updateTestResourcePoolForm].validate(valid => {
if (valid) {
let vri = this.validateResourceInfo();
if (vri.validate) {
this.convertSubmitResources();
this.result = this.$post("/testresourcepool/update", this.form, () => {
this.$message({
type: 'success',
message: this.$t('commons.modify_success')
},
this.updateVisible = false,
this.initTableData(),
self.loading = false);
});
} else {
this.$warning(vri.msg);
return false;
}
}).catch(() => {
this.$info(this.$t('commons.delete_cancel'));
});
},
createTestResourcePool(createTestResourcePoolForm) {
this.$refs[createTestResourcePoolForm].validate(valid => {
if (valid) {
let vri = this.validateResourceInfo();
if (vri.validate) {
this.convertSubmitResources();
this.result = this.$post("/testresourcepool/add", this.form, () => {
this.$message({
type: 'success',
message: this.$t('commons.save_success')
},
this.createVisible = false,
this.initTableData());
});
} else {
this.$warning(vri.msg);
return false;
}
});
},
closeFunc() {
this.form = {};
this.updateVisible = false;
this.createVisible = false;
removeGoBackListener(this.closeFunc);
},
changeSwitch(row) {
this.result.loading = true;
this.$info(this.$t('test_resource_pool.check_in'), 1000);
this.$get('/testresourcepool/update/' + row.id + '/' + row.status)
.then(() => {
this.$success(this.$t('test_resource_pool.status_change_success'));
this.result.loading = false;
}).catch(() => {
this.$error(this.$t('test_resource_pool.status_change_failed'));
row.status = 'INVALID';
this.result.loading = false;
})
}
} else {
return false;
}
})
},
convertSubmitResources() {
let resources = [];
let poolId = this.form.id;
this.infoList.forEach(function (info) {
let configuration = JSON.stringify(info);
let resource = {"configuration": configuration, id: info.id};
if (poolId) {
resource.testResourcePoolId = poolId;
}
resources.push(resource);
});
this.form.resources = resources;
},
updateTestResourcePool(updateTestResourcePoolForm) {
this.$refs[updateTestResourcePoolForm].validate(valid => {
if (valid) {
let vri = this.validateResourceInfo();
if (vri.validate) {
this.convertSubmitResources();
this.result = this.$post("/testresourcepool/update", this.form, () => {
this.$message({
type: 'success',
message: this.$t('commons.modify_success')
},
this.updateVisible = false,
this.initTableData(),
self.loading = false);
});
} else {
this.$warning(vri.msg);
return false;
}
} else {
return false;
}
});
},
closeFunc() {
this.form = {};
this.updateVisible = false;
this.createVisible = false;
removeGoBackListener(this.closeFunc);
},
changeSwitch(row) {
this.result.loading = true;
this.$info(this.$t('test_resource_pool.check_in'), 1000);
this.$get('/testresourcepool/update/' + row.id + '/' + row.status)
.then(() => {
this.$success(this.$t('test_resource_pool.status_change_success'));
this.result.loading = false;
}).catch(() => {
this.$error(this.$t('test_resource_pool.status_change_failed'));
row.status = 'INVALID';
this.result.loading = false;
})
}
}
}
</script>
<style scoped>
.box {
padding-left: 5px;
}
.box {
padding-left: 5px;
}
</style>