feat: 대전(daejeon)을 울산(ulsan)으로 개편 및 전체 7개 광역 지역(seoul, gyeonggi, incheon, gwangju, busan, daegu, ulsan) 세팅 완료
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
<template>
|
||||
<div class="landing-page-wrap">
|
||||
<!-- 1. 광고 랜딩 전용 지역 식별 바 (외부 이탈 링크 없음) -->
|
||||
<div class="ad-location-bar">
|
||||
<span class="loc-badge-tag">[지역센터]</span>
|
||||
<span class="loc-text">{{ parsed.shortRegionName }} ({{ parsed.sigungu }}) 관내 초·중·고 전담</span>
|
||||
<span class="loc-tag">1:1 맞춤 배정 센터</span>
|
||||
</div>
|
||||
|
||||
<!-- 2. 상단 히어로 배너 (Header 제거, H1 태그 포함) -->
|
||||
<HeroBanner
|
||||
:region="parsed.region"
|
||||
:shortRegionName="parsed.shortRegionName"
|
||||
:grade="parsed.grade"
|
||||
:subjectName="parsed.subjectName"
|
||||
/>
|
||||
|
||||
<!-- 3. 실시간 성과 지표 4선 -->
|
||||
<QuickMetrics :regionDong="parsed.dong" />
|
||||
|
||||
<!-- 4. 인근 학교별 내신 기출 정밀 분석 -->
|
||||
<NearbySchools
|
||||
:regionDong="parsed.dong"
|
||||
:grade="parsed.grade"
|
||||
:subjectName="parsed.subjectName"
|
||||
/>
|
||||
|
||||
<!-- 5. 과목별 상세 커리큘럼 & 1등급 도약 솔루션 -->
|
||||
<SubjectMastery
|
||||
:regionDong="parsed.dong"
|
||||
:grade="parsed.grade"
|
||||
:curriculum="curriculum"
|
||||
/>
|
||||
|
||||
<!-- 6. 1:1 강사진 4단계 검증 프로세스 -->
|
||||
<TeacherVerification />
|
||||
|
||||
<!-- 7. 메타인지 스터디 플래너 & 밀착 코칭 시스템 -->
|
||||
<CoachingSystem />
|
||||
|
||||
<!-- 8. 실제 성적 향상 수기 (해당 학년/과목 100% 매칭) -->
|
||||
<SuccessStories
|
||||
:regionDong="parsed.dong"
|
||||
:grade="parsed.grade"
|
||||
:subjectName="parsed.subjectName"
|
||||
/>
|
||||
|
||||
<!-- 9. 수업 진행 4단계 절차 안내 -->
|
||||
<ProcessGuide />
|
||||
|
||||
<!-- 10. 자주 묻는 질문 (FAQ) -->
|
||||
<FaqAccordion
|
||||
:regionDong="parsed.dong"
|
||||
:grade="parsed.grade"
|
||||
:subjectName="parsed.subjectName"
|
||||
/>
|
||||
|
||||
<!-- 11. 네이버 5개 멀티 이미지 매칭용 핵심 과외 프로그램 빠른 보기 -->
|
||||
<FastConsultFocus
|
||||
:regionDong="parsed.dong"
|
||||
:grade="parsed.grade"
|
||||
:subjectName="parsed.subjectName"
|
||||
/>
|
||||
|
||||
<!-- 웹 광고 단일 목적: 해당 학년과 과목이 기본 선택된 무료 상담 신청 폼 -->
|
||||
<ConsultForm
|
||||
:regionName="parsed.shortRegionName"
|
||||
:defaultGrade="parsed.grade"
|
||||
:defaultSubject="parsed.subjectName"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from 'vue-router'
|
||||
import { parseRouteSlug, getCurriculumBySubject, getAllSubjectsList, getPopularRegions } from '~/utils/dataHelper'
|
||||
import { generateSeoMeta } from '~/utils/seoHelper'
|
||||
|
||||
const route = useRoute()
|
||||
const config = useRuntimeConfig()
|
||||
|
||||
// URL 파라미터 파싱
|
||||
const slug = route.params.slug
|
||||
const parsed = parseRouteSlug(slug)
|
||||
|
||||
// 커리큘럼 데이터 로드
|
||||
const curriculum = getCurriculumBySubject(parsed.subjectKey)
|
||||
const allSubjects = getAllSubjectsList()
|
||||
const popularRegions = getPopularRegions(12)
|
||||
|
||||
// 네이버 Yeti 봇 100% 대응 SEO 메타태그 설정
|
||||
const seo = generateSeoMeta(
|
||||
parsed,
|
||||
config.public.siteName,
|
||||
config.public.siteDomain
|
||||
)
|
||||
|
||||
useHead({
|
||||
title: seo.title,
|
||||
meta: seo.meta,
|
||||
link: seo.link,
|
||||
script: seo.script
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.landing-page-wrap {
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.ad-location-bar {
|
||||
max-width: 1080px;
|
||||
margin: 10px auto;
|
||||
padding: 8px 16px;
|
||||
font-size: clamp(0.78rem, 2vw, 0.88rem);
|
||||
color: #334155;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.loc-pin {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.loc-text {
|
||||
font-weight: 700;
|
||||
color: var(--primary-color, #1e3a8a);
|
||||
}
|
||||
|
||||
.loc-tag {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 800;
|
||||
background: var(--badge-bg, rgba(30, 58, 138, 0.08));
|
||||
color: var(--primary-color, #1e3a8a);
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,572 @@
|
||||
<template>
|
||||
<div class="landing-container bg-[#F0F9FF] text-slate-800 antialiased relative pb-24 md:pb-12 min-h-screen w-full">
|
||||
|
||||
<!-- Header -->
|
||||
<header class="bg-white border-b border-slate-200 sticky top-0 z-40 shadow-sm w-full">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-3.5 flex items-center justify-between">
|
||||
<div class="flex items-center space-x-2">
|
||||
<div class="w-9 h-9 rounded-xl bg-sky-600 flex items-center justify-center text-white font-extrabold text-lg shadow-sm">
|
||||
T
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-extrabold text-xl sm:text-2xl tracking-tight text-sky-950">{{ siteName }}</span>
|
||||
<span class="text-[10px] font-bold text-cyan-700 bg-cyan-50 px-2 py-0.5 rounded-full ml-1.5 border border-cyan-200">SMART 정밀 진단</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center space-x-4">
|
||||
<a href="tel:010-5961-5807" class="hidden sm:flex items-center gap-1.5 text-sm font-semibold text-slate-600 hover:text-sky-600 transition">
|
||||
<i class="fa-solid fa-phone text-sky-600"></i>
|
||||
<span>010-5961-5807</span>
|
||||
</a>
|
||||
<a href="#leadFormSection" class="bg-sky-600 hover:bg-sky-700 text-white text-xs sm:text-sm font-bold px-5 py-2.5 rounded-full transition shadow-md flex items-center gap-1.5">
|
||||
<span>정밀 진단 신청</span>
|
||||
<i class="fa-solid fa-arrow-right text-[11px]"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- 메인 컨텐츠 (좌우 꽉 찬 와이드) -->
|
||||
<main class="w-full bg-[#F0F9FF] min-h-screen pb-20">
|
||||
|
||||
<!-- 히어로 섹션 (테크 블루 & 사이언 풀와이드) -->
|
||||
<section class="w-full bg-gradient-to-b from-[#0369A1] via-[#0275B2] to-[#0284C7] text-white px-4 sm:px-6 pt-12 pb-20 rounded-b-[2.5rem] relative overflow-hidden text-center shadow-lg">
|
||||
<div class="absolute -right-24 -top-24 w-96 h-96 bg-cyan-400/20 rounded-full blur-3xl pointer-events-none"></div>
|
||||
<div class="absolute -left-24 bottom-0 w-96 h-96 bg-sky-300/20 rounded-full blur-3xl pointer-events-none"></div>
|
||||
|
||||
<div class="max-w-4xl mx-auto relative z-10">
|
||||
<div class="inline-flex items-center gap-2 bg-white/10 backdrop-blur-md border border-white/20 px-4 py-1.5 rounded-full text-xs sm:text-sm font-medium text-sky-100 mb-5 shadow-sm">
|
||||
<span class="w-2.5 h-2.5 rounded-full bg-cyan-300 animate-ping"></span>
|
||||
<span>관내 초·중·고 학교별 내신 기출 완벽 분석</span>
|
||||
</div>
|
||||
|
||||
<h1 class="text-2xl sm:text-4xl md:text-5xl font-extrabold leading-snug sm:leading-tight tracking-tight text-white mb-4">
|
||||
우리 동네 학교별 맞춤 내신·수능 대비<br class="hidden sm:inline">
|
||||
<span class="text-cyan-200 underline decoration-wavy decoration-cyan-300">취약 단원 핀포인트 1:1 클리닉</span> 무료 리포트 신청
|
||||
</h1>
|
||||
|
||||
<p class="text-xs sm:text-base text-sky-100/90 font-normal max-w-2xl mx-auto leading-relaxed mb-8">
|
||||
어디서 틀리는지 모르는 막연한 공부는 끝! 취약 개념을 역추적하여 가장 빠른 성적 향상 지름길을 찾아드립니다.
|
||||
</p>
|
||||
|
||||
<!-- 지표 카운터 -->
|
||||
<div class="grid grid-cols-3 gap-3 bg-white/10 backdrop-blur-md border border-white/20 rounded-2xl p-4 sm:p-5 text-center max-w-xl mx-auto mb-6 shadow-inner">
|
||||
<div>
|
||||
<div class="text-[11px] sm:text-xs text-sky-200">지역 전담 강사진</div>
|
||||
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">3,500<span class="text-xs sm:text-sm font-normal">+명</span></div>
|
||||
</div>
|
||||
<div class="border-x border-white/20">
|
||||
<div class="text-[11px] sm:text-xs text-sky-200">학교별 기출 분석</div>
|
||||
<div class="font-extrabold text-base sm:text-2xl text-cyan-200 mt-0.5">100<span class="text-xs sm:text-sm font-normal">%</span></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-[11px] sm:text-xs text-sky-200">성적 향상 만족도</div>
|
||||
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">98.9<span class="text-xs sm:text-sm font-normal">%</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 실시간 롤링 알림 -->
|
||||
<div class="bg-black/30 backdrop-blur-md rounded-full px-4 py-2 flex items-center justify-center gap-2.5 text-xs text-slate-200 border border-white/15 mx-auto max-w-md shadow-md">
|
||||
<span class="bg-sky-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full">실시간</span>
|
||||
<span class="truncate font-medium transition-opacity duration-300">{{ currentNotice }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 리드 수집 폼 섹션 (상단 카드 오버랩) -->
|
||||
<section id="leadFormSection" class="px-4 sm:px-6 -mt-10 relative z-20 max-w-3xl mx-auto">
|
||||
<div class="bg-white rounded-3xl shadow-2xl border border-slate-200/80 p-6 sm:p-8 transition-all">
|
||||
|
||||
<header class="text-center mb-6 pb-4 border-b border-slate-100">
|
||||
<span class="inline-block px-3 py-1 rounded-full text-xs font-bold bg-sky-100 text-sky-800 mb-2">
|
||||
선착순 30명 정밀 분석 무료
|
||||
</span>
|
||||
<h2 class="text-xl sm:text-2xl font-bold text-slate-900">
|
||||
분석받고 싶은 과목과 학년을 선택하세요!
|
||||
</h2>
|
||||
<p class="text-xs sm:text-sm text-slate-500 mt-1">
|
||||
오답 패턴을 정밀 진단하여 최적의 단원 보완 플랜과 전문 선생님을 매칭합니다.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<form @submit.prevent="handleSubmit" class="space-y-5">
|
||||
|
||||
<!-- 학년 & 취약 과목 -->
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label for="studentGrade" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
|
||||
학년 선택 <span class="text-sky-600">*</span>
|
||||
</label>
|
||||
<select id="studentGrade" v-model="formData.grade" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-sky-600 focus:border-sky-600 p-3 outline-none font-medium transition">
|
||||
<option value="" disabled>학년 선택</option>
|
||||
<optgroup label="중등부 (내신·기출 분석)">
|
||||
<option value="중학교 1학년">중학교 1학년 (기초개념 데이터)</option>
|
||||
<option value="중학교 2학년">중학교 2학년 (내신 킬러문항)</option>
|
||||
<option value="중학교 3학년">중학교 3학년 (고등선행 심화)</option>
|
||||
</optgroup>
|
||||
<optgroup label="고등부 (내신·수능 클리닉)">
|
||||
<option value="고등학교 1학년">고등학교 1학년 (공통수학/영어)</option>
|
||||
<option value="고등학교 2학년">고등학교 2학년 (선택과목 심화)</option>
|
||||
<option value="고등학교 3학년/N수">고등학교 3학년 / N수 (수능 실전)</option>
|
||||
</optgroup>
|
||||
<optgroup label="초등부">
|
||||
<option value="초등 5~6학년">초등 5~6학년 (중등 브릿지)</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="weakSubject" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
|
||||
취약 과목 <span class="text-sky-600">*</span>
|
||||
</label>
|
||||
<select id="weakSubject" v-model="formData.subject" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-sky-600 focus:border-sky-600 p-3 outline-none font-medium transition">
|
||||
<option value="" disabled>과목 선택</option>
|
||||
<option value="수학">수학 (개념 역추적 & 킬러 문항)</option>
|
||||
<option value="영어">영어 (구문 독해 & 빈칸 추론)</option>
|
||||
<option value="과학">과학 (물리·화학·생명·지구과학)</option>
|
||||
<option value="국어">국어 (비문학 제재별 독해 분석)</option>
|
||||
<option value="사회/역사">사회/역사 (도표·사료 분석)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 빠른 과목 픽 -->
|
||||
<div>
|
||||
<div class="text-xs font-semibold text-slate-500 mb-2 flex justify-between items-center">
|
||||
<span>빠른 과목 픽 (PICK)</span>
|
||||
<span class="text-xs text-sky-600 font-semibold">터치 시 자동 선택</span>
|
||||
</div>
|
||||
<div class="grid grid-cols-5 gap-2 text-center">
|
||||
<button
|
||||
v-for="subj in subjects"
|
||||
:key="subj.name"
|
||||
type="button"
|
||||
@click="formData.subject = subj.name"
|
||||
:class="[
|
||||
'py-2 px-1 rounded-xl text-xs sm:text-sm font-bold transition shadow-sm',
|
||||
formData.subject === subj.name
|
||||
? 'border-2 border-sky-600 bg-sky-50 text-sky-800 ring-2 ring-sky-300/50'
|
||||
: 'border border-slate-200 text-slate-700 hover:border-sky-400 bg-white'
|
||||
]"
|
||||
>
|
||||
<span>{{ subj.label }}</span>
|
||||
<span class="block text-[10px] font-normal" :class="formData.subject === subj.name ? 'text-sky-700 font-semibold' : 'text-slate-400'">
|
||||
{{ subj.badge }}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 공부 고민 체크박스 -->
|
||||
<div>
|
||||
<label class="block text-xs sm:text-sm font-bold text-slate-700 mb-2">
|
||||
현재 가장 큰 고민은 무엇인가요? (복수 선택 가능)
|
||||
</label>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2.5 text-xs sm:text-sm">
|
||||
<label v-for="c in concernOptions" :key="c" class="flex items-center gap-2.5 p-3 bg-slate-50 border border-slate-200 rounded-xl cursor-pointer hover:bg-sky-50/50 transition">
|
||||
<input type="checkbox" :value="c" v-model="formData.concerns" class="w-4 h-4 text-sky-600 rounded border-slate-300 focus:ring-sky-500">
|
||||
<span class="text-slate-700 text-xs sm:text-sm font-medium">{{ c }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 거주 지역 / 학교 -->
|
||||
<div>
|
||||
<label for="regionInput" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
|
||||
거주 지역 및 학교명 <span class="text-slate-400 font-normal text-xs">(지역 내신 기출 DB 매칭)</span>
|
||||
</label>
|
||||
<input type="text" id="regionInput" v-model="formData.region" placeholder="예: 경기 성남시 분당구 수내동 / 수내고" class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-sky-600 focus:border-sky-600 p-3 outline-none placeholder:text-slate-400 transition">
|
||||
</div>
|
||||
|
||||
<!-- 학부모 연락처 -->
|
||||
<div>
|
||||
<label for="parentPhone" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
|
||||
학부모 연락처 <span class="text-sky-600">*</span>
|
||||
<span class="text-slate-400 font-normal text-xs">(정밀 진단표 발송용)</span>
|
||||
</label>
|
||||
<div class="relative">
|
||||
<input
|
||||
type="tel"
|
||||
id="parentPhone"
|
||||
v-model="formData.phone"
|
||||
@input="formatPhone"
|
||||
required
|
||||
placeholder="010-0000-0000"
|
||||
maxlength="13"
|
||||
class="w-full bg-slate-50 border border-slate-300 text-slate-900 text-base font-semibold rounded-xl focus:ring-2 focus:ring-sky-600 focus:border-sky-600 p-3.5 pl-11 outline-none tracking-wider"
|
||||
>
|
||||
<i class="fa-solid fa-mobile-screen-button absolute left-4 top-4 text-slate-400 text-base"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 개인정보 동의 -->
|
||||
<div class="flex items-center gap-2 text-xs text-slate-500 pt-1">
|
||||
<input type="checkbox" id="privacyAgree" v-model="formData.privacy" required class="w-4 h-4 text-sky-600 rounded border-slate-300 focus:ring-sky-500">
|
||||
<label for="privacyAgree" class="cursor-pointer">
|
||||
[필수] 개인정보 수집 및 상담 안내 제공에 동의합니다.
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<!-- 제출 버튼 -->
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="isSubmitting"
|
||||
class="w-full bg-gradient-to-r from-sky-600 via-cyan-600 to-sky-600 hover:opacity-95 text-white font-extrabold text-base sm:text-lg py-4 px-6 rounded-2xl shadow-xl transition flex items-center justify-center gap-2 disabled:opacity-50"
|
||||
>
|
||||
<i class="fa-solid fa-chart-column text-lg"></i>
|
||||
<span>{{ isSubmitting ? '분석 중...' : '정밀 진단 리포트 & 1:1 클리닉 신청하기' }}</span>
|
||||
</button>
|
||||
|
||||
<div class="text-center text-xs text-slate-400 flex items-center justify-center gap-1.5">
|
||||
<i class="fa-solid fa-lock text-xs"></i>
|
||||
<span>입력하신 정보는 상담 및 리포트 제공 목적으로만 안전하게 보관됩니다.</span>
|
||||
</div>
|
||||
|
||||
<!-- 안내 문구 (상담 결과 전달 시 원활 진행 안내) -->
|
||||
<div class="mt-3 p-3.5 bg-sky-50/90 border border-sky-200/90 rounded-xl flex items-start gap-2.5 text-xs text-sky-950 leading-relaxed shadow-sm">
|
||||
<i class="fa-solid fa-circle-info text-sky-600 mt-0.5 text-sm shrink-0"></i>
|
||||
<div>
|
||||
<strong class="font-bold text-sky-950 block mb-0.5">📢 원활한 상담 진행 안내</strong>
|
||||
<span>상담 신청 후 안내받으신 <strong>상담결과를 매니저에게 전달해 주시면</strong> 더욱 원활하고 신속한 맞춤 강사 배정과 심층 상담이 진행됩니다. (직통 문의: <a href="tel:010-5961-5807" class="font-extrabold text-sky-900 underline hover:text-sky-700">010-5961-5807</a>)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- 완료 메시지 -->
|
||||
<div v-if="submitSuccess" id="submitResultBox" class="mt-5 p-5 bg-emerald-50 border border-emerald-300 rounded-2xl text-emerald-900 text-xs sm:text-sm">
|
||||
<div class="flex items-center gap-2 font-bold text-sm sm:text-base mb-1.5 text-emerald-800">
|
||||
<i class="fa-solid fa-circle-check text-emerald-600 text-lg"></i>
|
||||
<span>학습 정밀 진단 신청이 성공적으로 접수되었습니다!</span>
|
||||
</div>
|
||||
<p class="leading-relaxed">
|
||||
기재해주신 연락처로 <strong>‘취약 단원 정밀 분석 리포트’</strong>가 발송되며, 전문 입시 분석관이 유선으로 심층 솔루션을 안내해 드립니다.
|
||||
</p>
|
||||
<div class="mt-3 p-2.5 bg-white/80 rounded-xl border border-emerald-200 text-xs text-emerald-900 flex items-start gap-2">
|
||||
<i class="fa-solid fa-lightbulb text-emerald-600 mt-0.5 shrink-0"></i>
|
||||
<span><strong>💡 안내:</strong> 매니저 유선 상담 시 <strong>상담결과를 공유해 주시면</strong> 수준별 맞춤 커리큘럼 설계가 훨씬 원활하게 진행됩니다. (문의: 010-5961-5807)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 4대 혜택 섹션 (데스크톱 4열 그리드) -->
|
||||
<section class="mt-16 px-4 sm:px-6 max-w-6xl mx-auto">
|
||||
<header class="text-center mb-8">
|
||||
<span class="text-xs sm:text-sm font-bold text-sky-700 tracking-wider uppercase bg-sky-100 px-3 py-1 rounded-full">TUTOR ON BENEFITS</span>
|
||||
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">튜터온 4대 특화 혜택</h2>
|
||||
<p class="text-xs sm:text-sm text-slate-500 mt-1">데이터 분석으로 취약점만 콕 집어 최단기 성적 향상을 이끕니다.</p>
|
||||
</header>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-sky-300 hover:shadow-md transition group">
|
||||
<div class="w-12 h-12 rounded-2xl bg-sky-100 text-sky-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
|
||||
<i class="fa-solid fa-brain"></i>
|
||||
</div>
|
||||
<span class="inline-block text-[11px] font-bold text-sky-700 bg-sky-50 px-2 py-0.5 rounded mb-1.5">혜택 01</span>
|
||||
<h3 class="font-bold text-slate-900 text-sm sm:text-base">취약 단원 역추적 시트</h3>
|
||||
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">어느 단원에서 구멍이 생겼는지 5단계 오답 원인 분석</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-cyan-300 hover:shadow-md transition group">
|
||||
<div class="w-12 h-12 rounded-2xl bg-cyan-100 text-cyan-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
|
||||
<i class="fa-solid fa-database"></i>
|
||||
</div>
|
||||
<span class="inline-block text-[11px] font-bold text-cyan-700 bg-cyan-50 px-2 py-0.5 rounded mb-1.5">혜택 02</span>
|
||||
<h3 class="font-bold text-slate-900 text-sm sm:text-base">학군별 3개년 킬러족보</h3>
|
||||
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">분당·판교·강남 주요 학교별 고난도 변별력 문항 모음</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-blue-300 hover:shadow-md transition group">
|
||||
<div class="w-12 h-12 rounded-2xl bg-blue-100 text-blue-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
|
||||
<i class="fa-solid fa-chart-line"></i>
|
||||
</div>
|
||||
<span class="inline-block text-[11px] font-bold text-blue-700 bg-blue-50 px-2 py-0.5 rounded mb-1.5">혜택 03</span>
|
||||
<h3 class="font-bold text-slate-900 text-sm sm:text-base">1:1 약점 클리닉 워크북</h3>
|
||||
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">틀린 유형과 유사한 변형 문제만 선별 제공</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-indigo-300 hover:shadow-md transition group">
|
||||
<div class="w-12 h-12 rounded-2xl bg-indigo-100 text-indigo-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
|
||||
<i class="fa-solid fa-user-gear"></i>
|
||||
</div>
|
||||
<span class="inline-block text-[11px] font-bold text-indigo-700 bg-indigo-50 px-2 py-0.5 rounded mb-1.5">혜택 04</span>
|
||||
<h3 class="font-bold text-slate-900 text-sm sm:text-base">데이터 분석 전문 강사진</h3>
|
||||
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">학생의 오답 성향에 최적화된 1:1 전담 매칭</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 성적 향상 사례 (데스크톱 와이드 2열) -->
|
||||
<section class="mt-16 px-4 sm:px-6 max-w-6xl mx-auto">
|
||||
<header class="text-center mb-8">
|
||||
<span class="text-xs sm:text-sm font-bold text-sky-700 tracking-wider bg-sky-100 px-3 py-1 rounded-full">DATA-DRIVEN SUCCESS</span>
|
||||
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">실제 성적 반등 결과</h2>
|
||||
<p class="text-xs sm:text-sm text-slate-500 mt-1">데이터 분석으로 원인을 찾아 성적을 역전시킨 학생들의 사례입니다.</p>
|
||||
</header>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 mb-6">
|
||||
<!-- Case 1 -->
|
||||
<div class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm hover:shadow-md transition">
|
||||
<div class="flex items-center justify-between mb-3">
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="bg-sky-100 text-sky-800 font-bold text-xs px-2.5 py-1 rounded-full">공통수학 1등급</span>
|
||||
<span class="font-bold text-sm sm:text-base text-slate-800">분당 수내동 고1 정OO 학생</span>
|
||||
</div>
|
||||
<span class="text-xs text-slate-400">3개월 만에 달성</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex justify-between text-xs sm:text-sm mb-1.5 font-semibold">
|
||||
<span class="text-slate-400">진단 전: 4등급 (52점)</span>
|
||||
<span class="text-sky-700 font-bold">진단 후: 1등급 (96점) 🔥</span>
|
||||
</div>
|
||||
<div class="w-full bg-slate-100 rounded-full h-3 overflow-hidden">
|
||||
<div class="bg-gradient-to-r from-slate-300 to-sky-600 h-3 rounded-full" style="width: 92%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-xs sm:text-sm text-slate-600 mt-3.5 bg-slate-50 p-3.5 rounded-xl leading-relaxed">
|
||||
"어디서 틀리는지 모른 채 무작정 문제집만 풀었는데, 정밀 분석 리포트로 이차함수 판별식 연계 개념이 비어있다는 걸 알고 단기간에 메꿨습니다."
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Case 2 -->
|
||||
<div class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm hover:shadow-md transition">
|
||||
<div class="flex items-center justify-between mb-3">
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="bg-cyan-100 text-cyan-800 font-bold text-xs px-2.5 py-1 rounded-full">과학 탐구 만점</span>
|
||||
<span class="font-bold text-sm sm:text-base text-slate-800">판교 중3 윤OO 학생</span>
|
||||
</div>
|
||||
<span class="text-xs text-slate-400">2개월 만에 달성</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex justify-between text-xs sm:text-sm mb-1.5 font-semibold">
|
||||
<span class="text-slate-400">진단 전: 62점 (C등급)</span>
|
||||
<span class="text-cyan-700 font-bold">진단 후: 98점 (전교 2등) 🚀</span>
|
||||
</div>
|
||||
<div class="w-full bg-slate-100 rounded-full h-3 overflow-hidden">
|
||||
<div class="bg-gradient-to-r from-slate-300 to-cyan-600 h-3 rounded-full" style="width: 96%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-xs sm:text-sm text-slate-600 mt-3.5 bg-slate-50 p-3.5 rounded-xl leading-relaxed">
|
||||
"물리 파트 공식 유도와 계산 실수 패턴을 정확히 잡아주셔서 내신 시험에서 만점에 가까운 점수를 받았습니다."
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 학부모 리뷰 (2열) -->
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200 shadow-sm text-left">
|
||||
<div class="text-amber-400 text-sm mb-2">
|
||||
<i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
|
||||
</div>
|
||||
<h4 class="font-bold text-sm sm:text-base text-slate-800">분당 파크뷰 학부모 이OO님</h4>
|
||||
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"정밀 진단표가 학원 상담보다 훨씬 객관적이고 정확했습니다. 어디에 집중해야 할지 명확해졌어요."</p>
|
||||
</div>
|
||||
|
||||
<div class="bg-white p-5 rounded-2xl border border-slate-200 shadow-sm text-left">
|
||||
<div class="text-amber-400 text-sm mb-2">
|
||||
<i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
|
||||
</div>
|
||||
<h4 class="font-bold text-sm sm:text-base text-slate-800">판교 백현마을 학부모 강OO님</h4>
|
||||
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"시간 낭비 없이 부족한 단원만 집중 공략하니 단 2개월 만에 성적이 수직 상승했습니다."</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- FAQ 섹션 -->
|
||||
<section class="mt-16 px-4 sm:px-6 max-w-4xl mx-auto">
|
||||
<header class="text-center mb-8">
|
||||
<span class="text-xs sm:text-sm font-bold text-slate-400 tracking-wider">FAQ</span>
|
||||
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-1">자주 묻는 질문</h2>
|
||||
<p class="text-xs sm:text-sm text-slate-500 mt-1">궁금하신 내용을 미리 확인해 보세요.</p>
|
||||
</header>
|
||||
|
||||
<div class="space-y-3">
|
||||
<div v-for="(faq, idx) in faqs" :key="idx" class="border border-slate-200 rounded-2xl overflow-hidden bg-white shadow-sm">
|
||||
<button @click="faq.open = !faq.open" class="w-full p-4 sm:p-5 text-left text-sm sm:text-base font-bold text-slate-800 flex justify-between items-center hover:bg-slate-50 transition">
|
||||
<span>{{ faq.q }}</span>
|
||||
<i class="fa-solid fa-chevron-down text-xs sm:text-sm text-slate-400 transition-transform" :class="{ 'rotate-180': faq.open }"></i>
|
||||
</button>
|
||||
<div v-show="faq.open" class="p-4 sm:p-5 pt-0 text-xs sm:text-sm text-slate-600 leading-relaxed border-t border-slate-100 bg-slate-50/50">
|
||||
{{ faq.a }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- 하단 모바일 고정 CTA 바 -->
|
||||
<aside class="fixed bottom-0 left-0 right-0 bg-white/95 backdrop-blur-md border-t border-slate-200 p-3 sm:p-4 z-40 shadow-2xl">
|
||||
<div class="max-w-4xl mx-auto flex items-center gap-3">
|
||||
<a href="tel:010-5961-5807" class="flex flex-col items-center justify-center px-4 py-2.5 bg-slate-100 hover:bg-slate-200 text-slate-800 rounded-xl text-xs font-bold shrink-0 transition" title="전화상담">
|
||||
<i class="fa-solid fa-phone text-sky-600 text-sm mb-0.5"></i>
|
||||
<span>010-5961-5807</span>
|
||||
</a>
|
||||
<a href="#leadFormSection" class="flex-1 bg-gradient-to-r from-sky-600 via-cyan-600 to-sky-600 hover:opacity-95 text-white font-extrabold text-sm sm:text-base py-3 sm:py-3.5 px-4 rounded-xl shadow-lg transition flex items-center justify-center gap-2">
|
||||
<i class="fa-solid fa-microchip text-xs sm:text-sm"></i>
|
||||
<span>지금 무료 정밀 진단 신청하기</span>
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
|
||||
const config = useRuntimeConfig()
|
||||
const siteName = config.public.siteName || '튜터온'
|
||||
const siteDomain = config.public.siteDomain || 'https://aeseo.site'
|
||||
|
||||
const isSubmitting = ref(false)
|
||||
const submitSuccess = ref(false)
|
||||
|
||||
const rollingMessages = [
|
||||
"경기 성남시 분당구 수내동 고1 수학 킬러문항 정밀 분석 접수 (방금 전)",
|
||||
"경기 성남시 판교동 중3 과학 탐구 오답 클리닉 신청 완료 (1분 전)",
|
||||
"경기 수원시 영통구 고2 영어 빈칸추론 정밀 진단 신청 (3분 전)",
|
||||
"경기 용인시 수지구 중2 수학 개념 단원 역추적 접수 (5분 전)",
|
||||
"서울 강남구 역삼동 중1 국어 비문학 정밀 분석 신청 (7분 전)"
|
||||
]
|
||||
const currentNotice = ref(rollingMessages[0])
|
||||
let rollingIdx = 0
|
||||
|
||||
onMounted(() => {
|
||||
setInterval(() => {
|
||||
rollingIdx = (rollingIdx + 1) % rollingMessages.length
|
||||
currentNotice.value = rollingMessages[rollingIdx]
|
||||
}, 3500)
|
||||
})
|
||||
|
||||
const subjects = [
|
||||
{ name: '수학', label: '수학', badge: '인기' },
|
||||
{ name: '영어', label: '영어', badge: 'PICK' },
|
||||
{ name: '과학', label: '과학', badge: '추천' },
|
||||
{ name: '국어', label: '국어', badge: 'PICK' },
|
||||
{ name: '사회/역사', label: '사회', badge: 'PICK' }
|
||||
]
|
||||
|
||||
const concernOptions = [
|
||||
'개념은 아는데 심화·킬러 문제에서 실패',
|
||||
'어느 단원이 부족한지 모르는 막연한 공부',
|
||||
'학원 숙제만 많고 실제 성적은 정체',
|
||||
'시험 시간 관리 및 잦은 계산 실수'
|
||||
]
|
||||
|
||||
const formData = reactive({
|
||||
grade: '고등학교 1학년',
|
||||
subject: '수학',
|
||||
concerns: ['개념은 아는데 심화·킬러 문제에서 실패'],
|
||||
region: '',
|
||||
phone: '',
|
||||
privacy: true
|
||||
})
|
||||
|
||||
const faqs = reactive([
|
||||
{
|
||||
q: '1. 학습 정밀 진단은 어떻게 진행되나요?',
|
||||
a: '신청서를 남겨주시면 최근 학교 시험지 및 모의고사 성적을 바탕으로 학생의 취약 단원과 오답 패턴을 5단계로 역추적하여 정밀 리포트를 제공합니다.',
|
||||
open: false
|
||||
},
|
||||
{
|
||||
q: '2. 진단 후 과외 매칭은 어떻게 이루어지나요?',
|
||||
a: '분석된 취약 단원을 가장 빠르고 정확하게 메꿔줄 수 있는 전문 베테랑 선생님을 데이터 기반으로 우선 매칭해 드립니다.',
|
||||
open: false
|
||||
},
|
||||
{
|
||||
q: '3. 정밀 진단 비용이 정말 무료인가요?',
|
||||
a: '네, 현재 프로모션 기간 동안 신청하시는 모든 분께 정밀 진단 리포트와 전문 학습 매니저의 전화 분석이 전액 무료로 제공됩니다.',
|
||||
open: false
|
||||
},
|
||||
{
|
||||
q: '4. 온라인 화상 과외도 가능한가요?',
|
||||
a: '네, 실시간 전자칠판 시스템을 통한 비대면 화상 과외와 방문 과외 중 원하시는 형태를 자유롭게 선택하실 수 있습니다.',
|
||||
open: false
|
||||
}
|
||||
])
|
||||
|
||||
function formatPhone() {
|
||||
let val = formData.phone.replace(/[^0-9]/g, '')
|
||||
if (val.length > 3 && val.length <= 7) {
|
||||
formData.phone = val.substring(0, 3) + '-' + val.substring(3)
|
||||
} else if (val.length > 7) {
|
||||
formData.phone = val.substring(0, 3) + '-' + val.substring(3, 7) + '-' + val.substring(7, 11)
|
||||
} else {
|
||||
formData.phone = val
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
if (!formData.phone || formData.phone.length < 12) {
|
||||
alert('올바른 학부모 연락처(휴대폰 번호)를 입력해 주세요.')
|
||||
return
|
||||
}
|
||||
|
||||
isSubmitting.value = true
|
||||
|
||||
try {
|
||||
const res = await $fetch('/api/consult', {
|
||||
method: 'POST',
|
||||
body: {
|
||||
name: '학부모 (정밀진단신청)',
|
||||
phone: formData.phone,
|
||||
grade: formData.grade,
|
||||
schoolName: formData.region || '지역 미기재',
|
||||
location: formData.region || '온라인 랜딩',
|
||||
memo: `[과목]: ${formData.subject} / [고민]: ${formData.concerns.join(', ')}`,
|
||||
url: window.location.href
|
||||
}
|
||||
})
|
||||
|
||||
if (res && res.success) {
|
||||
submitSuccess.value = true
|
||||
setTimeout(() => {
|
||||
document.getElementById('submitResultBox')?.scrollIntoView({ behavior: 'smooth' })
|
||||
}, 100)
|
||||
} else {
|
||||
alert('신청 접수 중 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.')
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
alert('접수 처리 중 문제가 발생했습니다.')
|
||||
} finally {
|
||||
isSubmitting.value = false
|
||||
}
|
||||
}
|
||||
|
||||
useHead({
|
||||
title: `${siteName} | 우리 동네 1:1 전담 맞춤과외`,
|
||||
meta: [
|
||||
{ name: 'naver-site-verification', content: '797ab1ac988eb27c80ae544bb6aba05c2231a9c9' },
|
||||
{ name: 'description', content: `${siteName} - 관내 초·중·고 학교별 내신 기출 완벽 분석 및 취약 단원 1:1 맞춤과외 매칭.` },
|
||||
{ property: 'og:title', content: `${siteName} | 우리 동네 1:1 맞춤과외 센터` },
|
||||
{ property: 'og:description', content: '데이터로 찾는 성적 향상의 지름길! 취약 단원 핀포인트 클리닉.' },
|
||||
{ property: 'og:url', content: siteDomain }
|
||||
],
|
||||
script: [
|
||||
{
|
||||
type: 'application/ld+json',
|
||||
children: JSON.stringify({
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'EducationalOrganization',
|
||||
name: siteName,
|
||||
url: siteDomain,
|
||||
telephone: '+82-10-5961-5807',
|
||||
areaServed: '경기·서울 전지역'
|
||||
})
|
||||
}
|
||||
]
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
|
||||
.landing-container {
|
||||
font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
|
||||
word-break: keep-all;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user