GoodsDealDescFormMob.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <!--
  5. *******************************************************************************
  6. * @source : GoodsDetailDescFormMob.html
  7. * @desc : 딜 구상상품상세 Page
  8. *============================================================================
  9. * STYLE24
  10. * Copyright(C) 2020 TSIT, All rights reserved.
  11. *============================================================================
  12. * VER DATE AUTHOR DESCRIPTION
  13. * === =========== ========== =============================================
  14. * 1.0 2021.04.19 eskim 최초 작성
  15. *******************************************************************************
  16. -->
  17. <div class="content pd_descrp" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
  18. <div class="cont_head">
  19. <h3 class="sr-only">상품상세정보</h3>
  20. </div>
  21. <div class="cont_body on">
  22. <!-- 상품설명 노출 -->
  23. <div class="descrp_box" th:if="${goodsInfo.tobeFormYn == 'Y'}">
  24. <div class="desc_simple"> <!-- 상품 간략설명-->
  25. <span class="tit_desc" th:if="${goodsInfo.goodsTitle != null and !goodsInfo.goodsTitle.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitle))}">사이드 밴딩으로 편안한 만능 슬랙스!</span>
  26. <p class="ptxt01"th:if="${goodsInfo.goodsTitleDesc}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitleDesc))}">
  27. 슬림핏에 사이드 밴딩으로 편안함을 더해준 슬랙스입니다.
  28. </p>
  29. </div>
  30. <div class="desc_character" th:if="${goodsInfo.goodsSpecialDesc != null and !goodsInfo.goodsSpecialDesc.empty}"> <!-- 상품특징 -->
  31. <span class="tit_desc">상품특징</span>
  32. <p class="ptxt01" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsSpecialDesc))}">
  33. - 지퍼플러 장식을 더해 완성도를 높여줌
  34. </p>
  35. </div>
  36. </div>
  37. <!-- //상품설명 노출 -->
  38. <!-- 관리자 에디터입력 내용 노출 -->
  39. <div class="mdhtml_box bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
  40. <th:block th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
  41. </div>
  42. <!-- 공통상품베너 -->
  43. <div class="mdhtml_box bnnoti" th:if="${goodsBannerList != null and !goodsBannerList.empty}">
  44. <th:block th:each="goodsBanner, status : ${goodsBannerList}" >
  45. <th:block th:if="${goodsBanner.strVar1 != null and not #strings.equals(goodsBanner.strVar1, '#')}">
  46. <div style="height:4rem"></div><!-- 여백용 html -->
  47. <a th:href="${goodsBanner.strVar1}" target="_blank">
  48. <img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
  49. </a>
  50. </th:block>
  51. <th:block th:unless="${goodsBanner.strVar1 != null and not #strings.equals(goodsBanner.strVar1, '#')}">
  52. <div style="height:4rem"></div><!-- 여백용 html -->
  53. <img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
  54. </th:block>
  55. </th:block>
  56. </div>
  57. <div class="mdhtml_box">
  58. <!-- 관리자 에디터입력 내용 공지 html -->
  59. <th:block th:each="goodsVideo, status : ${goodsVideoList}">
  60. <div class="movblock">
  61. <th:block th:if="${goodsVideo.videoGb == 'Y'}">
  62. <div style="height:4rem"></div><!-- 여백용 html -->
  63. <iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  64. </th:block>
  65. <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
  66. <div style="height:4rem"></div><!-- 여백용 html -->
  67. <iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  68. </th:block>
  69. </div>
  70. </th:block>
  71. </div>
  72. <div class="mdhtml_box bnnoti" th:if="${goodsInfo.goodsTopDesc != null and !goodsInfo.goodsTopDesc.empty }">
  73. <!-- 관리자 에디터입력 내용 노출 상단 html -->
  74. <div style="height:4rem"></div><!-- 여백용 html -->
  75. <th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
  76. </div>
  77. <div class="mdhtml_box" >
  78. <th:block th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null and !goodsInfo.goodsDesc.empty}" >
  79. <div style="height:4rem"></div><!-- 여백용 html -->
  80. <div id="goodsDescHtml"></div>
  81. </th:block>
  82. </div>
  83. <th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
  84. <!-- 착용컷 노출 -->
  85. <div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_C1')
  86. or #strings.contains(goodsImgList,'_C2')
  87. or #strings.contains(goodsImgList,'_C3')
  88. or #strings.contains(goodsImgList,'_C4')
  89. or #strings.contains(goodsImgList,'_C5')}">
  90. <span class="tit_view">OUTFIT VIEW</span>
  91. <span class="model_info">(모델정보 : 185cm / 78kg / XL 착용)</span>
  92. <div class="view">
  93. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1')
  94. or #strings.contains(goodsImg.sysImgNm,'_C2')
  95. or #strings.contains(goodsImg.sysImgNm,'_C3')
  96. or #strings.contains(goodsImg.sysImgNm,'_C4')
  97. or #strings.contains(goodsImg.sysImgNm,'_C5')}">
  98. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  99. </th:block>
  100. </div>
  101. </div>
  102. <!-- //착용컷 노출 -->
  103. <!-- 상품컷 노출 -->
  104. <div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01') or #strings.contains(goodsImgList,'_02')
  105. or #strings.contains(goodsImgList,'_D1') or #strings.contains(goodsImgList,'_D2')
  106. or #strings.contains(goodsImgList,'_D3') or #strings.contains(goodsImgList,'_D4')
  107. or #strings.contains(goodsImgList,'_D5') or #strings.contains(goodsImgList,'_D6')
  108. or #strings.contains(goodsImgList,'_D7') or #strings.contains(goodsImgList,'_D8')
  109. or #strings.contains(goodsImgList,'_D9') or #strings.contains(goodsImgList,'_D10')
  110. or #strings.contains(goodsImgList,'_D11') or #strings.contains(goodsImgList,'_D12')
  111. or #strings.contains(goodsImgList,'_D13') or #strings.contains(goodsImgList,'_D14')
  112. or #strings.contains(goodsImgList,'_D15') or #strings.contains(goodsImgList,'_D16')
  113. or #strings.contains(goodsImgList,'_D17') or #strings.contains(goodsImgList,'_D18')
  114. or #strings.contains(goodsImgList,'_D19') or #strings.contains(goodsImgList,'_D20')}">
  115. <span class="tit_view">PRODUCT VIEW</span>
  116. <div class="view">
  117. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
  118. or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
  119. or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
  120. or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
  121. or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
  122. or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
  123. or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
  124. or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
  125. or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
  126. or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
  127. or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
  128. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  129. </th:block>
  130. </div>
  131. </div>
  132. <!-- //상품컷 노출 -->
  133. <!-- 원단 노출 -->
  134. <div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_F1')}">
  135. <span class="tit_view">FABRIC</span>
  136. <div class="view">
  137. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
  138. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  139. </th:block>
  140. </div>
  141. </div>
  142. <!-- //원단 노출 -->
  143. <!-- 라벨 노출 -->
  144. <div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1')
  145. or #strings.contains(goodsImgList,'_L2')}">
  146. <span class="tit_view">LABEL INFO</span>
  147. <div class="view">
  148. <span>
  149. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
  150. or #strings.contains(goodsImg.sysImgNm,'_L2')}">
  151. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  152. </th:block>
  153. </span>
  154. </div>
  155. </div>
  156. <!-- //네이밍룰 안맞는 이미지 노출-->
  157. <div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01')}">
  158. <div class="view">
  159. <th:block th:each="goodsImg, status : ${goodsImgList}" >
  160. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  161. </th:block>
  162. </div>
  163. </div>
  164. </th:block>
  165. <!-- 관리자 에디터입력 내용 노출 하다단 html -->
  166. <div class="mdhtml_box bnnoti" th:if="${goodsInfo.goodsDownDesc != null and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
  167. <!-- 브랜드 노출 -->
  168. <div class="brand_box">
  169. <p class="name" th:text="${goodsInfo.brandGroupNm}">TBJ 티비제이</p>
  170. <a href="javascript:void(0);" class="brend_home" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" ><span>브랜드 홈 바로가기</span></a>
  171. </div>
  172. <!-- //브랜드 노출 -->
  173. <!-- 상품필수정보 노출 -->
  174. <div class="required_box">
  175. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsNotiList != null and !goodsNotiList.empty}">
  176. <span class="title">상품고시정보</span>
  177. <div class="tbl type1">
  178. <table>
  179. <tbody>
  180. <tr th:each="goodsNoti, status : ${goodsNotiList}" >
  181. <th th:text="${goodsNoti.niItemNm}">스타일</th>
  182. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  183. </tr>
  184. </tbody>
  185. </table>
  186. </div>
  187. </div>
  188. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
  189. <span class="title">상품고시정보</span>
  190. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  191. <div class="tbl type1">
  192. <table>
  193. <tbody>
  194. <tr th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" >
  195. <th th:text="${goodsNoti.niItemNm}">스타일</th>
  196. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  197. </tr>
  198. </tbody>
  199. </table>
  200. </div>
  201. </th:block>
  202. </div>
  203. <th:block th:if="${goodsSafeNo != null}" >
  204. <th:block th:if="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 상세별도표시 -->
  205. <div class="area_kcl no-mark">
  206. <div>
  207. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  208. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / 제품 상세정보 내 별도 표기</p>
  209. <p class="normal">제품 상세정보 내 표기되어 있습니다. 상품 정보를 확인해주세요.</p>
  210. </div>
  211. </div>
  212. </th:block>
  213. <th:block th:unless="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- 인증 -->
  214. <th:block th:if="${goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 -->
  215. <div class="area_kcl">
  216. <div><i class="ico ico_kcl"></i></div>
  217. <div>
  218. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  219. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / 공급자적합성확인</p>
  220. <p class="normal">공급자 적합성 확인 품목으로 국가통합인증을 필함</p>
  221. </div>
  222. </div>
  223. </th:block>
  224. <th:block th:unless="${goodsSafeNo.certType == 'G081_3'}" > <!-- 공급자적합성 외 -->
  225. <div class="area_kcl" >
  226. <div><i class="ico ico_kcl"></i></div>
  227. <div>
  228. <th:block th:if="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  229. <p class="tit normal">
  230. <th:block th:if="${goodsSafeNo.certDiv}" th:text="${goodsSafeNo.certDiv}"></th:block>
  231. <th:block th:if="${goodsSafeNo.certOrganName}" th:text="${' /' + goodsSafeNo.certOrganName}"></th:block>
  232. </p>
  233. </th:block>
  234. <th:block th:unless="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  235. <p class="tit normal" >
  236. <th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  237. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block>
  238. </p>
  239. </th:block>
  240. <p class="normal" th:if="${goodsSafeNo.certNum}">
  241. <th:block th:if="${goodsSafeNo.certFormGb == 'G084_4' or goodsSafeNo.certFormGb == 'G084_5' }">
  242. <span>인증번호:</span> <th:block th:text="${goodsSafeNo.certNum}">CB123A123-1234</th:block>
  243. </th:block>
  244. <th:block th:unless="${goodsSafeNo.certFormGb == 'G084_4' or goodsSafeNo.certFormGb == 'G084_5' }">
  245. <span>인증번호:</span> <a class="num" th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsSafeNo.certNum})}" target="_blank" th:text="${goodsSafeNo.certNum}">CB123A123-1234</a>
  246. </th:block>
  247. </p>
  248. </div>
  249. </div>
  250. </th:block>
  251. </th:block>
  252. <p class="t_info dot_info mt10">
  253. 해당 인증정보는 판매자가 등록한 것으로 등록정보에 대한 일체의 책임은 판매자에게 있습니다.
  254. </p>
  255. </th:block>
  256. <div class="area_infotbl">
  257. <span class="title">상품기본정보</span>
  258. <th:block th:if="${goodsInfo.goodsType == 'G056_N'} ">
  259. <div class="tbl type1">
  260. <table>
  261. <tbody>
  262. <tr>
  263. <th>상품코드</th>
  264. <td th:text="${goodsInfo.goodsCd}">14443216</td>
  265. </tr>
  266. <tr>
  267. <th>상품구분</th>
  268. <td th:text="${goodsInfo.goodsGbNm}">병행수입</td>
  269. </tr>
  270. <tr>
  271. <th>브랜드</th>
  272. <td th:text="${goodsInfo.brandGroupNm}">TBJ</td>
  273. </tr>
  274. <tr>
  275. <th>상품명</th>
  276. <td th:text="${goodsInfo.goodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
  277. </tr>
  278. <th:block th:if="${goodsNotiList != null and !goodsNotiList.empty}">
  279. <th:block th:each="goodsNoti, status : ${goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  280. <tr>
  281. <th th:text="${goodsNoti.niItemNm}">제조사</th>
  282. <td th:text="${goodsNoti.niContent}"></td>
  283. </tr>
  284. </th:block>
  285. </th:block>
  286. <tr>
  287. <th>제조국</th>
  288. <td th:text="${goodsInfo.originNm}">베트남</td>
  289. </tr>
  290. </tbody>
  291. </table>
  292. </div>
  293. </th:block>
  294. <th:block th:unless="${goodsInfo.goodsType == 'G056_N'} ">
  295. <th:block th:if="${goodsComposeList != null and !goodsComposeList.empty}">
  296. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  297. <div class="tbl type1">
  298. <table>
  299. <tbody>
  300. <tr>
  301. <th>상품코드</th>
  302. <td th:text="${goodsCompose.compsGoodsCd}">14443216</td>
  303. </tr>
  304. <tr>
  305. <th>상품구분</th>
  306. <td th:text="${goodsCompose.goodsGbNm}">병행수입</td>
  307. </tr>
  308. <tr>
  309. <th>브랜드</th>
  310. <td th:text="${goodsCompose.brandGroupNm}">TBJ</td>
  311. </tr>
  312. <tr>
  313. <th>상품명</th>
  314. <td th:text="${goodsCompose.compsGoodsNm}">남성 테이퍼드 핏 겨울 기모면 스판 올 밴딩 팬츠</td>
  315. </tr>
  316. <th:block th:if="${goodsCompose.goodsNotiList != null and !goodsCompose.goodsNotiList.empty}">
  317. <th:block th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  318. <tr>
  319. <th th:text="${goodsNoti.niItemNm}">제조사</th>
  320. <td th:text="${goodsNoti.niContent}"></td>
  321. </tr>
  322. </th:block>
  323. </th:block>
  324. <tr>
  325. <th>제조국</th>
  326. <td th:text="${goodsCompose.originNm}">베트남</td>
  327. </tr>
  328. </tbody>
  329. </table>
  330. </div>
  331. </th:block>
  332. </th:block>
  333. </th:block>
  334. <p class="t_info dot_info mt10">
  335. 주문제작 상품의 경우 주문 후 제작되어 판매되는 상품으로 제작 시점부터 반품/교환이 어려울 수 있습니다.
  336. </p>
  337. </div>
  338. </div>
  339. <!-- //상품필수정보 노출 -->
  340. </div>
  341. </div>
  342. <script th:inline="javascript">
  343. /*<![CDATA[*/
  344. // 상품상세 asis html 이지미 경로 수정
  345. $(document).ready( function() {
  346. $(".pd_descrp .cont_body").find('img').each(function() {
  347. let tmpImgSrc = $(this).attr('src');
  348. if (tmpImgSrc.indexOf('Upload') == 1 ){ // /Upload
  349. $(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local").replace('/Upload/Local', "/Local"));
  350. }
  351. });
  352. //210526_ 추가 : 이미지 style 속성 제거
  353. $(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
  354. });
  355. //상품상세 적용
  356. // 입점 html 에 태그가 정상적이지 않아 스크립트로 처리
  357. var goodsDesc = [[${goodsInfo.goodsDesc}]];
  358. if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
  359. $('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
  360. $(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style"); // 이 위치에 있어야해요.
  361. }
  362. /*]]>*/
  363. </script>
  364. </html>