1918 lines
112 KiB
Plaintext
1918 lines
112 KiB
Plaintext
<%@ 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="spring" uri="http://www.springframework.org/tags" %>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
|
<%--
|
|
Class Name : BbscttDtlR.jsp
|
|
Description :게시글 상세(모바일).jsp
|
|
Modification Information
|
|
|
|
수정일 수정자 수정내용
|
|
------- -------- ---------------------------
|
|
2024-07-24 김혜인 최초 생성
|
|
--%>
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
|
|
<head>
|
|
<jsp:include page="/WEB-INF/views/comm/mobile/Include.jsp"/>
|
|
</head>
|
|
<script>
|
|
$(document).ready(function () {
|
|
if ('scrollRestoration' in history) {
|
|
history.scrollRestoration = 'manual';
|
|
}
|
|
$(window).scrollTop(0);
|
|
/*헤더에 타이틀 set*/
|
|
const title = '<c:out value="${resultMap.bbsInfo.bbsNm}"/>';
|
|
fn_set_header_title(title);
|
|
fn_select_cn();
|
|
// data-micromodal-trigger 속성을 가진 버튼을 클릭하면 해당 ID의 모달이 열림
|
|
// 모달 배경화면 스크롤 방지
|
|
MicroModal.init(
|
|
{
|
|
disableScroll: true,
|
|
awaitCloseAnimation: true,
|
|
});
|
|
|
|
// 상품 가로 슬라이드 (2.5열 슬라이드)
|
|
const twoAndaHalfElements = Array.from(document.querySelectorAll('.product-list-vertical-twoAndaHalf__swiper'));
|
|
|
|
twoAndaHalfElements.forEach((twoAndaHalf, index) => {
|
|
const twoAndaHalfSwiper = new Swiper(twoAndaHalf, {
|
|
spaceBetween: 12,
|
|
slidesPerView: 2.3,
|
|
freeMode: true,
|
|
});
|
|
});
|
|
|
|
fn_collect_bbsctt_event();//게시글 이벤트
|
|
|
|
//비밀번호 확인
|
|
$("#pwChkBtn").on("click", function () {
|
|
const reqAction = $("#reqAction").val();
|
|
if (reqAction.indexOf("CM") > 0) {
|
|
fn_check_password();
|
|
} else {//게시글 비밀번호 체크
|
|
fn_check_bbscttPassword();
|
|
}
|
|
});
|
|
|
|
/*비밀번호 입력안할시 초기화*/
|
|
$("#pwCancelBtn").on("click",function(){
|
|
$("#modalPw").val("");
|
|
});
|
|
|
|
/*댓글 조회 댓글 허용 이벤트인지 확인해야함*/
|
|
const cmAt = '<c:out value = '${resultMap.bbscttInfo.dataMap.cmUseAt}'/>';
|
|
if(cmAt === 'Y'){
|
|
fn_make_cm();
|
|
fn_collect_cm_event();
|
|
}
|
|
|
|
//메인사이트 고유번호 설정 위한 시간차 둠
|
|
setTimeout(function () {
|
|
fn_set_evt_goods_page();
|
|
}, 800);
|
|
});
|
|
|
|
//메인화면 컨텐츠 가져오기
|
|
const fn_set_evt_goods_page = function () {
|
|
const innb = $("#evtGoodsPage").attr("innb");
|
|
if (!fn_is_empty($("#evtGoodsPage").attr("innb"))) { //메인화면 호출시
|
|
$.ajax({
|
|
type: 'get',
|
|
url: '/index',
|
|
data: {
|
|
mainSiteInnb: innb,
|
|
evtPageAt: "Y"
|
|
},
|
|
success: function (data) {
|
|
$("#evtGoodsPage").html(data);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
/*********************************************************
|
|
* 게시글 내용 조회
|
|
*********************************************************/
|
|
const fn_select_cn = function () {
|
|
let bbscttInnb = $("#bbscttInnb").val();
|
|
let bbsId = $("#bbsId").val();
|
|
let sopmalCd = $("#sopmalCd").val();
|
|
$.ajax({
|
|
type: "post",
|
|
url: "<c:url value ='/sopmal/csc/selectBbscttCn'/>",
|
|
contentType: 'application/json',
|
|
data: JSON.stringify({
|
|
bbsId: bbsId,
|
|
bbscttInnb: bbscttInnb,
|
|
sopmalCd: sopmalCd
|
|
}),
|
|
success: function (data) {
|
|
let cn = JSON.parse(data.resBody.result).cn;
|
|
$("#cnDiv").html(cn);
|
|
if ($("#regusrDvCd").val() === '01' || $("#regusrDvCd").val() === '99') {
|
|
$("#cnDiv").css("white-space", "pre-wrap");
|
|
$("#cnDiv").text($("#cnDiv").text().trim());
|
|
} else {
|
|
/*내용 이미지 클래스 부여(가운데 정렬인지 , 아닌지 )*/
|
|
$("#cnDiv").addClass("ck-content");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
/*********************************************************
|
|
*게시글 상세 이벤트 함수 모음
|
|
*********************************************************/
|
|
const fn_collect_bbsctt_event = () => {
|
|
/*내용 ck-content로 넣음*/
|
|
$(".ck-content").find("table").each(function (){
|
|
$(this).css({
|
|
display: 'block',
|
|
'unicode-bidi': 'isolate'
|
|
});
|
|
});
|
|
|
|
//목록 조회
|
|
$("#moveList").on("click",function(){
|
|
fn_move_list();
|
|
});
|
|
|
|
//게시글 추천
|
|
$(document).on("click", ".postLikeBtn--like", function () {
|
|
const recomendDv = 'recommend'
|
|
fn_update_bbsctt_recomend(recomendDv);
|
|
});
|
|
|
|
//게시글 비추천
|
|
$(document).on("click", ".postLikeBtn--dislike", function () {
|
|
const recomendDv = 'nonrecommend'
|
|
fn_update_bbsctt_recomend(recomendDv);
|
|
});
|
|
|
|
//게시글 삭제
|
|
$(document).on("click", "#delBtn", function () {
|
|
fn_select_crud_posbl_at($("#bbscttInnb").val(),'','','D');
|
|
});
|
|
|
|
//게시글 수정
|
|
$(document).on("click", "#moveUpdtBtn", function () {
|
|
fn_select_crud_posbl_at($("#bbscttInnb").val(),'','','U');
|
|
});
|
|
|
|
//이전글 다음글 조회
|
|
$(document).on("click", "#prevBtn, #nextBtn", function () {
|
|
fn_select_crud_posbl_at($(this).val(),'','','R');
|
|
});
|
|
}
|
|
|
|
/*게시글 crud 가능 판단*/
|
|
const fn_select_crud_posbl_at = (bbsctt, idx, pwCnfirmAt, crudDv) => {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectBbscttDtlMovePosblAt"/>',
|
|
data: {
|
|
"bbscttInnb": bbsctt,
|
|
"bbsId": $("#bbsId").val(),
|
|
"pwCnfirmAt": pwCnfirmAt,
|
|
"crudDv": crudDv
|
|
},
|
|
success: function (data) {
|
|
data = JSON.parse(data.resBody.result);
|
|
fn_branch_bbsctt_posble(data, crudDv);
|
|
}
|
|
});
|
|
}
|
|
|
|
//상세보기 가능 판단 여부에 따른 분기 처리
|
|
const fn_branch_bbsctt_posble = (data, actDv) => {
|
|
const moveAt = data.result.moveAt;
|
|
const vo = data.vo;
|
|
if (moveAt === 'YES' || vo.pwCnfirmAt === 'Y') {//본인 o
|
|
if (actDv == 'U') { //수정
|
|
fn_move_updtForm();
|
|
} else if (actDv == 'D') {//삭제
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_delete_bbsctt(onSuccess);//삭제함수
|
|
}, 'confirm_del_alert'
|
|
, '#delCfrmBtn'
|
|
, 'success_del_alert'
|
|
, '#delSuccessBtn'
|
|
, fn_move_list);
|
|
} else if (actDv == 'R_CM') {//댓글 조회
|
|
fn_select_secret_cn(vo.cmIdx, 'cmCn', data);
|
|
} else if (actDv == 'R_ANSW_CM') {//대댓글 조회
|
|
fn_select_secret_cn(vo.cmIdx, 'cmcmCn', data);
|
|
} else if (actDv == 'U_CM') {//댓글 수정
|
|
fn_change_updtMode(data, vo.cmIdx, '');
|
|
} else if (actDv == 'U_ANSW_CM') {//대댓글 수정
|
|
fn_change_updtMode(data, vo.cmIdx, 'Y');
|
|
} else if (actDv == 'D_CM') {//댓글 삭제
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_delete_cm(vo.cmInnb, onSuccess);//삭제함수
|
|
}, 'confirm_del_alert'
|
|
, '#delCfrmBtn'
|
|
, 'success_del_alert'
|
|
, '#delSuccessBtn'
|
|
, fn_make_cm);
|
|
} else {//이전글,다음글 조회
|
|
fn_submit_this(vo.bbscttInnb);
|
|
}
|
|
} else if (moveAt === 'OTHER') {//다른이용자 o
|
|
openModal("reject-modify-cm");
|
|
} else if (moveAt === 'LOGIN') {//로그인 o
|
|
openModal("login_alert");
|
|
} else {//비밀번호
|
|
openModal("confirm_bbsctt_pw");
|
|
$("#modalBbscttInnb").val(vo.bbscttInnb);
|
|
if (actDv.indexOf("CM") > 0) {
|
|
$("#modalCmInnb").val(vo.cmInnb);
|
|
$("#modalIdx").val(vo.cmIdx);
|
|
}
|
|
$("#reqAction").val(actDv);
|
|
$("#modalCrudDv").val(vo.crudDv);
|
|
}
|
|
}
|
|
|
|
/********************************************************************
|
|
* 비밀번호 확인 (조회)
|
|
********************************************************************/
|
|
const fn_check_bbscttPassword = (bbscttInnb, password,pwChkDv) => {
|
|
if (password === '') {
|
|
$("#pwAlert").text("비밀번호를 입력해주세요");
|
|
openModal("incollect-pw-alet");
|
|
} else {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectBbscttComparPassword"/>',
|
|
data: {
|
|
"bbscttInnb": bbscttInnb,
|
|
"password": password
|
|
},
|
|
success: function (data) {
|
|
const result = JSON.parse(data.resBody.result);
|
|
const sknTyCd = $("#sknTyCd").val();
|
|
/*비밀번호 확인 결과*/
|
|
const resultVal = result["pw"];
|
|
if (resultVal > 0) {
|
|
closeModal("confirm_bbsctt_pw");
|
|
fn_select_crud_posbl_at($("#modalBbscttInnb").val(),'', 'Y',$("#modalCrudDv").val());
|
|
}else{
|
|
$("#pwAlert").text("비밀번호가 일치하지 않습니다.");
|
|
openModal("incollect-pw-alet");
|
|
}
|
|
$("#modalPw").val("");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
/*********************************************************
|
|
*목록 이동
|
|
*********************************************************/
|
|
const fn_move_list = () => {
|
|
let form = $("#hiddenForm");
|
|
const reqUrl = $("#reqUrl").val();
|
|
if (reqUrl === 'csc') {
|
|
form.attr("action", "/sopmal/csc/selectCscListForm");
|
|
} else if (reqUrl === 'subPage') {
|
|
form.attr("action", "/sopmal/csc/selectSubPageListForm");
|
|
}
|
|
form.attr("method", "POST");
|
|
form.submit();
|
|
}
|
|
|
|
/*********************************************************
|
|
*이전글 다음글 조회
|
|
*********************************************************/
|
|
const fn_submit_this = (bbscttInnb) => {
|
|
let form = $("#hiddenForm");
|
|
form.attr("action", "/sopmal/csc/selectBbscttDtlInqire");
|
|
form.attr("method", "POST");
|
|
// 게시글 고유번호
|
|
$("#bbscttInnb").val(bbscttInnb);
|
|
form.submit();
|
|
}
|
|
|
|
/*********************************************************
|
|
*게시글 추천,비추천
|
|
*********************************************************/
|
|
const fn_update_bbsctt_recomend = (recomendDv) => {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/updateBbscttRecomendUpdt"/>',
|
|
data: {
|
|
"bbscttInnb": bbscttInnb,
|
|
"recomendDv": recomendDv
|
|
},
|
|
success: function (data) {
|
|
result = JSON.parse(data.resBody.result);
|
|
const resultContent = result["result"];
|
|
$("#bbscttRecomendCnt").text(resultContent.recomendCnt);
|
|
$("#bbscttNonrecomendCnt").text(resultContent.nonrecomendCnt);
|
|
}
|
|
});
|
|
}
|
|
|
|
/*********************************************************
|
|
* 게시글 삭제
|
|
*********************************************************/
|
|
const fn_delete_bbsctt = function (onsuccess) {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const bbsId = $("#bbsId").val();
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/deleteBbscttDel"/>',
|
|
data: {
|
|
"delBbscttInnbArr": bbscttInnb,
|
|
"bbsId": bbsId
|
|
},
|
|
dataType: "json",
|
|
success: function (data) {
|
|
onsuccess();
|
|
}
|
|
});
|
|
}
|
|
/*********************************************************
|
|
* 게시글 수정폼 이동
|
|
*********************************************************/
|
|
const fn_move_updtForm = () => {
|
|
let form = $("#hiddenForm");
|
|
form.attr("action", "/sopmal/csc/selectBbscttUpdtForm");
|
|
form.attr("method", "POST");
|
|
form.submit();
|
|
}
|
|
/**********************************************************************************************************
|
|
* 댓글 서비스 시작
|
|
**********************************************************************************************************/
|
|
|
|
/*****************************************************************************************************************/
|
|
//댓글 이벤트 모음
|
|
const fn_collect_cm_event = () => {
|
|
//댓글 더보기 버튼 이벤트
|
|
$("#cmMoreBtn").on("click", function () {
|
|
fn_make_cm_ajax();
|
|
});
|
|
|
|
// 답글 토글
|
|
$(document).on("click", ".comment-body__reply-button", function () {
|
|
$(this).closest(".comment-body__item").find(".comment-body__nested-container").toggleClass("opened");
|
|
});
|
|
|
|
//답글 접기
|
|
$(document).on("click", ".comment-body__nested-container .close", function () {
|
|
$(this).closest(".comment-body__nested-container").removeClass("opened");
|
|
});
|
|
|
|
//댓글 수정 버튼
|
|
$(document).on("click", ".cmUpdtBtn", function () {
|
|
const cmInnb = $(this).val();
|
|
const idx = $(this).closest(".mainCmContent").index(".mainCmContent");
|
|
fn_select_cm_regusr_cnfirm(cmInnb, idx, 'U_CM','U');
|
|
});
|
|
|
|
//대댓글 수정 버튼
|
|
$(document).on("click", ".cmcmUpdtBtn", function () {
|
|
const cmInnb = $(this).val();
|
|
const idx = $(this).closest(".mainCmContent").index(".mainCmContent");
|
|
fn_select_cm_regusr_cnfirm(cmInnb, idx, 'U_ANSW_CM','U');
|
|
});
|
|
|
|
//비밀 댓글 조회
|
|
$(document).on("click", ".secretCm", function () {
|
|
//타겟 인덱스 찾기
|
|
const idx = $(this).closest(".mainCmContent").index(".mainCmContent");
|
|
//해당 댓글 고유번호 값
|
|
const cmInnb = $(this).val();
|
|
fn_select_cm_regusr_cnfirm(cmInnb, idx, 'R_CM','R');
|
|
});
|
|
|
|
//비밀 대댓글 조회
|
|
$(document).on("click", ".secretCmCm", function () {
|
|
//타겟 인덱스 찾기
|
|
const idx = $(this).parent().index(".cmcmCn");
|
|
//해당 댓글 고유번호 값
|
|
const cmInnb = $(this).val();
|
|
fn_select_cm_regusr_cnfirm(cmInnb, idx, 'R_ANSW_CM','R');
|
|
});
|
|
|
|
//댓글 등록
|
|
$(document).on("click", "#btnCmReg", function () {
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_regist_cm('c','', '',onSuccess);
|
|
}, 'confirm_reg_alert'
|
|
, '#regCfrmBtn'
|
|
, 'success_reg_alert'
|
|
, '#regSuccessBtn'
|
|
);
|
|
});
|
|
|
|
//댓글 수정
|
|
$(document).on("click", ".updtBtn", function () {
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_regist_cm('u', $("#modalIdx").val(), '', onSuccess);
|
|
}, 'confirm_updt_alert'
|
|
, '#updtCfrmBtn'
|
|
, 'success_updt_alert'
|
|
, '#updtSuccessBtn'
|
|
);
|
|
});
|
|
|
|
//대댓글 등록
|
|
$(document).on("click", ".reCreBtn", function () {
|
|
const idx = $(this).closest(".mainCmContent").index(".mainCmContent");
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_regist_cm('rec',idx, 'Y',onSuccess);
|
|
}, 'confirm_reg_alert'
|
|
, '#regCfrmBtn'
|
|
, 'success_reg_alert'
|
|
, '#regSuccessBtn'
|
|
);
|
|
|
|
});
|
|
|
|
//대댓글 수정
|
|
$(document).on("click", ".reUpdtBtn", function () {
|
|
openConfirmModal(function (onSuccess) {
|
|
fn_regist_cm('reu', $("#modalIdx").val(), 'Y', onSuccess);
|
|
}, 'confirm_updt_alert'
|
|
, '#updtCfrmBtn'
|
|
, 'success_updt_alert'
|
|
, '#updtSuccessBtn'
|
|
);
|
|
});
|
|
|
|
//댓글,대댓글 삭제
|
|
$(document).on("click", ".cmDelBtn", function () {
|
|
//댓글 고유번호
|
|
let cmInnb = $(this).val();
|
|
fn_select_cm_regusr_cnfirm(cmInnb, '', 'D_CM','D');
|
|
});
|
|
|
|
//댓글 추천
|
|
$(document).on("click", ".comment-like__btn--like", function () {
|
|
let target = $(this);
|
|
const cmInnb = target.val();
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const recomendDv = 'recommend'
|
|
fn_update_recomend(cmInnb, bbscttInnb, recomendDv, target);
|
|
});
|
|
|
|
//댓글 비추천
|
|
$(document).on("click", ".comment-like__btn--dislike", function () {
|
|
let target = $(this);
|
|
const cmInnb = target.val();
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const recomendDv = 'nonrecommend'
|
|
fn_update_recomend(cmInnb, bbscttInnb, recomendDv, target);
|
|
});
|
|
}
|
|
/*********************************************************
|
|
* 댓글 jsp 호출 (조회)
|
|
*********************************************************/
|
|
const fn_make_cm = (targetIdx) => {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const bbsId = $("#bbsId").val();
|
|
const regusrDvCd = $("#regusrDvCd").val();
|
|
let pageIndex = 1;
|
|
let pageUnit = 10;
|
|
|
|
// cmPageIndex 값을 정수로 변환
|
|
let tempIdx = parseInt($("#cmPageIndex").val(), 10);
|
|
pageUnit = tempIdx * pageUnit;
|
|
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectCmList"/>',
|
|
data: {
|
|
"bbscttInnb": bbscttInnb,
|
|
"bbsId": bbsId,
|
|
"regusrDvCd": regusrDvCd,
|
|
"pageIndex": pageIndex,
|
|
"pageUnit" : pageUnit,
|
|
"slangFlterUseAt" : $("#slangFlterUseAt").val(),
|
|
"authResult" : '<c:out value="${resultMap.bbsctt.authResult}"/>'
|
|
},
|
|
success: function (result) {
|
|
$(".comment-body__area").html(result);
|
|
$("#cmCnt").text($("#cmCntInfo").val());
|
|
|
|
//댓글 - 대댓글 건수 set
|
|
const comment = $(".cmInnb");
|
|
comment.each(function () {
|
|
let commentCnt = $(this).closest(".comment-body__nested-container").find(".commentDiv").length;
|
|
$(this).closest(".comment-body__nested-container").prev(".comment-body__reply-container").find(".commentCnt").text(commentCnt);
|
|
});
|
|
|
|
if (targetIdx !== undefined) {
|
|
$(".comment-body__nested-container").eq(targetIdx).addClass("opened");
|
|
$("#opendAt").val("");
|
|
$("#targetIdx").val("");
|
|
//타겟 스크롤 조정
|
|
var targetDiv = $(".mainCmContent").eq(targetIdx);
|
|
|
|
if (targetDiv.length > 0) {
|
|
var elementTop = targetDiv.offset().top; // targetDiv 요소의 상단 위치
|
|
|
|
$(window).scrollTop(elementTop); // 화면을 targetDiv 요소의 상단으로 스크롤
|
|
}
|
|
}
|
|
|
|
/*댓글 개수가 10보다 작을 시 더보기 버튼 hide*/
|
|
if($("#cmCntInfo").val() < 10) {
|
|
$("#cmMoreBtn").hide();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/*********************************************************
|
|
* 댓글 목록 ajax 호출 (더보기)
|
|
*********************************************************/
|
|
const fn_make_cm_ajax = () => {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const cmPageIndx = parseInt($("#cmPageIndex").val()) + 1;
|
|
let cmPageUnit = 10;
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectCmListAjax"/>',
|
|
data: {
|
|
"bbscttInnb": bbscttInnb,
|
|
"pageIndex": cmPageIndx,
|
|
"pageUnit": cmPageUnit
|
|
},
|
|
success: function (data) {
|
|
const result = JSON.parse(data.resBody.result);
|
|
$("#cmPageIndex").val(cmPageIndx);
|
|
const cmList = result.cmList;
|
|
fn_make_cm_html(cmList);
|
|
}
|
|
});
|
|
}
|
|
|
|
/*댓글 조회 ajax값 html으로 생성*/
|
|
const fn_make_cm_html = (data) => {
|
|
if (data.cmList.length < 10) { /*페이지 유닛보다 작으면 더보기 버튼 hide처리*/
|
|
$("#cmMoreBtn").hide();
|
|
}
|
|
let list = ``;
|
|
const cmAnsw = data.cmAnswList;
|
|
const bbscttEvlRecomentStep = $("#bbscttEvlRecomendStep").val();
|
|
const cmEvlUseAt = '<c:out value = "${resultMap.bbsInfo.cmEvlUseAt}"/>';
|
|
data.cmList.forEach(function(item) {
|
|
let cmUser = ``;
|
|
if (item.regusrDvCd === '99') {
|
|
cmUser = `\${item.maskingRegusrNm}`;
|
|
} else if (item.regusrDvCd === '02') {
|
|
cmUser = `\${item.mngrNm}`;
|
|
} else if (item.wrterIndictTyCd === '01' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.regusrId}(\${item.mbrGradNm}")`;
|
|
} else if (item.wrterIndictTyCd === '02' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.maskingRegusrId}`;
|
|
} else if (item.wrterIndictTyCd === '03' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.maskingRegusrNm}(\${item.mbrGradNm})`;
|
|
} else if (item.wrterIndictTyCd === '04' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.maskingRegusrNm}`;
|
|
} else if (item.wrterIndictTyCd === '05' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.maskingRegusrNm}(\${item.maskingRegusrId},\${item.mbrGradNm})`;
|
|
} else if (item.wrterIndictTyCd === '06' && item.regusrDvCd === '01') {
|
|
cmUser = `\${item.maskingRegusrNm}(\${item.regusrId})`;
|
|
}
|
|
|
|
/*새 댓글 여부*/
|
|
let cmNewAt = ``;
|
|
if (item.newAt === 'Y') {
|
|
cmNewAt = `<i class="icon icon_new-post"></i>`;
|
|
}
|
|
|
|
/*댓글 삭제 여부*/
|
|
let cmUseAt = ``;
|
|
if(item.useAt === 'Y'){
|
|
cmUseAt = `<div class="comment-body__info-right">
|
|
<button type="button" class="comment-body__button cmUpdtBtn" value="\${item.cmInnb}">수정
|
|
</button>
|
|
<button type="button" class="comment-body__button cmDelBtn" value="\${item.cmInnb}">삭제
|
|
</button>
|
|
</div>`;
|
|
}
|
|
|
|
/*댓글 내용 분기문으로 인한 3단계*/
|
|
let cmContent_step_1 = ``;
|
|
const mbrInnb = '<c:out value="${resultMap.bbsctt.regusr}"/>';
|
|
let cn = escapeHTML(item.cn);
|
|
if (item.regusr === mbrInnb) {
|
|
cmContent_step_1 = `<p class="cmCn" style="white-space: pre-wrap;"><i class="icon icon_lock"></i>\${cn}</p>`;
|
|
} else {
|
|
cmContent_step_1 = `<p class="cmCn" style="white-space: pre-wrap;"><i class="icon icon_lock"></i><button class="comment-body__privateComment comment-body__button secretCm cmCn" value="\${item.cmInnb}">비밀 댓글입니다.</button></p>`;
|
|
}
|
|
let cmContent_step_2 = ``;
|
|
if(item.secretBbscttAt === 'Y'){
|
|
cmContent_step_2 = cmContent_step_1;
|
|
}else{
|
|
cmContent_step_2 = `<p class="cmCn" style="white-space: pre-wrap;">\${cn}</p>`;
|
|
}
|
|
let cmContent_step_3 = ``;
|
|
if(item.useAt === 'Y'){
|
|
cmContent_step_3 = cmContent_step_2;
|
|
}else{
|
|
cmContent_step_3 = '삭제된 댓글 입니다.';
|
|
}
|
|
|
|
<%--게시판설정(댓글평가추천단계-비추천사용)--%>
|
|
let cmNonRecommendCn = ``;
|
|
let cmRecommendCn = ``;
|
|
if(cmEvlUseAt === 'Y'){
|
|
if (bbscttEvlRecomentStep === '02') {
|
|
cmNonRecommendCn = `<button class="comment-like__btn comment-like__btn--dislike" value = "\${item.cmInnb}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
viewBox="0 0 20 20" fill="none">
|
|
<path
|
|
d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="comment-like__number nonrecomendCnt">\${item.nonrecomendCnt}</span>
|
|
</button>`;
|
|
}
|
|
cmRecommendCn = `<div class="comment-like">
|
|
<button class="comment-like__btn comment-like__btn--like" value = "\${item.cmInnb}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
viewBox="0 0 20 20" fill="none">
|
|
<path
|
|
d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="comment-like__number recomendCnt">\${item.recomendCnt}</span>
|
|
</button>
|
|
\${cmNonRecommendCn}
|
|
</div>
|
|
`;
|
|
}
|
|
<%--댓글 별 답글 리스트--%>
|
|
let answCmDiv = ``;
|
|
let answCmPassword = ``;
|
|
/*비회원 일 경우 비밀번호 노출*/
|
|
if($("#regusrDvCd").val() === '99'){
|
|
answCmPassword = `<div class="comment-write__info-item password">
|
|
<input type="password" class="comment-write__info-input"
|
|
maxlength="25"
|
|
placeholder="비밀번호를 입력하세요." title="비밀번호 입력" name="password">
|
|
</div>`;
|
|
}
|
|
/*작성자 input 요소*/
|
|
let answCmRegusrNm = ``;
|
|
/*회원 이름*/
|
|
const regusrNm = $("#regusrNm").val();
|
|
if($("#regusrNm").val() !== undefined) {
|
|
answCmRegusrNm = `<input type="text" class="comment-write__info-input" maxLength="25" placeholder="이름을 입력하세요." title="이름 입력" name="regusrNm" value="\${regusrNm}"/>`;
|
|
}else{
|
|
answCmRegusrNm = `<input type="text" class="comment-write__info-input" maxLength="25" placeholder="이름을 입력하세요." title="이름 입력" name="regusrNm"/>`;
|
|
}
|
|
|
|
/*답글 리스트*/
|
|
let answCmList = ``;
|
|
let cmAnswCnt = 0;
|
|
if(cmAnsw !== null){
|
|
cmAnsw.forEach(function(answ){
|
|
if(answ.parntsCmInnb == item.cmInnb) {
|
|
let answUser = ``;
|
|
cmAnswCnt = ++cmAnswCnt;
|
|
if (answ.regusrDvCd === '99') {
|
|
answUser = `\${answ.aRegusrNm}`;
|
|
} else if (answ.regusrDvCd === '02') {
|
|
answUser = `\${answ.mngrNm}`;
|
|
} else if (answ.wrterIndictTyCd === '01' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.regusrId}(\${answ.mbrGradNm}")`;
|
|
} else if (answ.wrterIndictTyCd === '02' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.regusrId}`;
|
|
} else if (answ.wrterIndictTyCd === '03' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.aRegusrNm}(\${answ.mbrGradNm})`;
|
|
} else if (answ.wrterIndictTyCd === '04' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.aRegusrNm}`;
|
|
} else if (answ.wrterIndictTyCd === '05' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.aRegusrNm}(\${answ.regusrId},\${answ.mbrGradNm})`;
|
|
} else if (answ.wrterIndictTyCd === '06' && answ.regusrDvCd === '01') {
|
|
answUser = `\${answ.aRegusrNm}(\${answ.regusrId})`;
|
|
}
|
|
let answNewAt = ``;
|
|
if (answ.newAt === 'Y') {
|
|
answNewAt = `<i class="icon icon_new-post"></i>`;
|
|
}
|
|
/*댓글 삭제 여부*/
|
|
let answUseAt = ``;
|
|
if (answ.useAt === 'Y') {
|
|
answUseAt = `<div class="comment-body__info-right">
|
|
<button type="button" class="comment-body__button cmcmUpdtBtn"
|
|
value="\${answ.cmInnb}"
|
|
password-at='Y'
|
|
regusr='\${answ.regusr}'
|
|
re-at="Y">수정
|
|
</button>
|
|
<button type="button" class="comment-body__button cmDelBtn"
|
|
value="\${answ.cmInnb}"
|
|
password-at='Y'
|
|
regusr='\${answ.regusr}'
|
|
re-at="Y">삭제
|
|
</button>
|
|
</div>`;
|
|
}
|
|
|
|
/*댓글 내용 분기문으로 인한 3단계*/
|
|
let answContent_step_1 = ``;
|
|
const mbrInnb = $("#regusr").val();
|
|
let answCn = escapeHTML(answ.cn);
|
|
if (answ.regusr === mbrInnb) {
|
|
answContent_step_1 = `<p class="cmCn"><i class="icon icon_lock"></i>\${answ.cn}</p>`;
|
|
} else {
|
|
answContent_step_1 = `<p class="cmCn">
|
|
<i class="icon icon_lock"></i>
|
|
<button class="comment-body__privateComment comment-body__button secretCm cmCn" value="\${answ.cmInnb}">
|
|
비밀 댓글입니다.
|
|
</button>
|
|
<input type="hidden" value="\${answ.cn}">
|
|
</p>`;
|
|
}
|
|
|
|
let answContent_step_2 = ``;
|
|
if (answ.secretBbscttAt === 'Y') {
|
|
answContent_step_2 = answContent_step_1;
|
|
} else {
|
|
answContent_step_2 = `<p class="cmCn">\${answCn}</p>`;
|
|
}
|
|
|
|
let answContent_step_3 = ``;
|
|
if (answ.useAt === 'Y') {
|
|
answContent_step_3 = answContent_step_2;
|
|
} else {
|
|
answContent_step_3 = '삭제된 댓글 입니다.';
|
|
}
|
|
<%--게시판설정(댓글평가추천단계-비추천사용)--%>
|
|
let answNonRecommendCn = ``;
|
|
let answRecommendCn = ``;
|
|
if(cmEvlUseAt === 'Y'){
|
|
answRecommendCn = `<div class="comment-like">
|
|
<button class="comment-like__btn comment-like__btn--like" value = "\${answ.cmInnb}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
viewBox="0 0 20 20" fill="none">
|
|
<path
|
|
d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="comment-like__number recomendCnt">\${answ.recomendCnt}</span>
|
|
</button>
|
|
${answNonRecommendCn}
|
|
</div>`;
|
|
if (bbscttEvlRecomentStep === '02') {
|
|
answNonRecommendCn = `<button class="comment-like__btn comment-like__btn--dislike" value = "\${answ.cmInnb}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
viewBox="0 0 20 20" fill="none">
|
|
<path
|
|
d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="comment-like__number nonrecomendCnt">\${answ.nonrecomendCnt}</span>
|
|
</button>`;
|
|
}
|
|
}
|
|
|
|
answCmList += `<div class="comment-body__item replyCmDiv">
|
|
<div class="comment-body__info">
|
|
<div class="comment-body__info-left">
|
|
<i class="icon icon_comment-user"></i>
|
|
<span class="comment-body__user">
|
|
\${answUser}
|
|
</span>
|
|
<span class="comment-body__date">\${answ.registDt}</span>
|
|
\${answNewAt}
|
|
</div>
|
|
\${answUseAt}
|
|
</div>
|
|
<div class="comment-body__content replyCmDiv">
|
|
\${answContent_step_3}
|
|
</div>
|
|
|
|
</div>
|
|
<div class="dtlCmDiv">
|
|
<input type="hidden" name="secretBbscttAt" value="${item.secretBbscttAt}">
|
|
</div>`;
|
|
}
|
|
});
|
|
}
|
|
|
|
/*답글 영역*/
|
|
answCmDiv = `<div class="comment-body__nested-container">
|
|
\${answCmList}
|
|
<div class="comment-body__item replyWriteDiv">
|
|
<div class="comment-write">
|
|
<div class="comment-write__textarea-container">
|
|
<textarea class="comment-write__textarea"
|
|
placeholder="댓글을 입력하세요."
|
|
title="댓글 입력"
|
|
name="cn"></textarea>
|
|
</div>
|
|
<div class="comment-write__bottom">
|
|
<div class="comment-write__info">
|
|
<div class="comment-write__info-inner">
|
|
<div class="comment-write__info-item">
|
|
\${answCmRegusrNm}
|
|
</div>
|
|
\${answCmPassword}
|
|
</div>
|
|
</div>
|
|
<div class="comment-write__controls">
|
|
<div class="b-checkbox-container">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" value="Y" name="secretBbscttAt">
|
|
<span class="check"></span>
|
|
<span class="control-label">비밀 댓글</span>
|
|
</label>
|
|
</div>
|
|
<button class="btn sm theme reCreBtn"
|
|
value="\${item.cmInnb}">
|
|
<spring:message code="button.insert"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" name="bbscttInnb" value="\${item.bbscttInnb}"/>
|
|
<input type="hidden" name="bbsId" value="\${item.bbsId}"/>
|
|
<input type="hidden" name="cmInnb" value="\${item.cmInnb}" class="cmInnb"/>
|
|
<div class="comment-body__item close" tabindex="0">
|
|
답글접기
|
|
</div>
|
|
</div>`;
|
|
|
|
/*댓글영역(답글영역 포함)*/
|
|
list += `<div class="comment-body__item mainCmContent">
|
|
<div class="comment-body__info">
|
|
<div class="comment-body__info-left">
|
|
<i class="icon icon_comment-user"></i>
|
|
<span class="comment-body__user">
|
|
\${cmUser}
|
|
</span>
|
|
<span class="comment-body__date">\${item.registDt}</span>
|
|
\${cmNewAt}
|
|
</div>
|
|
\${cmUseAt}
|
|
</div>
|
|
<div class="comment-body__content cmDiv">
|
|
\${cmContent_step_3}
|
|
<div class="dtlCmDiv">
|
|
<input type="hidden" name="secretBbscttAt" value="\${item.secretBbscttAt}"/>
|
|
<input type="hidden" name="regusrNm" value="\${item.regusrNm}"/>
|
|
</div>
|
|
</div>
|
|
<div class="comment-body__reply-container">
|
|
<button class="comment-body__reply-button">답글 <em class="commentCnt">\${cmAnswCnt}</em></button>
|
|
<div class="comment-like">
|
|
\${cmRecommendCn}
|
|
</div>
|
|
</div>
|
|
\${answCmDiv}
|
|
</div>`;
|
|
});
|
|
$(".comment-body__area").append(list);
|
|
}
|
|
/********************************************************************
|
|
* 댓글 비밀번호 확인
|
|
********************************************************************/
|
|
const fn_check_password = () => {
|
|
const password = $("#modalPw").val();
|
|
if (password === '' || password === undefined) {
|
|
$("#pwAlert").text("비밀번호를 입력해주세요");
|
|
openModal("incollect-pw-alet");
|
|
} else {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectComparPassword"/>',
|
|
data: {
|
|
"cmInnb": $("#modalCmInnb").val(),
|
|
"password": password
|
|
},
|
|
success: function (data) {
|
|
const result = JSON.parse(data.resBody.result);
|
|
/*비밀번호 확인 결과*/
|
|
const resultVal = result["pw"];
|
|
if (resultVal > 0) {
|
|
closeModal("confirm_bbsctt_pw");
|
|
fn_select_cm_regusr_cnfirm($("#modalCmInnb").val(),$("#modalIdx").val(),$("#reqAction").val(),'Y');
|
|
} else {
|
|
$("#pwAlert").text("비밀번호가 일치하지 않습니다.");
|
|
openModal("incollect-pw-alet");
|
|
}
|
|
/*모달 내 값 초기화*/
|
|
$("#modalPw").val("");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
/*******************************
|
|
* 비밀 댓글 조회
|
|
*********************************/
|
|
const fn_select_secret_cn = (cmIdx, cmDv, data) => {
|
|
data = escapeHTML(data.dtl);
|
|
$("." + cmDv).eq(cmIdx).html(data.cn);
|
|
}
|
|
|
|
/*********************************************************
|
|
* 비밀 댓글 조회
|
|
*********************************************************/
|
|
const fn_select_cm_regusr_cnfirm = (cmInnb, idx, actDv, pwCnfirmAt,crudDv) => {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/selectCmRegusrCnfirm"/>',
|
|
data: {
|
|
"bbscttInnb": bbscttInnb,
|
|
"cmInnb": cmInnb,
|
|
"cmIdx": idx,
|
|
"pwCnfirmAt": pwCnfirmAt,
|
|
"crudDv" : crudDv
|
|
},
|
|
success: function (data) {
|
|
data = JSON.parse(data.resBody.result);
|
|
fn_branch_bbsctt_posble(data, actDv,crudDv);
|
|
}
|
|
});
|
|
};
|
|
/*********************************************************
|
|
* 댓글 수정모드 전환 : 조회된 값 수정폼에 값 세팅
|
|
*********************************************************/
|
|
function fn_change_updtMode(data, idx, reDiv) {
|
|
//댓글 수정
|
|
if (reDiv !== 'Y') {
|
|
const target = $(".mainCmCn").eq(idx);
|
|
target.empty();
|
|
data = data.dtl;
|
|
let passwordAt = '';
|
|
if (data.password !== '') {
|
|
passwordAt = 'Y';
|
|
}
|
|
let chkAt = ``;
|
|
/*비밀 글 여부*/
|
|
if (data.secretBbscttAt === 'Y') {
|
|
chkAt = `<input type="checkbox" value="Y" name="secretBbscttAt" checked>`;
|
|
} else {
|
|
chkAt = `<input type="checkbox" value="Y" name="secretBbscttAt">`;
|
|
}
|
|
let cn = escapeHTML(data.cn);
|
|
let updtHtml = `<div class="comment-edit">
|
|
<div class="comment-edit__textarea-container">
|
|
<textarea class="comment-edit__textarea" rows="5"
|
|
placeholder="댓글을 입력하세요." name="cn"
|
|
title="댓글 입력">\${cn}\</textarea>
|
|
</div>
|
|
<div class="comment-write__controls">
|
|
<div class="b-checkbox-container">
|
|
<label class="b-checkbox checkbox secretBbscttAt">
|
|
\${chkAt}
|
|
<span class="check"></span>
|
|
<span class="control-label">비밀 댓글</span>
|
|
</label>
|
|
</div>
|
|
<button class="btn sm theme outline updtBtn" value="\${data.cmInnb}">수정
|
|
</button>
|
|
</div>
|
|
</div>`;
|
|
target.html(updtHtml);
|
|
} else { //대댓글 수정
|
|
const target = $(".cnWriteDiv").eq(idx);
|
|
data = data.dtl;
|
|
target.find("textarea[name='cn']").html(escapeHTML(data.cn));
|
|
target.find("input[name='regusrNm']").val(data.regusrNm);
|
|
if (data.secretBbscttAt === 'Y') {
|
|
target.find("input[name='secretBbscttAt']").prop("checked", true);
|
|
} else {
|
|
target.find("input[name='secretBbscttAt']").prop("checked", false);
|
|
}
|
|
target.find(".cmInputPw").hide(); //비밀번호 폼 입력란 숨김
|
|
const targetEle = target.find(".reCreBtn");//등록버튼 요소
|
|
targetEle.text("<spring:message code="button.update"/>");//등록 -> 수정 변경
|
|
targetEle.removeClass("reCreBtn"); //등록 클래스 삭제
|
|
targetEle.addClass("reUpdtBtn"); //수정 클래스 변경
|
|
targetEle.val(data.cmInnb); //수정 버튼에 고유번호 set
|
|
|
|
//타겟 스크롤 조정
|
|
if (target.length > 0) {
|
|
var viewportCenter = $(window).scrollTop() + ($(window).height() / 2); // 뷰포트 세로 중앙 위치 계산
|
|
var elementCenter = target.offset().top + (target.outerHeight() / 2); // 요소의 세로 중앙 위치 계산
|
|
|
|
var scrollToPosition = elementCenter - viewportCenter;
|
|
|
|
$(window).scrollTop($(window).scrollTop() + scrollToPosition); // 스크롤 위치 바로 조정
|
|
}
|
|
}
|
|
}
|
|
/*********************************************************
|
|
* 댓글 등록,수정
|
|
*********************************************************/
|
|
const fn_regist_cm = function (cmDiv, idx, opendAt,onsucces) {
|
|
let url = '';
|
|
//댓글 등록, 수정 구분
|
|
if (cmDiv == 'u' || cmDiv == 'reu') {
|
|
url = '<c:url value="/sopmal/csc/updateBbscttCmUpdt"/>';
|
|
}else{
|
|
url = '<c:url value="/sopmal/csc/insertBbscttCmRegist"/>';
|
|
}
|
|
//submit
|
|
let formData = new FormData();
|
|
let bbscttInnb = $('#bbscttInnb').val();
|
|
let bbsId = $('#bbsId').val();
|
|
let setupInfoInnb = $('#setupInfoInnb').val();
|
|
let regusrDvCd = $('#regusrDvCd').val();
|
|
let cn = '';
|
|
let secretBbscttAt = '';
|
|
let cmInnb = '';
|
|
let regusrNm = '';
|
|
let password = '';
|
|
let parntsCmInnb = '';
|
|
//수정
|
|
if (cmDiv == 'u') {
|
|
let target = $(".mainCmContent").eq(idx).find(".comment-body__content");
|
|
cmInnb = target.find(".updtBtn").val();
|
|
cn = target.find(".comment-edit__textarea-container").find("[name='cn']").val();
|
|
if( target.find(".secretBbscttAt").find("input[name='secretBbscttAt']").is("checked")){
|
|
secretBbscttAt = 'Y';
|
|
}else{
|
|
secretBbscttAt = 'N';
|
|
}
|
|
regusrNm = 'tempNm';
|
|
password = 'temp';
|
|
} //등록
|
|
else if (cmDiv == 'c') {
|
|
cn = $("#cmInputCn").val();
|
|
if ($("#secretChk").is(":checked")) {
|
|
secretBbscttAt = 'Y';
|
|
} else {
|
|
secretBbscttAt = 'N'
|
|
}
|
|
regusrNm = $("#cmInputNm").val();
|
|
password = $("#cmInputPw").val();
|
|
if (password === undefined) {
|
|
password = '';
|
|
}
|
|
}
|
|
//대댓글 등록
|
|
else if (cmDiv == 'rec' || cmDiv == 'reu') {
|
|
let target = $(".mainCmContent").eq(idx);
|
|
cn = target.find(".comment-write").find("textarea[name='cn']").val();
|
|
regusrNm = target.find(".comment-write__info-item").find("input[name='regusrNm']").val();
|
|
password = target.find(".comment-write__info-item").find("input[name='password']").val();
|
|
if (cmDiv == 'rec') {
|
|
if (password === undefined) {
|
|
password = '';
|
|
}
|
|
}
|
|
let secretChk = target.find(".comment-write").find("input[name='secretBbscttAt']");
|
|
if (secretChk.is(":checked")) {
|
|
secretBbscttAt = secretChk.val();
|
|
} else {
|
|
secretBbscttAt = 'N'
|
|
}
|
|
if(cmDiv == 'rec'){
|
|
cmInnb = target.find(".cmInnb").val();
|
|
}else{
|
|
cmInnb = $(".cnWriteDiv").eq(idx).find(".reUpdtBtn").val();
|
|
}
|
|
}
|
|
|
|
formData.append('bbscttInnb', bbscttInnb);
|
|
formData.append('bbsId', bbsId);
|
|
formData.append('cn', cn);
|
|
formData.append('secretBbscttAt', secretBbscttAt);
|
|
formData.append('regusrNm', regusrNm);
|
|
formData.append('password', password);
|
|
formData.append('regusrDvCd', regusrDvCd);
|
|
formData.append('setupInfoInnb', setupInfoInnb);
|
|
if (cmDiv == 'u' || cmDiv == 'rec' || cmDiv == 'reu') {
|
|
formData.append('cmInnb', cmInnb);
|
|
}
|
|
let modalNm = "";
|
|
if (cmDiv == 'c' || cmDiv == 'rec') {
|
|
modalNm = 'confirm_reg_alert';
|
|
} else {
|
|
modalNm = 'confirm_updt_alert';
|
|
}
|
|
closeModal(modalNm);
|
|
$.ajax({
|
|
type: 'post',
|
|
url: url,
|
|
data: formData,
|
|
processData: false,
|
|
contentType: false,
|
|
success: function (data) {
|
|
onsucces();
|
|
let target = $(".mainCmContent").eq(idx);
|
|
//내용 초기화
|
|
if (cmDiv == 'c') {
|
|
$("#cmInputCn").val("");
|
|
$("#cmInputPw").val("");
|
|
$("#secretChk").prop("checked",false);
|
|
}else{
|
|
target.find(".comment-write").find(".cmInputCn").find('[name=cn]').val('');
|
|
target.find(".comment-write").find('.cmInputPw').find('[name=password]').val('');
|
|
target.find(".comment-write").find('.secretBbscttAt').find('[name=secretBbscttAt]').prop('checked', false);
|
|
}
|
|
if (opendAt === 'Y') {
|
|
fn_make_cm(idx);
|
|
} else {
|
|
fn_make_cm();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/*********************************************************
|
|
* 댓글 삭제
|
|
*********************************************************/
|
|
const fn_delete_cm = function (cmInnb,onsuccess) {
|
|
const bbscttInnb = $("#bbscttInnb").val();
|
|
const bbsId = $("#bbsId").val();
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/deleteBbscttCmDel"/>',
|
|
data: {
|
|
"delCmInnbArr": cmInnb,
|
|
"bbscttInnb": bbscttInnb,
|
|
"bbsId": bbsId
|
|
},
|
|
dataType: "json",
|
|
success: function (data) {
|
|
onsuccess();
|
|
}
|
|
});
|
|
}
|
|
|
|
/*********************************************************
|
|
* 댓글 평가
|
|
추천,비추천
|
|
cmInnb : 댓글 고유번호,
|
|
bbscttInnb : 게시글 고유번호
|
|
recomendDv : 평가 구분 ('recommend' or 'nonRecommend')
|
|
*********************************************************/
|
|
const fn_update_recomend = (cmInnb, bbscttInnb, recomendDv, target) => {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/sopmal/csc/updateCmRecomendUpdt"/>',
|
|
data: {
|
|
"cmInnb": cmInnb,
|
|
"bbscttInnb": bbscttInnb,
|
|
"recomendDv": recomendDv
|
|
},
|
|
success: function (data) {
|
|
const result = JSON.parse(data.resBody.result);
|
|
const resultContent = result["result"];
|
|
target.closest(".comment-like").find(".recomendCnt").text(resultContent.recomendCnt);
|
|
target.closest(".comment-like").find(".nonrecomendCnt").text(resultContent.nonrecomendCnt);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
// 로그인이동
|
|
const fn_move_goodsDtl_login = () => {
|
|
const hiddenFormLogin = document.createElement('form');
|
|
hiddenFormLogin.name = 'hiddenFormLogin';
|
|
hiddenFormLogin.id = 'hiddenFormLogin';
|
|
|
|
const currentUrlInput = document.createElement('input');
|
|
currentUrlInput.type = 'hidden';
|
|
currentUrlInput.name = 'currentUrl';
|
|
currentUrlInput.value = window.location.href; // 현재 URL 추가
|
|
hiddenFormLogin.appendChild(currentUrlInput);
|
|
|
|
hiddenFormLogin.method = 'post';
|
|
hiddenFormLogin.action = '/sopmal/mbr/selectUsrLoginForm';
|
|
const formData = new FormData();
|
|
document.body.appendChild(hiddenFormLogin);
|
|
|
|
$(hiddenFormLogin).submit();
|
|
$(hiddenFormLogin).remove();
|
|
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<body>
|
|
<%--게시글 정보--%>
|
|
<c:set value="${resultMap.bbscttInfo.dataMap}" var="bbscttInfo"/>
|
|
<%--추가문항답변--%>
|
|
<c:set value = "${resultMap.bbscttInfo.qesitmAnswList}" var = "qesitmAnswList"/>
|
|
<%--vo--%>
|
|
<c:set value="${resultMap.bbsctt}" var="bbscttVO"/>
|
|
<%--게시판 설정 --%>
|
|
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
|
|
<%--게시글 연관상품--%>
|
|
<c:set value="${resultMap.goodsList.goodsList}" var="goodsList"/>
|
|
<%--게시글 파일정보--%>
|
|
<c:set value="${resultMap.bbscttInfo.fileInfo}" var="fileInfo"/>
|
|
<%--게시글 스크립트 첨부--%>
|
|
<c:out value="${bbscttInfo.cnScript}" escapeXml="false"/>
|
|
<!-- 메인 컨텐츠 영역 -->
|
|
<div class="screen-wrap">
|
|
<!-- 헤더 영역 -->
|
|
<header class="header header--sub">
|
|
<jsp:include page="/WEB-INF/views/comm/mobile/Header.jsp"/>
|
|
</header>
|
|
<!-- 하단 탭바 -->
|
|
<jsp:include page="/WEB-INF/views/comm/mobile/TabBar.jsp"/>
|
|
<!-- 메인 컨텐츠 -->
|
|
<div class="content-wrap">
|
|
<main class="main">
|
|
<div class="sub-page">
|
|
<div class="sub-box">
|
|
<div class="eventDetail">
|
|
<input type="hidden" id="mbrInnb" value="${resultMap.bbsctt.regusr}">
|
|
<%--게시글 제목 영역--%>
|
|
<div class="eventDetail__top">
|
|
<h4 class="eventDetail__title">
|
|
<c:choose>
|
|
<c:when test = "${bbscttInfo.regusrDvCd ne '02'}">
|
|
<c:out value ="${bbscttInfo.sj}"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:out value ="${bbscttInfo.sj}" escapeXml="false"/>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<c:if test="${bbscttInfo.isfiles eq 1}"><%--첨부파일여부--%>
|
|
<i class="icon icon_image-badge"></i>
|
|
</c:if>
|
|
<c:if test="${bbscttInfo.newAt eq 'Y'}"><%--새로운게시글여부--%>
|
|
<i class="icon icon_new-post"></i>
|
|
</c:if>
|
|
<c:if test="${bbscttInfo.popularAt eq 'Y'}"><%--인기게시글여부--%>
|
|
<i class="icon icon_hot-post"></i>
|
|
</c:if>
|
|
<c:if test="${ bbscttInfo.secretBbscttAt eq 'Y' }"><%--비밀글여부--%>
|
|
<i class="icon icon_lock"></i>
|
|
</c:if>
|
|
</h4>
|
|
<ul class="eventDetail__list">
|
|
<li><c:out value="${bbscttInfo.sumRegistDt}"/></li>
|
|
<li>조회 <c:out value="${bbscttInfo.inqireCnt}"/></li>
|
|
<li>
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.regusrDvCd eq '99'}">
|
|
<c:out value="${ bbscttInfo.maskingRegusrNm}"/>[비회원]
|
|
</c:when>
|
|
<c:when test="${bbscttInfo.regusrDvCd eq '03' && not empty bbscttInfo.npayBbscttSnb}">
|
|
naverpay
|
|
</c:when>
|
|
<c:when test="${bbscttInfo.regusrDvCd eq '02'}">
|
|
<c:out value="${ bbscttInfo.mngrNm}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '01' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.regusrId}"/>
|
|
(<c:out value="${ bbscttInfo.mbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '02' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.regusrId}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '03' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingRegusrNm}"/>(<c:out value="${ bbscttInfo.mbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '04' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingRegusrNm}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '05' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingRegusrNm}"/>
|
|
(<c:out value="${ bbscttInfo.regusrId}"/>,<c:out
|
|
value="${ bbscttInfo.mbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '06' && bbscttInfo.regusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingRegusrNm}"/>(<c:out
|
|
value="${ bbscttInfo.regusrId}"/>)
|
|
</c:when>
|
|
</c:choose>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<%-------------------------------%>
|
|
<%--첨부 파일 다운로드 영역--%>
|
|
<c:if test = "${not empty fileInfo}">
|
|
<div class="file_attachments">
|
|
<div class="file_attachments_inner">
|
|
<p class="file_attachments__title">첨부파일</p>
|
|
<ul class="file_list">
|
|
<c:forEach var = "file" items = "${fileInfo}">
|
|
<li class="file_item image">
|
|
<div class="task">
|
|
<a class="button_svg_download" href="#"
|
|
onclick="linkDownloadFile('<c:out
|
|
value="${file.bbscttAtchmnfilInnb}"/>',
|
|
'<c:out value="${file.orginlFilNm}"/>',
|
|
'<c:out value="${bbscttVO.sopmalCd}"/>',
|
|
'BDFL',
|
|
1)">
|
|
<span class="visually-hidden">다운로드</span>
|
|
</a>
|
|
</div>
|
|
<a class="file_link" href="#" onclick="linkDownloadFile(
|
|
'<c:out value="${file.bbscttAtchmnfilInnb}"/>',
|
|
'<c:out value="${file.orginlFilNm}"/>',
|
|
'<c:out value="${bbscttVO.sopmalCd}"/>',
|
|
'BDFL',
|
|
1)">
|
|
<div class="file_info_area">
|
|
<div class="file_title_wrap">
|
|
<strong class="file_title">
|
|
<span class="text"><c:out
|
|
value="${file.orginlFilNm}"/> </span>
|
|
</strong>
|
|
<span class="file_volume">(<c:out
|
|
value="${file.filMg}"/>KB)</span>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
</c:forEach>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</c:if>
|
|
<%-------------------------------%>
|
|
<%--문항 답변 영역--%>
|
|
<c:if test="${not empty qesitmAnswList}">
|
|
<div class="eventDetail__top">
|
|
<c:forEach items="${qesitmAnswList}" var="answ" varStatus="status">
|
|
<c:choose>
|
|
<c:when test="${not empty answ.answCn}">
|
|
<span class="cartItem__afterPrice"><c:out value="${answ.qesitmNm}"/> : <c:out value="${answ.answCn}"/></span>
|
|
</c:when>
|
|
<c:otherwise>
|
|
(없음)
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</div>
|
|
</c:if>
|
|
<%-------------------------------%>
|
|
<%--게시글 내용 영역--%>
|
|
<div class="eventDetail__image ck-content" id = "cnDiv">
|
|
</div>
|
|
<%-------------------------------%>
|
|
<%--답변 영역--%>
|
|
<c:if test="${bbsInfo.answRegist eq 'Y'}">
|
|
<div class="eventDetail__content">
|
|
<div class="postQuestion"></div>
|
|
<div class="postAnswer">
|
|
<div class="postAnswer__top">
|
|
<span class="postAnswer__badge">답변</span>
|
|
<span class="postAnswer__admin"><c:out value="${bbsInfo.mngrNm}"/></span>
|
|
</div>
|
|
<c:choose>
|
|
<c:when test = "${not empty bbscttInfo.answBbscttInnb}">
|
|
<p class="postAnswer__title">
|
|
<c:out value="${bbscttInfo.answSj}" escapeXml="false"/></p>
|
|
<p class="postAnswer__text">
|
|
<c:out value="${bbscttInfo.answCn}" escapeXml="false"/>
|
|
</p>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<p class="postAnswer__text">답변 등록 중입니다.</p>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</div>
|
|
</div>
|
|
</c:if>
|
|
<%-------------------------------%>
|
|
<%--게시글 평가 영역--%>
|
|
<c:if test="${bbsInfo.bbscttEvlUseAt eq 'Y'}">
|
|
<div class="sub-bottom-btn-container">
|
|
<button class="postLikeBtn postLikeBtn--like">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"
|
|
fill="none">
|
|
<path d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="postLikeBtn__text">
|
|
추천 <em id="bbscttRecomendCnt"><c:out value="${bbscttInfo.recomendCnt}"/></em>
|
|
</span>
|
|
</button>
|
|
<%--게시판설정(게시글평가추천단계-비추천사용)--%>
|
|
<c:if test="${bbsInfo.bbscttEvlRecomendStep eq '02'}">
|
|
<button class="postLikeBtn postLikeBtn--dislike">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
|
viewBox="0 0 20 20"
|
|
fill="none">
|
|
<path d="M14.7749 16.583H5.6756V7.41637L11.3711 1.75293L11.7012 1.8747C11.9266 2.03069 12.0992 2.22513 12.2188 2.45803C12.3385 2.69094 12.3705 2.93292 12.315 3.18399L12.2941 3.20803L11.5345 7.41637H17.2429C17.6115 7.41637 17.9269 7.54751 18.1892 7.8098C18.4515 8.07208 18.5826 8.38752 18.5826 8.75612V9.62308C18.5826 9.72351 18.5749 9.81351 18.5594 9.8931C18.5439 9.97269 18.5153 10.0558 18.4736 10.1423L16.1052 15.7185C15.9865 15.9829 15.8075 16.193 15.5682 16.349C15.3289 16.505 15.0645 16.583 14.7749 16.583ZM6.75891 15.4997H14.7749C14.8337 15.4997 14.8938 15.4837 14.9552 15.4516C15.0167 15.4195 15.0634 15.3661 15.0955 15.2913L17.4993 9.68718V8.75612C17.4993 8.68133 17.4753 8.61989 17.4272 8.5718C17.3791 8.52372 17.3177 8.49968 17.2429 8.49968H10.2461L11.1868 3.4532L6.75891 7.86508V15.4997ZM5.6756 7.41637V8.49968H2.49931V15.4997H5.6756V16.583H1.41602V7.41637H5.6756Z"
|
|
fill="black"></path>
|
|
</svg>
|
|
<span class="postLikeBtn__text">
|
|
비추천
|
|
<em id="bbscttNonrecomendCnt"><c:out value="${bbscttInfo.nonrecomendCnt}"/></em>
|
|
</span>
|
|
</button>
|
|
</c:if>
|
|
</div>
|
|
</c:if>
|
|
<%-------------------------------%>
|
|
<%--연관상품영역--%>
|
|
<c:if test="${bbsInfo.recomendGoodsExpsrAt eq 'Y' && not empty goodsList.relateInfoList}">
|
|
<section class="main-section main-section__category-type">
|
|
<div class="main-section-header">
|
|
<div class="main-section-title">
|
|
<h2 class="main-section-title__title">
|
|
추천 상품
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
<div class="product-list-vertical-twoAndaHalf">
|
|
<div class="swiper product-list-vertical-twoAndaHalf__swiper">
|
|
<div class="swiper-wrapper">
|
|
<c:forEach var = "item" items="${goodsList.relateInfoList}">
|
|
<c:if test = "${not empty item.goodsInnb}">
|
|
<div class="swiper-slide">
|
|
<div class="product-unit">
|
|
<div class="product-unit-image">
|
|
<c:if test = "item.goodsSttusCd ne '01'">
|
|
<div class="sold-out">
|
|
<c:choose>
|
|
<c:when test ="${item.goodsSttusCd eq '02'}">
|
|
<span>SOLD OUT</span>
|
|
</c:when>
|
|
<c:when test ="${item.goodsSttusCd eq '03'}">
|
|
<span>판매중지</span>
|
|
</c:when>
|
|
</c:choose>
|
|
</div>
|
|
</c:if>
|
|
<c:forEach var="img" items="${goodsList.relateImgList}">
|
|
<c:if test="${item.goodsInnb eq img.goodsInnb}">
|
|
<a style="cursor:pointer" loading="lazy"
|
|
onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
|
<img src="<c:out value = "${cdnurl}${img.img}"/>"
|
|
onerror="this.src='/pc/images/image_placeholder.png'"
|
|
alt="해당 이미지에 대한 설명">
|
|
</a>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
<div class="product-unit-info">
|
|
<c:set var="iconString" value="${item.goodsIconCd}" />
|
|
<c:set var="iconCdList" value="${fn:split(iconString, ',')}" />
|
|
<c:forEach var = "iconCd" items="${iconCdList}">
|
|
<c:if test = "${iconCd eq 'new'}">
|
|
<span class="product-badge new">NEW</span>
|
|
</c:if>
|
|
<c:if test = "${iconCd eq 'hot'}">
|
|
<span class="product-badge hot">HOT</span>
|
|
</c:if>
|
|
<c:if test = "${iconCd eq 'best'}">
|
|
<span class="product-badge best">BEST</span>
|
|
</c:if>
|
|
<c:if test = "${iconCd eq 'md-pick'}">
|
|
<span class="product-badge md-pick">MD PICK</span>
|
|
</c:if>
|
|
<c:if test = "${iconCd eq 'hot-deal'}">
|
|
<span class="product-badge four-row">HOT DEAL</span>
|
|
</c:if>
|
|
</c:forEach>
|
|
<div class="product-unit-info__inner">
|
|
<div class="product-unit-title">
|
|
<a style="cursor:pointer" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
|
<c:out value = "${item.goodsNm}"/>
|
|
</a>
|
|
</div>
|
|
<div class="product-unit-price">
|
|
<c:forEach var="goodsOpt" items="${goodsList.relateGoodsOptList}">
|
|
<c:if test="${item.goodsInnb eq goodsOpt.goodsInnb && goodsOpt.stdrDvAt eq 'Y'}">
|
|
<div class="product-unit-price__price">
|
|
<span class="product-unit-price__original">
|
|
<fmt:formatNumber value="${goodsOpt.cnsmrpric}" pattern="#,###"/>
|
|
</span>
|
|
<span class="product-unit-price__current">
|
|
<fmt:formatNumber value="${goodsOpt.slepric}" pattern="#,###"/>
|
|
</span>
|
|
</div>
|
|
<div class="product-unit-price__sale">
|
|
<span class="percent"><c:out value = "${goodsOpt.slePercent}"/>%</span>
|
|
</div>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
<span class="product-unit-price__monthly-payment"><c:out value = "${item.srtDc}"/></span>
|
|
</div>
|
|
<div class="product-unit-rating">
|
|
<i class="icon icon_rating-star"></i>
|
|
<c:forEach var = "evlInfo" items="${goodsList.goodsRvwEvlList}">
|
|
<c:if test = "${evlInfo.goodsInnb eq item.goodsInnb}">
|
|
<span class="product-unit-rating__score"><c:out value = "${evlInfo.avgEvlScore}"/>${goodsOpt.goodInnb}</span>
|
|
<span class="product-unit-rating__count">(<fmt:formatNumber value="${evlInfo.cntBbsctt}" pattern="#,###"/>)</span>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</c:if>
|
|
<div id="evtGoodsPage" innb=""></div><%--이벤트게시글script로 mainSiteInnb 넣기--%>
|
|
</div>
|
|
</div>
|
|
<%--게시글 삭제 수정 영역(회원,비회원 작성 게시글에 한함)--%>
|
|
<c:if test = "${bbscttInfo.regusrDvCd eq '01' || bbscttInfo.regusrDvCd eq '99'}">
|
|
<div class="postEditBtns">
|
|
<div class="fullBtnSection">
|
|
<button class="btn md outline full" id="moveUpdtBtn">
|
|
<spring:message code="button.update"/>
|
|
</button>
|
|
<button class="btn md theme outline full" id="delBtn">
|
|
<spring:message code="button.delete"/>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</c:if>
|
|
<%--게시글 댓글 영역--%>
|
|
<c:if test="${bbscttInfo.cmUseAt eq 'Y'}">
|
|
<div class="sub-box">
|
|
<div class="eventDetail">
|
|
<div class="eventComment">
|
|
<div class="productReview__subTitle">
|
|
<span class="productReview__subTitle__title">댓글</span>
|
|
<span class="productReview__subTitle__num">
|
|
<span class="comma" id="cmCnt">0</span>
|
|
<span class="unit">건</span>
|
|
</span>
|
|
</div>
|
|
<div class="comment-write">
|
|
<div class="comment-write__textarea-container">
|
|
<c:choose>
|
|
<c:when test = "${bbscttVO.authResult eq 'Y'}">
|
|
<textarea class="comment-write__textarea" rows="5"
|
|
placeholder="댓글을 입력하세요." id="cmInputCn"
|
|
name="cn"
|
|
title="댓글 입력"></textarea>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<textarea class="comment-write__textarea" rows="5"
|
|
placeholder="로그인 또는 댓글권한이 있을 경우 등록하실 수 있습니다." readonly></textarea>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</div>
|
|
<div class="comment-write__bottom">
|
|
<div class="comment-write__info">
|
|
<div class="comment-write__info-inner">
|
|
<c:if test = "${bbscttVO.authResult eq 'Y'}">
|
|
<div class="comment-write__info-item cmInputNm">
|
|
<input type="text" class="comment-write__info-input"
|
|
placeholder="이름을 입력하세요."
|
|
name="regusrNm" id="cmInputNm" maxlength="25"
|
|
value= "<c:out value="${bbscttVO.regusrNm}"/>"
|
|
title="이름 입력">
|
|
</div>
|
|
<c:if test="${bbscttVO.regusrDvCd eq '99'}">
|
|
<div class="comment-write__info-item cmInputPw">
|
|
<input type="password" class="comment-write__info-input"
|
|
name="password"
|
|
id="cmInputPw" maxlength="25"
|
|
placeholder="비밀번호를 입력하세요." title="비밀번호 입력">
|
|
</div>
|
|
</c:if>
|
|
</c:if>
|
|
</div>
|
|
</div>
|
|
<div class="comment-write__controls">
|
|
<c:choose>
|
|
<c:when test = "${bbscttVO.authResult eq 'Y'}">
|
|
<div class="b-checkbox-container">
|
|
<label class="b-checkbox checkbox secretBbscttAt">
|
|
<input type="checkbox" value="Y" name="secretBbscttAt"
|
|
id="secretChk">
|
|
<span class="check"></span>
|
|
<span class="control-label">비밀 댓글</span>
|
|
</label>
|
|
</div>
|
|
<button class="btn sm theme" id="btnCmReg"><spring:message code="button.insert"/></button>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:choose>
|
|
<c:when test = "${resultMap.bbsctt.regusr eq '0'}"> <%--비회원일 경우 로그인 유도--%>
|
|
<c:set var = "modalNm" value = "login_alert"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var = "modalNm" value = "reject_auth_pop"/> <%--회원일 경우 권한 없음 안내--%>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<button class="btn sm theme" id="rejectAuthCmBtn" onclick = "openModal('<c:out value="${modalNm}"/>')"><spring:message code="button.insert"/></button>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="comment-body__area">
|
|
<%--댓글 리스트 영역--%>
|
|
</div>
|
|
</div>
|
|
<div class="fullBtnSection" id = "cmMoreBtn">
|
|
<button class="btn md outline full">
|
|
<span class="fullBtnSection__more" >
|
|
더보기
|
|
</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</c:if>
|
|
<%-------------------------------%>
|
|
<%-- 이전글/다음글 영역--%>
|
|
<div class="sub-box">
|
|
<div class="prev-next">
|
|
<c:if test="${not empty bbscttInfo.beforeInnb}">
|
|
<button type="button" class="prev-next__item" id="prevBtn" value="<c:out value="${ bbscttInfo.beforeInnb }"/>">
|
|
<span class="prev-next__title">이전글</span>
|
|
<span class="prev-next__link">
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.beforeSecretBbscttAt eq 'Y'}">
|
|
<c:choose>
|
|
<c:when test = "${bbscttInfo.beforeRegusrDvCd eq '01' || bbscttInfo.beforeRegusrDvCd eq '99'}">
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '99'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>[비회원]
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '01' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrId}"/>
|
|
(<c:out value="${ bbscttInfo.beforeMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '02' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrId}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '03' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>
|
|
(<c:out value="${ bbscttInfo.beforeMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '04' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '05' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>
|
|
(<c:out
|
|
value="${ bbscttInfo.maskingBeforeRegusrId}"/> ,<c:out
|
|
value="${ bbscttInfo.beforeMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '06' && bbscttInfo.beforeRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>
|
|
(<c:out value="${ bbscttInfo.maskingBeforeRegusrId}"/>)
|
|
</c:when>
|
|
</c:choose>
|
|
님의 <c:out value="${bbsInfo.bbsNm}"/> 문의
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:choose>
|
|
<c:when test = "${bbscttInfo.beforeRegusrDvCd ne '02'}">
|
|
<c:out value ="${bbscttInfo.beforeSj}"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:out value ="${bbscttInfo.beforeSj}" escapeXml="false"/>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<i class="icon icon_lock"></i>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.beforeRegusrDvCd ne '02'}">
|
|
<c:out value="${bbscttInfo.beforeSj}"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:out value="${bbscttInfo.beforeSj}" escapeXml="false"/>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</span>
|
|
</button>
|
|
</c:if>
|
|
<c:if test="${not empty bbscttInfo.afterInnb}">
|
|
<button type="button" class="prev-next__item" id="nextBtn" value="<c:out value="${bbscttInfo.afterInnb}"/>">
|
|
<span class="prev-next__title">다음글</span>
|
|
<span class="prev-next__link">
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.afterSecretBbscttAt eq 'Y'}">
|
|
<c:choose>
|
|
<c:when test = "${bbscttInfo.afterRegusrDvCd eq '01' || bbscttInfo.afterRegusrDvCd eq '99'}">
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.afterRegusrDvCd eq '99'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>[비회원]
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '01' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrId}"/>
|
|
(<c:out value="${ bbscttInfo.afterMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '02' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrId}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '03' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>(<c:out
|
|
value="${ bbscttInfo.afterMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '04' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '05' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>
|
|
(<c:out value="${ bbscttInfo.maskingAfterRegusrId}"/>,<c:out value="${ bbscttInfo.afterMbrGradNm}"/>)
|
|
</c:when>
|
|
<c:when test="${bbsInfo.wrterIndictTyCd eq '06' && bbscttInfo.afterRegusrDvCd eq '01'}">
|
|
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>
|
|
(<c:out value="${ bbscttInfo.maskingAfterRegusrId}"/>)
|
|
</c:when>
|
|
</c:choose>
|
|
님의 <c:out value="${bbsInfo.bbsNm}"/> 문의
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:choose>
|
|
<c:when test="${bbscttInfo.afterRegusrDvCd ne '02'}">
|
|
<c:out value ="${bbscttInfo.afterSj}"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:out value="${bbscttInfo.afterSj}" escapeXml="false"/>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<i class="icon icon_lock"></i>
|
|
</c:when>
|
|
<c:otherwise><c:choose>
|
|
<c:when test="${bbscttInfo.afterRegusrDvCd ne '02'}">
|
|
<c:out value ="${bbscttInfo.afterSj}"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:out value="${bbscttInfo.afterSj}" escapeXml="false"/>
|
|
</c:otherwise>
|
|
</c:choose></c:otherwise>
|
|
</c:choose>
|
|
</span>
|
|
</button>
|
|
</c:if>
|
|
</div>
|
|
</div>
|
|
<div class="fullBtnSection">
|
|
<button type = "button" class="btn md outline full" id = "moveList">
|
|
목록
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<!-- Top 버튼 -->
|
|
<div class="quick-menu__to-top">
|
|
<button><i class="icon icon_quick-to-top"></i>
|
|
<span class="visually-hidden">위로 가기</span>
|
|
</button>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
<form id="hiddenForm">
|
|
<%--목록 관련--%>
|
|
<input type="hidden" name="pageIndex" value="<c:out value="${bbscttVO.pageIndex}"/>"/>
|
|
<input type="hidden" name="bbsTyCd" value="<c:out value="${bbscttVO.bbsTyCd}"/>"/>
|
|
<input type="hidden" name="itmInnb" value="<c:out value="${bbscttVO.itmInnb}"/>"/>
|
|
<input type="hidden" name="srchKeyword" value="<c:out value="${bbscttVO.srchKeyword}"/>"/>
|
|
<input type="hidden" name="srchDv" value="<c:out value="${bbscttVO.srchDv}"/>"/>
|
|
<input type="hidden" name="expsrAt" value="Y"/>
|
|
<input type="hidden" name="useAt" value="Y"/>
|
|
<input type="hidden" name="reqUrl" id="reqUrl" value="<c:out value="${bbscttVO.reqUrl}"/>"/>
|
|
<%--댓글 관련--%>
|
|
<input type="hidden" value="1" id="cmPageIndex"/><%--댓글페이지--%>
|
|
<%--게시글 관련--%>
|
|
<input type="hidden" name="regusrDvCd" value="<c:out value="${bbscttInfo.regusrDvCd}"/>" id="regusrDvCd"/>
|
|
<input type="hidden" name="regusr" value="<c:out value="${bbscttInfo.regusr}"/>" id="regusr"/>
|
|
<input type="hidden" name="bbscttInnb" value="<c:out value="${bbscttInfo.bbscttInnb}"/>" id="bbscttInnb"/>
|
|
<%--게시판 설정--%>
|
|
<input type="hidden" name="bbsId" value="<c:out value="${bbsInfo.bbsId}"/>" id="bbsId"/>
|
|
<input type="hidden" name="bbscttEvlRecomentStep" value="<c:out value="${bbsInfo.bbscttEvlRecomendStep}"/>" id="bbscttEvlRecomendStep"/>
|
|
<input type="hidden" name="setupInfoInnb" value="<c:out value="${bbsInfo.setupInfoInnb }"/>" id="setupInfoInnb"/>
|
|
<input type="hidden" name="sknTyCd" value="<c:out value="${bbsInfo.sknTyCd}"/>" id="sknTyCd"/>
|
|
<input type="hidden" name="slangFlterUseAt" value="<c:out value="${bbsInfo.slangFlterUseAt}"/>" id="slangFlterUseAt"/>
|
|
<input type="hidden" name="prevNext" value="<c:out value="${bbsInfo.prevNext}"/>" id="prevNext"/>
|
|
<input type="hidden" name="sopmalCd" value="<c:out value="${bbsInfo.sopmalCd}"/>" id="sopmalCd"/>
|
|
</form>
|
|
</body>
|
|
<%--비밀번호 확인 모달--%>
|
|
<div class="microModal microAlert" id="confirm_bbsctt_pw" aria-modal="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<h2 class="microModal__title">
|
|
등록시에 입력했던 비밀번호를 입력해 주세요
|
|
</h2>
|
|
</div>
|
|
<div class="microModal__content">
|
|
<p>
|
|
<input class="input-text full" type="password" title="비밀번호 입력"
|
|
placeholder="비밀번호 입력" name="password" id="modalPw">
|
|
</p>
|
|
</div>
|
|
<%--게시글관련--%>
|
|
<input type="hidden" name="bbscttInnb" id="modalBbscttInnb">
|
|
<input type="hidden" id = "modalAnswAt">
|
|
<input type="hidden" id = "reqAction">
|
|
<%--댓글관련--%>
|
|
<input type="hidden" name="cmInnb" id = "modalCmInnb">
|
|
<input type="hidden" name="reAt" id = "reAt">
|
|
<input type="hidden" id = "modalIdx">
|
|
<%--공통--%>
|
|
<input type="hidden" name="modalCrudDv" id = "modalCrudDv">
|
|
</div>
|
|
<div class="microModal__btnContainer">
|
|
<button type="button" class="microModal__btn" onclick= "closeModal('confirm_bbsctt_pw');" id = "pwCancelBtn">
|
|
<spring:message code="button.cancel"/>
|
|
</button>
|
|
<button type="button" class="microModal__btn microModal__btn-primary" id="pwChkBtn"><spring:message code="button.ok"/></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<%--비밀번호 alert--%>
|
|
<button type = "button" id = "pwAlertBtn" data-micromodal-trigger="incollect-pw-alet"></button>
|
|
<div class="microModal microAlert" id="incollect-pw-alet" aria-modal="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<h2 class="microModal__title" id = "pwAlert">
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
<div class="microModal__btnContainer">
|
|
<button type="button" class="microModal__btn microModal__btn-primary" data-micromodal-close aria-label="창 닫기" >
|
|
<spring:message code="button.ok"/>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<%--타 작성자 댓글 수정,삭제 불가 alert--%>
|
|
<div class="microModal microAlert" id="reject-modify-cm" aria-modal="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<h2 class="microModal__title">
|
|
글작성자만 이용가능합니다.
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
<div class="microModal__btnContainer">
|
|
<button type="button" class="microModal__btn microModal__btn-primary" data-micromodal-close aria-label="창 닫기">
|
|
<spring:message code="button.ok"/>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<%-- 로그인 유도 alert --%>
|
|
<div class="microModal microAlert" id="modal-error-confirm-move-login" aria-hidden="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<h2 class="microModal__title" id="modal-error-content--move-login">
|
|
회원만 사용가능합니다. <br/> 로그인하시겠습니까?
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
<div class="microModal__btnContainer">
|
|
<button type="button" class="microModal__btn microModal__btn-primary" id="modal-error-confirm-move-login-yesButton" onclick="fn_move_goodsDtl_login()">예</button>
|
|
<button type="button" class="microModal__btn" id="modal-error-confirm-move-login-noButton" onclick="closeModal('modal-error-confirm-move-login');">아니오</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<%--타 작성자 댓글 수정,삭제 불가 alert--%>
|
|
<div class="microModal microAlert" id="reject_auth_pop" aria-modal="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<h2 class="microModal__title">
|
|
댓글 등록 권한이 없습니다.
|
|
<br>
|
|
고객센터에 문의해주세요.
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
<div class="microModal__btnContainer">
|
|
<button type="button" class="microModal__btn microModal__btn-primary" data-micromodal-close aria-label="창 닫기">
|
|
<spring:message code="button.ok"/>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="<c:url value='/js/sopmal/lotteryScratch.js'/>"></script>
|
|
|
|
</html> |