Authored by xwx

Merge branch 'master' of http://113.200.75.45:82/monitor_v3/hg-monitor-web into master-prod-xwx2

 Conflicts:
	hg-monitor-web-base/src/main/resources/static/src/controller/noticeCountIndex.js
	hg-monitor-web-base/src/main/resources/static/src/controller/overviewIndex.js
	hg-monitor-web-base/src/main/resources/static/src/controller/setting.js
	hg-monitor-web-base/src/main/resources/static/src/views/alarm/overview.html
	hg-monitor-web-zj/src/main/resources/application.yml
Showing 40 changed files with 1324 additions and 340 deletions
... ... @@ -60,7 +60,7 @@ layui.define(['form','table', 'admin', 'common','sessions'], function (exports)
//选择策略
$("#add_alarmtemplate_policy").on("click",function (){
$('[lay-id="/baseconfig/alarmpolicy/index"]').find('.layui-tab-close').trigger('click');
common.openWin("baseconfig/alarmpolicy/index","选择策略",{},["选择","取消"], function () {
common.openWin("baseconfig/alarmpolicy/index","选择策略",{type:'alarmTemplate'},["选择","取消"], function () {
var data = layui.alarmpolicyIndex().getData();
createAlarmtemplatePolicyTable(data);
return true;
... ... @@ -101,11 +101,6 @@ layui.define(['form','table', 'admin', 'common','sessions'], function (exports)
}
//删除
$(".delete-alarmtemplate-policy-btn").on("click",function (){
var tr = $("#alarmtemplate-policy-table-body").find('tr').length
if (tr <= 1){
layer.msg("告警模板至少绑定一条告警策略", { offset: '15px' , icon: 7 , time: 1000 });
return false;
}
$(this).parent().parent().remove();
});
}
... ...
... ... @@ -14,12 +14,14 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
exports('alarmtemplateIndex', function (data) {
var policyId = (data && data.policyId) ? data.policyId : "";
var resIdList = (data && data.resIds) ? data.resIds : '';
var resType = (data && common.isNotEmpty(data.resType)) ? data.resType : '';
var sessions = layui.sessions;
var accessToken = sessions.getToken()['access_token'];
//获得权限列表
var checkList = common.checkPermission(accessToken);
var alarmTempId = '';
// 业务类型Id
var busId = '';
//回车搜索
$('#alarmtemplatekw').keydown(function (e) {
if (e.keyCode === 13) {
... ... @@ -77,7 +79,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
}
if (tempData && tempData.length > 0) {
common.openWin("baseconfig/alarmpolicy/index", "选择策略", {oldData: oldAlarmPolicyIdList}, ["选择", "取消"], function () {
common.openWin("baseconfig/alarmpolicy/index", "选择策略", {oldData: oldAlarmPolicyIdList,type:'alarmTemplate'}, ["选择", "取消"], function () {
var policyData = layui.alarmpolicyIndex().getData();
var tempIds = [], policyIds = [];
$.each(tempData, function (i, v) {
... ... @@ -108,40 +110,22 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
});
//配置资源
$("#alarmtemplate_configres").on("click", function () {
if ($.inArray('back:alarmtemp:resource', checkList) == -1) {
layer.msg('暂无权限!', {icon: 7, time: 3000});
return;
}
var tempIds = [];
var data = table.checkStatus('alarmtemplateTable').data;
if (data && data.length > 0) {
$.each(data, function (i, obj) {
tempIds.push(obj.alarmTempId);
});
}
if (tempIds.length != 1) {
layer.msg('请选择一条要配置的数据', {icon: 7, time: 2000});
return;
}
function getOldResIdList(tempIds){
var oldResIdList = [];
if (tempIds.length <= 1) {
admin.req({
url: common.domainName + '/api-web/alarmtemplate/getResIdByTempId',
async: false,
data: {
tempId: tempIds.toString(),
},
error: function () {
layer.close(loading);
}
}).done(function (response) {
if (response) {
oldResIdList = response.data.map(item => item.resId)
}
});
}
admin.req({
url: common.domainName + '/api-web/alarmtemplate/getResIdByTempId',
async: false,
data: {
tempId: tempIds.toString(),
},
error: function () {
layer.close(loading);
}
}).done(function (response) {
if (response) {
oldResIdList = response.data.map(item => item.resId)
}
});
common.openWin("template/res/reslist", "配置资源", {oldData: oldResIdList}, ["选择", "取消"], function () {
var resObj = layui.reslist().getData();
if (resObj && resObj.length > 0) {
... ... @@ -153,21 +137,42 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
url: domainName + '/api-web/manage/resource/alarmTemplate?resIds=' + resIds.toString() + '&alarmTempId=' + tempIds.toString() + '&access_token=' + accessToken,
done: function (res) {
if (res.success) {
layer.msg("配置成功!", {offset: '15px', icon: 1, time: 1000}, function () {
layer.msg("配置成功!", {offset: '15px', icon: 1, time: 2000}, function () {
layer.closeAll();
reloadalarmtemplateTable();
});
} else {
layer.msg("配置失败,请重试或者与管理员联系!", {offset: '15px', icon: 7, time: 1000});
layer.msg("配置失败,请重试或者与管理员联系!", {offset: '15px', icon: 7, time: 2000});
}
}
});
} else {
layer.msg("请至少选择一条资源", {offset: '15px', icon: 7, time: 1000});
layer.msg("请至少选择一条资源", {offset: '15px', icon: 7, time: 2000});
return false;
}
return true;
});
}
//配置资源
$("#alarmtemplate_configres").on("click", function () {
if ($.inArray('back:alarmtemp:resource', checkList) == -1) {
layer.msg('暂无权限!', {icon: 7, time: 3000});
return;
}
var tempIds = [];
var data = table.checkStatus('alarmtemplateTable').data;
if (data && data.length > 0) {
$.each(data, function (i, obj) {
tempIds.push(obj.alarmTempId);
});
}
if (tempIds.length != 1) {
layer.msg('请选择一条要配置的数据', {icon: 7, time: 2000});
return;
}
getOldResIdList(tempIds);
});
// 解除绑定
... ... @@ -226,7 +231,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
, url: domainName + '/api-web/alarmtemplate/page'
, where: {
access_token: accessToken,
alarmTempName: $("#alarmtemplatekw").val(),
keyWord: $("#alarmtemplatekw").val(),
policyId: policyId,
resIdList: resIdList
}
... ... @@ -354,10 +359,87 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
//查看告警模板的资源数量
$(".view-alarmtemplate-res-total").on("click", function () {
var alarmTempId = $(this).data("id");
common.openWin("template/res/reslist", "资源列表", {alarmTempId: alarmTempId}, ["关闭"], function () {
return true;
}, null, ['90%', '80%'])
alarmTempId = $(this).data("id");
layer.open({
title: ['绑定资源', 'font-size:18px;'],
type: 1,
area: ['90%','80%'],
resize:false,
btn: ['确定','取消'],
content: laytpl($('#tempResource').html()).render(JSON.stringify({})),
success: function (index, layero) {
renderResByTemp(resType)
//新增资源权限
$('#addAuthResBtn').on('click', function () {
openResByTemp(alarmTempId,index)
})
// 查询条件框回车查询事件
$('#res-keyword').keydown(function (e) {
if (e.keyCode === 13) {
renderResByTemp(resType);
}
});
//查询按钮事件
$('#tempResBut').unbind().on('click',function () {
renderResByTemp(resType);
});
// 如果参数有busId
if(data && common.isNotEmpty(data.busId)){
busId = data.busId;
$("#templist_resListBizTypes").attr("disabled",true);
form.render()
}
//绑定业务下拉选择数据
common.bizTypeSelect("templist_resListBizTypes",function () {
$("#templist_resListBizTypes").val(busId);
form.render("select");
});
//绑定资源类型下拉选择
common.resTypeXmSelect({
el: '#templist_restype',
initValue: resType.split(','),
on(data) {
resType = data.arr.map(item => item.resTypeCode).join(',');
resType || (resType = 'all')
renderResByTemp(resType);
}
});
//绑定厂商下拉选择
common.providerSelect("templist_provider",function () {
form.render("select");
});
form.render();
bindSelectEvent();
//绑定下拉搜索事件
function bindSelectEvent() {
//选择业务搜索
form.on('select(templist_resListBizTypes)', function(data){
busId = data.value;
renderResByTemp(resType);
});
// 资源状态
form.on('select(templist_resStatus)', function(data){
renderResByTemp(resType);
});
// 厂商
form.on('select(templist_provider)', function(data){
renderResByTemp(resType);
});
}
//删除资源权限
$('#delAuthResBtn').on('click', function () {
deleteResTemp(alarmTempId)
})
},
yes: function(index, layero){
layer.close(index); //如果设定了yes回调,需进行手工关闭
}
});
});
//设置同步
... ... @@ -374,6 +456,119 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
}
});
//渲染用户所有资源权限列表表格
function renderResByTemp(resType) {
temResTable = table.render({
elem: '#res_temp_table',
url: common.domainName + '/api-web/home/res-list/' + (resType ? resType : 'all'),
where: {
access_token: accessToken,
resName: $('#res-keyword').val(),
busId: $("#templist_resListBizTypes").val(),
resHealth: $("#templist_resStatus").val(),
provider:$("#templist_provider").val(),
collectorId: '',
trapCollectorId: '',
alarmTempId: alarmTempId,
cutoverId: '',
targetType: '',
protocolFlag:'',
protocol:'',
editMode: 'true',
resCategory: 'resources'
},
height: 615,
cellMinWidth: 80,
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'
},
even: true,
cols: [[
{type:'checkbox'}
,{type: 'numbers', title: '序号', align: 'center'}
, {
field: 'resName', title: '资源名称', align: 'center',sort:true,
templet: '<div><span resmanage-data-edit="{{d.resId}}" data-zymc="{{ d.resId }}" data-ip="{{ d.ip }}" data-resTypeName="{{ d.resTypeName }}" data-admin="{{ d.admin }}" data-restype="{{d.resType}}" data-name="{{d.resName}}" data-pingenable="{{d.pingEnable}}">{{ d.resName }}</span></div>'
}
, {field: 'ip', title: 'IP地址', align: 'center',sort:true,width:200}
, {field: 'port', title: '端口号', align: 'center',sort:true,width:200}
, {field: 'adminName', title: '负责人', align: 'center',sort:true,width:180}
, {field: 'resTypeName', title: '资源类型', align: 'center',sort:true,width:230}
, {field: 'state', title: '资源状态', align: 'center',sort:true,width:180, templet: function (d) {
switch (d.state) {
case "new" :
return '<button type="button" class="layui-btn layui-btn-warm layui-bg-gray layui-btn-radius layui-btn-xs p-0-15">未监控</button>'
case "monitor" :
return '<button type="button" class="layui-btn layui-btn-radius layui-bg-green layui-btn-xs p-0-15" style="background-color: #0BAC33 !important;">监控中</button>'
case "stop" :
return '<button type="button" class="layui-btn layui-btn-warm layui-bg-red layui-btn-radius layui-btn-xs p-0-15">暂停</button>'
default :
return '<button type="button" class="layui-btn layui-btn-warm layui-bg-gray layui-btn-radius layui-btn-xs p-0-15">未监控</button>'
}
}}
, {
title: '操作', fixed: 'right', align: 'center', fixed: 'right',width:100,
templet: '<div><span data-id="{{d.resId}}" class="layui-table-link tem_res_delete_btn">删除</span></div>'
}
]],
done: function (res, curr, count) {
//删除
$('.tem_res_delete_btn').on('click', function () {
var id = $(this).data('id')
deleteResTemp(alarmTempId,id)
})
},
})
}
//为用户添加资源权限
function openResByTemp(alarmTempId,index) {
getOldResIdList(alarmTempId);
}
//删除对应的资源权限
function deleteResTemp(alarmTempId,id) {
if (typeof (id) != "string") {
var ids = [];
var data = table.checkStatus('res_temp_table').data;
if (data && data.length > 0) {
$.each(data, function (i, obj) {
ids.push(obj.resId);
});
}
if (ids.length == 0) {
layer.msg('请选择要删除的数据', {icon: 7, time: 2000});
return;
}
id = ids.toString();
}
//确认提示框
layer.confirm('您确定要删除绑定的该资源吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: common.domainName + '/api-web/alarmtemplate/deleteByResIdsAndTempIds?access_token=' + accessToken
, data: {
resIds: id,
tempIds: alarmTempId.toString()
}
}).done(function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 2000
}, function () {
layer.closeAll();
reloadalarmtemplateTable()
});
}).error(function (error) {
console.log(error);
});
});
}
//刷新表格
function reloadalarmtemplateTable() {
alarmtemplateTable.reload({
... ... @@ -381,7 +576,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'reslist', 'sessions'
access_token: accessToken,
policyId: policyId,
resIdList: resIdList,
alarmTempName: $("#alarmtemplatekw").val()
keyWord: $("#alarmtemplatekw").val()
}
});
}
... ...
... ... @@ -27,7 +27,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
, url: domainName + '/api-web/alarmtemplate/list'
, where:{
access_token:accessToken,
alarmTempName:$("#alarmtemplatekw").val(),
keyWord:$("#alarmtemplatekw").val(),
policyId:policyId
}
, height: 'full-310'
... ... @@ -145,9 +145,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
alarmtemplatelistTable.reload({
where:{
access_token:accessToken,
alarmTempName:$("#alarmtemplatelistkw").val(),
keyWord:$("#alarmtemplatelistkw").val(),
}
});
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -1036,4 +1036,4 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -880,7 +880,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
}
//获取选中的数据
function getCheckData() {
debugger
if(mode){
let arr = [];
$.each($('[data-type="checkbox"] input'),function (i,v) {
... ...
... ... @@ -67,10 +67,10 @@ layui.define(['table', 'form', 'laydate', 'common','sessions','laydate','admin',
, height: 'full-80'
, data: dataArr
, cols: [[
{field: 'dirctiveName', title: '指令名称', align: 'center', width: 230
{field: 'dirctiveName', title: '指令名称', align: 'center', minWidth: 230
,templet:'<div><span data-id="{{d.dirctiveId}}" >{{d.dirctiveName}}</span></div>'}
, {field: 'outputNum', title: '输出指标数量', align: 'center', width: 150}
, {field: 'frequencyType', title: '周期时间类型', align: 'center', minWidth: 80,templet: function (d) {
, {field: 'frequencyType', title: '周期时间类型', align: 'center', width:180,minWidth: 180,templet: function (d) {
var html = '<select name="frequencyType" lay-filter="frequency-type">' +
'<option value="often" >常用周期</option>'+
'<option value="cron">CronTab表达式</option>'+
... ... @@ -83,7 +83,7 @@ layui.define(['table', 'form', 'laydate', 'common','sessions','laydate','admin',
})
return $dom.prop("outerHTML");
}}
, {field: 'collFrequency', title: '周期', align: 'center', width: 220,templet:function (d) {
, {field: 'collFrequency', title: '周期', align: 'center', width: 180,templet:function (d) {
var selectStr = getTableSelectDom().select;
var inputStr = getTableSelectDom().input;
if(d.frequencyType == 'often'){
... ... @@ -100,7 +100,7 @@ layui.define(['table', 'form', 'laydate', 'common','sessions','laydate','admin',
return $dom.prop("outerHTML");
}
}}
, {title: '操作', align: 'center', minWidth: 100,templet: '<div><span checkTemplate-data-delete="{{d.dirctiveId}}" class="layui-table-link">删除</span>'}
, {title: '操作', align: 'center', width:100,minWidth: 100,templet: '<div><span checkTemplate-data-delete="{{d.dirctiveId}}" class="layui-table-link">删除</span>'}
]],
done: function (res, curr, count) {
form.render();
... ...
... ... @@ -501,6 +501,261 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
});
});
},
/**lsq 2022-07-05
*渲染环形图及链接数
* @param targetId 环形图区域ID
* @param resId 资源ID
* @param kpiId 指标ID,多个指标逗号隔开
* @param kpiname 指标名称
* @param titleName 环形图中心名称
* @param linkTargetId 链接状态区域ID
* @param linkKpiId 链接状态区域的指标ID,多个指标逗号隔开
* */
renderPieChartLink:function(targetId,resId,kpiId,kpiname,titleName,linkTargetId,linkKpiId,flag,isBasic,hasTotal){
let title='CPU';
let colorsArr=['#37bca6','#b4d43a','#e85228','#5a5487']
if(titleName){
title=titleName
}
let allKpi=kpiId;
let linkKpiIdArr=[];
var cpuPieChart = null;
if(linkKpiId){
allKpi+=','+linkKpiId;
linkKpiIdArr=linkKpiId.split(',');
}
var url = "/api-web/detail/block?resId=" + resId + "&kpiId=" + allKpi + "&hasTotal=" + hasTotal;
if (flag) {
url += '&flag=' + flag;
}
if (isBasic) {
url += '&isBasic=' + isBasic;
}
admin.req({
url: common.domainName + url
}).done(function (res) {
let linkStr='';
setTimeout(function () {
$('#' + targetId).find('.pie-circleStr').remove();
$('#' + targetId).find('.pie-legend').remove();
if (res.data && res.data.length > 0) {
var data = res.data;
let linkData = [];
let pieData = [];
let colors = [];
data.map((item, i) => {
if (linkKpiIdArr.indexOf(item.id) != -1) {
//链接数据
linkData.push(item);
} else {
//百分比数据
pieData.push(item)
colors.push(common.colorsArr[i]);
}
})
if (pieData.length > 0) {
let seriesData = [];
pieData.map(item => {
let valArr = item.value.split('%');
let obj = item;
obj.value = valArr[0];
seriesData.push(obj)
})
// setTimeout(function () {
$('#' + targetId).find('.pie-circleStr').remove();
$('#' + targetId).find('.pie-legend').remove();
//生成环形图
var option = {
tooltip: {
trigger: 'item',
formatter: function (param) {
var tips = param.marker + " " + param.name + ":" + param.value + param.data.unit + "</br>";
return tips;
},
axisPointer: {
type: 'shadow'
}
},
legend: {
orient: 'vertical',
x: '45%',
y: 'center',
formatter: ' ',
itemHeight: '4',
textStyle: {
fontsize: "12px"
}
},
color: colorsArr,
series: [
{
type: 'pie',
radius: ['60%', '95%'],
center: ['20%', '50%'],
data: seriesData,
avoidLabelOverlap: false,
stillShowZeroSum: true,
label: {
show: false,
position: 'center'
},
itemStyle: {
borderColor: "#ffffff",
borderWidth: '3'
},
hoverAnimation: false,
emphasis: {
scale: true,
scaleSize: 10,
},
labelLine: {
show: false
},
}
]
};
if (cpuPieChart === null) {
cpuPieChart = echarts.init(document.getElementById(targetId));
} else {
cpuPieChart.clear();
$('#' + targetId).html('');
}
cpuPieChart.setOption(option);
//中间圆圈
let circleStr = `<div class="pie-circleStr"><div class="pie-circleStr-title">` + title + `</div></div>`;
$('#' + targetId).append(circleStr);
//右侧详细内容
let legendStr = ` <div class="pie-legend">`;
pieData.map((item, i) => {
let fixedVal=Number(item.value).toFixed(2);
let paramName = item.name.replace('CPU', '')
legendStr += `<div class="pie-legend-item">
<span class="pie-legend-icon" style="background-color: ` + colorsArr[i] + `"></span>
<span class="pie-legend-label">` + paramName + `:</span>
<span class="pie-legend-num" data-kpiid="` + item.id + `"
data-name="` + item.name + `" data-warning="1" data-ident="1"
data-trend="0" data-flag="` + item.flag + `">
<span class="pie-num-val">` + fixedVal + item.unit + `</span>
<a class="detail_row_menu hide" data-id="`+item.id+`" data-kpiid="` + item.id + `"
data-name="` + item.name + `" data-kpiname="` + item.name + `" data-warning="1" data-ident="1"
data-trend="0" data-flag="` + item.flag + `" data-unit="` + item.unit + `"
data-hidem="true" data-canca="true" data-incaing="true" data-restype="` + item.resType + `">
<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">
</a></span>
</div>`
})
legendStr += '</div>';
$('#' + targetId).append(legendStr);
$('.pie-legend-num .pie-num-val').unbind('click').click(function () {
let kpiId = $(this).parent().data('kpiid');
let flag = $(this).parent().data('flag');
let warning = $(this).parent().data('warning');
let ident = $(this).parent().data('ident');
let trend = $(this).parent().data('trend');
let name = $(this).parent().data('name');
var params = {
resId: resId,
kpiId: kpiId,
flag: flag,
warning: warning,
ident: ident,
trend: trend,
name: name
};
common.openLineChart(name, params);
})
//点击扇形区域,打开性能曲线图
cpuPieChart.on('click', function (params) {
let data = params.data;
let kpiId = data.id;
let flag = data.flag;
let warning = data.isWarning;
let ident = 1;
let trend = 0;
let name = data.name;
var params = {
resId: resId,
kpiId: kpiId,
flag: flag,
warning: warning,
ident: ident,
trend: trend,
name: name
};
common.openLineChart(name, params);
});
//监听告警压制等操作配置
$('#' + targetId).find('.pie-legend-num').hover(function () {
var $that = $(this);
var $btn = $that.find(".detail_row_menu");
if ($btn.length > 0) {
$(".layui-card-body").find(".detail_row_menu:not(.hide)").addClass("hide")
$btn.removeClass("hide");
}
});
filterSuppressMonitor(resId);
// }, 300)
}
if (linkData.length > 0) {
linkData.map(item => {
linkStr += `<div class="lay-row-item lay-row-item-num">
<div class="lay-row-title-label">` + item.name + `</div>
<div class="lay-row-num" data-kpiid="` + item.id + `"
data-name="` + item.name + `" data-warning="1" data-ident="1"
data-trend="0" data-flag="` + item.flag + `"
><span class="lay-row-num-val">` + Math.round(item.value) + `</span>
<a class="detail_row_menu hide" data-id="`+item.id+`" data-kpiid="` + item.id + `"
data-name="` + item.name + `" data-kpiname="` + item.name + `" data-warning="1" data-ident="1"
data-trend="0" data-flag="` + item.flag + `" data-unit="` + item.unit + `"
data-hidem="true" data-canca="true" data-incaing="true" data-restype="` + item.resType + `" >
<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">
</a></div>
</div>`
})
}
} else {
linkStr = '';
}
$("#"+linkTargetId).html(linkStr);
//监听编辑状态下的复选框事件
getCheckedBoxData();
//监听告警压制等操作配置
$('#' + linkTargetId).find('.lay-row-item-num .lay-row-num').hover(function () {
var $that = $(this);
var $btn = $that.find(".detail_row_menu");
if ($btn.length > 0) {
$(".layui-card-body").find(".detail_row_menu:not(.hide)").addClass("hide")
$btn.removeClass("hide");
}
});
//监听过滤压制等事件
filterSuppressMonitor(resId);
//链接数值下探 ,打开性能曲线
$(".lay-row-item-num .lay-row-num .lay-row-num-val").unbind('click').click(function () {
let kpiId=$(this).parent().data('kpiid');
let flag=$(this).parent().data('flag');
let warning=$(this).parent().data('warning');
let ident=$(this).parent().data('ident');
let trend=$(this).parent().data('trend');
let name=$(this).parent().data('name');
var params = {
resId: resId,
kpiId: kpiId,
flag: flag,
warning: warning,
ident: ident,
trend: trend,
name: name
};
common.openLineChart(name, params);
})
})
})
},
/**
* 渲染饼状图
* @param targetId 饼状图区域ID
... ...
... ... @@ -34,6 +34,9 @@ layui.define(['commonDetail','common', 'admin'], function (exports) {
var diskkpi = "KPI9D22EAB6,KPI5CA7AA50,KPI98183B26,KPI66BD013F,KPI3E6ED38B,KPI97373ED0,KPI95378FE0";
// ogg信息
var oggkpi = "KPI95C50C7C,KPIEC53A8C4,KPI03937134,KPI1A122D84,KPI16282DF0";
//lsq cpu百分比 2022-07-04
var cpupiekpi = "KPI1E378242,KPI41B4C1B4,KPI6AC0FB43,KPI6F620E2B";
var linkKpi = "KPI7C714058,KPID152C818,KPIA2EA1646,KPI780EFE90";
if (os === 'windows'){
$($("#x86server_filesysMore").parents(".lay-row-item")).hide();
$($("#x86server_inodeMore").parents(".lay-row-item")).hide();
... ... @@ -79,6 +82,8 @@ layui.define(['commonDetail','common', 'admin'], function (exports) {
commonDetail.renderLineCharat("x86server_cpu_linechart", resId, "KPI7054BC34", "CPU使用率", "cpu");
//内存使用率走势(12小时)
commonDetail.renderLineCharat("x86server_memery_linechart", resId, "KPI31CB8D97", "内存使用率", "mem");
//lsq cpu百分比 2022-07-04
commonDetail.renderPieChartLink("x86server_cpupie",resId,cpupiekpi,"CPU百分比",'CPU','x86server_linkdata',linkKpi);
if (os === 'windows') {
//磁盘使用情况
... ...
... ... @@ -33,7 +33,10 @@ layui.define(['commonDetail','common', 'admin'], function (exports) {
var portDetTableKpiId='KPI39C76443,KPIC6A062EC,KPI5212EE93,KPIDCBEA93D';
// ogg信息
var oggkpi = "KPI95C50C7C,KPIEC53A8C4,KPI03937134,KPI1A122D84,KPI16282DF0";
//lsq cpu百分比 2022-07-04
var cpupiekpi = "KPI1E378242,KPI41B4C1B4,KPI6AC0FB43,KPI6F620E2B";
var linkKpi = "KPI7C714058,KPID152C818,KPIA2EA1646,KPI780EFE90";
x86virtual();
function x86virtual(){
//资源状态
... ... @@ -52,6 +55,8 @@ layui.define(['commonDetail','common', 'admin'], function (exports) {
commonDetail.renderLineCharat("x86virtual_cpu_linechart",resId,"KPI7054BC34","CPU使用率","cpu");
//内存使用率走势(12小时)
commonDetail.renderLineCharat("x86virtual_memery_linechart",resId,"KPI31CB8D97","内存使用率","mem");
//lsq cpu百分比 2022-07-04
commonDetail.renderPieChartLink("x86virtual_cpupie",resId,cpupiekpi,"CPU百分比",'CPU','x86virtual_linkdata',linkKpi);
//磁盘IO读速率
commonDetail.renderLineCharat("x86virtual_disk_ioread_linechart",resId,"KPI97373ED0","磁盘IO读速率","disk", null, 'KPI9D22EAB6');
... ...
... ... @@ -34,9 +34,25 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
});
//导出
$('#exportNoticeCountBtn').on("click", function () {
var url=common.domainName + '/api-web/bAlarm/noticeExport?access_token=' + accessToken + '&type=' + tablePeriod;
var url = common.domainName + '/api-web/bAlarm/noticeExport?access_token=' + accessToken + '&type=' + tablePeriod;
window.open(url);
});
var alarmSendTips ;
$(".detail_base_info").hover(function() {
openMsg();
}, function() {
layer.close(alarmSendTips);
});
function openMsg() {
alarmSendTips = layer.tips("<span style='color:#585858;'>" +
"人员告警发送统计规则:<br>" +
"&nbsp;&nbsp;&nbsp;&nbsp;• 一条告警可能存在多个通知人<br>" +
"&nbsp;&nbsp;&nbsp;&nbsp;• 按照通知人统计告警发送数量<br>" +
"</span>",
'.detail_base_info',{tips:[2,'#F0F0F0'], time:0,area: ['auto', 'auto']});
}
//初始化柱状图页面
function initNoticeCount() {
$.ajax({
... ... @@ -48,11 +64,36 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
histogramECharts(res.map.business, 'count_notice_send_business', '业务子系统告警发送统计');
//初始化人员告警发送告警统计
histogramECharts(res.map.user, 'count_notice_send_user', '人员告警发送统计');
$("#businessMore").unbind('click').on('click', function () {
queryData('业务子系统告警发送统计', res.map.business)
})
$("#userMore").unbind('click').on('click', function () {
queryData('人员告警发送统计', res.map.user)
})
}
}
})
}
//lsq 弹框打开更多 2022-06-21
function queryData(title, data) {
let html = `
<div class="pie-chart pie-chart-custom" id="more_notice" style="height: 60vh;overflow:hidden"></div>
`
layer.open({
type: 1
, title: title //不显示标题栏
, area: ["91%", "800px"]
, id: 'moreData' //设定一个id,防止重复弹出
, btn: ['取消']
, content: html
, success: function (layero, index) {
histogramECharts(data, 'more_notice', title)
}
})
}
//初始化表格
function initTable() {
businessTable = table.render({
... ... @@ -65,7 +106,7 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
, page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
,limits:[5,10,15,20]
, limits: [5, 10, 15, 20]
}
, limit: '5'
, even: true
... ... @@ -97,7 +138,7 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
, page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
,limits:[5,10,15,20]
, limits: [5, 10, 15, 20]
}
, limit: '5'
, even: true
... ... @@ -149,7 +190,8 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
var row = data.row;
//列
var line = data.line;
var myChart = echarts.init(document.getElementById(id));
let el = document.getElementById(id);
var myChart = echarts.init(el);
var option;
option = {
tooltip: {
... ... @@ -169,7 +211,7 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
grid: {
left: '3%',
right: '4%',
bottom: '12%',//lsq 2022-03-10
bottom: '12%',
top: '20',
containLabel: true
},
... ... @@ -184,7 +226,7 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
color: '#000000',
show: true,
interval: 0,
rotate: 10,//lsq 2022-03-10 x轴标签不需要角度,注释
rotate: 10,
fontSize: '10',
},
}
... ... @@ -197,7 +239,7 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
series: [
{
type: 'bar',
barWidth: '20',//lsq 2022-03-10 柱子宽度更改
barWidth: '20',
data: line,
itemStyle: {
normal: {
... ... @@ -219,20 +261,20 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions'], func
}
}
],
//start x轴拖动 lsq 2022-03-10
//x轴拖动
dataZoom: [
{
show: id == 'more_notice' ? true : false,
type: "slider",
realtime: true, //拖动滚动条时是否动态的更新图表数据
height: 25, //滚动条高度
start: 5, //滚动条开始位置(共100等份)
end: 55 //结束位置(共100等份)
start: 0, //滚动条开始位置(共100等份)
end: 12 //结束位置(共100等份)//lsq x轴缩放距离调整 2022-05-25
}
],
//end lsq 2022-03-10
};
myChart.setOption(option)
}
});
});
\ No newline at end of file
});
... ...
//通知查询
layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect', 'echarts'], function (exports) {
layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect', 'echarts','laydate'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
... ... @@ -9,6 +9,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
var domainName = common.domainName;
var xmSelect = layui.xmSelect;
var echarts = layui.echarts;
var laydate = layui.laydate;
//对外暴露的接口
exports('noticeIndex', function (data) {
... ... @@ -23,7 +24,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
var noticeUserChart = echarts.init(document.getElementById('notice_chart_user'));
var noticeTypeChart = echarts.init(document.getElementById('notice_chart_type'));
// var noticeUserChartNew = echarts.init(document.getElementById('notice_chart_user_new'));
// lsq 告警指标 2022-07-05
var alarmKpi= '';
//回车搜索
$('#notice_search_keyword').keydown(function (e) {
if (e.keyCode === 13) {
... ... @@ -43,6 +45,44 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
$('#queryMore').on('click',function(){
queryData();
});
$('button[data-period]').on('click',function(){
var that = $(this);
that.addClass('active');
that.removeClass('layui-btn-primary');
var currentVal = that.attr('data-period');
$.each($('button[data-period]'), function(index , el){
var itemEl = $(el);
var val = itemEl.attr('data-period');
if(currentVal != val){
itemEl.addClass('layui-btn-primary');
itemEl.removeClass('active');
}
});
// yyyy-MM-dd HH:mm:ss - yyyy-MM-dd HH:mm:ss
if(currentVal == 'custom'){
laydate.render({
elem: '#dataPeriodCustom', //指定元素
range: true,
type: 'datetime',
isInitValue: false,
isPreview: false,
value : new Date(),
format:'yyyy-MM-dd HH:mm:ss',
show: true, //直接显示
done: function(value, date, endDate){
that.attr('data-val',value);
reloadData();
}
});
return;
}
reloadData();
});
form.render();
getChartData();
... ... @@ -56,7 +96,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
busId: busId,
resType: resType,
usernames:userNames,
isSend: $('#notice_search_isSend').val()
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
}
, height: 'full-380'
, page: {
... ... @@ -284,10 +328,43 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
}
});
// lsq 告警指标下拉列表 2022-07-05
$.ajax({
url: common.domainName + '/api-web/manage/kpi/findKpiInAlarm?access_token='+accessToken+'&tableName=b_alarm',
type: "get",
success:function (res) {
var kpis = res.data;
var html = '<option value="">=指标名称=</option>'
$.each(kpis,function (i,e) {
html+='<option value="'+e.kpiId+'">'+e.kpiName+'</option>'
})
$("#noticeAlarmKpiSearchBox").html('');
$("#noticeAlarmKpiSearchBox").append(html);
form.render();
}
})
//lsq 通知方式下拉列表 2022-07-07
$.ajax({
url: domainName + '/api-web/manage/ddic/findSucDdics/notice_type?access_token='+accessToken,
type: "POST",
success:function (res) {
var ways = res.data;
var html = '<option value="">=通知方式=</option>'
$.each(ways,function (i,e) {
html+='<option value="'+e.ddicCode+'">'+e.ddicName+'</option>'
})
$("#noticeWaySearchBox").html('');
$("#noticeWaySearchBox").append(html);
form.render();
}
})
//刷新表格
function reloadTable() {
noticeTable.reload({
page: {
curr: 1
},
where:{
access_token:accessToken,
keyword: $('#notice_search_keyword').val(),
... ... @@ -295,7 +372,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
resType: resType,
isSend: $('#notice_search_isSend').val(),
usernames:userNames,
page: 1
page: 1,
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
}
});
}
... ... @@ -504,7 +585,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
left: '1%',
bottom: -5,
start: 0,
end: 50 //初始化滚动条
end: 20 //初始化滚动条
}
],
}
... ... @@ -529,7 +610,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
keyword: $('#notice_search_keyword').val(),
busId: busId,
resType: resType,
isSend: $('#notice_search_isSend').val()
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
};
$.ajax({
... ... @@ -558,7 +643,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
var yData = res.map.countList;
var xData = res.map.userList;
//展示前20条数据 @Editor LH
loadNoticeChart(noticeUserChart,xData.slice(0, 20), yData.slice(0, 20));
loadNoticeChart(noticeUserChart,xData.slice(0, 15), yData.slice(0, 15));
}
}
})
... ... @@ -583,7 +668,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
keyword: $('#notice_search_keyword').val(),
busId: busId,
resType: resType,
isSend: $('#notice_search_isSend').val()
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
};
var noticeTypeChartNew = echarts.init(document.getElementById('notice_chart_type_new'));
$.ajax({
... ...
... ... @@ -253,33 +253,36 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'treeTabl
// 发送状态 1已发送,2未发送
noticeTimely.sendState = 2;//statusChange(document.querySelector("#switch_noticeTimely_sendState").checked ? 0 : 1);
noticeTimely.noticeNames = userNames;
var noticeStateList = [];
//获取消息状态列表
$.each($('#editNoticeTimely_add_table').find('tbody tr'), function (i, v) {
var noticeState = {};
noticeState.noticeName = $(this).find('input[name="noticeName"]').val();
noticeState.sendTime = $(this).find('input[name="sendTime"]').val();
noticeState.sendContent = $(this).find('input[name="sendContent"]').val();
noticeState.noticeState = $(this).find('select[name="noticeState"]').val();
noticeStateList.push(noticeState);
});
noticeTimely.noticeStateList = noticeStateList;
// var noticeStateList = [];
// //获取消息状态列表
// $.each($('#editNoticeTimely_add_table').find('tbody tr'), function (i, v) {
// var noticeState = {};
// noticeState.noticeName = $(this).find('input[name="noticeName"]').val();
// noticeState.sendTime = $(this).find('input[name="sendTime"]').val();
// noticeState.sendContent = $(this).find('input[name="sendContent"]').val();
// noticeState.noticeState = $(this).find('select[name="noticeState"]').val();
// noticeStateList.push(noticeState);
// });
// noticeTimely.noticeStateList = noticeStateList;
if (!noticeTimely.noticeNames) {
layer.msg('请选择用户', {icon: 7, time: 3000});
return false;
}
if (!noticeTimely.templates) {
layer.msg('请配置自定义展示中的展示内容', {icon: 7, time: 3000});
return false;
}
noticeTimely.site = $('#notice_timely_select').val() + $('#notice_timely_site').val();
//获取配置参数
var map = getParam();
if(!map){
return ;
return false;
}
if(map.msgSetting && map.msgSetting != '' && map.msgSetting != null){
noticeTimely.msgSetting = JSON.stringify(map.msgSetting);
}
noticeTimely.msgSetting = JSON.stringify(map.msgSetting);
noticeTimely.templates = map.templates;
if (!noticeTimely.templates || noticeTimely.templates == '' || noticeTimely.templates == null) {
layer.msg('请配置自定义展示中的展示内容', {icon: 7, time: 3000});
return false;
}
layer.load(2);
admin.req({
url: domainName + '/api-web/noticeTimely/save?access_token=' + accessToken,
... ... @@ -457,27 +460,28 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'treeTabl
//获取模板和等级
var obj = {
msgSetting: null,
templates: null
msgSetting: '',
templates: $('#notice_timely_param_sql').find('textarea[name="templates"]').eq(0).val()
};
var errMsg = '';
if (!$('#notice_timely_param_sql').hasClass('hide')) {
// 获取模板信息
var val = $('#notice_timely_param_sql').find('textarea[name="templates"]').eq(0).val();
var val = obj.templates;
if(!val || val == '' || val == null){
var map = getRowName();
var pa = '';
var exp = [];
var templatesVal = '';
map.rowNameList.forEach(item => {
pa += '#{' + item + '},';
exp.push('#{' + item + '}')
})
if (pa != '') {
pa = pa.substring(0, pa.length - 1);
if (exp.length > 0) {
templatesVal = exp.join(",");
}
val = pa;
val = templatesVal;
}
obj.templates = val;
var arr = [];
... ...
... ... @@ -186,46 +186,48 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'treeTabl
cols: [[{
type: 'checkbox'
}, {
field: 'name', title: '名称', align: 'center', width: '250',
field: 'name', title: '名称', align: 'center', minWidth: '100',
templet:
'<div>' +
' <span data-id="{{d.id}}" class="link link-noticeTimely-edit">{{d.name}}</span>' +
'</div>'
}, {
field: 'details', title: '内容', align: 'left', minWidth: '650',
field: 'details', title: '内容', align: 'left', width: '15%',
templet: function (d) {
// return '<input type="text" class="layui-input" style= "background-color:transparent;border:0;padding-bottom: 10px" readonly="readonly" name="details" value="' + d.details + '">'
return '<code>' + d.details + '</code>'
}
}, {
field: 'frequency', title: '频率', align: 'center', width: '130'
field: 'frequency', title: '频率', align: 'center', minWidth: '120'
}, {
field: 'noticeNicknames', title: '用户', align: 'center', minWidth: '180'
}, {
field: 'state', title: '是否启用', align: 'center', width: '100',
field: 'lastSendTime', title: '最后发送时间', align: 'center', minWidth: '170',templet: function (d) {
if(d.noticeStateNew && d.noticeStateNew.sendTime){
return d.noticeStateNew.sendTime;
}
return '';
}
},{
field: 'lastSendContent', title: '最后发送内容', align: 'center', minWidth: '200',templet: function (d) {
if(d.noticeStateNew && d.noticeStateNew.sendContent){
return d.noticeStateNew.sendContent;
}
return '';
}
},{
field: 'state', title: '是否启用', align: 'center', minWidth: '60',
templet: function (d) {
var checked = d.state == 2 ? 'checked' : '';
return '<div><input type="checkbox" data-id="' + d.id + '" lay-filter="switch_noticeTimely_checkbox_state" name="state" lay-skin="switch" lay-text="启用|禁用" ' + checked + ' ></div>'
}
}, /*{
field: 'broadcast', title: '是否广播', align: 'center', width: '100',
templet: function (d) {
var checked = d.broadcast == 1 ? 'checked' : '';
return '<div><input type="checkbox" data-id="' + d.id + '" lay-filter="switch_noticeTimely_checkbox_broadcast" name="broadcast" lay-skin="switch" lay-text="是|否" ' + checked + ' ></div>'
}
}, {
field: 'retry', title: '是否轮循', align: 'center', width: '100',
templet: function (d) {
var checked = d.retry == 1 ? 'checked' : '';
return '<div><input type="checkbox" data-id="' + d.id + '" lay-filter="switch_noticeTimely_checkbox_retry" name="retry" lay-skin="switch" lay-text="重发|不重发" ' + checked + ' ></div>'
}
}, */{
title: '操作', align: 'center', minWidth: '150', fixed: 'right',
templet:
'<div>' +
' <button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-noticeTimely-delete" lay-tips="删除"><i class="layui-icon">&#xe640;</i></button>' +
' <button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-noticeTimely-history" lay-tips="历史记录"><i class="layui-icon">&#xe705;</i></button>' +
'</div>'
title: '操作', align: 'center', minWidth: '80', fixed: 'right',
templet:
'<div>' +
' <button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-noticeTimely-delete" lay-tips="删除"><i class="layui-icon">&#xe640;</i></button>' +
' <button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-noticeTimely-history" lay-tips="历史记录"><i class="layui-icon">&#xe60e;</i></button>' +
'</div>'
}]],
done: function (res) {
// 点击名称编辑事件
... ...
layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var view = layui.view;
var table = layui.table;
var common = layui.common;
var laydate = layui.laydate;
var admin = layui.admin;
//对外暴露的接口
exports('onlineUser', function () {
var sessions = layui.sessions;
var accessToken = sessions.getToken().access_token;
var loginLog = "";
var cols = [{field: 'loginTime', title: '登录时间', align: 'center'}
, {field: 'loginIp', title: 'IP地址', align: 'center'}
, {field: 'nickname', title: '登录用户', align: 'center'}
, {field: 'orgName', title: '所属部门', align: 'center'}];
loginLogTable();
function loginLogTable() {
loginLog = table.render({
elem: '#onlineUserTable'
, height: 'full-auto'
, cellMinWidth: 0
, page: 1
, limit: 10
, url: common.domainName + '/api-log/sysLogin/findLogUser?access_token=' + accessToken
, cols: [cols]
, done: function (res, curr, count) {
}
});
}
//刷新表格
function reloadTable() {
loginLog.reload({
page: {
curr: 1
}
, where: {
access_token: accessToken,
username: $("#loginAccount").val(),
startTime: $("#loginLogStartdate").val(),
endTime: $("#loginLogEnddate").val(),
mark: $("#loginLonMark").val(),
orgIds: settingOrgSelect.getValue("valueStr")
}
});
}
});
});
... ...
... ... @@ -19,8 +19,9 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
var currSelect = 0;
var list = [];
var dataList = [];
var date = new Date().getFullYear();
var date = '2021';
//lsq 调用获取今年和去年年份 2022-07-04
getYearDate();
getChartData();
// loadAlarmOverChart1(alarmTrendChart,null,'24小时趋势表');
loadResourceTable('resType','overviewResTypeTable');
... ... @@ -41,12 +42,7 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
$("#overview_time button").on("click",function () {
$("#overview_time button").removeClass("active");
$(this).addClass("active");
// date = $(this).data("years");
if($(this).data("years")=='lastYear'){
date = new Date().getFullYear()-1;
}else if($(this).data("years")=='year'){
date=new Date().getFullYear();
}
date = $(this).data("years");
if (currSelect === 0) {
loadResourceTable('resType','overviewResTypeTable');
} else if (currSelect === 1) {
... ... @@ -106,9 +102,9 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
url: domainName + `/api-web/bAlarm/overViewChartByType?access_token=${accessToken}&type=kpi`,
method: 'GET',
success: function (res) {
if (res && res.map) {
loadAlarmOverChart(alarmKpiChart,res.map,'指标告警统计Top10','bar');
}
if (res && res.map) {
loadAlarmOverChart(alarmKpiChart,res.map,'指标告警统计Top10','bar');
}
}
})
//资源类型告警统计Top10
... ... @@ -368,33 +364,33 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
page: false,
height: '280',
cols: [[{
field: 'targetName', title: '名称', align: 'center',width: 300
}, {
field: 'rowTotal', title: '总量', align: 'center'
}, {
field: 'Jan', title: '一月', align: 'center'
}, {
field: 'Feb', title: '二月', align: 'center'
}, {
field: 'Mar', title: '三月', align: 'center'
}, {
field: 'Apr', title: '四月', align: 'center'
}, {
field: 'May', title: '五月', align: 'center'
}, {
field: 'Jun', title: '六月', align: 'center'
}, {
field: 'Jul', title: '七月', align: 'center'
}, {
field: 'Aug', title: '八月', align: 'center'
}, {
field: 'Sept', title: '九月', align: 'center'
}, {
field: 'Oct', title: '十月', align: 'center',
}, {
field: 'Nov', title: '十一月', align: 'center'
}, {
field: 'Dece', title: '十二月', align: 'center'
field: 'targetName', title: '名称', align: 'center',width: 300
}, {
field: 'rowTotal', title: '总量', align: 'center'
}, {
field: 'Jan', title: '一月', align: 'center'
}, {
field: 'Feb', title: '二月', align: 'center'
}, {
field: 'Mar', title: '三月', align: 'center'
}, {
field: 'Apr', title: '四月', align: 'center'
}, {
field: 'May', title: '五月', align: 'center'
}, {
field: 'Jun', title: '六月', align: 'center'
}, {
field: 'Jul', title: '七月', align: 'center'
}, {
field: 'Aug', title: '八月', align: 'center'
}, {
field: 'Sept', title: '九月', align: 'center'
}, {
field: 'Oct', title: '十月', align: 'center',
}, {
field: 'Nov', title: '十一月', align: 'center'
}, {
field: 'Dece', title: '十二月', align: 'center'
}]],
done: function (res) {
dataList = res.data;
... ... @@ -440,5 +436,22 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
alink.click();
document.body.removeChild(alink);
}
//lsq 获取今年和去年的年份赋值给按钮 2022-07-04
function getYearDate(){
let myDate=new Date();
let thisYear=getDateTime(myDate);
myDate.setFullYear(myDate.getFullYear()-1);
let lastYear=getDateTime(myDate);
$('#thisYear').attr('data-years',thisYear);
$('#lastYear').attr('data-years',lastYear);
date=thisYear;
}
//获取时间点 转年月日的方法
function getDateTime(newDate){
let year=newDate.getFullYear();//获取年
return year;
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -1752,4 +1752,4 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
return {getData: getCheckData};
});
});
\ No newline at end of file
});
... ...
... ... @@ -27,10 +27,10 @@ layui.define(['table', 'form', 'sessions', 'common', 'view', 'admin'], function
}
});
// //按钮搜索
// $('#heartbeatQueryBtn').unbind().on('click',function (e) {
// reloadTable();
// })
//按钮搜索
$('#heartbeatQueryBtn').unbind().on('click',function (e) {
reloadTable();
})
// 渲染表格
... ... @@ -63,10 +63,12 @@ layui.define(['table', 'form', 'sessions', 'common', 'view', 'admin'], function
}, {
field: 'currTime', title: '最近心跳时间', align: 'center',sort: true,
templet: function (d) {
var durationVal = $('[name="durationVal"]').val();
if(!durationVal || durationVal == '' || durationVal == null){
durationVal = 10;
}
var beatTime = new Date(d.currTime);
var time = new Date();
time.setMinutes(time.getMinutes() - 10);
if (time > beatTime) {
if (d.between > parseInt(durationVal)) {
return `<div class="red">${beatTime.format("yyyy-MM-dd HH:mm:ss")}</div>`
} else {
return `<div>${beatTime.format("yyyy-MM-dd HH:mm:ss")}</div>`
... ... @@ -85,7 +87,7 @@ layui.define(['table', 'form', 'sessions', 'common', 'view', 'admin'], function
heartbeatTable.reload({
where: {
access_token: accessToken,
keyword: $('#condition-heartbeat-name').val(),
keyword: $('#condition-heartbeat-name').val()
},
page: {
curr: 1
... ... @@ -93,4 +95,4 @@ layui.define(['table', 'form', 'sessions', 'common', 'view', 'admin'], function
});
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -38,18 +38,21 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
, {field: 'loginIp', title: 'IP地址', align: 'center'}
, {field: 'nickname', title: '登录用户', align: 'center'}
, {field: 'orgName', title: '所属部门', align: 'center'}]
url = common.domainName +'/api-log/sysLogin/findLogPage?access_token='+accessToken
url = common.domainName + '/api-log/sysLogin/findLogPage?access_token=' + accessToken
loginLogTable()
$("#loginUserNum").unbind("click").on('click', function () {
$("#loginLonMark").val("mark")
$("#loginAccount").val(""),
$("#loginLogStartdate").val(""),
$("#loginLogEnddate").val(""),
reloadTable();
// $("#loginLonMark").val("mark")
// $("#loginAccount").val(""),
// $("#loginLogStartdate").val(""),
// $("#loginLogEnddate").val(""),
// reloadTable();
common.openWin('setting/onlineUser', '在线用户', {}, [], function f() {
}, null, ['60%', '45%']);
})
} else {
$("#generalUserHeader").show();
url = common.domainName +'/api-log/sysLogin/findList?access_token='+accessToken
url = common.domainName + '/api-log/sysLogin/findList?access_token=' + accessToken
paga = false;
cols = [{field: 'loginTime', title: '登录时间', align: 'center'}
, {field: 'loginIp', title: 'IP地址', align: 'center'}
... ... @@ -121,14 +124,14 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
}
}
},
on: function(data){
on: function (data) {
setTimeout(reloadTable, 0)
},
data: res.data
})
if(settingOrgSelect){
if (settingOrgSelect) {
//追加样式
$('#settingOrgId').find('.xm-body').eq(0).css("width","230px");
$('#settingOrgId').find('.xm-body').eq(0).css("width", "230px");
}
}
})
... ... @@ -141,7 +144,11 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
reloadTable();
}
});
//lsq 登录日志页增加搜索按钮 2022-06-30
$('#settingQueryBtn').unbind('click').on('click', function () {
$("#loginLonMark").val("")
reloadTable();
})
$('[data-setting-pwd]').click(function () {
view('data-setting-pwd').render('template/user/password').then(function (res) {
layer.open({
... ... @@ -154,7 +161,7 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
});
function loginLogTable() {
if (localStorage.getItem("lgn") === 'admin' || localStorage.getItem("lgn") === 'root' ){
if (localStorage.getItem("lgn") === 'admin' || localStorage.getItem("lgn") === 'root') {
loginLog = table.render({
elem: '#settingLoginRecord'
, height: 'full-170'
... ... @@ -168,12 +175,12 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
if (res && res.data && res.data.length > 0) {
$('#lastLogin').text(res.data[0].loginTime);
}
if(res.object){
if (res.object) {
$('#loginUserNum').text(res.object);
}
}
});
}else{
} else {
loginLog = table.render({
elem: '#settingLoginRecord'
, height: 'full-170'
... ... @@ -187,7 +194,7 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
if (res && res.data && res.data.length > 0) {
$('#lastLogin').text(res.data[0].loginTime);
}
if(res.object){
if (res.object) {
$('#loginUserNum').text(res.object);
}
}
... ... @@ -213,4 +220,4 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
});
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -42,7 +42,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
//按钮搜索
$('#systemNoticeQueryBtn').unbind().on('click',function (e) {
reloadTable();
if(!noticeTable){
return;
}
conditions.noticeTempName = $('#condition-template-noticeTempName').val().trim();
conditions.startTime = $('#condition-template-startTime').val().trim();
conditions.endTime = $('#condition-template-endTime').val().trim();
conditions.access_token = accessToken
// 刷新表格
noticeTable.reload({
where: conditions,
page: {
curr: 1
}
});
})
// 新增按钮
... ... @@ -83,6 +96,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
conditions.startTime = $('#condition-template-startTime').val().trim();
conditions.endTime = $('#condition-template-endTime').val().trim();
noticeTable = table.render({
id:'systemNoticeNoticeTable',
elem: '#notice-table',
url: domainName + '/api-web/manage/noticetemp/page?access_token=' + accessToken,
where: conditions,
... ... @@ -96,7 +110,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
cols: [[{
type: 'checkbox'
}, {
field: 'noticeTempName', title: '模板名称', align: 'left',minWidth:400,
field: 'noticeTempName', title: '模板名称', align: 'left',minWidth:400, sort: true,
templet:
'<div>' +
' <span' +
... ... @@ -129,33 +143,31 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
// }
// }
, {
field: 'subPersonSum', title: '订阅人数', align: 'center',
field: 'subPersonSum', title: '订阅用户', align: 'center',
templet: function (d) {
if (!d.noticeTempUserList) {
return '';
} else {
var userList = [];
var userName = ''
$.each(d.noticeTempUserList,function (i,v) {
userList.push(v.nickname);
})
userName = userList.toString();
// return '<span data-subid="' + d.subId + '" class="layui-table-link link-notice-temp-view-user" style="width: 100%;">' + userName + '</span>';
return '<span>' + userName + '</span>';
return userList.join(",");
}
}
}, {
field: 'lastNoticeTime', title: '最后一次通知时间', align: 'center', templet: function (d) {
}, /*{
field: 'lastNoticeTime', title: '最后一次通知时间', align: 'center', sort: true, templet: function (d) {
if (d.alarmNoticeHis.updateTime) {
return '<span class="layui-table-link link-notice-temp-view-notice" data-subid="' + d.subId + '" data-index="' + d.LAY_TABLE_INDEX + '">' + d.alarmNoticeHis.updateTime + '</span>'
} else {
return ''
}
}
},*/ {
field: 'frequency', title: '通知频率', align: 'center',sort:true
}, {
field: 'frequency', title: '通知频率', align: 'center'
}, {
field: 'tempStatus', title: '状态', align: 'center',
field: 'tempStatus', title: '状态', align: 'center',sort: true,
templet: function (d) {
var checked = '';
if(d.enable == '1'){ //默认
... ... @@ -178,6 +190,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
templet:
'<div>' +
' <button data-id="{{d.noticeTempId}}" lay-tips="删除" type="button" class="layui-btn layui-btn-xs layui-btn-normal link-notice-temp-delete"><i class="layui-icon layui-icon-delete"></i></button>' +
' <button data-id="{{d.noticeTempId}}" data-subId="{{d.subId}}" lay-tips="发送" type="button" class="layui-btn layui-btn-xs layui-btn-normal link-notice-temp-send"><i class="layui-icon layui-icon-release"></i></button>' +
'</div>'
}]],
done: function (res) {
... ... @@ -214,6 +227,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
saveNotice($(this).data('id'),$(this).data("subid"),res.data[$(this).data('index')]);
});
// 手动发送
$('.link-notice-temp-send').click(function () {
openUserWindow($(this).data('subid'),res.data[$(this).data('index')]);
});
// 绑定订阅事件
$('.link-notice-temp-bind-sub').click(function () {
var noticeTempId = $(this).data('id');
... ... @@ -391,6 +409,22 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
// });
}
});
//触发排序事件
table.on('sort(notice-table)', function(obj){
var type = !obj.type ? 'desc' : obj.type;
conditions.orderKey = ` ${obj.field} ${type}`
//尽管我们的 table 自带排序功能,但并没有请求服务端。
//有些时候,你可能需要根据当前排序的字段,重新向服务端发送请求,从而实现服务端排序,如:
table.reload('systemNoticeNoticeTable', {
initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态。
,where: conditions
});
//layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
});
}
//发送通知弹窗
... ... @@ -528,4 +562,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
})
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -1056,7 +1056,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions',
btn: ['完成'],
content: laytpl(res.body).render(JSON.stringify({username:usernames})),
yes: function (index, layero) {//保存业务授权
debugger
var busType = layui.bustype({username:usernames[0], mode: 'bind'});
var busTypeData = busType.getData();
var loding = layer.load(2);
... ...
... ... @@ -8043,4 +8043,95 @@ form[lay-filter="activewarning-form"] .layui-inline {
cursor: pointer;
text-decoration: underline;
}
/*end lsq 2022-06-28*/
\ No newline at end of file
/*end lsq 2022-06-28*/
/*lsq 指令模板编辑指令时的指令名称样式 2022-07-04*/
.table-edit.table-edit-textoverflow td[data-field="dirctiveName"] .layui-table-cell{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/*lsq x86新增指标在详情页下的样式 2022-07-04*/
.template .lay-row-item-num {
background-color: #f8f8f8;
display: flex;
justify-content: space-around;
align-items: center;
min-height: 64px;
}
.template .lay-row-item-num .lay-row-num{
text-decoration: underline;
font-size: 32px;
cursor: pointer;
}
.cpupie_chart{
width:100%;
}
.cpupie_chart div:first-child{
z-index: 99;
}
.pie-circleStr{
position: absolute;
top: 0;
left: 0;
right: 60%;
bottom: 0px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
z-index: 9;
}
.pie-circleStr-title{
border: 1px solid #CCCCCC;
height: 55px;
width: 55px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
}
.pie-legend{
position: absolute;
top: 0;
right: 0;
left: 55%;
height: 115px;
display: flex;
flex-flow: column;
justify-content: center;
z-index: 100;
}
.pie-legend-item{
display:flex;
align-items: center;
font-size: 12px;
line-height: 23px;
}
.pie-legend-icon{
width:20px;
height:4px;
margin-right: 3px;
display: none;
}
.pie-legend-num{
cursor: pointer;
color:#1e9fff;
text-decoration: underline;
}
/*lsq 通知查询搜索栏 2022-07-05*/
.search_button_group{
display: flex;
justify-content: space-between;
padding:6px;
}
.card_header_search_button{
width:330px;
}
.quick_search span{
background-color: #1e9fff;
border-radius: 8px;
padding: 5px;
color: #fff;
cursor: pointer;
}
\ No newline at end of file
... ...
... ... @@ -53,10 +53,10 @@
<h5 class="lay-row-title">业务类型告警统计Top10</h5>
<div class="pie-chart" id="overview_alarm_busType"></div>
</div>
<!-- <div style="flex-grow: 1">
<h5 class="lay-row-title">业务域告警统计Top10</h5>
<div class="pie-chart" id="overview_alarm_domain"></div>
</div>-->
<!-- <div style="flex-grow: 1">
<h5 class="lay-row-title">业务域告警统计Top10</h5>
<div class="pie-chart" id="overview_alarm_domain"></div>
</div>-->
</div>
</div>
</div>
... ... @@ -69,8 +69,8 @@
<li>业务系统</li>
<li>业务域</li>
<div class="layui-btn-group time-group" id="overview_time" style="margin-left: 60%">
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" data-years="lastYear">去年</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm active" data-years="year">今年</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="lastYear" data-years="2020">去年</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm active" id="thisYear" data-years="2021">今年</button>
</div>
<button class="layui-btn layui-btn-sm layui-btn-normal tab-button" id="btn_overview_export_excel">
<i class="layui-icon">&#xe60a;</i>导出到Excel
... ... @@ -103,4 +103,4 @@
fn(JSON.parse(params));
}
});
</script>
\ No newline at end of file
</script>
... ...
... ... @@ -9,7 +9,7 @@
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<input type="text" id="alarmtemplatekw" lay-tips="关键字检索包含 </br>模板名称" name="alarmtemplatekw" placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input">
<input type="text" id="alarmtemplatekw" lay-tips="关键字检索包含 </br>模板名称</br>资源名称" name="alarmtemplatekw" placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
... ... @@ -57,6 +57,78 @@
</div>
<textarea class="hide" id="alarmtemplate-params">{{d}}</textarea>
</article>
<script id="tempResource" type="text/html">
<article class="page-container">
<div class="page-panel">
<div class="main">
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-status">
<form class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<input type="text" id="res-keyword" placeholder="输入名称,回车搜索" autocomplete="off"
lay-tips="关键字检索包含: </br>资源名称</br>ip地址"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<div id="templist_restype"></div>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="reslist_resStatus" id="templist_resStatus" lay-filter="templist_resStatus" lay-verify="required">
<option value="">=资源状态=</option>
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="label" id="templist_resListBizTypes" lay-filter="templist_resListBizTypes" lay-search>
<option value="">=选择业务=</option>
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="provider" id="templist_provider" lay-filter="templist_provider" lay-search>
<option value="">=选择厂商=</option>
</select>
</div>
</div>
<div class="layui-inline">
<button id="tempResBut" type="button" class="layui-btn layui-btn-normal" ><i
class="layui-icon layui-icon-search"></i>查
</button>
</div>
</div>
</form>
</div>
</div>
<div class="layui-card-body">
<div class="warn-btns">
<button id="addAuthResBtn" type="button" class="layui-btn layui-btn-sm layui-btn-normal"><i
class="layui-icon">&#xe654;</i>新增资
</button>
<button id="delAuthResBtn" type="button" class="layui-btn layui-btn-sm layui-btn-normal"><i
class="layui-icon">&#xe640;</i>删除资
</button>
</div>
<table id="res_temp_table"></table>
</div>
</div>
</div>
</div>
</article>
</script>
<!--<script template lay-done="layui.data.sendParams(d.params)"></script>-->
<script>
var params = document.getElementById("alarmtemplate-params").value;
... ... @@ -74,4 +146,4 @@
// fn(params);
// });
// };
</script>
\ No newline at end of file
</script>
... ...
... ... @@ -36,7 +36,7 @@
<a class="layui-btn layui-btn-xs layui-btn-normal" id="checkTemplateChooseKpi"><i class="layui-icon">&#xe624;</i></a>
</legend>
</fieldset>
<div class="layui-form-item table-edit">
<div class="layui-form-item table-edit table-edit-textoverflow">
<table id="checkTemplate_add_table"></table>
</div>
</form>
... ...
... ... @@ -17,9 +17,9 @@
<div class="page-panel">
<div class="main">
<div class="layui-card" style="overflow: hidden">
<div class="layui-card-header">
<div class="layui-card-header" style=" padding: 0 3px;">
<div class="layui-status search_panel">
<form class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="notice_search_form">
<form style="padding:5px 0 0 0;" class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="notice_search_form">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
... ... @@ -45,13 +45,36 @@
</div>
</div>
<!--发送状态-->
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<!--<div class="layui-inline">
<div class="layui-input-inline layui-input-inline&#45;&#45;long">
<select id="notice_search_isSend" lay-filter="notice_search_isSend">
<option value="1">已发送</option>
<option value="">待发送</option>
</select>
</div>
</div>-->
<!--lsq 告警指标 2022-07-05-->
<div class="layui-inline">
<div class="layui-input-inline">
<select name="alarmKpi" lay-filter="alarmKpiSearch" lay-search="" id="noticeAlarmKpiSearchBox">
</select>
</div>
</div>
<!--lsq 通知方式 2022-07-05-->
<div class="layui-inline">
<div class="layui-input-inline">
<select name="way" lay-filter="noticeWaySearch" llay-search="" id="noticeWaySearchBox">
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-primary" data-period="all">全部</button>
<button type="button" class="layui-btn active" data-period="today">今天</button>
<button type="button" class="layui-btn layui-btn-primary" data-period="week">本周</button>
<button type="button" class="layui-btn layui-btn-primary" data-period="month">本月</button>
<button type="button" class="layui-btn layui-btn-primary" data-period="custom" id="dataPeriodCustom">自定义</button>
</div>
</div>
<div class="layui-inline">
<button id="noticeSearchQueryBtn" type="button" class="layui-btn layui-btn-normal" ><i
... ... @@ -60,6 +83,7 @@
</div>
</div>
</form>
</div>
</div>
<div style="display: flex" class="layui-card-echart">
... ...
... ... @@ -86,9 +86,9 @@
<select name="type" id="noticeTimely_type" lay-filter="noticeTimely_type">
<option value="SQL">监控数据库</option>
<option value="TEXT">文本</option>
<!-- <option value="es">es</option>
<option value="influxdb">时序</option>
<option value="tdEngine">tdEngine</option>-->
<option value="ES">es</option>
<option value="INFLUXDB">时序</option>
<!-- <option value="tdEngine">tdEngine</option>-->
</select>
<div style="padding: 3px">
文本支持:#{now} 当前时间格式:yyyy-MM-dd HH:mm:ss
... ...
... ... @@ -13,8 +13,7 @@
</div>
</div>
<div class="layui-inline">
<button id="noticeTimelyQueryBtn" type="button" class="layui-btn layui-btn-normal" ><i
class="layui-icon layui-icon-search"></i>查询
<button id="noticeTimelyQueryBtn" type="button" class="layui-btn layui-btn-normal" >查询
</button>
</div>
</div>
... ...
... ... @@ -6,7 +6,7 @@
<div class="layui-card-header">
<div class="layui-status">
<form class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-form-item" style="display: inline-flex;">
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long" style="width: 180px;">
<input type="text" id="condition-heartbeat-name"
... ... @@ -14,11 +14,15 @@
placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input">
</div>
</div>
<!-- <div class="layui-inline">-->
<!-- <button id="heartbeatQueryBtn" type="button" class="layui-btn layui-btn-normal" ><i-->
<!-- class="layui-icon layui-icon-search"></i>查询-->
<!-- </button>-->
<!-- </div>-->
<div class="layui-inline" style="display: flex;flex-wrap: nowrap;width: 250px">
<div>超过最近心跳范围:</div>
<input type="number" name="durationVal" style="width: 80px"
lay-tips="超过最近心跳时间(单位:分钟)的心跳,<br/>在表格最近心跳列中文字颜色使用<span style='color:red'>红色</span>字体标识" placeholder="最近心跳时间" value="10" class="layui-input">
<div>分钟</div>
</div>
<div class="layui-inline">
<button id="heartbeatQueryBtn" type="button" class="layui-btn layui-btn-normal">查询</button>
</div>
</div>
</form>
</div>
... ... @@ -45,4 +49,4 @@
layui.use('selfmonitor', function (fn) {
fn();
});
</script>
\ No newline at end of file
</script>
... ...
... ... @@ -163,7 +163,10 @@
<p class="biz-count">业务总数<span id="bizTotal">0</span></p>
</div>
<div class="layui-card-body">
<input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search">
<div>
<input type="search" placeholder="搜索..." lay-tips="关键字检索包含: </br>资源名称</br>ip地址</br>资源类型</br>操作系统类型" id="bizInputSearch" autocomplete="off" class="layui-input layui-input-search" style="width: 180px">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="bizSearch" style="width: 50px;height: 30px;margin-top: -6px;">查询</button>
</div>
<div id="bizindextree"></div>
</div>
</div>
... ... @@ -340,4 +343,4 @@
layui.use('bizindex', function (fn) {
fn();
});
</script>
\ No newline at end of file
</script>
... ...
... ... @@ -18,12 +18,21 @@
<div class="layui-card-body noticeCount-ECharts" id="count_notice_send">
<div class="layui-noticeCount-ECharts">
<div>
<h5 class="lay-row-title" style="color: #666;">业务子系统告警发送统计</h5>
<div class="pie-chart pie-chart-custom" id="count_notice_send_business" style="height: 30vh"></div>
<h5 class="lay-row-title">
业务子系统告警发送统计
<span id="businessMore">查看更多</span>
</h5>
<div class="pie-chart pie-chart-custom" id="count_notice_send_business"
style="height: 30vh"></div>
</div>
<div>
<h5 class="lay-row-title" style="color: #666;">人员告警发送统计</h5>
<div class="pie-chart pie-chart-custom" id="count_notice_send_user" style="height: 30vh"></div>
<h5 class="lay-row-title">人员告警发送统计
<i class="iconfont detail_base_info" style="color:rgb(30,159,255);">&#xe61e;</i>
<span id="userMore">查看更多</span>
</h5>
<div class="pie-chart pie-chart-custom" id="count_notice_send_user"
style="height: 30vh"></div>
</div>
</div>
</div>
... ... @@ -51,4 +60,4 @@
layui.use('noticeCountIndex', function (fn) {
fn();
});
</script>
\ No newline at end of file
</script>
... ...
... ... @@ -274,9 +274,10 @@
<div class="layui-card">
<div class="layui-card-body">
<!--
<input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search">
-->
<div>
<input type="search" placeholder="搜索..." autocomplete="off" lay-tips="关键字检索包含: </br>资源名称</br>ip地址</br>资源类型</br>操作系统类型" id="inputSearch" class="layui-input layui-input-search" style="width: 180px">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="resSearch" style="width: 50px;height: 30px;margin-top: -6px;">查询</button>
</div>
<div id="resindextree"></div>
</div>
</div>
... ...
... ... @@ -2,12 +2,12 @@
<article class="page-container setting">
<div class="page-panel">
<div class="main">
<div class="main commonDiv">
<div class="layui-card">
<div class="setting-main" id="generalUserHeader">
<div class="setting-item">
<h5 class="setting-item-title">登录历史<br><span>以下为您最近10次登录记录,若存在异常情况,请在核实后尽快 <span
data-setting-pwd class="link">修改密码</span></span></h5>
class="link" data-setting-pwd>修改密码</span></span></h5>
<!-- <div id="settingLoginRecord"></div>-->
</div>
</div>
... ... @@ -18,21 +18,21 @@
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<input type="text" id="loginAccount" name="loginAccount"
placeholder="登录用户" autocomplete="off" class="layui-input">
<input autocomplete="off" class="layui-input" id="loginAccount"
name="loginAccount" placeholder="登录用户" type="text">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<input type="text" class="layui-input" id="loginLogStartdate"
placeholder="开始时间">
<input class="layui-input" id="loginLogStartdate" placeholder="开始时间"
type="text">
</div>
</div>
<div class="layui-inline layui-inline--sm">-</div>
<div class="layui-inline">
<div class="layui-input-inline layui-input-inline--long">
<input type="text" class="layui-input" id="loginLogEnddate"
placeholder="结束时间">
<input class="layui-input" id="loginLogEnddate" placeholder="结束时间"
type="text">
</div>
</div>
<div class="layui-inline">
... ... @@ -40,12 +40,16 @@
<div id="settingOrgId"></div>
</div>
</div>
<button class="layui-btn layui-btn-normal" id="settingQueryBtn" type="button">
查询
</button>
</div>
</form>
<div class="layui-form-item" style="display: block;">
<div class="layui-form-item" style="display: block;margin-bottom: 0;">
<input id="loginLonMark" type="hidden">
<div class="layui-input-inline" style="width: 200px;font-size: 18px">
<p class="ordering_header_right">当前在线用户数:<label id="loginUserNum" class="link">0</label></p>
<p class="ordering_header_right">当前在线用户数:<label class="link" id="loginUserNum">0</label>
</p>
</div>
</div>
</div>
... ... @@ -55,25 +59,25 @@
</div>
</div>
</div>
<!-- <div class="left">-->
<!-- <div class="layui-card">-->
<!-- <div class="layui-card-body">-->
<!-- <div class="user-info">-->
<!-- <div class="user-head">-->
<!-- <img src="/src/style/res/header.jpg">-->
<!-- <span id="nickname">管理员</span>-->
<!-- </div>-->
<!-- <p class="user-date">最后一次登录:<label id="lastLogin"></label></p>-->
<!-- <ul class="user-setting">-->
<!-- <li>快速通道</li>-->
<!-- <li data-setting-pwd class="link">修改密码</li>-->
<!-- <li>手机:<label id="mobile"></label></li>-->
<!-- &lt;!&ndash;<li>手机: 152****9999<span data-setting-phone class="link">修改</span></li>&ndash;&gt;-->
<!-- </ul>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="left">-->
<!-- <div class="layui-card">-->
<!-- <div class="layui-card-body">-->
<!-- <div class="user-info">-->
<!-- <div class="user-head">-->
<!-- <img src="/src/style/res/header.jpg">-->
<!-- <span id="nickname">管理员</span>-->
<!-- </div>-->
<!-- <p class="user-date">最后一次登录:<label id="lastLogin"></label></p>-->
<!-- <ul class="user-setting">-->
<!-- <li>快速通道</li>-->
<!-- <li data-setting-pwd class="link">修改密码</li>-->
<!-- <li>手机:<label id="mobile"></label></li>-->
<!-- &lt;!&ndash;<li>手机: 152****9999<span data-setting-phone class="link">修改</span></li>&ndash;&gt;-->
<!-- </ul>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</article>
... ...
<div class="layui-card-body">
<table id="onlineUserTable"></table>
</div>
<style>
</style>
<script>
layui.use('onlineUser', function (fn) {
fn({{ d }});
})
</script>
... ...
... ... @@ -63,6 +63,12 @@
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">CPU百分比
</h5>
<div id="x86server_cpupie" class="pie-wrap dasboard cpupie_chart">
</div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">CPU使用率
<a class="detail_row_menu hide">
<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">
... ...
... ... @@ -62,6 +62,12 @@
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">CPU百分比
</h5>
<div id="x86virtual_cpupie" class="pie-wrap dasboard cpupie_chart">
</div>
</div>
<div class="lay-row-item">
<h5 class="lay-row-title">CPU使用率
<a class="detail_row_menu hide">
<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">
... ... @@ -106,6 +112,25 @@
</ul>
</div>
</div>
<!--lsq x86新增的指标信息 2022-07-04-->
<div class="lay-row" id="x86virtual_linkdata">
<!--<div class="lay-row-item lay-row-item-num">
<div class="lay-row-title-label">总链接数</div>
<div class="lay-row-num">23</div>
</div>
<div class="lay-row-item lay-row-item-num">
<div class="lay-row-title-label">保持状态链接数</div>
<div class="lay-row-num"></div>
</div>
<div class="lay-row-item lay-row-item-num">
<div class="lay-row-title-label">time_wait状态链接数</div>
<div class="lay-row-num"></div>
</div>
<div class="lay-row-item lay-row-item-num">
<div class="lay-row-title-label">close_wait状态链接数</div>
<div class="lay-row-num"></div>
</div>-->
</div>
<div class="lay-row">
<div class="lay-row-item">
<h5 class="lay-row-title">文件系统<span id="x86virtual_filesysDownload" class="layui-table-link" style="margin-left: 10px;">下载</span><span id="x86virtual_filesysMore" class="layui-table-link">更多</span></h5>
... ...
... ... @@ -383,6 +383,7 @@
,trigger: 'focus' //呼出控件的事件
,show: false //是否直接显示,如果设置true,则默认直接显示控件
,showBottom: true //是否显示底部栏
,isPreview: true //是否显示值预览
,btns: ['clear', 'now', 'confirm'] //右下角显示的按钮,会按照数组顺序排列
,lang: 'cn' //语言,只支持cn/en,即中文和英文
,theme: 'default' //主题
... ... @@ -843,7 +844,7 @@
,elem = that.bindElem || options.elem[0]
,valType = that.isInput(elem) ? 'val' : 'html'
,value = that.isInput(elem) ? elem.value : (options.position === 'static' ? '' : elem.innerHTML)
,value = that.isInput(elem) ? elem.value : (options.position === 'static' ? '' : '')
//校验日期有效数字
,checkValid = function(dateTime){
... ... @@ -1411,6 +1412,9 @@
,elem = that.bindElem || options.elem[0]
,valType = that.isInput(elem) ? 'val' : 'html'
if(!options.isPreview){
return this;
}
options.position === 'static' || lay(elem)[valType](value || '');
return this;
};
... ... @@ -1867,4 +1871,4 @@
}()
);
}();
\ No newline at end of file
}();
... ...
... ... @@ -12,7 +12,7 @@ server:
key-store-password: Hg0801..
key-password: Hg0801..
url:
gateway: http://192.168.0.104:9200
gateway: https://192.168.0.69:8080
inspection_web: http://127.0.0.1:8082
assetsweb: http://127.0.0.1:8082
mxgraph_editor: http://127.0.0.1:8085
... ...
... ... @@ -36,6 +36,8 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
var bizParentList;
// 资源视图表格
var bizListTable;
var busHealthKeyWord = '';
var busIndexKeyWord = '';
//点击卡片
$('#bizindexTable').unbind('click').on('click', '[data-biz-card]', function () {
var resType = $(this).data("biz-card");
... ... @@ -58,9 +60,16 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
common.viewBizTopo($(this).data('busid'));
return false;
});
//搜索按钮
$('#bizSearch').unbind('click').on('click',function (){
busIndexKeyWord = $('#bizInputSearch').val();
loadBizTree(busIndexKeyWord)
})
//回车搜索
$('#bizindex_keyword').keydown(function (e) {
if (e.keyCode === 13) {
busIndexKeyWord = $(this).val();
// renderList(busId, curBizResType);
reloadTable();
return false;
... ... @@ -93,6 +102,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$('#biztreeTableContent').hide();
$('#bizDetailContent').empty();
$('#bizDetailContent').hide();
// $('#bizindex_keyword').val(busIndexKeyWord)
var bizindexTable = $('#bizindexTable');
autoHeight(bizindexTable);
window.setResizeEvents('autoHeight', autoHeight);
... ... @@ -117,8 +127,9 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
autoHeight(bizindexTable);
window.setResizeEvents('autoHeight', autoHeight);
admin.req({
url: common.domainName + '/api-web/home/resource/countResourceGroupByBusType',
}).done(function (res) {
url: common.domainName + '/api-web/home/resource/countResourceGroupByBusType?keyword='+busHealthKeyWord,
sync: true
}).always(function (res) {
layer.close(loading);
laytpl($('#bizindexTpl').html()).render({list: res.data, isBiz: true}, function (html) {
bizindexTable.html(html);
... ... @@ -171,6 +182,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
if (val == '' || val == null || val == undefined) {
val = '';
}
busHealthKeyWord = val;
admin.req({
url: common.domainName + '/api-web/home/business/getBusTree?keyword=' + val + '&notExist=machineroom',
sync: true,
... ... @@ -183,6 +195,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
showLine: false,
data: data,
click: function (node) {
// $('#bizindex_keyword').val(busIndexKeyWord)
if (node && node.data && node.data.children && node.data.children.length == 1) {
$('[data-id="' + node.data.children[0].id + '"]').find('.layui-tree-iconClick:first').click()
}
... ... @@ -262,6 +275,8 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$(".layui-input-search").keyup(function (e) {
if (e.keyCode === 13) {
loadBizTree($(this).val())
busIndexKeyWord = $(this).val();
busHealthKeyWord = $(this).val();
}
});
... ... @@ -371,7 +386,6 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$('#biztreeTableContent').hide();
//清除查询条件
$("#bizindex_keyword").val("");
$("#biz_resStatus").val("");
$("#biz_res_colony").val("");
$("#biz_res_cluster").val("");
... ... @@ -407,7 +421,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
, url: common.domainName + '/api-web/home/res-list/' + resTypeList.toString()
, where: {
access_token: accessToken,
resName: $("#bizindex_keyword").val(),
resName:busIndexKeyWord,
resHealth: $("#biz_resStatus").val(),
busId: busId,
colonlyId: $("#biz_res_colony").val(),
... ... @@ -466,11 +480,12 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$('#biztreeTableContent').hide();
$('#bizDetailContent').empty();
$('#bizDetailContent').hide();
// $('#bizindex_keyword').val(busIndexKeyWord)
var bizindexTable = $('#bizindexTable');
autoHeight(bizindexTable);
window.setResizeEvents('autoHeight', autoHeight);
admin.req({
url: common.domainName + "/api-web/datavis/getResTotal/?busId=" + bizId
url: common.domainName + "/api-web/datavis/getResTotal/?busId=" + bizId +"&keyWord="+busHealthKeyWord
, done: function (res) {
laytpl($('#bizindexTpl').html()).render({list: res.data}, function (html) {
bizindexTable.html(html);
... ... @@ -506,7 +521,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
, drag: {toolbar: false}
, where: {
access_token: accessToken,
resName: $("#bizindex_keyword").val(),
resName: busIndexKeyWord,
resHealth: $("#biz_resStatus").val(),
busId: busId,
colonlyId: $("#biz_res_colony").val(),
... ... @@ -566,7 +581,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
$('#bizDetailContent').empty();
$('#bizDetailContent').hide();
$('#biztreeTableContent').hide();
// $('#bizindex_keyword').val(busIndexKeyWord)
renderBizSerach(resType, busId);
form.render(null, 'biz-list-form');
... ... @@ -589,7 +604,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
, url: common.domainName + '/api-web/home/res-list/' + resType
, where: {
access_token: accessToken,
resName: $("#bizindex_keyword").val(),
resName: busIndexKeyWord,
resHealth: $("#biz_resStatus").val(),
busId: busId,
colonlyId: $("#biz_res_colony").val(),
... ... @@ -841,7 +856,6 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
//加载资源池、集群等查询条件
function renderBizSerach(resType, busId, subflag) {
//清空查询条件 joke add 20200409 开始
$('#bizindex_keyword').val('');
$('#biz_resStatus').val('');
$('#biz_res_colony').val('');
$('#biz_res_cluster').val('');
... ... @@ -993,7 +1007,7 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
}
,where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)
access_token: accessToken,
resName: $("#bizindex_keyword").val(),
resName: busIndexKeyWord,
resHealth: $("#biz_resStatus").val(),
busId: busId,
colonlyId: $("#biz_res_colony").val(),
... ... @@ -1033,4 +1047,4 @@ layui.define(['tree', 'laypage', 'laytpl', 'admin', 'form', 'table', 'commonCols
}
});
});
\ No newline at end of file
});
... ...
... ... @@ -262,6 +262,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
}
, {field: 'updateTime', title: '告警时间', align: 'center', minWidth: 180, sort: true}
, {field: 'alarmTime', title: '首次告警时间', align: 'center', minWidth: 180, sort: true}
, {field: 'clearTime', title: '消除时间', align: 'center', width: 190}
, {field: 'durationStr', title: '持续时间', align: 'center', width: 190}
, {
title: '操作', align: 'center', minWidth: 100,
... ... @@ -664,4 +665,4 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
});
});
\ No newline at end of file
});
... ...
... ... @@ -19,7 +19,8 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
var admin = layui.admin;
var commonDetail = layui.commonDetail;
var domainName = common.domainName;
var resHealthKeyWord = '';
var resindexKeyword = '';
var resTypeSelectExclude = ['HOST_MINICOMPUTER', 'HOST_MINICOMPUTER_SERVER', 'HOST_BMC', 'HOST_X86SERVER']
var curTreeNode = '';
... ... @@ -55,8 +56,8 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
$('#resindexTable').on('click', '[data-res-card]', function () {
var nodeId = $(this).attr("data-res-card");
currentResType = nodeId;//将当前点击的资源类型付给参数
selectedTreeNode('[data-id="' + currentResType + '"]','[data-id="' + currentResType.split('_')[0] + '"]');
renderList(currentResType,'');
selectedTreeNode('[data-id="' + currentResType + '"]', '[data-id="' + currentResType.split('_')[0] + '"]');
renderList(currentResType, '');
// renderList($(this).data("res-card"));
// $("div[data-id='"+nodeId+"']").find(".layui-tree-entry:first span.layui-tree-txt").trigger("click")
});
... ... @@ -126,7 +127,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
$('#resDetailContent').empty();
$('#resDetailContent').hide();
$('#treeTableContent').hide();
// $('#resindex_keyword').val(resindexKeyword)
//如果是阿里云,则显示阿里云的列表
if(resType && resType == 'ALI_CLOUD_PLAT'){
$(".resindexlist").show();
... ... @@ -141,7 +142,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
window.setResizeEvents('autoHeight', autoHeight);
admin.req({
url: common.domainName + '/api-web/home/resource/healthByResType?pResType=' + resType,
url: common.domainName + '/api-web/home/resource/healthByResType?pResType=' + resType +'&keyword=' + resHealthKeyWord,
}).done(function (res) {
laytpl($('#resindexTpl').html()).render({list: res.data}, function (html) {
resindexTable.html(html);
... ... @@ -149,40 +150,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
});
}
admin.req({
url: common.domainName + '/api-web/home/resType/getTree?notExist=machineroom&table=resources&exist=HOST_MINICOMPUTER_SERVER',
type: 'get',
sync: true,
done: function (res) {
layer.close(loading);
loadResTree(res.data);
//joke add 20200407,如果没有资源树,则默认资源页给提示无数据 开始
if (res.data.length === 0) {
var resindexTable = $('#resindexTable');
autoHeight(resindexTable);
laytpl($('#resindexTpl').html()).render({list: res.data}, function (html) {
resindexTable.html(html);
});
}
loadParamSelect();
//joke add 20200407,如果没有资源树,则默认资源页给提示无数据 开始
}
}).error(function () {
layer.close(loading);
//joke add 20200407
//树无数据提示
tree.render({
elem: '#resindextree',
showLine: false,
data: new Array()
});
//右侧无数据提示
var resindexTable = $('#resindexTable');
autoHeight(resindexTable);
laytpl($('#resindexTpl').html()).render({list: new Array()}, function (html) {
resindexTable.html(html);
});
});
//不带分页的列表
function renderTableList(resType) {
... ... @@ -243,7 +211,45 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
});
}
//左侧树
function loadResTree(data) {
function loadResTree(val) {
admin.req({
url: common.domainName + '/api-web/home/resType/getTree?notExist=machineroom&table=resources&exist=HOST_MINICOMPUTER_SERVER&keyword='+val,
type: 'get',
sync: true,
done: function (res) {
layer.close(loading);
treeList(res.data);
//joke add 20200407,如果没有资源树,则默认资源页给提示无数据 开始
if (res.data.length === 0) {
var resindexTable = $('#resindexTable');
autoHeight(resindexTable);
laytpl($('#resindexTpl').html()).render({list: res.data}, function (html) {
resindexTable.html(html);
});
renderIndex('')
}
loadParamSelect();
//joke add 20200407,如果没有资源树,则默认资源页给提示无数据 开始
}
}).error(function () {
layer.close(loading);
//joke add 20200407
//树无数据提示
tree.render({
elem: '#resindextree',
showLine: false,
data: new Array()
});
//右侧无数据提示
var resindexTable = $('#resindexTable');
autoHeight(resindexTable);
laytpl($('#resindexTpl').html()).render({list: new Array()}, function (html) {
resindexTable.html(html);
});
});
}
function treeList(data){
//默认展开全部一级节点
$.each(data,function (i,v) {
v.spread = true;
... ... @@ -309,7 +315,6 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
}
}
}
//回选树节点
function selectedTreeNode(target,parentTarget) {
var el = $(target).find('.layui-tree-txt').eq(0);
... ... @@ -687,12 +692,27 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
//回车搜索
$('#resindex_keyword').keydown(function (e) {
if (e.keyCode === 13) {
resindexKeyword = $(this).val();
// renderList(currentResType);
reloadTable();
return false;
}
});
$(".layui-input-search").keydown(function (e) {
if (e.keyCode === 13) {
resHealthKeyWord = $(this).val();
resindexKeyword = $(this).val();
loadResTree($(this).val());
}
});
//搜索按钮
$('#resSearch').unbind('click').on('click',function (){
resindexKeyword = $('#inputSearch').val();
resHealthKeyWord = $('#inputSearch').val();
loadResTree(resindexKeyword)
})
loadResTree('');
//资源详细信息
function renderDetail(resId, resType) {
$('#resIndexContent').hide();
... ... @@ -950,7 +970,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
, url: common.domainName + '/api-web/home/res-list/' + resType
, where: {
access_token: accessToken,
resName: $("#resindex_keyword").val(),
resName: resindexKeyword,
busId: bizId,
resHealth: $("#resStatus").val(),
colonlyId: $("#res_colony").val(),
... ... @@ -1040,6 +1060,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
$('#resDetailContent').empty();
$('#resDetailContent').hide();
$('#treeTableContent').hide();
// $('#resindex_keyword').val(resindexKeyword)
//加载查询条件
renderSerach(resType);
... ... @@ -1077,7 +1098,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
, url: common.domainName + '/api-web/home/res-list/' + resType
, where: {
access_token: accessToken,
resName: $("#resindex_keyword").val() !== '' ? $("#resindex_keyword").val() : id,
resName: resindexKeyword !== '' ? resindexKeyword : id,
busId: bizId,
resHealth: $("#resStatus").val(),
colonlyId: $("#res_colony").val(),
... ... @@ -1108,8 +1129,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
resTopo();
commonCols.colsClickEvent(editFlag);
loadRightResTypeSelectEvent(curTreeNode.data.id, "normal", res.obj);
loadRightResTypeSelectEvent(curTreeNode.id ? curTreeNode.id : curTreeNode.data.id, "normal", res.obj);
//表格排序监听 joke add 20200408
table.on('sort(resListTable)', function (obj) {
... ... @@ -1164,7 +1184,6 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
//加载资源池、集群等查询条件
function renderSerach(resType,subflag) {
//清空查询条件 joke add 20200409 开始
$('#resindex_keyword').val('');
$('#resStatus').val('');
// $('#resListBizTypes').val('');
if(xmSelect.get("#resListBizTypes") && xmSelect.get("#resListBizTypes")[0]){
... ... @@ -1398,7 +1417,6 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
//加载右侧资源类型下拉框
function loadRightResTypeSelectEvent(resType, type, obj) {
layer.closeAll('tips');
var str = '';
var domStr = 'resListContent'
var fun = reloadTable;
... ... @@ -1440,10 +1458,10 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
}
});
if(resType == 'HOST_MINICOMPUTER' || resType=='HUAWEI_CLOUD_CLUSTER' || resType=='HUAWEI_CLOUD_COLONY' || resType=='HUAWEI_CLOUD_PHYSICSHOST' ||
if (resType == 'HOST_MINICOMPUTER' || resType == 'HUAWEI_CLOUD_CLUSTER' || resType == 'HUAWEI_CLOUD_COLONY' || resType == 'HUAWEI_CLOUD_PHYSICSHOST' ||
resType == 'HUAWEI_CLOUD_STORAGE' || resType == 'HUAWEI_CLOUD_SWITCHBOARD' || resType == 'HUAWEI_CLOUD_FIREWALL' || resType == 'ALI_CLOUD_RDS'
|| resType == 'ALI_CLOUD_SLB' || resType == 'ALI_CLOUD_OSS'||resType=='VIRTUALIZATION_VMWARE_VHOST'||resType=='MIDDLEWARE_WEBLOGIC'
){//屏蔽连接状态
|| resType == 'ALI_CLOUD_SLB' || resType == 'ALI_CLOUD_OSS' || resType == 'VIRTUALIZATION_VMWARE_VHOST' || resType == 'MIDDLEWARE_WEBLOGIC'
) {//屏蔽连接状态
$('.info-box-count').eq(3).hide();
$('#link_state_div').hide();
}
... ... @@ -1459,7 +1477,7 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
}
, where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)
access_token: accessToken,
resName: $("#resindex_keyword").val(),
resName: resindexKeyword,
busId: bizId,
resHealth: $("#resStatus").val(),
colonlyId: $("#res_colony").val(),
... ... @@ -1704,4 +1722,4 @@ layui.define(['common', 'tree', 'laypage', 'laytpl', 'admin', 'form', 'table', '
return {getData: getCheckData};
});
});
\ No newline at end of file
});
... ...