This commit is contained in:
eric
2026-03-09 01:44:13 -05:00
parent 8eef28536e
commit 7638e4032e
18 changed files with 1038 additions and 264 deletions

53
config/filter.config.ts Normal file
View File

@@ -0,0 +1,53 @@
/**
* 筛选栏配置
*/
export interface FilterOption {
value: string;
label: string;
}
export const FILTER_OPTIONS: FilterOption[] = [
{ value: "all", label: "全部" },
{ value: "popular", label: "热门" },
{ value: "cheap", label: "便宜" },
{ value: "fast-internet", label: "高速网络" },
{ value: "warm", label: "温暖" },
{ value: "safe", label: "安全" },
{ value: "beach", label: "海滨" },
{ value: "mountain", label: "山城" },
{ value: "urban", label: "都市" },
{ value: "food", label: "美食" },
{ value: "culture", label: "文化" },
{ value: "tier-1", label: "一线城市" },
{ value: "new-tier-1", label: "新一线" },
{ value: "livable", label: "宜居" },
{ value: "historical", label: "历史名城" },
{ value: "friendly", label: "友好社区" },
{ value: "outdoor", label: "户外运动" },
];
export const FILTER_LABELS = {
title: "发现目的地",
resultCount: "个城市",
sortLabel: "排序:",
tags: {
: "🌍",
: "🔥",
便: "💰",
: "📡",
: "☀️",
: "🛡️",
: "🏖️",
: "🏔️",
: "🌆",
: "🍜",
: "🎨",
线: "🏙️",
线: "⭐",
: "🏡",
: "🏛️",
: "🤝",
: "🏄",
},
};

55
config/footer.config.ts Normal file
View File

@@ -0,0 +1,55 @@
/**
* 页脚配置
*/
export interface FooterLink {
href: string;
labelKey: string;
}
export interface FooterSection {
titleKey: string;
links: FooterLink[];
}
export const FOOTER_SECTIONS: FooterSection[] = [
{
titleKey: "about",
links: [
{ href: "/about", labelKey: "aboutUs" },
{ href: "/blog", labelKey: "blog" },
{ href: "/careers", labelKey: "careers" },
{ href: "/press", labelKey: "press" },
],
},
{
titleKey: "support",
links: [
{ href: "/help", labelKey: "helpCenter" },
{ href: "/safety", labelKey: "safety" },
{ href: "/guidelines", labelKey: "guidelines" },
{ href: "/contact", labelKey: "contactUs" },
],
},
{
titleKey: "legal",
links: [
{ href: "/terms", labelKey: "termsOfService" },
{ href: "/privacy", labelKey: "privacyPolicy" },
{ href: "/cookies", labelKey: "cookiePolicy" },
],
},
{
titleKey: "social",
links: [
{ href: "https://twitter.com", labelKey: "twitter" },
{ href: "https://facebook.com", labelKey: "facebook" },
{ href: "https://instagram.com", labelKey: "instagram" },
{ href: "https://youtube.com", labelKey: "youtube" },
],
},
];
export function getFooterSections() {
return FOOTER_SECTIONS;
}

148
config/home.config.ts Normal file
View File

