초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,823 @@
<%@ 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" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
<script>
$(document).ready(function() {
fn_start_display();
});
/* ********************************************************
* 시작 화면 제어 함수
******************************************************** */
const fn_start_display = function() {
// 조건
fn_ctrl_disable(['.bnefcondition', '.bnefcondition2']);
// 혜택 종류 마일리지
fn_ctrl_disable_checkbox_at_mlg('#mlgBnefCheckBox', '#mlgBnefDiv');
// 혜택 종류 쿠폰
fn_ctrl_disable_checkbox_at('#couponBnefCheckBox', '#couponBnefDiv');
// 시작, 종료 날짜 제어
fn_set_date('evtBgnDt','evtEndDt','evtEndDt');
fn_create_ckeditor('#evtCn');
}
/* ********************************************************
* 체크박스 여부에 따른 disable 제어 : 체크시 disabled, 체크해제시 enabled
* 파라미터 설명 {
* checkboxSeletor : 체크박스 seletor -> this 작성
* ctrlArea : disable 제어할 영역
* }
}
******************************************************** */
const fn_ctrl_disable_checkbox_at_mlg = function(checkboxSelector, ctrlArea) {
var isChecked = $(checkboxSelector).is(':checked');
if (isChecked == true) {
fn_ctrl_disable([], [ctrlArea]);
var radioValue = $('input[name="mlgPymntBnef"]:checked').val();
if (radioValue === 'immePymnt') {
fn_ctrl_disable(['#mlgRandom'], ['#mlgAmt']);
} else if (radioValue === 'randomPymnt') {
fn_ctrl_disable(['#mlgAmt'], ['#mlgRandom']);
}
} else if (isChecked == false) {
fn_ctrl_disable([ctrlArea]);
}
}
const fn_ctrl_disable_checkbox_at = function(checkboxSelector, ctrlArea) {
var isChecked = $(checkboxSelector).is(':checked');
if (isChecked == true) {
fn_ctrl_disable([], [ctrlArea]);
} else if (isChecked == false) {
fn_ctrl_disable([ctrlArea]);
}
}
/* ********************************************************
* 질문 유형 선택값 반환 함수
******************************************************** */
const fn_qestnr_selected = function() {
var seletedValue = $('#event-type-select').val();
console.log("seletedValue : ", seletedValue);
return seletedValue;
}
/* ********************************************************
* 질문 추가
******************************************************** */
const fn_add_qestnr = function(tableId, seletedValue, thisValue, propCtrl, propBol){
console.log("질문 추가", tableId);
console.log("질문 추가", seletedValue);
if (seletedValue === 'checkbox') {
$('#' + tableId + ' > tbody').append('<br>');
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr[data-eventtype="' + seletedValue + '"]').eq(0).html()+'</tr>');
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr[data-eventtype="' + seletedValue + '"]').eq(1).html()+'</tr>');
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr[data-eventtype="' + seletedValue + '"]').eq(2).html()+'</tr>');
} else {
$('#' + tableId + ' > tbody').append('<br>');
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr[data-eventtype="' + seletedValue + '"]').eq(0).html()+'</tr>');
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr[data-eventtype="' + seletedValue + '"]').eq(1).html()+'</tr>');
}
//요소 값 초기화
$('#' + tableId + ' > tbody > tr:last').find('input').each(function(){
$(this).val(thisValue);
if (propCtrl) {
$(this).prop(propCtrl, propBol);
}
});
$('.delete').each(function(){
this.disabled = false;
});
$('#' + tableId).tableDnDUpdate();
}
/* ********************************************************
* 질문 추가
******************************************************** */
const fn_delete_qestnr = function(tableId) {
}
<%-- /* ********************************************************
* 구간 추가
******************************************************** */
const fn_add_tr = function(tableId, trIndex, thisValue, propCtrl, propBol){
$('#' + tableId + ' > tbody').append('<tr>'+$('#'+tableId+' > tbody').find('tr').eq(trIndex).html()+'</tr>');
//요소 값 초기화
$('#' + tableId + ' > tbody > tr:last').find('input').each(function(){
$(this).val(thisValue);
if (propCtrl) {
if (propBol == 'true'){
$(this).prop(propCtrl, true);
} else if (propBol == 'false') {
$(this).prop(propCtrl, false);
}
}
});
$('.delete').each(function(){
this.disabled = false;
});
$('#' + tableId).tableDnDUpdate();
} --%>
<%-- /* ********************************************************
* 구간 삭제
******************************************************** */
const fn_delete_tr = function(tableId, delLimit) {
let target = event.target;
let trCnt = $('#' + tableId + ' > tbody tr').length
if (delLimit) {
if(trCnt == delLimit){
target.disabled = true;
}
}
} --%>
/* ********************************************************
* 구간 추가 사용자 입력 옵션 ( readonly ) : 관리자가 항목을 작성할 수 없음
******************************************************** */
const fn_add_tr_text = function(standardTb){
$('#'+standardTb+' > tbody').append('<tr>'+$('#'+standardTb+' > tbody').find('tr').eq(0).html()+'</tr>');
//요소 값 초기화
$('#'+standardTb+' > tbody > tr:last').find('input').each(function(){
$(this).val('');
$(this).prop('readonly', true);
});
$('.delete').each(function(){
this.disabled = false;
});
$('#'+standardTb).tableDnDUpdate();
}
/*********************************************************************************
* input
* 조건에 따른 대상input 활성화/비활성화
* 파라미터 설명{
* disArr : 비활성화 대상 input selector배열
* (체크박스의 경우 컨트롤할 영역만 파라미터를 넘겨줘야함 enArr -> [])
* enArr : 활성화 대상 input selector배열
* element : 셀렉터 작성 -> $(this)
* reveresAt : 체크박스일 경우 disable 영역 반전, default -> 체크시 enable
* }
**********************************************************************************/
const fn_ctrl_disable2 = function (disArr, enArr, element, reveresAt) {
const thisType = element.attr('type');
const fn_disable = function(disArr, enArr) {
const propUpdate = function (selector, bool) {
const boolean = bool;
$(selector).find('input, select').each(function () {
let type = this.type;
let tag = this.tagName.toLowerCase();
if (type === 'text' || tag === 'textarea' || type === 'checkbox' || type === 'radio') {
this.disabled = boolean;
} else if (tag === 'select') {
this.disabled = boolean;
$(this).niceSelect('update');
}
});
};
if (disArr != null && disArr.length > 0) {
const isTrue = true;
for (let idx = 0; idx < disArr.length; idx++) {
propUpdate(disArr[idx], isTrue);
}
}
if (enArr != null && enArr.length > 0) {
const isFalse = false;
for (let idx = 0; idx < enArr.length; idx++) {
propUpdate(enArr[idx], isFalse);
}
}
}
if (thisType === 'checkbox') {
var isChecked = element.is(':checked');
if (reveresAt === 'Y') {
if (isChecked == true) {
fn_disable(disArr);
} else if (isChecked == false) {
fn_disable([], disArr);
}
} else {
if (isChecked == true) {
fn_disable([], disArr);
} else if (isChecked == false) {
fn_disable(disArr);
}
}
} else {
fn_disable(disArr, enArr);
}
}
</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">
<button class="btn primary">저장</button>
</div>
</div>
<section class="content-section">
<h3 class="content-section__title">이벤트 정보</h3>
<form>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>이벤트 종류</th>
<td>
<div class="td-inner">
<div class="custom-radio-container radio-tab-trigger" data-radiotab="radio-tab-01">
<c:forEach var="codeList" items="${ resultMap.partcptnEvtDvList }" varStatus="">
<div class="custom-radio">
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>" name="evtDv" <c:if test="${ codeList.cd eq '01' }">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>
<th>이벤트 명<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" id="evtnm" name="evtnm" type="text" title="해당 인풋에 대한 설명" maxlength="79">
</div>
</td>
</tr>
<tr>
<th>이벤트 기간<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="input-container">
<div class="td-inner">
<input type="text" id="evtBgnDt" name="evtBgnDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<div class="timepicker-container">
<input type="text" class="bs-timepicker" id="evtBgnDtTime" name="evtBgnDtTime" title="시간 설정" value="00:00">
</div>
</div>
<span class="tilde">~</span>
<div class="td-inner">
<input type="text" id="evtEndDt" name="evtEndDt" class="datepicker" title="종료 날짜 선택" autocomplete="off">
<div class="timepicker-container">
<input type="text" class="bs-timepicker" id="evtEndDtTime" name="evtEndDtTime" title="시간 설정" value="00:00">
</div>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>이벤트 대상 제한<span class="red-7">*</span></th>
<td colspan="2">
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" id="mbrTrgetAt" name="mbrTrgetAt" value="Y">
<span class="check"></span>
<span class="control-label">
회원
</span>
</label>
<span class="parentheses">(</span>
<div class="b-checkbox-container inner" id="mbrTrgetDiv">
<c:forEach var="codeList" items="${ resultMap.result.gradList }" varStatus="">
<label class="b-checkbox checkbox">
<input type="checkbox" name="mbrTrgetArray" value="<c:out value="${ codeList.mbrGradInnb }"/>">
<span class="check"></span>
<span class="control-label"><c:out value="${ codeList.gradNm }"/></span>
</label>
</c:forEach>
</div>
<span class="parentheses">)</span>
<label class="b-checkbox checkbox">
<input type="checkbox" id="nmbrTrgetAt" name="nmbrTrgetAt" value="Y">
<span class="check"></span>
<span class="control-label">
비회원
</span>
</label>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section">
<h3 class="content-section__title">혜택 설정</h3>
<form>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>즉시지급 혜택</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="r-8" name="r-group04" checked>
<label for="r-8">사용함</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-9" name="r-group04">
<label for="r-9">사용안함</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-10" name="r-group05" checked="checked" onchange="fn_ctrl_disable(['.bnefcondition', '.bnefcondition2'])" >
<label for="r-10">제한없음</label>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-11" name="r-group05" onchange="fn_ctrl_disable(['.bnefcondition2'], ['.bnefcondition'])">
<label for="r-11">
</label>
<div class="bnefcondition">
선착순
<input class="input-text xsm ml-5 number right" value="0"
type="text" title="해당 인풋에 대한 설명">
명까지 지급
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-12" name="r-group05" onchange="fn_ctrl_disable(['.bnefcondition'], ['.bnefcondition2'])">
<label for="r-12">
</label>
<div class="bnefcondition2">
<input class="input-text xsm ml-5 number right" value="0"
type="text" title="해당 인풋에 대한 설명">
마일리지 소진 시 종료
</div>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>혜택 종류<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="" id="mlgBnefCheckBox" onchange="fn_ctrl_disable_checkbox_at_mlg(this, '#mlgBnefDiv'); return false;">
<span class="check"></span>
<span class="control-label">
마일리지
</span>
</label>
<span class="parentheses">(</span>
<div class="custom-radio-container" id="mlgBnefDiv">
<div class="custom-radio inner-input">
<input type="radio" id="r-13" name="mlgPymntBnef" value="immePymnt" checked="" onchange="fn_ctrl_disable2(['#mlgRandom'], ['#mlgAmt'], $(this)); return false;">
<label for="r-13">
</label>
<div id="mlgAmt">
<input class="input-text xsm ml-5 number right"
value="0" type="text" title="해당 인풋에 대한 설명">
마일리지 즉시지급
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-14" name="mlgPymntBnef" value="randomPymnt" onchange="fn_ctrl_disable2(['#mlgAmt'], ['#mlgRandom'], $(this)); return false;">
<label for="r-14">
</label>
<div id="mlgRandom">
<input class="input-text xsm ml-5 number right"
value="0" type="text" title="해당 인풋에 대한 설명">
~
<input class="input-text xsm ml-5 number right"
value="0" type="text" title="해당 인풋에 대한 설명">
마일리지의 랜덤지급
</div>
</div>
</div>
<span class="parentheses">)</span>
<label class="b-checkbox checkbox">
<input type="checkbox" value="" id="couponBnefCheckBox" onchange="fn_ctrl_disable2(['#couponBnefDiv'], [], $(this)); return false;">
<span class="check"></span>
<span class="control-label">
쿠폰
</span>
</label>
<span class="parentheses">(</span>
<div class="select-box" id="couponBnefDiv">
<select title="해당 셀렉트에 대한 설명">
<option>지급할 쿠폰 선택</option>
</select>
</div>
<span class="parentheses">)</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section" id="qestnrSecrion">
<h3 class="content-section__title">이벤트 내용</h3>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>내용<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<textarea class="textarea" id="evtCn" name="evtCn" title="에디터 입력" cols="30" rows="10"></textarea>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="radio-tab-content" id="radio-tab-01">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>퀴즈 힌트</th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
</div>
</td>
</tr>
<tr>
<th>퀴즈 답<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="table-wrapper" id="qestnrDiv">
<table class="table" id="qestnrTable">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody id="qestnrTbody">
<tr>
<th>질문 유형</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" id="event-type-select">
<option value="radio">라디오</option>
<option value="checkbox">체크박스</option>
<option value="dropdown">드롭다운</option>
<option value="short">사용자 입력(단답형)</option>
<option value="long">사용자 입력(장문형)</option>
</select>
</div>
</div>
</td>
</tr>
<!-- 라디오 start -->
<tr class="event-type-select__content" data-eventtype="radio">
<th>질문 (라디오)<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" id="qwerasdf" type="text" title="해당 인풋에 대한 설명">
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="radio">
<th>보기</th>
<td>
<div class="td-inner vertical">
<div class="table-wrapper" style="width: 800px;">
<table class="table vertical tight" id="radioOptionAdd">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col>
<col style="width:14%;">
</colgroup>
<thead>
<tr>
<th>옵션명</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
<tr>
<td class="left">
<div class="input-container w-full">
<div class="custom-radio-container">
<div class="custom-radio inner-input">
<input type="radio" disabled>
<label>
</label>
</div>
</div>
<input class="input-text xl ml-5" value=""
type="text" title="해당 인풋에 대한 설명">
</div>
</td>
<td>
<button class="circle-btn delete" onclick="fn_delete_tr('radioOptionAdd', 1 )">
<span class="visually-hidden">삭제</span>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="manage-btn-container">
<button class="btn xsm outline primary" onclick="fn_add_tr('radioOptionAdd', 0, '', 'readonly', 'false'); return false;">옵션추가</button>
<span class="stone-8 fs-13 mx-3">또는</span>
<button class="btn xsm outline primary" onclick="fn_add_tr('radioOptionAdd', 0, '', 'readonly', 'true')">사용자 입력 옵션추가</button>
</div>
</div>
</td>
</tr>
<!-- 라디오 end -->
<!-- 체크박스 start -->
<tr class="event-type-select__content" data-eventtype="checkbox">
<th>조건</th>
<td>
<div class="td-inner">
최대
<input class="input-text sm number right" type="text"
title="해당 인풋에 대한 설명">
개까지 선택 가능
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="checkbox">
<th>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="Y" name="qestitmCheckBox">
<span class="check"></span>
<span class="control-label">
질문 (체크박스)<span class="red-7">*</span>
</span>
</label>
</div>
</th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="checkbox">
<th>보기</th>
<td>
<div class="td-inner vertical">
<div class="table-wrapper" style="width: 800px;">
<table class="table vertical tight" id="checkOptionAdd">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col>
<col style="width:14%;">
</colgroup>
<thead>
<tr>
<th>옵션명</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
<tr>
<td class="left">
<div class="b-checkbox-container inner">
<label class="b-checkbox checkbox">
<input type="checkbox" value="" disabled>
<span class="check"></span>
<span class="control-label"></span>
</label>
<input class="input-text xl" type="text"
title="해당 인풋에 대한 설명">
</div>
</td>
<td>
<button class="circle-btn delete" onclick="fn_delete_tr('checkOptionAdd', 1)"><span
class="visually-hidden">삭제</span></button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="manage-btn-container">
<button class="btn xsm outline primary" onclick="fn_add_tr('checkOptionAdd', 0, '', 'readonly', 'false'); return false;">옵션추가</button>
<span class="stone-8 fs-13 mx-3">또는</span>
<button class="btn xsm outline primary" onclick="fn_add_tr('checkOptionAdd', 0, '', 'readonly', 'true'); return false;">사용자 입력 옵션추가</button>
</div>
</div>
</td>
</tr>
<!-- 체크박스 end -->
<!-- 드롭다운 start -->
<tr class="event-type-select__content" data-eventtype="dropdown">
<th>질문 (드롭다운)<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="dropdown">
<th>보기</th>
<td>
<div class="td-inner vertical">
<div class="table-wrapper" style="width: 800px;">
<table class="table vertical tight" id="selectOptionAdd">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col>
<col style="width:14%;">
</colgroup>
<thead>
<tr>
<th>옵션명</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
<tr>
<td class="left">
<div class="input-container w-full">
<span>▶</span>
<input class="input-text xl ml-10" value=""
type="text" title="해당 인풋에 대한 설명">
</div>
</td>
<td>
<button class="circle-btn delete" onclick="fn_delete_tr('selectOptionAdd', 1)"><span
class="visually-hidden">삭제</span></button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="manage-btn-container">
<button class="btn xsm outline primary" onclick="fn_add_tr('selectOptionAdd', 0, '', 'readonly', 'false'); return false;">옵션추가</button>
</div>
</div>
</td>
</tr>
<!-- 드롭다운 end -->
<!-- 단답형 start -->
<tr class="event-type-select__content" data-eventtype="short">
<th>질문 (단답형)<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
<div class="b-checkbox-container ml-5">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">필수여부</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="short">
<th>보기</th>
<td>
<div class="td-inner">
<input class="input-text xl" value="" type="text" title="해당 인풋에 대한 설명" disabled>
</div>
</td>
</tr>
<!-- 단답형 end -->
<!-- 장문형 start -->
<tr class="event-type-select__content" data-eventtype="long">
<th>질문 (장문형)<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
<div class="b-checkbox-container ml-5">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">필수여부</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="event-type-select__content" data-eventtype="long">
<th>보기</th>
<td>
<textarea class="textarea" id="longSentence" name="longSentence" title="에디터 입력" cols="30" rows="5" disabled></textarea>
</td>
</tr>
<!-- 장문형 end -->
</tbody>
</table>
</div>
</div>
<div class="form-control-container mt-10">
<div class="left"></div>
<div class="center"></div>
<div class="right"><button class="btn sm dark" onclick="fn_delete_tr('qestnrTable')">질문 삭제</button>
<button class="btn sm primary" onclick="fn_add_qestnr('qestnrTable', fn_qestnr_selected()); return false;">질문 추가</button>
</div>
</div>
</section>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,171 @@
<%@ 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" %>
<%--
Class Name : PartcptnEvtListR.jsp
Description : 참여 이벤트 목록조회 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-11-28 추지훈 최초 생성
--%>
<script>
$(document).ready(function() {
$('select').niceSelect();
});
</script>
<%-- 참여이벤트 목록 조회 영역 START --%>
<section class="content-section">
<form>
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong>720</strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명">
<option value="">최근 가입순</option>
<option value="">마일리지 많은순</option>
<option value="">마일리지 적은순</option>
<option value="">구매금액 많은순</option>
<option value="">구매금액 적은순</option>
<option value="">주문수 많은순</option>
<option value="">주문수 적은순</option>
<option value="">상품후기 많은순</option>
<option value="">상품후기 적은순</option>
<option value="">방문수 많은순</option>
<option value="">방문수 적은순</option>
<option value="">추천수 많은순</option>
<option value="">추천수 적은순</option>
</select>
</div>
<div class="select-box">
<select title="해당 셀렉트에 대한 설명">
<option value="">10개씩</option>
<option value="">50개씩</option>
<option value="">100개씩</option>
<option value="">200개씩</option>
</select>
</div>
</div>
</div>
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button class="btn outline sm">선택 삭제</button>
</div>
<div class="center">
</div>
<div class="right">
<button class="btn outline sm">
<i class="icon icon_excel"></i>
다운로드
</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: auto;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 16%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 14%">
</colgroup>
<thead>
<tr>
<th >
<label class="b-checkbox checkbox is-medium check-all">
<input type="checkbox" class="partcptnCheckBoxAll" value="">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>게시글 제목</th>
<th>종류</th>
<th>노출 상태</th>
<th>노출 기간</th>
<th>참여인원</th>
<th>이벤트 상태</th>
<th>관리</th>
</tr>
</thead>
<tbody>
<tr>
<td class="partcptnCheckBox">
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" class="partcptnCheckBox" value="" onchange="fn_ctr_pCheckbox('.partcptnCheckBoxAll', '.partcptnCheckBox'); return false;">
<span class="check"></span>
</label>
</td>
<td>1</td>
<td class="left">퀴즈 이벤트1</td>
<td>퀴즈</td>
<td>노출</td>
<td>
<span>2021-01-01</span>
<span>~</span>
<span>2021-01-01</span>
</td>
<td>15</td>
<td>진행</td>
<td>
<div class="manage-btn-container">
<button class="btn xsm dark">이벤트 종료</button>
<a href="" class="btn xsm primary outline">수정</a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<div class="pagination__container">
<div class="pagination">
<button disabled class="pagination__item first"><span class="visually-hidden">첫
페이지로</span></button>
<button disabled class="pagination__item prev"><span class="visually-hidden">이전
페이지로</span></button>
<ol class="pagination__number-group">
<li><button class="pagination__item active"><span>1</span></button></li>
<li><button class="pagination__item"><span>2</span></button></li>
<li><button class="pagination__item"><span>3</span></button></li>
<li><button class="pagination__item"><span>4</span></button></li>
<li><button class="pagination__item"><span>5</span></button></li>
<li><button class="pagination__item"><span>6</span></button></li>
<li><button class="pagination__item"><span>7</span></button></li>
<li><button class="pagination__item"><span>8</span></button></li>
<li><button class="pagination__item"><span>9</span></button></li>
<li><button class="pagination__item"><span>10</span></button></li>
</ol>
<button class="pagination__item next"><span class="visually-hidden">다음 페이지로</span></button>
<button class="pagination__item last"><span class="visually-hidden">마지막 페이지로</span></button>
</div>
</div>
<%-- 참여이벤트 목록 조회 영역 END --%>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,188 @@
<%@ 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" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
<script>
$(document).ready(function() {
$('#listForm').on('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$('#searchBtn').trigger("click");
}
});
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
console.log("pageIndex, pageUnit : ", pageIndex, pageUnit);
fn_select_partcptn_evt_list(pageIndex, pageUnit);
});
/******************************************************
* 참여이벤트 목록 조회
*******************************************************/
const fn_select_partcptn_evt_list = function(pageIndex, pageUnit) {
console.log("pageIndex : ", pageIndex);
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : "<c:url value="/mngr/promtn/partcptn/selectPartcptnEvtList"/>",
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
}
});
};
/******************************************************
* 참여이벤트 등록 폼 이동
*******************************************************/
const fn_move_regpage = function() {
$('#listForm').attr('action', '<c:url value="/mngr/promtn/partcptn/selectPartcptnEvtForm"/>');
$('#listForm').attr('method', 'post');
$('#listForm').submit();
};
</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">
<button class="btn primary" type="button" onclick="fn_move_regpage(1); return false;">이벤트 <spring:message code="button.insert"/></button>
</div>
</div>
<form id="listForm" name="listForm" method="post" >
<%-- 참여 이벤트 검색 영역 START --%>
<section class="content-section" id="partcptnSearchSection">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 38%;">
<col style="width: 12%;">
<col style="width: 38%;">
</colgroup>
<tbody>
<tr>
<th>게시글 제목</th>
<td colspan="3">
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명">
</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-1" name="r-group01" checked="">
<label for="r-1">전체</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-2" name="r-group01">
<label for="r-2">설문</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-3" name="r-group01">
<label for="r-3">퀴즈</label>
</div>
</div>
</div>
</td>
<th>노출 상태</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="r-4" name="r-group02" checked="">
<label for="r-4">전체</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-5" name="r-group02">
<label for="r-5">노출</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-6" name="r-group02">
<label for="r-6">미노출</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button class="btn outline">초기화</button>
<button class="btn primary" id="searchBtn" type="button" onkeypress="this.onclick();" onclick="fn_select_partcptn_evt_list(1); return false;">검색</button>
</div>
<div class="right"></div>
</div>
</section>
<%-- 참여 이벤트 검색 영역 END --%>
<%-- 참여 이벤트 목록 영역 --%>
<div id="pageDiv">
</div>
</form>
<%-- 하단 스크롤 완료 시 위로가기 버튼 출력 : 2023-11-30 / 박철민 추가 --%>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>