Compare commits

...

6 Commits

Author SHA1 Message Date
이대환
889639a63b fix : 카카오 상담문의 아이콘 스타일 적용(모바일)
fix : 상품 문의(모바일)
fix : 게시판 목록 조회(모바일)
2026-08-26 12:24:29 +09:00
이대환
7594ebcb88 fix : 카카오 상담문의 아이콘 변경 2026-08-25 17:18:32 +09:00
이대환
60f28bae5a 게시판 > 게시판 관리 > 게시글 보기/등록/수정 - 화폐단위 변경 (원 → 円) 2026-08-25 11:07:49 +09:00
이대환
4ad51df503 게시판 > 게시판 관리 > 게시글 등록/수정 - 상품 정보(추천 상품) 문구 2026-08-20 18:29:56 +09:00
이대환
bb3ecebad1 fix : 카카오 상담문의 아이콘 위치 변경 2026-08-20 18:29:56 +09:00
이대환
342bea50d6 fix : 카카오 상담문의 아이콘 위치 변경 2026-08-20 18:29:55 +09:00
17 changed files with 153 additions and 71 deletions

View File

@@ -75,6 +75,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
@Length(max = 16777215, message = "내용")
/** 내용 */
private String cn;
/** 내용 */
private String relateGoodsWords;
/** 조회건수 */
private Integer inqireCnt;
/** 댓글건수 */

View File

