Authored by 张凯

chore:腾讯云资源池及节点详情页

... ... @@ -2735,6 +2735,55 @@ layui.define(['soulTable', 'commonDetail', 'common', 'laytpl', 'view', 'admin',
{field: 'resTypeName', title: '资源类型', minWidth: x_110, align: 'center'},
{field: 'state', title: '资源状态', width: x_110, align: 'center', sort: true, templet: '#resStateTpl'}
],
"TENCENT_CLOUD_PLAT_CLUSTER": [
{
title: '#', width: x_50, childTitle: false,isChild: function(row){return row.childrenNum != 0}, children: [{
title: '节点',
url: function (row) {
return layui.common.domainName + '/api-web/home/virtual-res-list/TENCENT_CLOUD_PLAT_CLUSTER_NODE?access_token=' + layui.sessions.getToken()['access_token'] + '&parentId=' + row.resId;
},
page: true,
limit: 50,
cols: [[
{
field: 'resName', title: '资源名称', minWidth: x_250, sort: true,
templet: '#resindex_resName'
},
{field: 'health', title: '健康状态', width: x_120, align: 'center', sort: true, templet: '#healthTpl'},
{field: 'lastColTime', title: '最近采集时间', width: x_160, align: 'center', sort: true},
{field: 'adminName', title: '负责人', width: x_130, align: 'center', sort: true},
{field: 'adminPhone', title: '负责人电话', width: x_130, align: 'center', sort: true},
{field: 'resTypeName', title: '资源类型', minWidth: x_110, align: 'center'},
{field: 'state', title: '资源状态', width: x_110, align: 'center', sort: true, templet: '#resStateTpl'}]],
done: function () {
layui.soulTable.render(this);
layui.commonCols.colsClickEvent();
}
}]
},
{
field: 'resName', title: '资源名称', minWidth: x_300, sort: true,
templet: '#resindex_resName'
},
{field: 'health', title: '健康状态', width: x_120, align: 'center', sort: true, templet: '#healthTpl'},
{field: 'lastColTime', title: '最近采集时间', width: x_160, align: 'center', sort: true},
{field: 'adminName', title: '负责人', width: x_130, align: 'center', sort: true},
{field: 'adminPhone', title: '负责人电话', width: x_130, align: 'center', sort: true},
{field: 'resTypeName', title: '资源类型', minWidth: x_110, align: 'center'},
{field: 'state', title: '资源状态', width: x_110, align: 'center', sort: true, templet: '#resStateTpl'}
],
"TENCENT_CLOUD_PLAT_CLUSTER_NODE": [
{
field: 'resName', title: '资源名称', minWidth: x_300, sort: true,
templet: '#resindex_resName'
},
{field: 'health', title: '健康状态', width: x_120, align: 'center', sort: true, templet: '#healthTpl'},
{field: 'lastColTime', title: '最近采集时间', width: x_160, align: 'center', sort: true},
{field: 'adminName', title: '负责人', width: x_130, align: 'center', sort: true},
{field: 'adminPhone', title: '负责人电话', width: x_130, align: 'center', sort: true},
{field: 'resTypeName', title: '资源类型', minWidth: x_110, align: 'center'},
{field: 'state', title: '资源状态', width: x_110, align: 'center', sort: true, templet: '#resStateTpl'}
],
},
/**
* 验证是否跳转详情页
... ...
//tencent_cloud_plat_cluster(腾讯云集群)详情页js
layui.define(['commonDetail','common'], function (exports) {
var commonDetail = layui.commonDetail;
var common = layui.common;
//对外暴露的接口
exports('tencent_cloud_plat_cluster', function (data) {
var resId = '';
var showFlag = common.getUrlParam("show");
if(showFlag && showFlag == '0'){
resId = common.getUrlParam("resId");
}else{
resId = data.resId;
}
commonDetail.bindTips();
//基本信息指标
var baseKpi = "KPIE13DD9A3,KPIF74D9D2B,KPI10EC481A,KPI8C2D6E20,KPICBD2A6FA,KPI3BDD08AD";
//重要信息指标
var keyKpi = "KPI40E40BBD,KPIA8E17DD2,KPI9FC4B990,KPI04442302,KPIE7A7E3E4";
//Node信息
var nodeKpi = "KPIAAD5BFB8,KPI95E996B3,KPI597F8EA4";
//Pod信息
var podKpi = "KPIA8E17DD2,KPI95E996B3,KPI597F8EA4";
//项目信息
var projectKpi = "KPI299C813C,KPI95E996B3,KPI597F8EA4";
//应用信息
var appKpi = "KPI08BF3D28,KPI95E996B3,KPI597F8EA4";
//cpu信息
var cpuKpi = "KPIAF2EBA2F,KPI19A7770E,KPIC9967463";
//内存信息
var memKpi = "KPI1DA60197,KPI6C04B268,KPIC9967463";
//磁盘信息
var diskKpi = "KPIBA50E567,KPI40B5EF02,KPIC9967463";
reload();
//渲染页面
function reload() {
//基本信息
commonDetail.renderText("tencent_cloud_plat_cluster_baseinfo",resId,baseKpi);
//重要信息
commonDetail.renderText("tencent_cloud_plat_cluster_keyinfo",resId,keyKpi);
//Node信息
commonDetail.renderText("tencent_cloud_plat_cluster_nodeinfo",resId,nodeKpi,null,null,'node');
//Pod信息
commonDetail.renderText("tencent_cloud_plat_cluster_podinfo",resId,podKpi,null,null,'pod');
//项目信息
commonDetail.renderText("tencent_cloud_plat_cluster_projectinfo",resId,projectKpi,null,null,'project');
//应用信息
commonDetail.renderText("tencent_cloud_plat_cluster_appinfo",resId,appKpi,null,null,'app');
//cpu信息
commonDetail.renderText("tencent_cloud_plat_cluster_cpuinfo",resId,cpuKpi,null,null,'cpu');
//内存信息
commonDetail.renderText("tencent_cloud_plat_cluster_meminfo",resId,memKpi,null,null,'mem');
//cpu信息
commonDetail.renderText("tencent_cloud_plat_cluster_diskinfo",resId,diskKpi,null,null,'disk');
//cpu分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_cpu_linechart",resId,"KPIC9967463","CPU分配率","cpu");
//内存分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_mem_linechart",resId,"KPIC9967463","内存分配率","mem");
//磁盘分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_disk_linechart",resId,"KPIC9967463","磁盘分配率","disk");
//告警信息
commonDetail.renderActiveAlarms("tencent_cloud_plat_cluster_active_alarm",resId);
}
//定时任务
var timer = setInterval(function () {
reload()
},commonDetail.timerTime);
commonDetail.detailTimer.push(timer);
});
});
\ No newline at end of file
... ...
//tencent_cloud_plat_cluster_node(腾讯云集群节点)详情页js
layui.define(['commonDetail','common'], function (exports) {
var commonDetail = layui.commonDetail;
var common = layui.common;
//对外暴露的接口
exports('tencent_cloud_plat_cluster_node', function (data) {
var resId = '';
var showFlag = common.getUrlParam("show");
if(showFlag && showFlag == '0'){
resId = common.getUrlParam("resId");
}else{
resId = data.resId;
}
commonDetail.bindTips();
//基本信息指标
var baseKpi = "KPIE13DD9A3,KPIF74D9D2B,KPIB1785EF0,KPI452C0F78,KPI05227E45,KPIEBDBE293,KPI2A028860,KPICFE7F6A5,KPI42C062E1,KPIBB5F4702";
//重要信息指标
var keyKpi = "KPIFB844B8B,KPIB86224E0";
//Pod信息
var podKpi = "KPIA8E17DD2,KPI95E996B3,KPI597F8EA4";
//应用信息
var appKpi = "KPI08BF3D28,KPI95E996B3,KPI597F8EA4";
//项目信息
var projectKpi = "KPI299C813C,KPI95E996B3,KPI597F8EA4";
//租户信息
var tenantKpi = "KPI4E67E561,KPI95E996B3,KPI597F8EA4";
//cpu信息
var cpuKpi = "KPIAF2EBA2F,KPI19A7770E,KPIC9967463";
//内存信息
var memKpi = "KPI1DA60197,KPI6C04B268,KPIC9967463";
//磁盘信息
var diskKpi = "KPIBA50E567,KPI40B5EF02,KPIC9967463";
reload();
//渲染页面
function reload() {
//基本信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_baseinfo",resId,baseKpi);
//重要信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_keyinfo",resId,keyKpi);
//Pod信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_podinfo",resId,podKpi,null,null,'pod');
//应用信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_appinfo",resId,appKpi,null,null,'app');
//项目信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_projectinfo",resId,projectKpi,null,null,'project');
//租户信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_tenantinfo",resId,tenantKpi,null,null,'tenantCount');
//cpu信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_cpuinfo",resId,cpuKpi,null,null,'cpu');
//内存信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_meminfo",resId,memKpi,null,null,'mem');
//cpu信息
commonDetail.renderText("tencent_cloud_plat_cluster_node_diskinfo",resId,diskKpi,null,null,'disk');
//cpu分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_node_cpu_linechart",resId,"KPIC9967463","CPU分配率","cpu");
//内存分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_node_mem_linechart",resId,"KPIC9967463","内存分配率","mem");
//磁盘分配率趋势图
commonDetail.renderLineCharat("tencent_cloud_plat_cluster_node_disk_linechart",resId,"KPIC9967463","磁盘分配率","disk");
//告警信息
commonDetail.renderActiveAlarms("tencent_cloud_plat_cluster_node_active_alarm",resId);
}
//定时任务
var timer = setInterval(function () {
reload()
},commonDetail.timerTime);
commonDetail.detailTimer.push(timer);
});
});
\ No newline at end of file
... ...
<!--tencent_cloud_plat_cluster详细页面-->
<article class="page-container template template_redis">
<div class="page-panel">
<div class="main">
<div class="layui-card">
<div class="layui-card-body">
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">基本信息<i data-id="tencent_cloud_plat_cluster_baseinfo" class="iconfont detail_base_info">&#xe61e;</i></h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_baseinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">重要信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_keyinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">Node信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_nodeinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">Pod信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_podinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">项目信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_projectinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">应用信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_appinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">cpu信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_cpuinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">内存信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_meminfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">磁盘信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_diskinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">CPU分配率</h5>
<div id="tencent_cloud_plat_cluster_cpu_linechart" class="detail_line_chart"></div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">内存分配率</h5>
<div id="tencent_cloud_plat_cluster_mem_linechart" class="detail_line_chart"></div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">磁盘分配率</h5>
<div id="tencent_cloud_plat_cluster_disk_linechart" class="detail_line_chart"></div>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">实时告警动态</h5>
<div id="tencent_cloud_plat_cluster_active_alarm"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</article>
<textarea id="tencent_cloud_plat_cluster_param_id" style="display: none;">{{d}}</textarea>
<script>
layui.use('tencent_cloud_plat_cluster', function (fn) {
var $ = layui.$;
var parm = $("#tencent_cloud_plat_cluster_param_id").val();
if(parm.indexOf('{{d') != -1){
fn();
}else{
fn(JSON.parse(parm));
}
});
</script>
\ No newline at end of file
... ...
<!--tencent_cloud_plat_cluster_node详细页面-->
<article class="page-container template template_redis">
<div class="page-panel">
<div class="main">
<div class="layui-card">
<div class="layui-card-body">
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">基本信息<i data-id="tencent_cloud_plat_cluster_node_baseinfo" class="iconfont detail_base_info">&#xe61e;</i></h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_baseinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">重要信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_keyinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">Pod信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_podinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">应用信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_appinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">项目信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_projectinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">租户信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_tenantinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">cpu信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_cpuinfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">内存信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_meminfo"></ul>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">磁盘信息</h5>
<ul class="info-table" id="tencent_cloud_plat_cluster_node_diskinfo"></ul>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">CPU分配率</h5>
<div id="tencent_cloud_plat_cluster_node_cpu_linechart" class="detail_line_chart"></div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">内存分配率</h5>
<div id="tencent_cloud_plat_cluster_node_mem_linechart" class="detail_line_chart"></div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">磁盘分配率</h5>
<div id="tencent_cloud_plat_cluster_node_disk_linechart" class="detail_line_chart"></div>
</div>
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">实时告警动态</h5>
<div id="tencent_cloud_plat_cluster_node_active_alarm"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</article>
<textarea id="tencent_cloud_plat_cluster_node_param_id" style="display: none;">{{d}}</textarea>
<script>
layui.use('tencent_cloud_plat_cluster_node', function (fn) {
var $ = layui.$;
var parm = $("#tencent_cloud_plat_cluster_node_param_id").val();
if(parm.indexOf('{{d') != -1){
fn();
}else{
fn(JSON.parse(parm));
}
});
</script>
\ No newline at end of file
... ...
... ... @@ -898,7 +898,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$("#biz_platform_id").hide()
}
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC') {
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC' || resType == 'TENCENT_CLOUD_PLAT_CLUSTER') {
$("#biz_virtual_platform_div_id").hide();
}
if (targetId && searchType) {
... ...
... ... @@ -476,12 +476,13 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
});
if (data.id != 'VIRTUALIZATION_VMWARE' && data.id != 'VIRTUALIZATION_HUAWEI') {
$("#virtual_platform_div_id").show();
//绑定虚拟化平台
common.virtualPlatFormSelect("virtual_platForm_select", "", function () {
form.render("select");
}, data.id.match(/(VIRTUALIZATION_((?!_).)+)(.*)/)[1]);
$('#virtual_platForm_select').val('');
if (data.id.indexOf('TENCENT_CLOUD_PLAT_CLUSTER') == -1){
$("#virtual_platform_div_id").show();
common.virtualPlatFormSelect("virtual_platForm_select", "", function () {
form.render("select");
}, data.id.match(/(VIRTUALIZATION_((?!_).)+)(.*)/)[1]);
$('#virtual_platForm_select').val('');
}
}
//初始化业务下拉数据
if (busIdSelect) {
... ... @@ -747,9 +748,10 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
$("#tree_linkstate_area").hide()
}
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC') {
$("#virtual_platform_div_id").hide();
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC' || resType == 'TENCENT_CLOUD_PLAT_CLUSTER') {
$('#virtual_platForm_select').parent().parent().addClass('hide');
}else{
$('#virtual_platForm_select').parent().parent().removeClass('hide');
}
var index = layer.load(2); //加载层
... ... @@ -1270,9 +1272,10 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
if ("MIDDLEWARE_WEBLOGIC" == resType) {
$("#res_platform_id").hide()
}
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC') {
$("#virtual_platform_div_id").hide();
if (resType == 'VIRTUALIZATION_VMWARE' || resType == 'VIRTUALIZATION_HUAWEI' || resType == 'MIDDLEWARE_WEBLOGIC' || resType == 'TENCENT_CLOUD_PLAT_CLUSTER') {
$('#virtual_platForm_select').parent().parent().addClass('hide');
}else{
$('#virtual_platForm_select').parent().parent().removeClass('hide');
}
if (resType == 'HOST_BMC') {
... ...
... ... @@ -677,7 +677,8 @@ layui.define(['view'], function(exports){
, toCMDB: function () {
var roles=sessionStorage.getItem('roles');
if (roles.indexOf('zichanyw') != -1 || roles.indexOf('zichanAdmin') != -1){
window.open(sessionStorage.getItem("cmdbWeb")+ '/#/index?access_token=' + localStorage.getItem("access_token"));
// window.open(sessionStorage.getItem("cmdbWeb")+ '/#/index?access_token=' + localStorage.getItem("access_token"));
window.open(sessionStorage.getItem("cmdbWeb"));
}else{
layer.msg('当前用户没有权限', {icon: 0, time: 3000});
}
... ...