162 lines
4.4 KiB
JavaScript
162 lines
4.4 KiB
JavaScript
const { mockAssets } = require("./assets");
|
||
|
||
const categories = ["情侣", "闺蜜", "生日", "汉服"];
|
||
const sceneTags = ["公园", "街拍", "夜景", "室内"];
|
||
|
||
const worksCatalog = mockAssets.works.map((url, idx) => ({
|
||
id: `work_${idx + 1}`,
|
||
cover: url,
|
||
category: categories[idx % categories.length],
|
||
ratio: idx % 3 === 0 ? "wide" : "tall",
|
||
title: `${categories[idx % categories.length]}客片 ${idx + 1}`,
|
||
scene: sceneTags[idx % sceneTags.length],
|
||
}));
|
||
|
||
const photoBookHome = {
|
||
photographerName: "陪你拍阿柚",
|
||
photographerTagline: "你负责开心,我负责把自然瞬间拍好看",
|
||
heroImage: mockAssets.hero,
|
||
tags: categories,
|
||
works: worksCatalog.slice(0, 6),
|
||
portfolioCount: worksCatalog.length,
|
||
updateText: "最近 7 天新增 12 组客片",
|
||
packages: [
|
||
{
|
||
id: "pkg_1",
|
||
badge: "精选",
|
||
title: "2小时轻陪拍",
|
||
desc: "适合第一次拍|情侣日常",
|
||
price: 399,
|
||
originalPrice: 459,
|
||
availableSlots: "本周剩余 3 档",
|
||
ctaLabel: "立即预约",
|
||
},
|
||
{
|
||
id: "pkg_2",
|
||
badge: "高人气",
|
||
title: "3小时沉浸拍摄",
|
||
desc: "适合故事感记录|含修图",
|
||
price: 569,
|
||
originalPrice: 639,
|
||
availableSlots: "本周剩余 2 档",
|
||
ctaLabel: "立即预约",
|
||
},
|
||
],
|
||
};
|
||
|
||
const packageDetail = {
|
||
id: "pkg_1",
|
||
title: "情侣纪念日 · 2h",
|
||
price: 899,
|
||
originalPrice: 999,
|
||
availableSlots: "本周可约:周六下午 / 周日上午",
|
||
cover: mockAssets.banner,
|
||
gains: [
|
||
"轻松微步式拍摄,不用担心不会摆姿势",
|
||
"72小时内初修件片,7天内全部交付",
|
||
"可免费改档1次,天气不好可顺延",
|
||
],
|
||
flow: ["选好时间", "表格向我提到路线和穿搭", "一起轻松拍完"],
|
||
};
|
||
|
||
const bookingDraft = {
|
||
dateList: [
|
||
{ day: "周六", date: "28", active: true },
|
||
{ day: "周日", date: "29", active: false },
|
||
{ day: "周一", date: "30", active: false },
|
||
],
|
||
startTime: "14:00",
|
||
endTime: "17:00",
|
||
devices: [
|
||
{ id: "d1", name: "Pocket3", desc: "清晰便携|氛围感好", active: true },
|
||
{ id: "d2", name: "iPhone", desc: "生活感|轻快松弛", active: false },
|
||
{ id: "d3", name: "复古相机", desc: "文艺胶片|氛围更强", active: false },
|
||
],
|
||
total: 399,
|
||
validation: {
|
||
dateValid: true,
|
||
timeValid: true,
|
||
contactValid: false,
|
||
},
|
||
submitState: "idle",
|
||
};
|
||
|
||
const bookingConfirm = {
|
||
title: "今天开始,慢慢陪你拍。",
|
||
tip: "提交后 30 分钟内,我会来和你确认时间、地点和拍照感觉。",
|
||
dateText: "2026年03月28日 周六",
|
||
timeText: "16:30 - 18:30",
|
||
contactText: "林夏 / 138****1029",
|
||
notice: "提交即表示你已阅读拍摄须知与改期说明。确认成功后,页面会带你回到「我的预约」。",
|
||
};
|
||
|
||
const works = {
|
||
tabs: ["全部", ...categories],
|
||
activeTab: "全部",
|
||
list: worksCatalog,
|
||
};
|
||
|
||
const myBookings = [
|
||
{
|
||
id: "o1",
|
||
status: "待确认",
|
||
statusType: "pending",
|
||
statusReason: "等待摄影师确认时间",
|
||
duration: "2小时",
|
||
time: "2026/03/28 14:00-16:00",
|
||
location: "深圳 南山区 · 深圳湾公园",
|
||
primaryText: "联系摄影师",
|
||
secondaryText: "取消预约",
|
||
canCancel: true,
|
||
canContact: true,
|
||
},
|
||
{
|
||
id: "o2",
|
||
status: "已确认",
|
||
statusType: "confirmed",
|
||
statusReason: "档期和地点已确认",
|
||
duration: "3小时",
|
||
time: "2026/04/01 16:30-19:30",
|
||
location: "深圳 福田区 · 香蜜公园",
|
||
primaryText: "联系摄影师",
|
||
secondaryText: "改期申请",
|
||
canCancel: false,
|
||
canContact: true,
|
||
},
|
||
{
|
||
id: "o3",
|
||
status: "已取消",
|
||
statusType: "cancelled",
|
||
statusReason: "你已取消该订单",
|
||
duration: "2小时",
|
||
time: "2026/03/22 10:00-12:00",
|
||
location: "深圳 罗湖区 · 东湖公园",
|
||
primaryText: "再次预约",
|
||
secondaryText: "已结束",
|
||
canCancel: false,
|
||
canContact: false,
|
||
},
|
||
];
|
||
|
||
const bookingDetail = {
|
||
status: "已确认",
|
||
photographer: "摄影师 安可",
|
||
subtitle: "轻松微步式拍摄 | 已与你确认档期",
|
||
time: "2026/04/01 16:30-19:30",
|
||
duration: "3小时",
|
||
device: "Pocket3",
|
||
contact: "wx:linxin / 138****1029",
|
||
note: "想拍自然互动呀,偏傍晚逆光,穿浅色系。",
|
||
total: 899,
|
||
};
|
||
|
||
module.exports = {
|
||
photoBookHome,
|
||
packageDetail,
|
||
bookingDraft,
|
||
bookingConfirm,
|
||
works,
|
||
myBookings,
|
||
bookingDetail,
|
||
};
|