+
+
@@ -355,20 +355,6 @@
-
-
-
diff --git a/site1/public/img/과학과외.png b/site1/public/img/과학과외.png
new file mode 100644
index 0000000..6366eed
Binary files /dev/null and b/site1/public/img/과학과외.png differ
diff --git a/site1/public/img/국어과외.png b/site1/public/img/국어과외.png
new file mode 100644
index 0000000..246ca3a
Binary files /dev/null and b/site1/public/img/국어과외.png differ
diff --git a/site1/public/img/사회과외.png b/site1/public/img/사회과외.png
new file mode 100644
index 0000000..4272e48
Binary files /dev/null and b/site1/public/img/사회과외.png differ
diff --git a/site1/public/img/수학과외.png b/site1/public/img/수학과외.png
new file mode 100644
index 0000000..8432dfb
Binary files /dev/null and b/site1/public/img/수학과외.png differ
diff --git a/site1/public/img/영어과외.png b/site1/public/img/영어과외.png
new file mode 100644
index 0000000..03798c2
Binary files /dev/null and b/site1/public/img/영어과외.png differ
diff --git a/site1/utils/dataHelper.ts b/site1/utils/dataHelper.ts
index e370897..a48036e 100644
--- a/site1/utils/dataHelper.ts
+++ b/site1/utils/dataHelper.ts
@@ -96,7 +96,6 @@ export function getShortRegionName(sido: string, dong: string, sigungu?: string)
}
// 경기, 인천, 광주, 부산, 대구, 대전 (예: 경기 수원 영통동, 대구 수성구 범어동)
return `${prefix}${sigungu ? sigungu + ' ' : ''}${dong || ''}`.trim()
-} ${dong || ''}`.trim()
}
// 지능형 URL 슬러그 파서
diff --git a/ulsan/components/ConsultForm.vue b/ulsan/components/ConsultForm.vue
index 06de4b2..d31ee33 100644
--- a/ulsan/components/ConsultForm.vue
+++ b/ulsan/components/ConsultForm.vue
@@ -178,7 +178,7 @@ const handleSubmit = async () => {
try {
const currentUrl = typeof window !== 'undefined' ? window.location.href : ''
- await $fetch('/api/consult', {
+ const res = await $fetch('/api/consult', {
method: 'POST',
body: {
studentName: form.value.studentName,
@@ -190,10 +190,14 @@ const handleSubmit = async () => {
url: currentUrl
}
})
- submitted.value = true
+ if (res && res.success) {
+ submitted.value = true
+ } else {
+ alert('상담 신청 접수 중 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.')
+ }
} catch (err) {
- console.error('상담 신청 전송:', err)
- submitted.value = true
+ console.error('상담 신청 전송 실패:', err)
+ alert('상담 신청 접수 중 문제가 발생했습니다. 전화(010-5961-5807)로 문의해 주시기 바랍니다.')
} finally {
loading.value = false
}
diff --git a/ulsan/components/SubjectCarousel.vue b/ulsan/components/SubjectCarousel.vue
new file mode 100644
index 0000000..7a46ce0
--- /dev/null
+++ b/ulsan/components/SubjectCarousel.vue
@@ -0,0 +1,783 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ item.tag }}
+
+
+
+ 상세 보기
+
+
+
+
+
+
+ {{ item.name }}
+ {{ grade }}
+
+
{{ item.desc }}
+
+ 자세히 보기 & 신청
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ selectedItem.tag }}
+
+
+
+
+
+
+
+
+
0{{ pIdx + 1 }}
+
+
{{ pt.title }}
+
{{ pt.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ulsan/package.json b/ulsan/package.json
index 4acd837..c825b97 100644
--- a/ulsan/package.json
+++ b/ulsan/package.json
@@ -4,9 +4,9 @@
"private": true,
"scripts": {
"build": "nuxt build",
- "dev": "nuxt dev --port 3011",
+ "dev": "nuxt dev --port 3017",
"generate": "nuxt generate",
- "preview": "nuxt preview --port 3011",
+ "preview": "nuxt preview --port 3017",
"postinstall": "nuxt prepare"
},
"dependencies": {
diff --git a/ulsan/pages/index.vue b/ulsan/pages/index.vue
index 5f4e9e6..3ad6f58 100644
--- a/ulsan/pages/index.vue
+++ b/ulsan/pages/index.vue
@@ -1,5 +1,5 @@
-
-
+
+
@@ -349,20 +349,6 @@
-
-
-
diff --git a/ulsan/utils/dataHelper.ts b/ulsan/utils/dataHelper.ts
index e370897..a48036e 100644
--- a/ulsan/utils/dataHelper.ts
+++ b/ulsan/utils/dataHelper.ts
@@ -96,7 +96,6 @@ export function getShortRegionName(sido: string, dong: string, sigungu?: string)
}
// 경기, 인천, 광주, 부산, 대구, 대전 (예: 경기 수원 영통동, 대구 수성구 범어동)
return `${prefix}${sigungu ? sigungu + ' ' : ''}${dong || ''}`.trim()
-} ${dong || ''}`.trim()
}
// 지능형 URL 슬러그 파서
diff --git a/ulsan/utils/seoHelper.ts b/ulsan/utils/seoHelper.ts
index 57a879b..45bb52f 100644
--- a/ulsan/utils/seoHelper.ts
+++ b/ulsan/utils/seoHelper.ts
@@ -68,6 +68,7 @@ export function generateSeoMeta(parsed: ParsedRouteParams, siteName = '쌤인증
return {
title: pageTitle,
meta: [
+ { name: 'naver-site-verification', content: 'd40ee8cd61dab827dcbd7080e54b095339c44222' },
{ name: 'description', content: pageDescription },
{ name: 'keywords', content: `${dong}과외, ${dong}${subjectName}과외, ${dong}${grade}과외, ${sigungu}과외, ${dong}학원, ${dong}내신대비, ${subjectName}1:1과외` },
{ property: 'og:type', content: 'website' },