Compare commits

15 Commits

Author SHA1 Message Date
이대환
2e33dc43f3 쇼핑몰 사이트맵 xml 자동 생성 2026-09-08 13:59:18 +09:00
이주일
5f3687deb1 Revert "fix: 관리자 대시보드 쇼핑몰 선택 유지"
This reverts commit 7b24a5395f.
2026-08-26 23:12:45 +09:00
이주일
a59dc92601 Revert "fix: 관리자 대시보드 게시글 링크 쇼핑몰 코드 전달"
This reverts commit 5527c23171.
2026-08-26 23:12:45 +09:00
이주일
5527c23171 fix: 관리자 대시보드 게시글 링크 쇼핑몰 코드 전달 2026-08-26 23:07:17 +09:00
이주일
7b24a5395f fix: 관리자 대시보드 쇼핑몰 선택 유지 2026-08-26 23:00:02 +09:00
이주일
87da1e547e fix: 모바일 전체메뉴 하위 카테고리 표시 개선 2026-08-26 17:22:16 +09:00
이대환
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
이대환
103621fe2a fix : 운영 관리자/통합관리자 로고 변경 2026-08-19 12:12:14 +09:00
이대환
8be851c472 카카오 상담문의(카카오톡 채널) 2026-08-18 16:11:03 +09:00
이대환
27301d554b fix : 주문 > 주문 관리 > 전체주문조회 > 프린트 - 발주서 다운로드 화면으로 대체 2026-08-18 16:06:55 +09:00
30 changed files with 442 additions and 79 deletions

View File

@@ -3,6 +3,7 @@ package com.wb.domainserver.domain.admin.store.sopmal.mapper;
import java.util.List; import java.util.List;
import com.wb.domainserver.domain.admin.store.sopmal.vo.Shop; import com.wb.domainserver.domain.admin.store.sopmal.vo.Shop;
import com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO;
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponVO; import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@@ -202,4 +203,7 @@ public interface BOMaSopmalMapper {
/*전체 쇼핑몰 목록*/ /*전체 쇼핑몰 목록*/
List<DataMap> selectSopmalList(); List<DataMap> selectSopmalList();
// XML 수정 임시
public List<DataMap> selectSitemapXml(String sopmalCd);
} }

View File

@@ -19,6 +19,7 @@ import com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.mapper.BOGoodsinfoMapper; import com.wb.domainserver.domain.gcone.goods.goodsinfo.mapper.BOGoodsinfoMapper;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO; import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
import lombok.Data; import lombok.Data;
import org.apache.commons.text.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -984,4 +985,43 @@ public class BOMaSopmalService {
return mapper.selectSopmalList(); return mapper.selectSopmalList();
} }
/**
* 사이트맵 XML
* @param sopmalCd
* @return
*/
@Transactional
public String selectSitemapXml(String sopmalCd) {
List<DataMap> resultList = new ArrayList<>();
StringBuilder xml = new StringBuilder();
try {
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<?xml-stylesheet type=\"text/css\" href=\"https://www.xml-sitemaps.com/css/sitemap.css\"?>");
xml.append("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">\n");
resultList = mapper.selectSitemapXml(sopmalCd);
for (DataMap data : resultList) {
xml.append(" <url>");
xml.append(" <loc>")
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("targetUrl"))))
.append("</loc>");
xml.append(" <lastmod>")
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("lastModified"))))
.append("</lastmod>");
xml.append(" <priority>")
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("priority"))))
.append("</priority>");
xml.append(" </url>");
}
xml.append("</urlset>");
} catch (WnbtRestException wre){
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return xml.toString();
}
} }

View File

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

View File

