MypageReviewCreateFormWeb.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732
  1. <!DOCTYPE html>
  2. <html lang="ko" xmlns:th="http://www.thymeleaf.org"
  3. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  4. layout:decorator="web/common/layout/MypageLayoutWeb">
  5. <!--
  6. *******************************************************************************
  7. * @source : MypageReviewFormWeb.html
  8. * @desc : 마이페이지 > 리뷰 Page
  9. *============================================================================
  10. * STYLE24
  11. * Copyright(C) 2021 TSIT, All rights reserved.
  12. *============================================================================
  13. * VER DATE AUTHOR DESCRIPTION
  14. * === =========== ========== =============================================
  15. * 1.0 2021.03.24 sowon 최초 작성
  16. *******************************************************************************
  17. -->
  18. <body>
  19. <th:block layout:fragment="content">
  20. <div class="content myReviewWrite"> <!-- 페이지특정 클래스 = myReviewWrite -->
  21. <div class="cont_body">
  22. <!-- CONT-BODY -->
  23. <div class="lnb">
  24. <div class="lnb_tit">
  25. <h2>마이페이지</h2>
  26. </div>
  27. <div class="lnb_list">
  28. <ul id="mypageLnbList"></ul>
  29. </div>
  30. </div>
  31. <div class="cont">
  32. <div class="sec_head">
  33. <h3 class="subH1">리뷰</h3>
  34. </div>
  35. <div class="sec_body">
  36. <div class="com_info_txt">
  37. <p class="tit">리뷰 안내</p>
  38. <ul>
  39. <li>일반 리뷰 작성 시 150P, 포토/영상 리뷰는 350P가 적립됩니다!</li>
  40. <li>월 최대 10,000 P까지 적립 가능합니다.(합산 후 월 1회 지급)</li>
  41. <li>베스트 리뷰로 선정되면 10,000P가 추가 적립됩니다!</li>
  42. <li>리뷰 작성시 욕설, 비방, 선정적인 내용등이 있을 경우 통보 없이 관리자에 의해 삭제 될 수 있습니다.</li>
  43. </ul>
  44. </div>
  45. <form class="form_wrap" id="reviewForm" th:action="@{'/mypage/review/save'}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
  46. <input type="hidden" name="ordNo" th:value="${reviewInfo.ordNo}">
  47. <input type="hidden" name="ordDtlNo" th:value="${reviewInfo.ordDtlNo}">
  48. <input type="hidden" name="goodsCd" th:value="${reviewInfo.goodsCd}">
  49. <input type="hidden" name="custNo" th:value="${reviewInfo.custNo}">
  50. <input type="hidden" name="reviewStat" th:value="${reviewStat}">
  51. <input type="hidden" name="reviewSq" th:if="${reviewStat == 'u'}" th:value="${reviewInfo.reviewSq}">
  52. <h4 class="subH3">리뷰쓰기</h4>
  53. <div class="part_goods">
  54. <div class="goods_cont">
  55. <!-- 주문상품 -->
  56. <div class="goods_info">
  57. <div class="order_desc">
  58. <div class="goods_box">
  59. <div class="gd_item">
  60. <a th:onclick="cfnGoToGoodsDetail([[${ reviewInfo.goodsCd}]])" >
  61. <span class="thumb">
  62. <img th:src="${imageUrl + '/' + reviewInfo.sysImgNm +'?RS=550'}" width="100%" alt="">
  63. </span>
  64. <p>
  65. <span class="buy_date"><em th:text="${reviewInfo.ordDt}"></em>&nbsp;구매</span>
  66. </p>
  67. <p>
  68. <span class="brand" th:text="${reviewInfo.brandNm}"></span>
  69. <!-- <span class="tag">STYLE24 일반배송</span> -->
  70. </p>
  71. <p>
  72. <span class="name" th:text="${reviewInfo.goodsNm}"></span>
  73. </p>
  74. </a>
  75. </div>
  76. <div class="gd_opt">
  77. <div class="option_wrap">
  78. <span class="title sr-only">주문 옵션</span>
  79. <div id="optionDiv"><span class="option"></span></div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <!-- //주문상품 -->
  86. </div>
  87. </div>
  88. <h4 class="subH3">별점 선택</h4>
  89. <div class="tbl type1">
  90. <table>
  91. <colgroup>
  92. <col width="170">
  93. <col width="*">
  94. </colgroup>
  95. <tr>
  96. <th>
  97. 별점
  98. </th>
  99. <td>
  100. <div class="input_starscore" id="star">
  101. <input type="hidden" id="score" name="score">
  102. <button type="button" id="starBtn"></button>
  103. <button type="button" id="starBtn"></button>
  104. <button type="button" id="starBtn"></button>
  105. <button type="button" id="starBtn"></button>
  106. <button type="button" id="starBtn"></button>
  107. </div>
  108. </td>
  109. </tr>
  110. </table>
  111. </div>
  112. <h4 class="subH3">키 / 몸무게</h4>
  113. <div class="tbl type1">
  114. <table>
  115. <colgroup>
  116. <col width="170">
  117. <col width="*">
  118. </colgroup>
  119. <tr>
  120. <th>
  121. </th>
  122. <td>
  123. <div class="input_my_physical">
  124. <div class="form_field">
  125. <div class="input_wrap">
  126. <input type="text" class="form_control" placeholder="숫자만 입력해 주세요." data-valid-type="numeric" maxlength="3" id="height" name="height">
  127. <span class="unit">cm</span>
  128. </div>
  129. </div>
  130. </div>
  131. </td>
  132. </tr>
  133. <tr>
  134. <th>
  135. 몸무게
  136. </th>
  137. <td>
  138. <div class="input_my_physical">
  139. <div class="form_field">
  140. <div class="input_wrap">
  141. <input type="text" class="form_control" placeholder="숫자만 입력해 주세요." data-valid-type="numeric" maxlength="3" id="weight" name="weight">
  142. <span class="unit">kg</span>
  143. </div>
  144. </div>
  145. </div>
  146. </td>
  147. </tr>
  148. </table>
  149. </div>
  150. <th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B' or reviewInfo.sizeGb == 'S'}">
  151. <h4 class="subH3">상품 평가</h4>
  152. <div class="tbl type1">
  153. <table>
  154. <colgroup>
  155. <col width="170">
  156. <col width="*">
  157. </colgroup>
  158. <th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B' or reviewInfo.sizeGb == 'S'}">
  159. <tr>
  160. <th>
  161. 사이즈
  162. </th>
  163. <td>
  164. <div class="input_simple_review">
  165. <div class="form_field">
  166. <div>
  167. <input type="radio" name="scoreSize" id="rdi_review_size1" value="1">
  168. <label for="rdi_review_size1"><span>작음</span></label>
  169. </div>
  170. <div>
  171. <input type="radio" name="scoreSize" id="rdi_review_size2" value="2">
  172. <label for="rdi_review_size2"><span>딱맞음</span></label>
  173. </div>
  174. <div>
  175. <input type="radio" name="scoreSize" id="rdi_review_size3" value="3">
  176. <label for="rdi_review_size3"><span>큼</span></label>
  177. </div>
  178. </div>
  179. </div>
  180. </td>
  181. </tr>
  182. <tr>
  183. <th>
  184. 컬러
  185. </th>
  186. <td>
  187. <div class="input_simple_review">
  188. <div class="form_field">
  189. <div>
  190. <input type="radio" name="scoreColor" id="rdi_review_color1" value="1">
  191. <label for="rdi_review_color1"><span>밝음</span></label>
  192. </div>
  193. <div>
  194. <input type="radio" name="scoreColor" id="rdi_review_color2" value="2">
  195. <label for="rdi_review_color2"><span>똑같음</span></label>
  196. </div>
  197. <div>
  198. <input type="radio" name="scoreColor" id="rdi_review_color3" value="3">
  199. <label for="rdi_review_color3"><span>어두움</span></label>
  200. </div>
  201. </div>
  202. </div>
  203. </td>
  204. </tr>
  205. </th:block>
  206. <th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B'}">
  207. <tr>
  208. <th>
  209. </th>
  210. <td>
  211. <div class="input_simple_review">
  212. <div class="form_field">
  213. <div>
  214. <input type="radio" name="scoreFit" id="rdi_review_fit1" value="1">
  215. <label for="rdi_review_fit1"><span>슬림</span></label>
  216. </div>
  217. <div>
  218. <input type="radio" name="scoreFit" id="rdi_review_fit2" value="2">
  219. <label for="rdi_review_fit2"><span>레귤러</span></label>
  220. </div>
  221. <div>
  222. <input type="radio" name="scoreFit" id="rdi_review_fit3" value="3">
  223. <label for="rdi_review_fit3"><span>오버</span></label>
  224. </div>
  225. </div>
  226. </div>
  227. </td>
  228. </tr>
  229. <tr>
  230. <th>
  231. 두께감
  232. </th>
  233. <td>
  234. <div class="input_simple_review">
  235. <div class="form_field">
  236. <div>
  237. <input type="radio" name="scoreThick" id="rdi_review_thick1" value="1">
  238. <label for="rdi_review_thick1"><span>얇음</span></label>
  239. </div>
  240. <div>
  241. <input type="radio" name="scoreThick" id="rdi_review_thick2" value="2">
  242. <label for="rdi_review_thick2"><span>적당함</span></label>
  243. </div>
  244. <div>
  245. <input type="radio" name="scoreThick" id="rdi_review_thick3" value="3">
  246. <label for="rdi_review_thick3"><span>도톰함</span></label>
  247. </div>
  248. </div>
  249. </div>
  250. </td>
  251. </tr>
  252. </th:block>
  253. <th:block th:if="${reviewInfo.sizeGb == 'S'}">
  254. <tr>
  255. <th>
  256. 무게감
  257. </th>
  258. <td>
  259. <div class="input_simple_review">
  260. <div class="form_field">
  261. <div>
  262. <input type="radio" name="scoreWeight" id="rdi_review_weight1" value="1">
  263. <label for="rdi_review_weight1"><span>가벼움</span></label>
  264. </div>
  265. <div>
  266. <input type="radio" name="scoreWeight" id="rdi_review_weight2" value="2">
  267. <label for="rdi_review_weight2"><span>적당함</span></label>
  268. </div>
  269. <div>
  270. <input type="radio" name="scoreWeight" id="rdi_review_weight3" value="3">
  271. <label for="rdi_review_weight3"><span>무거움</span></label>
  272. </div>
  273. </div>
  274. </div>
  275. </td>
  276. </tr>
  277. <tr>
  278. <th>
  279. 볼너비
  280. </th>
  281. <td>
  282. <div class="input_simple_review">
  283. <div class="form_field">
  284. <div>
  285. <input type="radio" name="scoreBall" id="rdi_review_width1" value="1">
  286. <label for="rdi_review_width1"><span>작음</span></label>
  287. </div>
  288. <div>
  289. <input type="radio" name="scoreBall" id="rdi_review_width2" value="2">
  290. <label for="rdi_review_width2"><span>딱맞음</span></label>
  291. </div>
  292. <div>
  293. <input type="radio" name="scoreBall" id="rdi_review_width3" value="3">
  294. <label for="rdi_review_width3"><span>큼</span></label>
  295. </div>
  296. </div>
  297. </div>
  298. </td>
  299. </tr>
  300. </th:block>
  301. </table>
  302. </div>
  303. </th:block>
  304. <h4 class="subH3">고객님의 리뷰가 다른 고객들에게 도움이 될 수 있어요!</h4>
  305. <div class="tbl type1">
  306. <table>
  307. <colgroup>
  308. <col width="170">
  309. <col width="*">
  310. </colgroup>
  311. <tr>
  312. <th>
  313. 리뷰내용
  314. </th>
  315. <td>
  316. <div class="input_txt_review">
  317. <div class="form_field">
  318. <div class="input_wrap">
  319. <textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="·&nbsp;리뷰 내용은 최소 10자 이상 입력해 주세요.&#13;&#10;·&nbsp;상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다.&#13;&#10;·&nbsp;리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;" maxlength="500"></textarea>
  320. <p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/500</p>
  321. </div>
  322. </div>
  323. </div>
  324. </td>
  325. </tr>
  326. <tr>
  327. <th>
  328. 포토/영상 첨부
  329. </th>
  330. <td>
  331. <div class="form_field">
  332. <div class="input_wrap">
  333. <!-- 이미지첨부 -->
  334. <div class="form_field">
  335. <div class="imgUpload">
  336. <label for="fileAdd" class="fileAdd" id="fileAdd_reply">첫번째업로드</label>
  337. <input type="file" id="fileAdd" name="files">
  338. </div>
  339. </div>
  340. <!-- //이미지첨부 -->
  341. </div>
  342. </div>
  343. <div class="txt_info">
  344. <ul>
  345. <li>
  346. 최대 10개까지 등록 가능
  347. </li>
  348. <!-- 210419_수정 : 텍스트 추가 -->
  349. <li>
  350. 동영상 첨부 시 관리자 승인이 필요하여 바로 노출이 되지 않을 수 있습니다.
  351. </li>
  352. <!-- //210419_수정 : 텍스트 추가 -->
  353. </ul>
  354. </div>
  355. </td>
  356. </tr>
  357. </table>
  358. </div>
  359. <div class="btn_footer_area">
  360. <button type="button" class="btn btn_default btn_md" onclick="reviewCancel()"><span>취소</span></button>
  361. <button type="button" id="btn_review_registration" class="btn btn_dark btn_md" th:if="${reviewStat == 'c'}" onclick="reviewCreate()"><span>리뷰 등록</span></button>
  362. <button type="button" id="btn_review_registration" class="btn btn_dark btn_md" th:if="${reviewStat == 'u'}" onclick="reviewUpdate()"><span>리뷰 수정</span></button>
  363. </div>
  364. </form>
  365. </div>
  366. </div>
  367. <!-- // CONT-BODY -->
  368. </div>
  369. </div>
  370. <script type="text/javascript" src="/ux/plugins/gaga/gaga.kollus.js"></script>
  371. <script src="/ux/plugins/gaga/gaga.paging.js"></script>
  372. <script th:inline="javascript">
  373. let reviewList = [[${reviewInfo}]];
  374. let reviewStat = [[${reviewStat}]];
  375. let reviewAttach = [[${alreadyReviewAttach}]];
  376. // 별점 class="on"
  377. var $starEls = $('#star button#starBtn');
  378. var rate = 1;
  379. $starEls.each(function (index, el) {
  380. $(el).on('click', function () {
  381. rating(index);
  382. $("#score").attr("value",index+1);
  383. });
  384. });
  385. function rating(score) {
  386. $starEls.each(function (i, el) {
  387. if (i <= score) {
  388. $(el).addClass('on');
  389. } else {
  390. $(el).removeClass('on');
  391. }
  392. });
  393. rate = score;
  394. }
  395. // 리뷰 취소
  396. var reviewCancel = function() {
  397. mcxDialog.confirm('취소하시겠습니까?', {
  398. cancelBtnText: "취소",
  399. sureBtnText: "확인",
  400. sureBtnClick: function(){
  401. cfnGoToPage(_PAGE_MYPAGE_REVIEW);
  402. }
  403. });
  404. }
  405. var reviewValidation = function() {
  406. }
  407. // 리뷰 등록
  408. var reviewCreate = function () {
  409. if($("#score").val()=='' || $("#score").val()==null){
  410. mcxDialog.alert('별점을 선택하세요.');
  411. return;
  412. }
  413. if($("#reviewForm input[name=height]").val() == '' || $("#reviewForm input[name=height]").val() == null){
  414. mcxDialog.alert('키를 입력하세요.');
  415. return;
  416. }
  417. if($("#reviewForm input[name=weight]").val() == '' || $("#reviewForm input[name=weight]").val() == null){
  418. mcxDialog.alert('몸무게를 입력하세요.');
  419. return;
  420. }
  421. if(reviewList.sizeGb == 'T' || reviewList.sizeGb == 'B' || reviewList.sizeGb == 'S'){
  422. if($('#reviewForm input:radio[name=scoreSize]:checked').length == 0){
  423. mcxDialog.alert('상품 사이즈를 평가해주세요.');
  424. return false;
  425. }
  426. if($('#reviewForm input:radio[name=scoreColor]:checked').length == 0){
  427. mcxDialog.alert('상품 컬러를 평가해주세요.');
  428. return false;
  429. }
  430. }
  431. if(reviewList.sizeGb == 'T' || reviewList.sizeGb == 'B'){
  432. if($('#reviewForm input:radio[name=scoreFit]:checked').length == 0){
  433. mcxDialog.alert('상품 핏을 평가해주세요.');
  434. return false;
  435. }
  436. if($('#reviewForm input:radio[name=scoreThick]:checked').length == 0){
  437. mcxDialog.alert('상품 두께감을 평가해주세요.');
  438. return false;
  439. }
  440. }
  441. if(reviewList.sizeGb == 'S' ){
  442. if($('#reviewForm input:radio[name=scoreWeight]:checked').length == 0){
  443. mcxDialog.alert('상품 무게감을 평가해주세요.');
  444. return false;
  445. }
  446. if($('#reviewForm input:radio[name=scoreBall]:checked').length == 0){
  447. mcxDialog.alert('상품 볼넓이를 평가해주세요.');
  448. return false;
  449. }
  450. }
  451. if($('#reviewContent').val().length<10){
  452. mcxDialog.alert("리뷰 내용을 10자 이상 입력해주세요.");
  453. return false;
  454. }
  455. mcxDialog.confirm('리뷰를 등록하시겠습니까?', {
  456. cancelBtnText: "취소",
  457. sureBtnText: "확인",
  458. sureBtnClick: function(){
  459. gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnSaveCallback, true);
  460. }
  461. });
  462. }
  463. // 리뷰 수정
  464. var reviewUpdate = function() {
  465. if($("#reviewForm input[name=height]").val() == '' || $("#reviewForm input[name=height]").val() == null){
  466. mcxDialog.alert('키를 입력하세요.');
  467. return;
  468. }
  469. if($("#reviewForm input[name=weight]").val() == '' || $("#reviewForm input[name=weight]").val() == null){
  470. mcxDialog.alert('몸무게를 입력하세요.');
  471. return;
  472. }
  473. if($('#reviewContent').val().length<10){
  474. mcxDialog.alert("리뷰 내용을 10자 이상 입력해주세요.");
  475. return;
  476. }
  477. mcxDialog.confirm('리뷰를 수정하시겠습니까?', {
  478. cancelBtnText: "취소",
  479. sureBtnText: "확인",
  480. sureBtnClick: function(){
  481. gagajf.ajaxFormSubmit("/mypage/review/update", '#reviewForm', fnUpdateCallback);
  482. }
  483. });
  484. }
  485. var fnSaveCallback = function (result) {
  486. if(result.status == "200"){
  487. if (document.getElementsByName("kufKeyArr").length>0 || document.getElementsByName("orgFileNmArr").length>0) {
  488. mcxDialog.confirm("상품리뷰를 등록 하였습니다. 350P 적립 예정입니다.", {
  489. sureBtnText: "확인",
  490. sureBtnClick: function() {
  491. cfnGoToPage(_PAGE_MYPAGE_REVIEW);
  492. }
  493. });
  494. }else{
  495. mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
  496. sureBtnText: "확인",
  497. sureBtnClick: function() {
  498. cfnGoToPage(_PAGE_MYPAGE_REVIEW);
  499. }
  500. });
  501. }
  502. }
  503. }
  504. var fnUpdateCallback = function (result) {
  505. if(result.status == "200"){
  506. mcxDialog.confirm("상품 리뷰를 수정하였습니다.", {
  507. sureBtnText: "확인",
  508. sureBtnClick: function() {
  509. cfnGoToPage(_PAGE_MYPAGE_REVIEW);
  510. }
  511. });
  512. }
  513. }
  514. // 글자 카운팅
  515. $('#reviewContent').keyup(function (e){
  516. var content = $(this).val();
  517. $('.txt_cnt').html('<span id="review_cnt" class="c_primary">'+content.length+'</span>/500'); //글자수 실시간 카운팅
  518. if (content.length > 500){
  519. $(this).val(content.substring(0, 500));
  520. $('.txt_cnt').html('<span id="review_cnt" class="c_primary">500</span>/500');
  521. }
  522. });
  523. $('#fileAdd').on('change', function() { fnChooseFile(this); });
  524. var fnChooseFile = function(obj) {
  525. var picLength = $(".pics").length;
  526. // multiple 속성이 있으면 files에는 다수의 객체가 할당됨
  527. var file = obj.files[0];
  528. /* if (!gagajf.isNull(file.size) && Number(file.size) > (10 * 1000000)) {
  529. mcxDialog.alertC('이미지는 최대 10MB 이하 파일만 가능합니다.', {
  530. sureBtnText: "확인",
  531. sureBtnClick: function() {
  532. $(obj).parent('.imgUpload').find('.removes').trigger('click');
  533. }
  534. });
  535. return false;
  536. } */
  537. if (!gagajf.isNull(file.name)) {
  538. var extension = "\.(jpg|jpeg|png)$";
  539. if ((new RegExp(extension, "i")).test(file.name)) {
  540. gagajf.ajaxFileUpload('/common/file/upload?subDir=/review'
  541. , file
  542. , function(result) {
  543. // 업로드한 파일명 설정
  544. $(".pics").children().eq(0).append("<input type='hidden' name='orgFileNmArr' id='orgFileNm"+(picLength+1)+"' value='"+result.oldFileName+"'>");
  545. $(".pics").children().eq(0).append("<input type='hidden' name='sysFileNmArr' id='sysFileNm"+(picLength+1)+"' value='"+result.newFileName+"'>");
  546. }
  547. );
  548. }else if((new RegExp("mp4", "i")).test(file.name)){
  549. setTimeout(function(){
  550. $(".imgUpload").find('.pics').eq(0).addClass("mov");
  551. $(".pics").children().eq(0).append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
  552. $(".pics").children().eq(0).append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
  553. gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
  554. }, 1000);
  555. }else{
  556. mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
  557. sureBtnText: "확인",
  558. sureBtnClick: function() {
  559. $(".pics").find(".removes").eq(0).trigger('click');
  560. }
  561. });
  562. return false;
  563. }
  564. }
  565. // 이거 왜 안먹히지
  566. // 파일 업로드
  567. /* gagajf.ajaxFileUpload('/common/file/upload?subDir=/review'
  568. , file
  569. , function(result) {
  570. // 업로드한 파일명 설정
  571. $(".pics").children().eq(0).append("<input type='hidden' name='orgFileNmArr' id='orgFileNm"+(picLength+1)+"' value='"+result.oldFileName+"'>");
  572. $(".pics").children().eq(0).append("<input type='hidden' name='sysFileNmArr' id='sysFileNm"+(picLength+1)+"' value='"+result.newFileName+"'>");
  573. }
  574. ); */
  575. }
  576. $(document).ready(function() {
  577. if (reviewList.goodsType == 'G056_S') {
  578. $.each(reviewList.colorNmArr, function(index, option) {
  579. $("#optionDiv").append('<span class="option">'+reviewList.itemNmArr[index] + ' / ' + option + '</span>');
  580. });
  581. }else{
  582. $(".option").append(reviewList.optCd1+"&nbsp;/&nbsp;"+reviewList.optCd2);
  583. }
  584. if(reviewStat=='u'){
  585. var reviewScore = reviewList.score;
  586. $("#score").val(reviewScore);
  587. rating(reviewScore-1);
  588. $("#reviewForm input[name=height]").val(reviewList.height);
  589. $("#reviewForm input[name=weight]").val(reviewList.weight);
  590. $("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent.escapeHtml());
  591. if(reviewList.scoreSize == "1"){
  592. $('#reviewForm input:radio[name=scoreSize]:radio[value="1"]').prop('checked', true);
  593. }else if(reviewList.scoreSize == "2"){
  594. $('#reviewForm input:radio[name=scoreSize]:radio[value="2"]').prop('checked', true);
  595. }else if(reviewList.scoreSize == "3"){
  596. $('#reviewForm input:radio[name=scoreSize]:radio[value="3"]').prop('checked', true);
  597. }
  598. if(reviewList.scoreColor == "1"){
  599. $('#reviewForm input:radio[name=scoreColor]:radio[value="1"]').prop('checked', true);
  600. }else if(reviewList.scoreColor == "2"){
  601. $('#reviewForm input:radio[name=scoreColor]:radio[value="2"]').prop('checked', true);
  602. }else if(reviewList.scoreColor == "3"){
  603. $('#reviewForm input:radio[name=scoreColor]:radio[value="3"]').prop('checked', true);
  604. }
  605. if(reviewList.scoreFit == "1"){
  606. $('#reviewForm input:radio[name=scoreFit]:radio[value="1"]').prop('checked', true);
  607. }else if(reviewList.scoreFit == "2"){
  608. $('#reviewForm input:radio[name=scoreFit]:radio[value="2"]').prop('checked', true);
  609. }else if(reviewList.scoreFit == "3"){
  610. $('#reviewForm input:radio[name=scoreFit]:radio[value="3"]').prop('checked', true);
  611. }
  612. if(reviewList.scoreThick == "1"){
  613. $('#reviewForm input:radio[name=scoreThick]:radio[value="1"]').prop('checked', true);
  614. }else if(reviewList.scoreThick == "2"){
  615. $('#reviewForm input:radio[name=scoreThick]:radio[value="2"]').prop('checked', true);
  616. }else if(reviewList.scoreThick == "3"){
  617. $('#reviewForm input:radio[name=scoreThick]:radio[value="3"]').prop('checked', true);
  618. }
  619. if(reviewList.scoreWeight == "1"){
  620. $('#reviewForm input:radio[name=scoreWeight]:radio[value="1"]').prop('checked', true);
  621. }else if(reviewList.scoreWeight == "2"){
  622. $('#reviewForm input:radio[name=scoreWeight]:radio[value="2"]').prop('checked', true);
  623. }else if(reviewList.scoreWeight == "3"){
  624. $('#reviewForm input:radio[name=scoreWeight]:radio[value="3"]').prop('checked', true);
  625. }
  626. if(reviewList.scoreBall == "1"){
  627. $('#reviewForm input:radio[name=scoreBall]:radio[value="1"]').prop('checked', true);
  628. }else if(reviewList.scoreBall == "2"){
  629. $('#reviewForm input:radio[name=scoreBall]:radio[value="2"]').prop('checked', true);
  630. }else if(reviewList.scoreBall == "3"){
  631. $('#reviewForm input:radio[name=scoreBall]:radio[value="3"]').prop('checked', true);
  632. }
  633. if(reviewAttach.length>0){
  634. for (var i = 0; i < reviewAttach.length; i++) {
  635. if(reviewAttach[i].reviewSq == reviewList.reviewSq){
  636. if(reviewAttach[i].fileGb == "I"){
  637. $("<span class=\"pics\">" +
  638. "<img class=\"picsThumbs\" src=\"" + _uploadImageUrl + '/' + reviewAttach[i].sysFileNm + "\" />" +
  639. "<input type='hidden' name='orgFileNmArr' value='"+reviewAttach[i].orgFileNm+"'>" +
  640. "<input type='hidden' name='sysFileNmArr' value='"+reviewAttach[i].sysFileNm+"'>" +
  641. "<br/><span class=\"removes\">Removes image</span>" +
  642. "</span>").insertAfter("#fileAdd");
  643. }else{
  644. $("<span class=\"pics mov\">" +
  645. "<img class=\"picsThumbs\" src=\"" + _kollusMediaUrl + '/poster/' + reviewAttach[i].kmcKey + "\"/>" +
  646. "<input type='hidden' name='kmcKeyArr' value='" + reviewAttach[i].kmcKey + "'>" +
  647. "<input type='hidden' name='kufKeyArr' value='" + reviewAttach[i].kufKey + "'>" +
  648. "<br/><span class=\"removes\">Removes image</span>" +
  649. "</span>").insertAfter("#fileAdd");
  650. }
  651. }
  652. }
  653. $(".removes").click(function(){
  654. $(this).parent(".pics").remove();
  655. });
  656. }
  657. }
  658. // 마이페이지 LNB 설정
  659. fnSetMypageLnbList(7);
  660. // 마이페이지 location 설정
  661. fnSetMypageLocation('리뷰', '_PAGE_MYPAGE_REVIEW');
  662. });
  663. </script>
  664. </th:block>
  665. </body>
  666. </html>