From cce38a7f101a6e88944d397d7f64f663e8dd8a31 Mon Sep 17 00:00:00 2001 From: lee_whee Date: Mon, 12 May 2025 22:22:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B8=ED=85=94=EB=A6=AC=EC=A0=84=EC=8A=A4?= =?UTF-8?q?=201=EC=B0=A8=20=EC=9E=91=EC=97=85=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/assets/images/affiliates04.png | Bin 0 -> 7104 bytes dist/assets/images/affiliates12.png | Bin 0 -> 14396 bytes dist/index.html | 28 +++++++++++++++----------- src-server/email.ts | 3 ++- src-server/server.ts | 30 ++++++++++++++++++++++++++-- src/html/index.html | 28 +++++++++++++++----------- 6 files changed, 62 insertions(+), 27 deletions(-) create mode 100644 dist/assets/images/affiliates04.png create mode 100644 dist/assets/images/affiliates12.png diff --git a/dist/assets/images/affiliates04.png b/dist/assets/images/affiliates04.png new file mode 100644 index 0000000000000000000000000000000000000000..39c5b7cadfb804d661becd85fce3bf85f980e61f GIT binary patch literal 7104 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 B-Gu-E literal 0 HcmV?d00001 diff --git a/dist/assets/images/affiliates12.png b/dist/assets/images/affiliates12.png new file mode 100644 index 0000000000000000000000000000000000000000..f5be46e99c5ccca16f3636ec593d84030fc507ae GIT binary patch literal 14396 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 literal 0 HcmV?d00001 diff --git a/dist/index.html b/dist/index.html index f65b7b2..4b93c1c 100644 --- a/dist/index.html +++ b/dist/index.html @@ -502,28 +502,28 @@
- 기업명 - + 기업명 (필수) +
- 담당자명 - + 담당자명 (필수) +
연락처 (필수)
- 이메일 - + 이메일 (필수) +
예산범위
- 문의내용 - + 문의내용 (필수) +
@@ -636,12 +636,15 @@ $(this).focus(); return; } + else { + $(this).val(transNum) + } }); $('body').on('blur', '[data-regex="email-address"]', function(e){ if($(this).val() == '') return; var trans_num = $(this).val().regex('email'); - + console.log(trans_num) if(! trans_num) { alert('유효하지 않은 이메일주소 입니다.'); $(this).val(""); @@ -652,7 +655,6 @@ $('[data-form="request-form"]').on('submit',function(e) { e.preventDefault(); - if($('[name="type"]:checked').length === 0) { alert("상담 분야를 선택하세요"); return; @@ -683,8 +685,10 @@ alert("상담 신청이 완료되었습니다.") $('[data-form="request-form"]').reset() }, - error: function() { - alert("상담 신청도중 오류가 잘생하였습니다.") + error: function(err) { + var message = err?.responseJSON?.error ?? "상담 신청도중 오류가 발생하였습니다.\\n서버 관리자에게 문의하세요" + alert(message) + } }) }) diff --git a/src-server/email.ts b/src-server/email.ts index bd2f0c3..1041042 100644 --- a/src-server/email.ts +++ b/src-server/email.ts @@ -14,7 +14,8 @@ export const sendEmail = async (subject: string, text: string) => { const mailOptions = { from: "support@wheeparam.com", - to : "songwritersg@naver.com", + //to: "songwritersg@naver.com", + to : "whee0716@gmail.com", subject, text, }; diff --git a/src-server/server.ts b/src-server/server.ts index ef1514a..22fa00c 100644 --- a/src-server/server.ts +++ b/src-server/server.ts @@ -29,12 +29,38 @@ app.post("/request", async (req: Request, res: Response) => { contents } = await req.body; + if(company_name.trim().length === 0) { + res.status(400).json({ error: "기업명을 입력하셔야 합니다." }); + return + } + + if(manager_name.trim().length === 0) { + res.status(400).json({ error: "담당자명을 입력하셔야 합니다." }); + return + } + + if(type.trim().length === 0) { + res.status(400).json({ error: "상담 분야를 입력하셔야 합니다." }); + return + } - if (!email || !contents) { - res.status(400).json({ error: "모든 필드가 필요합니다." }); + if(phone.trim().length === 0) { + res.status(400).json({ error: "연락처를 입력하셔야 합니다." }); return } + if(email.trim().length === 0) { + res.status(400).json({ error: "이메일 주소를 입력하셔야 합니다." }); + return + } + + + if(contents.trim().length === 0) { + res.status(400).json({ error: "문의 내용을 입력하셔야 합니다." }); + return + } + + try { await sendEmail(`${type} 문의`, ` 문의 유형: ${type} diff --git a/src/html/index.html b/src/html/index.html index df1744a..adef68e 100644 --- a/src/html/index.html +++ b/src/html/index.html @@ -412,28 +412,28 @@
- 기업명 - + 기업명 (필수) +
- 담당자명 - + 담당자명 (필수) +
연락처 (필수)
- 이메일 - + 이메일 (필수) +
예산범위
- 문의내용 - + 문의내용 (필수) +
@@ -546,12 +546,15 @@ $(this).focus(); return; } + else { + $(this).val(transNum) + } }); $('body').on('blur', '[data-regex="email-address"]', function(e){ if($(this).val() == '') return; var trans_num = $(this).val().regex('email'); - + console.log(trans_num) if(! trans_num) { alert('유효하지 않은 이메일주소 입니다.'); $(this).val(""); @@ -562,7 +565,6 @@ $('[data-form="request-form"]').on('submit',function(e) { e.preventDefault(); - if($('[name="type"]:checked').length === 0) { alert("상담 분야를 선택하세요"); return; @@ -593,8 +595,10 @@ alert("상담 신청이 완료되었습니다.") $('[data-form="request-form"]').reset() }, - error: function() { - alert("상담 신청도중 오류가 잘생하였습니다.") + error: function(err) { + var message = err?.responseJSON?.error ?? "상담 신청도중 오류가 발생하였습니다.\\n서버 관리자에게 문의하세요" + alert(message) + } }) })