feat: 프론트엔드 초기 스캐폴딩 (Vue3+TS+Quasar+Capacitor)
- 하늘색 파스텔 브랜드 테마(quasar-variables) - 스팟 지도/체크인/한줄평/메이트 홈 화면 - 강아지 프로필 + 댕비티아이 성향 태그 화면 - 구독 티어 스토어(Pinia) 및 FREE 티어 배너 광고(v-if 제어) - Capacitor(iOS/AOS) 설정, 빌드/타입체크 통과 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<q-layout view="hHh lpR fFf">
|
||||
<q-header class="bg-primary text-white safe-top">
|
||||
<q-toolbar>
|
||||
<q-toolbar-title class="text-weight-bold">
|
||||
<q-icon name="pets" class="q-mr-sm" />산책갈개
|
||||
</q-toolbar-title>
|
||||
<q-chip dense color="white" text-color="primary" icon="bolt">
|
||||
{{ tierLabel }}
|
||||
</q-chip>
|
||||
</q-toolbar>
|
||||
</q-header>
|
||||
|
||||
<q-page-container>
|
||||
<router-view />
|
||||
</q-page-container>
|
||||
|
||||
<!-- FREE 티어 하단 배너 광고 -->
|
||||
<AdBanner />
|
||||
|
||||
<q-footer class="bg-white text-grey-8 safe-bottom">
|
||||
<q-tabs
|
||||
v-model="tab"
|
||||
active-color="primary"
|
||||
indicator-color="primary"
|
||||
class="text-grey-6"
|
||||
>
|
||||
<q-route-tab name="home" :to="{ name: 'home' }" icon="map" label="산책 스팟" />
|
||||
<q-route-tab name="profile" :to="{ name: 'profile' }" icon="pets" label="우리 개" />
|
||||
</q-tabs>
|
||||
</q-footer>
|
||||
</q-layout>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed, ref } from 'vue'
|
||||
import AdBanner from '@/components/AdBanner.vue'
|
||||
import { useSubscriptionStore } from '@/stores/subscription'
|
||||
|
||||
const tab = ref('home')
|
||||
const subscription = useSubscriptionStore()
|
||||
|
||||
const tierLabel = computed(() => {
|
||||
switch (subscription.tier) {
|
||||
case 'PREMIUM':
|
||||
return 'PREMIUM'
|
||||
case 'AD_FREE':
|
||||
return '광고제거'
|
||||
default:
|
||||
return 'FREE'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user