|
@@ -38,6 +38,7 @@
|
|
|
<li><a href="#coupontab2">적용대상</a></li>
|
|
<li><a href="#coupontab2">적용대상</a></li>
|
|
|
<li><a href="#coupontab3">입점업체분담율</a></li>
|
|
<li><a href="#coupontab3">입점업체분담율</a></li>
|
|
|
<li class="randomCpnTab" style="display:none;"><a href="#coupontab4">시리얼및난수</a></li>
|
|
<li class="randomCpnTab" style="display:none;"><a href="#coupontab4">시리얼및난수</a></li>
|
|
|
|
|
+ <li class="limitedTimeCpnTab" style="display:none;"><a href="#coupontab5">선착순쿠폰</a></li> <!--style="display:none;"-->
|
|
|
</ul>
|
|
</ul>
|
|
|
</div>
|
|
</div>
|
|
|
<ul class="tabsCont">
|
|
<ul class="tabsCont">
|
|
@@ -65,9 +66,14 @@
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<th>쿠폰유형<em class="required" title="필수"></em></th>
|
|
<th>쿠폰유형<em class="required" title="필수"></em></th>
|
|
|
- <td colspan="5">
|
|
|
|
|
|
|
+ <td>
|
|
|
<input type="hidden" id="cpnType" name="cpnType" required="required" data-valid-name="쿠폰유형">
|
|
<input type="hidden" id="cpnType" name="cpnType" required="required" data-valid-name="쿠폰유형">
|
|
|
<label class="rdoBtn" th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}"> <input type="radio" name="rdoCpnType" th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
|
|
<label class="rdoBtn" th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}"> <input type="radio" name="rdoCpnType" th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
|
|
|
|
|
+
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <th class="limitedTimeCpnArea" style="display: none;">선착순쿠폰</th>
|
|
|
|
|
+ <td class="limitedTimeCpnArea" style="display: none;">
|
|
|
|
|
+ <label class="chkBox limitedTimeCpnBox" id="limitedTimeCpnBox"><input type="checkbox" name="limitedTimeCpnYn" id="limitedTimeCpnYn" />선착순쿠폰</label>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr class="dcCdGb" style="display:none;">
|
|
<tr class="dcCdGb" style="display:none;">
|
|
@@ -357,6 +363,7 @@
|
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' && cpnDetail.dcCdGb == 'G233_00'}">쿠폰발행</button> <!-- 난수유형과 시리얼 유형에서는 쿠폰발행기능 X -->
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' && cpnDetail.dcCdGb == 'G233_00'}">쿠폰발행</button> <!-- 난수유형과 시리얼 유형에서는 쿠폰발행기능 X -->
|
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCouponCreate();" th:if="${mode == 'N'}">등록</button>
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCouponCreate();" th:if="${mode == 'N'}">등록</button>
|
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCouponUpdate();" th:if="${mode == 'U'}">수정</button>
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnCouponUpdate();" th:if="${mode == 'U'}">수정</button>
|
|
|
|
|
+ <button type="button" class="btn btn-info btn-lg" onclick="fnSaveLimitedTimeCpn();" th:if="${mode == 'N'}">선착순쿠폰등록TEST</button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</li>
|
|
</li>
|
|
@@ -473,6 +480,18 @@
|
|
|
</div>
|
|
</div>
|
|
|
</li>
|
|
</li>
|
|
|
<!-- 난수 및 네임쿠폰 설정-->
|
|
<!-- 난수 및 네임쿠폰 설정-->
|
|
|
|
|
+ <!-- 선착순 쿠폰 설정 START -->
|
|
|
|
|
+ <li class="tab" id="coupontab5">
|
|
|
|
|
+ <div class="panelStyle">
|
|
|
|
|
+ <span class="limitedTimeCpnSpan">
|
|
|
|
|
+ <button type="button" class="btn btnRight btn-success btn-lg" id="btnAddLimitedTimeCpnRow">행추가</button>
|
|
|
|
|
+ <button type="button" class="btn btnRight btn-success btn-lg" id="btnDelLimitedTimeCpnRow">행삭제</button>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <br/>
|
|
|
|
|
+ <div id="limitedTimeCpnList" style="width: 100%; height: 500px" class="ag-theme-balham"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ <!-- 선착순 쿠폰 설정 END -->
|
|
|
</ul>
|
|
</ul>
|
|
|
</div>
|
|
</div>
|
|
|
</form>
|
|
</form>
|
|
@@ -496,6 +515,7 @@
|
|
|
var cpnCustGbList = [[${cpnCustGbList}]];
|
|
var cpnCustGbList = [[${cpnCustGbList}]];
|
|
|
var cpnCustGradeList = [[${cpnCustGradeList}]];
|
|
var cpnCustGradeList = [[${cpnCustGradeList}]];
|
|
|
var cpnPayTypeList = [[${cpnPayTypeList}]];
|
|
var cpnPayTypeList = [[${cpnPayTypeList}]];
|
|
|
|
|
+ var limitedTimeCpnList = [[${limitedTimeCpnList}]];
|
|
|
|
|
|
|
|
// 공통코드 리스트
|
|
// 공통코드 리스트
|
|
|
var ibSupplyComList = gagajf.convertToArray([[${ibSupplyCompList}]]);
|
|
var ibSupplyComList = gagajf.convertToArray([[${ibSupplyCompList}]]);
|
|
@@ -602,6 +622,25 @@
|
|
|
{ headerName: "쿠폰사용일" , field: "usedDt" , width:150, cellClass: 'text-center'}
|
|
{ headerName: "쿠폰사용일" , field: "usedDt" , width:150, cellClass: 'text-center'}
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
+ // 선착순 쿠폰 리스트
|
|
|
|
|
+ var limitedTimeCpnDefs = [
|
|
|
|
|
+ {width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
|
|
|
|
|
+ { headerName: "쿠폰시퀀스", field: "cpnId", width: 150, cellClass: 'text-center'}, //, hide: true
|
|
|
|
|
+ { headerName: "선착순쿠폰명" , field: "limitCpnNm" , width: 200, cellClass: 'text-center'
|
|
|
|
|
+ ,cellEditorParams: { maxlength: 20}
|
|
|
|
|
+ } ,
|
|
|
|
|
+ { headerName: "시작일시" , field: "downStdt" , width: 200, cellClass: 'text-center'
|
|
|
|
|
+ ,cellRenderer: function (params) { return gagaAgGrid.toDateTimeFormat(params.value); }
|
|
|
|
|
+ },
|
|
|
|
|
+ { headerName: "종료일시" , field: "downEddt" , width: 200 , cellClass: 'text-center'
|
|
|
|
|
+ ,cellRenderer: function (params) { return gagaAgGrid.toDateTimeFormat(params.value); }
|
|
|
|
|
+ } ,
|
|
|
|
|
+ { headerName: "다운로드가능수량" , field: "downLimitQty" , width: 150 , cellClass: 'text-center'
|
|
|
|
|
+ ,cellEditorParams: { maxlength: 4, validType: 'numeric'}
|
|
|
|
|
+ },
|
|
|
|
|
+ { headerName: "선착순시퀀스", field: "limitCpnId", width: 150, cellClass: 'text-center'} //, hide: true
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
var inComGridOptions = gagaAgGrid.getGridOptions(columnDefs);
|
|
var inComGridOptions = gagaAgGrid.getGridOptions(columnDefs);
|
|
|
var cateGridOptions = gagaAgGrid.getGridOptions(cateSelColumnDefs);
|
|
var cateGridOptions = gagaAgGrid.getGridOptions(cateSelColumnDefs);
|
|
|
var goodsGridOptions = gagaAgGrid.getGridOptions(goodsSelColumnDefs);
|
|
var goodsGridOptions = gagaAgGrid.getGridOptions(goodsSelColumnDefs);
|
|
@@ -609,6 +648,7 @@
|
|
|
var supplyGridOptions = gagaAgGrid.getGridOptions(supplyColumnDefs);
|
|
var supplyGridOptions = gagaAgGrid.getGridOptions(supplyColumnDefs);
|
|
|
var excepGoodsGridOptions = gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
|
|
var excepGoodsGridOptions = gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
|
|
|
var randomCouponGridOptions = gagaAgGrid.getGridOptions(randomCouponDefs);
|
|
var randomCouponGridOptions = gagaAgGrid.getGridOptions(randomCouponDefs);
|
|
|
|
|
+ var limitedTimeCpnGridOptions = gagaAgGrid.getGridOptions(limitedTimeCpnDefs);
|
|
|
|
|
|
|
|
inComGridOptions.defaultColDef.editable = true;
|
|
inComGridOptions.defaultColDef.editable = true;
|
|
|
inComGridOptions.rowSelection = "multiple";
|
|
inComGridOptions.rowSelection = "multiple";
|
|
@@ -618,6 +658,55 @@
|
|
|
cateGridOptions.rowSelection = "multiple";
|
|
cateGridOptions.rowSelection = "multiple";
|
|
|
brandGridOptions.rowSelection = "multiple";
|
|
brandGridOptions.rowSelection = "multiple";
|
|
|
inComGridOptions.stopEditingWhenGridLosesFocus = true;
|
|
inComGridOptions.stopEditingWhenGridLosesFocus = true;
|
|
|
|
|
+ limitedTimeCpnGridOptions.defaultColDef.editable = true;
|
|
|
|
|
+ limitedTimeCpnGridOptions.rowSelection = "multiple";
|
|
|
|
|
+
|
|
|
|
|
+ // 선착순 쿠폰 행추가
|
|
|
|
|
+ $('#btnAddLimitedTimeCpnRow').on('click', function() {
|
|
|
|
|
+ var data = { cpnId: 1 ,limitCpnNm: null, downStdt: null, downEddt: null, downLimitQty: null, limitCpnId: null };
|
|
|
|
|
+ gagaAgGrid.addRowData(limitedTimeCpnGridOptions, data, "limitCpnNm");
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 선착순 쿠폰 행삭제
|
|
|
|
|
+ $('#btnDelLimitedTimeCpnRow').on('click', function() {
|
|
|
|
|
+ var selectedData = limitedTimeCpnGridOptions.api.getSelectedRows();
|
|
|
|
|
+ if (selectedData.length == 0) {
|
|
|
|
|
+ mcxDialog.alert('선택된 행이 없습니다.');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ var removedData = gagaAgGrid.removeRowData(limitedTimeCpnGridOptions, false);
|
|
|
|
|
+ var arrLimitCpnId = [];
|
|
|
|
|
+
|
|
|
|
|
+ $.each(selectedData, function(idx, item) {
|
|
|
|
|
+ arrLimitCpnId.push(item.limitCpnId);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if (removedData.length > 0) {
|
|
|
|
|
+ mcxDialog.confirm('삭제하시겠습니까?', {
|
|
|
|
|
+ cancelBtnText: "취소",
|
|
|
|
|
+ sureBtnText: "확인",
|
|
|
|
|
+ sureBtnClick: function(){
|
|
|
|
|
+ var data = { arrLimitCpnId : arrLimitCpnId
|
|
|
|
|
+ ,cpnId : $('#CouponForm input[name=cpnId]').val()
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var jsonData = JSON.stringify(data);
|
|
|
|
|
+ //gagajf.ajaxJsonSubmit('/marketing/morebetter/sectionVal/delete', jsonData);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 선착순 쿠폰 체크박스 클릭시
|
|
|
|
|
+ $("#CouponForm #limitedTimeCpnBox").bind('click', function (){
|
|
|
|
|
+ var chkBox= document.getElementById('limitedTimeCpnYn').checked;
|
|
|
|
|
+ console.log('limitedTimeCpnBox chkBox>>'+chkBox);
|
|
|
|
|
+ if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 탭을 숨겨
|
|
|
|
|
+ $("#CouponForm .limitedTimeCpnTab").hide();
|
|
|
|
|
+ }else{ //false 체크가 안되어있었는데 체크됐어 -> 탭을 보여줘
|
|
|
|
|
+ $("#CouponForm .limitedTimeCpnTab").show();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
// 종료시간 클릭시
|
|
// 종료시간 클릭시
|
|
|
var fnChangeEdHH = function (obj){
|
|
var fnChangeEdHH = function (obj){
|
|
@@ -686,6 +775,34 @@
|
|
|
$("#CouponForm input[name=dcAval]").val(cdPval);
|
|
$("#CouponForm input[name=dcAval]").val(cdPval);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ // 선착순쿠폰 등록 테스트
|
|
|
|
|
+ function fnSaveLimitedTimeCpn(){
|
|
|
|
|
+ mcxDialog.confirm('선착순 쿠폰 저장하시겠습니까?' , {
|
|
|
|
|
+ cancelBtnText:"취소",
|
|
|
|
|
+ sureBtnText:"확인",
|
|
|
|
|
+ sureBtnClick: function () {
|
|
|
|
|
+ let cpnData = gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
|
|
|
|
|
+ if(cpnData.length < 1){
|
|
|
|
|
+ mcxDialog.alert("선착순 쿠폰을 설정해주세요.");
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log('cpnData 1 up');
|
|
|
|
|
+
|
|
|
|
|
+ var data = {
|
|
|
|
|
+ limitedTimeCpnList : cpnData
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var jsonData = JSON.stringify(data);
|
|
|
|
|
+
|
|
|
|
|
+ gagajf.ajaxJsonSubmit('/marketing/coupon/limitedtime/coupon/save', jsonData, fnSaveLimitedTimeCpnCollback);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var fnSaveLimitedTimeCpnCollback = function (result){
|
|
|
|
|
+ console.log('result::'+result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 쿠폰 등록 버튼 클릭시
|
|
// 쿠폰 등록 버튼 클릭시
|
|
|
function fnCouponCreate(){
|
|
function fnCouponCreate(){
|
|
|
mcxDialog.confirm('저장하시겠습니까?' , {
|
|
mcxDialog.confirm('저장하시겠습니까?' , {
|
|
@@ -1009,7 +1126,13 @@
|
|
|
$('#CouponForm .firstBuyTr').hide();
|
|
$('#CouponForm .firstBuyTr').hide();
|
|
|
$('#CouponForm .buyDateTr').hide();
|
|
$('#CouponForm .buyDateTr').hide();
|
|
|
$('#CouponForm .dcCdCheck1').hide();
|
|
$('#CouponForm .dcCdCheck1').hide();
|
|
|
|
|
+ $('#CouponForm .limitedTimeCpnArea').hide();
|
|
|
}else{
|
|
}else{
|
|
|
|
|
+ if(radioValue == 'G230_11'){ // 상품쿠폰일때 선착순쿠폰 등록 가능
|
|
|
|
|
+ $('#CouponForm .limitedTimeCpnArea').show();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $('#CouponForm .limitedTimeCpnArea').hide();
|
|
|
|
|
+ }
|
|
|
$('#CouponForm .custJoinTr').show();
|
|
$('#CouponForm .custJoinTr').show();
|
|
|
$('#CouponForm .firstBuyTr').show();
|
|
$('#CouponForm .firstBuyTr').show();
|
|
|
$('#CouponForm .dcCdCheck1').show();
|
|
$('#CouponForm .dcCdCheck1').show();
|
|
@@ -1594,6 +1717,7 @@
|
|
|
gagaAgGrid.createGrid('goodsGridList', goodsGridOptions);
|
|
gagaAgGrid.createGrid('goodsGridList', goodsGridOptions);
|
|
|
gagaAgGrid.createGrid('excepGoodsGridList', excepGoodsGridOptions);
|
|
gagaAgGrid.createGrid('excepGoodsGridList', excepGoodsGridOptions);
|
|
|
gagaAgGrid.createGrid('randomCpnList', randomCouponGridOptions);
|
|
gagaAgGrid.createGrid('randomCpnList', randomCouponGridOptions);
|
|
|
|
|
+ gagaAgGrid.createGrid('limitedTimeCpnList', limitedTimeCpnGridOptions);
|
|
|
|
|
|
|
|
// 초기화시 데이터 세팅
|
|
// 초기화시 데이터 세팅
|
|
|
if (mode == "N") {
|
|
if (mode == "N") {
|