agent的6个原数据列表页面、收益管理页面调测

This commit is contained in:
康冉冉
2025-09-04 18:25:23 +08:00
parent 90171cd617
commit d1787207ec
27 changed files with 1477 additions and 159 deletions

View File

@@ -0,0 +1,260 @@
import request from '@/utils/request'
/** ------------------cpuData------------------- */
// 查询列表
export function listCpuInfo(data) {
return request({
url: '/rocketmq/cpuInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getCpuInfo(Id) {
return request({
url: '/rocketmq/cpuInfo/' + Id,
method: 'get'
})
}
// 新增
export function addCpuInfo(data) {
return request({
url: '/rocketmq/cpuInfo',
method: 'post',
data: data
})
}
// 修改
export function updateCpuInfo(data) {
return request({
url: '/rocketmq/cpuInfo',
method: 'put',
data: data
})
}
// 删除
export function delCpuInfo(Ids) {
return request({
url: '/rocketmq/cpuInfo/' + Ids,
method: 'delete'
})
}
/** ------------------磁盘数据diskData------------------- */
// 查询列表
export function listDiskInfo(data) {
return request({
url: '/rocketmq/diskInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getDiskInfo(Id) {
return request({
url: '/rocketmq/diskInfo/' + Id,
method: 'get'
})
}
// 新增
export function addDiskInfo(data) {
return request({
url: '/rocketmq/diskInfo',
method: 'post',
data: data
})
}
// 修改
export function updateDiskInfo(data) {
return request({
url: '/rocketmq/diskInfo',
method: 'put',
data: data
})
}
// 删除
export function delDiskInfo(Ids) {
return request({
url: '/rocketmq/diskInfo/' + Ids,
method: 'delete'
})
}
/** ------------------容器数据dockerData------------------- */
// 查询列表
export function listDockerInfo(data) {
return request({
url: '/rocketmq/dockerInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getDockerInfo(Id) {
return request({
url: '/rocketmq/dockerInfo/' + Id,
method: 'get'
})
}
// 新增
export function addDockerInfo(data) {
return request({
url: '/rocketmq/dockerInfo',
method: 'post',
data: data
})
}
// 修改
export function updateDockerInfo(data) {
return request({
url: '/rocketmq/dockerInfo',
method: 'put',
data: data
})
}
// 删除
export function delDockerInfo(Ids) {
return request({
url: '/rocketmq/dockerInfo/' + Ids,
method: 'delete'
})
}
/** ------------------内存信息数据memoryData------------------- */
// 查询列表
export function listMemoryInfo(data) {
return request({
url: '/rocketmq/memoryInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getMemoryInfo(Id) {
return request({
url: '/rocketmq/memoryInfo/' + Id,
method: 'get'
})
}
// 新增
export function addMemoryInfo(data) {
return request({
url: '/rocketmq/memoryInfo',
method: 'post',
data: data
})
}
// 修改
export function updateMemoryInfo(data) {
return request({
url: '/rocketmq/memoryInfo',
method: 'put',
data: data
})
}
// 删除
export function delMemoryInfo(Ids) {
return request({
url: '/rocketmq/memoryInfo/' + Ids,
method: 'delete'
})
}
/** ------------------挂载点信息数据mountPointData------------------- */
// 查询列表
export function listMountPointInfo(data) {
return request({
url: '/rocketmq/mountPointInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getMountPointInfo(Id) {
return request({
url: '/rocketmq/mountPointInfo/' + Id,
method: 'get'
})
}
// 新增
export function addMountPointInfo(data) {
return request({
url: '/rocketmq/mountPointInfo',
method: 'post',
data: data
})
}
// 修改
export function updateMountPointInfo(data) {
return request({
url: '/rocketmq/mountPointInfo',
method: 'put',
data: data
})
}
// 删除
export function delMountPointInfo(Ids) {
return request({
url: '/rocketmq/mountPointInfo/' + Ids,
method: 'delete'
})
}
/** ------------------系统信息数据systemData------------------- */
// 查询列表
export function listSystemInfo(data) {
return request({
url: '/rocketmq/systemInfo/list',
method: 'post',
data: data
})
}
// 查询详细
export function getSystemInfo(Id) {
return request({
url: '/rocketmq/systemInfo/' + Id,
method: 'get'
})
}
// 新增
export function addSystemInfo(data) {
return request({
url: '/rocketmq/systemInfo',
method: 'post',
data: data
})
}
// 修改
export function updateSystemInfo(data) {
return request({
url: '/rocketmq/systemInfo',
method: 'put',
data: data
})
}
// 删除
export function delSystemInfo(Ids) {
return request({
url: '/rocketmq/systemInfo/' + Ids,
method: 'delete'
})
}

View File

@@ -2,7 +2,7 @@
<div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="config && config.labelWidth || '130px'" class="demo-ruleForm">
<el-row v-for="(formItem,index) of formList">
<h4 class="form-header h4">{{formItem.config.title}}</h4>
<h4 v-if="formItem && formItem.config && formItem.config.title" class="form-header h4">{{formItem.config.title}}</h4>
<el-col v-for="(formVal,key,index) of formItem['controls']" :span="formVal.span" v-if="!formVal.hidden" :style="formVal.style">
<el-form-item
:key="index"

View File

@@ -1,19 +1,19 @@
<template>
<div>
<!-- 表格头部按钮 -->
<el-row :gutter="10" class="mb8" v-if="config && config.tableButton && config.tableButton.top">
<template v-for="item of config.tableButton.top">
<el-col :span="1.5">
<el-button :type="item.type" plain size="mini" :icon="item.icon" @click="handleClick(item,{})" :hasPermi="[item.hasPermi]">{{item.content}}</el-button>
</el-col>
</template>
<right-toolbar :showSearch.sync="showSearch" @queryTable="renderList" :columns="columns"></right-toolbar>
<el-row :gutter="10" class="mb8">
<template v-if="config && config.tableButton && config.tableButton.top">
<el-col :span="1.5" v-for="item of config.tableButton.top">
<el-button :type="item.type" plain size="mini" :icon="item.icon" @click="handleClick(item,{})" :hasPermi="[item.hasPermi]">{{item.content}}</el-button>
</el-col>
</template>
<right-toolbar v-if="!(config && config.colTopHiddenIcon)" :showSearch.sync="showSearch" @queryTable="renderList" :columns="columns"></right-toolbar>
</el-row>
<!-- 表格数据 -->
<el-table v-loading="loading" :data="tableList" ref="selChangeList" @selection-change="handleSelectionChange">
<el-table-column v-if="!(config && config.colHiddenCheck)" type="selection" width="55" align="center" />
<el-table v-loading="loading" :data="tableList" ref="selChangeList" highlight-selection-row @selection-change="handleSelectionChange">
<el-table-column v-if="!(config && config.colHiddenCheck)" fixed type="selection" width="55" align="center" />
<template v-for="(column, key, index) of columns">
<el-table-column :label="column.label" :key="key" :prop="key" :width="column.width" min-width="100px" v-if="column && column.visible" align="center" :show-overflow-tooltip="true">
<el-table-column v-if="column && column.visible" :label="column.label" :key="key" :prop="key" :width="column.width" :min-width="column.minWidth || '100px'" align="center" :show-overflow-tooltip="true">
<!-- 插槽 自定义列表表头数据格式 -->
<template #header v-if="column && column.slotHeaderName">
<span>{{column.label}}</span>
@@ -74,7 +74,8 @@
config: {
type: Object,
default: () => ({
colHiddenCheck: false
colHiddenCheck: false,
colTopHiddenIcon: false
})
}
},

View File

@@ -1,93 +1,93 @@
<template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>
</transition>
</div>
</template>
<script>
import logoImg from '@/assets/logo/logo.png'
import variables from '@/assets/styles/variables.scss'
export default {
name: 'SidebarLogo',
props: {
collapse: {
type: Boolean,
required: true
}
},
computed: {
variables() {
return variables
},
sideTheme() {
return this.$store.state.settings.sideTheme
}
},
data() {
return {
title: process.env.VUE_APP_TITLE,
logo: logoImg
}
}
}
</script>
<style lang="scss" scoped>
.sidebarLogoFade-enter-active {
transition: opacity 1.5s;
}
.sidebarLogoFade-enter,
.sidebarLogoFade-leave-to {
opacity: 0;
}
.sidebar-logo-container {
position: relative;
width: 100%;
height: 50px;
line-height: 50px;
background: #2b2f3a;
text-align: center;
overflow: hidden;
& .sidebar-logo-link {
height: 100%;
width: 100%;
& .sidebar-logo {
width: 32px;
height: 32px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {
display: inline-block;
margin: 0;
color: #fff;
font-weight: 600;
line-height: 50px;
font-size: 14px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
}
&.collapse {
.sidebar-logo {
margin-right: 0px;
}
}
}
</style>
<template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" style="font-size: 16px;" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" style="font-size: 16px;" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>
</transition>
</div>
</template>
<script>
import logoImg from '@/assets/logo/logo.png'
import variables from '@/assets/styles/variables.scss'
export default {
name: 'SidebarLogo',
props: {
collapse: {
type: Boolean,
required: true
}
},
computed: {
variables() {
return variables
},
sideTheme() {
return this.$store.state.settings.sideTheme
}
},
data() {
return {
title: process.env.VUE_APP_TITLE,
logo: logoImg
}
}
}
</script>
<style lang="scss" scoped>
.sidebarLogoFade-enter-active {
transition: opacity 1.5s;
}
.sidebarLogoFade-enter,
.sidebarLogoFade-leave-to {
opacity: 0;
}
.sidebar-logo-container {
position: relative;
width: 100%;
height: 50px;
line-height: 50px;
background: #2b2f3a;
text-align: center;
overflow: hidden;
& .sidebar-logo-link {
height: 100%;
width: 100%;
& .sidebar-logo {
width: 32px;
height: 32px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {
display: inline-block;
margin: 0;
color: #fff;
font-weight: 600;
line-height: 50px;
font-size: 14px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
}
&.collapse {
.sidebar-logo {
margin-right: 0px;
}
}
}
</style>

View File

@@ -384,6 +384,21 @@ export const dynamicRoutes = [
}
]
},
// agent采集数据
{
path: '/agentCollect/cpuData/view',
component: Layout,
hidden: true,
permissions: ['agentCollect:cpuData:view'],
children: [
{
path: ':id?',
component: () => import('@/views/agentCollect/cpuData/cpuDataView'),
name: 'cpuDataView',
meta: { title: 'cpu数据详情', activeMenu: '/agentCollect/cpuData' }
}
]
},
]
// 防止连续点击多次路由报错

View File

@@ -0,0 +1,155 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="客户端ID" prop="clientId">
<el-input
v-model="queryParams.clientId"
placeholder="请输入客户端ID"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listCpuInfo, delCpuInfo} from "@/api/agentCollect/collectData";
export default {
name: 'CpuData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
clientId: {label: `客户端ID`, minWidth: '160', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
avg1: {label: `CPU1分钟负载`, minWidth: '150', visible: true},
avg5: {label: `CPU5分钟负载`, minWidth: '150', visible: true},
avg15: {label: `CPU15分钟负载`, minWidth: '150', visible: true},
interrupt: {label: `CPU硬件中断提供服务时间`, minWidth: '200', visible: true},
uti: {label: `CPU使用率(%)`, minWidth: '150', visible: true},
num: {label: `CPU数量(核数)`, minWidth: '150', visible: true},
normal: {label: `CPU正常运行时间`, minWidth: '150', visible: true},
idle: {label: `CPU空闲时间`, minWidth: '150', visible: true},
iowait: {label: `CPU等待响应时间`, minWidth: '150', visible: true},
system: {label: `CPU系统时间`, minWidth: '150', visible: true},
noresp: {label: `CPU软件无响应时间`, minWidth: '200', visible: true},
user: {label: `CPU用户进程所花费的时间`, minWidth: '200', visible: true},
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:cpuData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:cpuData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:cpuData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:cpuData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listCpuInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/cpuData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/cpuData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delCpuInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/cpuInfo/export", {
properties: dataList
}, `CPU数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -0,0 +1,89 @@
<template>
<div class="app-container">
<Form :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
</div>
</template>
<script setup>
import Form from '@/components/form/index.vue';
import {addCpuInfo, getCpuInfo, updateCpuInfo} from "@/api/agentCollect/collectData"
export default {
name: 'CpuDataView',
components: {Form},
data() {
return {
ruleForm: {},
formList: [],
paramsData: {}
}
},
created() {
this.paramsData = this.$route && this.$route.query;
if (this.paramsData && this.paramsData.id) {
this.getFormDataList(this.paramsData.id);
}
this.fnFormList();
},
methods: {
// formList集合
fnFormList(objVal) {
this.formList = [{
config: {title: '基本信息'},
controls: {
id: {label: 'ID',hidden: true},
clientId: {label: `客户端ID`, span: 12, type: 'input',},
avg1: {label: `CPU1分钟负载`, span: 12, type: 'input',},
avg5: {label: `CPU5分钟负载`, span: 12, type: 'input'},
avg15: {label: `CPU15分钟负载`, span: 12, type: 'input'},
interrupt: {label: `CPU硬件中断提供服务时间(秒)`, span: 12, type: 'input'},
uti: {label: `CPU使用率(%)`, width: '150', span: 12, type: 'input'},
num: {label: `CPU数量(核数)`, width: '150', span: 12, type: 'input'},
normal: {label: `CPU正常运行时间(秒)`, span: 12, type: 'input'},
idle: {label: `CPU空闲时间(秒)`, span: 12, type: 'input'},
iowait: {label: `CPU等待响应时间(秒)`, span: 12, type: 'input'},
system: {label: `CPU系统时间(秒)`,span: 12, type: 'input'},
noresp: {label: `CPU软件无响应时间(秒)`, span: 12, type: 'input'},
user: {label: `CPU用户进程所花费的时间(秒)`, span: 12, type: 'input'},
}
}];
},
// 获取详情
getFormDataList(id) {
getCpuInfo(id).then(val => {
if (val && val.data) {
val.data['includedDevices'] = val.data['includedDevices'].split(',');
this.ruleForm = val.data;
}
}).catch(() => {
this.$modal.msgError("操作失败")
});
},
// 监听事件
callback(result, dataVal, formVal) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'submit':
dataVal['includedDevices'] = dataVal['includedDevices'].join();
let fnType = addCpuInfo;
if (dataVal && dataVal.id) {
fnType = updateCpuInfo;
}
fnType(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);
this.$router.push("/resource/group")
}).catch(() => {
this.$modal.msgError("操作失败")
});
break;
case 'cancle':
this.$router.push("/resource/group");
break;
default:
}
}
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,152 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="客户端ID" prop="clientId">
<el-input
v-model="queryParams.clientId"
placeholder="请输入客户端ID"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listDiskInfo, delDiskInfo} from "@/api/agentCollect/collectData"
export default {
name: 'DiskData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
clientId: {label: `客户端ID`, minWidth: '160', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
name: {label: `磁盘名称`, minWidth: '150', visible: true},
serial: {label: `磁盘序列号`, minWidth: '150', visible: true},
total: {label: `磁盘总大小(GB)`, minWidth: '150', visible: true},
writeSpeed: {label: `磁盘写入速率(字节/秒)`, minWidth: '200', visible: true},
readSpeed: {label: `磁盘读取速率(字节/秒)`, minWidth: '150', visible: true},
writeTimes: {label: `磁盘写入次数`, minWidth: '150', visible: true},
readTimes: {label: `磁盘读取次数`, minWidth: '150', visible: true},
writeBytes: {label: `磁盘写入总字节数`, minWidth: '150', visible: true},
readBytes: {label: `磁盘读取总字节数`, minWidth: '150', visible: true},
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:diskData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:diskData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:diskData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:diskData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listDiskInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/diskData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/diskData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delDiskInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/diskInfo/export", {
properties: dataList
}, `磁盘数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -0,0 +1,149 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="容器名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入容器名称"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listDockerInfo, delDockerInfo} from "@/api/agentCollect/collectData"
export default {
name: 'DockerData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
name: {label: `容器名称`, minWidth: '200', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
status: {label: `容器状态`, minWidth: '160', visible: true},
cpuUtil: {label: `容器CPU使用率(%)`, minWidth: '150', visible: true},
memUtil: {label: `容器内存使用率(%)`, minWidth: '150', visible: true},
netInSpeed: {label: `容器网络接收速率(KB/s)`, minWidth: '200', visible: true},
netOutSpeed: {label: `容器网络发送速率(KB/s)`, minWidth: '200', visible: true},
clientId: {label: `设备唯一标识`, minWidth: '160', visible: true},
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:dockerData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:dockerData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:dockerData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:dockerData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listDockerInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/dockerData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/dockerData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delDockerInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/dockerInfo/export", {
properties: dataList
}, `容器数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -0,0 +1,149 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="客户端ID" prop="clientId">
<el-input
v-model="queryParams.clientId"
placeholder="请输入客户端ID"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listMemoryInfo, delMemoryInfo} from "@/api/agentCollect/collectData"
export default {
name: 'MemoryData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
clientId: {label: `客户端ID`, minWidth: '160', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
swapSizeFree: {label: `交换卷/文件的可用空间(字节)`, minWidth: '200', visible: true},
untilzation: {label: `内存利用率(%)`, minWidth: '150', visible: true},
swapSizePercent: {label: `可用交换空间百分比(%)`, minWidth: '200', visible: true},
available: {label: `可用内存(字节)`, minWidth: '200', visible: true},
percent: {label: `可用内存百分比(%)`, minWidth: '150', visible: true},
total: {label: `总内存(字节)`, minWidth: '150', visible: true}
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:memoryData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:memoryData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:memoryData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:memoryData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listMemoryInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/memoryData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/memoryData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delMemoryInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/memoryInfo/export", {
properties: dataList
}, `内存信息数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -0,0 +1,148 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="客户端ID" prop="clientId">
<el-input
v-model="queryParams.clientId"
placeholder="请输入客户端ID"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listMountPointInfo, delMountPointInfo} from "@/api/agentCollect/collectData"
export default {
name: 'MountPointData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
clientId: {label: `客户端ID`, minWidth: '160', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
mount: {label: `挂载点路径`, minWidth: '200', visible: true},
vfsType: {label: `文件系统类型`, minWidth: '150', visible: true},
vfsFree: {label: `可用空间`, minWidth: '200', visible: true},
vfsTotal: {label: `总空间`, minWidth: '200', visible: true},
vfsUtil: {label: `空间利用率`, minWidth: '150', visible: true}
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:mountPointData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:mountPointData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:mountPointData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:mountPointData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listMountPointInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/mountPointData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/mountPointData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delMountPointInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/mountPointInfo/export", {
properties: dataList
}, `挂载点信息数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -0,0 +1,154 @@
<template>
<div class="app-container pageTopForm">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80px" class="demo-ruleForm">
<el-col :span="8">
<el-form-item label="客户端ID" prop="clientId">
<el-input
v-model="queryParams.clientId"
placeholder="请输入客户端ID"
clearable
@keyup.enter="handleQuery">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="lastBtnSty">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 表格数据 -->
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="tableList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
</div>
</template>
<script>
import TableList from "@/components/table/index.vue";
import {listSystemInfo, delSystemInfo} from "@/api/agentCollect/collectData"
export default {
name: 'SystemData',
components: {TableList},
data() {
return {
tableList: [],
loading: true,
showSearch: true,
// 列显隐信息
columns: {
id: {label: `ID`},
clientId: {label: `客户端ID`, minWidth: '160', visible: true},
createTime: {label: `创建时间`, minWidth: '160', visible: true},
os: {label: `操作系统`, minWidth: '150', visible: true},
arch: {label: `操作系统架构`, minWidth: '120', visible: true},
maxProc: {label: `最大进程数`, minWidth: '200', visible: true},
runProcNum: {label: `正在运行的进程数`, minWidth: '200', visible: true},
usersNum: {label: `登录用户数`, minWidth: '150', visible: true},
diskSizeTotal: {label: `硬盘总可用空间(GB)`, minWidth: '200', visible: true},
bootTime: {label: `系统启动时间(Unix时间戳)`, minWidth: '200', visible: true},
uname: {label: `系统描述`, minWidth: '200', visible: true},
localTime: {label: `系统本地时间`, minWidth: '200', visible: true},
upTime: {label: `系统正常运行时间(秒)`, minWidth: '200', visible: true},
procNum: {label: `进程数`, minWidth: '200', visible: true}
},
config: {
tableButton: {
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'agentCollect:systemData:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'agentCollect:systemData:delete'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'agentCollect:systemData:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'agentCollect:systemData:edit'},
]
}
},
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
}
}
},
created() {
this.getList();
},
activated() {
// this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
let newParams = Object.assign({},{...this.queryParams}, {total: 0});
listSystemInfo(newParams).then(response => {
this.tableList = response.rows;
this.queryParams.total = response.total;
this.loading = false;
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryRef");
this.handleQuery();
},
// 处理子组件传递的新值
handleValueChange(newValue) {
// 父组件更新自身数据,实现同步
this.showSearch = newValue;
// console.log('父组件拿到新值:', newValue);
},
callback(result, rowData, selectChange, selectList) {
if (result && result.fnCode) {
switch (result.fnCode) {
case 'add':
// this.$router.push({path:'/agentCollect/systemData/view'});
break;
case 'edit':
// this.$router.push({
// path:'/agentCollect/systemData/view',
// query:{
// id: rowData.id
// }
// });
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delSystemInfo(selectChange)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功")
}).catch(() => {});
break;
case 'export':
let dataList = [];
Object.keys(this.columns).forEach(item => {
if (item.visible) {
dataList.push(item.prop);
}
});
this.download("rocketmq/systemInfo/export", {
properties: dataList
}, `系统信息数据_${new Date().getTime()}.xlsx`);
break;
default:
}
}
}
}
}
</script>
<style scoped>
::v-deep .lastBtnSty .el-form-item__content{
margin-left: unset!important;
}
</style>

View File

@@ -20,15 +20,25 @@
<template #tempBusinessName="{ row, column }">
<div>
<!-- 非编辑状态显示文本 -->
<span v-if="!row.editStatus">{{ row.businessName }}</span>
<!-- 编辑状态显示输入框 -->
<el-input
v-else
v-model="row.businessName"
size="mini"
@blur="callback({fnCode: 'edit'}, row)"
></el-input>
<el-button v-if="!row.editStatus" icon="el-icon-edit" type="text" @click="rowDataChange(row)"></el-button>
<template v-if="!row.editStatus">
<span>{{ row.businessName }}</span>
<el-button icon="el-icon-edit" type="text" @click="rowDataChange(row)"></el-button>
</template>
<template v-else>
<!-- 编辑状态显示输入框 -->
<el-col :span="16">
<el-input
v-model="row.businessName"
size="mini"
@keyup.enter="callback({fnCode: 'edit'}, row)"
@blur="callback({fnCode: 'edit'}, row)"
></el-input>
</el-col>
<el-col :span="8">
<el-button size="mini" type="primary" @click="callback({fnCode: 'submit'}, row)">确定</el-button>
<el-button size="mini" @click="callback({fnCode: 'cancel'}, row)">取消</el-button>
</el-col>
</template>
</div>
</template>
</TableList>
@@ -44,7 +54,7 @@
data() {
return {
editStatus: false,
loading: true,
loading: false,
showSearch: true,
roleList: [],
queryParams: {
@@ -66,7 +76,7 @@
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:earnManage:business:add'},
// {content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:earnManage:business:detele'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:business:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:business:export'},
],
// line: [
// {content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:earnManage:business:edit'},
@@ -117,7 +127,9 @@
this.$router.push({
path:'/disRevenue/earnManage/business/details/index'});
break;
case 'edit':
case 'submit':
if (this.loading) return;
this.loading = true;
countBusinessName(rowData).then(res => {
updateBusiness(rowData).then(response => {
this.$set(rowData, 'editStatus', false);
@@ -133,6 +145,9 @@
this.loading = false;
});
break;
case 'cancel':
this.$set(rowData, 'editStatus', false);
break;
case 'delete':
this.$modal.confirm('是否确认删除数据项?').then(function() {
return delBusiness(selectChange)

View File

@@ -71,7 +71,7 @@
config: {
tableButton: {
top: [
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:revenueMethod:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:revenueMethod:export'},
]
}
}

View File

@@ -16,6 +16,7 @@
return {
ruleForm: {},
formList: [],
switchNameList: [],
paramsData: {}
}
},
@@ -35,9 +36,9 @@
rules: [{required: true, message: '请选择节点名称', trigger: 'change'}]},
businessName: {label: '业务名称', span: 12, style: 'display: block;', type: 'select', options:[], eventName: 'change',
rules: [{required: true, message: '请选择业务名称', trigger: 'change'}]},
code: {label: '业务代码', span: 12, style: 'display: block;', type: 'input', disabled: true,
businessId: {label: '业务代码', span: 12, style: 'display: block;', type: 'input', disabled: true,
rules: [{required: true, message: '请输入业务代码', trigger: 'blur'}]},
creatTime: {label: '月份选择', span: 12, type: 'month',
monthTime: {label: '月份选择', span: 12, type: 'month',
rules: [{required: true, message: '请选择月份', trigger: 'change'}]},
}
}];
@@ -45,6 +46,7 @@
// 获取交换机下拉
switchList() {
listAllResourList({resourceType: this.paramsData.resourceType}).then(val => {
this.switchNameList = val && val;
this.formList[0].controls.nodeName['options'] = val && val.map(item => {
return Object.assign({label: item.resourceName, value: item.resourceName});
});
@@ -66,10 +68,15 @@
this.$set(this.ruleForm, 'businessName', item.label);
}
});
this.$set(this.ruleForm, 'code', dataVal);
this.$set(this.ruleForm, 'businessId', dataVal);
}
break;
case 'submit':
this.switchNameList.find(item => {
if (item.resourceName === dataVal['nodeName']) {
dataVal['hardwareSn'] = item.hardwareSn;
}
});
dataVal['resourceType'] = this.paramsData.resourceType;
calculateAvg(dataVal).then(response => {
this.$modal.msgSuccess(response.msg);

View File

@@ -106,21 +106,21 @@
// 列显隐信息
columns: {
id: {label: `ID`},
nodeName: {label: `节点名称`, visible: true},
hardwareSn: {label: `硬件SN`},
uplinkSwitch: {label: `上联交换机`},
businessId: {label: `业务代码`},
businessName: {label: `业务名称`},
bandwidth95Daily: {label: `95宽带值Mbps/日`, slotName: 'tempDay', slotHeaderName: '使用服务器的发送流量发送流量值除以1000000', visible: true},
bandwidth95Monthly: {label: `95宽带值Mbps/月`, visible: true, slotName: 'tempMonth',
nodeName: {label: `节点名称`, minWidth: '200', visible: true},
hardwareSn: {label: `硬件SN`, minWidth: '200'},
uplinkSwitch: {label: `上联交换机`, minWidth: '150'},
businessId: {label: `业务代码`, minWidth: '150'},
businessName: {label: `业务名称`, minWidth: '150'},
bandwidth95Daily: {label: `95宽带值Mbps/日`, minWidth: '200', slotName: 'tempDay', slotHeaderName: '使用服务器的发送流量发送流量值除以1000000', visible: true},
bandwidth95Monthly: {label: `95宽带值Mbps/月`, minWidth: '200', visible: true, slotName: 'tempMonth',
slotHeaderName: '使用服务器的发送流量发送流量值除以1000000若服务器在一个自然月内有收益方式的变更以最后一次变更的时间为开始到月末进行该值的统计若服务器收益方式为包端则月底不用进行该值的计算。'},
packageBandwidthDaily: {label: `包端带宽值Mbps/日`, slotName: 'tempDay', visible: true},
packageBandwidthDaily: {label: `包端带宽值Mbps/日`, minWidth: '200', slotName: 'tempDay', visible: true},
// customerName: {label: `设备业务客户`,visible: true},
avgMonthlyBandwidth95: {label: `月均日95值Mbps`,slotName: 'tempDay'},
effectiveBandwidth95Daily: {label: `有效95带宽值Mbps/日`, slotName: 'tempDay'},
effectiveBandwidth95Monthly: {label: `有效95带宽值Mbps/月`,slotName: 'tempMonth'},
effectiveAvgMonthlyBandwidth95: {label: `有效月均日95值Mbps`,slotName: 'tempDay'},
resourceType: {label: `创建时间`},
avgMonthlyBandwidth95: {label: `月均日95值Mbps`, minWidth: '200',slotName: 'tempDay'},
effectiveBandwidth95Daily: {label: `有效95带宽值Mbps/日`, minWidth: '200', slotName: 'tempDay'},
effectiveBandwidth95Monthly: {label: `有效95带宽值Mbps/月`, minWidth: '200', slotName: 'tempMonth'},
effectiveAvgMonthlyBandwidth95: {label: `有效月均日95值Mbps`, minWidth: '200', slotName: 'tempDay'},
createDatetime: {label: `创建时间`, minWidth: '150'},
},
config: {
// searcherForm: [
@@ -128,7 +128,7 @@
// ],
tableButton: {
top: [
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:server:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:server:export'},
{content: '图形分析', fnCode: 'echartView', type: 'success', icon: 'el-icon-data-analysis', hasPermi: 'disRevenue:earnManage:server:graphicAnalysis'},
{content: '生成月均日95值', fnCode: 'createData', type: 'success', icon: 'el-icon-data-analysis', hasPermi: 'disRevenue:earnManage:server:add'},
],
@@ -152,7 +152,7 @@
}
},
created() {
this.getList();
// this.getList();
},
activated() {
this.getList();

View File

@@ -53,7 +53,7 @@
{label: `有效95带宽值Mbps/日`, prop: 'effectiveAvgMonthlyBandwidth95', slotName: true, visible: type},
{label: `包端带宽值Mbps/日`, prop: 'packageBandwidthDaily', slotName: true, visible: type},
{label: `流量端口`, prop: 'name', width: '550', visible: !type},
{label: `发送流量值bytes`, prop: 'outSpeed', visible: !type},
{label: `发送流量值bytes/s`, prop: 'outSpeed', visible: !type},
];
},
/** 查询角色列表 */

View File

@@ -104,11 +104,11 @@
// 列显隐信息
columns: {
id: { label: `id`, visible: false },
nodeName: { label: `节点名称`, visible: true },
nodeName: { label: `节点名称`, minWidth: '200', visible: true },
hardwareSn: { label: `硬件SN`, visible: false},
revenueMethod: { label: `收益方式`, slotName: 'tempRevenue', visible: true },
trafficPort: { label: `流量网口`, visible: true },
bandwidth95: { label: `95宽带Mbps`, visible: true },
trafficPort: { label: `流量网口`, minWidth: '250', visible: true },
bandwidth95: { label: `包端带宽Mbps`, visible: true },
lastModifyTime: { label: `修改时间`, visible: true }
},
config: {
@@ -117,7 +117,7 @@
// ],
tableButton: {
top: [
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:serverRevenue:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:serverRevenue:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-tickets', hasPermi: 'disRevenue:earnManage:serverRevenue:edit'}

View File

@@ -142,15 +142,15 @@
slotHeaderName: '不同的类型统计方式不一样当类型是服务器时使用的是接口的接收流量95带宽值Mbs/日和95带宽值Mbs/月统计的是交换机接口的接收流量当类型是机房出口的时候95带宽值Mbs/日和95带宽值Mbs/月统计的是交换机接口的发送流量', visible: true },
businessId: {label: `业务代码`},
businessName: {label: `业务名称`},
bandwidth95Daily: { label: `95宽带值Mbps/日`, slotName: 'tempDay', visible: true },
bandwidth95Monthly: { label: `95宽带值Mbps/月`, slotName: 'tempMonth', visible: true },
bandwidth95Daily: { label: `95宽带值Mbps/日`, width: '200', slotName: 'tempDay', visible: true },
bandwidth95Monthly: { label: `95宽带值Mbps/月`, width: '200', slotName: 'tempMonth', visible: true },
nodeName: { label: `服务器节点名称`},
avgMonthlyBandwidth95: {label: `月均日95值Mbps`, slotName: 'tempDay'},
effectiveBandwidth95Daily: {label: `有效95带宽值Mbps/日`,slotName: 'tempDay'},
effectiveBandwidth95Monthly: {label: `有效95带宽值Mbps/月`, slotName: 'tempMonth',},
effectiveAvgMonthlyBandwidth95: {label: `有效月均日95值Mbps`, slotName: 'tempDay'},
createTime: { label: `创建时间`},
lastModifyTime: { label: `修改时间`}
avgMonthlyBandwidth95: {label: `月均日95值Mbps`, width: '200', slotName: 'tempDay'},
effectiveBandwidth95Daily: {label: `有效95带宽值Mbps/日`, width: '200', slotName: 'tempDay'},
effectiveBandwidth95Monthly: {label: `有效95带宽值Mbps/月`, width: '200', slotName: 'tempMonth',},
effectiveAvgMonthlyBandwidth95: {label: `有效月均日95值Mbps`, width: '200', slotName: 'tempDay'},
createTime: { label: `创建时间`, width: '150'},
lastModifyTime: { label: `修改时间`, width: '150'}
},
config: {
// searcherForm: [
@@ -158,7 +158,7 @@
// ],
tableButton: {
top: [
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:switch:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:earnManage:switch:export'},
{content: '图形分析', fnCode: 'echartView', type: 'success', icon: 'el-icon-data-analysis', hasPermi: 'disRevenue:earnManage:switch:graphicAnalysis'},
// {content: '生成月均日95值', fnCode: 'createData', type: 'success', icon: 'el-icon-data-analysis', hasPermi: 'disRevenue:earnManage:switch:add'},
],

View File

@@ -61,7 +61,7 @@
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:register:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:register:detele'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:register:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:register:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:register:edit'},

View File

@@ -79,7 +79,7 @@
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:monitorStategy:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:monitorStategy:detele'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:monitorStategy:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:monitorStategy:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:monitorStategy:edit'},

View File

@@ -61,7 +61,7 @@
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:monitorTemp:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:monitorTemp:detele'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:monitorTemp:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:monitorTemp:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:monitorTemp:edit'},

View File

@@ -15,6 +15,7 @@
return {
ruleForm: {
resourceType: '1',
snmpDetect: '1',
protocol: '1',
resourceVersion: '1',
securityLevel: '1',

View File

@@ -1,6 +1,13 @@
<template>
<div class="app-container">
<Form :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
<Form :formList="formList" :ruleFormData="ruleForm" :config="{buttonGroup: []}" @fnClick="callback"></Form>
<el-tabs v-model="activeName">
<el-tab-pane label="监控项" name="first">
<Form :formList="formListTow" :ruleFormData="ruleFormTow" :config="{buttonGroup: []}" @fnClick="callback"></Form>
</el-tab-pane>
<el-tab-pane label="自动发现项" name="second">自动发现项</el-tab-pane>
<el-tab-pane label="告警信息" name="third">告警信息</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -16,7 +23,23 @@
return {
ruleForm: {},
formList: [],
paramsData: {}
ruleFormTow: {},
formListTow: [{
controls: {
id: {label: 'ID',hidden: true},
hardwareSn: {label: '系统描述', span: 12, type: 'input',disabled: true},
resourceType: {label: '系统位置', span: 12, type: 'input',disabled: true},
resourceName: {label: '系统Object ID', span: 12, type: 'input', disabled: true},
ipAddress: {label: '系统MAC地址', span: 12, type: 'input',disabled: true},
onlineStatus: {label: '系统运行时间', span: 12, type: 'date',disabled: true},
switchName: {label: '设备名称', span: 12, type: 'select',disabled: true},
resourceGroup: {label: '系统联系信息', span: 12, type: 'select',disabled: true},
cpu: {label: '设备软件版本', span: 12, type: 'input',disabled: true},
neicun: {label: '系统名称', span: 12, type: 'input',disabled: true},
}
}],
paramsData: {},
activeName: 'first'
}
},
created() {

View File

@@ -135,7 +135,7 @@
],
tableButton: {
// top: [
// {content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:resMonitor:export'},
// {content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:resMonitor:export'},
// ],
line: [
{content: '详情', fnCode: 'details', type: 'text', icon: 'el-icon-view', hasPermi: 'disRevenue:resource:resMonitor:details'},

View File

@@ -63,7 +63,7 @@
top: [
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'disRevenue:resource:topology:add'},
{content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:resource:topology:detele'},
{content: '导出', fnCode: 'export', type: 'primary', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:topology:export'},
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'disRevenue:resource:topology:export'},
],
line: [
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:resource:topology:edit'},

View File

@@ -32,7 +32,7 @@
<span @click="routerLine(1)" style="float: right;font-size: 12px; color: #0d52d9;cursor: pointer;">更多 >></span>
</div>
<div style="height: 90%;overflow: scroll;" class="newSty">
<TableList :columns="serverColumns" :queryParams="serQueryParams" :tableList="serTableList"></TableList>
<TableList :config="{colHiddenCheck: true, colTopHiddenIcon: true}" :columns="serverColumns" :queryParams="serQueryParams" :tableList="serTableList"></TableList>
</div>
</div>
<div class="disInlineBlock h100 p10" style="width: 49.5%;border: 1px solid #d8dce6;border-radius: 10px;vertical-align: middle;">
@@ -41,7 +41,7 @@
<span @click="routerLine(2)" style="float: right;font-size: 12px; color: #0d52d9;cursor: pointer;">更多 >></span>
</div>
<div style="height: 90%;overflow: scroll;" class="newSty">
<TableList :columns="resMonitorColumns" :queryParams="resQueryParams" :tableList="resTableList"></TableList>
<TableList :config="{colHiddenCheck: true, colTopHiddenIcon: true}" :columns="resMonitorColumns" :queryParams="resQueryParams" :tableList="resTableList"></TableList>
</div>
</div>
</div>