|
@@ -92,14 +92,14 @@
|
|
|
</colgroup>
|
|
</colgroup>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th class="dashR">회원구분<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">회원구분<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<select id="custGb" name="custGb">
|
|
<select id="custGb" name="custGb">
|
|
|
<option th:if="${custGbList}" th:each="oneData, status : ${custGbList}" th:value="${oneData.cd}"
|
|
<option th:if="${custGbList}" th:each="oneData, status : ${custGbList}" th:value="${oneData.cd}"
|
|
|
th:text="|${oneData.cdNm}|"></option>
|
|
th:text="|${oneData.cdNm}|"></option>
|
|
|
</select>
|
|
</select>
|
|
|
</td>
|
|
</td>
|
|
|
- <th class="dashR">회원등급<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">회원등급<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<select id="custGrade" name="custGrade">
|
|
<select id="custGrade" name="custGrade">
|
|
|
<option th:if="${custGradeList}" th:each="oneData, status : ${custGradeList}" th:value="${oneData.cd}"
|
|
<option th:if="${custGradeList}" th:each="oneData, status : ${custGradeList}" th:value="${oneData.cd}"
|
|
@@ -156,7 +156,7 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th class="dashR">휴대전화번호<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">휴대전화번호<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<input type="hidden" name="cellPhnno" data-valid-name="휴대전화"/>
|
|
<input type="hidden" name="cellPhnno" data-valid-name="휴대전화"/>
|
|
|
<select id="firstNo" name="firstNo">
|
|
<select id="firstNo" name="firstNo">
|
|
@@ -171,14 +171,14 @@
|
|
|
<button type="button" id="btnCustSendLms" class="btn btn-info btn-lg">LMS전송</button>
|
|
<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>
|
|
<button type="button" id="btnCustCrtfd" class="btn btn-info btn-lg">번호변경</button>
|
|
|
</td>
|
|
</td>
|
|
|
- <th class="dashR">SMS수신여부<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">SMS수신여부<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="Y"/>수신</label>
|
|
<label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="Y"/>수신</label>
|
|
|
<label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="N"/>미수신</label>
|
|
<label class="rdoBtn"><input type="radio" name="smsAgreeYn" value="N"/>미수신</label>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th class="dashR">이메일<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">이메일<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<input type="hidden" name="email" data-valid-name="이메일"/>
|
|
<input type="hidden" name="email" data-valid-name="이메일"/>
|
|
|
<input type="text" id="emailId" name="emailId" class="w300"/>
|
|
<input type="text" id="emailId" name="emailId" class="w300"/>
|
|
@@ -191,7 +191,7 @@
|
|
|
</select>
|
|
</select>
|
|
|
<button type="button" id="btnCustSendEmail" class="btn btn-info btn-lg" >이메일발송</button>
|
|
<button type="button" id="btnCustSendEmail" class="btn btn-info btn-lg" >이메일발송</button>
|
|
|
</td>
|
|
</td>
|
|
|
- <th class="dashR">메일수신여부<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th class="dashR">메일수신여부<em class="required" title="필수"></em></th>
|
|
|
<td class="dashR">
|
|
<td class="dashR">
|
|
|
<label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="Y"/>수신</label>
|
|
<label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="Y"/>수신</label>
|
|
|
<label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="N"/>미수신</label>
|
|
<label class="rdoBtn"><input type="radio" name="emailAgreeYn" value="N"/>미수신</label>
|
|
@@ -207,7 +207,12 @@
|
|
|
<th class="dashR">내외국인</th>
|
|
<th class="dashR">내외국인</th>
|
|
|
<td class="dashR" id="foreignerYn" name="foreignerYn"></td>
|
|
<td class="dashR" id="foreignerYn" name="foreignerYn"></td>
|
|
|
<th class="dashR">탈퇴여부</th>
|
|
<th class="dashR">탈퇴여부</th>
|
|
|
- <td class="dashR" id="secedeRsnYn" name="secedeRsnYn"></td>
|
|
|
|
|
|
|
+ <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>
|
|
|
<tr>
|
|
<tr>
|
|
|
<th class="dashR">SNS가입유형</th>
|
|
<th class="dashR">SNS가입유형</th>
|
|
@@ -258,14 +263,14 @@
|
|
|
</colgroup>
|
|
</colgroup>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th>배송지명<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>배송지명<em class="required" title="필수"></em></th>
|
|
|
<td>
|
|
<td>
|
|
|
<input type="text" class="w200" name="delvAddrNm" maxlength="30" required="required" data-valid-name="배송지명"/>
|
|
<input type="text" class="w200" name="delvAddrNm" maxlength="30" required="required" data-valid-name="배송지명"/>
|
|
|
<label class="chkBox">
|
|
<label class="chkBox">
|
|
|
<input type="checkbox" name="defaultYn" value="Y"/>기본
|
|
<input type="checkbox" name="defaultYn" value="Y"/>기본
|
|
|
</label>
|
|
</label>
|
|
|
</td>
|
|
</td>
|
|
|
- <th>수령인<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>수령인<em class="required" title="필수"></em></th>
|
|
|
<td>
|
|
<td>
|
|
|
<input type="text" class="w200" name="recipNm" maxlength="10" required="required" data-valid-name="수령인"/>
|
|
<input type="text" class="w200" name="recipNm" maxlength="10" required="required" data-valid-name="수령인"/>
|
|
|
</td>
|
|
</td>
|
|
@@ -290,7 +295,7 @@
|
|
|
<input type="text" class="w100" name="telLastNo" maxlength="4" data-valid-type="numeric"
|
|
<input type="text" class="w100" name="telLastNo" maxlength="4" data-valid-type="numeric"
|
|
|
data-valid-name="전화번호"/>
|
|
data-valid-name="전화번호"/>
|
|
|
</td>
|
|
</td>
|
|
|
- <th>휴대전화번호<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>휴대전화번호<em class="required" title="필수"></em></th>
|
|
|
<td colspan="4">
|
|
<td colspan="4">
|
|
|
<input type="hidden" id="recipPhnno" name="recipPhnno"/>
|
|
<input type="hidden" id="recipPhnno" name="recipPhnno"/>
|
|
|
<select class="w100" id="recipFirstNo" name="recipFirstNo">
|
|
<select class="w100" id="recipFirstNo" name="recipFirstNo">
|
|
@@ -305,7 +310,7 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th>주소<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>주소<em class="required" title="필수"></em></th>
|
|
|
<td colspan="5">
|
|
<td colspan="5">
|
|
|
<input type="text" id="recipZipcode" name="recipZipcode" class="w100" maxlength="10" required="required" data-valid-name="주소"/>
|
|
<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>
|
|
<button type="button" class="btn btn-info btn-lg" onclick="fnOpenDaumAddr('custAddrForm');">우편번호찾기</button>
|
|
@@ -454,7 +459,7 @@
|
|
|
</colgroup>
|
|
</colgroup>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <th>접촉유형<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>접촉유형<em class="required" title="필수"></em></th>
|
|
|
<td>
|
|
<td>
|
|
|
<select name="contactType" class="w150" required="required" data-valid-type="select" data-valid-name="접촉유형">
|
|
<select name="contactType" class="w150" required="required" data-valid-type="select" data-valid-name="접촉유형">
|
|
|
<option value="">[선택]</option>
|
|
<option value="">[선택]</option>
|
|
@@ -462,7 +467,7 @@
|
|
|
th:text="${oneData.cdNm}"></option>
|
|
th:text="${oneData.cdNm}"></option>
|
|
|
</select>
|
|
</select>
|
|
|
</td>
|
|
</td>
|
|
|
- <th>접촉방법<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>접촉방법<em class="required" title="필수"></em></th>
|
|
|
<td>
|
|
<td>
|
|
|
<select name="contactMethod" class="w150" required="required" data-valid-type="select" data-valid-name="접촉방법">
|
|
<select name="contactMethod" class="w150" required="required" data-valid-type="select" data-valid-name="접촉방법">
|
|
|
<option value="">[선택]</option>
|
|
<option value="">[선택]</option>
|
|
@@ -470,7 +475,7 @@
|
|
|
th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
|
|
th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
|
|
|
</select>
|
|
</select>
|
|
|
</td>
|
|
</td>
|
|
|
- <th>내용<i class="star"></i></th>
|
|
|
|
|
|
|
+ <th>내용<em class="required" title="필수"></em></th>
|
|
|
<td>
|
|
<td>
|
|
|
<textarea class="textareaR2 w600" name="contactContents" required="required" data-valid-name="내용"></textarea>
|
|
<textarea class="textareaR2 w600" name="contactContents" required="required" data-valid-name="내용"></textarea>
|
|
|
<button type="button" id="btnSaveContact" class="btn btn-success btn-lg">저장</button>
|
|
<button type="button" id="btnSaveContact" class="btn btn-success btn-lg">저장</button>
|
|
@@ -529,6 +534,7 @@
|
|
|
const contactTypeList = gagajf.convertToArray([[${contactTypeList}]]); //회원접촉유형
|
|
const contactTypeList = gagajf.convertToArray([[${contactTypeList}]]); //회원접촉유형
|
|
|
const contactMethodList = gagajf.convertToArray([[${contactMethodList}]]); //회원접촉방법
|
|
const contactMethodList = gagajf.convertToArray([[${contactMethodList}]]); //회원접촉방법
|
|
|
const genderGbList = gagajf.convertToArray([[${genderGbList}]]); // 성별
|
|
const genderGbList = gagajf.convertToArray([[${genderGbList}]]); // 성별
|
|
|
|
|
+ let orgData;
|
|
|
|
|
|
|
|
//구매내역 그리드
|
|
//구매내역 그리드
|
|
|
const columnOrderDefs = [
|
|
const columnOrderDefs = [
|
|
@@ -948,35 +954,61 @@
|
|
|
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ $('#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 () {
|
|
$('#btnCustInfoSave').on('click', function () {
|
|
|
- let custInfoFrom = '#custInfoForm';
|
|
|
|
|
|
|
|
|
|
//휴대폰번호
|
|
//휴대폰번호
|
|
|
- if (!fnCheckValidationPhnno(custInfoFrom))
|
|
|
|
|
|
|
+ if (!fnCheckValidationPhnno('#custInfoForm'))
|
|
|
return false;
|
|
return false;
|
|
|
|
|
|
|
|
//이메일
|
|
//이메일
|
|
|
- if (!fnCheckValidationEmail(custInfoFrom))
|
|
|
|
|
|
|
+ if (!fnCheckValidationEmail('#custInfoForm'))
|
|
|
return false;
|
|
return false;
|
|
|
|
|
|
|
|
- let managedRsn = $('#managedRsn').val();
|
|
|
|
|
- let managedDtlRsn = $('#managedDtlRsn').val();
|
|
|
|
|
|
|
+ let customer = $('#custInfoForm').serializeObject();
|
|
|
|
|
|
|
|
- if (!gagajf.isNull(managedRsn) && gagajf.isNull(managedDtlRsn)) {
|
|
|
|
|
|
|
+ if (!gagajf.isNull(customer.managedRsn) && gagajf.isNull(customer.managedDtlRsn)) {
|
|
|
mcxDialog.alert("관리대상 지정 사유를 입력해주세요");
|
|
mcxDialog.alert("관리대상 지정 사유를 입력해주세요");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 데이터 변경 없으면 공배처리
|
|
|
|
|
+ if (customer.emailAgreeYn === orgData.emailAgreeYn) {
|
|
|
|
|
+ customer.emailAgreeYn = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 데이터 변경 없으면 공배처리
|
|
|
|
|
+ if (customer.smsAgreeYn === orgData.smsAgreeYn) {
|
|
|
|
|
+ customer.smsAgreeYn = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 마케팅 수신여부가 기존하고 바꼈는지 확인
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
mcxDialog.confirm("기본정보를 수정 하시겠습니까?", {
|
|
mcxDialog.confirm("기본정보를 수정 하시겠습니까?", {
|
|
|
cancelBtnText: "취소",
|
|
cancelBtnText: "취소",
|
|
|
sureBtnText: "확인",
|
|
sureBtnText: "확인",
|
|
|
sureBtnClick: function () {
|
|
sureBtnClick: function () {
|
|
|
- let jsonData = JSON.stringify($(custInfoFrom).serializeObject());
|
|
|
|
|
|
|
+ let jsonData = JSON.stringify(customer);
|
|
|
//console.log(jsonData);
|
|
//console.log(jsonData);
|
|
|
gagajf.ajaxJsonSubmit('/customer/info/save', jsonData, fnSearchCustInfo);
|
|
gagajf.ajaxJsonSubmit('/customer/info/save', jsonData, fnSearchCustInfo);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// 배송지정보 - 신규버튼
|
|
// 배송지정보 - 신규버튼
|
|
@@ -1159,8 +1191,7 @@
|
|
|
let foreignerYn = data.foreignerYn === 'Y' ? '외국인' : '내국인';
|
|
let foreignerYn = data.foreignerYn === 'Y' ? '외국인' : '내국인';
|
|
|
$('#foreignerYn').text(foreignerYn);
|
|
$('#foreignerYn').text(foreignerYn);
|
|
|
|
|
|
|
|
- let secedeRsnYn = fnGetSecedeRsnYn(data.custStat, data.secedeRsn);
|
|
|
|
|
- $('#secedeRsnYn').html(secedeRsnYn);
|
|
|
|
|
|
|
+ fnGetSecedeRsnYn(data.custStat, data.secedeRsn); // 탈퇴여부
|
|
|
|
|
|
|
|
let snsType = fnGetSnsType(data.nvJoinId, data.kkJoinId, data.ysJoinId);
|
|
let snsType = fnGetSnsType(data.nvJoinId, data.kkJoinId, data.ysJoinId);
|
|
|
$('#snsType').text(snsType);
|
|
$('#snsType').text(snsType);
|
|
@@ -1176,6 +1207,8 @@
|
|
|
fnDisplayCellPhnno(data.maskingCellPhnno); // 핸드폰
|
|
fnDisplayCellPhnno(data.maskingCellPhnno); // 핸드폰
|
|
|
fnDisplayManaged(data.managedRsn); // 관리대상
|
|
fnDisplayManaged(data.managedRsn); // 관리대상
|
|
|
|
|
|
|
|
|
|
+ orgData = data; // 기존 데이터
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
@@ -1313,30 +1346,6 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
- var fnCustomerSecede = function () {
|
|
|
|
|
-
|
|
|
|
|
- if (gagajf.isNull(custNo)) {
|
|
|
|
|
- mcxDialog.alert("탈퇴시킬 회원번호가 없습니다.");
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const actionUrl = "/customer/info/secede/form";
|
|
|
|
|
- let paramsStr = "?custNo=" + custNo;
|
|
|
|
|
- paramsStr += "&callBackFn=" + 'fnCustomerNotUseAfter';
|
|
|
|
|
-
|
|
|
|
|
- cfnOpenModalPopup(actionUrl + paramsStr, 'popupCustSecede');
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- var fnCustomerNotUseAfter = function () {
|
|
|
|
|
-
|
|
|
|
|
- if (!gagajf.isNull(fnSearch) && typeof fnSearch == "function") {
|
|
|
|
|
- fnSearch();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- uifnPopupClose('popupCustomerDetail');
|
|
|
|
|
-
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
// 관리대상
|
|
// 관리대상
|
|
|
var fnDisplayManaged = function (managedRsn) {
|
|
var fnDisplayManaged = function (managedRsn) {
|
|
|
const $managedRsnNm = $('#managedRsnNm');
|
|
const $managedRsnNm = $('#managedRsnNm');
|
|
@@ -1357,13 +1366,12 @@
|
|
|
|
|
|
|
|
// 탈퇴여부
|
|
// 탈퇴여부
|
|
|
var fnGetSecedeRsnYn = function (custStat, secedeRsn) {
|
|
var fnGetSecedeRsnYn = function (custStat, secedeRsn) {
|
|
|
|
|
+ const activeCustomer = 'G104_10';
|
|
|
let secedeRsnYn = gagajf.isNull(secedeRsn) ? '아니요' : '예';
|
|
let secedeRsnYn = gagajf.isNull(secedeRsn) ? '아니요' : '예';
|
|
|
- if (custStat === '10') {
|
|
|
|
|
- secedeRsnYn += '<button type="button" class="btn btn-danger btn-lg marL5" onClick="fnCustomerSecede();">';
|
|
|
|
|
- secedeRsnYn += ' 회원탈퇴';
|
|
|
|
|
- secedeRsnYn += '</button>';
|
|
|
|
|
|
|
+ $('#secedeRsnYn').text(secedeRsnYn);
|
|
|
|
|
+ if (custStat === activeCustomer) {
|
|
|
|
|
+ $('#btnCustSecede').show();
|
|
|
}
|
|
}
|
|
|
- return secedeRsnYn;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 휴대전화번호
|
|
// 휴대전화번호
|