70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import { defineStore } from 'pinia'
|
|
|
|
export interface KpiCard {
|
|
label: string
|
|
value: string
|
|
note: string
|
|
color: string
|
|
band: string
|
|
border: string
|
|
}
|
|
|
|
export interface RunningProject {
|
|
name: string
|
|
domain: string
|
|
status: string
|
|
leads: number
|
|
}
|
|
|
|
export const useDashboardStore = defineStore('admin-dashboard', {
|
|
state: () => ({
|
|
kpiCards: [
|
|
{
|
|
label: '진행중 프로젝트',
|
|
value: '5',
|
|
note: '최근 7일 내 변경 3건',
|
|
color: 'text-cyan-300',
|
|
band: 'from-cyan-300/80 to-cyan-200/20',
|
|
border: 'border-cyan-300/25'
|
|
},
|
|
{
|
|
label: '전체 프로젝트',
|
|
value: '18',
|
|
note: '캠페인 기준 총 18개',
|
|
color: 'text-fuchsia-200',
|
|
band: 'from-fuchsia-300/80 to-fuchsia-200/20',
|
|
border: 'border-fuchsia-300/25'
|
|
},
|
|
{
|
|
label: '새로운 리드',
|
|
value: '24',
|
|
note: '오늘 신규 유입',
|
|
color: 'text-emerald-300',
|
|
band: 'from-emerald-300/80 to-emerald-200/20',
|
|
border: 'border-emerald-300/25'
|
|
}
|
|
],
|
|
trendBars: [12, 20, 16, 26, 18, 24],
|
|
runningProjects: [
|
|
{
|
|
name: '여름 프로모션',
|
|
domain: 'summer.ad-camp.kr',
|
|
status: '운영중',
|
|
leads: 42
|
|
},
|
|
{
|
|
name: '주말 특가 랜딩',
|
|
domain: 'weekend.offer.kr',
|
|
status: '테스트',
|
|
leads: 13
|
|
},
|
|
{
|
|
name: '리타겟팅 A',
|
|
domain: 'retarget.example.com',
|
|
status: '준비중',
|
|
leads: 0
|
|
}
|
|
] as RunningProject[]
|
|
})
|
|
})
|