Files
anxinyan/user-app/src/mocks/app.ts
2026-05-22 21:13:52 +08:00

748 lines
24 KiB
TypeScript

import type {
HomeData,
HelpArticleDetailData,
HelpCenterData,
MessageSummaryData,
OrderDetailData,
OrderListItem,
ReportDetailData,
ReportListItem,
SettingsData,
ShippingDetailData,
UserAddressItem,
TicketOverviewCard,
UserTicketDetailData,
UserTicketListItem,
UserMessageListData,
VerifyData,
} from "../api/app";
export const homeFallback: HomeData = {
banners: [
{
title: "安心验",
subtitle: "独立第三方鉴定服务平台",
description: "专业鉴定高价值商品,报告可验真,流程可追踪。",
background_image_url: "",
},
],
page_visuals: {
order_background_image_url: "",
report_background_image_url: "",
},
service_entries: [
{
service_provider: "anxinyan",
title: "实物鉴定",
tag: "标准服务",
description: "由安心验提供标准实物鉴定服务,适合正式结果交付场景。",
meta: "预计 48 小时内出结果 | 报告可验真",
},
{
service_provider: "zhongjian",
title: "中检鉴定",
tag: "更高规格机构",
description: "由更高规格机构提供实物鉴定服务,适合更高要求场景。",
meta: "流程一致 | 出具机构不同 | 价格与时效有差异",
},
],
category_entries: [
{ category_id: 1, category_name: "奢侈品箱包", category_code: "luxury_bag" },
{ category_id: 2, category_name: "潮流鞋类", category_code: "sneaker" },
{ category_id: 3, category_name: "腕表", category_code: "watch" },
{ category_id: 4, category_name: "首饰配饰", category_code: "jewelry" },
{ category_id: 5, category_name: "3C 数码", category_code: "digital" },
{ category_id: 6, category_name: "高端美妆", category_code: "beauty" },
{ category_id: 7, category_name: "服饰", category_code: "clothing" },
{ category_id: 8, category_name: "古董文玩", category_code: "antique" },
],
trust_points: [
{ title: "独立第三方", desc: "保持中立判断,不参与买卖立场。" },
{ title: "报告可验真", desc: "每份正式报告均支持编号与状态验证。" },
{ title: "流程可追踪", desc: "从下单到出报告,关键节点一目了然。" },
{ title: "标准化作业", desc: "按模板采集资料,单次鉴定后出具报告。" },
],
quick_entries: [
{ code: "start", title: "发起鉴定", desc: "进入送检流程" },
{ code: "orders", title: "我的订单", desc: "查看当前进度" },
{ code: "reports", title: "我的报告", desc: "查看结果凭证" },
{ code: "messages", title: "消息中心", desc: "查看服务提醒与结果通知" },
],
trust_metrics: [
{ value: "1280+", label: "累计鉴定申请" },
{ value: "48h", label: "标准结果时效" },
{ value: "100%", label: "正式报告可验真" },
],
faqs: ["实物鉴定和中检鉴定有什么区别?", "一般多久可以出结果?", "报告如何验证真伪?"],
};
export const ordersFallback: OrderListItem[] = [
{
order_id: 1,
order_no: "AXY202604200001",
appraisal_no: "AXY-APP-20260420-0001",
order_status: "pending_supplement",
product_name: "Louis Vuitton Neverfull MM",
product_cover: "",
service_provider: "zhongjian",
display_status: "等待您补充资料",
status_desc: "还差 2 项必传资料",
estimated_finish_time: "2026-04-21 18:00:00",
primary_action: "去补资料",
},
{
order_id: 2,
order_no: "AXY202604190012",
appraisal_no: "AXY-APP-20260419-0012",
order_status: "pending_shipping",
product_name: "Air Jordan 1 High OG",
product_cover: "",
service_provider: "anxinyan",
display_status: "鉴定师处理中",
status_desc: "鉴定师正在处理,预计 24 小时内出具报告",
estimated_finish_time: "2026-04-20 20:00:00",
primary_action: "查看进度",
},
{
order_id: 3,
order_no: "AXY202604180088",
appraisal_no: "AXY-APP-20260418-0088",
order_status: "completed",
product_name: "Rolex Datejust 36",
product_cover: "",
service_provider: "zhongjian",
display_status: "报告已出具",
status_desc: "正式报告可查看并验真",
estimated_finish_time: "2026-04-18 20:00:00",
primary_action: "查看报告",
},
];
export const orderDetailFallback: OrderDetailData = {
order_info: {
order_id: 1,
order_no: "AXY202604200001",
appraisal_no: "AXY-APP-20260420-0001",
service_provider: "zhongjian",
order_status: "pending_supplement",
display_status: "等待您补充资料",
status_desc: "鉴定师需要您补充 2 项资料后继续处理,建议尽快完成。",
estimated_finish_time: "2026-04-21 18:00:00",
can_edit_return_address: true,
},
product_info: {
product_name: "Louis Vuitton 奢侈品箱包",
category_name: "奢侈品箱包",
brand_name: "Louis Vuitton",
color: "老花",
size_spec: "MM",
serial_no: "AR2199",
},
extra_info: {
purchase_channel: "专柜",
purchase_price: 12600,
purchase_date: "2026-03-16",
usage_status: "light_use",
usage_status_text: "轻微使用痕迹",
condition_desc: "包身轻微折痕,五金边缘有轻微使用痕迹。",
has_accessories: true,
accessories: ["防尘袋", "包装盒", "发票 / 小票"],
remark: "包内附有购买小票和防尘袋,编号位于内袋皮标附近。",
},
materials: [
{
upload_item_id: 11,
item_code: "bag_front",
item_name: "正面整体图",
is_required: true,
source_type: "initial",
source_type_text: "下单资料",
status: "uploaded",
status_text: "已上传",
file_count: 2,
files: [
{
file_id: "mock-bag-front-1",
file_url: "https://dummyimage.com/1200x1200/f3ede2/9b8358&text=Bag+Front+1",
thumbnail_url: "https://dummyimage.com/320x320/f3ede2/9b8358&text=Front+1",
quality_status: "uploaded",
quality_message: "",
},
{
file_id: "mock-bag-front-2",
file_url: "https://dummyimage.com/1200x1200/efe7d9/9b8358&text=Bag+Front+2",
thumbnail_url: "https://dummyimage.com/320x320/efe7d9/9b8358&text=Front+2",
quality_status: "uploaded",
quality_message: "",
},
],
},
{
upload_item_id: 12,
item_code: "serial_label",
item_name: "编码 / 标签图",
is_required: true,
source_type: "supplement",
source_type_text: "补充资料",
status: "uploaded",
status_text: "已上传",
file_count: 1,
files: [
{
file_id: "mock-serial-1",
file_url: "https://dummyimage.com/1200x1200/f7f1e6/9b8358&text=Serial+Label",
thumbnail_url: "https://dummyimage.com/320x320/f7f1e6/9b8358&text=Serial",
quality_status: "uploaded",
quality_message: "",
},
],
},
],
return_address: {
user_address_id: 1,
consignee: "安心验体验用户",
mobile: "13800000000",
province: "广东省",
city: "深圳市",
district: "南山区",
detail_address: "科技园测试路 88 号",
full_address: "广东省深圳市南山区科技园测试路 88 号",
},
return_logistics: null,
timeline: [
{ node_code: "created", node_text: "下单成功", node_desc: "订单已生成并完成支付", occurred_at: "2026-04-20 09:12:00" },
{ node_code: "submitted", node_text: "资料已提交", node_desc: "用户已完成首轮资料上传", occurred_at: "2026-04-20 09:30:00" },
{ node_code: "first_review", node_text: "鉴定中", node_desc: "鉴定师正在进行专业判断", occurred_at: "2026-04-20 10:20:00" },
{ node_code: "supplement", node_text: "待补资料", node_desc: "鉴定师需要补充编码近照与五金细节图", occurred_at: "2026-04-20 11:16:00" },
],
supplement_task: {
task_id: 1,
reason: "鉴定师需要补充编码近照与五金细节图,以继续完成判断。",
deadline: "2026-04-21 18:00:00",
items: [
{ item_code: "serial_label", item_name: "编码 / 标签图", guide_text: "请补充清晰近照,确保编码内容完整可辨认。" },
{ item_code: "hardware_detail", item_name: "五金细节图", guide_text: "请避免反光与遮挡,完整拍摄边缘与刻印细节。" },
],
},
available_actions: {
primary_action: "去补资料",
secondary_action: "联系客服",
},
};
export const shippingDetailFallback: ShippingDetailData = {
order_info: {
order_id: 4,
order_no: "AXY20260420212747131",
appraisal_no: "AXY-APP-20260420-2326",
service_provider: "anxinyan",
display_status: "待寄送商品",
estimated_finish_time: "2026-04-22 21:27:47",
product_name: "Neverfull MM",
},
shipping_address: {
warehouse_id: 1,
warehouse_name: "安心验鉴定中心",
warehouse_code: "AXY-WH-DEFAULT",
receiver_name: "安心验鉴定中心",
receiver_mobile: "400-800-1314",
province: "广东省",
city: "深圳市",
district: "南山区",
detail_address: "科技园鉴定路 88 号 安心验收件中心",
service_time: "周一至周日 09:30-18:30",
notice: "寄送前请确认订单信息完整,包裹内附上订单号可提升签收后的处理效率。",
},
shipping_options: {
current_warehouse_id: 1,
can_select_warehouse: true,
list: [
{
id: 1,
warehouse_name: "安心验鉴定中心",
warehouse_code: "AXY-WH-DEFAULT",
warehouse_type: "detection_center",
warehouse_type_text: "检测中心 / 收货仓库",
service_provider: "anxinyan",
service_provider_text: "实物鉴定",
receiver_name: "安心验鉴定中心",
receiver_mobile: "400-800-1314",
province: "广东省",
city: "深圳市",
district: "南山区",
detail_address: "科技园鉴定路 88 号 安心验收件中心",
full_address: "广东省深圳市南山区科技园鉴定路 88 号 安心验收件中心",
service_time: "周一至周日 09:30-18:30",
notice: "寄送前请确认订单信息完整,包裹内附上订单号可提升签收后的处理效率。",
supported_category_ids: [],
supported_category_names: [],
status: "enabled",
status_text: "启用中",
is_default: true,
is_recommended: true,
recommended_reason: "默认仓库",
sort_order: 1,
remark: "默认仓库",
created_at: "2026-04-20 20:44:00",
updated_at: "2026-04-20 20:44:00",
},
],
},
shipping_notice: {
tips: [
"请在包裹内附上订单号或鉴定单号,便于鉴定中心快速匹配。",
"贵重商品建议使用顺丰、京东等可追踪快递,并保留寄件凭证。",
"寄出后请尽快填写快递公司和运单号,我们会同步更新处理进度。",
],
express_recommendations: ["顺丰速运", "京东快递", "EMS", "中通快递"],
},
logistics_info: {
express_company: "",
tracking_no: "",
tracking_status: "",
tracking_status_text: "待提交",
latest_desc: "",
latest_time: "",
is_submitted: false,
},
logistics_nodes: [],
can_submit_tracking: true,
};
export const addressesFallback: UserAddressItem[] = [
{
id: 1,
consignee: "安心验体验用户",
mobile: "13800000000",
province: "广东省",
city: "深圳市",
district: "南山区",
detail_address: "科技园测试路 88 号",
full_address: "广东省深圳市南山区科技园测试路 88 号",
is_default: true,
created_at: "2026-04-20 20:44:00",
updated_at: "2026-04-20 20:44:00",
},
{
id: 2,
consignee: "备用收件人",
mobile: "13900000000",
province: "广东省",
city: "广州市",
district: "天河区",
detail_address: "员村四横路 12 号",
full_address: "广东省广州市天河区员村四横路 12 号",
is_default: false,
created_at: "2026-04-20 20:44:00",
updated_at: "2026-04-20 20:44:00",
},
];
export const reportsFallback: ReportListItem[] = [
{
report_id: 1,
order_id: 3,
report_no: "AXY-R-20260420-0001",
product_name: "Rolex Datejust 36",
product_cover: "",
service_provider: "zhongjian",
status: "已出报告",
result_text: "正品",
institution_name: "中检合作机构",
publish_time: "2026-04-18 18:26:00",
},
{
report_id: null,
order_id: 2,
report_no: "",
product_name: "Air Jordan 1 High OG",
product_cover: "",
service_provider: "anxinyan",
status: "待出报告",
result_text: "待出报告",
institution_name: "安心验",
publish_time: "",
},
];
export const reportDetailFallback: ReportDetailData = {
evidence_attachments: [],
zhongjian_report_files: [],
report_media: {
images: [
{
file_id: "mock-report-image-1",
file_url: "https://dummyimage.com/1200x900/efe7df/8b1f2f&text=Appraisal+Image",
thumbnail_url: "https://dummyimage.com/480x360/efe7df/8b1f2f&text=Appraisal",
name: "鉴定图片",
file_type: "image",
mime_type: "image/jpeg",
},
],
},
product_display: {
product_name: "Rolex 腕表",
institution_name: "中检鉴定中心",
items: [
{ label: "检测结论", value: "正品", remark: "综合当前送检资料与商品特征判断,符合正品特征。" },
{ label: "品牌", value: "Rolex" },
{ label: "主体颜色", value: "银盘" },
],
},
trace_info: {
visible: false,
nodes: [
{
code: "inbound",
title: "入仓",
occurred_at: "2026-04-18 12:10:00",
status: "completed",
assets: [],
},
{
code: "appraisal",
title: "鉴定",
occurred_at: "2026-04-18 16:00:00",
status: "completed",
assets: [],
},
{
code: "return",
title: "寄回",
occurred_at: "",
status: "pending",
assets: [],
},
],
},
report_header: {
report_id: 1,
report_no: "AXY-R-20260420-0001",
report_type: "appraisal",
report_title: "中检鉴定报告",
report_status: "published",
service_provider: "zhongjian",
institution_name: "中检鉴定中心",
publish_time: "2026-04-18 18:26:00",
zhongjian_report_no: "ZJ-20260418-0001",
report_entry_admin_name: "王师傅",
report_entered_at: "2026-04-18 18:20:00",
trace_info_visible: false,
},
result_info: {
result_status: "authentic",
result_text: "正品",
result_desc: "综合当前送检资料与商品特征判断,符合正品特征。",
},
product_info: {
product_name: "Rolex 腕表",
category_name: "腕表",
brand_name: "Rolex",
color: "银盘",
size_spec: "36mm",
},
appraisal_info: {
service_provider: "zhongjian",
institution_name: "中检合作机构",
appraiser_name: "张师傅",
reviewer_name: "李师傅",
appraisal_time: "2026-04-18 16:00:00",
},
valuation_info: {
condition_grade: "A",
condition_desc: "整体状态良好,存在轻微使用痕迹。",
valuation_min: 2800,
valuation_max: 3200,
valuation_desc: "当前估值仅供参考,具体以市场流通情况为准。",
},
risk_notice_text: "本报告基于送检商品及当前提交资料出具。若商品状态或所附资料发生变化,报告结论可能不再适用。",
verify_info: {
report_no: "AXY-R-20260420-0001",
verify_status: "",
verify_url: "",
verify_qrcode_url: "",
},
file_info: {
pdf_url: "",
},
};
export const verifyFallback: VerifyData = {
verify_status: "valid",
verify_message: "该报告真实有效,可作为对应鉴定结果参考。",
evidence_attachments: [],
report_summary: {
report_no: "AXY-R-20260420-0001",
institution_name: "中检合作机构",
publish_time: "2026-04-18 18:26:00",
},
product_summary: {
product_name: "Rolex 腕表",
category_name: "腕表",
brand_name: "Rolex",
},
result_summary: {
result_text: "正品",
},
};
export const messageSummaryFallback: MessageSummaryData = {
total_count: 3,
unread_count: 2,
category_counts: {
all: 3,
order: 2,
report: 1,
supplement: 0,
ticket: 0,
},
latest_title: "报告已出具",
latest_time: "2026-04-20 20:55:17",
};
export const helpCenterFallback: HelpCenterData = {
categories: [
{ code: "all", title: "全部", desc: "查看全部帮助文章", count: 6 },
{ code: "service", title: "服务流程", desc: "了解下单、寄送、鉴定流程", count: 2 },
{ code: "report", title: "报告验真", desc: "了解报告查看、下载与验真", count: 1 },
{ code: "shipping", title: "寄送物流", desc: "了解寄送、运单和签收说明", count: 1 },
{ code: "support", title: "售后支持", desc: "了解补资料、工单和客服协助", count: 2 },
],
articles: [
{
id: 1,
title: "实物鉴定和中检鉴定有什么区别?",
category: "service",
category_text: "服务流程",
summary: "两种服务的核心流程一致,差异主要体现在出具机构、时效与价格上。",
keywords: ["实物鉴定", "中检鉴定", "服务区别"],
updated_at: "2026-04-21 09:00:00",
is_recommended: true,
},
{
id: 2,
title: "一般多久可以出结果?",
category: "service",
category_text: "服务流程",
summary: "标准版通常 48 小时左右,具体取决于服务类型、资料完整度和物流节点。",
keywords: ["时效", "出结果", "多久"],
updated_at: "2026-04-21 09:00:00",
is_recommended: true,
},
{
id: 3,
title: "报告如何验证真伪?",
category: "report",
category_text: "报告验真",
summary: "正式报告出具后,可通过报告详情页或验真页输入编号进行验证。",
keywords: ["报告", "验真", "验证真伪"],
updated_at: "2026-04-21 09:00:00",
is_recommended: true,
},
],
};
export const helpArticleDetailFallback: HelpArticleDetailData = {
article: {
id: 1,
title: "实物鉴定和中检鉴定有什么区别?",
category: "service",
category_text: "服务流程",
summary: "两种服务的核心流程一致,差异主要体现在出具机构、时效与价格上。",
keywords: ["实物鉴定", "中检鉴定", "服务区别"],
updated_at: "2026-04-21 09:00:00",
is_recommended: true,
content_blocks: [
"实物鉴定和中检鉴定都会经过下单、填写信息、上传资料、寄送商品、鉴定和查看报告这几个核心步骤。",
"两者最大的区别在于出具机构不同。实物鉴定由安心验提供标准实物鉴定服务;中检鉴定由更高规格合作机构提供服务,适合对机构资质有更高要求的场景。",
"中检鉴定通常价格更高、时效也会略长一些。下单前建议先根据您的使用场景、预算和时效要求选择合适服务。",
],
},
related_articles: [
{
id: 2,
title: "一般多久可以出结果?",
category: "service",
category_text: "服务流程",
summary: "标准版通常 48 小时左右,具体取决于服务类型、资料完整度和物流节点。",
keywords: ["时效", "出结果", "多久"],
updated_at: "2026-04-21 09:00:00",
is_recommended: true,
},
],
};
export const settingsFallback: SettingsData = {
profile_info: {
user_id: 1,
nickname: "安心验体验用户",
mobile: "13800000000",
avatar: "",
status: "enabled",
status_text: "账号正常",
password_set: false,
},
preferences: {
notify_order: true,
notify_report: true,
notify_supplement: true,
notify_ticket: true,
marketing_notify: false,
privacy_mode: false,
},
legal_entries: [
{
code: "privacy_policy",
title: "隐私说明",
desc: "了解平台如何处理您的订单与联系方式信息",
target_url: "/pages/help/index?q=%E9%9A%90%E7%A7%81",
},
{
code: "service_notice",
title: "服务与通知说明",
desc: "了解消息提醒、工单回复与服务相关通知逻辑",
target_url: "/pages/help/index?q=%E6%9C%8D%E5%8A%A1",
},
],
};
export const messagesFallback: UserMessageListData = {
list: [
{
id: 3,
title: "报告已出具",
content: "您的正式报告已生成,可前往报告中心查看并完成验真。",
biz_type: "report",
biz_type_text: "报告通知",
category: "report",
category_text: "报告",
biz_id: 1,
is_read: false,
created_at: "2026-04-20 20:55:17",
target_url: "/pages/report/detail?id=1",
target_label: "查看报告",
},
{
id: 2,
title: "请补充鉴定资料",
content: "鉴定师需要您补充资料后继续处理,请尽快进入订单详情查看。",
biz_type: "order",
biz_type_text: "订单通知",
category: "order",
category_text: "订单",
biz_id: 1,
is_read: false,
created_at: "2026-04-20 11:16:00",
target_url: "/pages/order/detail?id=1",
target_label: "查看订单",
},
{
id: 1,
title: "订单提交成功",
content: "您的鉴定订单已提交成功,可前往订单中心查看进度。",
biz_type: "order",
biz_type_text: "订单通知",
category: "order",
category_text: "订单",
biz_id: 1,
is_read: true,
created_at: "2026-04-20 09:12:00",
target_url: "/pages/order/detail?id=1",
target_label: "查看订单",
},
],
summary: {
total_count: 3,
unread_count: 2,
category_counts: {
all: 3,
order: 2,
report: 1,
supplement: 0,
ticket: 0,
},
current_count: 3,
current_category: "all",
unread_only: false,
},
};
export const ticketOverviewFallback: TicketOverviewCard[] = [
{ title: "全部工单", value: 2, desc: "您当前已提交的全部客服工单" },
{ title: "待处理", value: 1, desc: "客服待处理或正在跟进中的工单" },
{ title: "已解决", value: 1, desc: "已处理完成的工单数量" },
{ title: "工单留言", value: 4, desc: "您与客服之间的全部沟通记录" },
];
export const ticketsFallback: UserTicketListItem[] = [
{
id: 2,
ticket_no: "TK202604200002",
ticket_type: "report_issue",
ticket_type_text: "报告问题",
status: "pending",
status_text: "待处理",
priority: "normal",
priority_text: "普通",
title: "报告内容咨询",
order_id: 3,
latest_message: "请问 A 级和估值区间的口径是什么?",
updated_at: "2026-04-20 12:11:00",
created_at: "2026-04-20 12:10:00",
},
{
id: 1,
ticket_no: "TK202604200001",
ticket_type: "upload_issue",
ticket_type_text: "上传问题",
status: "processing",
status_text: "处理中",
priority: "high",
priority_text: "高优先级",
title: "补图说明咨询",
order_id: 1,
latest_message: "您好,请优先拍摄标签整体区域,再补一张放大近照,保证编码内容完整可辨认。",
updated_at: "2026-04-20 11:25:00",
created_at: "2026-04-20 11:18:00",
},
];
export const ticketDetailFallback: UserTicketDetailData = {
ticket_info: {
id: 1,
ticket_no: "TK202604200001",
ticket_type: "upload_issue",
ticket_type_text: "上传问题",
status: "processing",
status_text: "处理中",
priority: "high",
priority_text: "高优先级",
title: "补图说明咨询",
content: "我不确定编码标签应该怎么拍,担心影响鉴定结果。",
order_id: 1,
created_at: "2026-04-20 11:18:00",
updated_at: "2026-04-20 11:25:00",
},
order_info: {
order_id: 1,
order_no: "AXY202604200001",
display_status: "等待您补充资料",
},
messages: [
{
sender_type: "user",
sender_type_text: "您",
content: "我不确定编码标签应该怎么拍,担心影响鉴定结果。",
attachments: [],
created_at: "2026-04-20 11:18:00",
},
{
sender_type: "customer_service",
sender_type_text: "客服",
content: "您好,请优先拍摄标签整体区域,再补一张放大近照,保证编码内容完整可辨认。",
attachments: [],
created_at: "2026-04-20 11:25:00",
},
],
};