Authored by xwx

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

//通知查询
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) {
... ... @@ -44,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();
... ... @@ -59,7 +98,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
usernames:userNames,
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val()
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
}
, height: 'full-380'
, page: {
... ... @@ -317,24 +358,13 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
form.render();
}
})
//lsq 快速检查字典数据 2022-07-05
$.ajax({
url: domainName + '/api-web/manage/ddic/findSucDdics/quick_search?access_token='+accessToken,
type: "POST",
success:function (res) {
var quickSearchs = res.data;
var html = ''
$.each(quickSearchs,function (i,e) {
html+=' <span data-code="'+e.ddicCode+'">'+e.ddicName+'</span>'
})
$("#quick_search").html('');
$("#quick_search").append(html);
form.render();
}
})
//刷新表格
function reloadTable() {
noticeTable.reload({
page: {
curr: 1
},
where:{
access_token:accessToken,
keyword: $('#notice_search_keyword').val(),
... ... @@ -344,7 +374,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
usernames:userNames,
page: 1,
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val()
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
}
});
}
... ... @@ -580,7 +612,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
resType: resType,
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').val()
way:$('#noticeWaySearchBox').val(),
dataPeriod: $('button[data-period].active').attr('data-period'),
timeRange: $('button[data-period].active').attr('data-val')
};
$.ajax({
... ... @@ -609,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));
}
}
})
... ... @@ -636,7 +670,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
resType: resType,
isSend: $('#notice_search_isSend').val(),
alarmKpi: $("#noticeAlarmKpiSearchBox").val(),
way:$('#noticeWaySearchBox').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({
... ...
... ... @@ -96,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,
... ... @@ -142,19 +143,17 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
// }
// }
, {
field: 'subPersonSum', title: '订阅人数', align: 'center', sort: true,
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(",");
}
}
}, /*{
... ... @@ -166,9 +165,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
}
}
},*/ {
field: 'frequency', title: '通知频率', align: 'center'
field: 'frequency', title: '通知频率', align: 'center',sort:true
}, {
field: 'tempStatus', title: '状态', align: 'center',
field: 'tempStatus', title: '状态', align: 'center',sort: true,
templet: function (d) {
var checked = '';
if(d.enable == '1'){ //默认
... ... @@ -410,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);
});
}
//发送通知弹窗
... ...
... ... @@ -68,30 +68,23 @@
</div>
</div>
<div class="layui-inline">
<!-- <button id="noticeSearchQueryBtn" type="button" class="layui-btn layui-btn-normal" ><i
<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
class="layui-icon layui-icon-search"></i>查询
</button>-->
</button>
</div>
</div>
</form>
</div>
<div class="search_button_group">
<div class="quick_search" id="quick_search">
<span>ip</span>
<span>ip1</span>
</div>
<div class="layui-card-header card_header_search_button" >
<div class="layui-btn-group time-group" id="noticeCount_time_button_id" style="float: right;">
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" data-period="all">全部</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm active" data-period="today">今天</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" data-period="week">本周</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" data-period="month">本月</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm" data-period="custom">自定义</button>
</div>
</div>
</div>
</div>
<div style="display: flex" class="layui-card-echart">
<div style="flex-grow: 3;width: 66%!important;" >
... ...
... ... @@ -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,12 +14,11 @@
placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="number" name="durationVal"
lay-tips="最近心跳时间(单位:分钟)" placeholder="最近心跳时间" value="10" class="layui-input">
<!-- <span>分钟</span>-->
</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>
... ...
... ... @@ -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
}();
... ...