|
|
@@ -0,0 +1,402 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="ko"
|
|
|
+ xmlns:th="http://www.thymeleaf.org">
|
|
|
+<!--
|
|
|
+ *******************************************************************************
|
|
|
+ * @source : BestTradingForm.html
|
|
|
+ * @desc : 베스트주문 Page
|
|
|
+ *============================================================================
|
|
|
+ * STYLE24
|
|
|
+ * Copyright(C) 2020 TSIT, All rights reserved.
|
|
|
+ *============================================================================
|
|
|
+ * VER DATE AUTHOR DESCRIPTION
|
|
|
+ * === =========== ========== =============================================
|
|
|
+ * 1.0 2021-09-25 토 lmc 최초 작성
|
|
|
+ *******************************************************************************
|
|
|
+ -->
|
|
|
+ <div id="main">
|
|
|
+ <!-- 메인타이틀 영역 -->
|
|
|
+ <div class="main-title"></div>
|
|
|
+ <!-- //메인타이틀 영역 -->
|
|
|
+
|
|
|
+ <!-- 메뉴 설명 -->
|
|
|
+ <div class="infoBox menu-desc"></div>
|
|
|
+ <!-- //메뉴 설명 -->
|
|
|
+
|
|
|
+ <!-- 검색조건 영역 -->
|
|
|
+ <div class="panelStyle">
|
|
|
+ <form id="searchForm" name="searchForm" action="#" th:action="@{'/statistics/best/order/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
|
|
|
+ <input type="hidden" name="dayGb" value="D"/>
|
|
|
+ <input type="hidden" name="imageViewYn" value="Y"/>
|
|
|
+ <a href="javascript:void(0);" id="excelList" style="display: none;"></a>
|
|
|
+
|
|
|
+ <table class="frmStyle" aria-describedby="검색조건">
|
|
|
+ <colgroup>
|
|
|
+ <col style="width:10%;"/>
|
|
|
+ <col style="width:25%;"/>
|
|
|
+ <col style="width:10%;"/>
|
|
|
+ <col/>
|
|
|
+ </colgroup>
|
|
|
+ <tr>
|
|
|
+ <th>기간<i class="required" title="필수" aria-hidden="true"></i></th>
|
|
|
+ <td colspan="3" id="terms"></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>디바이스</th>
|
|
|
+ <td>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="P" checked="checked"/>PC웹</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="M" checked="checked"/>모바일웹</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="A" checked="checked"/>APP</label>
|
|
|
+ </td>
|
|
|
+ <th>제휴몰</th>
|
|
|
+ <td>
|
|
|
+ <input type="text" class="w100" name="extmallIdSearchTxt" id="extmallIdSearchTxt" maxlength="20"/>
|
|
|
+ <button type="button" class="btn icn" onclick="cfnOpenExtmallListPopup('fnSetExtmallInfo', 'M');"><i class="fa fa-search"></i></button>
|
|
|
+ <span id="extmallIdTxt"></span>
|
|
|
+ <input type="hidden" name="extmallIdList"/>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>물류구분</th>
|
|
|
+ <td>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiDistributionGb" value="SCM" checked="checked"/>입점</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiDistributionGb" value="WMS" checked="checked"/>위탁</label>
|
|
|
+ </td>
|
|
|
+ <th>정상/이월구분</th>
|
|
|
+ <td>
|
|
|
+ <label th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" class="chkBox checked"><input type="checkbox" name="multiFormalGb" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}" checked="checked"/></label>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>성별</th>
|
|
|
+ <td>
|
|
|
+ <label th:if="${sexGbList}" th:each="oneData, status : ${sexGbList}" class="chkBox checked"><input type="checkbox" name="multiSexGb" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}" checked="checked"/></label>
|
|
|
+ </td>
|
|
|
+ <th>연령별</th>
|
|
|
+ <td>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiAgeGb" value="10" checked="checked"/>10대</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiAgeGb" value="20" checked="checked"/>20대</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiAgeGb" value="20" checked="checked"/>30대</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiAgeGb" value="30" checked="checked"/>40대</label>
|
|
|
+ <label class="chkBox checked"><input type="checkbox" name="multiAgeGb" value="X" checked="checked"/>기타/미상</label>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>브랜드</th>
|
|
|
+ <td>
|
|
|
+ <input type="text" class="w100" name="brandCdSearchTxt" id="brandCdSearchTxt" maxlength="20" />
|
|
|
+ <button type="button" class="btn icn" onclick="cfnOpenBrandListPopup('fnSetBrandInfo', 'M');"><i class="fa fa-search"></i></button>
|
|
|
+ <span id="brandCdTxt"></span>
|
|
|
+ <input type="hidden" name="brandCdList"/>
|
|
|
+ </td>
|
|
|
+ <th>품목</th>
|
|
|
+ <td>
|
|
|
+ <input type="text" class="w100" name="itemkindCdSearchTxt" id="itemkindCdSearchTxt" maxlength="20" />
|
|
|
+ <button type="button" class="btn icn" onclick="cfnOpenItemkindListPopup('fnSetItemkindInfo', 'M');"><i class="fa fa-search"></i></button>
|
|
|
+ <span id="itemkindTxt"></span>
|
|
|
+ <input type="hidden" name="itemkindCdList"/>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>제휴채널</th>
|
|
|
+ <td>
|
|
|
+ <input type="text" class="w100" name="afLinkCdSearchTxt" id="afLinkCdSearchTxt" maxlength="20" />
|
|
|
+ <button type="button" class="btn icn" onclick="cfnOpenAfLinkListPopup('fnSetAfLinkInfo', 'M');"><i class="fa fa-search"></i></button>
|
|
|
+ <span id="afLinkCdTxt"></span>
|
|
|
+ <input type="hidden" name="afLinkCdList"/>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+
|
|
|
+ <ul class="panelBar">
|
|
|
+ <li class="center">
|
|
|
+ <button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
|
|
|
+ <button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <!-- 검색조건 영역 -->
|
|
|
+
|
|
|
+ <!-- 리스트 영역 -->
|
|
|
+ <div class="panelStyle">
|
|
|
+ <ul class="panelBar">
|
|
|
+ <li>
|
|
|
+ <button type="button" class="btn btn-default btn-lg" onclick="fnExcelDownLoad();">엑셀다운로드</button>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div id="gridList" style="width: 100%; height: 470px" class="ag-theme-balham"></div>
|
|
|
+ </div>
|
|
|
+ <!-- //리스트 영역 -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+<style>
|
|
|
+.ag-header-group-text{
|
|
|
+ margin-left: calc(50% - 25px);
|
|
|
+}
|
|
|
+</style>
|
|
|
+<script th:inline="javascript">
|
|
|
+/*<![CDATA[*/
|
|
|
+ let columnDefs = [
|
|
|
+ { headerName: "No", field: "day", width: 100, cellClass: 'text-center', valueGetter: "node.rowIndex + 1" },
|
|
|
+ { headerName: "이미지", field: "sysImgUrl", width: 100, height: 60, cellClass: 'text-center'
|
|
|
+ ,cellRenderer: function(params) {
|
|
|
+ return '<img width="60" src="'+ _goodsUrl+ "/" + params.value + '?RS=60" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ _goodsUrl+ "/" + params.value +'\')" onerror="this.src=\'/image/no.png\';"/>';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "브랜드", field: "brandEnm", width: 100, cellClass: 'text-center'},
|
|
|
+ { headerName: "상품번호", field: "goodsCd", width: 100, cellClass: 'text-center'},
|
|
|
+ { headerName: "구분", field: "distributionGb", width: 100, cellClass: 'text-center'},
|
|
|
+ { headerName: "상품명", field: "goodsNm", width: 400, cellClass: 'text-left'},
|
|
|
+ { headerName: "판매가", field: "currPrice", width: 100, cellClass: 'text-right',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "판매갯수", field: "sellQty", width: 100, cellClass: 'text-right',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "매출액", field: "totAmt", width: 100, cellClass: 'text-right',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "현재고", field: "stockQty", width: 100, cellClass: 'text-right',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ];
|
|
|
+
|
|
|
+ let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
|
|
|
+
|
|
|
+ // 중복 선택 가능
|
|
|
+ gridOptions.rowSelection = 'multiple';
|
|
|
+ gridOptions.suppressRowClickSelection = true;
|
|
|
+ gridOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
|
|
|
+
|
|
|
+ // Row Click
|
|
|
+ gridOptions.onCellClicked = function(event) {
|
|
|
+ var goodsCd = event.data.goodsCd;
|
|
|
+ if (event.colDef.field == "goodsCd"){
|
|
|
+ cfnOpenGoodsDetailPopup('U',goodsCd);
|
|
|
+ }
|
|
|
+ if (event.colDef.field == "goodsNm"){
|
|
|
+ cfnOpenGoodsDetailPopup('U',goodsCd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ gridOptions.excelStyles = [
|
|
|
+ {
|
|
|
+ id: 'text-center',
|
|
|
+ dataType: 'string',
|
|
|
+ font: {size : 10, bold: false}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 'text-left',
|
|
|
+ dataType: 'string',
|
|
|
+ font: {size : 10, bold: false}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 'text-right',
|
|
|
+ dataType: 'number',
|
|
|
+ font: {size : 10, bold: false}
|
|
|
+ }
|
|
|
+ ];
|
|
|
+
|
|
|
+ var fnExcelDownLoad = function(){
|
|
|
+
|
|
|
+ var formId = '#searchForm';
|
|
|
+ if (gridOptions.api.getDisplayedRowCount() <= 0){
|
|
|
+ mcxDialog.alert("조회된 데이터가 없습니다.<br/>다시 조회 후 다운로드 받으세요.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $("#searchForm input[name=imageViewYn]").val('Y');
|
|
|
+
|
|
|
+ $('#excelList').attr({ href : '/statistics/best/excel/down?' + $("#searchForm").serialize() }).get(0).click();
|
|
|
+
|
|
|
+// var totalRows = gridOptions.api.getDisplayedRowCount();
|
|
|
+// if(totalRows==0){
|
|
|
+// mcxDialog.alert('조회된 내역이 없습니다.');
|
|
|
+// return;
|
|
|
+// }
|
|
|
+
|
|
|
+// var date = new Date().format("YYYYMMDDHHmmss");
|
|
|
+// var params = {
|
|
|
+// fileName : "베스트상품 주문목록_"+ date,
|
|
|
+// sheetName: "DATA"
|
|
|
+// };
|
|
|
+
|
|
|
+// gridOptions.api.exportDataAsExcel(params);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 제휴몰 조회 팝업에서 호출
|
|
|
+ var fnSetExtmallInfo = function(result) {
|
|
|
+ var arrExtmallId = [];
|
|
|
+ var extmallIdTxt = "";
|
|
|
+ var sIndex = 0;
|
|
|
+ $('#extmallIdTxt').html('');
|
|
|
+ $('#searchForm input[name=extmallIdSearchTxt]').val('');
|
|
|
+
|
|
|
+ result.forEach(function(extmall) {
|
|
|
+ sIndex++;
|
|
|
+ arrExtmallId.push(extmall.extmallId);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
|
|
|
+ if (sIndex == 1) {
|
|
|
+ $('#searchForm input[name=extmallIdSearchTxt]').val(arrExtmallId[0]);
|
|
|
+ } else {
|
|
|
+ extmallIdTxt = sIndex + " 개";
|
|
|
+ $('#extmallIdTxt').html(extmallIdTxt);
|
|
|
+ }
|
|
|
+
|
|
|
+ var jsonData = JSON.stringify(arrExtmallId);
|
|
|
+ $("#searchForm input[name=extmallIdList]").val(arrExtmallId.join(','));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 업체 조회 팝업에서 호출
|
|
|
+ var fnSetSupplyCompInfo = function(result) {
|
|
|
+ var arrSupplyCompCd = [];
|
|
|
+ var supplyCompCdTxt = "";
|
|
|
+ var sIndex = 0;
|
|
|
+ $('#supplyCompCdTxt').html('');
|
|
|
+ $('#searchForm input[name=supplyCompCdSearchTxt]').val('');
|
|
|
+
|
|
|
+ result.forEach(function(supplyComp) {
|
|
|
+ sIndex++;
|
|
|
+ arrSupplyCompCd.push(supplyComp.supplyCompCd);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
|
|
|
+ if (sIndex == 1) {
|
|
|
+ $('#searchForm input[name=supplyCompCdSearchTxt]').val(arrSupplyCompCd[0]);
|
|
|
+ } else {
|
|
|
+ supplyCompCdTxt = sIndex + " 개";
|
|
|
+ $('#supplyCompCdTxt').html(supplyCompCdTxt);
|
|
|
+ }
|
|
|
+
|
|
|
+ var jsonData = JSON.stringify(arrSupplyCompCd);
|
|
|
+ $("#searchForm input[name=supplyCompCdList]").val(arrSupplyCompCd.join(','));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 제휴채널 조회 팝업에서 호출
|
|
|
+ var fnSetAfLinkInfo = function(result) {
|
|
|
+ var arrAfLinkCd = [];
|
|
|
+ var afLinkCdTxt = "";
|
|
|
+ var sIndex = 0;
|
|
|
+ $('#afLinkCdTxt').html('');
|
|
|
+ $('#searchForm input[name=afLinkCdSearchTxt]').val('');
|
|
|
+
|
|
|
+ result.forEach(function(afLink) {
|
|
|
+ sIndex++;
|
|
|
+ arrAfLinkCd.push(afLink.afLinkCd);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
|
|
|
+ if (sIndex == 1) {
|
|
|
+ $('#searchForm input[name=afLinkCdSearchTxt]').val(arrAfLinkCd[0]);
|
|
|
+ } else {
|
|
|
+ afLinkCdTxt = sIndex + " 개";
|
|
|
+ $('#afLinkCdTxt').html(afLinkCdTxt);
|
|
|
+ }
|
|
|
+
|
|
|
+ var jsonData = JSON.stringify(arrAfLinkCd);
|
|
|
+ $("#searchForm input[name=afLinkCdList]").val(arrAfLinkCd.join(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 브랜드 조회 팝업에서 호출
|
|
|
+ var fnSetBrandInfo = function(result) {
|
|
|
+ var arrBrandCd = [];
|
|
|
+ var brandCdTxt = "";
|
|
|
+ var bIndex = 0;
|
|
|
+ $('#brandCdTxt').html('');
|
|
|
+ $('#searchForm input[name=brandCdSearchTxt]').val('');
|
|
|
+
|
|
|
+ result.forEach(function(brand){
|
|
|
+ bIndex++;
|
|
|
+ arrBrandCd.push(brand.brandCd);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
|
|
|
+ if (bIndex == 1) {
|
|
|
+ $('#searchForm input[name=brandCdSearchTxt]').val(arrBrandCd[0]);
|
|
|
+ } else {
|
|
|
+ brandCdTxt = bIndex + " 개";
|
|
|
+ $('#brandCdTxt').html(brandCdTxt);
|
|
|
+ }
|
|
|
+
|
|
|
+ var jsonData = JSON.stringify(arrBrandCd);
|
|
|
+ $("#searchForm input[name=brandCdList]").val(arrBrandCd.join(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 품목 조회 팝업에서 호출
|
|
|
+ var fnSetItemkindInfo = function(result) {
|
|
|
+ var arrItemkindCd = [];
|
|
|
+ var itemkindCdTxt = "";
|
|
|
+ var bIndex = 0;
|
|
|
+ $('#itemkindCdTxt').html('');
|
|
|
+ $('#searchForm input[name=itemkindCdSearchTxt]').val('');
|
|
|
+
|
|
|
+ result.forEach(function(itemkind){
|
|
|
+ bIndex++;
|
|
|
+ arrItemkindCd.push(itemkind.itemkindCd);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
|
|
|
+ if (bIndex == 1) {
|
|
|
+ $('#searchForm input[name=itemkindCdSearchTxt]').val(arrItemkindCd[0]);
|
|
|
+ } else {
|
|
|
+ itemkindCdTxt = bIndex + " 개";
|
|
|
+ $('#itemkindCdTxt').html(itemkindCdTxt);
|
|
|
+ }
|
|
|
+
|
|
|
+ var jsonData = JSON.stringify(arrItemkindCd);
|
|
|
+ $("#searchForm input[name=itemkindCdList]").val(arrItemkindCd.join(','));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 검색
|
|
|
+ $('#btnSearch').on('click', function() {
|
|
|
+ // 입력 값 체크
|
|
|
+ if (!gagajf.validation($('#searchForm')))
|
|
|
+ return false;
|
|
|
+
|
|
|
+ gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 초기화 클릭시
|
|
|
+ $('#btnInit').on('click', function() {
|
|
|
+ $('#searchForm')[0].reset();
|
|
|
+
|
|
|
+ $('#extmallIdTxt').html('');
|
|
|
+ $('#searchForm input[name=extmallIdList]').val('');
|
|
|
+ $('#supplyCompCdTxt').html('');
|
|
|
+ $('#searchForm input[name=supplyCompCdList]').val('');
|
|
|
+ $('#afLinkCdTxt').html('');
|
|
|
+ $('#searchForm input[name=afLinkCdList]').val('');
|
|
|
+ $('#brandCdTxt').html('');
|
|
|
+ $('#searchForm input[name=brandCdList]').val('');
|
|
|
+ $('#itemkindCdTxt').html('');
|
|
|
+ $('#searchForm input[name=itemkindCdList]').val('');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 엑셀다운로드
|
|
|
+ $('#btnExcel').on('click', function() {
|
|
|
+ gagaAgGrid.exportToExcel('일자별주문 목록', gridOptions);
|
|
|
+ });
|
|
|
+
|
|
|
+ $(document).ready(function() {
|
|
|
+ cfnCreateCalendar('#terms', 'startDt', 'endDt', true, '주문', undefined, ['btnToday']);
|
|
|
+ $('.btnYesterday').trigger('click');
|
|
|
+
|
|
|
+ // Create a agGrid
|
|
|
+ gagaAgGrid.createGrid('gridList', gridOptions);
|
|
|
+
|
|
|
+ });
|
|
|
+/*]]>*/
|
|
|
+</script>
|
|
|
+
|
|
|
+</html>
|