agent版本更新、服务器注册选择公网业务IP
This commit is contained in:
@@ -405,7 +405,7 @@ export function getAgentManage(Id) {
|
|||||||
// 新增
|
// 新增
|
||||||
export function addAgentManage(data) {
|
export function addAgentManage(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/rocketmq/agentManagement',
|
url: '/rocketmq/agentManagement/addUpdatePolicy',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
@@ -414,8 +414,8 @@ export function addAgentManage(data) {
|
|||||||
// 修改
|
// 修改
|
||||||
export function updateAgentManage(data) {
|
export function updateAgentManage(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/rocketmq/agentManagement',
|
url: '/rocketmq/agentManagement/updateAgentNow',
|
||||||
method: 'put',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -602,3 +602,82 @@ export function getRegistList(query) {
|
|||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function networkList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/networkInterface/list',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-基础信息
|
||||||
|
export function serverMonitorData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/getSwitchMonitorMsg',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-设备cpu使用率
|
||||||
|
export function serverCpuData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/getSwitchCpuUseMsg',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-设备内存使用率
|
||||||
|
export function serverMemData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/getSwitchMemUseMsg',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-功率
|
||||||
|
export function serverPowerData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/getSwitchPowerMsg',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-自动发现项-基础信息
|
||||||
|
export function serverNetDetails(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/switchInfo/getSwitchNetDetailsMsg',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-自动发现项-丢包
|
||||||
|
export function serverNetDiscards(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/switchNetDiscardsEcharts',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-自动发现项-总流量
|
||||||
|
export function serverNeTotal(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/switchNetTotalEcharts',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-自动发现项-错误丢包
|
||||||
|
export function serverNetErrDiscard(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/switchNetErrDiscardsEcharts',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 图形监控-自动发现项-实时流量
|
||||||
|
export function serverNetSpeed(data) {
|
||||||
|
return request({
|
||||||
|
url: '/rocketmq/systemOtherCollectData/switchNetSpeedEcharts',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,7 +5,11 @@
|
|||||||
<h4 v-if="formItem && formItem.config && formItem.config.title" style="color: #000;" class="form-header h4">{{formItem.config.title}}</h4>
|
<h4 v-if="formItem && formItem.config && formItem.config.title" style="color: #000;" class="form-header h4">{{formItem.config.title}}</h4>
|
||||||
<el-row style="color: #606266;">
|
<el-row style="color: #606266;">
|
||||||
<el-col v-for="(formVal,key,index) of formItem['controls']" :span="formVal.span" v-if="!formVal.hidden" :class="formItem.config.colSpan" :style="formVal.style">
|
<el-col v-for="(formVal,key,index) of formItem['controls']" :span="formVal.span" v-if="!formVal.hidden" :class="formItem.config.colSpan" :style="formVal.style">
|
||||||
|
<template v-if="formVal.type === 'button'">
|
||||||
|
<el-button :type="formVal.btnType || 'primary'" size="mini" class="ml10" @click="(val) => handleChange(key,val,formVal)">{{formVal.label}}</el-button>
|
||||||
|
</template>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
v-else
|
||||||
:key="config && config.key ? `${config && config.key}-${key}` : `${key}`"
|
:key="config && config.key ? `${config && config.key}-${key}` : `${key}`"
|
||||||
:prop="key"
|
:prop="key"
|
||||||
:required="formVal.required">
|
:required="formVal.required">
|
||||||
@@ -20,13 +24,15 @@
|
|||||||
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请输入${formVal.label}`"
|
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请输入${formVal.label}`"
|
||||||
:class="toBoolean(formVal.disabled || formItem.config.readonly) ? 'cursorAuto' : ''"
|
:class="toBoolean(formVal.disabled || formItem.config.readonly) ? 'cursorAuto' : ''"
|
||||||
@[formVal.eventName]="(val) => handleChange(key,val,formVal)"></el-input>
|
@[formVal.eventName]="(val) => handleChange(key,val,formVal)"></el-input>
|
||||||
|
<br/><span v-if="!toBoolean(formVal.disabled || formItem.config.readonly)" class="warningCol">{{formVal.warningTitle}}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="formVal.type === 'textarea'">
|
<template v-if="formVal.type === 'textarea'">
|
||||||
<div v-if="toBoolean(formVal.disabled || formItem.config.readonly)">
|
<div v-if="toBoolean(formVal.disabled || formItem.config.readonly)">
|
||||||
<span style="color: #606266;font-weight: 700;padding-left: 15px;">{{ruleForm[key]}}</span>
|
<div style="color: #606266;font-weight: 700;padding-left: 15px;line-height: 1.5;" v-html="ruleForm[key]"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<template v-else>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
|
||||||
v-model="ruleForm[key]"
|
v-model="ruleForm[key]"
|
||||||
:disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
|
:disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
@@ -34,12 +40,15 @@
|
|||||||
:clearable="formVal.clearable !== false"
|
:clearable="formVal.clearable !== false"
|
||||||
:class="toBoolean(formVal.disabled || formItem.config.readonly) ? 'cursorAuto' : ''"
|
:class="toBoolean(formVal.disabled || formItem.config.readonly) ? 'cursorAuto' : ''"
|
||||||
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请输入${formVal.label}`"></el-input>
|
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请输入${formVal.label}`"></el-input>
|
||||||
|
<br/><span v-if="!toBoolean(formVal.disabled || formItem.config.readonly)" class="warningCol">{{formVal.warningTitle}}</span>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else-if="formVal.type === 'select'">
|
<template v-else-if="formVal.type === 'select'">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="ruleForm[key]"
|
v-model="ruleForm[key]"
|
||||||
:multiple="formVal.multiple"
|
:multiple="formVal.multiple"
|
||||||
|
:multiple-limit="formVal.multipleLimit || 0"
|
||||||
:collapse-tags="formVal.collapseTags"
|
:collapse-tags="formVal.collapseTags"
|
||||||
:disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
|
:disabled="toBoolean(formVal.disabled || formItem.config.readonly)"
|
||||||
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请选择${formVal.label}`"
|
:placeholder="toBoolean(formVal.disabled || formItem.config.readonly) ? null : formVal.placeholder || `请选择${formVal.label}`"
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ export const dynamicRoutes = [
|
|||||||
{
|
{
|
||||||
path: ':id?',
|
path: ':id?',
|
||||||
component: () => import('@/views/resource/serverRegister/monitorChart'),
|
component: () => import('@/views/resource/serverRegister/monitorChart'),
|
||||||
name: 'SwitchRegisterChart',
|
name: 'ServerRegisterChart',
|
||||||
meta: { title: '图形监控', activeMenu: '/resource/serverRegister' }
|
meta: { title: '图形监控', activeMenu: '/resource/serverRegister' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -469,7 +469,7 @@ export const dynamicRoutes = [
|
|||||||
{
|
{
|
||||||
path: 'index/:id?',
|
path: 'index/:id?',
|
||||||
component: () => import('@/views/resource/serverScriptStrat/details'),
|
component: () => import('@/views/resource/serverScriptStrat/details'),
|
||||||
name: 'switchMonitorStatEdit',
|
name: 'serverScriptStatEdit',
|
||||||
meta: { title: '服务器脚本策略信息', activeMenu: '/resource/serverScriptStrat' }
|
meta: { title: '服务器脚本策略信息', activeMenu: '/resource/serverScriptStrat' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<div class="app-container pageTopForm">
|
<div class="app-container pageTopForm">
|
||||||
<el-form :model="queryParams" ref="queryRef" size="small" v-show="showSearch" label-width="auto">
|
<el-form :model="queryParams" ref="queryRef" size="small" v-show="showSearch" label-width="auto">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="资源名称" prop="queryName">
|
<el-form-item label="ClientID" prop="clientId">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.queryName"
|
v-model="queryParams.clientId"
|
||||||
placeholder="请输入资源名称/内网IP地址"
|
placeholder="请输入ClientID"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
@@ -66,13 +66,15 @@
|
|||||||
columns: {
|
columns: {
|
||||||
id: { label: `ID`,width: '50'},
|
id: { label: `ID`,width: '50'},
|
||||||
hardwareSn: { label: `硬件SN`, minWidth: '150'},
|
hardwareSn: { label: `硬件SN`, minWidth: '150'},
|
||||||
resourceName: { label: `资源名称`, minWidth: '250', visible: true },
|
// resourceName: { label: `资源名称`, minWidth: '250', visible: true },
|
||||||
internalIp: { label: `内网IP`,minWidth: '100', visible: true},
|
// internalIp: { label: `内网IP`,minWidth: '100', visible: true},
|
||||||
agentVersion: { label: `AGENT版本`,minWidth: '150', visible: true },
|
clientId: { label: `ClientID`, minWidth: '320', visible: true },
|
||||||
|
managePublicIp: { label: `管理网-公网IP`,minWidth: '120', visible: true},
|
||||||
status: { label: `状态`, minWidth: '100', slotName: 'tempStatus'},
|
status: { label: `状态`, minWidth: '100', slotName: 'tempStatus'},
|
||||||
|
agentVersion: { label: `AGENT版本`,minWidth: '150', visible: true },
|
||||||
method: { label: `更新方式`,minWidth: '200'},
|
method: { label: `更新方式`,minWidth: '200'},
|
||||||
scheduledUpdateTime: { label: `更新时间`,minWidth: '150', visible: true },
|
scheduledUpdateTime: { label: `更新时间`,minWidth: '160'},
|
||||||
fileUrlType: { label: `文件地址格式`,minWidth: '200'},
|
// fileUrlType: { label: `文件地址格式`,minWidth: '200'},
|
||||||
fileUrl: { label: `文件地址`,minWidth: '200'},
|
fileUrl: { label: `文件地址`,minWidth: '200'},
|
||||||
lastUpdateResult: { label: `最后一次更新结果`,minWidth: '160', slotName: 'tempResult', visible: true},
|
lastUpdateResult: { label: `最后一次更新结果`,minWidth: '160', slotName: 'tempResult', visible: true},
|
||||||
lastUpdateTime: { label: `最后一次更新时间`,minWidth: '160', visible: true},
|
lastUpdateTime: { label: `最后一次更新时间`,minWidth: '160', visible: true},
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script setup name="Handle">
|
<script setup name="Handle">
|
||||||
import Form from '@/components/form/index.vue';
|
import Form from '@/components/form/index.vue';
|
||||||
import {addAgentManage, getAgentManage, updateAgentManage, resNameList} from "@/api/disRevenue/resource"
|
import {addAgentManage, getAgentManage, updateAgentManage, getRegistList} from "@/api/disRevenue/resource"
|
||||||
export default {
|
export default {
|
||||||
name: 'AgentUpdateView',
|
name: 'AgentUpdateView',
|
||||||
components: {Form},
|
components: {Form},
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
this.getFormDataList(this.paramsData.id);
|
this.getFormDataList(this.paramsData.id);
|
||||||
} else {
|
} else {
|
||||||
this.fnFormList();
|
this.fnFormList();
|
||||||
this.getResNameList();
|
// this.getResNameList();
|
||||||
}
|
}
|
||||||
if (this.paramsData && this.paramsData.readonly) {
|
if (this.paramsData && this.paramsData.readonly) {
|
||||||
this.config = {
|
this.config = {
|
||||||
@@ -38,21 +38,26 @@
|
|||||||
// formList集合
|
// formList集合
|
||||||
fnFormList(objVal) {
|
fnFormList(objVal) {
|
||||||
this.formList = [{
|
this.formList = [{
|
||||||
config: {title: '配置更新策略', colSpan: 'disBlock', readonly: this.paramsData.readonly},
|
config: {title: '配置更新策略', colSpan: '', readonly: this.paramsData.readonly},
|
||||||
controls: {
|
controls: {
|
||||||
id: {label: 'ID',hidden: true},
|
id: {label: 'ID',hidden: true},
|
||||||
hardwareSn: {label: '硬件SN', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
hardwareSn: {label: '硬件SN', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
resourceName: {label: '资源名称', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
// resourceName: {label: '资源名称', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
||||||
internalIp: {label: '内网IP', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
// internalIp: {label: '内网IP', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
||||||
status: {label: '状态', span: 12, type: 'select', options: this.dict.type.rm_register_online_state, disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
clientId: {label: 'ClientID', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
agentVersion: {label: 'AGENT版本', span: 12, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
managePublicIp: {label: '管理网-公网IP', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
method: {label: '更新方式', span: 12, type: 'select', options: this.dict.type.policy_method, eventName: 'change', required: true},
|
status: {label: '状态', span: 18, type: 'select', options: this.dict.type.rm_register_online_state, disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
scheduledUpdateTime: {label: '更新时间', span: 12, type: 'datetime', required: true, hidden: objVal && objVal.method === '1' ? false: true},
|
agentVersion: {label: 'AGENT版本', span: 18, type: 'input', disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
fileUrlType: {label: '文件格式', span: 12, type: 'radio', required: true,options: [{label: '外网HTTP(S)',value: '1'}], warningTitle: '注意:当文件大小超过100M时,请选择【外网HTTP(S)】地址格式'},
|
method: {label: '更新方式', span: 18, type: 'select', options: this.dict.type.policy_method, eventName: 'change', required: true, disabled: this.paramsData && this.paramsData.id ? true : false,},
|
||||||
fileUrl: {label: '文件地址', span: 12, type: 'input', required: true, placeholder: '请输入外网地址'},
|
scheduledUpdateTime: {label: '更新时间', span: 18, type: 'datetime', required: true, hidden: objVal && objVal.method === '1' ? false: true, disabled: this.paramsData && this.paramsData.id ? true : false,},
|
||||||
includeIds: {label: '生效服务器', span: 24,required: true, type: 'transfer',options: [],hidden: this.paramsData && this.paramsData.id ? true : false},
|
// fileUrlType: {label: '文件格式', span: 18, type: 'radio', required: true,options: [{label: '外网HTTP(S)',value: '1'}], warningTitle: '注意:当文件大小超过100M时,请选择【外网HTTP(S)】地址格式'},
|
||||||
lastUpdateResult: {label: '最后一次更新结果', span: 12, type: 'select', options: this.dict.type.agent_update_result, disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
fileUrl: {label: '文件地址', span: 18, type: 'input', required: true, placeholder: '请输入外网地址', warningTitle: '如:http://www.tr.com/server-1.1.1.jar'},
|
||||||
lastUpdateTime: {label: '最后一次更新时间', span: 12, type: 'datetime', disabled: true, hidden: this.paramsData && this.paramsData.id ? false : true},
|
fileMd5: {label: '文件MD5', span: 18, type: 'input', required: true},
|
||||||
|
deployDevice: {label: '部署设备', span: 18, type: 'textarea', rows:15, placeholder: '请粘贴/输入ClientID列表,如\nClientID1\nClientID2\n...', required: true, disabled: this.paramsData && this.paramsData.id ? true : false, hidden: this.paramsData && this.paramsData.readonly ? true : false},
|
||||||
|
clientAllId: {label: '加载全部ClientID', span: 3, type: 'button', style: 'vertical-align: top', hidden: this.paramsData && this.paramsData.readonly ? true : this.paramsData && this.paramsData.id ? true : false},
|
||||||
|
// includeIds: {label: '生效服务器', span: 24,required: true, type: 'transfer',options: [],hidden: this.paramsData && this.paramsData.id ? true : false},
|
||||||
|
lastUpdateResult: {label: '最后一次更新结果', span: 18, type: 'select', options: this.dict.type.agent_update_result, disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
|
lastUpdateTime: {label: '最后一次更新时间', span: 18, type: 'datetime', disabled: true, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
},
|
},
|
||||||
@@ -61,7 +66,7 @@
|
|||||||
getAgentManage(id).then(val => {
|
getAgentManage(id).then(val => {
|
||||||
if (val && val.data) {
|
if (val && val.data) {
|
||||||
val.data['method'] = val.data['method'].toString();
|
val.data['method'] = val.data['method'].toString();
|
||||||
val.data['fileUrlType'] = val.data['fileUrlType'].toString();
|
// val.data['fileUrlType'] = val.data['fileUrlType'].toString();
|
||||||
this.fnFormList(val.data);
|
this.fnFormList(val.data);
|
||||||
this.ruleForm = val.data;
|
this.ruleForm = val.data;
|
||||||
}
|
}
|
||||||
@@ -69,17 +74,17 @@
|
|||||||
// this.$modal.msgError("操作失败")
|
// this.$modal.msgError("操作失败")
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 包含设备
|
// // 包含设备
|
||||||
getResNameList() {
|
// getResNameList() {
|
||||||
resNameList().then(val => {
|
// resNameList().then(val => {
|
||||||
this.formList[0].controls['includeIds']['options']= val && val.map(item => {
|
// this.formList[0].controls['includeIds']['options']= val && val.map(item => {
|
||||||
this.includeList[item.id] = item;
|
// this.includeList[item.id] = item;
|
||||||
return Object.assign({label: item.resourceName, key: item.id});
|
// return Object.assign({label: item.resourceName, key: item.id});
|
||||||
});
|
// });
|
||||||
}).catch(() => {
|
// }).catch(() => {
|
||||||
this.$modal.msgError("操作失败")
|
// this.$modal.msgError("操作失败")
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
// 监听事件
|
// 监听事件
|
||||||
callback(result, dataVal, formVal) {
|
callback(result, dataVal, formVal) {
|
||||||
if (result && result.fnCode) {
|
if (result && result.fnCode) {
|
||||||
@@ -91,12 +96,26 @@
|
|||||||
this.formList[0].controls.scheduledUpdateTime['hidden'] = true;
|
this.formList[0].controls.scheduledUpdateTime['hidden'] = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'submit':
|
case 'clientAllId':
|
||||||
if (dataVal && !dataVal.id) {
|
getRegistList({resourceType: 1}).then(res => {
|
||||||
dataVal['includeNames'] = dataVal && dataVal['includeIds'].map(id => this.includeList[id].resourceName);
|
let str = '';
|
||||||
dataVal['includeIds'] = dataVal['includeIds'].join();
|
if (res && res.data) {
|
||||||
dataVal['includeNames'] = dataVal['includeNames'].join();
|
res && res.data.map(item => {
|
||||||
|
str+= item.clientId + '\n';
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
this.$set(this.ruleForm, 'deployDevice', str);
|
||||||
|
// this.formList[0].controls.clientId['options'] = res && res.data.map(item => {
|
||||||
|
// return Object.assign({label: item.clientId, value: item.id});
|
||||||
|
// });
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'submit':
|
||||||
|
// if (dataVal && !dataVal.id) {
|
||||||
|
// dataVal['includeNames'] = dataVal && dataVal['includeIds'].map(id => this.includeList[id].resourceName);
|
||||||
|
// dataVal['includeIds'] = dataVal['includeIds'].join();
|
||||||
|
// dataVal['includeNames'] = dataVal['includeNames'].join();
|
||||||
|
// }
|
||||||
let fnType = addAgentManage;
|
let fnType = addAgentManage;
|
||||||
if (dataVal && dataVal.id) {
|
if (dataVal && dataVal.id) {
|
||||||
fnType = updateAgentManage;
|
fnType = updateAgentManage;
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import Form from '@/components/form/index.vue';
|
import Form from '@/components/form/index.vue';
|
||||||
import {listHandle, resNameBtType, addMachine, getTopology, updateTopology, getRegistList} from "@/api/disRevenue/resource"
|
import {addMachine, getHandle, updateTopology, getRegistList} from "@/api/disRevenue/resource"
|
||||||
export default {
|
export default {
|
||||||
name: 'serverRegisterEdit',
|
name: 'serverRegisterEdit',
|
||||||
components: {Form},
|
components: {Form},
|
||||||
dicts: ['rm_topology_type'],
|
dicts: ['rm_register_status','rm_register_online_state'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -27,11 +27,10 @@
|
|||||||
created() {
|
created() {
|
||||||
this.paramsData = this.$route && this.$route.query;
|
this.paramsData = this.$route && this.$route.query;
|
||||||
if (this.paramsData && this.paramsData.id) {
|
if (this.paramsData && this.paramsData.id) {
|
||||||
// this.getFormDataList(this.paramsData.id);
|
this.getFormDataList(this.paramsData.id);
|
||||||
}
|
}
|
||||||
this.registList();
|
this.registList();
|
||||||
this.fnFormList();
|
this.fnFormList();
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// formList集合
|
// formList集合
|
||||||
@@ -43,51 +42,51 @@
|
|||||||
id: {label: 'ID',hidden: true},
|
id: {label: 'ID',hidden: true},
|
||||||
clientId: {label: 'ClientID', span: 12, type: 'select', options:[]},
|
clientId: {label: 'ClientID', span: 12, type: 'select', options:[]},
|
||||||
hardwareSn: {label: '设备SN', span: 12, type: 'input'},
|
hardwareSn: {label: '设备SN', span: 12, type: 'input'},
|
||||||
one: {label: 'IP1-运营商', span: 12, type: 'input'},
|
ip1Isp: {label: 'IP1-运营商', span: 12, type: 'input'},
|
||||||
one1: {label: 'IP1-省', span: 12, type: 'input'},
|
ip1Province: {label: 'IP1-省', span: 12, type: 'input'},
|
||||||
one2: {label: 'IP1-市', span: 12, type: 'input'},
|
ip1City: {label: 'IP1-市', span: 12, type: 'input'},
|
||||||
one3: {label: 'IP1-业务公网', span: 12, type: 'input'},
|
ip1PublicIp: {label: 'IP1-业务公网', span: 12, type: 'input'},
|
||||||
one4: {label: 'IP1-接口名称', span: 12, type: 'input'},
|
ip1InterfaceName: {label: 'IP1-接口名称', span: 12, type: 'input'},
|
||||||
one5: {label: 'IP1-mac地址', span: 12, type: 'input'},
|
ip1MacAddress: {label: 'IP1-mac地址', span: 12, type: 'input'},
|
||||||
one6: {label: 'IP1-接口类型', span: 12, type: 'input'},
|
ip1InterfaceType: {label: 'IP1-接口类型', span: 12, type: 'input'},
|
||||||
one7: {label: 'IP1-IPv4地址', span: 12, type: 'input'},
|
ip1Ipv4Address: {label: 'IP1-IPv4地址', span: 12, type: 'input'},
|
||||||
one8: {label: 'IP1-网光', span: 12, type: 'input'},
|
ip1Gateway: {label: 'IP1-网关', span: 12, type: 'input'},
|
||||||
two: {label: 'IP2-运营商', span: 12, type: 'input'},
|
ip2Isp: {label: 'IP2-运营商', span: 12, type: 'input'},
|
||||||
two1: {label: 'IP2-省', span: 12, type: 'input'},
|
ip2Province: {label: 'IP2-省', span: 12, type: 'input'},
|
||||||
two2: {label: 'IP2-市', span: 12, type: 'input'},
|
ip2City: {label: 'IP2-市', span: 12, type: 'input'},
|
||||||
two3: {label: 'IP2-业务公网', span: 12, type: 'input'},
|
ip2PublicIp: {label: 'IP2-业务公网', span: 12, type: 'input'},
|
||||||
two4: {label: 'IP2-接口名称', span: 12, type: 'input'},
|
ip2InterfaceName: {label: 'IP2-接口名称', span: 12, type: 'input'},
|
||||||
two5: {label: 'IP2-mac地址', span: 12, type: 'input'},
|
ip2MacAddress: {label: 'IP2-mac地址', span: 12, type: 'input'},
|
||||||
two6: {label: 'IP2-接口类型', span: 12, type: 'input'},
|
ip2InterfaceType: {label: 'IP2-接口类型', span: 12, type: 'input'},
|
||||||
two7: {label: 'IP2-IPv4地址', span: 12, type: 'input'},
|
ip2Ipv4Address: {label: 'IP2-IPv4地址', span: 12, type: 'input'},
|
||||||
two8: {label: 'IP2-网光', span: 12, type: 'input'},
|
ip2Gateway: {label: 'IP2-网关', span: 12, type: 'input'},
|
||||||
three: {label: 'IP3-运营商', span: 12, type: 'input'},
|
ip3Isp: {label: 'IP3-运营商', span: 12, type: 'input'},
|
||||||
three1: {label: 'IP3-省', span: 12, type: 'input'},
|
ip3Province: {label: 'IP3-省', span: 12, type: 'input'},
|
||||||
three2: {label: 'IP3-市', span: 12, type: 'input'},
|
ip3City: {label: 'IP3-市', span: 12, type: 'input'},
|
||||||
three3: {label: 'IP3-业务公网', span: 12, type: 'input'},
|
ip3PublicIp: {label: 'IP3-业务公网', span: 12, type: 'input'},
|
||||||
three4: {label: 'IP3-接口名称', span: 12, type: 'input'},
|
ip3InterfaceName: {label: 'IP3-接口名称', span: 12, type: 'input'},
|
||||||
three5: {label: 'IP3-mac地址', span: 12, type: 'input'},
|
ip3MacAddress: {label: 'IP3-mac地址', span: 12, type: 'input'},
|
||||||
three6: {label: 'IP3-接口类型', span: 12, type: 'input'},
|
ip3InterfaceType: {label: 'IP3-接口类型', span: 12, type: 'input'},
|
||||||
three7: {label: 'IP3-IPv4地址', span: 12, type: 'input'},
|
ip3Ipv4Address: {label: 'IP3-IPv4地址', span: 12, type: 'input'},
|
||||||
three8: {label: 'IP3-网光', span: 12, type: 'input'},
|
ip3Gateway: {label: 'IP3-网关', span: 12, type: 'input'},
|
||||||
one80: {label: '管理网-运营商', span: 12, type: 'input'},
|
mgmtIsp: {label: '管理网-运营商', span: 12, type: 'input'},
|
||||||
one9: {label: '管理网-省', span: 12, type: 'input'},
|
mgmtProvince: {label: '管理网-省', span: 12, type: 'input'},
|
||||||
one10: {label: '管理网-市', span: 12, type: 'input'},
|
mgmtCity: {label: '管理网-市', span: 12, type: 'input'},
|
||||||
one11: {label: '管理网-公网IP', span: 12, type: 'input'},
|
mgmtPublicIp: {label: '管理网-公网IP', span: 12, type: 'input'},
|
||||||
one12: {label: '管理网-接口名称', span: 12, type: 'input'},
|
mgmtInterfaceName: {label: '管理网-接口名称', span: 12, type: 'input'},
|
||||||
one13: {label: '管理网-mac地址', span: 12, type: 'input'},
|
mgmtMacAddress: {label: '管理网-mac地址', span: 12, type: 'input'},
|
||||||
one14: {label: '管理网-接口类型', span: 12, type: 'input'},
|
mgmtInterfaceType: {label: '管理网-接口类型', span: 12, type: 'input'},
|
||||||
one15: {label: '管理网-IPv4地址', span: 12, type: 'input'},
|
mgmtIpv4Address: {label: '管理网-IPv4地址', span: 12, type: 'input'},
|
||||||
one16: {label: '管理网-网关', span: 12, type: 'input'},
|
mgmt3Gateway: {label: '管理网-网关', span: 12, type: 'input'},
|
||||||
one17: {label: '心跳时间间隔', span: 12, type: 'input'},
|
heartbeatInterval: {label: '心跳时间间隔', span: 12, type: 'input'},
|
||||||
one18: {label: '心跳次数', span: 12, type: 'input'},
|
heartbeatCount: {label: '心跳次数', span: 12, type: 'input'},
|
||||||
one19: {label: '业务名称', span: 12, type: 'input'},
|
businessName: {label: '业务名称', span: 12, type: 'input'},
|
||||||
one20: {label: '逻辑节点标识', span: 12, type: 'input'},
|
onlogicalNodeIde20: {label: '逻辑节点标识', span: 12, type: 'input'},
|
||||||
one21: {label: '在线状态', span: 12, type: 'input'},
|
onlineStatus: {label: '在线状态', span: 12, type: 'select', options: this.dict.type.rm_register_online_state},
|
||||||
one22: {label: '注册状态', span: 12, type: 'input'},
|
registrationStatus: {label: '注册状态', span: 12, type: 'select', options: this.dict.type.rm_register_status},
|
||||||
one23: {label: '注册时间', span: 12, type: 'input'},
|
createTime: {label: '注册时间', span: 12, type: 'input'},
|
||||||
one24: {label: '上机时间', span: 12, type: 'input'},
|
upTime: {label: '上机时间', span: 12, type: 'input'},
|
||||||
one25: {label: 'agent版本', span: 12, type: 'input'},
|
agentVersion: {label: 'agent版本', span: 12, type: 'input'},
|
||||||
machineCode: {label: '金山machineCode', span: 12, type: 'input'},
|
machineCode: {label: '金山machineCode', span: 12, type: 'input'},
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
@@ -111,10 +110,8 @@
|
|||||||
},
|
},
|
||||||
// 获取详情
|
// 获取详情
|
||||||
getFormDataList(id) {
|
getFormDataList(id) {
|
||||||
getTopology(id).then(val => {
|
getHandle(id).then(val => {
|
||||||
this.ruleForm = val && val.data;
|
this.ruleForm = val && val.data;
|
||||||
this.registList();
|
|
||||||
this.fnServerNameList();
|
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$modal.msgError("操作失败")
|
this.$modal.msgError("操作失败")
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div class="app-container pageTopForm">
|
<div class="app-container pageTopForm">
|
||||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" size="small" label-width="auto">
|
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" size="small" label-width="auto">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="搜索" title="搜索" prop="switchName">
|
<el-form-item label="搜索" title="搜索" prop="queryParam">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.switchName"
|
v-model="queryParams.queryParam"
|
||||||
placeholder="请输入公网IP/私网IP/设备SN"
|
placeholder="请输入公网IP/私网IP/设备SN"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"/>
|
@keyup.enter.native="handleQuery"/>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
placeholder="请选择多公网IP状态"
|
placeholder="请选择多公网IP状态"
|
||||||
clearable>
|
clearable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dict.type.rm_register_online_state"
|
v-for="dict in dict.type.rm_moreip_status"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"/>
|
:value="dict.value"/>
|
||||||
@@ -90,17 +90,9 @@
|
|||||||
|
|
||||||
<!-- 表格数据 -->
|
<!-- 表格数据 -->
|
||||||
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="roleList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange">
|
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="roleList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange">
|
||||||
<!-- 资源类型 -->
|
<!-- 多公网IP状态 -->
|
||||||
<template #tempType="{ row, column }">
|
<template #tempMultipubStatus="{ row, column }">
|
||||||
<dict-tag :options="dict.type.rm_register_resource_type" :value="row.resourceType"/>
|
<dict-tag :options="dict.type.rm_moreip_status" :value="row.multiPublicIpStatus"/>
|
||||||
</template>
|
|
||||||
<!-- 端口 -->
|
|
||||||
<template #tempPort="{ row, column }">
|
|
||||||
<dict-tag :options="dict.type.rm_register_port" :value="row.resourcePort"/>
|
|
||||||
</template>
|
|
||||||
<!-- 协议 -->
|
|
||||||
<template #tempProtocol="{ row, column }">
|
|
||||||
<dict-tag :options="dict.type.rm_register_protocol" :value="row.protocol"/>
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 注册状态 -->
|
<!-- 注册状态 -->
|
||||||
<template #tempStatus="{ row, column }">
|
<template #tempStatus="{ row, column }">
|
||||||
@@ -111,7 +103,7 @@
|
|||||||
<dict-tag :options="dict.type.rm_register_online_state" :value="row.onlineStatus"/>
|
<dict-tag :options="dict.type.rm_register_online_state" :value="row.onlineStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</TableList>
|
</TableList>
|
||||||
<!-- 弹窗 -->
|
<!-- 查看执行结果弹窗 -->
|
||||||
<el-dialog title="命令执行结果" :visible.sync="open" width="800px" append-to-body>
|
<el-dialog title="命令执行结果" :visible.sync="open" width="800px" append-to-body>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-timeline :reverse="true">
|
<el-timeline :reverse="true">
|
||||||
@@ -129,21 +121,30 @@
|
|||||||
<el-button @click="callback({fnCode: 'cancel'})">取消</el-button>
|
<el-button @click="callback({fnCode: 'cancel'})">取消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 添加监控策略 -->
|
||||||
<el-dialog title="添加监控策略" :visible.sync="stratOpen" width="1200px" append-to-body>
|
<el-dialog title="添加监控策略" :visible.sync="stratOpen" width="1200px" append-to-body>
|
||||||
<MonitorStrategy :open="`type_${stratOpen}`" @dialogResult="fnDialogResult"></MonitorStrategy>
|
<MonitorStrategy :open="`type_${stratOpen}`" @dialogResult="fnDialogResult"></MonitorStrategy>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 选择公网业务IP -->
|
||||||
|
<el-dialog title="选择公网业务IP" :visible.sync="pubilcNetOpen" width="800px" append-to-body style="padding-bottom: 20px;">
|
||||||
|
<Form ref="publicNetFormRef" :formList="pubilcNetFormList" :ruleFormData="pubilcNetRuleForm" :config="{labelWidth: '140px', buttonGroup: []}" @fnClick="callback"></Form>
|
||||||
|
<div style="text-align: right;margin-right: 20px;margin-bottom: 20px;">
|
||||||
|
<el-button type="primary" style="margin-left: 10px;" @click="submitPubilc">提交</el-button>
|
||||||
|
<el-button @click="callback({fnCode: 'cancel'})">取消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Register">
|
<script setup name="Register">
|
||||||
import Form from '@/components/form/index.vue';
|
import Form from '@/components/form/index.vue';
|
||||||
import {listSwitchManage} from '@/api/disRevenue/resource';
|
import {listHandle, networkList} from '@/api/disRevenue/resource';
|
||||||
import TableList from '@/components/table/index.vue';
|
import TableList from '@/components/table/index.vue';
|
||||||
import MonitorStrategy from '../serverMonitorStrat/monitorStrategy';
|
import MonitorStrategy from '../serverMonitorStrat/monitorStrategy';
|
||||||
export default {
|
export default {
|
||||||
name: 'ServerRegister',
|
name: 'ServerRegister',
|
||||||
components: {TableList, MonitorStrategy,Form},
|
components: {TableList, MonitorStrategy,Form},
|
||||||
dicts: ['rm_register_resource_type', 'rm_register_protocol', 'rm_register_status', 'rm_register_port', 'rm_register_online_state', 'policy_method'],
|
dicts: ['rm_moreip_status', 'rm_register_status', 'rm_register_online_state', 'policy_method'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
open: false,
|
open: false,
|
||||||
@@ -157,25 +158,56 @@
|
|||||||
// 列显隐信息
|
// 列显隐信息
|
||||||
columns: {
|
columns: {
|
||||||
id: { label: `ID`,width: '80'},
|
id: { label: `ID`,width: '80'},
|
||||||
switchName: { label: `交换机名称`, visible: true, minWidth: '200'},
|
clientId: { label: `clientID`, minWidth: '200'},
|
||||||
hardwareSn: { label: `硬件SN`,minWidth: '250'},
|
switchName: { label: `clientID`, minWidth: '200'},
|
||||||
resourceType: { label: `交换机类型`, minWidth: '100', slotName: 'tempType'},
|
hardwareSn: { label: `设备SN`,minWidth: '250'},
|
||||||
snmpAddress: { label: `SNMP采集地址`, visible: true, minWidth: '150'},
|
ip1Isp: { label: `IP1-运营商`, visible: true, minWidth: '150'},
|
||||||
snmpPort: { label: `SNMP采集端口`, visible: true, minWidth: '150'},
|
ip1Province: { label: `IP1-省`, visible: true, minWidth: '150'},
|
||||||
|
ip1City: { label: `IP1-市`, minWidth: '150'},
|
||||||
|
ip1PublicIp:{ label: `IP1-业务公网`,visible: true,minWidth: '160'},
|
||||||
|
ip1InterfaceName: { label: `IP1-接口名称`, minWidth: '180'},
|
||||||
|
ip1MacAddress: { label: `IP1-mac地址`, minWidth: '150'},
|
||||||
|
ip1InterfaceType: { label: `IP1-接口类型`, minWidth: '120'},
|
||||||
|
ip1Ipv4Address: { label: `IP1-IPv4地址`, minWidth: '120'},
|
||||||
|
ip1Gateway: { label: `IP1-网关`, minWidth: '120'},
|
||||||
|
ip2Isp: { label: `IP2-运营商`, minWidth: '120'},
|
||||||
|
ip2Province: { label: `IP2-省`,minWidth: '150'},
|
||||||
|
ip2City: { label: `IP2-市`, minWidth: '150'},
|
||||||
|
ip2PublicIp:{ label: `IP2-业务公网`,minWidth: '160'},
|
||||||
|
ip2InterfaceName: { label: `IP2-接口名称`, minWidth: '180'},
|
||||||
|
ip2MacAddress: { label: `IP2-mac地址`, minWidth: '150'},
|
||||||
|
ip2InterfaceType: { label: `IP2-接口类型`, minWidth: '120'},
|
||||||
|
ip2Ipv4Address: { label: `IP2-IPv4地址`, minWidth: '120'},
|
||||||
|
ip2Gateway: { label: `IP2-网关`, minWidth: '120'},
|
||||||
|
ip3Isp: { label: `IP3-运营商`, minWidth: '120'},
|
||||||
|
ip3Province: { label: `IP3-省`, minWidth: '150'},
|
||||||
|
ip3City: { label: `IP3-市`, minWidth: '150'},
|
||||||
|
ip3PublicIp:{ label: `IP3-业务公网`,minWidth: '160'},
|
||||||
|
ip3InterfaceName: { label: `IP3-接口名称`, minWidth: '180'},
|
||||||
|
ip3MacAddress: { label: `IP3-mac地址`, minWidth: '150'},
|
||||||
|
ip3InterfaceType: { label: `IP3-接口类型`, minWidth: '120'},
|
||||||
|
ip3Ipv4Address: { label: `IP3-IPv4地址`, minWidth: '120'},
|
||||||
|
ip3Gateway: { label: `IP3-网关`, minWidth: '120'},
|
||||||
|
mgmtIsp: { label: `管理网-运营商`, minWidth: '120'},
|
||||||
|
mgmtProvince: { label: `管理网-省`,minWidth: '150'},
|
||||||
|
mgmtCity: { label: `管理网-市`, minWidth: '150'},
|
||||||
|
mgmtPublicIp:{ label: `管理网-业务公网`,minWidth: '160'},
|
||||||
|
mgmtInterfaceName: { label: `管理网-接口名称`, minWidth: '180'},
|
||||||
|
mgmtMacAddress: { label: `管理网-mac地址`, minWidth: '150'},
|
||||||
|
mgmtInterfaceType: { label: `管理网-接口类型`, minWidth: '120'},
|
||||||
|
mgmtIpv4Address: { label: `管理网-IPv4地址`, minWidth: '120'},
|
||||||
|
mgmt3Gateway: { label: `管理网-网关`, minWidth: '120'},
|
||||||
|
heartbeatInterval: { label: `心跳时间间隔`, minWidth: '180'},
|
||||||
|
heartbeatCount: { label: `心跳次数`, minWidth: '180'},
|
||||||
|
registrationStatus: { label: `注册状态`, slotName: 'tempStatus', minWidth: '120', visible: true },
|
||||||
|
businessName: { label: `业务名称`, minWidth: '180', visible: true},
|
||||||
|
logicalNodeId: { label: `逻辑节点标识`, minWidth: '180', visible: true},
|
||||||
onlineStatus: { label: `在线状态`, slotName: 'tempOnlineStatus', minWidth: '120', visible: true },
|
onlineStatus: { label: `在线状态`, slotName: 'tempOnlineStatus', minWidth: '120', visible: true },
|
||||||
|
multiPublicIpStatus: { label: `多公网IP状态`, slotName: 'tempMultipubStatus', minWidth: '120', visible: true },
|
||||||
|
createTime:{ label: `注册时间`,minWidth: '160'},
|
||||||
upTime:{ label: `上机时间`,minWidth: '160'},
|
upTime:{ label: `上机时间`,minWidth: '160'},
|
||||||
updateTime:{ label: `修改时间`,minWidth: '160'},
|
agentVersion:{ label: `agent版本`,minWidth: '160'},
|
||||||
createTime:{ label: `创建时间`,minWidth: '160'},
|
machineCode:{ label: `金山machineCode`,minWidth: '160'},
|
||||||
heartbeatCount: { label: `交换机心跳检测次数`, minWidth: '180'},
|
|
||||||
heartbeatInterval: { label: `交换机心跳检测周期`, minWidth: '180'},
|
|
||||||
heartbeatOid: { label: `交换机心跳检测OID`, minWidth: '180'},
|
|
||||||
protocol: { label: `SNMP版本`, minWidth: '150'},
|
|
||||||
readWritePermission: { label: `读写权限`, minWidth: '120'},
|
|
||||||
securityLevel: { label: `安全级别`, minWidth: '120'},
|
|
||||||
encryptionMethod: { label: `加密方式`, minWidth: '120'},
|
|
||||||
communityName: { label: `团体名称`, minWidth: '120'},
|
|
||||||
resourceUserName: { label: `用户名`, minWidth: '100'},
|
|
||||||
resourcePwd: { label: `密码`, minWidth: '100'}
|
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
tableButton: {
|
tableButton: {
|
||||||
@@ -184,6 +216,7 @@
|
|||||||
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'resource:serverRegister:export'},
|
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'resource:serverRegister:export'},
|
||||||
],
|
],
|
||||||
line: [
|
line: [
|
||||||
|
//showName: 'multiPublicIpStatus', showVal: '0',
|
||||||
{content: '选择公网业务IP', fnCode: 'pubilcNet', type: 'text', icon: 'el-icon-thumb', hasPermi: 'resource:serverRegister:pubilcNet'},
|
{content: '选择公网业务IP', fnCode: 'pubilcNet', type: 'text', icon: 'el-icon-thumb', hasPermi: 'resource:serverRegister:pubilcNet'},
|
||||||
{content: '图形监控', fnCode: 'echartView', type: 'text', icon: 'el-icon-data-analysis', hasPermi: 'resource:serverRegister:graphicAnalysis'},
|
{content: '图形监控', fnCode: 'echartView', type: 'text', icon: 'el-icon-data-analysis', hasPermi: 'resource:serverRegister:graphicAnalysis'},
|
||||||
{content: '详情', fnCode: 'details', type: 'text', icon: 'el-icon-view', hasPermi: 'resource:serverRegister:details'},
|
{content: '详情', fnCode: 'details', type: 'text', icon: 'el-icon-view', hasPermi: 'resource:serverRegister:details'},
|
||||||
@@ -214,6 +247,19 @@
|
|||||||
title: '',
|
title: '',
|
||||||
formList: [],
|
formList: [],
|
||||||
ruleForm: {},
|
ruleForm: {},
|
||||||
|
pubilcNetOpen: false,
|
||||||
|
pubilcNetFormList: [{
|
||||||
|
config: {title: '',labelWidth: '140px', colSpan: 'disBlock m0Auto'},
|
||||||
|
controls: {
|
||||||
|
id: {label: 'ID',hidden: true},
|
||||||
|
publicIp: {label: '业务公网IP', span: 18, eventName:'change', type: 'select',multiple: true, multipleLimit: 3, options: [], required: true},
|
||||||
|
descriptionOne: {label: '', span: 18, type: 'textarea',rows: 15, disabled: true},
|
||||||
|
mgmtIp: {label: '管理网-公网IP', eventName:'change', span: 18, type: 'select',options: [], required: true},
|
||||||
|
descriptionTwo: {label: '', span: 18, type: 'textarea', rows: 15, disabled: true}
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
pubilcNetRuleForm: {publicIp: []},
|
||||||
|
ipContentList: {},
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -235,7 +281,7 @@
|
|||||||
/** 查询角色列表 */
|
/** 查询角色列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
listSwitchManage(this.addDateRange(this.queryParams)).then(response => {
|
listHandle(this.addDateRange(this.queryParams)).then(response => {
|
||||||
this.roleList = response.rows;
|
this.roleList = response.rows;
|
||||||
this.queryParams.total = response.total;
|
this.queryParams.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
@@ -298,6 +344,45 @@
|
|||||||
this.$modal.msgError("操作失败")
|
this.$modal.msgError("操作失败")
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 'pubilcNet':
|
||||||
|
this.pubilcNetOpen = true;
|
||||||
|
this.pubilcNetRuleForm = {publicIp: [],mgmtIp: '', descriptionOne: '', descriptionTwo: ''};
|
||||||
|
networkList({clientId: rowData.clientId}).then(res => {
|
||||||
|
let ipList = [];
|
||||||
|
res && res.data.map(item => {
|
||||||
|
this.ipContentList[item.id] = item;
|
||||||
|
ipList.push({label: item.publicIp, value: item.id});
|
||||||
|
});
|
||||||
|
this.pubilcNetFormList[0].controls.publicIp['options'] = ipList;
|
||||||
|
this.pubilcNetFormList[0].controls.mgmtIp['options'] = ipList;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'publicIp':
|
||||||
|
if (rowData && rowData.length > 0) {
|
||||||
|
this.pubilcNetRuleForm = Object.assign({}, this.pubilcNetRuleForm, this.$refs.publicNetFormRef.$refs.ruleForm.model);
|
||||||
|
let content = '';
|
||||||
|
rowData.forEach(item => {
|
||||||
|
content+= '运营商:' + this.ipContentList[item].isp + '<br>' + '省:' + this.ipContentList[item].province + '<br>'
|
||||||
|
+ '市:' + this.ipContentList[item].city + '<br>' + '公网IP:' + this.ipContentList[item].publicIp + '<br>'
|
||||||
|
+ '接口名称:' + this.ipContentList[item].interfaceName + '<br>' + 'mac地址:' + this.ipContentList[item].macAddress + '<br>'
|
||||||
|
+ '接口类型:' + this.ipContentList[item].interfaceType + '<br>' + 'IPv4地址:' + this.ipContentList[item].ipv4Address + '<br>'
|
||||||
|
+ '网关:' + this.ipContentList[item].gateway + '<br><br>';
|
||||||
|
});
|
||||||
|
this.$set(this.pubilcNetRuleForm, 'descriptionOne', content);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'mgmtIp':
|
||||||
|
if (rowData) {
|
||||||
|
this.pubilcNetRuleForm = Object.assign({}, this.pubilcNetRuleForm, this.$refs.publicNetFormRef.$refs.ruleForm.model);
|
||||||
|
let content = '';
|
||||||
|
content+= '运营商:' + this.ipContentList[rowData].isp + '<br>' + '省:' + this.ipContentList[rowData].province + '<br>'
|
||||||
|
+ '市:' + this.ipContentList[rowData].city + '<br>' + '公网IP:' + this.ipContentList[rowData].publicIp + '<br>'
|
||||||
|
+ '接口名称:' + this.ipContentList[rowData].interfaceName + '<br>' + 'mac地址:' + this.ipContentList[rowData].macAddress + '<br>'
|
||||||
|
+ '接口类型:' + this.ipContentList[rowData].interfaceType + '<br>' + 'IPv4地址:' + this.ipContentList[rowData].ipv4Address + '<br>'
|
||||||
|
+ '网关:' + this.ipContentList[rowData].gateway + '<br><br>';
|
||||||
|
this.$set(this.pubilcNetRuleForm, 'descriptionTwo', content);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'issueBusiness':
|
case 'issueBusiness':
|
||||||
this.issueOpen = true;
|
this.issueOpen = true;
|
||||||
this.title = '下发业务任务';
|
this.title = '下发业务任务';
|
||||||
@@ -380,6 +465,7 @@
|
|||||||
break;
|
break;
|
||||||
case 'cancel':
|
case 'cancel':
|
||||||
this.issueOpen = false;
|
this.issueOpen = false;
|
||||||
|
this.pubilcNetOpen = false;
|
||||||
break;
|
break;
|
||||||
case 'export':
|
case 'export':
|
||||||
// let dataList = [];
|
// let dataList = [];
|
||||||
@@ -398,15 +484,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// form验证
|
// form验证
|
||||||
fnFormValid() {
|
fnFormValid(val, model) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
this.ruleFormData = {};
|
this.ruleFormData = {};
|
||||||
const formValid = this.$refs.formRef.$refs.ruleForm;
|
const formValid = this.$refs[`${val}`].$refs.ruleForm;
|
||||||
// 3. 操作form(如验证)
|
// 3. 操作form(如验证)
|
||||||
formValid.validate((valid) => {
|
formValid.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
if (formValid.model?.deployDevice) {
|
||||||
formValid.model.deployDevice = formValid.model.deployDevice.join('/n');
|
formValid.model.deployDevice = formValid.model.deployDevice.join('/n');
|
||||||
this.ruleFormData = formValid.model;
|
}
|
||||||
|
this[`${model}`] = formValid.model;
|
||||||
resolve(true);
|
resolve(true);
|
||||||
} else {
|
} else {
|
||||||
resolve(false);
|
resolve(false);
|
||||||
@@ -415,7 +503,7 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
async submit(){
|
async submit(){
|
||||||
if (!await this.fnFormValid()) return;
|
if (!await this.fnFormValid('formRef', 'ruleFormData')) return;
|
||||||
let fnType = addMachine;
|
let fnType = addMachine;
|
||||||
if (dataVal && dataVal.id) {
|
if (dataVal && dataVal.id) {
|
||||||
fnType = updateTopology;
|
fnType = updateTopology;
|
||||||
@@ -424,12 +512,32 @@
|
|||||||
this.loading = true;
|
this.loading = true;
|
||||||
fnType(dataVal).then(response => {
|
fnType(dataVal).then(response => {
|
||||||
this.$modal.msgSuccess(response.msg);
|
this.$modal.msgSuccess(response.msg);
|
||||||
this.$router.push("/resource/serverRegister");
|
this.issueOpen = false;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$modal.msgError("操作失败")
|
this.$modal.msgError("操作失败")
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
async submitPubilc() {
|
||||||
|
if (!await this.fnFormValid('publicNetFormRef', 'pubilcNetRuleForm')) return;
|
||||||
|
let params = [];
|
||||||
|
this.pubilcNetRuleForm.publicIp.forEach(item => {
|
||||||
|
if (item && item === this.pubilcNetRuleForm.mgmtIp) {
|
||||||
|
params.push({id: item, status: 3, interfaceName: this.ipContentList[item].interfaceName});
|
||||||
|
delete this.pubilcNetRuleForm.mgmtIp;
|
||||||
|
} else {
|
||||||
|
params.push({id: item, status: 1, interfaceName: this.ipContentList[item].interfaceName});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
if (this.pubilcNetRuleForm && this.pubilcNetRuleForm.mgmtIp) {
|
||||||
|
params.push({id: this.pubilcNetRuleForm.mgmtIp, status: 2, interfaceName: this.ipContentList[this.pubilcNetRuleForm.mgmtIp].interfaceName});
|
||||||
|
}
|
||||||
|
networkList({bindNetworkMsg: params}).then(res => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.pubilcNetOpen = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
export default {
|
export default {
|
||||||
name: "MonitorStrategy",
|
name: "MonitorStrategy",
|
||||||
components: {Form},
|
components: {Form},
|
||||||
dicts: ['rm_register_resource_type', 'collection_cycle', 'switch_type', 'policy_status'],
|
dicts: ['policy_status', 'collection_cycle', 'switch_type'],
|
||||||
props: {
|
props: {
|
||||||
open: {
|
open: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
id: {label: 'ID',hidden: true},
|
id: {label: 'ID',hidden: true},
|
||||||
policyName: {label: '策略名称', span: 12, type: 'input', required: true},
|
policyName: {label: '策略名称', span: 12, type: 'input', required: true},
|
||||||
priority: {label: '优先级', span: 12, type: 'input', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
priority: {label: '优先级', span: 12, type: 'input', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
status: {label: '策略状态', span: 12, type: 'select',options: this.dict.type.dicpolicy_status, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
status: {label: '策略状态', span: 12, type: 'select',options: this.dict.type.policy_status, hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
deployTime: {label: '下发策略时间', span: 12, type: 'date', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
deployTime: {label: '下发策略时间', span: 12, type: 'date', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
createTime: {label: '创建时间', span: 12, type: 'datetime', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
createTime: {label: '创建时间', span: 12, type: 'datetime', hidden: this.paramsData && this.paramsData.readonly ? false : true},
|
||||||
switchType: {label: '交换机类型', span: 12, type: 'select', required: true, options: this.dict.type.switch_type},
|
switchType: {label: '交换机类型', span: 12, type: 'select', required: true, options: this.dict.type.switch_type},
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
if (val && val.data) {
|
if (val && val.data) {
|
||||||
if (val.data && val.data.policy){
|
if (val.data && val.data.policy){
|
||||||
val.data.policy['deployDevice'] = val.data.policy.deployDevice.split('/n');
|
val.data.policy['deployDevice'] = val.data.policy.deployDevice.split('/n');
|
||||||
val.data.policy['status'] = Number(val.data.policy.status);
|
// val.data.policy['status'] = Number(val.data.policy.status);
|
||||||
this.ruleFormData = val.data.policy;
|
this.ruleFormData = val.data.policy;
|
||||||
}
|
}
|
||||||
this.tempContent = val.data['switch'];
|
this.tempContent = val.data['switch'];
|
||||||
|
|||||||
Reference in New Issue
Block a user