(() => {
document.addEventListener('DOMContentLoaded', () => {
//이메일 도메인 입력
const emailSelect = document.querySelector('.email-select');
const emailDomain = document.querySelector('.email-domain');
emailSelect.addEventListener('change', function () {
const value = this.value;
if (value === '') {
emailDomain.value = '';
emailDomain.disabled = false; // 직접입력 가능
emailDomain.focus();
} else {
emailDomain.value = value;
emailDomain.disabled = true; // 선택된 도메인 고정
}
});
//파일 선택
/*
const fileInput = document.getElementById('file');
const fileBtn = document.querySelector('.btn-file');
const fileName = document.querySelector('.file-name');
fileBtn.addEventListener('click', () => {
fileInput.click();
});
fileInput.addEventListener('change', () => {
if (fileInput.files.length > 0) {
fileName.textContent = fileInput.files[0].name;
} else {
fileName.textContent = '선택된 파일 없음';
}
});
*/
});
})();
(() => {
const { EventManager } = ShopbySkin;
EventManager.on('PAGE_LOAD_COMPLETED', (commonData) => {
const images = [];
const moduleActionHandler = {
UPLOAD_ATTACH_FILES: () => {
const fileInputElement = document.querySelector('[shopby-attach-input="ATTACH_FILE"]');
fileInputElement?.click();
},
}
document.querySelector('file-attach').addEventListener('click', ({ target }) => {
console.log(target)
const action = target.getAttribute('shopby-action');
moduleActionHandler[action]?.({ target });
});
EventManager.on('ATTACH_FILES_RESPONSE', ({ uploadedFiles, rejectedFiles }) => {
document.querySelector('.file-name').innerHTML = uploadedFiles?.[0]?.originalFileName;
images[0] = {
originalFileName: uploadedFiles?.[0]?.originalFileName ,
uploadedFileName: uploadedFiles?.[0]?.uploadedFileName ,
}
console.log(images)
if (rejectedFiles.length > 0) {
const joinedRejectedMessage = rejectedFiles.map(({ message }) => message).join('
');
EventManager.fire('MODAL_ALERT_OPEN', {
noticeType: 'WARNING',
message: `${joinedRejectedMessage}`,
});
}
});
const elBusinessNo = document.querySelector('[name="businessNo" ]');
const elRegNoChecked = document.querySelector('[name="regNoChecked" ]');
const elbtnChkRegNo = document.querySelector('#btnChkRegNo' );
const elCompanyName = document.querySelector('[name="companyName" ]');
const elManagerName = document.querySelector('[name="managerName" ]');
const elPhone = document.querySelector('[name="phone" ]');
const elEmailId = document.querySelector('[name="emailId" ]');
const elEmailDomain = document.querySelector('[name="emailDomain" ]');
const elBrandName = document.querySelector('[name="brandName" ]');
const elCategory = document.querySelector('[name="category" ]');
const elProductDesc = document.querySelector('[name="productDesc" ]');
const elHomepage = document.querySelector('[name="homepage" ]');
const elMall = document.querySelector('[name="mall" ]');
elBusinessNo.addEventListener('change', ({target})=>{
target.value = target.value.replace(/[^0-9]/g, "");
if ( 10 != target.value.length ) {
target.value = target.value.substr(0, 10);
}
elRegNoChecked.value = 'n';
target.innerHTML = "인증";
elbtnChkRegNo.disabled = false;
});
elbtnChkRegNo.addEventListener('click', ({target})=>{
const businessNo = elBusinessNo.value;
if ( 10 != businessNo.length ) {
alert('사업자등록번호를 정확히 입력해주세요.');
elRegNoChecked.value = 'n';
return;
}
fetch('https://vx-gateway.vx-mall.com/check_reg_no?regNo=' + businessNo)
.then((res)=>res.json())
.then((data)=>{
if ( true === data?.result ) {
elRegNoChecked.value = 'y';
target.innerHTML = "인증 완료";
target.disabled = true;
}
else {
alert("사업자등록번호를 조회할 수 없습니다.\r\n사업자등록번호를 정확히 입력해주세요.");
elRegNoChecked.value = 'n';
target.innerHTML = "인증";
target.disabled = false;
}
})
});
elPhone.addEventListener('change', ({target})=>{
target.value = target.value.replace(/[^0-9]/g, "");
if ( 11 < target.value.length ) {
target.value = target.value.substr(0, 11);
}
});
elEmailId.addEventListener('change', ({target})=>{
const regex = /^[a-zA-Z0-9._-]{6,64}$/;
if ( !regex.test(target.value) ) {
alert("영문 대소문자와 숫자만 사용하여 6~64자리로 입력해주세요.");
target.value = '';
target.focus();
}
});
elEmailDomain.addEventListener('change', ({target})=>{
const regex = /^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/;
if ( !regex.test(target.value) ) {
alert('이메일 형식이 틀립니다.')
target.value = '';
target.focus();
}
});
document.querySelector('.btn-submit').addEventListener('click', (e)=>{
if ( !elBusinessNo.value ) {
alert('사업자 등록번호를 입력해주세요.');
elBusinessNo.focus();
}
else
if ( 'y' != elRegNoChecked.value ) {
alert('사업자 등록번호를 인증해주세요.');
elBusinessNo.focus();
}
else
if ( !elCompanyName.value ) {
alert('회사 이름을 입력해주세요.');
elCompanyName.focus();
}
else
if ( !elManagerName.value ) {
alert('영업담당자 이름을 입력해주세요.');
elManagerName.focus();
}
else
if ( !elPhone.value ) {
alert('영업담당자 전화번호를 입력해주세요.');
elPhone.focus();
}
else
if ( !elEmailId.value ) {
alert('영업담당자 이메일 아이디를 입력해주세요.');
elEmailId.focus();
}
else
if ( !elEmailDomain.value ) {
alert('영업담당자 이메일 도메인을 입력해주세요.');
elEmailDomain.focus();
}
else
if ( !elBrandName.value ) {
alert('상품 대표 브랜드 이름를 입력해주세요.');
elBrandName.focus();
}
else
if ( !elCategory.value ) {
alert('상품 취급 카테고리를 입력해주세요.');
elCategory.focus();
}
else
if ( !elProductDesc.value ) {
alert('상품 소개를 입력해주세요.');
elProductDesc.focus();
}
else {
const url = 'https://shop-api.e-ncp.com/boards/store/articles';
const articleTitle = `입점문의(${elCompanyName.value})`;
let attachFile = images?.[0]?.originalFileName;
if ( attachFile ) {
if ( regexImage.test(attachFile) ) {
attachFile = ``;
}
else {
attachFile = `${images?.[0]?.originalFileName}`;
}
}
const articleContent = `
| 사업자 등록번호 | ${elBusinessNo .value} |
|---|---|
| 회사 이름 | ${elCompanyName.value} |
| 홈페이지 | ${elHomepage .value} |
| 영업담담자 이름 | ${elManagerName.value} |
| 영업담담자 전화번호 | ${elPhone .value} |
| 영업담담자 이메일 | ${elEmailId .value + '@' + elEmailDomain.value} |
| 상품 대표 브랜드 이름 | ${elBrandName .value} |
| 상품 취급 카테고리 | ${elCategory .value} |
| 상품 소개 | ${elProductDesc.value} |
| 타입점 쇼핑몰 | ${elMall .value} |
| 첨부파일 | ${attachFile } |