@@ -305,6 +305,14 @@ public class GoodsController {
public String selectGoodsListForm(HttpServletRequest request, public String selectGoodsListForm(HttpServletRequest request,
BOGoodsVO vo, BOGoodsVO vo,
ModelMap model) { ModelMap model) {
String mobileParentCtgryId = request.getParameter("mobileParentCtgryId");
String mobileCurrentCtgryId = request.getParameter("mobileCurrentCtgryId");
boolean mobileSubCategorySelected = mobileParentCtgryId != null && !mobileParentCtgryId.isBlank()
&& mobileCurrentCtgryId != null && !mobileCurrentCtgryId.isBlank();
if (mobileSubCategorySelected) {
vo.setCtgryId(mobileParentCtgryId);
}
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){ if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd()); vo.setSopmalCd(user.getSopmalCd());
@@ -322,7 +330,7 @@ public class GoodsController {
//검색한 카테고리 정보로 vo 세팅 //검색한 카테고리 정보로 vo 세팅
if(!CollectionUtils.isEmpty(goodsCategoryList)){ if(!CollectionUtils.isEmpty(goodsCategoryList)){
vo.setUpperCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString()); vo.setUpperCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString());
vo.setCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString()); vo.setCtgryId(mobileSubCategorySelected ? mobileCurrentCtgryId : goodsCategoryList.get(0).get("baseCtgryId").toString());
}else{ }else{
vo.setUpperCtgryId("0"); vo.setUpperCtgryId("0");
vo.setCtgryId("0"); vo.setCtgryId("0");

View File

@@ -198,6 +198,20 @@ public class MainController {
} }
/**
* 사이트맵 XML
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sitemap", produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<String> selectSitemapXml() {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
String xml = boMaSopmalService.selectSitemapXml(user.getSopmalCd());
return ResponseEntity.ok().contentType(MediaType.APPLICATION_XML).body(xml);
}
/** /**
* 비회원 휴대폰번호 확인 * 비회원 휴대폰번호 확인
* @return OrdrDtlR.jsp * @return OrdrDtlR.jsp

View File

@@ -1569,5 +1569,124 @@
AND GD.USE_AT = 'Y' AND GD.USE_AT = 'Y'
</select> </select>
<!-- 사이트맵 XML -->
<select id="selectSitemapXml"
parameterType="String"
resultType="dataMap">
WITH RECURSIVE CATEGORY_TREE AS (
SELECT
GC.CTGRY_ID
, GC.UPPER_CTGRY_ID
, GC.SOPMAL_CD
, GC.CTGRY_NM
, GC.CTGRY_DEPTH
, GC.SORT_ORDR
, GC.CTGRY_DV_CD
, GC.EXPSR_CD
, GC.URL_DV_CD
, CASE
WHEN GC.URL_DV_CD = '01' THEN ''
WHEN GC.URL_DV_CD = '02' THEN GC.URL
ELSE NULL
END URL
, GC.USE_AT
, GC.EXPSR_BGN_DT
, GC.EXPSR_END_DT
FROM GC_CATEGORY GC
WHERE GC.SOPMAL_CD = #{sopmalCd}
AND GC.UPPER_CTGRY_ID IS NULL
AND GC.USE_AT = 'Y'
AND (
GC.EXPSR_CD = '01'
OR (
GC.EXPSR_CD = '03'
AND SYSDATE() BETWEEN GC.EXPSR_BGN_DT AND GC.EXPSR_END_DT
)
)
UNION ALL
SELECT
CHILD.CTGRY_ID
, CHILD.UPPER_CTGRY_ID
, CHILD.SOPMAL_CD
, CHILD.CTGRY_NM
, CHILD.CTGRY_DEPTH
, CHILD.SORT_ORDR
, CHILD.CTGRY_DV_CD
, CHILD.EXPSR_CD
, CHILD.URL_DV_CD
, CASE
WHEN CHILD.URL_DV_CD = '01' THEN
CASE
WHEN CHILD.CTGRY_DV_CD = '01' THEN CONCAT('/sopmal/goods/selectGoodsListForm?ctgryId=', CHILD.CTGRY_ID)
ELSE NULL
END
WHEN CHILD.URL_DV_CD = '02' THEN CHILD.URL
ELSE NULL
END URL
, CHILD.USE_AT
, CHILD.EXPSR_BGN_DT
, CHILD.EXPSR_END_DT
FROM GC_CATEGORY CHILD
INNER JOIN CATEGORY_TREE PARENT
ON CHILD.SOPMAL_CD = PARENT.SOPMAL_CD
AND CHILD.UPPER_CTGRY_ID = PARENT.CTGRY_ID
WHERE CHILD.USE_AT = 'Y'
AND (
CHILD.EXPSR_CD = '01'
OR (
CHILD.EXPSR_CD = '03'
AND SYSDATE() BETWEEN CHILD.EXPSR_BGN_DT AND CHILD.EXPSR_END_DT
)
)
)
SELECT CONCAT(GS.PC_DOMN_ADRES, GC.URL) AS TARGET_URL
, DATE_FORMAT(SYSDATE(), '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
, ROUND(POWER(0.8, GC.CTGRY_DEPTH - 1), 4) AS PRIORITY
FROM CATEGORY_TREE GC
INNER JOIN GC_SHOP GS
ON GC.SOPMAL_CD = GS.SOPMAL_CD
WHERE GC.CTGRY_DV_CD != '02'
AND GC.CTGRY_DEPTH != 2
UNION
SELECT CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl?goodsInnb=', GG.GOODS_INNB) AS TARGET_URL
, DATE_FORMAT(GG.UPDT_DT, '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
, ROUND(POWER(0.8, 1), 4) AS PRIORITY
FROM GC_GOODS GG
INNER JOIN GC_SHOP GS
ON GG.SOPMAL_CD = GS.SOPMAL_CD
WHERE GG.USE_AT = 'Y'
AND GG.SOPMAL_CD = #{sopmalCd}
AND GG.GOODS_KND_CD = '01'
AND GG.EXPSR_DV_CD = '01'
AND GG.GOODS_STTUS_CD IN ('01', '02')
UNION
SELECT CONCAT(GS.PC_DOMN_ADRES, '/sopmal/csc/selectBbscttAuth?authDv=CM&amp;bbsTyCd=',
CASE
WHEN GB.BBS_ID = 'sake_column' THEN '01'
WHEN GB.BBS_ID = 'magazine' THEN '09'
ELSE NULL
END,
'&amp;bbscttInnb=', GB.BBSCTT_INNB,
'&amp;reqUrl=subPage&amp;bbsId=', GB.BBS_ID,
'&amp;cscAt='
) AS TARGET_URL
, DATE_FORMAT(GB.UPDT_DT, '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
, ROUND(POWER(0.8, 1), 4) AS PRIORITY
FROM GC_BOARDDATA GB
INNER JOIN GC_SHOP GS
ON GB.SOPMAL_CD = GS.SOPMAL_CD
WHERE GB.USE_AT = 'Y'
AND GB.EXPSR_AT = 'Y'
AND (
GB.NTCE_PD_SETUP_AT = 'N'
OR (
GB.NTCE_PD_SETUP_AT = 'Y'
AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN DATE_FORMAT(GB.NTCE_BGN_DE, '%Y-%m-%d') AND DATE_FORMAT(GB.NTCE_END_DE, '%Y-%m-%d')
)
)
AND GB.BBS_ID IN ('sake_column', 'magazine')
AND depth = 0
ORDER BY PRIORITY DESC
</select>
</mapper> </mapper>

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -4269,6 +4269,9 @@ body {
.header--sub:has(.headerTab) ~ .content-wrap { .header--sub:has(.headerTab) ~ .content-wrap {
padding-top: 96px; padding-top: 96px;
} }
.header--sub:has(.mobile-about-menu) ~ .content-wrap {
padding-top: 96px;
}
.header--sub::before { .header--sub::before {
content: ""; content: "";
position: absolute; position: absolute;
@@ -5706,6 +5709,12 @@ body {
color: #16191d; color: #16191d;
font-weight: 400; font-weight: 400;
} }
.mainNotice__customerContact-alwaysonbottom {
position: fixed;
left: 10px;
bottom: 60px;
z-index: 10;
}
.icon_kakao-customer-service { .icon_kakao-customer-service {
width: 72px; width: 72px;
height: 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; color: #212529;
text-align: center; text-align: center;
} }
.quick-menu__customer-service-alwaysonbottom {
position: fixed;
left: 20px;
bottom: 20px;
z-index: 10;
}
.quick-menu > * + * { .quick-menu > * + * {
margin-top: 16px; 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="loadingImg" style="display:none; position: relative; z-index: 1010;">
<div class="loding_popup_wrap"><img src="/mobile/images/loading.svg" alt="loading"></div> <div class="loding_popup_wrap"><img src="/mobile/images/loading.svg" alt="loading"></div>
</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

@@ -35,6 +35,28 @@
</div> </div>
</div> </div>
</div> </div>
<c:if test="${param.mobileAboutMenuAt eq 'Y' && not empty param.mobileParentCtgryId}">
<c:set var="mobileAboutCurrentCtgryId" value="${param.mobileCurrentCtgryId}"/>
<nav class="home-category mobile-about-menu" aria-label="하위 메뉴">
<div class="home-category__content">
<ul class="home-category__list">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}">
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.rnum eq '3' && topMenuList.upperCtgryId eq param.mobileParentCtgryId && topMenuList.menuExpsrAt eq 'Y'}">
<c:if test="${empty mobileAboutCurrentCtgryId}">
<c:set var="mobileAboutCurrentCtgryId" value="${topMenuList.ctgryId}"/>
</c:if>
<li class="home-category__item<c:if test="${topMenuList.ctgryId eq mobileAboutCurrentCtgryId}"> active</c:if>">
<a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&amp;</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${param.mobileParentCtgryId}"/>&amp;mobileAboutMenuAt=Y&amp;mobileCurrentCtgryId=<c:out value="${topMenuList.ctgryId}"/>"
class="home-category__link">
<c:out value="${topMenuList.ctgryNm}"/>
</a>
</li>
</c:if>
</c:forEach>
</ul>
</div>
</nav>
</c:if>
</div> </div>
<script> <script>
//뒤로가기 이벤트 부여, 각 페이지 마다 이벤트 삭제 후 다른 이벤트 사용 가능 //뒤로가기 이벤트 부여, 각 페이지 마다 이벤트 삭제 후 다른 이벤트 사용 가능

View File

@@ -1070,10 +1070,11 @@
<c:if test="${topMenuList.gnbExpsrAt eq 'Y'}"> <c:if test="${topMenuList.gnbExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}"> <c:if test="${topMenuList.rnum eq '2'}">
<c:set var="mDpth3Chk" value="N"/> <c:set var="mDpth3Chk" value="N"/>
<c:set var="mobileAboutParentAt" value="${topMenuList.ctgryNm eq 'ABOUT'}"/>
<li class="isSub list"> <li class="isSub list">
<div class="isSubDv"> <div class="isSubDv">
<a href="<c:out value="${topMenuList.url}"/>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a> <a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&amp;</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&amp;mobileAboutMenuAt=Y</c:if>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
<a href="<c:out value="${topMenuList.url}"/>" class="moer"></a> <a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&amp;</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&amp;mobileAboutMenuAt=Y</c:if>" class="moer"></a>
</div> </div>
</c:if> </c:if>
<c:if test="${topMenuList.rnum eq '3'}"> <c:if test="${topMenuList.rnum eq '3'}">
@@ -1082,7 +1083,7 @@
<c:set var="mDpth3Chk" value="Y"/> <c:set var="mDpth3Chk" value="Y"/>
<ul class="view"> <ul class="view">
</c:if> </c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li> <li><a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&amp;</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.upperCtgryId}"/>&amp;mobileCurrentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${mobileAboutParentAt}">&amp;mobileAboutMenuAt=Y</c:if>"><c:out value ="${topMenuList.ctgryNm}"/></a></li>
</c:if> </c:if>
<c:if test="${topMenuList.rnum < 4}"> <c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/> <c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
@@ -1233,6 +1234,12 @@
<div id="mbrMarktClauseAgreeDiv"></div> <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> <script>
/*최초 로그인시 마케팅 수신동의를 받지 않았을 경우 마케팅 수신동의 팝업 띄우기*/ /*최초 로그인시 마케팅 수신동의를 받지 않았을 경우 마케팅 수신동의 팝업 띄우기*/
@@ -1271,6 +1278,16 @@ $(document).ready(function() {
if(locationUrl.includes("selectMbrPurchsForm")){ if(locationUrl.includes("selectMbrPurchsForm")){
document.cookie = 'marktAgreeAt=P; path=/' 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

@@ -66,7 +66,7 @@
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}"> <c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}"> <c:if test="${topMenuList.rnum eq '2'}">
<li class="home-category__item"> <li class="home-category__item">
<a href="<c:out value="${topMenuList.url}"/>" onclick="setTopMenuCode()" <c:if test="${not empty topMenuList.menuChrColor}"> style="color:${topMenuList.menuChrColor};"</c:if>><c:out value ="${topMenuList.ctgryNm}"/></a> <a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&amp;</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&amp;mobileAboutMenuAt=Y</c:if>" onclick="setTopMenuCode()" <c:if test="${not empty topMenuList.menuChrColor}"> style="color:${topMenuList.menuChrColor};"</c:if>><c:out value ="${topMenuList.ctgryNm}"/></a>
</li> </li>
</c:if> </c:if>
</c:if> </c:if>

View File

@@ -1272,6 +1272,14 @@
</div> </div>
</c:if> </c:if>
</div> </div>
<%--<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 class="quick-menu__to-top"> <div class="quick-menu__to-top">
<button><i class="icon icon_quick-to-top"></i><span class="visually-hidden">위로 <button><i class="icon icon_quick-to-top"></i><span class="visually-hidden">위로
가기</span></button> 가기</span></button>

View File

@@ -6,7 +6,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %> <%@ 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 Class Name : GnrlBbscttDtlPopupR.jsp
Description : 일반 게시글 상세 조회 화면 Description : 일반 게시글 상세 조회 화면
@@ -161,7 +161,7 @@
<div class="product-group__description"> <div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p> <p><c:out value="${goods.goodsNm}"/></p>
<p class="product-group__description-price"><fmt:formatNumber <p class="product-group__description-price"><fmt:formatNumber
value="${goods.slepric}" pattern="#,###"/>원</p> value="${goods.slepric}" pattern="#,###"/>${curUnit}</p>
</div> </div>
<c:if test="${bbsInfo.bbsTyCd eq '05'}"> <c:if test="${bbsInfo.bbsTyCd eq '05'}">
<input hidden id="goodsInnb" value="${goods.goodsInnb}"/> <input hidden id="goodsInnb" value="${goods.goodsInnb}"/>
@@ -171,6 +171,14 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th>상품 정보 문구</th>
<td colspan="3">
<div class="td-inner" id="relateGoodsWords">
${bbscttInfo.relateGoodsWords}
</div>
</td>
</tr>
</c:if> </c:if>
</c:if> </c:if>
<tr> <tr>

View File

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

View File

@@ -280,8 +280,8 @@
</td> </td>
</c:if> </c:if>
</tr> </tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.goodsChoice eq 'Y'}"> <c:if test="${bbsInfo.goodsChoice eq 'Y'}">
<tr class="visibleAt">
<th>상품 정보 <th>상품 정보
<button type="button" class="btn xsm primary ml-5" <button type="button" class="btn xsm primary ml-5"
onclick="fn_open_modal('#modalDiv', onclick="fn_open_modal('#modalDiv',
@@ -298,8 +298,16 @@
</div> </div>
</div> </div>
</td> </td>
</c:if>
</tr> </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}"> <c:if test="${not empty qesitmList}">
<tr> <tr>
<th>추가 입력 항목</th> <th>추가 입력 항목</th>

View File

@@ -6,6 +6,8 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%> <%@ 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 Class Name : GnrlBbscttUpdtPopupU.jsp
Description : 일반 게시글 등록 팝업 Description : 일반 게시글 등록 팝업
@@ -15,7 +17,6 @@
------- -------- --------------------------- ------- -------- ---------------------------
2024-01-08 김혜지 최초 생성 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 id="board-list-update" class="modal" style="max-width: 1400px;">
<div class="modal-header"> <div class="modal-header">
<h4>게시글 수정</h4> <h4>게시글 수정</h4>
@@ -474,8 +475,8 @@
</td> </td>
</c:if> </c:if>
</tr> </tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}"> <c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
<tr class ="visibleAt">
<th>상품 정보 <th>상품 정보
<c:choose> <c:choose>
<c:when test = "${not empty goods}"> <c:when test = "${not empty goods}">
@@ -510,7 +511,7 @@
</button> </button>
<div class="product-group__description"> <div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p> <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> </div>
<%--게시글 연관 상품--%> <%--게시글 연관 상품--%>
<input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/> <input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/>
@@ -520,8 +521,16 @@
</div> </div>
</div> </div>
</td> </td>
</c:if>
</tr> </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}"> <c:if test="${not empty qesitmList}">
<tr> <tr>
<th>추가 입력 항목</th> <th>추가 입력 항목</th>

View File

@@ -133,6 +133,17 @@
}); });
} }
/* ********************************************************
* xml 임시
******************************************************** */
const fn_update_xml = function () {
const url = '<c:url value="/mngr/goods/goodsmngr/selectGoodsRegistForm"/>';
$('#listForm').attr('action', url);
$('#listForm').attr('method', 'post');
$('#listForm').submit();
};
/* ******************************************************** /* ********************************************************
* 등록폼 이동 * 등록폼 이동
******************************************************** */ ******************************************************** */
@@ -441,6 +452,7 @@
<div class="page-title"> <div class="page-title">
<h2 class="page-title__title">상품 목록</h2> <h2 class="page-title__title">상품 목록</h2>
<div class="page-title__btn-container"> <div class="page-title__btn-container">
<button onclick="fn_update_xml()" class="btn primary">XML 업데이트(임시)</button>
<button onclick="fn_move_regpage()" class="btn primary">상품 <spring:message code="button.insert"/></button> <button onclick="fn_move_regpage()" class="btn primary">상품 <spring:message code="button.insert"/></button>
</div> </div>
</div> </div>

