refactor: 批量添加资源池节点 --story=1002506 --user=刘瑞斌 测试资源池添加节点支... https://www.tapd.cn/55049933/s/1045374

This commit is contained in:
Captain.B 2021-09-10 15:55:48 +08:00 committed by 刘瑞斌
parent 3ae230f591
commit c30963dcb5
5 changed files with 119 additions and 2 deletions

View File

@ -160,9 +160,14 @@
@click="addResourceInfo()"> @click="addResourceInfo()">
{{ $t('commons.add') }} {{ $t('commons.add') }}
</el-button> </el-button>
<el-button icon="el-icon-circle-plus-outline" plain size="mini"
@click="batchAddResource">
{{ $t('commons.batch_add') }}
</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-table :data="infoList" class="tb-edit" align="center" border highlight-current-row> <el-table :data="infoList" class="tb-edit" align="center" border highlight-current-row>
<el-table-column type="index" width="50"/>
<el-table-column <el-table-column
align="center" align="center"
prop="ip" prop="ip"
@ -207,7 +212,7 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<batch-add-resource ref="batchAddResource" @batchSave="batchSave"/>
</el-form> </el-form>
</div> </div>
<template v-slot:footer> <template v-slot:footer>
@ -231,10 +236,11 @@ import MsTableHeader from "../../common/components/MsTableHeader";
import MsTableOperator from "../../common/components/MsTableOperator"; import MsTableOperator from "../../common/components/MsTableOperator";
import MsDialogFooter from "../../common/components/MsDialogFooter"; import MsDialogFooter from "../../common/components/MsDialogFooter";
import {listenGoBack, removeGoBackListener} from "@/common/js/utils"; import {listenGoBack, removeGoBackListener} from "@/common/js/utils";
import BatchAddResource from "@/business/components/settings/system/components/BatchAddResource";
export default { export default {
name: "MsTestResourcePool", name: "MsTestResourcePool",
components: {MsCreateBox, MsTablePagination, MsTableHeader, MsTableOperator, MsDialogFooter}, components: {BatchAddResource, MsCreateBox, MsTablePagination, MsTableHeader, MsTableOperator, MsDialogFooter},
data() { data() {
return { return {
result: {}, result: {},
@ -317,6 +323,32 @@ export default {
this.$warning(this.$t('test_resource_pool.cannot_remove_all_node')); this.$warning(this.$t('test_resource_pool.cannot_remove_all_node'));
} }
}, },
batchAddResource() {
this.$refs.batchAddResource.open();
},
batchSave(resources) {
let targets = this._handleBatchVars(resources);
targets.forEach(row => {
this.infoList.push(row);
});
},
_handleBatchVars(data) {
let params = data.split("\n");
let keyValues = [];
params.forEach(item => {
let line = item.split(/|,/);
if (line.length < 3) {
return;
}
keyValues.push({
ip: line[0],
port: line[1],
monitorPort: line[2],
maxConcurrency: line[3],
});
});
return keyValues;
},
validateResourceInfo() { validateResourceInfo() {
if (this.infoList.length <= 0) { if (this.infoList.length <= 0) {
return {validate: false, msg: this.$t('test_resource_pool.cannot_empty')}; return {validate: false, msg: this.$t('test_resource_pool.cannot_empty')};

View File

@ -0,0 +1,82 @@
<template>
<div>
<ms-drawer :visible="dialogVisible" :size="30" @close="handleClose" direction="right"
:show-full-screen="false" :is-show-close="false">
<div>
<el-row>
<el-col :span="14">
<div v-html="$t('test_resource_pool.batch_add_resource_tips')"></div>
</el-col>
<el-col :span="10" class="buttons">
<el-button size="mini" @click="handleClose">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" size="mini" @click="confirm" @keydown.enter.native.prevent>
{{ $t('commons.confirm') }}
</el-button>
</el-col>
</el-row>
<div class="ms-code">
<ms-code-edit class="ms-code" :enable-format="false" mode="text" :data.sync="parameters" theme="eclipse"
:modes="['text']"
ref="codeEdit"/>
</div>
</div>
</ms-drawer>
</div>
</template>
<script>
import MsDialogFooter from "@/business/components/common/components/MsDialogFooter";
import {listenGoBack, removeGoBackListener} from "@/common/js/utils";
import MsCodeEdit from "@/business/components/common/components/MsCodeEdit";
import MsDrawer from "@/business/components/common/components/MsDrawer";
export default {
name: "BatchAddResource",
components: {
MsDrawer,
MsDialogFooter,
MsCodeEdit
},
props: {},
data() {
return {
dialogVisible: false,
parameters: "",
};
},
methods: {
open() {
this.dialogVisible = true;
listenGoBack(this.handleClose);
},
handleClose() {
this.parameters = "";
this.dialogVisible = false;
removeGoBackListener(this.handleClose);
},
confirm() {
this.dialogVisible = false;
this.$emit("batchSave", this.parameters);
}
}
};
</script>
<style scoped>
.ms-drawer {
padding: 10px 13px;
}
.ms-code {
height: calc(100vh);
}
.buttons .el-button {
float: right;
}
.buttons .el-button:nth-child(2) {
margin-right: 15px;
}
</style>

View File

@ -1773,6 +1773,7 @@ export default {
pod_thread_limit: 'Maximum number of threads per POD', pod_thread_limit: 'Maximum number of threads per POD',
usage: 'Usage', usage: 'Usage',
backend_listener: 'Backend Listener', backend_listener: 'Backend Listener',
batch_add_resource_tips: 'Format: IP, Port, Monitor, maximum concurrent number<br/>such as: 192.168.1.52,8082,9100,500',
}, },
system_parameter_setting: { system_parameter_setting: {
mailbox_service_settings: 'Mailbox Settings', mailbox_service_settings: 'Mailbox Settings',

View File

@ -1784,6 +1784,7 @@ export default {
pod_thread_limit: '单POD最大线程数', pod_thread_limit: '单POD最大线程数',
usage: '用途', usage: '用途',
backend_listener: '后置监听器', backend_listener: '后置监听器',
batch_add_resource_tips: '格式IP,Port,Monitor,最大并发数<br/>如192.168.1.52,8082,9100,500',
}, },
system_parameter_setting: { system_parameter_setting: {
mailbox_service_settings: '邮件设置', mailbox_service_settings: '邮件设置',

View File

@ -1785,6 +1785,7 @@ export default {
pod_thread_limit: '單POD最大線程數', pod_thread_limit: '單POD最大線程數',
usage: '用途', usage: '用途',
backend_listener: '後置監聽器', backend_listener: '後置監聽器',
batch_add_resource_tips: '格式IP,Port,Monitor,最大並發數<br/>如192.168.1.52,8082,9100,500',
}, },
system_parameter_setting: { system_parameter_setting: {
mailbox_service_settings: '郵件設置', mailbox_service_settings: '郵件設置',