as-is
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
to-be
let message = JSON.parse(request.responseText).resBody.result;
alert(message);
2127 lines
119 KiB
Plaintext
2127 lines
119 KiB
Plaintext
<%@ page import="java.util.Date" %>
|
||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||
|
||
<%--
|
||
Class Name : CouponPkRegistC.jsp
|
||
Description : 쿠폰(팩) 발송 등록
|
||
Modification Information
|
||
|
||
수정일 수정자 수정내용
|
||
------- -------- ---------------------------
|
||
since : 2024.01.04 추지훈 최초 생성
|
||
--%>
|
||
|
||
<!DOCTYPE html>
|
||
<html lang="ko">
|
||
|
||
<head>
|
||
|
||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||
|
||
<script>
|
||
$(document).ready(function() {
|
||
|
||
|
||
// 발송구분 라디오버튼
|
||
updateSndngDvRadio();
|
||
// 쿠폰발송유형 라디오버튼
|
||
updateCouponSndngTyRadio();
|
||
// 쿠폰선택 리스트 전체체크박스
|
||
checkBoxAllUpdate();
|
||
// SMS 셀렉트박스
|
||
disableSmsSelectBox();
|
||
// 카카오 셀렉트박스
|
||
disableKakaoSelectBox();
|
||
// 이메일 셀렉트박스
|
||
disableEmailSelectBox();
|
||
// 유효기간
|
||
updateValidpdKndInput();
|
||
// 예약 발송 제어
|
||
disableReservSndngDt();
|
||
// 발송대상구분
|
||
updateMbrGroupTrRadio();
|
||
|
||
|
||
// 유효기간
|
||
$('input[name="sndngDtDvCd"]').change(function() {
|
||
disableReservSndngDt();
|
||
});
|
||
|
||
|
||
function disableReservSndngDt() {
|
||
var radioVal = $('input[name="sndngDtDvCd"]:checked').val();
|
||
|
||
if (radioVal === "02") {
|
||
$('.reserSndngDiv').find('input').prop('disabled', false);
|
||
} else {
|
||
$('.reserSndngDiv').find('input').prop('disabled', true);
|
||
}
|
||
|
||
if (radioVal === "01" || radioVal === "02") {
|
||
$('.targetSettingSec').show();
|
||
$('.targetSettingSec').prop('disabled', false); // 안내 문자
|
||
$('.messageSec').show();
|
||
$('.messageSec').prop('disabled', false); // 안내 문자
|
||
} else {
|
||
$('.targetSettingSec').hide();
|
||
$('.targetSettingSec').prop('disabled', true); // 안내 문자
|
||
$('.messageSec').hide();
|
||
$('.messageSec').prop('disabled', true); // 안내 문자
|
||
}
|
||
|
||
}
|
||
|
||
|
||
// 발송대상구분
|
||
$('#sndngTrgetDvDiv').on('click', function() {
|
||
updateMbrGroupTrRadio();
|
||
});
|
||
|
||
|
||
// 발송구분
|
||
$('#sndngDvRadioDiv').change(function() {
|
||
updateSndngDvRadio();
|
||
});
|
||
|
||
|
||
// 발송구분 라디오버튼 제어 함수
|
||
function updateSndngDvRadio() {
|
||
var radioVal = $('input[name="sndngDv"]:checked').val();
|
||
|
||
if (radioVal === "02") {
|
||
$('#cupnpkChoiseTr').show();
|
||
$('#cupnpkChoiseTr #cupnpkInnb').prop('disabled', false);
|
||
$('#cupnpkChoiseTr #cupnpkInnb').niceSelect('update');
|
||
$('#couponChoiseTr').find('button, input').prop('disabled', true);
|
||
|
||
|
||
$('#couponChoiseTr').hide();
|
||
$('#couponChoiseTr input[name="packedCouponInnbs"]').prop('disabled', true);
|
||
} else if ( radioVal === "01") {
|
||
$('#couponChoiseTr').show();
|
||
$('#couponChoiseTr').find('button, input').prop('disabled', false);
|
||
$('#cupnpkChoiseTr').hide();
|
||
$('#cupnpkChoiseTr #cupnpkInnb').prop('disabled', true);
|
||
$('#cupnpkChoiseTr #cupnpkInnb').niceSelect('update');
|
||
}
|
||
};
|
||
|
||
|
||
// 발송유형
|
||
$('#couponSndngTyRadioDiv').change(function() {
|
||
updateCouponSndngTyRadio();
|
||
});
|
||
|
||
|
||
|
||
|
||
|
||
// 쿠폰선택 전체 체크박스 제어
|
||
function checkBoxAllUpdate() {
|
||
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').click(function() {
|
||
var checkBoxAll = true;
|
||
|
||
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').each(function() {
|
||
if (!$(this).prop('checked')) {
|
||
checkBoxAll = false;
|
||
}
|
||
});
|
||
|
||
$('#couponChoiseTr .check-all input[type="checkbox"]').prop('checked', checkBoxAll);
|
||
});
|
||
}
|
||
|
||
// SMS
|
||
$('input[name="smsSndngFormRadio"]').on('change', function() {
|
||
disableSmsSelectBox();
|
||
});
|
||
|
||
// SMS 셀렉트박스 제어
|
||
function disableSmsSelectBox() {
|
||
var smsUseAtValue = $('input[name="smsSndngFormRadio"]:checked').val();
|
||
|
||
if (smsUseAtValue === 'Y') {
|
||
|
||
$('#smsSndngFormInnb').prop('disabled', false);
|
||
$('#smsSndngFormInnb').niceSelect('update');
|
||
} else if (smsUseAtValue === 'N') {
|
||
|
||
$('#smsSndngFormInnb').prop('disabled', true);
|
||
$('#smsSndngFormInnb').niceSelect('update');
|
||
}
|
||
};
|
||
|
||
// 카카오
|
||
$('input[name="ntcntalkSndngFormRadio"]').on('change', function() {
|
||
disableKakaoSelectBox();
|
||
|
||
});
|
||
|
||
// 카카오 셀렉트박스 제어
|
||
function disableKakaoSelectBox() {
|
||
var kakaoUseAtValue = $('input[name="ntcntalkSndngFormRadio"]:checked').val();
|
||
|
||
if (kakaoUseAtValue === 'Y') {
|
||
|
||
$('#ntcntalkSndngFormInnb').prop('disabled', false);
|
||
$('#ntcntalkSndngFormInnb').niceSelect('update');
|
||
} else if (kakaoUseAtValue === 'N') {
|
||
|
||
$('#ntcntalkSndngFormInnb').prop('disabled', true);
|
||
$('#ntcntalkSndngFormInnb').niceSelect('update');
|
||
}
|
||
};
|
||
|
||
// 이메일
|
||
$('input[name="emailSndngFormRadio"]').on('change', function() {
|
||
disableEmailSelectBox();
|
||
});
|
||
|
||
// 이메일 셀렉트박스 제어
|
||
function disableEmailSelectBox() {
|
||
var emailUseAtValue = $('input[name="emailSndngFormRadio"]:checked').val();
|
||
|
||
if (emailUseAtValue === 'Y') {
|
||
|
||
$('#emailSndngFormInnb').prop('disabled', false);
|
||
$('#emailSndngFormInnb').niceSelect('update');
|
||
} else if (emailUseAtValue === 'N') {
|
||
|
||
$('#emailSndngFormInnb').prop('disabled', true);
|
||
$('#emailSndngFormInnb').niceSelect('update');
|
||
}
|
||
};
|
||
|
||
|
||
// 유효기간
|
||
$('#radioDwldPdLmttAt').change(function() {
|
||
updateValidpdKndInput();
|
||
});
|
||
|
||
// 유효기간 라디오버튼 제어 함수
|
||
function updateValidpdKndInput() {
|
||
var radioValue = $('input[name="dwldPdLmttAt"]:checked').val();
|
||
|
||
if (radioValue === "Y") {
|
||
$('#dwldBgnDt').prop("disabled", false);
|
||
$('#dwldEndDt').prop("disabled", false);
|
||
$('#dwldBgnDtTime').prop("disabled", false);
|
||
$('#dwldEndDtTime').prop("disabled", false);
|
||
} else if (radioValue === "N") {
|
||
$('#dwldBgnDt').prop("disabled", true);
|
||
$('#dwldEndDt').prop("disabled", true);
|
||
$('#dwldBgnDtTime').prop("disabled", true);
|
||
$('#dwldEndDtTime').prop("disabled", true);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
let ty;
|
||
// 쿠폰 선택창에 유형값 반환
|
||
$('input[name="couponSndngTy"]').on('click', function() {
|
||
ty = getSndngTyRadio();
|
||
|
||
});
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
let couponSndngTy = '<c:out value="${ sndngVO.couponSndngTy }"/>';
|
||
|
||
|
||
|
||
$('.hidden').hide();
|
||
$('#marketingTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
|
||
$('select').niceSelect();
|
||
|
||
/*예제*/
|
||
$("#resultBtn").on("click",function(){
|
||
const mbrInfo = $(".mbrInfo").val();
|
||
if (mbrInfo) {
|
||
// JSON 문자열을 객체로 변환
|
||
const resultArr = JSON.parse(mbrInfo);
|
||
// 객체를 문자열로 변환하여 resultCn에 출력
|
||
$("#resultCn").val(JSON.stringify(resultArr, null, 2));
|
||
} else {
|
||
$("#resultCn").val("No data found");
|
||
}
|
||
});
|
||
|
||
/*예제*/
|
||
$("#resultBtnMarketing").on("click",function(){
|
||
const mbrInfo = $(".marketingTrgetInfo").val();
|
||
if (mbrInfo) {
|
||
// JSON 문자열을 객체로 변환
|
||
const resultArr = JSON.parse(mbrInfo);
|
||
// 객체를 문자열로 변환하여 resultCn에 출력
|
||
$("#jsonMarketingTrgetList").val(JSON.stringify(resultArr, null, 2));
|
||
} else {
|
||
$("#jsonMarketingTrgetList").val("No data found");
|
||
}
|
||
});
|
||
|
||
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
|
||
$('input[name="sndngTrgetTyCd"]').on('click', function() {
|
||
let selectValue = $(this).val(); // 현재 이벤트가 발생한 요소의 값을 가져옴
|
||
|
||
if (selectValue === '01') {
|
||
$('#memberTr').prop('disabled', false);
|
||
$('#memberTr').show();
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
$('#marketingTr').hide();
|
||
$('.messageSec').prop('disabled', false);
|
||
$('.messageSec').show();
|
||
$('.textUpload').hide();
|
||
$('.textUpload').prop('disabled', true);
|
||
} else if (selectValue === '03') {
|
||
$('.companyTr').prop('disabled', false);
|
||
$('.companyTr').show();
|
||
$('#memberTr').prop('disabled', true);
|
||
$('#memberTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
$('#marketingTr').hide();
|
||
$('.messageSec').prop('disabled', true);
|
||
$('.messageSec').hide();
|
||
$('.textUpload').hide();
|
||
$('.textUpload').prop('disabled', true);
|
||
} else if (selectValue === '02') {
|
||
$('#memberTr').prop('disabled', true);
|
||
$('#memberTr').hide();
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
$('#marketingTr').prop('disabled', false);
|
||
$('#marketingTr').show();
|
||
$('.messageSec').prop('disabled', false);
|
||
$('.messageSec').show();
|
||
$('.textUpload').hide();
|
||
$('.textUpload').prop('disabled', true);
|
||
} else if (selectValue === '04') {
|
||
$('#memberTr').prop('disabled', true);
|
||
$('#memberTr').hide();
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
$('#marketingTr').hide();
|
||
$('.messageSec').prop('disabled', false);
|
||
$('.messageSec').show();
|
||
$('.textUpload').show();
|
||
$('.textUpload').prop('disabled', false);
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
$('#targetDvOffle').on('change', function() {
|
||
let selectValue = $(this).val(); // 현재 이벤트가 발생한 요소의 값을 가져옴
|
||
|
||
if (selectValue === '01') {
|
||
$('#memberTr').prop('disabled', false);
|
||
$('#memberTr').show();
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
$('#marketingTr').hide();
|
||
$('.messageSec').prop('disabled', false);
|
||
$('.messageSec').show();
|
||
} else if (selectValue === '03') {
|
||
$('.companyTr').prop('disabled', false);
|
||
$('.companyTr').show();
|
||
$('#memberTr').prop('disabled', true);
|
||
$('#memberTr').hide();
|
||
$('#marketingTr').prop('disabled', true);
|
||
$('#marketingTr').hide();
|
||
$('.messageSec').prop('disabled', true);
|
||
$('.messageSec').hide();
|
||
} else if (selectValue === '02') {
|
||
$('#memberTr').prop('disabled', true);
|
||
$('#memberTr').hide();
|
||
$('.companyTr').prop('disabled', true);
|
||
$('.companyTr').hide();
|
||
$('#marketingTr').prop('disabled', false);
|
||
$('#marketingTr').show();
|
||
$('.messageSec').prop('disabled', false);
|
||
$('.messageSec').show();
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
|
||
/**
|
||
* 템플릿 사용 여부
|
||
*/
|
||
$('#messageUseAt').on('change', function() {
|
||
let useAt = $('#messageUseAt').val();
|
||
|
||
if (useAt === 'Y') {
|
||
|
||
$('.messageUseAtTr').find('input, select, textarea, button, a').prop('disabled', false);
|
||
} else {
|
||
|
||
$('.messageUseAtTr').find('input, select, textarea, button, a').prop('disabled', true);
|
||
}
|
||
});
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**************************************************************
|
||
* 바이트 수 체크
|
||
****************************************************************/
|
||
$("#sndngSj, #sndngCn").on("keyup change", function() {
|
||
const sndngSjStr = $("#sndngSj").val();
|
||
const sndngCnStr = $("#sndngCn").val();
|
||
const str = sndngSjStr + sndngCnStr;
|
||
let str_len = sndngSjStr.length + sndngCnStr.length;
|
||
|
||
let rbyte = 0;
|
||
let rlen = 0;
|
||
let one_char = "";
|
||
//byte수 세기
|
||
for (let i = 0; i < str_len; i++) {
|
||
one_char = str.charAt(i);
|
||
if (escape(one_char).length > 4) {
|
||
//한글3Byte
|
||
rbyte += 3;
|
||
} else {
|
||
//영문 등 나머지 1Byte
|
||
rbyte++;
|
||
}
|
||
}
|
||
|
||
|
||
//바이트 표시
|
||
$('.byteCnt').text(rbyte);
|
||
|
||
if(rbyte > 90) {
|
||
$('.sndng-type').text("(LMS)")
|
||
} else {
|
||
$('.sndng-type').text("(SMS)")
|
||
}
|
||
|
||
})
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//고객센터 버튼
|
||
$('#auto-callback').click(function() {
|
||
|
||
|
||
|
||
$.ajax({
|
||
type: "post",
|
||
url : "<c:url value="/mngr/ntcn/mssage/selectShopNb"/>",
|
||
success:function(data) {
|
||
const str = JSON.parse(data.resBody.result);
|
||
const smsAtmcSndngDsptchNb = str.shopNbMap.smsAtmcSndngDsptchNb;
|
||
//제목
|
||
if (fn_is_empty($("#sndngSj").val())) {
|
||
const addTitle = '(광고)' + str.shopNbMap.sopmalNm;
|
||
$("#sndngSj").val(addTitle);
|
||
}
|
||
//내용
|
||
let sndngCn = $("#sndngCn").val();
|
||
const strCall = '■ 고객센터 : ' + smsAtmcSndngDsptchNb;
|
||
const iVal = sndngCn.indexOf(strCall);
|
||
|
||
if(iVal == -1) {
|
||
sndngCn = sndngCn + '\r\n\r\n' + strCall;
|
||
}
|
||
|
||
$("#sndngCn").val(sndngCn).trigger("change");
|
||
}
|
||
})
|
||
|
||
|
||
});
|
||
|
||
//무료 수신 거부
|
||
$('#auto-freedeny').click(function() {
|
||
|
||
|
||
$.ajax({
|
||
type: "post",
|
||
url : "<c:url value="/mngr/ntcn/mssage/selectShopNb"/>",
|
||
success:function(data) {
|
||
const str = JSON.parse(data.resBody.result);
|
||
const rejectTelnb = str.shopNbMap.rejectTelnb;
|
||
|
||
let sndngCn = $("#sndngCn").val();
|
||
|
||
const strFreedeny = '무료수신거부 : ' + rejectTelnb;
|
||
const iVal = sndngCn.indexOf(strFreedeny);
|
||
if(iVal == -1) {
|
||
sndngCn = sndngCn + '\r\n\r\n\r\n\r\n' + strFreedeny;
|
||
}
|
||
|
||
$("#sndngCn").val(sndngCn).trigger("change");
|
||
}
|
||
})
|
||
|
||
});
|
||
|
||
//특수문자 버튼
|
||
$("#special_cont").click(function(){
|
||
if($("#special_view").css("display")=='none') $("#special_view").show();
|
||
else $("#special_view").hide();
|
||
});
|
||
|
||
//특수문자 css
|
||
$("#special_view").find("td").css({
|
||
"height" : "0px"
|
||
})
|
||
|
||
//특수문자 입력
|
||
$(".special_char").click(function(){
|
||
const str = $("#sndngCn").val();
|
||
$("#sndngCn").val(str+$(this).attr('conts')).trigger("change");;
|
||
});
|
||
|
||
|
||
|
||
/**
|
||
* 발송 대상 추가
|
||
*/
|
||
$('#addBtn').on('click', function () {
|
||
// 텍스트에어리어에서 데이터 가져오기
|
||
const input = $('#inputData').val();
|
||
|
||
// 줄 바꿈으로 나누기
|
||
const lines = input.split('\n').filter(line => $.trim(line) !== '');
|
||
|
||
// JSON 객체 배열 생성
|
||
const jsonArray = lines.map((line, index) => {
|
||
const parts = line.trim().split(/\s+/);
|
||
return {
|
||
to: parts [0], // 고유 ID (선택 사항)
|
||
name: parts[1] // 줄 내용을 객체에 저장
|
||
};
|
||
});
|
||
|
||
// 결과 출력
|
||
const result = JSON.stringify(jsonArray, null, 4);
|
||
|
||
const directDiv = $("#directDiv");
|
||
|
||
//중복확인
|
||
let isDuplicate = false;
|
||
directDiv.children("div").each(function (){
|
||
let currentText = $(this).text().trim();
|
||
jsonArray.forEach(function (item){
|
||
if(currentText.includes(item.to)) {
|
||
isDuplicate = true;
|
||
return false;
|
||
}
|
||
})
|
||
|
||
});
|
||
|
||
if(isDuplicate) {
|
||
alert("전화번호가 이미 입력되어 있습니다.")
|
||
return ;
|
||
}
|
||
|
||
jsonArray.forEach((item, index) => {
|
||
|
||
const divCnt = directDiv.children("div").length + 1;
|
||
|
||
const newDiv = $("<div></div>")
|
||
.text(`[\${divCnt}] \${item.to} \${item.name}`);
|
||
|
||
|
||
const delBtn = $("<button>삭제</button>")
|
||
.attr("type", "button")
|
||
.addClass("btn xsm gray btn_del")
|
||
.on("click", function () {
|
||
$(this).parent().remove();
|
||
});
|
||
|
||
newDiv.append(delBtn).append("<br>");
|
||
|
||
directDiv.append(newDiv);
|
||
|
||
if (index === jsonArray.length - 1) {
|
||
$('#inputData').empty();
|
||
}
|
||
});
|
||
|
||
});
|
||
|
||
|
||
/**
|
||
* 발송 대상자 목록 전체 삭제
|
||
*/
|
||
$('#removeOpt').on('click', function () {
|
||
let directDiv = $('#directDiv');
|
||
directDiv.find('div').remove();
|
||
});
|
||
|
||
$('input[name="sndngTrgetTyCd"]:checked').trigger('click');
|
||
|
||
|
||
}); // document.ready END
|
||
|
||
// 발송유형 라디오버튼 제어 함수
|
||
function updateCouponSndngTyRadio() {
|
||
var radioVal = $('input[name="couponSndngTy"]:checked').val();
|
||
|
||
/*발송 유형에 따른 화면 제어*/
|
||
if(radioVal === '02'){
|
||
/*
|
||
* show : 발송 대상 구분, 등급 대상, 다운로드 기간 제한
|
||
* hide : 메시지설정, 발송대상, 발송일시구분
|
||
* disable : 메시지설정, 발송대상
|
||
* enable : 발송 대상 구분, 등급 대상, 다운로드 기간 제한, 예약발송
|
||
*/
|
||
fn_ui_showHide('#sndngTrgetDvTr, #mbrGroupTr, .dwnlTr', '.messageSec, .targetSettingSec, .sndngDtDvTr');
|
||
fn_ctrl_disable(['.messageSec', '.targetSettingSec'],
|
||
['#sndngTrgetDvTr input[name="sndngTrgetDv"]', '#mbrGroupTr input', '.dwnlTr input']);
|
||
var radioValue = $('input[name="dwldPdLmttAt"]:checked').val();
|
||
if (radioValue === 'N') {
|
||
fn_ctrl_disable(['#dwldBgnDt', '#dwldEndDt', '#dwldBgnDtTime', '#dwldEndDtTime'], []);
|
||
} else {
|
||
fn_ctrl_disable([], ['#dwldBgnDt', '#dwldEndDt', '#dwldBgnDtTime', '#dwldEndDtTime']);
|
||
}
|
||
|
||
/*발송대상구분 초기화*/
|
||
$('input[name="sndngTrgetDv"]:first').click();
|
||
}else{
|
||
//01,03 공통 처리
|
||
/*
|
||
* show : 메시지설정, 발송대상, 발송일시구분
|
||
* hide : 발송 대상 구분, 등급 대상, 다운로드 기간 제한
|
||
* disable : 발송 대상 구분, 등급 대상, 다운로드 기간 제한, 예약발송
|
||
* enable : 메시지설정, 발송대상
|
||
*/
|
||
fn_ui_showHide('.messageSec, .targetSettingSec, .sndngDtDvTr',
|
||
'#sndngTrgetDvTr, #mbrGroupTr, .dwnlTr');
|
||
|
||
fn_ctrl_disable(['.reserSndngDiv', '#sndngTrgetDvTr input[name="sndngTrgetDv"]', '#mbrGroupTr input', '.dwnlTr input'],
|
||
['.messageSec', '.targetSettingSec']);
|
||
|
||
//01,03 개별 처리
|
||
if (radioVal === '01') {
|
||
//발송 대상 > 구분 중 개인,마케팅 대상만 노출
|
||
$('.custom-radio-trget-dv').each(function (index) {
|
||
if (index >= 2) {
|
||
$(this).hide().find('input').prop('disabled', true);
|
||
}
|
||
});
|
||
|
||
//발송일시 전체 노출
|
||
$(".custom-radio-dt-dv").show();
|
||
} else {
|
||
//발송 대상 > 구분 전체 노출
|
||
$(".custom-radio-trget-dv").show().find('input').prop('disabled', false);
|
||
|
||
//발송일시 수동, 예약, 생일만 노출
|
||
$(".custom-radio-dt-dv").each(function (index) {
|
||
if (index >= 3) {
|
||
$(this).hide();
|
||
}
|
||
});
|
||
}
|
||
|
||
//발송대상 > 구분 초기화
|
||
$('input[name="sndngTrgetTyCd"]:first').click();
|
||
}
|
||
|
||
/*공통 처리*/
|
||
$('#messageUseAt').val('Y').change().niceSelect('update');
|
||
$('input[name="sndngDv"]:first').click();
|
||
$('input[name="sndngDtDvCd"]:first').click();
|
||
$(".mbrInfo").val("");
|
||
$("#sndngTrgetParam").val("");
|
||
$(".srchMbrCnt").text("0명");
|
||
$(".srchMarketingTrgetCnt").text("0명");
|
||
$('#selectList').empty();
|
||
|
||
/*쿠폰 구분 click 함수 제어
|
||
* 01 => 구분 Y
|
||
* 02 , 03 => 구분 N
|
||
* */
|
||
if (radioVal === '01') {
|
||
$('input[name="sndngDv"]').removeAttr('onclick');
|
||
} else {
|
||
$('input[name="sndngDv"]').attr('onclick', 'return false;');
|
||
}
|
||
};
|
||
|
||
|
||
|
||
// 발송대상구분 라디오 버튼 제어함수
|
||
function updateMbrGroupTrRadio() {
|
||
var radioVal = $('input[name="sndngTrgetDv"]:checked').val();
|
||
|
||
if (radioVal === "01") {
|
||
$('#mbrGroupTr').find('input').prop('disabled', true);
|
||
$('#mbrGroupTr').hide(); // 전체회원
|
||
} else if (radioVal === "02") {
|
||
$('#mbrGroupTr').find('input').prop('disabled', false);
|
||
$('#mbrGroupTr').show(); // 등급 대상
|
||
}
|
||
};
|
||
|
||
|
||
|
||
// getter 쿠폰 선택할때 유형 반환
|
||
const getSndngTyRadio = function() {
|
||
var radioVal = $('input[name="couponSndngTy"]:checked').val();
|
||
|
||
return radioVal;
|
||
}
|
||
|
||
/**
|
||
* 쿠폰 선택 모달 오픈
|
||
*/
|
||
const fn_open_modal_sndngty = function(modalDivSltr, modalSlrt, url, param){
|
||
|
||
var couponSndngTy = param
|
||
|
||
$.ajax({
|
||
type: 'post',
|
||
url: url,
|
||
data: {
|
||
couponSndngTy
|
||
},
|
||
success: function (data) {
|
||
$(modalSlrt).remove();
|
||
$(modalDivSltr).html(data);
|
||
$(modalSlrt).modal();
|
||
// fn_search_coupon_choisepage_pop(1, getSndngTyRadio())
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
/**
|
||
* 쿠폰 선택 모달 : 쿠폰 검색 ajax
|
||
*/
|
||
const fn_search_coupon_choisepage_pop = function (pageIndex, param) {
|
||
|
||
// 페이지정보가 넘어오지 않았을 경우 기본값 초기화
|
||
if(!pageIndex) {
|
||
pageIndex = 1;
|
||
}
|
||
// 모달 쿠폰 검색 form 에 페이지 정보를 넣어줌.
|
||
$('#popupListForm').find('input[name=pageIndex]').eq(0).val(pageIndex);
|
||
|
||
const popupListForm = $("#popupListForm").serialize();
|
||
|
||
// 모달 쿠폰 검색
|
||
$.ajax({
|
||
type: 'post',
|
||
url: '<c:url value="/mngr/promtn/coupon/selectCouponChoisePopupSearch"/>',
|
||
data: popupListForm,
|
||
success: function(data) {
|
||
$('#couponAjaxList').empty();
|
||
$('#couponAjaxList').html(data);
|
||
}
|
||
});
|
||
};
|
||
|
||
/**
|
||
* 쿠폰 선택 삭제 함수
|
||
*/
|
||
const fn_delete_couponchoise = function () {
|
||
var $tbody = $("#selectList");
|
||
|
||
// 체크된 input 찾기
|
||
$tbody.find('input[type="checkbox"]:checked').each(function () {
|
||
$(this).closest('tr').remove(); // 체크된 tr 삭제
|
||
});
|
||
|
||
if ($tbody.children().length === 0) {
|
||
var noDataMessage = $("<tr>");
|
||
var cell = $("<td>").attr("colspan", '100%').html('<spring:message code="common.nodata"/>');
|
||
noDataMessage.append(cell);
|
||
$tbody.append(noDataMessage);
|
||
}
|
||
|
||
$('.check-all input[type="checkbox"]').prop('checked', false);
|
||
};
|
||
|
||
|
||
|
||
/**
|
||
* 쿠폰 선택 모달에서 부모창으로 값을 전달하는 함수
|
||
*/
|
||
const fn_send_cupnpkregistpage = function(modalId) {
|
||
|
||
|
||
let childCouponList = [];
|
||
// 선택된 쿠폰 리스트 반복
|
||
$('#appendList tr').each(function() {
|
||
let coupon = {
|
||
couponInnb: '',
|
||
sopmalName: '',
|
||
couponSopmalCd: '',
|
||
couponName: '',
|
||
bnefDv: '',
|
||
goodsDscntDv: '',
|
||
aditDscntAmt: '',
|
||
aditDscntRt: '',
|
||
dscntMxmmAmt: '',
|
||
dlvyAmtDscntDv: '',
|
||
dlvyAmtDscntAmt: '',
|
||
dlvyAmtMxmmDscntAmt: '',
|
||
couponRegistDe: '',
|
||
couponValidpdKnd: '',
|
||
couponValidpdBgnDe: '',
|
||
couponValidpdEndDe: '',
|
||
couponValidpdDeCnt: '',
|
||
couponValidpdCntDe: ''
|
||
};
|
||
|
||
coupon.couponInnb = $(this).find("#couponInnb").val();
|
||
coupon.sopmalName = $(this).find("#sopmalName").val();
|
||
coupon.couponSopmalCd = $(this).find("#couponSopmalCd").val();
|
||
coupon.couponName = $(this).find("#couponName").val();
|
||
coupon.bnefDv = $(this).find("#bnefDv").val();
|
||
coupon.goodsDscntDv = $(this).find("#goodsDscntDv").val();
|
||
coupon.aditDscntAmt = $(this).find("#aditDscntAmt").val();
|
||
coupon.aditDscntRt = $(this).find("#aditDscntRt").val();
|
||
coupon.dscntMxmmAmt = $(this).find("#dscntMxmmAmt").val();
|
||
coupon.dlvyAmtDscntDv = $(this).find("#dlvyAmtDscntDv").val();
|
||
coupon.dlvyAmtDscntAmt = $(this).find("#dlvyAmtDscntAmt").val();
|
||
coupon.dlvyAmtMxmmDscntAmt = $(this).find("#dlvyAmtMxmmDscntAmt").val();
|
||
coupon.couponRegistDe = $(this).find("#couponRegistDe").val();
|
||
coupon.couponValidpdKnd = $(this).find("#couponValidpdKnd").val();
|
||
coupon.couponValidpdBgnDe = $(this).find("#couponValidpdBgnDe").val();
|
||
coupon.couponValidpdEndDe = $(this).find("#couponValidpdEndDe").val();
|
||
coupon.couponValidpdDeCnt = $(this).find("#couponValidpdDeCnt").val();
|
||
coupon.couponValidpdCntDe = $(this).find("#couponValidpdCntDe").val();
|
||
|
||
childCouponList.push(coupon);
|
||
});
|
||
|
||
|
||
|
||
$("#"+modalId+" > a").each(function() {
|
||
if(this.href.indexOf('#close-modal')){
|
||
$(this).click();
|
||
}
|
||
});
|
||
$('#' + modalId).remove();
|
||
|
||
// 선택된 쿠폰 리스트를 CupnpkRegistC.jsp > 쿠폰선택 영역에 그려줄 html
|
||
let sletdTrHtml = '<tr id="#choiseListId" >';
|
||
sletdTrHtml = sletdTrHtml+'<td class="center">';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponInnb" name="packedCouponInnbs" value="#couponInnb"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="sopmalName" name="sopmalName" value="#sopmalName"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponSopmalCd" name="couponSopmalCd" value="#couponSopmalCd"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponName" name="couponName" value="#couponName"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="bnefDv" name="bnefDv" value="#bnefDv"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="goodsDscntDv" name="goodsDscntDv" value="#goodsDscntDv"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="aditDscntAmt" name="aditDscntAmt" value="#aditDscntAmt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="aditDscntRt" name="aditDscntRt" value="#aditDscntRt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dscntMxmmAmt" name="dscntMxmmAmt" value="#dscntMxmmAmt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtDscntDv" name="dlvyAmtDscntDv" value="#dlvyAmtDscntDv"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtDscntAmt" name="dlvyAmtDscntAmt" value="#dlvyAmtDscntAmt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtMxmmDscntAmt" name="dlvyAmtMxmmDscntAmt" value="#dlvyAmtMxmmDscntAmt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponRegistDe" name="couponRegistDe" value="#couponRegistDe"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdKnd" name="couponValidpdKnd" value="#couponValidpdKnd"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdBgnDe" name="couponValidpdBgnDe" value="#couponValidpdBgnDe"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdEndDe" name="couponValidpdEndDe" value="#couponValidpdEndDe"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdDeCnt" name="couponValidpdDeCnt" value="#couponValidpdDeCnt"/>';
|
||
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdCntDe" name="couponValidpdCntDe" value="#couponValidpdCntDe"/>';
|
||
sletdTrHtml = sletdTrHtml+'<label class="b-checkbox checkbox is-medium tr-color-check">';
|
||
sletdTrHtml = sletdTrHtml+'<input type="checkbox" id="checkboxCouponInnb" name="choiseCouponCheckbox" value="#couponInnb">';
|
||
sletdTrHtml = sletdTrHtml+'<span class="check"></span>';
|
||
sletdTrHtml = sletdTrHtml+'</label>';
|
||
sletdTrHtml = sletdTrHtml+'</td>';
|
||
sletdTrHtml = sletdTrHtml+'<td>';
|
||
sletdTrHtml = sletdTrHtml+'#sopmalName';
|
||
sletdTrHtml = sletdTrHtml+'</td>';
|
||
sletdTrHtml = sletdTrHtml+'<td>';
|
||
sletdTrHtml = sletdTrHtml+'#couponName';
|
||
sletdTrHtml = sletdTrHtml+'</td>';
|
||
|
||
// 배송비할인 무료 html
|
||
let dlcyAmtDscntFreeHtml = '<td>';
|
||
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'<span class="fw-500">';
|
||
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'기본 배송비 무료,';
|
||
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'</span><br/>';
|
||
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'<span class="gray-8">최대 #dlvyAmtMxmmDscntAmt 원 할인</span>';
|
||
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'</td>';
|
||
|
||
// 배송비 금액 할인 html
|
||
let dlcyAmtDscntWonHtml = '<td>';
|
||
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'<span class="fw-500">';
|
||
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'배송비 할인,';
|
||
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'</span><br/>';
|
||
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'<span class="gray-8">#dlvyAmtDscntAmt 원 할인</span>';
|
||
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'</td>';
|
||
|
||
|
||
// 비율 할인 html
|
||
let goodsDscntDvRtHtml = '<td>';
|
||
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'<span class="fw-500">';
|
||
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'#aditDscntAmt % 할인';
|
||
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'</span><br/>';
|
||
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'<span class="gray-8">최대 #dscntMxmmAmt 원 할인</span>';
|
||
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'</td>';
|
||
|
||
|
||
// 금액 할인 html
|
||
let goodsDscntDvAmtHtml = '<td>';
|
||
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'<span class="fw-500">';
|
||
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'#aditDscntAmt 원 할인';
|
||
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'</span>';
|
||
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'</td>';
|
||
|
||
|
||
// 유효기간 기간 제한 (날짜) html
|
||
let sletdTrTail = '<td>';
|
||
sletdTrTail = sletdTrTail+'<span>#couponValidpdBgnDe</span>';
|
||
sletdTrTail = sletdTrTail+'~';
|
||
sletdTrTail = sletdTrTail+'<span>#couponValidpdEndDe</span>';
|
||
sletdTrTail = sletdTrTail+'</td>';
|
||
sletdTrTail = sletdTrTail+'</tr>';
|
||
|
||
|
||
// 유효기간 발급일로부터 일수 html
|
||
let sletdTrCntDe = '<td>';
|
||
sletdTrCntDe = sletdTrCntDe+'(발급일로부터) ';
|
||
sletdTrCntDe = sletdTrCntDe+'<span>#couponValidpdDeCnt 일</span>';
|
||
sletdTrCntDe = sletdTrCntDe+'</td>';
|
||
sletdTrCntDe = sletdTrCntDe+'</tr>';
|
||
|
||
|
||
|
||
// 선택된 쿠폰이 있을 경우
|
||
if (childCouponList != null && childCouponList.length >= 0) {
|
||
|
||
// 기존에 그려진 쿠폰 리스트를 비워줌
|
||
$('#selectList').empty();
|
||
// 선택된 쿠폰 리스트를 CupnpkRegistC.jsp > 쿠폰선택 영역에 그려줌.
|
||
childCouponList.forEach(function(coupon) {
|
||
|
||
let trHtml = sletdTrHtml
|
||
.replaceAll("#choiseListId", 'choiseListId' + coupon.couponInnb)
|
||
.replaceAll("#couponInnb", coupon.couponInnb)
|
||
.replaceAll("#sopmalName", coupon.sopmalName)
|
||
.replaceAll("#couponSopmalCd", coupon.couponSopmalCd)
|
||
.replaceAll("#couponName", coupon.couponName)
|
||
.replaceAll("#bnefDv", coupon.bnefDv)
|
||
.replaceAll("#goodsDscntDv", coupon.goodsDscntDv)
|
||
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt)
|
||
.replaceAll("#aditDscntRt", coupon.aditDscntRt)
|
||
.replaceAll("#dscntMxmmAmt", coupon.dscntMxmmAmt)
|
||
.replaceAll("#dlvyAmtDscntDv", coupon.dlvyAmtDscntDv)
|
||
.replaceAll("#dlvyAmtDscntAmt", coupon.dlvyAmtDscntAmt)
|
||
.replaceAll("#dlvyAmtMxmmDscntAmt", coupon.dlvyAmtMxmmDscntAmt)
|
||
.replaceAll("#couponRegistDe", coupon.couponRegistDe)
|
||
.replaceAll("#couponValidpdKnd", coupon.couponValidpdKnd)
|
||
.replaceAll("#couponValidpdBgnDe", coupon.couponValidpdBgnDe)
|
||
.replaceAll("#couponValidpdEndDe", coupon.couponValidpdEndDe)
|
||
.replaceAll("#couponValidpdDeCnt", coupon.couponValidpdDeCnt)
|
||
.replaceAll("#couponValidpdCntDe", coupon.couponValidpdCntDe);
|
||
|
||
|
||
|
||
// 배송비할인인 경우
|
||
if (coupon.bnefDv != null && coupon.bnefDv.trim() === '02') {
|
||
|
||
// 무료 배송비의 경우
|
||
if (coupon.dlvyAmtDscntDv != null && coupon.dlvyAmtDscntDv.trim() === '01') {
|
||
trHtml = trHtml + dlcyAmtDscntFreeHtml
|
||
.replaceAll("#dlvyAmtMxmmDscntAmt", coupon.dlvyAmtMxmmDscntAmt);
|
||
|
||
// 금액할인 배송비의 경우
|
||
} else if (coupon.dlvyAmtDscntDv != null && coupon.dlvyAmtDscntDv.trim() === '02') {
|
||
trHtml = trHtml + dlcyAmtDscntWonHtml
|
||
.replaceAll("#dlvyAmtDscntAmt", coupon.dlvyAmtDscntAmt);
|
||
}
|
||
|
||
} else {
|
||
|
||
// 혜택 구분값이 percent 인 경우 비율 html 을 append
|
||
if (coupon.goodsDscntDv != null && coupon.goodsDscntDv.trim() === '01') {
|
||
|
||
trHtml = trHtml + goodsDscntDvRtHtml
|
||
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt)
|
||
.replaceAll("#dscntMxmmAmt", coupon.dscntMxmmAmt);
|
||
// 혜택 구분값이 won 인 경우 금액 html 을 append
|
||
} else if (coupon.goodsDscntDv != null && coupon.goodsDscntDv.trim() === '02') {
|
||
trHtml = trHtml + goodsDscntDvAmtHtml
|
||
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt);
|
||
}
|
||
}
|
||
|
||
// 기간설정 날짜
|
||
if (coupon.couponValidpdKnd != null && coupon.couponValidpdKnd.trim() === '01') {
|
||
trHtml = trHtml + sletdTrTail
|
||
.replaceAll("#couponValidpdBgnDe", coupon.couponValidpdBgnDe)
|
||
.replaceAll("#couponValidpdEndDe", coupon.couponValidpdEndDe);
|
||
|
||
// 기간설정 일수
|
||
} else if (coupon.couponValidpdKnd != null && coupon.couponValidpdKnd.trim() === '02') {
|
||
trHtml = trHtml + sletdTrCntDe
|
||
.replaceAll("#couponValidpdDeCnt", coupon.couponValidpdDeCnt);
|
||
}
|
||
|
||
|
||
function checkBoxAllUpdate() {
|
||
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').click(function() {
|
||
var checkBoxAll = true;
|
||
|
||
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').each(function() {
|
||
if (!$(this).prop('checked')) {
|
||
checkBoxAll = false;
|
||
}
|
||
});
|
||
|
||
$('#couponChoiseTr .check-all input[type="checkbox"]').prop('checked', checkBoxAll);
|
||
});
|
||
}
|
||
|
||
|
||
|
||
$('#selectList').append(trHtml);
|
||
|
||
checkBoxAllUpdate();
|
||
});
|
||
}
|
||
};
|
||
|
||
|
||
/**
|
||
* 쿠폰팩 등록 화면에서 선택된 쿠폰을 반환하는 함수
|
||
*/
|
||
const getAllCouponList = function() {
|
||
let couponList = [];
|
||
// CupnpkRegistC.jsp 에서 선택된 쿠폰을 모달 창으로 퍼올리는 작업
|
||
$('#selectList tr').each(function() {
|
||
let coupon = {
|
||
couponInnb: '',
|
||
sopmalName: '',
|
||
couponSopmalCd: '',
|
||
couponName: '',
|
||
bnefDv: '',
|
||
goodsDscntDv: '',
|
||
aditDscntAmt: '',
|
||
aditDscntRt: '',
|
||
dscntMxmmAmt: '',
|
||
dlvyAmtDscntDv: '',
|
||
dlvyAmtDscntAmt: '',
|
||
dlvyAmtMxmmDscntAmt: '',
|
||
couponRegistDe: '',
|
||
couponValidpdKnd: '',
|
||
couponValidpdBgnDe: '',
|
||
couponValidpdEndDe: '',
|
||
couponValidpdDeCnt: '',
|
||
couponValidpdCntDe: ''
|
||
};
|
||
|
||
coupon.couponInnb = $(this).find("#couponInnb").val();
|
||
coupon.sopmalName = $(this).find("#sopmalName").val();
|
||
coupon.couponSopmalCd = $(this).find("#couponSopmalCd").val();
|
||
coupon.couponName = $(this).find("#couponName").val();
|
||
coupon.bnefDv = $(this).find("#bnefDv").val();
|
||
coupon.goodsDscntDv = $(this).find("#goodsDscntDv").val();
|
||
coupon.aditDscntAmt = $(this).find("#aditDscntAmt").val();
|
||
coupon.aditDscntRt = $(this).find("#aditDscntRt").val();
|
||
coupon.dscntMxmmAmt = $(this).find("#dscntMxmmAmt").val();
|
||
coupon.dlvyAmtDscntDv = $(this).find("#dlvyAmtDscntDv").val();
|
||
coupon.dlvyAmtDscntAmt = $(this).find("#dlvyAmtDscntAmt").val();
|
||
coupon.dlvyAmtMxmmDscntAmt = $(this).find("#dlvyAmtMxmmDscntAmt").val();
|
||
coupon.couponRegistDe = $(this).find("#couponRegistDe").val();
|
||
coupon.couponValidpdKnd = $(this).find("#couponValidpdKnd").val();
|
||
coupon.couponValidpdBgnDe = $(this).find("#couponValidpdBgnDe").val();
|
||
coupon.couponValidpdEndDe = $(this).find("#couponValidpdEndDe").val();
|
||
coupon.couponValidpdDeCnt = $(this).find("#couponValidpdDeCnt").val();
|
||
coupon.couponValidpdCntDe = $(this).find("#couponValidpdCntDe").val();
|
||
|
||
if (fn_is_empty(coupon.couponInnb)) {
|
||
} else {
|
||
couponList.push(coupon);
|
||
}
|
||
});
|
||
|
||
// 선택된 쿠폰 리스트 반환
|
||
return couponList;
|
||
};
|
||
|
||
|
||
/**
|
||
* 쿠폰발송 등록
|
||
*/
|
||
const fn_regist = function() {
|
||
|
||
let data = $('.common-form').serializeArray();
|
||
|
||
// directDiv 안의 텍스트 값 가져오기
|
||
let directDivTexts = [];
|
||
$('#directDiv div').each(function () {
|
||
let text = $(this).text().trim();
|
||
// 정규식을 사용해 [숫자]와 삭제를 제거
|
||
let cleanedText = text.replace(/^\[\d+\]\s*/, '').replace('삭제', '').trim();
|
||
directDivTexts.push(cleanedText);
|
||
});
|
||
|
||
let directDivString = directDivTexts.join('\n'); // 문자열로 치환
|
||
|
||
data.push({ name: 'textUploadTrget', value: directDivString });
|
||
|
||
console.log(" 쿠폰 발송 저장 data :", data);
|
||
|
||
if (confirm('쿠폰 발송을 <spring:message code="confirm.common.insert"/>')) {
|
||
// ajax 호출
|
||
$.ajax({
|
||
type: "post",
|
||
url : "/mngr/promtn/coupon/insertCouponPkSndngRegist",
|
||
data : data,
|
||
success:function(result) {
|
||
|
||
if(result.resBody != null) {
|
||
|
||
// 응답객체 선언
|
||
const resBody = result.resBody;
|
||
// 객체 -> JSON 파싱
|
||
const parsedResult = JSON.parse(resBody.result);
|
||
|
||
if(parsedResult.couponSndngInnb != null) {
|
||
|
||
alert('<spring:message code="success.common.insert"/>');
|
||
// 상세 수정 호출
|
||
fn_move_dtlupdt(parsedResult.couponSndngInnb);
|
||
} else {
|
||
alert('<spring:message code="fail.common.insert"/>');
|
||
/*
|
||
if (parsedResult.status === '1') {
|
||
alert(parsedResult.message);
|
||
} else {
|
||
alert(parsedResult.reason);
|
||
}
|
||
*/
|
||
}
|
||
}
|
||
}/*, error : function(request, status, error) {
|
||
let message = JSON.parse(request.responseText).resBody.result;
|
||
|
||
alert(message);
|
||
}*/
|
||
});
|
||
}
|
||
};
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/*************************************************
|
||
* 쿠폰발송 목록 이동
|
||
*************************************************/
|
||
function fn_select_couponSndng_list() {
|
||
$('#listForm').attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponPkSndngListInqireForm"/>');
|
||
$('#listForm').attr('method', 'post');
|
||
$('#listForm').submit();
|
||
};
|
||
|
||
/*************************************************
|
||
* 쿠폰발송 상세 수정 이동
|
||
*************************************************/
|
||
function fn_move_dtlupdt(couponSndngInnb) {
|
||
|
||
$('#listForm').attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponPkSndngDtlUpdtForm"/>');
|
||
$('#listForm').attr('method', 'post');
|
||
$('#couponSndngInnb').val(couponSndngInnb);
|
||
$('#pageIndex').val(1);
|
||
$('#listForm').submit();
|
||
};
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/*********************************************************************
|
||
* 쿠폰 발송 회원 검색팝업
|
||
* *******************************************************************/
|
||
const fn_coupont_sndng_mbrsrch_popup = function(modalDivSltr, modalSlrt, url, actionDv) {
|
||
|
||
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: url,
|
||
data : {
|
||
actionDv : actionDv
|
||
},
|
||
success: function (data) {
|
||
$(modalSlrt).remove();
|
||
$(modalDivSltr).html(data);
|
||
$(modalSlrt).modal();
|
||
}
|
||
});
|
||
|
||
}
|
||
|
||
|
||
/*********************************************************************
|
||
* 쿠폰 발송 마케팅 회원 검색팝업
|
||
* *******************************************************************/
|
||
const fn_coupont_sndng_mbrsrch_marketing_popup = function(modalDivSltr, modalSlrt, url, actionDv) {
|
||
|
||
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: url,
|
||
data : {
|
||
actionDv : actionDv
|
||
},
|
||
success: function (data) {
|
||
$(modalSlrt).remove();
|
||
$(modalDivSltr).html(data);
|
||
$(modalSlrt).modal();
|
||
}
|
||
});
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
/*********************************************************************
|
||
* 상품 검색 팝업
|
||
* *******************************************************************/
|
||
const fn_open_goods_modal_cart = function (modalDivSltr, modalSlrt, url, param) {
|
||
|
||
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: url,
|
||
data: param,
|
||
success: function (data) {
|
||
giftAt = '';
|
||
|
||
$(modalSlrt).remove();
|
||
$(modalDivSltr).html(data);
|
||
$(modalSlrt).modal();
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
/*********************************************************************
|
||
* 상품 검색 팝업
|
||
* *******************************************************************/
|
||
const fn_open_goods_modal_buy = function (modalDivSltr, modalSlrt, url, param) {
|
||
|
||
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: url,
|
||
data: param,
|
||
success: function (data) {
|
||
giftAt = '';
|
||
|
||
$(modalSlrt).remove();
|
||
$(modalDivSltr).html(data);
|
||
$(modalSlrt).modal();
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
|
||
|
||
</script>
|
||
|
||
</head>
|
||
|
||
<body>
|
||
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
|
||
<%@ 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">
|
||
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||
<div class="page-title">
|
||
<h2 class="page-title__title">쿠폰(팩) 발송 등록</h2>
|
||
<div class="page-title__btn-container">
|
||
<a href="#fn_select_coupon_list" onclick="fn_select_couponSndng_list('1'); return false;" class="btn outline"><spring:message code="button.list"/></a>
|
||
<button class="btn primary" onclick="fn_regist(); return false;" ><spring:message code="button.save"/></button>
|
||
</div>
|
||
</div>
|
||
<section class="content-section">
|
||
<h3 class="content-section__title">기본 정보</h3>
|
||
<form id="couponForm1" class="common-form" method="post" action="">
|
||
<div class="table-wrapper">
|
||
<table class="table">
|
||
<caption>해당 테이블에 대한 설명</caption>
|
||
<colgroup>
|
||
<col style="width: 12%;">
|
||
<col >
|
||
<col style="width: 12%;">
|
||
<col>
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<th>발송유형</th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" id="couponSndngTyRadioDiv">
|
||
<c:forEach var="codeList" items="${ resultMap.couponSndngTyCdList }" varStatus="">
|
||
<div class="custom-radio">
|
||
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>" name="couponSndngTy" value="<c:out value="${ codeList.cd }"/>" ${f:setChecked("01" , codeList.cd)}>
|
||
<label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"><c:out value="${ codeList.cdNm }"/></label>
|
||
</div>
|
||
</c:forEach>
|
||
<span class="gray-7">* 인증번호 발급으로 온라인, 온/오프라인 쿠폰만 조회됩니다.</span>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="sndngDvCdTr">
|
||
<th>구분</th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" id="sndngDvRadioDiv">
|
||
<c:forEach var="list" items="${ resultMap.sndngDvCdList }">
|
||
<div class="custom-radio">
|
||
<input type="radio" id="<c:out value="${ list.cdNm }"/><c:out value="${ list.cd }"/>" name="sndngDv" value="<c:out value="${ list.cd }"/>" <c:if test="${ '01' eq list.cd }">checked="checked"</c:if>>
|
||
<label for="<c:out value="${ list.cdNm }"/><c:out value="${ list.cd }"/>"><c:out value="${ list.cdNm }"/></label>
|
||
</div>
|
||
</c:forEach>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="dwnlTr">
|
||
<th>다운로드 기간 제한</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" id="radioDwldPdLmttAt">
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="dwldPdLmttAt-23" name="dwldPdLmttAt" value="N" checked>
|
||
<label for="dwldPdLmttAt-23">무제한</label>
|
||
<div>
|
||
</div>
|
||
</div>
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="dwldPdLmttAt-22" name="dwldPdLmttAt" value="Y" >
|
||
<label for="dwldPdLmttAt-22">기간제한</label> 
|
||
<div class="td-inner">
|
||
<input type="text" id="dwldBgnDt" name="dwldBgnDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
|
||
<div class="timepicker-container">
|
||
<input type="text" class="bs-timepicker" id="dwldBgnDtTime" name="dwldBgnDt" title="시간 설정" value="00:00">
|
||
</div>
|
||
<span class="tilde">~</span>
|
||
<input type="text" id="dwldEndDt" name="dwldEndDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
|
||
<div class="timepicker-container">
|
||
<input type="text" class="bs-timepicker" id="dwldEndDtTime" name="dwldEndDt" title="시간 설정" value="00:00">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr id="sndngTrgetDvTr">
|
||
<th>발송대상구분</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" id="sndngTrgetDvDiv">
|
||
<c:forEach var="codeList" items="${ resultMap.sndngTrgetDvCdList }" varStatus="">
|
||
<div class="custom-radio">
|
||
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd}"/>" name="sndngTrgetDv" value="<c:out value="${ codeList.cd}"/>" <c:if test="${ '01' eq codeList.cd }">checked="checked"</c:if>>
|
||
<label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd}"/>"><c:out value="${ codeList.cdNm }"/></label>
|
||
</div>
|
||
</c:forEach>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr id="mbrGroupTr">
|
||
<th>등급 대상</th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<div class="b-checkbox-container" id="bnefSearchDiv">
|
||
<c:forEach var="list" items="${ resultMap.mbrGroupList }" varStatus="">
|
||
<label class="b-checkbox checkbox">
|
||
<input type="checkbox" id="" name="trgetMbrGradeInnbs" value="<c:out value="${ list.mbrGradInnb }"/>">
|
||
<span class="check"></span>
|
||
<span class="control-label"><c:out value="${ list.mbrGradNm }"/></span>
|
||
</label>
|
||
</c:forEach>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>사용여부</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container">
|
||
<div class="custom-radio">
|
||
<input type="radio" id="r-9" name="couponSndngUseAt" value="Y" checked>
|
||
<label for="r-9">사용</label>
|
||
</div>
|
||
<div class="custom-radio">
|
||
<input type="radio" id="r-10" name="couponSndngUseAt" value="N">
|
||
<label for="r-10">미사용</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>발송 명<span class="red-7">*</span></th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<input class="input-text md" type="text" id="couponSndngNm" name="couponSndngNm" title="쿠폰발송명" maxlength="95">
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>발송 설명<span class="red-7">*</span></th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<input class="input-text xl" type="text" id="couponSndngDc" name="couponSndngDc" title="쿠폰발송설명" maxlength="3900">
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr id="cupnpkChoiseTr" >
|
||
<th>쿠폰(팩)</th>
|
||
<td colspan="3">
|
||
<div class="td-inner vertical">
|
||
<div class="input-container">
|
||
<div class="select-box mr-10">
|
||
<select class="mr-5" title="쿠폰팩 리스트" id ="cupnpkInnb" name = "cupnpkInnb">
|
||
<c:forEach var ="cupnpkList" items ="${ resultMap.cupnpkList }">
|
||
<option value="${ cupnpkList.cupnpkInnb }">
|
||
${ cupnpkList.cupnpkNm }
|
||
</option>
|
||
</c:forEach>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr id="couponChoiseTr">
|
||
<th>쿠폰선택<span class="red-7">*</span></th>
|
||
<td>
|
||
<div class="td-inner">
|
||
</div>
|
||
<div class="form-control-container">
|
||
<div class="left">
|
||
<button class="btn xsm primary" id="couponChoiseBtn" onclick="fn_open_modal_sndngty('#modalDiv', '#couponChoisePopup', '<c:url value="/mngr/promtn/coupon/selectCouponChoisePopupForm"/>', getSndngTyRadio()); return false;">
|
||
쿠폰 선택
|
||
</button>
|
||
<button class="btn xsm dark" id="couponDeleteBtn" onclick="fn_delete_couponchoise(); return false;">쿠폰 삭제</button>
|
||
</div>
|
||
<div class="center"></div>
|
||
</div> 
|
||
<div class="table-wrapper">
|
||
<table class="table vertical tight">
|
||
<caption>쿠폰팩에 들어갈 쿠폰 리스트</caption>
|
||
<colgroup>
|
||
<col style="width:60px;">
|
||
<col style="width:150px">
|
||
<col style="width:250px">
|
||
<col style="width:250px">
|
||
<col style="width:250px">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
<label class="b-checkbox checkbox is-medium tr-color-check check-all">
|
||
<input type="checkbox" value="">
|
||
<span class="check"></span>
|
||
</label>
|
||
</th>
|
||
<th>브랜드 몰 명</th>
|
||
<th>쿠폰명</th>
|
||
<th>혜택</th>
|
||
<th>유효기간</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="selectList" >
|
||
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="sndngDtDvTr">
|
||
<th>발송일시 구분</th>
|
||
<td colspan="3">
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" >
|
||
<c:forEach var="codeList" items="${ resultMap.sndngDtDvCdList }" varStatus="">
|
||
<%-----------------------------------------------------------------------------
|
||
발송일시 구분에 따른 onclick함수 할당, html, checked를 설정한다.
|
||
01(수동발송) => 발송 일시 라디오 버튼 초기 세팅 및 예약발송 disable 처리 함수 할당
|
||
02(예약발송) => 예약발송 html 구성 및 예약발송 html enable처리 함수 할당
|
||
그 외 => 예약발송 disable 처리 함수 할당
|
||
-------------------------------------------------------------------------------%>
|
||
<c:choose>
|
||
<c:when test = "${codeList.cd eq '02'}">
|
||
<c:set var="reserSndngDivHtml"
|
||
value=" <div class='td-inner reserSndngDiv'>
|
||
<input type='text' id='sndngDt' name='sndngDt' class='datepicker' title='시작 날짜 선택' autocomplete='off'>
|
||
<div class='timepicker-container'>
|
||
<input type='text' class='bs-timepicker' id='sndngDtTime' name='sndngDt' title='시간 설정' value='00:00'>
|
||
</div>
|
||
</div> "/>
|
||
<c:set var = "disableReserSndngDivFn" value = "fn_ctrl_disable([], ['.reserSndngDiv']);"/>
|
||
</c:when>
|
||
<c:otherwise>
|
||
<c:set var="reserSndngDivHtml" value=""/>
|
||
<c:set var = "disableReserSndngDivFn" value = "fn_ctrl_disable(['.reserSndngDiv'], []);"/>
|
||
</c:otherwise>
|
||
</c:choose>
|
||
<%-------------------------------------------------------------------------------%>
|
||
<div class="custom-radio inner-input custom-radio-dt-dv">
|
||
<input type="radio"
|
||
id="<c:out value="${ codeList.cdNm }${ codeList.cd }"/>"
|
||
name="sndngDtDvCd"
|
||
value="<c:out value="${ codeList.cd }"/>"
|
||
onchange="${disableReserSndngDivFn}"
|
||
${f:setChecked('01',codeList.cd)}>
|
||
<label for="<c:out value="${codeList.cdNm}${codeList.cd}"/>"><c:out value="${codeList.cdNm}"/></label>
|
||
${reserSndngDivHtml}
|
||
</div>
|
||
</c:forEach>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</form>
|
||
</section>
|
||
|
||
<section class="content-section targetSettingSec">
|
||
<h3 class="content-section__title">발송 대상</h3>
|
||
<form id="couponForm3" class="common-form" method="post">
|
||
<div class="table-wrapper">
|
||
<div class="modal-content">
|
||
<div class="table-wrapper">
|
||
<table class="table">
|
||
<caption>해당 테이블에 대한 설명</caption>
|
||
<colgroup>
|
||
<col style="width: 12%;">
|
||
<col>
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="sndngDvTr">
|
||
<th>구분</th>
|
||
<td>
|
||
<%-- <div class="select-box">--%>
|
||
<%-- <select title="해당 셀렉트에 대한 설명" id="targetDv" name="sndngTrgetTyCd">--%>
|
||
<%-- <c:forEach var="cdList" items="${ resultMap.sndngTrgetTyCdList }" varStatus="status">--%>
|
||
<%-- <option value="${ cdList.cd }" id="${ cdList.cdNm }${ cdList.cd }" >${ cdList.cdNm }</option>--%>
|
||
<%-- </c:forEach>--%>
|
||
<%--<%– <option value="marketingTrget" id="marketingTrget" >마케팅 대상</option>–%>--%>
|
||
<%-- </select>--%>
|
||
<%-- </div>--%>
|
||
<div class="custom-radio-container" >
|
||
<c:forEach var="codeList" items="${ resultMap.sndngTrgetTyCdList }" varStatus="">
|
||
<div class="custom-radio inner-input custom-radio-trget-dv">
|
||
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"
|
||
name="sndngTrgetTyCd"
|
||
value="<c:out value="${ codeList.cd }"/>"
|
||
<c:if test="${ '01' eq codeList.cd }">checked="checked"</c:if>
|
||
>
|
||
 <label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"><c:out value="${ codeList.cdNm }"/></label>
|
||
</div>
|
||
</c:forEach>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<%--
|
||
<tr class="sndngDvTrMk">
|
||
<th>구분</th>
|
||
<td>
|
||
<div class="select-box">
|
||
<select title="해당 셀렉트에 대한 설명" id="targetDvOffle" name="sndngTrgetTyCd">
|
||
<option value="member" id="member" selected>개인</option>
|
||
<option value="marketingTrget" id="marketingTrget" >마케팅 대상</option>
|
||
<option value="company" id="company" >외부업체</option>
|
||
</select>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
--%>
|
||
<tr id="memberTr">
|
||
<th>대상</th>
|
||
<td>
|
||
<div class="select" >
|
||
<span class="fw-500 fs-15 ml-5 srchMbrCnt">0 명</span>
|
||
|
||
<input type = "hidden" class= "mbrInfo"/>
|
||
|
||
<%-- <button class="btn xsm primary" type="button" onclick="fn_coupont_sndng_mbrsrch_popup('#modalDiv', '#member-search', '/mngr/mbr/selectMbrSrchPopupRForm', 'coupon'); return false;">회원검색</button>--%>
|
||
<button class="btn xsm primary" type="button" onclick="fn_open_modal('#modalDiv','#member-search','/mngr/mbr/selectMbrSrchPopupRForm', {'actionDv':'coupon'}); return false;">회원검색</button>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr id="marketingTr">
|
||
<th>대상 검색</th>
|
||
<td>
|
||
<div class="select" >
|
||
<span class="fw-500 fs-15 ml-5 srchMarketingTrgetCnt">0 명</span>
|
||
|
||
<input type = "hidden" class= "marketingTrgetInfo"/>
|
||
|
||
<button class="btn xsm primary" type="button" onclick="fn_open_modal('#modalDiv', '#marketing-trget-search', '/mngr/mbr/selectMarketingTrgetSrchPopupForm', {'actionDv':'coupon'}); return false;">마케팅 대상 검색</button>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="companyTr">
|
||
<th>발송수량</th>
|
||
<td>
|
||
<div class="td-inner input-container">
|
||
<input class="input-text sm number right" type="text" id="crtnbAtmcCreatCnt" name="crtnbAtmcCreatCnt" title="생성 개수" value="0" maxlength="15">
|
||
<span class="input-unit-text">개</span>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="companyTr">
|
||
<th>대상</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<input class="input-text md" type="text" name="sndngTrgterNm" value="" placeholder="업체명" maxlength="38"/>
|
||
<br>
|
||
<input class="input-text md" type="text" name="sndngTrgetTelnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno)" value="" placeholder="전화번호" maxlength="13"/>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="textUpload">
|
||
<th></th>
|
||
<td>
|
||
<div class="board-setting" style="width: 600px;">
|
||
<div class="board-setting__left">
|
||
<h5 class="board-setting__title">대상자 추가 목록</h5>
|
||
<textarea id="inputData" rows="5" cols="30" style="overflow:scroll; width:300px; height:500px;"></textarea>
|
||
<button type="button" class="btn xsm gray" id="addBtn">대상추가</button>
|
||
</div>
|
||
<%-- <div class="board-setting__center">--%>
|
||
<%-- <button class="board-setting__move-btn right"><span class="visually-hidden">오른쪽으로</span></button>--%>
|
||
<%-- <button class="board-setting__move-btn left"><span class="visually-hidden">왼쪽으로</span></button>--%>
|
||
<%-- </div>--%>
|
||
<div class="board-setting__right">
|
||
<h5 class="board-setting__title">발송 대상자 목록</h5>
|
||
<div id="directDiv" style="overflow:scroll; width:300px; height:500px; padding:10px; font-size: 12px;"></div>
|
||
<button type="button" class="btn xsm dark" id="removeOpt">전체 삭제</button>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<%-- <tr class="textUpload">--%>
|
||
<%-- <th>받는 사람</th>--%>
|
||
<%-- <td>--%>
|
||
<%-- <textarea id="inputData" rows="5" cols="30" style="overflow:scroll; width:500px;"></textarea>--%>
|
||
<%-- <button type="button" class="btn xsm gray" id="addBtn">대상추가</button>--%>
|
||
<%-- </td>--%>
|
||
<%-- </tr>--%>
|
||
<%-- <tr class="textUpload">--%>
|
||
<%-- <th>대상</th>--%>
|
||
<%-- <td>--%>
|
||
<%-- <div class="td-inner">--%>
|
||
<%-- <div id="directDiv" style="overflow:scroll; width:500px; height:150px; padding:10px; font-size: 12px;"></div>--%>
|
||
<%-- </div>--%>
|
||
<%-- </td>--%>
|
||
<%-- </tr>--%>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<input type="hidden" title="" cols="30" rows="10" id = "sndngTrgetParam" name="sndngTrgetParam" value="<c:out value="${ resultMap.couponPkSndngVO.result.sndngTrgetParam }"/>"/>
|
||
<div class="td-inner hidden">
|
||
<%-- <input type="text" title="" cols="30" rows="10" id = "resultCn" name="jsonMbrList" value=""/>--%>
|
||
<input type="text" title="" cols="30" rows="10" id = "resultCn" name="jsonMbrList" value=""/>
|
||
<%-- <input type="text" title="" cols="30" rows="10" id = "resultCnMarketing" name="jsonMarketingTrgetList" value=""/>--%>
|
||
<input type="text" title="" cols="30" rows="10" id = "resultCnMarketing" name="jsonMarketingTrgetList" value=""/>
|
||
<button type = "button" class="btn xsm primary" id = "resultBtn">회원 값 확인</button>
|
||
<button type = "button" class="btn xsm primary" id = "resultBtnMarketing">마케팅 대상 값 확인</button>
|
||
</div>
|
||
<!-- 모달 DIV -->
|
||
<div id="modalDiv">
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</section>
|
||
|
||
<section class="content-section messageSec">
|
||
<h3 class="content-section__title">메세지 설정</h3>
|
||
<form id="couponForm3" class="common-form" method="post">
|
||
<div class="table-wrapper">
|
||
<div class="modal-content">
|
||
<div class="table-wrapper">
|
||
<table class="table">
|
||
<caption>해당 테이블에 대한 설명</caption>
|
||
<colgroup>
|
||
<col style="width: 12%;">
|
||
<col>
|
||
</colgroup>
|
||
<tbody>
|
||
<%--
|
||
<tr id="messageTr">
|
||
<th>메세지 내용</th>
|
||
<td>
|
||
<div class="select" >
|
||
|
||
<div class="template-message" style="width: 300px;">
|
||
<div class="template-message__header">
|
||
수동 발송 내용
|
||
<span class="btn gray ml-2 xxsm">알림톡 X</span>
|
||
</div>
|
||
<div class="template-message__body">
|
||
<div class="sms-manage">
|
||
<textarea class="textarea" title="sms 입력" name="messageCn"></textarea>
|
||
<div class="sms-manage__byte">
|
||
<span class="number">0</span>
|
||
<span class="text">byte</span>
|
||
</div>
|
||
</div>
|
||
<div class="b-checkbox-container justify-end mt-8 mb-5 mr-2">
|
||
<label class="b-checkbox checkbox">
|
||
<input type="checkbox" value="Y" id="templateUseAt">
|
||
<span class="check"></span>
|
||
<span class="control-label">템플릿 사용 여부</span>
|
||
</label>
|
||
<a href="#substitution-sms-pop" rel="modal:open" class="btn sm outline">
|
||
<i class="icon icon_info"></i>
|
||
치환 코드
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="template-message__footer">
|
||
<div class="manage-btn-container">
|
||
<a href="#substitution-sms-pop" rel="modal:open" class="btn sm outline">
|
||
<i class="icon icon_info"></i>
|
||
치환 코드
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
--%>
|
||
<tr>
|
||
<th>사용여부</th>
|
||
<td>
|
||
<div class="select-box">
|
||
<select title="해당 셀렉트에 대한 설명" id="messageUseAt" name="messageUseAt">
|
||
<option value="Y" id="messageUseAtY" selected>사용</option>
|
||
<option value="N" id="messageUseAtN" >미사용</option>
|
||
</select>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="messageUseAtTr">
|
||
<th>발송 제목</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<input class="input-text xl" type="text" title="발송제목" name="sndngSj" id="sndngSj"
|
||
placeholder="">
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="messageUseAtTr">
|
||
<th>문자 내용</th>
|
||
<td>
|
||
<div class="td-inner vertical">
|
||
<div class="message-send">
|
||
<div class="message-send__left">
|
||
<div class="form-control-container">
|
||
<div class="left">
|
||
<h3 class="content-section__inner-title mb-0">내용 입력
|
||
</h3>
|
||
</div>
|
||
<div class="center">
|
||
</div>
|
||
<div class="right">
|
||
<button class="btn xsm outline" id="auto-callback" type="button">고객센터 추가</button>
|
||
<button class="btn xsm outline" id="auto-freedeny" type="button">수신거부 추가</button>
|
||
<button class="btn xsm gray" id="special_cont" type="button">특수문자</button>
|
||
<div id="special_view" style="position: absolute; z-index: 100; margin-left: 880px; margin-top: -250px; border: 2px solid rgb(170, 170, 170); padding: 3px; background-color: rgb(255, 255, 255); display: none;">
|
||
<table cellpadding="5" cellspacing="1" border="0" width="100%">
|
||
<tbody>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="#" style="font-size:10px;cursor:pointer;">#</span></td>
|
||
<td align="center"><span class="special_char" conts="&" style="font-size:10px;cursor:pointer;">&</span></td>
|
||
<td align="center"><span class="special_char" conts="*" style="font-size:10px;cursor:pointer;">*</span></td>
|
||
<td align="center"><span class="special_char" conts="@" style="font-size:10px;cursor:pointer;">@</span></td>
|
||
<td align="center"><span class="special_char" conts="§" style="font-size:10px;cursor:pointer;">§</span></td>
|
||
<td align="center"><span class="special_char" conts="※" style="font-size:10px;cursor:pointer;">※</span></td>
|
||
<td align="center"><span class="special_char" conts="☆" style="font-size:10px;cursor:pointer;">☆</span></td>
|
||
<td align="center"><span class="special_char" conts="★" style="font-size:10px;cursor:pointer;">★</span></td>
|
||
<td align="center"><span class="special_char" conts="○" style="font-size:10px;cursor:pointer;">○</span></td>
|
||
<td align="center"><span class="special_char" conts="●" style="font-size:10px;cursor:pointer;">●</span></td>
|
||
<td align="center"><span class="special_char" conts="◎" style="font-size:10px;cursor:pointer;">◎</span></td>
|
||
<td align="center"><span class="special_char" conts="◇" style="font-size:10px;cursor:pointer;">◇</span></td>
|
||
<td align="center"><span class="special_char" conts="◆" style="font-size:10px;cursor:pointer;">◆</span></td>
|
||
<td align="center"><span class="special_char" conts="□" style="font-size:10px;cursor:pointer;">□</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="■" style="font-size:10px;cursor:pointer;">■</span></td>
|
||
<td align="center"><span class="special_char" conts="△" style="font-size:10px;cursor:pointer;">△</span></td>
|
||
<td align="center"><span class="special_char" conts="▲" style="font-size:10px;cursor:pointer;">▲</span></td>
|
||
<td align="center"><span class="special_char" conts="▽" style="font-size:10px;cursor:pointer;">▽</span></td>
|
||
<td align="center"><span class="special_char" conts="▼" style="font-size:10px;cursor:pointer;">▼</span></td>
|
||
<td align="center"><span class="special_char" conts="→" style="font-size:10px;cursor:pointer;">→</span></td>
|
||
<td align="center"><span class="special_char" conts="←" style="font-size:10px;cursor:pointer;">←</span></td>
|
||
<td align="center"><span class="special_char" conts="↑" style="font-size:10px;cursor:pointer;">↑</span></td>
|
||
<td align="center"><span class="special_char" conts="↓" style="font-size:10px;cursor:pointer;">↓</span></td>
|
||
<td align="center"><span class="special_char" conts="↔" style="font-size:10px;cursor:pointer;">↔</span></td>
|
||
<td align="center"><span class="special_char" conts="〓" style="font-size:10px;cursor:pointer;">〓</span></td>
|
||
<td align="center"><span class="special_char" conts="◁" style="font-size:10px;cursor:pointer;">◁</span></td>
|
||
<td align="center"><span class="special_char" conts="◀" style="font-size:10px;cursor:pointer;">◀</span></td>
|
||
<td align="center"><span class="special_char" conts="▷" style="font-size:10px;cursor:pointer;">▷</span></td>
|
||
<td align="center"><span class="special_char" conts="▶" style="font-size:10px;cursor:pointer;">▶</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="♤" style="font-size:10px;cursor:pointer;">♤</span></td>
|
||
<td align="center"><span class="special_char" conts="♠" style="font-size:10px;cursor:pointer;">♠</span></td>
|
||
<td align="center"><span class="special_char" conts="♡" style="font-size:10px;cursor:pointer;">♡</span></td>
|
||
<td align="center"><span class="special_char" conts="♥" style="font-size:10px;cursor:pointer;">♥</span></td>
|
||
<td align="center"><span class="special_char" conts="♧" style="font-size:10px;cursor:pointer;">♧</span></td>
|
||
<td align="center"><span class="special_char" conts="♣" style="font-size:10px;cursor:pointer;">♣</span></td>
|
||
<td align="center"><span class="special_char" conts="⊙" style="font-size:10px;cursor:pointer;">⊙</span></td>
|
||
<td align="center"><span class="special_char" conts="◈" style="font-size:10px;cursor:pointer;">◈</span></td>
|
||
<td align="center"><span class="special_char" conts="▣" style="font-size:10px;cursor:pointer;">▣</span></td>
|
||
<td align="center"><span class="special_char" conts="◐" style="font-size:10px;cursor:pointer;">◐</span></td>
|
||
<td align="center"><span class="special_char" conts="◑" style="font-size:10px;cursor:pointer;">◑</span></td>
|
||
<td align="center"><span class="special_char" conts="▒" style="font-size:10px;cursor:pointer;">▒</span></td>
|
||
<td align="center"><span class="special_char" conts="▤" style="font-size:10px;cursor:pointer;">▤</span></td>
|
||
<td align="center"><span class="special_char" conts="▥" style="font-size:10px;cursor:pointer;">▥</span></td>
|
||
<td align="center"><span class="special_char" conts="▨" style="font-size:10px;cursor:pointer;">▨</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="▧" style="font-size:10px;cursor:pointer;">▧</span></td>
|
||
<td align="center"><span class="special_char" conts="▦" style="font-size:10px;cursor:pointer;">▦</span></td>
|
||
<td align="center"><span class="special_char" conts="▩" style="font-size:10px;cursor:pointer;">▩</span></td>
|
||
<td align="center"><span class="special_char" conts="♨" style="font-size:10px;cursor:pointer;">♨</span></td>
|
||
<td align="center"><span class="special_char" conts="☏" style="font-size:10px;cursor:pointer;">☏</span></td>
|
||
<td align="center"><span class="special_char" conts="☎" style="font-size:10px;cursor:pointer;">☎</span></td>
|
||
<td align="center"><span class="special_char" conts="☜" style="font-size:10px;cursor:pointer;">☜</span></td>
|
||
<td align="center"><span class="special_char" conts="☞" style="font-size:10px;cursor:pointer;">☞</span></td>
|
||
<td align="center"><span class="special_char" conts="¶" style="font-size:10px;cursor:pointer;">¶</span></td>
|
||
<td align="center"><span class="special_char" conts="†" style="font-size:10px;cursor:pointer;">†</span></td>
|
||
<td align="center"><span class="special_char" conts="‡" style="font-size:10px;cursor:pointer;">‡</span></td>
|
||
<td align="center"><span class="special_char" conts="↕" style="font-size:10px;cursor:pointer;">↕</span></td>
|
||
<td align="center"><span class="special_char" conts="↗" style="font-size:10px;cursor:pointer;">↗</span></td>
|
||
<td align="center"><span class="special_char" conts="↙" style="font-size:10px;cursor:pointer;">↙</span></td>
|
||
<td align="center"><span class="special_char" conts="↖" style="font-size:10px;cursor:pointer;">↖</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="↘" style="font-size:10px;cursor:pointer;">↘</span></td>
|
||
<td align="center"><span class="special_char" conts="♭" style="font-size:10px;cursor:pointer;">♭</span></td>
|
||
<td align="center"><span class="special_char" conts="♩" style="font-size:10px;cursor:pointer;">♩</span></td>
|
||
<td align="center"><span class="special_char" conts="♪" style="font-size:10px;cursor:pointer;">♪</span></td>
|
||
<td align="center"><span class="special_char" conts="♬" style="font-size:10px;cursor:pointer;">♬</span></td>
|
||
<td align="center"><span class="special_char" conts="㉿" style="font-size:10px;cursor:pointer;">㉿</span></td>
|
||
<td align="center"><span class="special_char" conts="㈜" style="font-size:10px;cursor:pointer;">㈜</span></td>
|
||
<td align="center"><span class="special_char" conts="№" style="font-size:10px;cursor:pointer;">№</span></td>
|
||
<td align="center"><span class="special_char" conts="㏇" style="font-size:10px;cursor:pointer;">㏇</span></td>
|
||
<td align="center"><span class="special_char" conts="™" style="font-size:10px;cursor:pointer;">™</span></td>
|
||
<td align="center"><span class="special_char" conts="㏂" style="font-size:10px;cursor:pointer;">㏂</span></td>
|
||
<td align="center"><span class="special_char" conts="㏘" style="font-size:10px;cursor:pointer;">㏘</span></td>
|
||
<td align="center"><span class="special_char" conts="℡" style="font-size:10px;cursor:pointer;">℡</span></td>
|
||
<td align="center"><span class="special_char" conts="?" style="font-size:10px;cursor:pointer;">?</span></td>
|
||
<td align="center"><span class="special_char" conts="ª" style="font-size:10px;cursor:pointer;">ª</span></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center"><span class="special_char" conts="º" style="font-size:10px;cursor:pointer;">º</span></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<a href="#substitution-pop" rel="modal:open" class="btn sm outline substitution-coupon">
|
||
<i class="icon icon_info"></i>
|
||
치환 코드
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<textarea class="textarea" title="에디터 입력" cols="30" id="sndngCn" name="sndngCn" maxlength=1950
|
||
rows="10"></textarea>
|
||
<div class="sms-manage__byte">
|
||
<span class="byteCnt">0</span><span> / 2000</span>
|
||
<span class="gray-10 sndng-type">(SMS)</span>
|
||
</div>
|
||
</div>
|
||
<!-- <div class="message-send__right">
|
||
<div class="form-control-container">
|
||
<div class="left">
|
||
<h3 class="content-section__inner-title mb-0">미리보기</h3>
|
||
</div>
|
||
<div class="center">
|
||
</div>
|
||
<div class="right">
|
||
</div>
|
||
</div>
|
||
<textarea class="textarea" title="에디터 입력" cols="30" rows="10"
|
||
id="previewCn" readonly></textarea>
|
||
</div> -->
|
||
</div>
|
||
<div class="gray-7">
|
||
<p class="fyi">‘정보통신망이용 촉진 및 정보 보호 등의 관한 법률 및 시행령’에 따라 광고 전송
|
||
시
|
||
제목에 (광고)를 표시해주세요.
|
||
<button type="button" class="mini-info-btn mb-3" data-info="info01">?</button>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</section>
|
||
|
||
<%--
|
||
<section class="content-section messageSec">
|
||
<h3 class="content-section__title">안내 문자</h3>
|
||
<form id="couponForm3" class="common-form" method="post">
|
||
<div class="table-wrapper">
|
||
<table class="table">
|
||
<caption>해당 테이블에 대한 설명</caption>
|
||
<colgroup>
|
||
<col style="width: 12%;">
|
||
<col>
|
||
</colgroup>
|
||
<tbody id="messageTbody">
|
||
<tr>
|
||
<th>메시지 발송</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" id="smsSndngRadio">
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-27" name="smsSndngFormRadio" value="Y">
|
||
<label for="r-27">사용</label> 
|
||
<div class="select-box" >
|
||
<select class="lg" id="smsSndngFormInnb" name="smsSndngFormInnb" title="안내메시지">
|
||
<c:forEach var="list" items="${ resultMap.smsTmpltList }">
|
||
<option value="<c:out value="${ list.smsSndngFormInnb }"/>"><c:out value="${ list.smsCn }"/></option>
|
||
</c:forEach>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-28" name="smsSndngFormRadio" value="N" checked>
|
||
<label for="r-28">미사용</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>알림톡 발송</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" >
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-29" name="ntcntalkSndngFormRadio" value="Y">
|
||
<label for="r-29">사용</label> 
|
||
<div class="select-box">
|
||
<select class="lg" id="ntcntalkSndngFormInnb" name="ntcntalkSndngFormInnb" title="안내알림톡">
|
||
<c:forEach var="list" items="${ resultMap.kakaoTmpltList }">
|
||
<option value="<c:out value="${ list.ntcntalkSndngFormInnb }"/>"><c:out value="${ list.msg }"/></option>
|
||
</c:forEach>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-30" name="ntcntalkSndngFormRadio" value="N" checked>
|
||
<label for="r-30">미사용</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>이메일 발송</th>
|
||
<td>
|
||
<div class="td-inner">
|
||
<div class="custom-radio-container" >
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-31" name="emailSndngFormRadio" value="Y">
|
||
<label for="r-31">사용</label> 
|
||
<div class="select-box">
|
||
<select class="lg" id="emailSndngFormInnb" name="emailSndngFormInnb" title="안내이메일">
|
||
<c:forEach var="list" items="${ resultMap.emailTmpltList }">
|
||
<option value="<c:out value="${ list.emailSndngFormInnb }"/>"><c:out value="${ list.emailSj }"/></option>
|
||
</c:forEach>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="custom-radio inner-input">
|
||
<input type="radio" id="r-32" name="emailSndngFormRadio" value="N" checked>
|
||
<label for="r-32">미사용</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</form>
|
||
</section>
|
||
--%>
|
||
</div>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<!-- 치환코드 모달 -->
|
||
<div id="substitution-pop" class="modal" style="max-width: 400px;">
|
||
<div class="modal-header">
|
||
<h4>사용 가능한 치환코드</h4>
|
||
</div>
|
||
<div class="modal-content">
|
||
<div class="table-wrapper">
|
||
<table class="table vertical tight">
|
||
<caption>해당 테이블에 대한 설명</caption>
|
||
<colgroup>
|
||
<col style="width: 33%;">
|
||
<col>
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>치환코드</th>
|
||
<th>설명</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<!-- 치환코드 내용 삽입 -->
|
||
<tr>
|
||
<th>
|
||
{shopName}
|
||
</th>
|
||
<td>
|
||
쇼핑몰 이름(설정 > 일반정보)
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>
|
||
{oflneCouponCrtnb}
|
||
</th>
|
||
<td>
|
||
쿠폰 인증번호
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>
|
||
{couponSndngNm}
|
||
</th>
|
||
<td>
|
||
쿠폰 발송 명
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>
|
||
{receptNm}
|
||
</th>
|
||
<td>
|
||
대상자명
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="modalDiv">
|
||
</div>
|
||
|
||
|
||
<form id="listForm" name="listForm">
|
||
<input type="hidden" id="couponSndngInnb" name ="couponSndngInnb"/>
|
||
<input type="hidden" id="searchCouponPkSndngNm" name="searchCouponPkSndngNm" title="검색_쿠폰발송명" value="${ searchForm.searchCouponPkSndngNm }">
|
||
<input type="hidden" id="searchSndngDv" name="searchSndngDv" title="검색_쿠폰발송 구분" value="${ searchForm.searchSndngDv }">
|
||
|
||
<c:if test="${ not empty searchForm.searchCouponSndngTy }" >
|
||
<input type="hidden" id="searchCouponSndngTy" name="searchCouponSndngTy" value="
|
||
<%
|
||
String[] list3 = request.getParameterValues("searchCouponSndngTy");
|
||
if (list3 != null && list3.length > 0) {
|
||
// 첫번째만 콤마 없이
|
||
out.print(list3[0]);
|
||
if (list3.length > 1) {
|
||
// 나머지는 콤마 붙여서 출력
|
||
for (int i = 1; i < list3.length; i++) {
|
||
out.print(", " + list3[i]);
|
||
}
|
||
}
|
||
}
|
||
%>
|
||
">
|
||
</c:if>
|
||
|
||
<input type="hidden" id="searchUseAt" name="searchUseAt" title="쿠폰발송 사용여부" value="${ searchForm.searchUseAt }">
|
||
<input type="hidden" id="pageIndex" name="pageIndex" value="${ searchForm.pageIndex }"/>
|
||
<input type="hidden" id="recordCountPerPage" name="recordCountPerPage" value="${ searchForm.recordCountPerPage }"/>
|
||
<input type="hidden" id="pageUnit" name="pageUnit" value="${ searchForm.pageUnit }"/>
|
||
</form>
|
||
</body>
|
||
</html> |