View File

@@ -446,7 +446,8 @@
* 열 헤더, 푸터 > 프린트 버튼 클릭 이벤트 * 열 헤더, 푸터 > 프린트 버튼 클릭 이벤트
*/ */
$(document).on('click', '[class*="btn-order-print"]', function() { $(document).on('click', '[class*="btn-order-print"]', function() {
const tr = ($(this).attr('class').split(' ')[0]).replace('btn-order-print-', 'order-sttus-cd-'); fn_select_dwld_purch_ordr_list();
/*const tr = ($(this).attr('class').split(' ')[0]).replace('btn-order-print-', 'order-sttus-cd-');
const rowCheckboxs = $('.' + tr).closest('#orderList').find('.' + tr + ' input[name="ordrInnb"]:checked'); const rowCheckboxs = $('.' + tr).closest('#orderList').find('.' + tr + ' input[name="ordrInnb"]:checked');
if (rowCheckboxs.length === 0) { if (rowCheckboxs.length === 0) {
@@ -461,7 +462,7 @@
ordrInnbs.push($(item).val()); ordrInnbs.push($(item).val());
}); });
fn_go_ordr_dtstmn_dwld_popup(ordrInnbs) fn_go_ordr_dtstmn_dwld_popup(ordrInnbs)*/
}); });
/* /*

View File

@@ -948,7 +948,14 @@
<div class="main-section-header"> <div class="main-section-header">
<div class="main-section-title"> <div class="main-section-title">
<h3 class="main-section-title__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> </h3>
</div> </div>
</div> </div>

View File

@@ -27,9 +27,15 @@
history.scrollRestoration = 'manual'; history.scrollRestoration = 'manual';
} }
$(window).scrollTop(0); $(window).scrollTop(0);
/*헤더에 타이틀 set*/ /* ABOUT 하위 화면은 게시판명이 아닌 대메뉴명을 표시 */
const title = '<c:out value="${resultMap.bbsInfo.bbsNm}"/>'; <c:choose>
fn_set_header_title(title); <c:when test="${param.mobileAboutMenuAt eq 'Y'}">
fn_set_header_title('ABOUT');
</c:when>
<c:otherwise>
fn_set_header_title('<c:out value="${resultMap.bbsInfo.bbsNm}"/>');
</c:otherwise>
</c:choose>
fn_select_cn(); fn_select_cn();
// data-micromodal-trigger 속성을 가진 버튼을 클릭하면 해당 ID의 모달이 열림 // data-micromodal-trigger 속성을 가진 버튼을 클릭하면 해당 ID의 모달이 열림
// 모달 배경화면 스크롤 방지 // 모달 배경화면 스크롤 방지
@@ -1253,6 +1259,7 @@
<i class="icon icon_lock"></i> <i class="icon icon_lock"></i>
</c:if> </c:if>
</h4> </h4>
<c:if test="${param.mobileAboutMenuAt ne 'Y'}">
<ul class="eventDetail__list"> <ul class="eventDetail__list">
<c:if test="${bbsInfo.registDtYn eq 'Y'}"> <c:if test="${bbsInfo.registDtYn eq 'Y'}">
<li><c:out value="${bbscttInfo.sumRegistDt}"/></li> <li><c:out value="${bbscttInfo.sumRegistDt}"/></li>
@@ -1294,6 +1301,7 @@
</c:choose> </c:choose>
</li> </li>
</ul> </ul>
</c:if>
</div> </div>
<%-------------------------------%> <%-------------------------------%>
<%--첨부 파일 다운로드 영역--%> <%--첨부 파일 다운로드 영역--%>
@@ -1753,6 +1761,9 @@
</div> </div>
</div> </div>
<form id="hiddenForm"> <form id="hiddenForm">
<input type="hidden" name="mobileParentCtgryId" value="<c:out value="${param.mobileParentCtgryId}"/>"/>
<input type="hidden" name="mobileAboutMenuAt" value="<c:out value="${param.mobileAboutMenuAt}"/>"/>
<input type="hidden" name="mobileCurrentCtgryId" value="<c:out value="${param.mobileCurrentCtgryId}"/>"/>
<%--목록 관련--%> <%--목록 관련--%>
<input type="hidden" name="pageIndex" value="<c:out value="${bbscttVO.pageIndex}"/>"/> <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="bbsTyCd" value="<c:out value="${bbscttVO.bbsTyCd}"/>"/>

