| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528 |
- <!DOCTYPE html>
- <html lang="ko"
- xmlns:th="http://www.thymeleaf.org">
- <!--
- *******************************************************************************
- * @source : CustomerDetailForm.html
- * @desc : 회원 상세 팝업 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2021 TSIT, All rights reserved.
- *============================================================================
- * VER DATE AUTHOR DESCRIPTION
- * === =========== ========== =============================================
- * 1.0 2021.01.18 jsshin 최초 작성
- *******************************************************************************
- -->
- <div class="modalPopup" data-width="1600">
- <div class="panelStyle">
- <!-- TITLE -->
- <div class="panelTitle">
- <strong>회원상세</strong>
- <button type="button" class="close" onclick="uifnPopupClose('popupCustomerDetail');"><em class="fa fa-times"></em></button>
- </div>
- <!-- //TITLE -->
- <!-- CONTENT -->
- <div class="panelContent" >
- <table class="frmStyle" aria-describedby="회원정보">
- <colgroup>
- <col style="width:10%;"/>
- <col style="width:15%;"/>
- <col style="width:10%;"/>
- <col style="width:15%;"/>
- <col style="width:10%;"/>
- <col style="width:15%;"/>
- </colgroup>
- <tbody>
- <th>이름</th>
- <td>
- <span id="spanCustNm" name="spanCustNm"></span>
- <span id="managedRsnNm" name="managedRsnNm" class="infoTxt cRed h5"></span>
- </td>
- <th>아이디</th>
- <td>
- <span id="custId" name="custId"></span>
- <th:block th:if="${sessionInfo.userId == 'jsshin'}">
- <button type="button" id="btnLogin" class="btn btnRight btn-success btn-lg">Login</button>
- </th:block>
- </td>
- <th>가입사이트</th>
- <td>
- <span id="siteNm" name="siteNm"></span>
- </td>
- </tbody>
- </table>
- <!-- TABS SPACE -->
- <div class="tabs">
- <!-- TABS NAVI -->
- <div class="tabsNav">
- <ul>
- <li class="on"><a href="#tab1" onclick="fnSearchCustInfo();">기본정보</a></li>
- <li><a href="#tab2" onclick="fnSearchOrder();">주문내역</a></li>
- <li><a href="#tab3" onclick="fnSearchDelivery();">배송지정보</a></li>
- <li><a href="#tab4" onclick="fnSearchCoupon();">쿠폰내역</a></li>
- <li><a href="#tab5" onclick="fnSearchPoint();">포인트내역</a></li>
- <li><a href="#tab6" onclick="fnSearchGiftCard()">상품권내역</a></li>
- <li><a href="#tab7" onclick="fnSearchReview();">상품평내역</a></li>
- <li><a href="#tab8" onclick="fnSearchCounsel();">1:1문의내역</a></li>
- <li><a href="#tab9" onclick="fnSearchGoodsQna();">상품문의내역</a></li>
- <li><a href="#tab10" onclick="fnSearchContact();">회원접촉이력</a></li>
- <li><a href="#tab11" onclick="fnSearchChangeGrade();">회원등급변경이력</a></li>
- </ul>
- </div>
- <!-- //TABS NAVI -->
- <!-- TABS CONTENTS -->
- <ul class="tabsCont">
- <!-- TAB1 : 회원정보 -->
- <li class="tab on" id="tab1">
- <!-- TAB1 PANELSTYLE -->
- <div class="panelStyle">
- <form id="custInfoForm" name="custInfoForm" action="#" method="post">
- <input type="hidden" name="custNo" th:value="${custNo}"/>
- <h4>기본정보</h4>
- <table class="frmStyle">
- <colgroup>
- <col style="width:10%;"/>
- <col style="width:40%;"/>
- <col style="width:10%;"/>
- <col/>
- </colgroup>
- <tbody>
- <tr>
- <th class="dashR">회원구분<em class="required" title="필수"></em></th>
- <td class="dashR">
- <select id="custGb" name="custGb">
- <option th:if="${custGbList}" th:each="oneData, status : ${custGbList}" th:value="${oneData.cd}"
- th:text="${'[' + oneData.cd + '] '+oneData.cdNm}"></option>
- </select>
- </td>
- <th class="dashR">회원등급<em class="required" title="필수"></em></th>
- <td class="dashR">
- <select id="custGrade" name="custGrade">
- <option th:if="${custGradeList}" th:each="oneData, status : ${custGradeList}" th:value="${oneData.cd}"
- th:text="${'[' + oneData.cd + '] '+oneData.cdNm}"></option>
- </select>
- </td>
- </tr>
- <tr>
- <th class="dashR">관리대상</th>
- <td class="dashR">
- <select id="managedRsn" name="managedRsn">
- <option value="">일반</option>
- <option th:if="${managedRsnList}" th:each="oneData, status : ${managedRsnList}" th:value="${oneData.cd}"
- th:text="${'[' + oneData.cd + '] '+oneData.cdNm}"></option>
- </select>
- <span class="infoTxt cRed h5" id="managedRsnDp" name="managedRsnDp"></span>
- </td>
- <th class="dashR">관리대상 지정 날짜</th>
- <td class="dashR" id="managedDt" name="managedDt">
- </td>
- </tr>
- <tr>
- <th class="dashR">관리대상 지정 사유</th>
- <td class="dashR" colspan="3">
- <input type="text" id="managedDtlRsn" name="managedDtlRsn" class="w600" />
- </td>
- </tr>
- <tr>
- <th class="dashR">비밀번호</th>
- <td class="dashR" colspan="3">
- *******
- <button type="button" id="btnResetPassword" class="btn btn-info btn-lg">초기화</button>
- <span class="infoTxt cBlue">
- <i class="fa fa-info-circle"></i>회원에게 임시비밀번호를 발송합니다. (이메일, 알림톡)
- </span>
- </td>
- </tr>
- <tr>
- <th class="dashR">생년월일</th>
- <td class="dashR">
- <input type="text" id="birthYmd" name="birthYmd" class="schDate w100" data-valid-name="생년월일"/>
- </td>
- <th class="dashR">성별</th>
- <td class="dashR" id="sexGb" name="sexGb"></td>
- </tr>
- <tr>
- <th class="dashR">자택주소</th>
- <td class="dashR" colspan="3">
- <input type="text" id="homeZipcode" name="homeZipcode" class="w100" readonly="readonly"/>
- <button type="button" class="btn btn-info btn-lg" onclick="fnOpenDaumAddr('custInfoForm');">우편번호찾기</button>
- <br/>
- <input type="text" id="homeBaseAddr" name="homeBaseAddr" class="w300" readonly="readonly"/>
- <input type="text" id="homeDtlAddr" name="homeDtlAddr" class="w300"/>
- </td>
- </tr>
- <tr>
- <th class="dashR">휴대전화번호<em class="required" title="필수"></em></th>
- <td class="dashR">
- <input type="text" name="cellPhnno" class="w130" readonly="readonly"/>
- <button type="button" id="btnCustSendLms" class="btn btn-info btn-lg">LMS전송</button>
- <button type="button" id="btnCustCrtfd" class="btn btn-info btn-lg">번호변경</button>
- </td>
- <th class="dashR">SMS수신여부<em class="required" title="필수"></em></th>
- <td class="dashR">
- <label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="Y"/>수신</label>
- <label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="N"/>미수신</label>
- </td>
- </tr>
- <tr>
- <th class="dashR">이메일<em class="required" title="필수"></em></th>
- <td class="dashR">
- <input type="hidden" name="email" data-valid-name="이메일"/>
- <input type="text" id="emailId" name="emailId" class="w200" maxlength="30"/>
- @
- <input type="text" id="emailDomain" name="emailDomain" class="w150" maxlength="20"/>
- <select id="emailDomainList" name="emailDomainList">
- <option value="">선택하세요</option>
- <option th:if="${emailDomainList}" th:each="oneData, status : ${emailDomainList}" th:value="${oneData.cd}"
- th:text="|${oneData.cdNm}|"></option>
- </select>
- <button type="button" id="btnCustSendEmail" class="btn btn-info btn-lg" >이메일발송</button>
- </td>
- <th class="dashR">메일수신여부<em class="required" title="필수"></em></th>
- <td class="dashR">
- <label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="Y"/>수신</label>
- <label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="N"/>미수신</label>
- </td>
- </tr>
- <tr>
- <th class="dashR">가입일시</th>
- <td class="dashR" id="joinDt" name="joinDt"></td>
- <th class="dashR">최종로그인일시</th>
- <td class="dashR" id="loginDt" name="loginDt"></td>
- </tr>
- <tr>
- <th class="dashR">내외국인</th>
- <td class="dashR" id="foreignerYn" name="foreignerYn"></td>
- <th class="dashR">탈퇴여부</th>
- <td class="dashR">
- <spna id="secedeRsnYn" name="secedeRsnYn" ></spna>
- <button type="button" id="btnCustSecede" class="btn btn-danger btn-lg marL5" style="display: none">
- 회원탈퇴
- </button>
- </td>
- </tr>
- <tr>
- <th class="dashR">SNS가입유형</th>
- <td class="dashR" id="snsType" name="snsType" colspan="3"></td>
- </tr>
- </tbody>
- </table>
- <ul class="panelBar">
- <li class="right">
- <button type="button" id="btnCustInfoSave" class="btn btn-success btn-lg">저장</button>
- </li>
- </ul>
- </form>
- </div>
- <!-- //TAB1 PANELSTYLE -->
- </li>
- <!-- //TAB1 : 회원정보 -->
- <!-- TAB2 : 주문내역 -->
- <li id="tab2" class="tab">
- <!-- TAB2 PANELSTYLE -->
- <div class="panelStyle">
- <h4>주문내역</h4>
- <div id="custOrderList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB2 PANELSTYLE -->
- </li>
- <!-- //TAB2 : 주문내역 -->
- <!-- TAB3 : 배송지정보 -->
- <li id="tab3" class="tab">
- <!-- TAB3 PANELSTYLE -->
- <div class="panelStyle">
- <form id="custAddrForm" name="custAddrForm" action="#" method="post">
- <input type="hidden" name="custDelvAddrSq"/>
- <input type="hidden" name="custNo" th:value="${custNo}"/>
- <h4>배송지정보</h4>
- <div id="custAddrList" class="ag-theme-balham" style="width: 100%; height: 300px;" ></div>
- <table class="frmStyle">
- <colgroup>
- <col style="width:5%;"/>
- <col style="width:25%;"/>
- <col style="width:5%;"/>
- <col style="width:25%;"/>
- <col style="width:5%;"/>
- <col style="width:25%;"/>
- <col/>
- </colgroup>
- <tbody>
- <tr>
- <th>배송지명<em class="required" title="필수"></em></th>
- <td>
- <input type="text" class="w200" name="delvAddrNm" maxlength="30" required="required" data-valid-name="배송지명"/>
- <label class="chkBox">
- <input type="checkbox" name="defaultYn" value="Y"/>기본
- </label>
- </td>
- <th>수령인<em class="required" title="필수"></em></th>
- <td>
- <input type="text" class="w200" name="recipNm" maxlength="10" required="required" data-valid-name="수령인"/>
- </td>
- <th>삭제여부</th>
- <td>
- <label class="chkBox">
- <input type="checkbox" name="delYn" value="Y"/>
- </label>
- </td>
- </tr>
- <tr>
- <th>전화번호</th>
- <td >
- <input type="hidden" id="recipTelno" name="recipTelno"/>
- <select class="w100" id="telFirstNo" name="telFirstNo">
- <option value="">선택</option>
- <option th:if="${nationalNumberList}" th:each="oneData, status : ${nationalNumberList}"
- th:value="${oneData.cd}" th:text="|${oneData.cd}|"></option>
- </select> -
- <input type="text" class="w100" name="telMiddleNo" maxlength="4" data-valid-type="numeric"
- data-valid-name="전화번호"/> -
- <input type="text" class="w100" name="telLastNo" maxlength="4" data-valid-type="numeric"
- data-valid-name="전화번호"/>
- </td>
- <th>휴대전화번호<em class="required" title="필수"></em></th>
- <td colspan="4">
- <input type="hidden" id="recipPhnno" name="recipPhnno"/>
- <select class="w100" id="recipFirstNo" name="recipFirstNo">
- <option value="">선택</option>
- <option th:if="${nationalHpNumberList}" th:each="oneData, status : ${nationalHpNumberList}"
- th:value="${oneData.cd}" th:text="|${oneData.cd}|"></option>
- </select> -
- <input type="text" class="w100" id="recipMiddleNo" name="recipMiddleNo" maxlength="4" required="required" data-valid-type="numeric"
- data-valid-name="휴대전화번호"/> -
- <input type="text" class="w100" id="recipLastNo" name="recipLastNo" maxlength="4" required="required" data-valid-type="numeric"
- data-valid-name="휴대전화번호"/>
- </td>
- </tr>
- <tr>
- <th>주소<em class="required" title="필수"></em></th>
- <td colspan="5">
- <input type="text" id="recipZipcode" name="recipZipcode" class="w100" maxlength="10" required="required" data-valid-name="주소"/>
- <button type="button" class="btn btn-info btn-lg" onclick="fnOpenDaumAddr('custAddrForm');">우편번호찾기</button>
- <br/>
- <input type="text" id="recipBaseAddr" name="recipBaseAddr" class="w300" maxlength="50" required="required" data-valid-name="주소"/>
- <input type="text" id="recipDtlAddr" name="recipDtlAddr" class="w300" maxlength="30" required="required" data-valid-name="상세주소"/>
- </td>
- </tr>
- </tbody>
- </table>
- <ul class="panelBar">
- <li class="right">
- <button type="button" class="btn btn-info btn-lg" id="btnCustAddrNew">신규</button>
- <button type="button" class="btn btn-success btn-lg" id="btnCustAddrSave">저장</button>
- </li>
- </ul>
- </form>
- </div>
- <!-- //TAB3 PANELSTYLE -->
- </li>
- <!-- //TAB3 : 배송지정보 -->
- <!-- TAB4 : 쿠폰 내역 -->
- <li id="tab4" class="tab">
- <!-- TAB4 PANELSTYLE -->
- <div class="panelStyle">
- <h4>쿠폰 내역</h4>
- <div id="custCouponList" class="ag-theme-balham" style="width: 100%; height: 510px;" ></div>
- <ul class="panelBar">
- <li class="right">
- <button type="button" id="btnCustCouponCreate" class="btn btn-info btn-lg" >쿠폰발급</button>
- </li>
- </ul>
- </div>
- <!-- //TAB4 PANELSTYLE -->
- </li>
- <!-- //TAB4 : 쿠폰 내역 -->
- <!-- TAB5 : 포인트 내역 -->
- <li id="tab5" class="tab">
- <!-- TAB5 PANELSTYLE -->
- <div class="panelStyle">
- <form id="custPointForm" name="custPointForm" action="#" method="post">
- <h4>포인트 내역</h4>
- <table class="tableStyle">
- <colgroup>
- <col style="width:15%;"/>
- <col style="width:15%;"/>
- <col style="width:15%;"/>
- <col style="width:20%;"/>
- <col style="width:20%;"/>
- <col style="width:25%;"/>
- </colgroup>
- <tbody>
- <tr>
- <th>가용포인트</th>
- <th>누적포인트</th>
- <th>사용포인트</th>
- <th>소멸포인트</th>
- <th>적립예정포인트</th>
- <th>소멸예정포인트(30일)</th>
- </tr>
- <tr>
- <td name="availPntAmt">0 P</td>
- <td name="accumPntAmt">0 P</td>
- <td name="usePntAmt">0 P</td>
- <td name="expirePntAmt">0 P</td>
- <td name="expectedPntAmt">0 P</td>
- <td name="expectedExpirePntAmt">0 P</td>
- </tr>
- </tbody>
- </table>
- <br/>
- <div id="custPointList" class="ag-theme-balham" style="width: 100%; height: 420px;"></div>
- <ul class="panelBar">
- <li class="right">
- <button type="button" id="btnCustPointCreate" class="btn btn-info btn-lg">포인트부여</button>
- </li>
- </ul>
- </form>
- </div>
- <!-- //TAB5 PANELSTYLE -->
- </li>
- <!-- //TAB5 : 포인트 내역 -->
- <!-- TAB6 : 상품권 내역 -->
- <li id="tab6" class="tab">
- <!-- TAB6 PANELSTYLE -->
- <div class="panelStyle">
- <h4>상품권 내역</h4>
- <div id="custGiftCardList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB6 PANELSTYLE -->
- </li>
- <!-- //TAB6 : 상품권 내역 -->
- <!-- TAB7 : 상품평 -->
- <li id="tab7" class="tab">
- <!-- TAB7 PANELSTYLE -->
- <div class="panelStyle">
- <h4>상품평 내역</h4>
- <div id="custReviewList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB7 PANELSTYLE -->
- </li>
- <!-- //TAB7 : 상품평 내역 -->
- <!-- TAB8 : 1:1문의 내역 -->
- <li id="tab8" class="tab">
- <!-- TAB8 PANELSTYLE -->
- <div class="panelStyle">
- <h4>1:1문의 내역</h4>
- <div id="custCounselList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB8 PANELSTYLE -->
- </li>
- <!-- //TAB8 : 1:1문의 내역 -->
- <!-- TAB9 : 상품문의 내역 -->
- <li id="tab9" class="tab">
- <!-- TAB9 PANELSTYLE -->
- <div class="panelStyle">
- <h4>상품문의 내역</h4>
- <div id="custGoodsQnaList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB9 PANELSTYLE -->
- </li>
- <!-- //TAB9 : 상품문의 내역 -->
- <!-- TAB10 : 회원접촉이력 -->
- <li id="tab10" class="tab">
- <!-- TAB10 PANELSTYLE -->
- <div class="panelStyle">
- <form id="custContactHstForm" name="custContactHstForm" action="#" method="post">
- <input type="hidden" name="custNo" th:value="${custNo}"/>
- <h4>회원접촉이력</h4>
- <table class="frmStyle">
- <colgroup>
- <col style="width:3%;"/>
- <col style="width:7%;"/>
- <col style="width:6%;"/>
- <col style="width:5%;"/>
- <col style="width:6%;"/>
- <col style="width:29%;"/>
- <col/>
- </colgroup>
- <tbody>
- <tr>
- <th>접촉유형<em class="required" title="필수"></em></th>
- <td>
- <select name="contactType" class="w150" required="required" data-valid-type="select" data-valid-name="접촉유형">
- <option value="">[선택]</option>
- <option th:if="${contactTypeList}" th:each="oneData, status : ${contactTypeList}" th:value="${oneData.cd}"
- th:text="${oneData.cdNm}"></option>
- </select>
- </td>
- <th>접촉방법<em class="required" title="필수"></em></th>
- <td>
- <select name="contactMethod" class="w150" required="required" data-valid-type="select" data-valid-name="접촉방법">
- <option value="">[선택]</option>
- <option th:if="${contactMethodList}" th:each="oneData, status : ${contactMethodList}"
- th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
- </select>
- </td>
- <th>내용<em class="required" title="필수"></em></th>
- <td>
- <textarea class="textareaR2 w600" name="contactContents" required="required" data-valid-name="내용"></textarea>
- <button type="button" id="btnSaveContact" class="btn btn-success btn-lg">저장</button>
- </td>
- </tr>
- </tbody>
- </table>
- <br/>
- <div id="custContactList" class="ag-theme-balham" style="width: 100%; height: 420px;"></div>
- </form>
- </div>
- <!-- //TAB10 PANELSTYLE -->
- </li>
- <!-- //TAB10 : 회원접촉이력 -->
- <!-- TAB11 : 등급변경이력 -->
- <li id="tab11" class="tab">
- <!-- TAB11 PANELSTYLE -->
- <div class="panelStyle">
- <h4>등급변경이력</h4>
- <div id="custGradeList" class="ag-theme-balham" style="width: 100%; height: 510px;"></div>
- </div>
- <!-- //TAB11 PANELSTYLE -->
- </li>
- <!-- //TAB11 : 등급변경이력 -->
- </ul>
- <!-- //TABS CONTENTS -->
- </div>
- <!-- // TABS SPACE -->
- </div>
- <!-- //CONTENT -->
- </div>
- </div>
- <script th:inline="javascript">
- /*<![CDATA[*/
- const custNo = [[${custNo}]]; //고객번호
- const siteList = gagajf.convertToArray([[${siteList}]]); //사이트목록
- //const custGbList = gagajf.convertToArray([[${custGbList}]]); //회원구분
- const custGradeList = gagajf.convertToArray([[${custGradeList}]]); //회원등급
- //const managedRsnList = gagajf.convertToArray([[${managedRsnList}]]); //관리대상
- const mallGbList = gagajf.convertToArray([[${mallGbList}]]); //몰구분
- const orderStatList = gagajf.convertToArray([[${orderStatList}]]); //주문상태
- const orderDtlStatList = gagajf.convertToArray([[${orderDtlStatList}]]); //주문상세상태
- const cpnType = gagajf.convertToArray([[${cpnType}]]); //쿠폰유형
- //const dcWayList = gagajf.convertToArray([[${dcWayList}]]); //쿠폰할인방식
- const pubReasonList = gagajf.convertToArray([[${pubReasonList}]]); //쿠폰발행사유
- const pntOccurGbList = gagajf.convertToArray([[${pntOccurGbList}]]); //포인트반영구분
- const pntUploadStatList = gagajf.convertToArray([[${pntUploadStatList}]]); //포인트반영상태
- const giftCardOccurGbList = gagajf.convertToArray([[${giftCardOccurGbList}]]); //상품권유형
- const counselClsfList = gagajf.convertToArray([[${counselClsfList}]]); //상담분류
- const contactTypeList = gagajf.convertToArray([[${contactTypeList}]]); //회원접촉유형
- const contactMethodList = gagajf.convertToArray([[${contactMethodList}]]); //회원접촉방법
- const genderGbList = gagajf.convertToArray([[${genderGbList}]]); // 성별
- let orgData;
- //구매내역 그리드
- const columnOrderDefs = [
- {
- headerName: "주문번호", field: "ordNo", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {headerName: "주문상세번호", field: "ordDtlNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "몰구분", field: "mallGb", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(mallGbList, params.value);
- }
- },
- {
- headerName: "결제일시", field: "payDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "배송완료일시", field: "delvEddt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "주문자전화번호", field: "ordTelno", width: 120, cellClass: 'text-center'},
- {headerName: "주문자휴대폰", field: "ordPhnno", width: 130, cellClass: 'text-center'},
- {
- headerName: "주문상세상태", field: "ordDtlStat", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(orderDtlStatList, params.value);
- }
- },
- {headerName: "수령인", field: "recipNm", width: 100, cellClass: 'text-center'},
- {
- headerName: "상품코드", field: "goodsCd", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {headerName: "색상", field: "optCd1", width: 100, cellClass: 'text-center'},
- {headerName: "사이즈", field: "optCd2", width: 100, cellClass: 'text-center'},
- {headerName: "상품명", field: "goodsNm", width: 250, cellClass: 'text-left'},
- {headerName: "주문수량", field: "ordQty", width: 100, cellClass: 'text-center'},
- {headerName: "판매상품가격", field: "currPrice", width: 100, cellClass: 'text-center'},
- ];
- // 1:1문의 내역 그리드
- const columnCounselDefs = [
- {
- headerName: "상담분류", field: "counselClsf", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(counselClsfList, params.value);
- }
- },
- {headerName: "상담상세분류", field: "counselDclsf", width: 200, cellClass: 'text-center'},
- {headerName: "주문번호", field: "relOrdNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "질문제목", field: "questTitle", width: 300, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {
- headerName: "등록일시", field: "questDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "답변일시", field: "ansTransDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "확인NO", field: "ansNo", width: 100, cellClass: 'text-center'},
- {headerName: "확인자", field: "userNm", width: 100, cellClass: 'text-center'}
- ];
- // 상품문의 내역 그리드
- const columnGoodsQnaDefs = [
- {headerName: "상품코드", field: "relGoodsCd", width: 200, cellClass: 'text-center'},
- {
- headerName: "질문제목", field: "questTitle", width: 300, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {
- headerName: "등록일시", field: "questDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "답변일시", field: "ansTransDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "확인NO", field: "ansNo", width: 100, cellClass: 'text-center'},
- {headerName: "확인자", field: "userNm", width: 100, cellClass: 'text-center'}
- ];
- //쿠폰내역 그리드
- const columnCouponDefs = [
- // {width: 40, minWidth: 40, cellClass: 'text-center', pinned: 'left', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
- {headerName: "회원쿠폰SQ", field: "custCpnSq", width: 100, cellClass: 'text-center', hide: true},
- {headerName: "쿠폰ID", field: "cpnId", width: 100, cellClass: 'text-center'},
- {headerName: "쿠폰명", field: "cpnNm", width: 300, cellClass: 'text-center'},
- {
- headerName: "유효기간 시작일시", field: "availStdt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "유효기간 종료일시", field: "availEddt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "주문번호", field: "ordNo", width: 130, cellClass: 'text-center'},
- {
- headerName: "사용일시", field: "usedDt", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "쿠폰발행 사유", field: "pubReason", width: 200, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(pubReasonList, params.value);
- }
- },
- {headerName: "쿠폰발행 상세사유", field: "pubReasonDtl", width: 300, cellClass: 'text-center'},
- {headerName: "만료알림발송여부", field: "endAlimSendYn", width: 150, cellClass: 'text-center'},
- {headerName: "등록자", field: "regNm", width: 100, cellClass: 'text-center'},
- {
- headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- }
- ];
- //포인트내역 그리드
- const columnPointDefs = [
- {
- headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "반영일시", field: "pntUploadDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "주문번호", field: "ordNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "반영상태", field: "pntUploadStat", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) { return gagaAgGrid.lookupValue(pntUploadStatList, params.value); }
- },
- {
- headerName: "포인트", field: "pntAmt", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
- }
- },
- {
- headerName: "포인트사유", field: "occurGb", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(pntOccurGbList, params.value);
- }
- },
- {headerName: "포인트상세사유", field: "occurDtlDesc", width: 300, cellClass: 'text-center'},
- {
- headerName: "만료예정일시", field: "expBeDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "만료완료일시", field: "expCmpDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "등록자", field: "regNm", width: 100, cellClass: 'text-center'}
- ];
- //상품권내역 그리드
- const columnGiftCardDefs = [
- {
- headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "주문번호", field: "ordNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "금액", field: "gfcdAmt", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
- }
- },
- {
- headerName: "발생구분", field: "occurGb", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) { return gagaAgGrid.lookupValue(giftCardOccurGbList, params.value); }
- },
- {
- headerName: "발생상세설명", field: "occurDtlDesc", width: 300, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(pntOccurGbList, params.value);
- }
- },
- {headerName: "등록자", field: "regNo", width: 100, cellClass: 'text-center'}
- ];
- //상품평 그리드
- const columnReviewDefs = [
- {headerName: "상품코드", field: "goodsCd", width: 100, cellClass: 'text-center'},
- {
- headerName: "제목", field: "reviewTitle", width: 300, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {headerName: "만족도", field: "score", width: 100, cellClass: 'text-center'},
- {
- headerName: "작성일시", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {
- headerName: "지급일시", field: "confirmDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "지급No", field: "confirmNo", width: 130, cellClass: 'text-center'},
- {headerName: "게시여부", field: "dispYn", width: 100, cellClass: 'text-center'},
- {
- headerName: "지급예정포인트", field: "giveDuePnt", width: 120, cellClass: 'text-center',
- cellRenderer: function (params) {
- return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
- }
- },
- {
- headerName: "포인트지급상태", field: "pntGiveStat", width: 120, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(pntUploadStatList, params.value);
- }
- }
- ];
- //등급변경 그리드
- const columnGradeDefs = [
- {headerName: "적용연월일", field: "applyYmd", width: 150, cellClass: 'text-center'},
- {headerName: "고객ID", field: "custId", width: 100, cellClass: 'text-center'},
- {
- headerName: "이전회원등급", field: "gradeBcd", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(custGradeList, params.value);
- }
- },
- {
- headerName: "변경회원등급", field: "gradeAcd", width: 100, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(custGradeList, params.value);
- }
- },
- {
- headerName: "3개월간 총 주문건수", field: "ordCnt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
- }
- },
- {
- headerName: "3개월간 총 결제금액", field: "realOrdAmt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
- }
- }
- ];
- //주소정보 그리드
- const columnAddrDefs = [
- {
- headerName: "배송지명", field: "delvAddrNm", width: 100, cellClass: 'text-center',
- cellRenderer: function (params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {headerName: "수령자", field: "recipNm", width: 100, cellClass: 'text-center'},
- {headerName: "전화번호", field: "recipTelno", width: 130, cellClass: 'text-center'},
- {headerName: "휴대전화번호", field: "recipPhnno", width: 130, cellClass: 'text-center'},
- {headerName: "우편번호", field: "recipZipcode", width: 100, cellClass: 'text-center'},
- {headerName: "기본주소", field: "recipBaseAddr", width: 300, cellClass: 'text-left'},
- {headerName: "상세주소", field: "recipDtlAddr", width: 150, cellClass: 'text-left'},
- {
- headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "삭제", field: "delYn", width: 50, cellClass: 'text-center'},
- {headerName: "수정자", field: "updNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "수정일시", field: "updDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- },
- {headerName: "기본배송지", field: "defaultYn", width: 90, cellClass: 'text-center'}
- ];
- //회원접촉이력 그리드
- const columnContactDefs = [
- {
- headerName: "접촉유형", field: "contactType", width: 150, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(contactTypeList, params.value);
- }
- },
- {
- headerName: "접촉방법", field: "contactMethod", width: 120, cellClass: 'text-center',
- valueFormatter: function (params) {
- return gagaAgGrid.lookupValue(contactMethodList, params.value);
- }
- },
- {headerName: "내용", field: "contactContents", width: 1000, cellClass: 'text-center'},
- {headerName: "등록자", field: "regNo", width: 100, cellClass: 'text-center'},
- {
- headerName: "등록일", field: "regDt", width: 150, cellClass: 'text-center',
- cellRenderer: function (params) {
- return gagaAgGrid.toDateTimeFormat(params.value);
- }
- }
- ];
- let gridOrderOptions = gagaAgGrid.getGridOptions(columnOrderDefs); //구매내역 그리드
- let gridCounselOptions = gagaAgGrid.getGridOptions(columnCounselDefs); //1:1문의내역 그리드
- let gridGoodsQnaOptions = gagaAgGrid.getGridOptions(columnGoodsQnaDefs);//상품문의내역 그리드
- let gridCouponOptions = gagaAgGrid.getGridOptions(columnCouponDefs); //쿠폰내역 그리드
- let gridPointOptions = gagaAgGrid.getGridOptions(columnPointDefs); //포인트내역 그리드
- let gridGiftCardOptions = gagaAgGrid.getGridOptions(columnGiftCardDefs);//상품권내역 그리드
- let gridReviewOptions = gagaAgGrid.getGridOptions(columnReviewDefs); //상품평 그리드
- let gridGradeOptions = gagaAgGrid.getGridOptions(columnGradeDefs); //등급변경 그리드
- let gridAddrOptions = gagaAgGrid.getGridOptions(columnAddrDefs); //주소정보 그리드
- let gridContactOptions = gagaAgGrid.getGridOptions(columnContactDefs); //회원접촉이력 그리드
- gridOrderOptions.suppressRowClickSelection = true;
- gridCounselOptions.suppressRowClickSelection = true;
- gridGoodsQnaOptions.suppressRowClickSelection = true;
- gridCouponOptions.suppressRowClickSelection = true;
- gridPointOptions.suppressRowClickSelection = true;
- gridGiftCardOptions.suppressRowClickSelection = true;
- gridReviewOptions.suppressRowClickSelection = true;
- gridGradeOptions.suppressRowClickSelection = true;
- gridAddrOptions.suppressRowClickSelection = true;
- gridContactOptions.suppressRowClickSelection = true;
- // 기본정보 - 비밀번호 초기화 버튼
- $('#btnResetPassword').on('click', function () {
- if (!fnCheckValidationEmail('#custInfoForm')) {
- return false;
- }
- mcxDialog.confirm("초기화 하시겠습니까?", {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function () {
- let jsonData = JSON.stringify($('#custInfoForm').serializeObject());
- gagajf.ajaxJsonSubmit('/customer/password/reset', jsonData, fnSearchCustInfo);
- }
- });
- });
- // 기본정보 - LMS발송 버튼
- $('#btnCustSendLms').on('click', function () {
- if (!fnCheckValidationPhnno('#custInfoForm')) {
- return false;
- }
- let param = {};
- param.elementCellPhnno = '#custInfoForm input[name=cellPhnno]';
- param.elementCustNo = '#custInfoForm input[name=custNo]';
- cfnOpenLmsPopup(param);
- });
- // 기본정보 - 번호변경
- $('#btnCustCrtfd').on('click', function () {
- if (!fnCheckValidationPhnno('#custInfoForm')) {
- return false;
- }
- let elementCellPhnno = '#custInfoForm input[name=cellPhnno]';
- let elementCustNo = '#custInfoForm input[name=custNo]';
- const actionUrl = '/customer/cellphone/change/popup/form?elementCellPhnno=' + encodeURIComponent(elementCellPhnno)
- + '&elementCustNo=' + encodeURIComponent(elementCustNo)
- cfnOpenModalPopup(actionUrl, 'popupCellphoneForm');
- });
- // 기본정보 - 이메일발송 버튼
- $('#btnCustSendEmail').on('click', function () {
- if (!fnCheckValidationEmail('#custInfoForm')) {
- return false;
- }
- let param = {};
- param.elementEmail = '#custInfoForm input[name=email]';
- param.elementCustNo ='#custInfoForm input[name=custNo]';
- cfnOpenEmailPopup(param);
- });
- // 기본정보 - 이메일 도메인 선택 이벤트
- $('#emailDomainList').on('change', function () {
- let domain = $(this).val();
- let $emailDomain = $('#emailDomain');
- if (domain === '99') { //기타(직접입력)
- $emailDomain.val('');
- } else if (domain !== '99' && !gagajf.isNull(domain)) {
- $emailDomain.val(domain);
- }
- });
- $('#btnCustSecede').on('click', function () {
- let custNo = $('#custInfoForm input[name=custNo]').val();
- if (gagajf.isNull(custNo)) {
- mcxDialog.alert("탈퇴시킬 회원번호가 없습니다.");
- return;
- }
- let elementCustNo ='#custInfoForm input[name=custNo]';
- const actionUrl = '/customer/secede/popup/form?elementCustNo='+ encodeURIComponent(elementCustNo)
- cfnOpenModalPopup(actionUrl, 'popupCustSecedeForm');
- });
- // 기본정보 - 저장버튼
- $('#btnCustInfoSave').on('click', function () {
- //휴대폰번호
- if (!fnCheckValidationPhnno('#custInfoForm'))
- return false;
- //이메일
- if (!fnCheckValidationEmail('#custInfoForm'))
- return false;
- let customer = $('#custInfoForm').serializeObject();
- if (!gagajf.isNull(customer.managedRsn) && gagajf.isNull(customer.managedDtlRsn)) {
- mcxDialog.alert("관리대상 지정 사유를 입력해주세요");
- return;
- }
- // 데이터 변경 없으면 공배처리
- if (customer.emailAgreeYn === orgData.emailAgreeYn) {
- customer.emailAgreeYn = '';
- }
- // 데이터 변경 없으면 공배처리
- if (customer.smsAgreeYn === orgData.smsAgreeYn) {
- customer.smsAgreeYn = '';
- }
- // 마케팅 수신여부가 기존하고 바꼈는지 확인
- mcxDialog.confirm("기본정보를 수정 하시겠습니까?", {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function () {
- let jsonData = JSON.stringify(customer);
- //console.log(jsonData);
- gagajf.ajaxJsonSubmit('/customer/info/save', jsonData, fnSearchCustInfo);
- }
- });
- });
- // 배송지정보 - 신규버튼
- $('#btnCustAddrNew').on('click', function () {
- $('#custAddrForm')[0].reset();
- $('#custAddrForm input[name=custDelvAddrSq]').val('');
- $('#custAddrForm input[name=recipPhnno]').val('');
- $('#custAddrForm input[name=recipTelno]').val('');
- fnDisplayDeliveryCheckBox('N', 'N');
- });
- // 배송지정보 - 저장버튼
- $('#btnCustAddrSave').on('click', function () {
- if (!gagajf.validation('#custAddrForm'))
- return false;
- // 전화번호
- let telFirstNo = $('#custAddrForm select[name=telFirstNo]').val();
- let telMiddleNo = $('#custAddrForm input[name=telMiddleNo]').val();
- let telLastNo = $('#custAddrForm input[name=telLastNo]').val();
- $('#custAddrForm input[name=recipTelno]').val(telFirstNo + '-' + telMiddleNo + '-' + telLastNo);
- // 핸드폰번호 필수값 validation 함수에서 null 체크
- let recipFirstNo = $('#custAddrForm select[name=recipFirstNo]').val();
- let recipMiddleNo = $('#custAddrForm input[name=recipMiddleNo]').val();
- let recipLastNo = $('#custAddrForm input[name=recipLastNo]').val();
- $('#custAddrForm input[name=recipPhnno]').val(recipFirstNo + '-' + recipMiddleNo + '-' + recipLastNo);
- mcxDialog.confirm("저장하시겠습니까?", {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function () {
- gagajf.removeCommaAtNumberFormattedInput('#custAddrForm');
- let jsonData = JSON.stringify($('#custAddrForm').serializeObject());
- gagajf.ajaxJsonSubmit('/customer/delivery/addr/save', jsonData, fnSearchDelivery);
- }
- });
- });
- // 쿠폰삭제 버튼
- $('#btnCustCouponDelete').on('click', function () {
- let removedData = gagaAgGrid.removeRowData(gridCouponOptions);
- if (removedData.length < 1) {
- mcxDialog.alert("선택된 데이터가 없습니다.");
- return;
- }
- mcxDialog.confirm("삭제 하시겠습니까?", {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function () {
- let updatedData = [];
- $.each(removedData, function (idx, item) {
- let param = {};
- param.custCpnSq = item.custCpnSq;
- param.custNo = item.custNo;
- updatedData.push(param);
- });
- let jsonData = JSON.stringify(updatedData);
- gagajf.ajaxJsonSubmit('/marketing/coupon/cust/delete', jsonData, fnSearchCoupon);
- }
- });
- });
- // 포인트부여 버튼
- $('#btnCustPointCreate').on('click', function () {
- let elementCustNo ='#custInfoForm input[name=custNo]';
- const actionUrl = '/marketing/point/grant/popup/form?elementCustNo=' + encodeURIComponent(elementCustNo);
- cfnOpenModalPopup(actionUrl, 'popupPointGrantForm');
- });
- // 쿠폰발급 버튼
- $('#btnCustCouponCreate').on('click', function () {
- let elementCustNo ='#custInfoForm input[name=custNo]';
- const actionUrl = '/marketing/coupon/issue/popup/form?elementCustNo=' + encodeURIComponent(elementCustNo);
- cfnOpenModalPopup(actionUrl, 'popupCouponIssue');
- });
- // 회원접촉이력 저장
- $('#btnSaveContact').on('click', function () {
- if (!gagajf.validation('#custContactHstForm')) {
- return;
- }
- mcxDialog.confirm("저장하시겠습니까?", {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function () {
- var jsonData = JSON.stringify($('#custContactHstForm').serializeObject());
- gagajf.ajaxJsonSubmit('/customer/contact/create', jsonData, fnSearchContact);
- }
- });
- });
- // 주문내역 셀 클릭 이벤트
- gridOrderOptions.onCellClicked = function (event) {
- if (event.colDef.field === 'goodsCd') {
- let goodsCd = event.data.goodsCd;
- cfnOpenGoodsDetailPopup('U', goodsCd);
- }
- if (event.colDef.field === 'ordNo') {
- let ordNo = event.data.ordNo;
- cfnOpenOrderDetailPopup(ordNo);
- }
- };
- // 1:1문의 내역 셀 클릭 이벤트
- gridCounselOptions.onCellClicked = function (event) {
- if (event.colDef.field === 'questTitle') {
- let counselSq = event.data.counselSq;
- cfnOpenOneToOneQnaDetailPopup(counselSq);
- }
- };
- // 상품문의 내역 셀 클릭 이벤트
- gridGoodsQnaOptions.onCellClicked = function (event) {
- if (event.colDef.field === 'questTitle') {
- let counselSq = event.data.counselSq;
- cfnOpenGoodsQnaDetailPopup(counselSq);
- }
- };
- // 상품평내역 셀 클릭 이벤트
- gridReviewOptions.onCellClicked = function (event) {
- if (event.colDef.field === 'reviewTitle') {
- let reviewSq = event.data.reviewSq;
- cfnOpenReviewDetailPopup(reviewSq);
- }
- };
- // 주소지 셀 클릭 이벤트
- gridAddrOptions.onCellClicked = function (event) {
- if (event.colDef.field !== 'delvAddrNm')
- return;
- if (!gagajf.isNull(event.data)) {
- $('#custAddrForm input[name=custDelvAddrSq]').val(event.data.custDelvAddrSq);
- $('#custAddrForm input[name=delvAddrNm]').val(event.data.delvAddrNm);
- $('#custAddrForm input[name=recipNm]').val(event.data.recipNm);
- if (!gagajf.isNull(event.data.recipPhnno)) {
- let phnNoSplit = event.data.recipPhnno.split("-");
- $('#custAddrForm select[name=recipFirstNo]').val(phnNoSplit[0]);
- $('#custAddrForm input[name=recipMiddleNo]').val(phnNoSplit[1]);
- $('#custAddrForm input[name=recipLastNo]').val(phnNoSplit[2]);
- }
- if (!gagajf.isNull(event.data.recipTelno)) {
- let telNoSplit = event.data.recipTelno.split("-");
- $('#custAddrForm select[name=telFirstNo]').val(telNoSplit[0]);
- $('#custAddrForm input[name=telMiddleNo]').val(telNoSplit[1]);
- $('#custAddrForm input[name=telLastNo]').val(telNoSplit[2]);
- }
- $('#custAddrForm input[name=recipZipcode]').val(event.data.recipZipcode);
- $('#custAddrForm input[name=recipBaseAddr]').val(event.data.recipBaseAddr);
- $('#custAddrForm input[name=recipDtlAddr]').val(event.data.recipDtlAddr);
- fnDisplayDeliveryCheckBox(event.data.defaultYn, event.data.delYn);
- }
- };
- // 회원정보 조회
- var fnSearchCustInfo = function () {
- $.get('/customer/info/' + custNo
- , function (data) {
- if (!gagajf.isNull(data)) {
- $('#spanCustNm').text(data.maskingCustNm);
- $('#custId').text(data.maskingCustId);
- $('#siteNm').text(gagaAgGrid.lookupValue(siteList, data.siteCd));
- $('#custGrade').val(data.custGrade);
- $('#custGb').val(data.custGb);
- $('#managedRsn').val(data.managedRsn);
- $('#managedDtlRsn').val(data.managedDtlRsn);
- $('#managedDt').text(gagaAgGrid.toDateTimeFormat(data.managedDt));
- $('#joinDt').text(gagaAgGrid.toDateTimeFormat(data.joinDt));
- let loginDt = fnGetLoginDt(data.loginDt);
- $('#loginDt').text(loginDt);
- let foreignerYn = data.foreignerYn === 'Y' ? '외국인' : '내국인';
- $('#foreignerYn').text(foreignerYn);
- fnGetSecedeRsnYn(data.custStat, data.secedeRsn); // 탈퇴여부
- let snsType = fnGetSnsType(data.nvJoinId, data.kkJoinId, data.ysJoinId);
- $('#snsType').text(snsType);
- $('#homeZipcode').val(data.homeZipcode);
- $('#homeBaseAddr').val(data.homeBaseAddr);
- $('#homeDtlAddr').val(data.homeDtlAddr);
- $('#sexGb').text(gagaAgGrid.lookupValue(genderGbList, data.sexGb));
- $('#birthYmd').val(gagaAgGrid.toDateFormat(data.birthYmd));
- fnDisplayEmailAgree(data.emailAgreeYn); // 이메일 수신여부
- fnDisplaySmsAgree(data.smsAgreeYn); // SMS 수신여부
- fnDisplayEmail(data.maskingEmail); // EMAIL
- fnDisplayCellPhnno(data.maskingCellPhnno); // 핸드폰
- fnDisplayManaged(data.managedRsn); // 관리대상
- orgData = data; // 기존 데이터
- }
- });
- };
- // 구매내역 조회
- var fnSearchOrder = function () {
- const actionUrl = "/customer/order/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridOrderOptions);
- };
- // 배송지 조회
- var fnSearchDelivery = function () {
- const actionUrl = "/customer/delivery/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridAddrOptions);
- $('#btnCustAddrNew').trigger('click');
- };
- // 쿠폰내역 조회
- var fnSearchCoupon = function () {
- const actionUrl = "/customer/coupon/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridCouponOptions);
- };
- // 포인트내역 조회
- var fnSearchPoint = function () {
- $.get('/customer/point/' + custNo
- , function (data) {
- if (!gagajf.isNull(data)) {
- $('#custPointForm td[name=availPntAmt]').text(data.rmPntAmt.addComma() + ' P');
- $('#custPointForm td[name=accumPntAmt]').text(data.gvPntAmt.addComma() + ' P');
- $('#custPointForm td[name=usePntAmt]').text(data.usPntAmt.addComma() + ' P');
- $('#custPointForm td[name=expirePntAmt]').text(data.expirePntAmt.addComma() + ' P');
- $('#custPointForm td[name=expectedPntAmt]').text(data.expectedPntAmt.addComma() + ' P');
- $('#custPointForm td[name=expectedExpirePntAmt]').text(data.expectedExpirePntAmt.addComma() + ' P');
- }
- });
- const actionUrl = "/customer/point/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridPointOptions);
- };
- // 상품권 조회
- var fnSearchGiftCard = function () {
- const actionUrl = "/customer/giftcard/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridGiftCardOptions);
- };
- // 상품평내역 조회
- var fnSearchReview = function () {
- const actionUrl = "/customer/review/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridReviewOptions);
- };
- // 1:1문의 내역 조회
- var fnSearchCounsel = function () {
- const actionUrl = "/customer/counsel/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridCounselOptions);
- };
- // 상품문의 내역 조회
- var fnSearchGoodsQna = function () {
- const actionUrl = "/customer/goodsQna/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridGoodsQnaOptions);
- };
- // 회원접촉이력 조회
- var fnSearchContact = function () {
- $('#custContactHstForm')[0].reset();
- const actionUrl = "/customer/contact/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridContactOptions);
- };
- // 회원등급변경이력 조회
- var fnSearchChangeGrade = function () {
- const actionUrl = "/customer/change/grade/list/" + custNo;
- gagaAgGrid.fetch(actionUrl, gridGradeOptions);
- };
- /**
- * DAUM을 이용한 우편번호 팝업 레이어
- */
- var fnOpenDaumAddr = function(id) {
- let daumZip = new daum.Postcode({
- oncomplete: function(data) {
- // 우편번호와 주소 정보를 해당 필드에 넣는다.
- if (id === 'custInfoForm') {
- $('#homeZipcode').val(data.zonecode);
- $('#homeBaseAddr').val(cfnGetDaumRoadAddr(data));
- $('#homeDtlAddr').focus();
- }
- if (id === 'custAddrForm') {
- $('#recipZipcode').val(data.zonecode);
- $('#recipBaseAddr').val(cfnGetDaumRoadAddr(data));
- $('#recipDtlAddr').focus();
- }
- cfnCloseDaumAddr();
- },
- width: '100%'
- });
- cfnOpenDaumAddr(daumZip);
- }
- // 휴대전화 유효성 체크 및 데이터 셋팅
- var fnCheckValidationPhnno = function (formId) {
- let result = true;
- if (!gagajf.testRegexp($(formId + ' input[name=cellPhnno]'), /^(01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4})$/)) {
- result = false;
- }
- return result;
- };
- // 이메일 체크 및 데이터 셋팅
- var fnCheckValidationEmail = function (formId) {
- let result = true;
- let emailId = $(formId + ' input[name=emailId]').val();
- let emailDomain = $(formId + ' input[name=emailDomain]').val();
- $(formId + ' input[name=email]').val(emailId + '@' + emailDomain);
- if (!gagajf.testRegexp($(formId + ' input[name=email]'), /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/)) {
- result = false;
- }
- return result;
- };
- // 관리대상
- var fnDisplayManaged = function (managedRsn) {
- const $managedRsnNm = $('#managedRsnNm');
- const $managedRsnDp = $('#managedRsnDp');
- $managedRsnNm.text('');
- $managedRsnNm.hide();
- $managedRsnDp.text('');
- $managedRsnDp.hide();
- if (!gagajf.isNull(managedRsn)) {
- let html = '<i class="fa fa-info-circle"></i>';
- $managedRsnNm.html(html);
- $managedRsnNm.show();
- $managedRsnDp.html(html);
- $managedRsnDp.show();
- }
- };
- // 탈퇴여부
- var fnGetSecedeRsnYn = function (custStat, secedeRsn) {
- const activeCustomer = 'G104_10';
- let secedeRsnYn = gagajf.isNull(secedeRsn) ? '아니요' : '예';
- $('#secedeRsnYn').text(secedeRsnYn);
- if (custStat === activeCustomer) {
- $('#btnCustSecede').show();
- }
- }
- // 휴대전화번호
- var fnDisplayCellPhnno = function (cellPhnno) {
- $('#custInfoForm input[name=cellPhnno]').val(cellPhnno);
- };
- // 이메일
- var fnDisplayEmail = function (email) {
- if (!gagajf.isNull(email)) {
- let emailSplit = email.split("@");
- $('#emailId').val(emailSplit[0]);
- $('#emailDomain').val(emailSplit[1]);
- }
- };
- // 이메일 수신동의
- var fnDisplayEmailAgree = function (emailAgreeYn) {
- let emailEq = emailAgreeYn === 'Y' ? 0 : 1;
- const $emailAgreeYn = $('input:radio[name=emailAgreeYn]');
- $emailAgreeYn.eq(emailEq).prop('checked', true);
- $emailAgreeYn.eq(emailEq).parent().addClass('checked');
- };
- // SMS 수신동의
- var fnDisplaySmsAgree = function (smsAgreeYn) {
- let smsEq = smsAgreeYn === 'Y' ? 0 : 1;
- const $smsAgreeYn = $('input:radio[name=smsAgreeYn]');
- $smsAgreeYn.eq(smsEq).prop('checked', true);
- $smsAgreeYn.eq(smsEq).parent().addClass('checked');
- };
- // 최종로그인 일시
- var fnGetLoginDt = function (loginDt) {
- let result = '로그인 이력이 없습니다.';
- if (!gagajf.isNull(loginDt)) {
- result = gagaAgGrid.toDateTimeFormat(loginDt);
- }
- return result;
- };
- // SNS가입유형
- var fnGetSnsType = function (nvJoinId, kkJoinId, ysJoinId) {
- let snsType = '';
- if (!gagajf.isNull(nvJoinId)) {
- snsType = 'NAVER'
- }
- if (!gagajf.isNull(kkJoinId)) {
- if (!gagajf.isNull(snsType)) {
- snsType += ','
- }
- snsType += 'KAKAO';
- }
- if (!gagajf.isNull(ysJoinId)) {
- if (!gagajf.isNull(snsType)) {
- snsType += ','
- }
- snsType += 'YES24';
- }
- return snsType;
- };
- // 생년월일 달력 설정
- var fnDisplayBirthYmd = function () {
- const $birthYmd = $('#birthYmd');
- let currentYear = new Date().format('YYYY');
- $birthYmd.datepicker("destroy");
- $birthYmd.datepicker({
- changeMonth: true,
- changeYear: true,
- yearRange: (currentYear - 100) + ' : ' + (currentYear - 14),
- defaultDate: $birthYmd.val()
- });
- };
- // 배송지 기본,삭제 체크박스 설정
- var fnDisplayDeliveryCheckBox = function (defaultYn, delYn) {
- let $defaultYn = $('#custAddrForm input:checkbox[name=defaultYn]');
- let $delYn = $('#custAddrForm input:checkbox[name=delYn]');
- let defaultBoolean;
- let delBoolean;
- if (defaultYn === 'Y') {
- defaultBoolean = true;
- $defaultYn.parent().addClass('checked');
- } else {
- defaultBoolean = false;
- $defaultYn.parent().removeClass('checked');
- }
- if (delYn === 'Y') {
- delBoolean = true;
- $delYn.parent().addClass('checked');
- } else {
- delBoolean = false;
- $delYn.parent().removeClass('checked');
- }
- $defaultYn.prop('checked', defaultBoolean);
- $delYn.prop('checked', delBoolean);
- }
- $('#btnLogin').on('click', function () {
- let custId = $('span[name=custId]').text();
- const actionUrl = _frontUrl + '/customer/front/login?custId=' + custId;
- let popupWidth = window.screen.width;
- let popupHeight = window.screen.height;
- window.open(actionUrl);
- })
- $(document).ready(function () {
- fnDisplayBirthYmd(); //생년월일 달력 설정
- fnSearchCustInfo(); //회원정보 조회
- gagaAgGrid.createGrid('custOrderList', gridOrderOptions); // 주문내역
- gagaAgGrid.createGrid('custAddrList', gridAddrOptions); // 주소정보 그리드
- gagaAgGrid.createGrid('custCouponList', gridCouponOptions); // 쿠폰내역
- gagaAgGrid.createGrid('custPointList', gridPointOptions); // 포인트내역 그리드
- gagaAgGrid.createGrid('custGiftCardList', gridGiftCardOptions); // 상품권내역 그리드
- gagaAgGrid.createGrid('custCounselList', gridCounselOptions); // 1:1문의 내역
- gagaAgGrid.createGrid('custGoodsQnaList', gridGoodsQnaOptions); // 상품문의 내역
- gagaAgGrid.createGrid('custReviewList', gridReviewOptions); // 상품평 그리드
- gagaAgGrid.createGrid('custGradeList', gridGradeOptions); // 등급변경 그리드
- gagaAgGrid.createGrid('custContactList', gridContactOptions); // 회원접촉이력 그리드
- });
- /*]]>*/
- </script>
- </html>
|