@@ -1767,6 +1767,7 @@
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
,FB.ANSW_SMS_RECPTN
,FB.SJ
,FB.RELATE_GOODS_WORDS
,FB.SORT_ORDR
,FB.USE_AT
,IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM
@@ -1927,6 +1928,7 @@
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
,FB.ANSW_SMS_RECPTN
,FB.SJ
,FB.RELATE_GOODS_WORDS
,FB.SORT_ORDR
,FB.USE_AT
,FB.CN_SCRIPT
@@ -2039,6 +2041,9 @@
PASSWORD,
SJ,
CN,
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
RELATE_GOODS_WORDS,
</if>
INQIRE_CNT,
CM_USE_AT,
RECOMEND_CNT,
@@ -2087,6 +2092,9 @@
MD5(#{password}),
#{sj},
#{cn},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
#{relateGoodsWords},
</if>
0,
IFNULL(#{cmUseAt},'N'),
0,
@@ -2133,6 +2141,9 @@
SET
SJ = #{sj},
CN = #{cn},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
RELATE_GOODS_WORDS = #{relateGoodsWords},
</if>
CM_USE_AT =IFNULL(#{cmUseAt},'N'),
SORT_ORDR = #{sortOrdr},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(represntFileInfo)">

View File

@@ -5706,6 +5706,12 @@ body {
color: #16191d;
font-weight: 400;
}
.mainNotice__customerContact-alwaysonbottom {
position: fixed;
left: 10px;
bottom: 60px;
z-index: 10;
}
.icon_kakao-customer-service {
width: 72px;
height: 72px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -5574,6 +5574,12 @@ main {
color: #212529;
text-align: center;
}
.quick-menu__customer-service-alwaysonbottom {
position: fixed;
left: 20px;
bottom: 20px;
z-index: 10;
}
.quick-menu > * + * {
margin-top: 16px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -525,3 +525,10 @@
<div class="loadingImg" style="display:none; position: relative; z-index: 1010;">
<div class="loding_popup_wrap"><img src="/mobile/images/loading.svg" alt="loading"></div>
</div>
<!--고객센터 아이콘-->
<div class="quick-menu__customer-service-alwaysonbottom"
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
<i class="icon icon_kakao-customer-service"></i>
<span class="visually-hidden">고객센터</span>
<%-- <span class="quick-menu__customer-service__num">문의는 카톡으로 </span>--%>
</div>

View File

@@ -1233,6 +1233,12 @@
<div id="mbrMarktClauseAgreeDiv"></div>
<%--고객센터 아이콘--%>
<div class="mainNotice__customerContact-alwaysonbottom" style="display: none;"
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
<i class="icon icon_kakao-customer-service"></i>
</div>
<script>
/*최초 로그인시 마케팅 수신동의를 받지 않았을 경우 마케팅 수신동의 팝업 띄우기*/
@@ -1271,6 +1277,16 @@ $(document).ready(function() {
if(locationUrl.includes("selectMbrPurchsForm")){
document.cookie = 'marktAgreeAt=P; path=/'
}
$(document).ready(function() {
var $notice = $('.mainNotice__customerContact-alwaysonbottom');
if ($('.tab-bar').length) {
$notice.fadeIn(500);
} else if ($('.productDetail').length) {
$notice.css('bottom', '70px').fadeIn(500);
}
});
})
//광고 수신동의여부 수정

View File

@@ -1272,14 +1272,14 @@
</div>
</c:if>
</div>
<div class="quick-menu__customer-service"
<%--<div class="quick-menu__customer-service"
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
<i class="icon icon_kakao-customer-service"></i>
<span class="visually-hidden">고객센터</span>
<span class="quick-menu__customer-service__num">
문의는 카톡으로
</span>
</div>
</div>--%>
<div class="quick-menu__to-top">
<button><i class="icon icon_quick-to-top"></i><span class="visually-hidden">위로
가기</span></button>

View File

@@ -6,7 +6,7 @@
<%@ 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" %>
<%@ page import="java.util.Date" %>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<%--
Class Name : GnrlBbscttDtlPopupR.jsp
Description : 일반 게시글 상세 조회 화면
@@ -161,7 +161,7 @@
<div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p>
<p class="product-group__description-price"><fmt:formatNumber
value="${goods.slepric}" pattern="#,###"/>원</p>
value="${goods.slepric}" pattern="#,###"/>${curUnit}</p>
</div>
<c:if test="${bbsInfo.bbsTyCd eq '05'}">
<input hidden id="goodsInnb" value="${goods.goodsInnb}"/>
@@ -171,6 +171,14 @@
</div>
</td>
</tr>
<tr>
<th>상품 정보 문구</th>
<td colspan="3">
<div class="td-inner" id="relateGoodsWords">
${bbscttInfo.relateGoodsWords}
</div>
</td>
</tr>
</c:if>
</c:if>
<tr>

View File

@@ -22,6 +22,7 @@
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
<script src="<c:url value='/js/fileupload_comm.js'/>"></script>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<script>
$(document).ready(function () {
/************************************************
@@ -1515,6 +1516,7 @@
selected.forEach((good, index) => {
let goodsPrice = fn_format_comma(good.goodsPrice);
let slepric = fn_format_comma(good.goodsPrice);
let curUnit = '${curUnit}';
var productHtml = `
<div class="product-group__item">
<input type="hidden" id="relatedGoodsId" name="relatedGoodsId" value="\${good.goodsId}">
@@ -1528,7 +1530,7 @@
</button>
<div class="product-group__description">
<p>\${good.goodsNm}</p>
<p class="product-group__description-price">\${goodsPrice}</p>
<p class="product-group__description-price">\${goodsPrice}\${curUnit}</p>
</div>
<%--게시글 연관 상품--%>
<input type="hidden" name="goodsInnbArr[]" value="\${good.goodsId}"/>

View File

@@ -280,8 +280,8 @@
</td>
</c:if>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.goodsChoice eq 'Y'}">
<tr class="visibleAt">
<th>상품 정보
<button type="button" class="btn xsm primary ml-5"
onclick="fn_open_modal('#modalDiv',
@@ -298,8 +298,16 @@
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<th>상품 정보 문구</th>
<td colspan="3">
<div class="td-inner">
<input class="input-text full" type="text" title="해당 인풋에 대한 설명" placeholder="관련 상품 문구를 입력해 주세요." name="relateGoodsWords" maxlength="50" value="이 글과 관련된 사케">
</div>
</td>
</tr>
</c:if>
<c:if test="${not empty qesitmList}">
<tr>
<th>추가 입력 항목</th>

View File

@@ -6,6 +6,8 @@
<%@ 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"%>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<%--
Class Name : GnrlBbscttUpdtPopupU.jsp
Description : 일반 게시글 등록 팝업
@@ -15,7 +17,6 @@
------- -------- ---------------------------
2024-01-08 김혜지 최초 생성
--%>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<div id="board-list-update" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>게시글 수정</h4>
@@ -474,8 +475,8 @@
</td>
</c:if>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
<tr class ="visibleAt">
<th>상품 정보
<c:choose>
<c:when test = "${not empty goods}">
@@ -510,7 +511,7 @@
</button>
<div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p>
<p class="product-group__description-price"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>원</p>
<p class="product-group__description-price"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit}</p>
</div>
<%--게시글 연관 상품--%>
<input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/>
@@ -520,8 +521,16 @@
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<th>상품 정보 문구</th>
<td colspan="3">
<div class="td-inner">
<input class="input-text full" type="text" title="해당 인풋에 대한 설명" placeholder="관련 상품 문구를 입력해 주세요." name="relateGoodsWords" maxlength="50" value = "${bbscttInfo.relateGoodsWords}">
</div>
</td>
</tr>
</c:if>
<c:if test="${not empty qesitmList}">
<tr>
<th>추가 입력 항목</th>

View File

@@ -948,7 +948,14 @@
<div class="main-section-header">
<div class="main-section-title">
<h3 class="main-section-title__title">
추천 상품
<c:choose>
<c:when test = "${not empty bbscttInfo.relateGoodsWords}">
<c:out value="${bbscttInfo.relateGoodsWords}" escapeXml="false"/>
</c:when>
<c:otherwise>
이 글과 관련된 사케
</c:otherwise>
</c:choose>
</h3>
</div>
</div>

View File

@@ -570,7 +570,7 @@
let regusrNm;
if (resultList.regusrDvCd === '99') {
regusrNm = `\${ resultList.maskingRegusrNm}[비회원]`;
} else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb !== null) {
} else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb != null) {
regusrNm = `naverpay`;
} else if (resultList.regusrDvCd === '02') {
regusrNm = `\${ resultList.mngrNm}`;
@@ -631,7 +631,7 @@
// 비밀글 여부
if (resultList.secretBbscttAt === 'Y') {
if (resultList.regusrDvCd !== '02') {
if (resultList.answCn !== null) {
if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `;
}
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
@@ -639,7 +639,7 @@
list += `비밀글입니다.`;
}
} else {
if (resultList.answCn !== null) {
if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `;
}
list += sj;
@@ -649,7 +649,7 @@
<ul class="eventList__list">`;
// 답변 여부 표시
if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) {
if (resultList.answBbscttInnb != null) {
list += `<li>답변완료</li>`;
} else {
list += `<li>답변대기</li>`;
@@ -680,7 +680,7 @@
list += ` </ul>
</a>`;
if(bbsInfo.answRegist === 'Y') {
if(resultList.answBbscttInnb !== null){
if(resultList.answBbscttInnb != null){
list += `<a class="eventList__item dtlBtn item" style="cursor:pointer" >
<input type="hidden" class="bbscttInnb" value="\${ resultList.bbscttInnb}">
<div class="eventList__top">
@@ -718,7 +718,7 @@
<ul class="eventList__list">`;
// 답변 여부 표시
if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) {
if (resultList.answBbscttInnb != null) {
list += `<li>답변완료</li>`;
} else {
list += `<li>답변대기</li>`;
@@ -760,7 +760,7 @@
// 비밀글 여부
if (resultList.secretBbscttAt === 'Y') {
if (resultList.regusrDvCd !== '02') {
if (resultList.answCn !== null) {
if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `;
}
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
@@ -768,7 +768,7 @@
list += `비밀글입니다.`;
}
} else {
if (resultList.answCn !== null) {
if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `;
}
list += `\${sj}`;
@@ -779,7 +779,7 @@
// 답변 여부 표시
if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) {
if (resultList.answBbscttInnb != null) {
list += `<span class="myQnaList__info__date">답변완료</span>`;
} else {
list += `<span class="myQnaList__info__date">답변대기</span>`;

View File

@@ -1938,7 +1938,7 @@
success: function (data) {
$("#modalDiv").html(data);
MicroModal.init();
closeModal("authPop");
try {closeModal("authPop");} catch (e) {};
openModal2("authPop");
}
});

View File

@@ -201,20 +201,20 @@
</c:if>
<div class="sub-box">
<div class="mainNotice__wrapper">
<div class="mainNotice__customerContact"
<%--<div class="mainNotice__customerContact"
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
<i class="icon icon_kakao-customer-service"></i>
<div class="mainNotice__customerContact__right">
<h4 class="notice__title customer-service">문의는 카톡으로</h4>
<%-- <span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb }"/></span>--%>
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb }"/></span>
<p class="notice__paragraph">
<span class="notice__text01"><c:out value="${ sopmallInfo.shopInfo.cscWkdayWorkTme }"/></span>
<%-- <span class="notice__text02">(<c:out value="${ sopmallInfo.shopInfo.cscLunchTme }"/>)</span>--%>
<%-- <br>--%>
<%-- <span class="notice__text03"><c:out value="${ sopmallInfo.shopInfo.cscRstde }"/></span>--%>
<span class="notice__text02">(<c:out value="${ sopmallInfo.shopInfo.cscLunchTme }"/>)</span>
<br>
<span class="notice__text03"><c:out value="${ sopmallInfo.shopInfo.cscRstde }"/></span>
</p>
</div>
</div>
</div>--%>
<a class="myPageMain__logout" href="/sopmal/logout">
<i class="icon icon_myLogout"></i>
로그아웃