View File

@@ -314,6 +314,9 @@
</div> </div>
</form> </form>
<form id = "dtlForm" action="/sopmal/csc/selectBbscttDtlInqire" method="get"> <form id = "dtlForm" action="/sopmal/csc/selectBbscttDtlInqire" method="get">
<input type="hidden" name="mobileParentCtgryId" value="<c:out value="${param.mobileParentCtgryId}"/>"/>
<input type="hidden" name="mobileAboutMenuAt" value="<c:out value="${param.mobileAboutMenuAt}"/>"/>
<input type="hidden" name="mobileCurrentCtgryId" value="<c:out value="${param.mobileCurrentCtgryId}"/>"/>
<input type="hidden" name="bbscttInnb" id="bbscttInnb"><%--게시글 고유번호--%> <input type="hidden" name="bbscttInnb" id="bbscttInnb"><%--게시글 고유번호--%>
<input type="hidden" name="bbsId" value="<c:out value = "${bbsInfo.bbsId}"/>"/><%--게시판아이디--%> <input type="hidden" name="bbsId" value="<c:out value = "${bbsInfo.bbsId}"/>"/><%--게시판아이디--%>
<input type="hidden" name="bbsTyCd" value="<c:out value = "${bbsInfo.bbsTyCd}"/>"/><%--게시판타입--%> <input type="hidden" name="bbsTyCd" value="<c:out value = "${bbsInfo.bbsTyCd}"/>"/><%--게시판타입--%>

