(() => { 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 }
`; const secreted = false; const password = '1234'; const data = { articleTitle, articleContent, secreted, password, images }; const options = { method : 'POST', headers : { 'accept' : '*/*', 'clientid' : commonData.clientId, 'content-type' : 'application/json', 'language' : 'ko', 'platform' : 'PC', 'version' : '1.0' }, body : JSON.stringify(data) }; document.getElementById('inquiryDim').style.display = ''; fetch(url, options) .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } if ( 204 == response.status ) { fetch('https://vx-gateway.vx-mall.com/api/send-notice', { method : 'POST', headers : { 'Content-Type' : 'application/json', 'Cache-Control' : 'no-cache' , }, body : JSON.stringify({ subject : articleTitle , body : articleContent , }) }).finally(()=>{ alert("입점문의가 완료되었습니다.\r\n담당자 확인 후 연락 드리겠습니다."); document.getElementById('inquiryDim').style.display = 'none'; location.href = '/'; }); } }) .then(result => console.log('성공:', result)) .catch(error => { alert("입점문의 중 오류가 발생하였습니다.\r\n잠시 후 다시 시도해 주십시오."); console.error('에러 발생:', error); }); } }); }); })();