|
|
@@ -42,13 +42,17 @@
|
|
|
<li>리뷰 작성시 욕설, 비방, 선정적인 내용등이 있을 경우 통보 없이 관리자에 의해 삭제 될 수 있습니다.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
-
|
|
|
- <form class="form_wrap">
|
|
|
+ <th:block th:each="review, status : ${completeReviewList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
|
|
|
+ <form class="form_wrap" id="reviewForm" th:action="@{'/mypage/review/save'}">
|
|
|
+ <input type="hidden" name="ordNo" th:value="${review.ordNo}">
|
|
|
+ <input type="hidden" name="ordDtlNo" th:value="${review.ordDtlNo}">
|
|
|
+ <input type="hidden" name="goodsCd" th:value="${review.goodsCd}">
|
|
|
+ <input type="hidden" name="custNo" th:value="${review.custNo}">
|
|
|
<h4 class="subH3">리뷰쓰기</h4>
|
|
|
<div class="part_goods">
|
|
|
<div class="goods_cont">
|
|
|
<!-- 주문상품 -->
|
|
|
- <th:block th:each="review, status : ${completeReviewList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
|
|
|
+
|
|
|
<div class="goods_info">
|
|
|
<div class="order_desc">
|
|
|
<div class="goods_box">
|
|
|
@@ -78,7 +82,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </th:block>
|
|
|
+
|
|
|
<!-- //주문상품 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -95,12 +99,13 @@
|
|
|
별점
|
|
|
</th>
|
|
|
<td>
|
|
|
- <div class="input_starscore">
|
|
|
- <button type="button"></button>
|
|
|
- <button type="button"></button>
|
|
|
- <button type="button"></button>
|
|
|
- <button type="button"></button>
|
|
|
- <button type="button"></button>
|
|
|
+ <div class="input_starscore" id="star">
|
|
|
+ <input type="hidden" id="score" name="score">
|
|
|
+ <button type="button" id="starBtn"></button>
|
|
|
+ <button type="button" id="starBtn"></button>
|
|
|
+ <button type="button" id="starBtn"></button>
|
|
|
+ <button type="button" id="starBtn"></button>
|
|
|
+ <button type="button" id="starBtn"></button>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
@@ -122,7 +127,7 @@
|
|
|
<div class="input_my_physical">
|
|
|
<div class="form_field">
|
|
|
<div class="input_wrap">
|
|
|
- <input type="text" class="form_control" placeholder="숫자만 입력해 주세요.">
|
|
|
+ <input type="text" class="form_control" placeholder="숫자만 입력해 주세요." data-valid-type="numeric" maxlength="3" id="height" name="height">
|
|
|
<span class="unit">cm</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -137,8 +142,8 @@
|
|
|
<div class="input_my_physical">
|
|
|
<div class="form_field">
|
|
|
<div class="input_wrap">
|
|
|
- <input type="text" class="form_control" placeholder="숫자만 입력해 주세요.">
|
|
|
- <span class="unit">cm</span>
|
|
|
+ <input type="text" class="form_control" placeholder="숫자만 입력해 주세요." data-valid-type="numeric" maxlength="3" id="weight" name="weight">
|
|
|
+ <span class="unit">kg</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -147,13 +152,15 @@
|
|
|
</table>
|
|
|
</div>
|
|
|
|
|
|
+ <!-- <th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B' or review.sizeGb == 'S'}"> -->
|
|
|
<h4 class="subH3">상품 평가</h4>
|
|
|
<div class="tbl type1">
|
|
|
<table>
|
|
|
<colgroup>
|
|
|
<col width="170">
|
|
|
<col width="*">
|
|
|
- </colgroup>
|
|
|
+ </colgroup>
|
|
|
+ <!-- <th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B' or review.sizeGb == 'S'}"> -->
|
|
|
<tr>
|
|
|
<th>
|
|
|
사이즈
|
|
|
@@ -162,15 +169,15 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_size" id="rdi_review_size1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreSize" id="rdi_review_size1" value="1">
|
|
|
<label for="rdi_review_size1"><span>작음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_size" id="rdi_review_size2" value="">
|
|
|
+ <input type="radio" name="scoreSize" id="rdi_review_size2" value="2">
|
|
|
<label for="rdi_review_size2"><span>딱맞음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_size" id="rdi_review_size3" value="">
|
|
|
+ <input type="radio" name="scoreSize" id="rdi_review_size3" value="3">
|
|
|
<label for="rdi_review_size3"><span>큼</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -185,21 +192,23 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_color" id="rdi_review_color1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreColor" id="rdi_review_color1" value="1">
|
|
|
<label for="rdi_review_color1"><span>밝음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_color" id="rdi_review_color2" value="">
|
|
|
+ <input type="radio" name="scoreColor" id="rdi_review_color2" value="2">
|
|
|
<label for="rdi_review_color2"><span>똑같음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_color" id="rdi_review_color3" value="">
|
|
|
- <label for="rdi_review_color3"><span>큼</span></label>
|
|
|
+ <input type="radio" name="scoreColor" id="rdi_review_color3" value="3">
|
|
|
+ <label for="rdi_review_color3"><span>어두움</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
+ <!-- </th:block>
|
|
|
+ <th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B'}"> -->
|
|
|
<tr>
|
|
|
<th>
|
|
|
핏
|
|
|
@@ -208,15 +217,15 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_fit" id="rdi_review_fit1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreFit" id="rdi_review_fit1" value="1">
|
|
|
<label for="rdi_review_fit1"><span>슬림</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_fit" id="rdi_review_fit2" value="">
|
|
|
+ <input type="radio" name="scoreFit" id="rdi_review_fit2" value="2">
|
|
|
<label for="rdi_review_fit2"><span>레귤러</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_fit" id="rdi_review_fit3" value="">
|
|
|
+ <input type="radio" name="scoreFit" id="rdi_review_fit3" value="3">
|
|
|
<label for="rdi_review_fit3"><span>오버</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -231,21 +240,23 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_thick" id="rdi_review_thick1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreThick" id="rdi_review_thick1" value="1">
|
|
|
<label for="rdi_review_thick1"><span>얇음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_thick" id="rdi_review_thick2" value="">
|
|
|
+ <input type="radio" name="scoreThick" id="rdi_review_thick2" value="2">
|
|
|
<label for="rdi_review_thick2"><span>적당함</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_thick" id="rdi_review_thick3" value="">
|
|
|
+ <input type="radio" name="scoreThick" id="rdi_review_thick3" value="3">
|
|
|
<label for="rdi_review_thick3"><span>도톰함</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
+ <!-- </th:block>
|
|
|
+ <th:block th:if="${review.sizeGb == 'S'}"> -->
|
|
|
<tr>
|
|
|
<th>
|
|
|
무게감
|
|
|
@@ -254,15 +265,15 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_weight" id="rdi_review_weight1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreWeight" id="rdi_review_weight1" value="1">
|
|
|
<label for="rdi_review_weight1"><span>가벼움</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_weight" id="rdi_review_weight2" value="">
|
|
|
+ <input type="radio" name="scoreWeight" id="rdi_review_weight2" value="2">
|
|
|
<label for="rdi_review_weight2"><span>적당함</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_weight" id="rdi_review_weight3" value="">
|
|
|
+ <input type="radio" name="scoreWeight" id="rdi_review_weight3" value="3">
|
|
|
<label for="rdi_review_weight3"><span>무거움</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -277,24 +288,25 @@
|
|
|
<div class="input_simple_review">
|
|
|
<div class="form_field">
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_width" id="rdi_review_width1" value="" checked="">
|
|
|
+ <input type="radio" name="scoreBall" id="rdi_review_width1" value="1">
|
|
|
<label for="rdi_review_width1"><span>작음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_width" id="rdi_review_width2" value="">
|
|
|
+ <input type="radio" name="scoreBall" id="rdi_review_width2" value="2">
|
|
|
<label for="rdi_review_width2"><span>딱맞음</span></label>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <input type="radio" name="rdi_review_width" id="rdi_review_width3" value="">
|
|
|
+ <input type="radio" name="scoreBall" id="rdi_review_width3" value="3">
|
|
|
<label for="rdi_review_width3"><span>큼</span></label>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
+ <!-- </th:block> -->
|
|
|
</table>
|
|
|
</div>
|
|
|
-
|
|
|
+ <!-- </th:block> -->
|
|
|
<h4 class="subH3">고객님의 리뷰가 다른 고객들에게 도움이 될 수 있어요!</h4>
|
|
|
<div class="tbl type1">
|
|
|
<table>
|
|
|
@@ -310,7 +322,7 @@
|
|
|
<div class="input_txt_review">
|
|
|
<div class="form_field">
|
|
|
<div class="input_wrap">
|
|
|
- <textarea class="doc_review" name="" id="" cols="30" rows="10" placeholder="· 리뷰 내용은 최소 10자 이상 입력해 주세요. · 상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다. · 리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;"></textarea>
|
|
|
+ <textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="· 리뷰 내용은 최소 10자 이상 입력해 주세요. · 상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다. · 리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;"></textarea>
|
|
|
<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/500</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -329,6 +341,27 @@
|
|
|
<div class="imgUpload">
|
|
|
<label for="fileAdd" class="fileAdd">첫번째업로드</label>
|
|
|
<input type="file" id="fileAdd" name="files[]">
|
|
|
+ <input type="hidden" name="file1OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file1SysFileNm"/>
|
|
|
+ <input type="hidden" name="file2OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file2SysFileNm"/>
|
|
|
+ <input type="hidden" name="file3OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file3SysFileNm"/>
|
|
|
+ <input type="hidden" name="file4OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file4SysFileNm"/>
|
|
|
+ <input type="hidden" name="file5OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file5SysFileNm"/>
|
|
|
+ <input type="hidden" name="file6OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file6SysFileNm"/>
|
|
|
+ <input type="hidden" name="file7OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file7SysFileNm"/>
|
|
|
+ <input type="hidden" name="file8OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file8SysFileNm"/>
|
|
|
+ <input type="hidden" name="file9OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file9SysFileNm"/>
|
|
|
+ <input type="hidden" name="file10OrgFileNm"/>
|
|
|
+ <input type="hidden" name="file10SysFileNm"/>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- //이미지첨부 -->
|
|
|
@@ -347,10 +380,11 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="btn_footer_area">
|
|
|
- <button type="button" class="btn btn_default btn_md"><span>취소</span></button>
|
|
|
- <button type="button" id="btn_review_registration" class="btn btn_dark btn_md"><span>리뷰 등록</span></button>
|
|
|
+ <button type="button" class="btn btn_default btn_md" onclick="reviewCancel()"><span>취소</span></button>
|
|
|
+ <button type="button" id="btn_review_registration" class="btn btn_dark btn_md" onclick="reviewCreate()"><span>리뷰 등록</span></button>
|
|
|
</div>
|
|
|
- </form>
|
|
|
+ </form>
|
|
|
+ </th:block>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- // CONT-BODY -->
|
|
|
@@ -359,8 +393,161 @@
|
|
|
|
|
|
<script src="/ux/plugins/gaga/gaga.paging.js"></script>
|
|
|
<script th:inline="javascript">
|
|
|
-$(document).ready(function() {
|
|
|
+let reviewList = [[${completeReviewList}]];
|
|
|
+// 별점 class="on"
|
|
|
+var $starEls = $('#star button#starBtn');
|
|
|
+var rate = 0;
|
|
|
+
|
|
|
+$starEls.each(function (index, el) {
|
|
|
+ $(el).on('click', function () {
|
|
|
+ rating(index);
|
|
|
+ $("#score").attr("value",index+1);
|
|
|
+ });
|
|
|
+});
|
|
|
+
|
|
|
+function rating(score) {
|
|
|
+ $starEls.each(function (i, el) {
|
|
|
+ if (i <= score) {
|
|
|
+ $(el).addClass('on');
|
|
|
+ } else {
|
|
|
+ $(el).removeClass('on');
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ rate = score + 1;
|
|
|
+}
|
|
|
|
|
|
+// 리뷰 취소
|
|
|
+var reviewCancel = function() {
|
|
|
+
|
|
|
+ mcxDialog.confirm('취소하시겠습니까"?', {
|
|
|
+ cancelBtnText: "취소",
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function(){
|
|
|
+ cfnGoToPage(_PAGE_MYPAGE_REVIEW);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 리뷰 등록
|
|
|
+var reviewCreate = function () {
|
|
|
+
|
|
|
+ if($("#score").val()=='' || $("#score").val()==null){
|
|
|
+ mcxDialog.alert('별점을 선택하세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($("#reviewForm input[name=height]").val() == '' || $("#reviewForm input[name=height]").val() == null){
|
|
|
+ mcxDialog.alert('키를 입력하세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($("#reviewForm input[name=weight]").val() == '' || $("#reviewForm input[name=weight]").val() == null){
|
|
|
+ mcxDialog.alert('몸무게를 입력하세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(reviewList[0].sizeGb == 'T' || reviewList[0].sizeGb == 'B' || reviewList[0].sizeGb == 'S'){
|
|
|
+ if($('#reviewForm input:radio[name=scoreSize]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 사이즈를 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($('#reviewForm input:radio[name=scoreColor]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 컬러를 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(reviewList[0].sizeGb == 'T' || reviewList[0].sizeGb == 'B'){
|
|
|
+ if($('#reviewForm input:radio[name=scoreFit]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 핏을 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if($('#reviewForm input:radio[name=scoreThick]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 두께감을 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(reviewList[0].sizeGb == 'S' ){
|
|
|
+ if($('#reviewForm input:radio[name=scoreWeight]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 무게감을 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($('#reviewForm input:radio[name=scoreBall]').prop('checked') == false){
|
|
|
+ mcxDialog.alert('상품 볼넓이를 평가해주세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if($('#reviewContent').val().length<10){
|
|
|
+ mcxDialog.alert("리뷰 내용을 10자 이상 입력해주세요.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ mcxDialog.confirm('리뷰를 등록하시겠습니까"?', {
|
|
|
+ cancelBtnText: "취소",
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function(){
|
|
|
+ gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnSaveCallback);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+}
|
|
|
+var fnSaveCallback = function (result) {
|
|
|
+ if(result.status == "200"){
|
|
|
+ mcxDialog.alert("상품 리뷰를 등록하였습니다.");
|
|
|
+ //포인트 예정금액 고지해야함
|
|
|
+ cfnGoToPage(_PAGE_MYPAGE_REVIEW);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// 글자 카운팅
|
|
|
+$('#reviewContent').keyup(function (e){
|
|
|
+ var content = $(this).val();
|
|
|
+ $('.txt_cnt').html('<span id="review_cnt" class="c_primary">'+content.length+'</span>/500'); //글자수 실시간 카운팅
|
|
|
+
|
|
|
+
|
|
|
+ if (content.length > 500){
|
|
|
+ mcxDialog.alert("최대 500자까지 입력 가능합니다.");
|
|
|
+ $(this).val(content.substring(0, 500));
|
|
|
+ $('.txt_cnt').html('<span id="review_cnt" class="c_primary">500</span>/500');
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+$('#fileAdd').on('change', function() { fnChooseFile(this); });
|
|
|
+
|
|
|
+var fnChooseFile = function(obj) {
|
|
|
+ // multiple 속성이 있으면 files에는 다수의 객체가 할당됨
|
|
|
+ var file = obj.files[0];
|
|
|
+
|
|
|
+ if (!gagajf.isNull(file.size) && Number(file.size) > 10 * 1000000) {
|
|
|
+ mcxDialog.alertC('이미지는 최대 10MB 이하 파일만 가능합니다.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $(obj).parent('.imgUpload').find('.removes').trigger('click');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 파일 업로드
|
|
|
+ gagajf.ajaxFileUpload('/common/file/upload?subDir=/review'
|
|
|
+ , file
|
|
|
+ , function(result) {
|
|
|
+ // 업로드한 파일명 설정
|
|
|
+ $('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
|
|
|
+ $('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
|
|
|
+ }
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+$(document).ready(function() {
|
|
|
+
|
|
|
// 마이페이지 LNB 설정
|
|
|
fnSetMypageLnbList(7);
|
|
|
|