流量统计增加drop,loop,new link ,close link ,pass ,live link详情
This commit is contained in:
@@ -715,6 +715,7 @@ public final class Constants {
|
||||
public static final String TRAFFIC_TOPICLIST=Configurations.getStringProperty("trafficTopicList","trafficTopicList");
|
||||
public static final String TRAFFIC_DOMAIN_TRANS=Configurations.getStringProperty("trafficDomainTrans","trafficDomainTrans");
|
||||
public static final String TRAFFIC_PORTACTIVE_FIVEMINUTE=Configurations.getStringProperty("trafficPortActiveFiveMinute","trafficPortActiveFiveMinute");
|
||||
public static final String TREND_TOTAL_REPORT=Configurations.getStringProperty("trendTotalReport","trendTotalReport");
|
||||
/**
|
||||
* httpclient 工具超时时间设置
|
||||
*/
|
||||
|
||||
@@ -639,4 +639,70 @@ public class TrafficStatisticsInfoController extends BaseController {
|
||||
}
|
||||
return list;
|
||||
}
|
||||
/**
|
||||
* drop, loop,new link,close link,pass,live link
|
||||
*/
|
||||
@RequestMapping("ntcTotalReportDetail")
|
||||
public String ntcTotalReportDetail(Model model,String searchAction){
|
||||
Calendar cal = Calendar. getInstance ();
|
||||
cal.setTime(new Date());
|
||||
String now = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//鑾峰彇鍒板畬鏁寸殑鏃堕棿
|
||||
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
|
||||
String oneHoursAgo = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());
|
||||
model.addAttribute("searchAction", searchAction);
|
||||
model.addAttribute("beginDate", oneHoursAgo);
|
||||
model.addAttribute("endDate", now);
|
||||
return "/dashboard/ntcTotalReportDetailList";
|
||||
}
|
||||
@RequestMapping("ajaxNtcTotalReportDetail")
|
||||
@ResponseBody
|
||||
public Map ajaxNtcTotalReportDetail(String beginDate,String endDate,Model model,String searchAction){
|
||||
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
||||
Map map = new HashMap();
|
||||
try {
|
||||
String url=Constants.DASHBOARD_URL+Constants.TREND_TOTAL_REPORT;
|
||||
if(StringUtil.isBlank(beginDate)||StringUtil.isBlank(endDate)){
|
||||
Calendar cal = Calendar. getInstance ();
|
||||
cal.setTime(new Date());
|
||||
endDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间
|
||||
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
|
||||
beginDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());
|
||||
}
|
||||
URIBuilder uriBuilder = new URIBuilder(url);
|
||||
uriBuilder.addParameter("searchReportStartTime",beginDate);
|
||||
uriBuilder.addParameter("searchReportEndTime",endDate);
|
||||
url=uriBuilder.toString();
|
||||
if(searchAction!=null){
|
||||
if("action_drop".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+1;
|
||||
}
|
||||
if("action_loop".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+2;
|
||||
}
|
||||
if("new_link".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+3;
|
||||
}
|
||||
if("active_link".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+4;
|
||||
}
|
||||
if("pass".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+6;
|
||||
}
|
||||
if("live_link".equals(searchAction)){
|
||||
url=url+"&searchBusinessType="+5;
|
||||
}
|
||||
}
|
||||
|
||||
String string = HttpClientUtil.get(url);
|
||||
Gson gson = new GsonBuilder().create();
|
||||
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
|
||||
logger.debug("动作详情统计一小时"+fromJsonList);
|
||||
map = (Map) fromJsonList.get("data");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("动作详情统计一小时数据获取错误"+e);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,4 +603,5 @@ trafficTopicList=trafficTopicList
|
||||
trafficDomainTrans=trafficDomainTrans
|
||||
#maximum number to import
|
||||
import_limit=10
|
||||
trafficPortActiveFiveMinute=trafficPortActiveFiveMinute
|
||||
trafficPortActiveFiveMinute=trafficPortActiveFiveMinute
|
||||
trendTotalReport=trendTotalReport
|
||||
@@ -101,75 +101,75 @@ body {
|
||||
</div>
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=action_drop"><i class="fa fa-trash"> </i></a>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=action_drop"><i class="fa fa-trash"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<%-- <a href="${ctx}/dashboard/ipActiveList"> --%>
|
||||
<p data-original-title="<spring:message code="action_drop"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- 丢弃链接数 --><spring:message code="action_drop"/></p>
|
||||
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=action_drop"> <p class="numberRun3">0</p></a>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=action_drop"> <p class="numberRun3">0</p></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=action_loop"><i class="fa fa-recycle"> </i></a>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=action_loop"><i class="fa fa-recycle"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<!-- <a href="javacript:;"> -->
|
||||
<p data-original-title="<spring:message code="action_loop"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- 回流链接数 --><spring:message code="action_loop"/></p>
|
||||
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=action_loop"><p class="numberRun">0</p></a>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=action_loop"><p class="numberRun">0</p></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<i class="fa fa-link"> </i>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=new_link"><i class="fa fa-link"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<!-- <a href="javacript:;"> -->
|
||||
<p data-original-title="<spring:message code="new_link"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- 新建链接数 --><spring:message code="new_link"/></p>
|
||||
<p class="numberRun5">0</p>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=new_link"> <p class="numberRun5">0</p></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<i class="fa fa-unlink"> </i>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=active_link"><i class="fa fa-unlink"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<p data-original-title="<spring:message code="active_link"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- 活跃链接数 --><spring:message code="active_link"/></p>
|
||||
<p class="numberRun6">0</p>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=active_link"><p class="numberRun6">0</p></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<i class="fa fa-smile-o"> </i>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=pass"><i class="fa fa-smile-o"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<p data-original-title="<spring:message code="pass"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- pass --><spring:message code="pass"/></p>
|
||||
<p class="numberRun7">0</p>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=pass"><p class="numberRun7">0</p></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fr_fc">
|
||||
<div class="fl_visual">
|
||||
<i class="fa fa-heartbeat"> </i>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=live_link"><i class="fa fa-heartbeat"> </i></a>
|
||||
</div>
|
||||
<div class="fl_fc">
|
||||
<p data-original-title="<spring:message code="live_link"/>"
|
||||
class="tooltips" data-flag="false" data-html="true" data-placement="top">
|
||||
<!-- live link--><spring:message code="live_link"/></p>
|
||||
<p class="numberRun8">0</p>
|
||||
<a href="${ctx}/dashboard/traffic/ntcTotalReportDetail?searchAction=live_link"><p class="numberRun8">0</p></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,280 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
<title><spring:message code="traffic_ip_active"></spring:message>
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="theme-panel hidden-xs hidden-sm">
|
||||
<button type="button" class="btn btn-default"
|
||||
onClick="javascript:window.location.reload()">
|
||||
<i class="fa fa-refresh"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-default"
|
||||
onClick="javascript:window.location='${ctx}/dashboard/logChart'">
|
||||
<i class="fa fa-history"></i>
|
||||
</button>
|
||||
</div>
|
||||
<h3 class="page-title">
|
||||
<spring:message code="${searchAction}"></spring:message>
|
||||
</h3>
|
||||
<h5 class="page-header"></h5>
|
||||
<div class="row">
|
||||
<form:form id="searchForm" method="get" class="form-search">
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
<div class="col-md-12">
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control"><spring:message
|
||||
code="begin_date" /></span>
|
||||
</div>
|
||||
<input id="beginDate" name="beginDate" type="text"
|
||||
readonly="readonly" class="form-control Wdate input-medium"
|
||||
value=""
|
||||
onclick="WdatePicker({onpicked:setTime,dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control"><spring:message
|
||||
code="end_date" /></span>
|
||||
</div>
|
||||
<input id="endDate" name="endDate" type="text"
|
||||
readonly="readonly" class="form-control Wdate input-medium"
|
||||
value=""
|
||||
onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'#F{$dp.$D(\'beginDate\',{d:7})}'});" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left">
|
||||
<button type="button" class="btn blue"
|
||||
onClick="return searchList()">
|
||||
<i class="fa fa-search"></i>
|
||||
<spring:message code="search" />
|
||||
</button>
|
||||
<button type="button" class="btn btn-default" id="resetBtn">
|
||||
<i class="fa fa-refresh"></i>
|
||||
<spring:message code="reset" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
</form:form>
|
||||
</div>
|
||||
<div id="chart" style="width: 97%; height: 530px; margin-top: 20px"></div>
|
||||
<input id="total" type="hidden" /> <input id="searchAction"
|
||||
name="searchAction" type="hidden" value="${searchAction}" /> <input
|
||||
id="beginDateh" type="hidden" value="${beginDate}" /> <input
|
||||
id="endDateh" type="hidden" value="${endDate}" />
|
||||
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/highcharts.js"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting.js"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting-data.js"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/standalone.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var starth = $("#beginDateh").val();
|
||||
var endh = $("#endDateh").val();
|
||||
$("#beginDate").val(starth);
|
||||
$("#endDate").val(endh);
|
||||
actionTransAjax($("#searchAction").val(), starth,endh);
|
||||
//筛选功能初始化
|
||||
$("#resetBtn").on("click",function() {
|
||||
$("select.selectpicker").each(function() {
|
||||
$(this).selectpicker('val',$(this).find('option:first').val());
|
||||
$(this).find("option").attr("selected",false);
|
||||
$(this).find("option:first").attr("selected",true);
|
||||
});
|
||||
$(".Wdate").attr("value", '');
|
||||
$("#searchForm")[0].reset();
|
||||
});
|
||||
|
||||
setInterval(function(){
|
||||
actionTransAjax($("#searchAction").val(),starth,new Date().Format("yyyy-MM-dd HH:mm:00"));
|
||||
},500000);// 五分钟调用一次
|
||||
});
|
||||
function searchList() {
|
||||
// loading();
|
||||
var start = $("#beginDate").val();
|
||||
var end = $("#endDate").val();
|
||||
if (start == '' || end == '' || end == null || start == null) {
|
||||
window.location.reload();
|
||||
} else {
|
||||
actionTransAjax($("#searchAction").val(), start, end);
|
||||
}
|
||||
}
|
||||
// 局点信息
|
||||
function showActionTransChart(rs) {
|
||||
var data = new Array();
|
||||
var xData = new Array();
|
||||
xData = rs.statTime;
|
||||
var series = new Array();
|
||||
|
||||
var total = 0;
|
||||
$(rs.sum).each(function(i,d) {
|
||||
total+=d
|
||||
})
|
||||
|
||||
$("#total").val(JSON.stringify(total));
|
||||
series.push({
|
||||
name: 'sum',
|
||||
data: rs.sum
|
||||
});
|
||||
var chart = Highcharts.chart('chart',
|
||||
{
|
||||
chart : {
|
||||
// type: 'area',
|
||||
zoomType : 'x'
|
||||
},
|
||||
exporting : {
|
||||
filename : 'Action-Trans',
|
||||
scale : 1,
|
||||
sourceWidth : 1280,
|
||||
sourceHeight : 500,
|
||||
buttons : {
|
||||
contextButton : {
|
||||
menuItems : [
|
||||
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[0],// 打印
|
||||
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[1],// jpeg
|
||||
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[4],// excel
|
||||
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[3],// cvs
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
title : {
|
||||
text : null
|
||||
},
|
||||
/* xAxis: {
|
||||
type:'category',
|
||||
categories: [1,2,3],
|
||||
title: {
|
||||
text: 'time',
|
||||
align:'high',
|
||||
},
|
||||
labels: {
|
||||
rotation: -45, //倾斜的角度
|
||||
},
|
||||
}, */
|
||||
xAxis: {
|
||||
type:'category',
|
||||
categories: xData,
|
||||
title: {
|
||||
text: 'time',
|
||||
align:'high',
|
||||
},
|
||||
labels: {
|
||||
rotation: -45, //倾斜的角度
|
||||
},
|
||||
},
|
||||
yAxis : {
|
||||
title : {
|
||||
text : null
|
||||
}
|
||||
},
|
||||
credits : {//是否有highcharts水印
|
||||
enabled : false
|
||||
},
|
||||
plotOptions : {
|
||||
series : {
|
||||
marker : {
|
||||
radius : 2,
|
||||
hover : {
|
||||
enabled : true,
|
||||
radius : 7,
|
||||
radiusPlus : 5
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// legend: {
|
||||
// layout: 'vertical',
|
||||
// align: 'right',
|
||||
// verticalAlign: 'middle'
|
||||
// },
|
||||
series : series,
|
||||
});
|
||||
}
|
||||
// 动作一小时,间隔五分钟统计数据
|
||||
function actionTransAjax(searchAction, beginDate, endDate) {
|
||||
loading();
|
||||
$.ajax({
|
||||
url : "${ctx}/dashboard/traffic/ajaxNtcTotalReportDetail?searchAction="+searchAction+"&beginDate="+beginDate+"&endDate="+endDate,
|
||||
type : "get",
|
||||
dataType : "json",
|
||||
cache : false,
|
||||
async : false,
|
||||
success : function(rs) {
|
||||
showActionTransChart(rs);
|
||||
closeTip();
|
||||
},
|
||||
error : function(data, textStatus, errorThrown) {
|
||||
closeTip();
|
||||
},
|
||||
complete : function(XMLHttpRequest, status) {//超时设置
|
||||
closeTip();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
(function(H) {
|
||||
H.Chart.prototype.downloadXLS = function() {
|
||||
var div = document.createElement('div'), xlsxRows = [], xlsxColumns = [];
|
||||
|
||||
div.style.display = 'none';
|
||||
document.body.appendChild(div);
|
||||
rows = this.getDataRows(true);
|
||||
xlsxRows = H.map(rows.slice(1), function(row) {
|
||||
return H.map(row, function(column) {
|
||||
return {
|
||||
type : typeof column === 'number' ? 'number' : 'string',
|
||||
value : column
|
||||
};
|
||||
});
|
||||
});
|
||||
var start = $("#beginDate").val();
|
||||
var end = $("#endDate").val();
|
||||
var b = new Array();
|
||||
b.push({
|
||||
type : 'string',
|
||||
value : 'Action-Trans'
|
||||
})
|
||||
b.push({
|
||||
type : "string",
|
||||
value : start + "--" + end
|
||||
})
|
||||
xlsxRows.unshift(b);
|
||||
|
||||
var a = new Array();
|
||||
a.push({
|
||||
type : 'string',
|
||||
value : 'Total'
|
||||
})
|
||||
var total = total = JSON.parse($("#total").val());
|
||||
a.push({
|
||||
type : "number",
|
||||
value : total
|
||||
})
|
||||
xlsxRows.push(a)
|
||||
zipcelx({
|
||||
filename : 'Action-Trans',
|
||||
sheet : {
|
||||
data : xlsxRows
|
||||
}
|
||||
});
|
||||
};
|
||||
}(Highcharts));
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -84,7 +84,7 @@
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> <spring:message code="export"/>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: -16px;">
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: 2px;">
|
||||
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
|
||||
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv </a><li>
|
||||
</ul>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> <spring:message code="export"/>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: -16px;">
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: 2px;">
|
||||
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
|
||||
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv </a><li>
|
||||
</ul>
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> <spring:message code="export"/>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: -16px;">
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: 2px;">
|
||||
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
|
||||
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv </a><li>
|
||||
</ul>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> <spring:message code="export"/>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: -16px;">
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: 2px;">
|
||||
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
|
||||
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv </a><li>
|
||||
</ul>
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> <spring:message code="export"/>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: -16px;">
|
||||
<ul class="dropdown-menu" role="menu" style="min-width: 81px;right: 2px;">
|
||||
<li><a class="btn export-btn" data-type="xlsx" id="export-btn"><i class="fa fa-download"> </i> excel </a><li>
|
||||
<li><a class="btn export-btn" data-type="csv" id="export-btn"><i class="fa fa-download"> </i> csv </a><li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user