View File

@@ -39,9 +39,15 @@
awaitCloseAnimation: true, awaitCloseAnimation: true,
}); });
/*헤더에 타이틀 set*/ /* ABOUT 하위 화면은 게시판명이 아닌 대메뉴명을 표시 */
const title = '<c:out value="${resultMap.bbsInfo.bbsNm}"/>';/*게시판이름*/ <c:choose>
fn_set_header_title(title); <c:when test="${param.mobileAboutMenuAt eq 'Y'}">
fn_set_header_title('ABOUT');
</c:when>
<c:otherwise>
fn_set_header_title('<c:out value="${resultMap.bbsInfo.bbsNm}"/>');
</c:otherwise>
</c:choose>
/*box_tab 클릭 이벤트*/ /*box_tab 클릭 이벤트*/
$(".headerTab__item").on("click", function () { $(".headerTab__item").on("click", function () {
@@ -347,6 +353,11 @@
fn_create_input("reqUrl","subPage", form); fn_create_input("reqUrl","subPage", form);
fn_create_input("bbsId", $("#bbsId").val(), form); fn_create_input("bbsId", $("#bbsId").val(), form);
fn_create_input("cscAt", $("#cscAt").val(), form); fn_create_input("cscAt", $("#cscAt").val(), form);
<c:if test="${param.mobileAboutMenuAt eq 'Y'}">
fn_create_input("mobileParentCtgryId", '<c:out value="${param.mobileParentCtgryId}"/>', form);
fn_create_input("mobileAboutMenuAt", 'Y', form);
fn_create_input("mobileCurrentCtgryId", '<c:out value="${param.mobileCurrentCtgryId}"/>', form);
</c:if>
/*let pageUnit = ''; /*let pageUnit = '';
//페이지 유닛 계산 //페이지 유닛 계산
const pgeVtcCnt = $("#pgeVtcCnt").val();//ROW const pgeVtcCnt = $("#pgeVtcCnt").val();//ROW
@@ -570,7 +581,7 @@
let regusrNm; let regusrNm;
if (resultList.regusrDvCd === '99') { if (resultList.regusrDvCd === '99') {
regusrNm = `\${ resultList.maskingRegusrNm}[비회원]`; regusrNm = `\${ resultList.maskingRegusrNm}[비회원]`;
} else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb !== null) { } else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb != null) {
regusrNm = `naverpay`; regusrNm = `naverpay`;
} else if (resultList.regusrDvCd === '02') { } else if (resultList.regusrDvCd === '02') {
regusrNm = `\${ resultList.mngrNm}`; regusrNm = `\${ resultList.mngrNm}`;
@@ -631,7 +642,7 @@
// 비밀글 여부 // 비밀글 여부
if (resultList.secretBbscttAt === 'Y') { if (resultList.secretBbscttAt === 'Y') {
if (resultList.regusrDvCd !== '02') { if (resultList.regusrDvCd !== '02') {
if (resultList.answCn !== null) { if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `; list += `[\${resultList.answCn}] `;
} }
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`; list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
@@ -639,7 +650,7 @@
list += `비밀글입니다.`; list += `비밀글입니다.`;
} }
} else { } else {
if (resultList.answCn !== null) { if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `; list += `[\${resultList.answCn}] `;
} }
list += sj; list += sj;
@@ -649,7 +660,7 @@
<ul class="eventList__list">`; <ul class="eventList__list">`;
// 답변 여부 표시 // 답변 여부 표시
if (bbsInfo.answRegist === 'Y') { if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) { if (resultList.answBbscttInnb != null) {
list += `<li>답변완료</li>`; list += `<li>답변완료</li>`;
} else { } else {
list += `<li>답변대기</li>`; list += `<li>답변대기</li>`;
@@ -680,7 +691,7 @@
list += ` </ul> list += ` </ul>
</a>`; </a>`;
if(bbsInfo.answRegist === 'Y') { if(bbsInfo.answRegist === 'Y') {
if(resultList.answBbscttInnb !== null){ if(resultList.answBbscttInnb != null){
list += `<a class="eventList__item dtlBtn item" style="cursor:pointer" > list += `<a class="eventList__item dtlBtn item" style="cursor:pointer" >
<input type="hidden" class="bbscttInnb" value="\${ resultList.bbscttInnb}"> <input type="hidden" class="bbscttInnb" value="\${ resultList.bbscttInnb}">
<div class="eventList__top"> <div class="eventList__top">
@@ -718,7 +729,7 @@
<ul class="eventList__list">`; <ul class="eventList__list">`;
// 답변 여부 표시 // 답변 여부 표시
if (bbsInfo.answRegist === 'Y') { if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) { if (resultList.answBbscttInnb != null) {
list += `<li>답변완료</li>`; list += `<li>답변완료</li>`;
} else { } else {
list += `<li>답변대기</li>`; list += `<li>답변대기</li>`;
@@ -760,7 +771,7 @@
// 비밀글 여부 // 비밀글 여부
if (resultList.secretBbscttAt === 'Y') { if (resultList.secretBbscttAt === 'Y') {
if (resultList.regusrDvCd !== '02') { if (resultList.regusrDvCd !== '02') {
if (resultList.answCn !== null) { if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `; list += `[\${resultList.answCn}] `;
} }
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`; list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
@@ -768,7 +779,7 @@
list += `비밀글입니다.`; list += `비밀글입니다.`;
} }
} else { } else {
if (resultList.answCn !== null) { if (resultList.answCn != null) {
list += `[\${resultList.answCn}] `; list += `[\${resultList.answCn}] `;
} }
list += `\${sj}`; list += `\${sj}`;
@@ -779,7 +790,7 @@
// 답변 여부 표시 // 답변 여부 표시
if (bbsInfo.answRegist === 'Y') { if (bbsInfo.answRegist === 'Y') {
if (resultList.answBbscttInnb !== null) { if (resultList.answBbscttInnb != null) {
list += `<span class="myQnaList__info__date">답변완료</span>`; list += `<span class="myQnaList__info__date">답변완료</span>`;
} else { } else {
list += `<span class="myQnaList__info__date">답변대기</span>`; list += `<span class="myQnaList__info__date">답변대기</span>`;

View File

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

View File

@@ -29,6 +29,16 @@
const title = '상품 목록'; const title = '상품 목록';
fn_set_header_title(title); fn_set_header_title(title);
const $categoryList = $('.header--sub > .home-category .home-category__list');
const $activeCategory = $categoryList.find('.home-category__item.active');
if ($activeCategory.length) {
const listElement = $categoryList.get(0);
const activeRect = $activeCategory.get(0).getBoundingClientRect();
const listRect = listElement.getBoundingClientRect();
const activeCenter = activeRect.left - listRect.left + listElement.scrollLeft + (activeRect.width / 2);
$categoryList.scrollLeft(Math.max(0, activeCenter - (listElement.clientWidth / 2)));
}
let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>'; let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>';
fn_select_list(pageIndex); fn_select_list(pageIndex);
@@ -1116,12 +1126,12 @@
<nav class="home-category"> <nav class="home-category">
<div class="home-category__content"> <div class="home-category__content">
<ul class="home-category__list"> <ul class="home-category__list">
<li class="home-category__item active"> <li class="home-category__item<c:if test="${resultMap.BOGoodsVO.ctgryId eq resultMap.BOGoodsVO.upperCtgryId}"> active</c:if>">
<a href="javascript:void(0);" data-text="${resultMap.goodsCategoryList[0].baseCtgryNm}" data-value="${resultMap.goodsCategoryList[0].baseCtgryId}">전체</a> <a href="javascript:void(0);" data-text="${resultMap.goodsCategoryList[0].baseCtgryNm}" data-value="${resultMap.goodsCategoryList[0].baseCtgryId}">전체</a>
</li> </li>
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status"> <c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status">
<c:if test="${goodsCategory.ctgryId ne resultMap.BOGoodsVO.ctgryId}"> <c:if test="${goodsCategory.upperCtgryId eq resultMap.BOGoodsVO.upperCtgryId}">
<li class="home-category__item "> <li class="home-category__item<c:if test="${goodsCategory.ctgryId eq resultMap.BOGoodsVO.ctgryId}"> active</c:if>">
<a href="javascript:void(0);" data-value="${goodsCategory.ctgryId}"> ${goodsCategory.ctgryNm}</a> <a href="javascript:void(0);" data-value="${goodsCategory.ctgryId}"> ${goodsCategory.ctgryNm}</a>
</li> </li>
</c:if> </c:if>

View File

@@ -201,6 +201,20 @@
</c:if> </c:if>
<div class="sub-box"> <div class="sub-box">
<div class="mainNotice__wrapper"> <div class="mainNotice__wrapper">
<%--<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>
<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>
</p>
</div>
</div>--%>
<a class="myPageMain__logout" href="/sopmal/logout"> <a class="myPageMain__logout" href="/sopmal/logout">
<i class="icon icon_myLogout"></i> <i class="icon icon_myLogout"></i>
로그아웃 로그아웃