312 lines
10 KiB
Plaintext
312 lines
10 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
|
|
<head>
|
|
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
|
|
<script>
|
|
$(document).ready(function() {
|
|
|
|
fn_set_dateRange_function('#dataRangeBtn', 'srchStrtSndngDt','srchEndSndngDt', 'srchEndSndngDt');
|
|
fn_set_date('srchStrtSndngDt', 'srchEndSndngDt','srchEndSndngDt', '7D');
|
|
fn_set_dateRange_function('#dataRange2Btn', 'srchStrtSndngDt2','srchEndSndngDt2', 'srchEndSndngDt2');
|
|
fn_set_date('srchStrtSndngDt2', 'srchEndSndngDt2','srchEndSndngDt2', '7D');
|
|
|
|
// 표 조회
|
|
fn_select_table_data(null, null);
|
|
|
|
// 날짜 검색
|
|
$("#srchBtn").on("click", function(){
|
|
fn_select_table_data(null, null);
|
|
});
|
|
|
|
|
|
// 표
|
|
// $("#").on("click", function() {
|
|
// fn_select_table_data(null, '', 'coupNm', 'ASC');
|
|
// });
|
|
|
|
// 페이징 제자리 새로고침(Submit) 방지
|
|
$('body').on('click', 'button.pagination__item.active', function(event) {
|
|
event.preventDefault();
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
* 테이블 데이터 조회
|
|
* pageIndex
|
|
* unitFlag
|
|
* - 없음 : ''
|
|
*
|
|
* ordrStand
|
|
* - fn_select_ordrStandMapping() 참조
|
|
*
|
|
* ordrType
|
|
* - 오름차순 : 'ASC'
|
|
* - 내림차순 : 'DESC'
|
|
*/
|
|
let PordrStand;
|
|
let TordrType;
|
|
const fn_select_table_data = function(pageIndex, unitFlag, ordrStand, ordrType) {
|
|
// console.log("fn_select_table_data()pageIndex, unitFlag : ", pageIndex, unitFlag);
|
|
|
|
const srchStrtSndngDt = $("#srchStrtSndngDt").val();
|
|
const srchEndSndngDt = $("#srchEndSndngDt").val();
|
|
const srchStrtSndngDt2 = $("#srchStrtSndngDt2").val();
|
|
const srchEndSndngDt2 = $("#srchEndSndngDt2").val();
|
|
const srchOrdrEnvrnCds = $('input[name="srchOrdrEnvrnCds"]:checked').map(function() { return $(this).val(); }).get();
|
|
const pageUnit = $("#pageUnit").val();
|
|
const recordCountPerPage = '50';
|
|
|
|
if(!pageIndex) {
|
|
$('#pageIndex').val(1);
|
|
} else {
|
|
$('#pageIndex').val(pageIndex);
|
|
}
|
|
const pageIndexValue = $("#pageIndex").val();
|
|
|
|
if(!unitFlag) {
|
|
// if ($('#').hasClass('selected')) {
|
|
unitFlag = '';
|
|
// }
|
|
}
|
|
|
|
if(!pageIndex){
|
|
if (!ordrType && PordrStand == ordrStand) {
|
|
//정렬 방식 변경 (정렬 기준 파라미터가 이전과 동일)
|
|
TordrType = (TordrType == 'ASC') ? 'DESC' : 'ASC';
|
|
}else if(!ordrType){
|
|
//정렬 방식 기본값으로 지정 (정렬 기준 변경)
|
|
TordrType = 'ASC';
|
|
}else{
|
|
//정렬 방식 초기화 (표 조회)
|
|
TordrType = ordrType;
|
|
}
|
|
|
|
if(!ordrStand){
|
|
//정렬 기준 기본값으로 지정
|
|
PordrStand = 'gubun';
|
|
}else{
|
|
//정렬 기준 변경
|
|
PordrStand = ordrStand;
|
|
}
|
|
}
|
|
|
|
const data = {
|
|
srchStrtSndngDt : srchStrtSndngDt,
|
|
srchEndSndngDt : srchEndSndngDt,
|
|
srchStrtSndngDt2 : srchStrtSndngDt2,
|
|
srchEndSndngDt2 : srchEndSndngDt2,
|
|
srchOrdrEnvrnCds : srchOrdrEnvrnCds,
|
|
unitFlag : unitFlag,
|
|
pageUnit : pageUnit,
|
|
ordrStand : PordrStand,
|
|
ordrType : TordrType,
|
|
pageIndex : pageIndexValue,
|
|
recordCountPerPage : recordCountPerPage
|
|
}
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url : "/mngr/stats/marktAnals/selectMngrCouponStatsTableInqire",
|
|
data : data,
|
|
success:function(resultHtml) {
|
|
// console.log('success');
|
|
$('#pageDiv').empty();
|
|
$('#pageDiv').html(resultHtml);
|
|
|
|
$('.reorder_' + PordrStand).text(fn_select_ordrStandMapping()[PordrStand] + (TordrType === 'ASC' ? ' ▲' : ' ▼'));
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 테이블 정렬 조건(행)
|
|
*/
|
|
const fn_select_ordrStandMapping = function() {
|
|
let ordrStandMapping;
|
|
|
|
ordrStandMapping = {
|
|
'coupNm': '쿠폰명',
|
|
'gubun': '쿠폰구분',
|
|
'discountAmt': '쿠폰할인금액',
|
|
'couponDwldCnt': '발급건수',
|
|
'couponUseDcnt': '사용건수'
|
|
};
|
|
|
|
return ordrStandMapping;
|
|
}
|
|
|
|
|
|
/**
|
|
* 엑셀 다운로드
|
|
*/
|
|
const fn_download_excel = function() {
|
|
|
|
let unitFlag = "";
|
|
// if ($('#').hasClass('selected')) {
|
|
// unitFlag = '';
|
|
// }
|
|
|
|
$('#unitFlag').val(unitFlag);
|
|
|
|
var tempForm = $('#listForm').clone();
|
|
tempForm.append('<input type="hidden" name="ordrStand" value="' + PordrStand + '">');
|
|
tempForm.append('<input type="hidden" name="ordrType" value="' + TordrType + '">');
|
|
tempForm.attr('action', '<c:url value="/mngr/stats/marktAnals/selectMngrCouponStatsExcelFileDownload"/>');
|
|
tempForm.attr('method', 'POST');
|
|
|
|
$('body').append(tempForm);
|
|
tempForm.submit();
|
|
tempForm.remove();
|
|
};
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<%@include file ="/WEB-INF/views/comm/mngr/Header.jsp" %>
|
|
<main class="main">
|
|
<%@include file ="/WEB-INF/views/comm/mngr/Left.jsp" %>
|
|
<div class="content">
|
|
<div class="content__inner">
|
|
|
|
<input type="hidden" id="pageIndex" value="${ resultMap.pageIndex }"/>
|
|
<input type="hidden" id="pageUnit" value="${ resultMap.pageUnit }"/>
|
|
|
|
<div class="page-title">
|
|
<div class="dashboardTitle__left">
|
|
<h2 class="page-title__title">전자상거래 요약</h2>
|
|
<p class="dashboardTitle__subTitle">전자상거래 분석에 꼭 필요한 정보만을 요약하여 볼 수 있습니다.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<form id="listForm">
|
|
<section class="content-section">
|
|
<div class="table-wrapper">
|
|
<table class="table dashboardSearch">
|
|
<caption>해당 테이블에 대한 설명</caption>
|
|
<colgroup>
|
|
<col>
|
|
|
|
<col>
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>결제기간</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" class="datepicker"
|
|
id="srchStrtSndngDt" name="srchStrtSndngDt" title="시작 날짜 선택"
|
|
autocomplete="off">
|
|
<span class="tilde">~</span>
|
|
<input type="text" class="datepicker"
|
|
id="srchEndSndngDt" name="srchEndSndngDt" title="종료 날짜 선택"
|
|
autocomplete="off">
|
|
</div>
|
|
<div class="dateRange-btnContainer" id="dataRangeBtn">
|
|
<button type="button" class="dateRange-btn" id="yesterday">어제</button>
|
|
<button type="button" class="dateRange-btn" id="today" >오늘</button>
|
|
<button type="button" class="dateRange-btn" id="threeDays">3일간</button>
|
|
<button type="button" class="dateRange-btn selected" id="sevenDays">일주일</button>
|
|
<button type="button" class="dateRange-btn" id="oneMonth">1개월</button>
|
|
<button type="button" class="dateRange-btn" id="threeMonth">3개월</button>
|
|
<button type="button" class="dateRange-btn" id="sixMonth">6개월</button>
|
|
<button type="button" class="dateRange-btn" id="year">1년</button>
|
|
</div>
|
|
<button class="btn sm primary ml-5" type="button" id="srchBtn">검색</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>발급기간</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" class="datepicker"
|
|
id="srchStrtSndngDt2" name="srchStrtSndngDt2" title="시작 날짜 선택"
|
|
autocomplete="off">
|
|
<span class="tilde">~</span>
|
|
<input type="text" class="datepicker"
|
|
id="srchEndSndngDt2" name="srchEndSndngDt2" title="종료 날짜 선택"
|
|
autocomplete="off">
|
|
</div>
|
|
<div class="dateRange-btnContainer" id="dataRange2Btn">
|
|
<button type="button" class="dateRange-btn">어제</button>
|
|
<button type="button" class="dateRange-btn">오늘</button>
|
|
<button type="button" class="dateRange-btn">3일간</button>
|
|
<button type="button" class="dateRange-btn selected">일주일</button>
|
|
<button type="button" class="dateRange-btn">1개월</button>
|
|
<button type="button" class="dateRange-btn">3개월</button>
|
|
<button type="button" class="dateRange-btn">6개월</button>
|
|
<button type="button" class="dateRange-btn">1년</button>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>주문환경</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="b-checkbox-container">
|
|
<c:forEach items="${cond.ordrEnvrnDvCdList}" var="ordrEnvrnDvCd" varStatus="status">
|
|
<c:if test="${!(ordrEnvrnDvCd.cd == 'S1' || ordrEnvrnDvCd.cd == 'S2' || ordrEnvrnDvCd.cd == 'S3')}">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="srchOrdrEnvrnCds" value="${ordrEnvrnDvCd.cd}">
|
|
<span class="check"></span>
|
|
<span class="control-label">${ordrEnvrnDvCd.cdNm}</span>
|
|
</label>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="table-wrapper">
|
|
<div class="dashboardContentTitle" style="margin-bottom: 20px;">
|
|
<div class="dashboardContentTitle__left">
|
|
<div class="dateRange-btnContainer">
|
|
<input type="hidden" name="unitFlag" id="unitFlag" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dashboardContentTitle__right">
|
|
<button class="btn outline sm" onclick="fn_download_excel(); return false;">
|
|
<i class="icon icon_excel"></i>
|
|
다운로드
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="pageDiv">
|
|
</div>
|
|
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</div>
|
|
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
|
</div>
|
|
</main>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html> |