@@ -0,0 +1,148 @@
/**
* 首页静态数据配置
*/
export interface MemberPhoto {
name: string;
photo: string;
}
export interface TravelingNow {
name: string;
photo: string;
dest: string;
}
export interface Meetup {
city: string;
emoji: string;
date: string;
count: number;
}
export interface HotTopic {
title: string;
views: number;
}
export interface Route {
title: string;
cities: string[];
emojis: string[];
duration: string;
cost: string;
desc: string;
gradient: string;
}
export interface HomeStats {
cities: string;
nomads: string;
meetups: string;
homeMeetups: string;
cost: string;
}
export const MEMBER_PHOTOS: MemberPhoto[] = [
{ name: "林晓", photo: "https://i.pravatar.cc/150?img=5" },
{ name: "张浩", photo: "https://i.pravatar.cc/150?img=3" },
{ name: "陈悦", photo: "https://i.pravatar.cc/150?img=9" },
{ name: "周杰", photo: "https://i.pravatar.cc/150?img=7" },
{ name: "吴婷", photo: "https://i.pravatar.cc/150?img=1" },
{ name: "杨帅", photo: "https://i.pravatar.cc/150?img=12" },
{ name: "赵琪", photo: "https://i.pravatar.cc/150?img=16" },
{ name: "黄磊", photo: "https://i.pravatar.cc/150?img=11" },
{ name: "孙莉", photo: "https://i.pravatar.cc/150?img=20" },
];
export const TRAVELING_NOW: TravelingNow[] = [
{ name: "小明", photo: "https://i.pravatar.cc/150?img=52", dest: "大理" },
{ name: "雨晴", photo: "https://i.pravatar.cc/150?img=44", dest: "成都" },
{ name: "阿杰", photo: "https://i.pravatar.cc/150?img=53", dest: "深圳" },
{ name: "小燕", photo: "https://i.pravatar.cc/150?img=47", dest: "杭州" },
{ name: "大伟", photo: "https://i.pravatar.cc/150?img=55", dest: "厦门" },
{ name: "佳琪", photo: "https://i.pravatar.cc/150?img=48", dest: "昆明" },
{ name: "志远", photo: "https://i.pravatar.cc/150?img=57", dest: "丽江" },
{ name: "心怡", photo: "https://i.pravatar.cc/150?img=49", dest: "三亚" },
{ name: "凯文", photo: "https://i.pravatar.cc/150?img=59", dest: "上海" },
{ name: "子豪", photo: "https://i.pravatar.cc/150?img=60", dest: "北京" },
{ name: "浩然", photo: "https://i.pravatar.cc/150?img=61", dest: "广州" },
{ name: "雅琪", photo: "https://i.pravatar.cc/150?img=21", dest: "南京" },
{ name: "天翔", photo: "https://i.pravatar.cc/150?img=67", dest: "长沙" },
{ name: "美玲", photo: "https://i.pravatar.cc/150?img=23", dest: "苏州" },
{ name: "俊杰", photo: "https://i.pravatar.cc/150?img=68", dest: "青岛" },
{ name: "晓华", photo: "https://i.pravatar.cc/150?img=26", dest: "珠海" },
];
export const MEETUPS: Meetup[] = [
{ city: "大理", emoji: "🏯", date: "3月9日", count: 12 },
{ city: "成都", emoji: "🐼", date: "3月12日", count: 8 },
{ city: "深圳", emoji: "🌃", date: "3月14日", count: 15 },
{ city: "厦门", emoji: "🌊", date: "3月16日", count: 6 },
{ city: "杭州", emoji: "⛲", date: "3月20日", count: 23 },
];
export const HOT_TOPICS: HotTopic[] = [
{ title: "大理最佳共享办公空间推荐 Top 10", views: 2340 },
{ title: "2026年数字游民友好城市排名", views: 1890 },
{ title: "远程工作者的税务规划指南", views: 1560 },
{ title: "成都 vs 大理:哪个更适合游民?", views: 1230 },
{ title: "新手游民必备工具与装备清单", views: 980 },
];
export const ROUTES: Route[] = [
{
title: "云南慢生活线",
cities: ["昆明", "大理", "丽江"],
emojis: ["🌸", "🏯", "🏔️"],
duration: "3-6个月",
cost: "¥3,200/月起",
desc: "从春城昆明出发,沿着滇西北一路感受最纯粹的慢生活",
gradient: "from-purple-500 to-pink-500",
},
{
title: "科技创业线",
cities: ["深圳", "杭州", "上海"],
emojis: ["🌃", "⛲", "🏙️"],
duration: "2-4个月",
cost: "¥7,000/月起",
desc: "穿越中国三大科技中心,连接最前沿的创业生态",
gradient: "from-blue-500 to-cyan-500",
},
{
title: "美食文化线",
cities: ["成都", "重庆", "长沙"],
emojis: ["🐼", "🌶️", "🎪"],
duration: "2-3个月",
cost: "¥4,000/月起",
desc: "巴蜀到湘楚,用味蕾丈量中国最火辣的城市",
gradient: "from-orange-500 to-red-500",
},
];
export const HOME_STATS: HomeStats = {
cities: "18",
nomads: "5,000+",
meetups: "8+",
homeMeetups: "50+",
cost: "¥3,000",
};
export const COMMUNITY_STATS = {
onlineMembers: "3,200+",
messagesPerMonth: "3,200+",
};
export const HOME_CONFIG = {
memberPhotos: MEMBER_PHOTOS,
travelingNow: TRAVELING_NOW,
meetups: MEETUPS,
hotTopics: HOT_TOPICS,
routes: ROUTES,
stats: HOME_STATS,
communityStats: COMMUNITY_STATS,
};
export function getHomeConfig() {
return HOME_CONFIG;
}

View File

@@ -1,4 +1,8 @@
export { SITE_CONFIG, getSiteConfig } from "./site.config";
export { getNavLinks, type NavLink } from "./nav.config";
export { getHomeConfig, HOME_CONFIG, MEMBER_PHOTOS, TRAVELING_NOW, MEETUPS, HOT_TOPICS, ROUTES, HOME_STATS, COMMUNITY_STATS, type MemberPhoto, type TravelingNow, type Meetup, type HotTopic, type Route, type HomeStats } from "./home.config";
export { FILTER_OPTIONS, FILTER_LABELS, type FilterOption } from "./filter.config";
export { FOOTER_SECTIONS, getFooterSections, type FooterLink, type FooterSection } from "./footer.config";
export {
getPocketBaseConfig,
getPaymentConfig,

25
config/nav.config.ts Normal file
View File

@@ -0,0 +1,25 @@
/**
* 导航链接配置
*/
export interface NavLink {
labelKey: "cities" | "dashboard" | "travel" | "community" | "tools" | "ai" | "gigs" | "pricing" | "explore";
icon: string;
href: string;
}
export const NAV_LINKS: NavLink[] = [
{ labelKey: "cities", icon: "🏙️", href: "/" },
{ labelKey: "dashboard", icon: "📍", href: "/dashboard" },
{ labelKey: "travel", icon: "✈️", href: "/meetups" },
{ labelKey: "community", icon: "💬", href: "/dating" },
{ labelKey: "tools", icon: "📊", href: "/tools" },
{ labelKey: "ai", icon: "🤖", href: "/ai" },
{ labelKey: "gigs", icon: "💰", href: "/gigs" },
{ labelKey: "pricing", icon: "👑", href: "/pricing" },
{ labelKey: "explore", icon: "🎒", href: "/#community" },
];
export function getNavLinks() {
return NAV_LINKS;
}