|
|
@@ -23,13 +23,16 @@
|
|
|
<!-- 메뉴 설명 -->
|
|
|
<div class="infoBox menu-desc">
|
|
|
</div>
|
|
|
- <form id="searchForm" name="searchForm" action="#" th:action="@{'/goods/list'}">
|
|
|
+ <form id="searchForm" name="searchForm" action="#" th:action="@{'/goods/naver/price/list'}">
|
|
|
<input type="hidden" id="searchGb" name="searchGb" />
|
|
|
<!-- 패널 영역1 -->
|
|
|
<div class="panelStyle" >
|
|
|
<!-- TITLE -->
|
|
|
<div class="panelTitle">
|
|
|
<h3><i class="fa fa-info-circle"></i>아래 검색조건 중 하나를 꼭 입력해 주세요.</h3>
|
|
|
+ <span class="panelControl">
|
|
|
+ <i class="fa fa-chevron-up"></i>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<!-- //TITLE -->
|
|
|
<div class="panelContent">
|
|
|
@@ -41,8 +44,8 @@
|
|
|
<col/>
|
|
|
</colgroup>
|
|
|
<tr>
|
|
|
- <th rowspan="3">브랜드</th>
|
|
|
- <td rowspan="3">
|
|
|
+ <th>브랜드</th>
|
|
|
+ <td>
|
|
|
<select name="supplyCompCd" id="supplyCompCd">
|
|
|
<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
|
|
|
<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
@@ -51,21 +54,40 @@
|
|
|
<option value="">[전체]</option>
|
|
|
</select>
|
|
|
</td>
|
|
|
- <th rowspan="3">키워드<em class="required" title="필수"></em></th>
|
|
|
+ <th rowspan="3">키워드</th>
|
|
|
<td rowspan="3">
|
|
|
<select name="search" id="search">
|
|
|
<option value="searchGoodsCd">상품코드</option>
|
|
|
- <option value="searchGoodsNm">상품명</option>
|
|
|
- <option value="searchGoodsNum">품번</option>
|
|
|
</select>
|
|
|
<textarea class="textareaR3 w150" name="condition" id="condition"></textarea>
|
|
|
</td>
|
|
|
</tr>
|
|
|
+ <tr>
|
|
|
+ <th rowspan="2">년도/시즌</th>
|
|
|
+ <td rowspan="2">
|
|
|
+ <div class="multiCheckBox" style="width:140px;">
|
|
|
+ <button type="button" class="sltBtn">[전체]</button>
|
|
|
+ <ul style="overflow:auto; height:140px">
|
|
|
+ <li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiStyleYear" onclick="uifnAllCheck('multiStyleYear')">전체선택</label></li>
|
|
|
+ <li th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}"><label class="chkBox"><input type="checkbox" name="multiStyleYear" th:id="${'styleYear' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="multiCheckBox" style="width:170px;">
|
|
|
+ <button type="button" class="sltBtn">[전체]</button>
|
|
|
+ <ul style="overflow:auto; height:170px">
|
|
|
+ <li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiSeasonCd" onclick="uifnAllCheck('multiSeasonCd')">전체선택</label></li>
|
|
|
+ <li th:if="${seasonList}" th:each="oneData, status : ${seasonList}"><label class="chkBox"><input type="checkbox" name="multiSeasonCd" th:id="${'seasonCd' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
</table>
|
|
|
<ul class="panelBar">
|
|
|
<li class="center">
|
|
|
<button type="button" class="btn btn-gray btn-lg" id="btnInit" >초기화</button>
|
|
|
<button type="button" class="btn btn-info btn-lg" id="btnSearch" >조회</button>
|
|
|
+
|
|
|
+ <button type="button" class="btn btn-primary btn-lg" id="btnNaverPriceSearch" >네이버 최저가 조회</button>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
@@ -79,25 +101,10 @@
|
|
|
<li>
|
|
|
<button type="button" class="btn btn-default btn-lg" onclick="fnGoodsExcelDownLoad('');">엑셀다운로드</button>
|
|
|
</li>
|
|
|
- <li class="aR">
|
|
|
- 검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>
|
|
|
- 쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>
|
|
|
- <select id="pageSize" name="pageSize">
|
|
|
- <option value="50" selected="selected">50개씩 보기</option>
|
|
|
- <option value="100">100개씩 보기</option>
|
|
|
- <option value="500">500개씩 보기</option>
|
|
|
- <option value="1000">1000개씩 보기</option>
|
|
|
- </select>
|
|
|
- <input type="hidden" name="pageNo" id="pageNo" value ="1"/>
|
|
|
- </li>
|
|
|
</ul>
|
|
|
<!-- //상단버튼 영역 -->
|
|
|
- <div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham lh60"></div>
|
|
|
- <ul class="panelBar">
|
|
|
- <li class="center">
|
|
|
- <div class="tablePaging" id="goodsListPagination"></div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham"></div>
|
|
|
+
|
|
|
<label class="off">
|
|
|
<a href="javascript:void(0);" id="GoodsExcelList" style="display: none;">상품목록 엑셀다운로드</a>
|
|
|
</label>
|
|
|
@@ -107,13 +114,12 @@
|
|
|
<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=2019072202"></script>
|
|
|
<script th:inline="javascript">
|
|
|
/*<![CDATA[*/
|
|
|
-
|
|
|
+
|
|
|
+ var sessRoleCd = [[${sessionInfo.roleCd}]];
|
|
|
var columnDefs = [];
|
|
|
columnDefs = [
|
|
|
{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
|
|
|
- {headerName: 'No', width: 50, cellClass: 'text-center',
|
|
|
- valueGetter: function(params) { return cfnGridNumner('searchForm',params.node.rowIndex, 'A');}
|
|
|
- },
|
|
|
+ {headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
|
|
|
{headerName: "브랜드", field: "brandCd", width: 80, cellClass: 'text-center'},
|
|
|
{headerName: "브랜드명", field: "brandEnm", width: 130, cellClass: 'text-center'},
|
|
|
{headerName: "상품코드", field: "goodsCd", width: 140, cellClass: 'text-center'},
|
|
|
@@ -132,23 +138,50 @@
|
|
|
cellEditor: 'textCellEditor',
|
|
|
cellEditorParams: { maxlength: 14, validType: 'numeric'}
|
|
|
},
|
|
|
- {headerName: "자사즉시할인가", field: "currPrice" , width: 120, cellClass: 'text-right'
|
|
|
+ {headerName: "자사즉시할인가", field: "benefitPrice" , width: 120, cellClass: 'text-right'
|
|
|
,valueFormatter: function(params) {return params.value.addComma();},
|
|
|
cellEditor: 'textCellEditor',
|
|
|
cellEditorParams: { maxlength: 14, validType: 'integer'}
|
|
|
},
|
|
|
- {headerName: "네이버최저가", field: "currPrice" , width: 120, cellClass: 'text-right'
|
|
|
+ {headerName: "네이버최저가", field: "lowestPrice" , width: 120, cellClass: 'text-right'
|
|
|
,valueFormatter: function(params) {return params.value.addComma();},
|
|
|
cellEditor: 'textCellEditor',
|
|
|
cellEditorParams: { maxlength: 14, validType: 'numeric'}
|
|
|
},
|
|
|
- {headerName: "차액", field: "currPrice" , width: 100, cellClass: 'text-right'
|
|
|
- ,valueFormatter: function(params) {return params.value.addComma();},
|
|
|
- cellEditor: 'textCellEditor',
|
|
|
- cellEditorParams: { maxlength: 14, validType: 'numeric'}
|
|
|
+ {headerName: "차액", field: "currPrice" , width: 100, cellClass: 'text-right',
|
|
|
+ valueFormatter: function(params) {
|
|
|
+ var priceVal = params.data.benefitPrice - params.data.lowestPrice;
|
|
|
+ return priceVal.addComma();
|
|
|
+ },
|
|
|
+ cellStyle : function(params){
|
|
|
+ var color = "";
|
|
|
+ var priceVal = params.data.benefitPrice - params.data.lowestPrice;
|
|
|
+ if (priceVal > 0){
|
|
|
+ //color = '#ff96689c';
|
|
|
+ color = "red";
|
|
|
+ //background-color
|
|
|
+ }
|
|
|
+ return { 'color': color};
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "최저가몰명", field: "mallNm", width: 140, cellClass: 'text-center'},
|
|
|
+ {headerName: "최저가몰링크", field: "mallLink", width: 200, cellClass: 'text-center'
|
|
|
+ ,cellRenderer: function(params) {
|
|
|
+ return '<a href="javascript:void(0);">' + params.value + '</a>';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "등록자", field: "regNm" , width: 100, cellClass: 'text-center'},
|
|
|
+ {headerName: "수정일시", field: "updDt", width: 150, cellClass: 'text-center',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
|
|
|
+ }
|
|
|
},
|
|
|
- {headerName: "최저가몰명", field: "goodsCd", width: 140, cellClass: 'text-center'},
|
|
|
- {headerName: "최저가몰링크", field: "goodsCd", width: 200, cellClass: 'text-center'}
|
|
|
+ {headerName: "수정자", field: "updNm" , width: 100, cellClass: 'text-center'}
|
|
|
];
|
|
|
|
|
|
// Get GridOptions
|
|
|
@@ -157,7 +190,6 @@
|
|
|
// 중복 선택 가능
|
|
|
gridOptions.rowSelection = 'multiple';
|
|
|
gridOptions.suppressRowClickSelection = true;
|
|
|
- gridOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
|
|
|
|
|
|
gridOptions.stopEditingWhenGridLosesFocus = true;
|
|
|
|
|
|
@@ -167,152 +199,93 @@
|
|
|
if (event.colDef.field == "goodsCd"){
|
|
|
cfnOpenGoodsDetailPopup('U',goodsCd);
|
|
|
//cfnOpenFrontGoodsPopup(goodsCd, event.data.siteCd);
|
|
|
+ }else if (event.colDef.field == "mallLink"){
|
|
|
+ window.open(event.data.mallLink, "_blank, scrollbars=yes");
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var fnChangeSelect = function(val, selLvl){
|
|
|
- $("#cateCd").val('');
|
|
|
- $('#tcateCd').val('');
|
|
|
- $('#mcateCd').val('');
|
|
|
- $('#scateCd').val('');
|
|
|
- $('#dcateCd').val('');
|
|
|
- if(val==''){
|
|
|
- if(selLvl>1){
|
|
|
- selLvl = selLvl - 1;
|
|
|
- if(selLvl>2){
|
|
|
- $("#cateCd").val($("#selCate"+(selLvl-1)).val());
|
|
|
- }
|
|
|
- }else{
|
|
|
- selLvl = '';
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(selLvl>2){
|
|
|
- $("#cateCd").val(val);
|
|
|
- }
|
|
|
- }
|
|
|
- $("#searchForm input[name=selLvl]").val(selLvl);
|
|
|
- $("#searchForm input[name=searchGb]").val("BASIC");
|
|
|
- gagajf.ajaxFormSubmit('/display/category/list', "#searchForm", fnChangeCategory);
|
|
|
- }
|
|
|
+ // 초기화 클릭시
|
|
|
+ $('#btnInit').on('click', function() {
|
|
|
|
|
|
- var fnChangeCategory = function(data){
|
|
|
- var selLvl = $("#searchForm input[name=selLvl]").val();
|
|
|
- var html = '<option value="">[선택]</option>';
|
|
|
- for(var i=1; i<6; i++){
|
|
|
- if(i>selLvl){
|
|
|
- $("#selCate"+i).html(html);
|
|
|
- }
|
|
|
- }
|
|
|
- for(var i=0; i<data.length; i++){
|
|
|
- var cd = '';
|
|
|
- var nm = '';
|
|
|
- if(data[i].useYn=='Y'){
|
|
|
- if(selLvl=='1'){
|
|
|
- cd = data[i].cateGb;
|
|
|
- nm = gagaAgGrid.lookupValue(cateGbList, cd);
|
|
|
- }else{
|
|
|
- cd = data[i].cateCd;
|
|
|
- nm = data[i].cateNm;
|
|
|
- $("#cateType").val(data[i].cateType);
|
|
|
- }
|
|
|
- html += '<option value="'+cd+'">['+cd+'] '+nm+'</option>';
|
|
|
- }
|
|
|
- }
|
|
|
- $("#selCate"+selLvl).html(html);
|
|
|
- }
|
|
|
+ $('#searchForm')[0].reset();
|
|
|
+ //$("#searchForm input[type=radio]").removeClass("checked");
|
|
|
+ $("#searchForm input[type=checkbox]").removeClass("checked");
|
|
|
+ //$("#searchForm input[type=radio]").parent("label").removeClass("checked");
|
|
|
+ $("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
|
|
|
+ $("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
|
|
|
|
|
|
- // 조회
|
|
|
- $('#btnSearch').on('click', function() {
|
|
|
- if($("#selCate2").val()=='' && $("#condition").val()=='' && $("#brandGrpNm").val()=='' && $("#itemkindCdSearch").val()==''
|
|
|
- && $("#styleYear").val()=='' && $("#formalGb").val()=='' && $("#mdId").val()==''){
|
|
|
- mcxDialog.alert('검색조건을 입력해 주세요.');
|
|
|
- return;
|
|
|
- }
|
|
|
- $("#searchForm input[name=searchGb]").val("BASIC");
|
|
|
- fnSearch();
|
|
|
});
|
|
|
|
|
|
- $("#pageSize").on("change", function(){
|
|
|
- var rowCnt = gridOptions.api.getDisplayedRowCount();
|
|
|
- if(rowCnt > 0){
|
|
|
- fnSearch();
|
|
|
- }
|
|
|
+ // 조회클릭시
|
|
|
+ $('#btnSearch').on('click', function() {
|
|
|
+ fnGoodsListSearch('BASIC');
|
|
|
});
|
|
|
|
|
|
- var fnSearch = function(){
|
|
|
- gagaPaging.init('searchForm', fnSearchCallBack, 'goodsListPagination', $('#searchForm').find('#pageSize').val());
|
|
|
- gagaPaging.load(1);
|
|
|
- };
|
|
|
+ // 조회
|
|
|
+ var fnGoodsListSearch = function(gbn) {
|
|
|
+
|
|
|
+ if (typeof(gbn) != 'undefined' && gbn == 'EXCEL'){
|
|
|
+ $("#searchForm input[name=searchGb]").val("EXCEL");
|
|
|
+ }else{
|
|
|
+ $("#searchForm input[name=searchGb]").val("BASIC");
|
|
|
+ }
|
|
|
|
|
|
- var fnSearchCallBack = function(result){
|
|
|
+ if(!fnConditionCheck()) return;
|
|
|
+
|
|
|
+ var formId = "#searchForm";
|
|
|
+ gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
|
|
|
|
|
|
- $('#searchForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
|
|
|
- $('#searchForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
|
|
|
- $('#searchForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
|
|
|
- $('#searchForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
|
|
|
- gridOptions.api.setRowData(result.goodsList);
|
|
|
- gagaPaging.createPagination(result.pageing.pageable);
|
|
|
}
|
|
|
|
|
|
- //엑셀 상품 조회
|
|
|
- $('#btnGoodsExcelUpLoad').on('click', function() {
|
|
|
- cfnExcelUploadPopup('goodsExcelUpload', 'goodsExcelUpload');
|
|
|
- });
|
|
|
+ //검색 조건 확인
|
|
|
+ var fnConditionCheck = function(){
|
|
|
+ var formId = '#searchForm';
|
|
|
+ var form = document.searchForm;
|
|
|
|
|
|
- var goodsExcelUpload = function(result){
|
|
|
- var data = {procJob : result.procJob
|
|
|
- ,excelFileNm : result.excelFileNm
|
|
|
- };
|
|
|
- var jsonData = JSON.stringify(data);
|
|
|
- gagajf.ajaxJsonSubmit('/goods/search/excelupload/save', jsonData, fnGoodsExcelUploadCallBack);
|
|
|
- }
|
|
|
+ if($("#searchForm input[name=searchGb]").val() == "EXCEL") return true;
|
|
|
|
|
|
- var fnGoodsExcelUploadCallBack = function(result){
|
|
|
- $("#searchForm input[name=searchGb]").val("EXCEL");
|
|
|
- fnSearch();
|
|
|
- }
|
|
|
+ var searchFlag = false;
|
|
|
+ var cnt = 0;
|
|
|
|
|
|
- $("#btnInit").on("click", function(){
|
|
|
- $("#searchForm")[0].reset();
|
|
|
- });
|
|
|
+ for (i = 0; i < form.elements.length; i++ ) {
|
|
|
+ var el = form.elements[i];
|
|
|
|
|
|
- $("#btnChangeItemKindCd").on("click", function(){
|
|
|
- if($("#itemKindCd").val()==''){
|
|
|
- mcxDialog.alert('품목코드를 입력해 주세요.');
|
|
|
- return;
|
|
|
- }
|
|
|
- var selectedData = gagaAgGrid.selectedRowData(gridOptions);
|
|
|
- selectedData.forEach(function(data){
|
|
|
- data.itemkindCdNew = $("#itemKindCd").val();
|
|
|
- });
|
|
|
- gridOptions.api.refreshCells();
|
|
|
- });
|
|
|
-
|
|
|
- $("#btnSave").on("click", function(){
|
|
|
- var rowData = gagaAgGrid.getAllRowData(gridOptions);
|
|
|
- var dataArr = [];
|
|
|
- rowData.forEach(function(row){
|
|
|
- if(typeof row.itemkindCdNew!='undefined' && row.itemkindCdNew!=''){
|
|
|
- var data = { goodsCd : row.goodsCd
|
|
|
- , itemkindCd : row.itemkindCdNew
|
|
|
+ if ($(el).prop("type") == "text" || ($(el).prop("type") == "select-one" && el.name != "search" && el.name != "pageSize")) {
|
|
|
+ if (!(el.value == null || el.value == "")) {
|
|
|
+ cnt++;
|
|
|
}
|
|
|
- dataArr.push(data);
|
|
|
}
|
|
|
- });
|
|
|
- if(dataArr.length==0){
|
|
|
- mcxDialog.alert('변경된 데이터가 없습니다.');
|
|
|
+ }
|
|
|
+
|
|
|
+ var mulYearSize = $('input:checkbox[name="multiStyleYear"]:checked').length;
|
|
|
+ var mulSeasonSize = $('input:checkbox[name="multiSeasonCd"]:checked').length;
|
|
|
+
|
|
|
+ if (mulYearSize > 0 || mulSeasonSize > 0){
|
|
|
+ cnt++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(cnt > 0) searchFlag = true;
|
|
|
+
|
|
|
+ if(searchFlag == false){
|
|
|
+ mcxDialog.alert("검색조건을 입력하세요.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //엑셀다운로드
|
|
|
+ var fnGoodsExcelDownLoad = function(flag){
|
|
|
+ var formId = '#searchForm';
|
|
|
+ if (gridOptions.api.getDisplayedRowCount() <= 0){
|
|
|
+ mcxDialog.alert("조회된 데이터가 없습니다.<br/>다시 조회 후 다운로드 받으세요.");
|
|
|
return;
|
|
|
}
|
|
|
- mcxDialog.confirm('저장하시겠습니까?',{
|
|
|
- cancelBtnText: "취소",
|
|
|
- sureBtnText: "확인",
|
|
|
- sureBtnClick: function(){
|
|
|
- var jsonData = JSON.stringify(dataArr);
|
|
|
- console.log(jsonData);
|
|
|
- gagajf.ajaxJsonSubmit('/goods/itemKind/change/save', jsonData, fnSearch);
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
+
|
|
|
+ var params = $(formId).serialize();
|
|
|
+ $('#GoodsExcelList').attr({ href : '/goods/info/excel/list?' + params }).get(0).click();
|
|
|
+ }
|
|
|
|
|
|
// 업체변경시
|
|
|
$('#searchForm select[name=supplyCompCd]').on('change', function() {
|
|
|
@@ -324,6 +297,19 @@
|
|
|
|
|
|
cfnCreateCombo(actionUrl, $('#searchForm select[name=brandCd]'), "[전체]", "");
|
|
|
});
|
|
|
+
|
|
|
+ // 네이버 최저가 조회 클릭시
|
|
|
+ $('#btnNaverPriceSearch').on('click', function() {
|
|
|
+ if (gagajf.isNull($("#searchForm textarea[name=condition]").val())) {
|
|
|
+ mcxDialog.alert("상품코드 입력 후 네이버최저가 조회를 해주세요.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var formId = "#searchForm";
|
|
|
+ gagaAgGrid.fetch('/goods/naver/lowest/price/save', gridOptions, formId);
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|