页面提交

This commit is contained in:
FlowerWater
2025-11-29 17:20:17 +08:00
parent 95832a6288
commit 0eb8ac9181
50 changed files with 8471 additions and 63 deletions

37
src/mock/address.ts Normal file
View File

@@ -0,0 +1,37 @@
import type { Address } from '@/typings/mall'
/**
* 地址模拟数据
*/
export const mockAddressList: Address[] = [
{
id: 'addr_001',
name: '张三',
phone: '13800138000',
province: '广东省',
city: '深圳市',
district: '南山区',
detail: '科技园南区深南大道10000号',
isDefault: true,
},
{
id: 'addr_002',
name: '李四',
phone: '13900139000',
province: '广东省',
city: '广州市',
district: '天河区',
detail: '珠江新城花城大道88号',
isDefault: false,
},
{
id: 'addr_003',
name: '王五',
phone: '13700137000',
province: '北京市',
city: '北京市',
district: '朝阳区',
detail: '建国路99号',
isDefault: false,
},
]

31
src/mock/banner.ts Normal file
View File

@@ -0,0 +1,31 @@
import type { Banner } from '@/typings/mall'
/**
* 轮播图模拟数据
*/
export const mockBannerList: Banner[] = [
{
id: 'banner_001',
image: 'https://picsum.photos/750/400?random=banner1',
title: '春季新品上市',
goodsId: 'goods_001',
},
{
id: 'banner_002',
image: 'https://picsum.photos/750/400?random=banner2',
title: '数码产品大促',
goodsId: 'goods_004',
},
{
id: 'banner_003',
image: 'https://picsum.photos/750/400?random=banner3',
title: '美妆护肤专场',
goodsId: 'goods_010',
},
{
id: 'banner_004',
image: 'https://picsum.photos/750/400?random=banner4',
title: '家居好物推荐',
goodsId: 'goods_008',
},
]

55
src/mock/category.ts Normal file
View File

@@ -0,0 +1,55 @@
import type { Category } from '@/typings/mall'
/**
* 分类模拟数据
*/
export const mockCategoryList: Category[] = [
{
id: 'cat_001',
name: '服装',
icon: 'i-carbon-clothing',
cover: 'https://picsum.photos/200/200?random=cat1',
},
{
id: 'cat_002',
name: '数码',
icon: 'i-carbon-phone',
cover: 'https://picsum.photos/200/200?random=cat2',
},
{
id: 'cat_003',
name: '食品',
icon: 'i-carbon-restaurant',
cover: 'https://picsum.photos/200/200?random=cat3',
},
{
id: 'cat_004',
name: '家居',
icon: 'i-carbon-home',
cover: 'https://picsum.photos/200/200?random=cat4',
},
{
id: 'cat_005',
name: '美妆',
icon: 'i-carbon-face-satisfied',
cover: 'https://picsum.photos/200/200?random=cat5',
},
{
id: 'cat_006',
name: '运动',
icon: 'i-carbon-basketball',
cover: 'https://picsum.photos/200/200?random=cat6',
},
{
id: 'cat_007',
name: '图书',
icon: 'i-carbon-book',
cover: 'https://picsum.photos/200/200?random=cat7',
},
{
id: 'cat_008',
name: '母婴',
icon: 'i-carbon-baby',
cover: 'https://picsum.photos/200/200?random=cat8',
},
]

168
src/mock/finance.ts Normal file
View File

@@ -0,0 +1,168 @@
import { SettlementStatus, WriteOffStatus } from '@/typings/mall'
import type { CreditLimit, Settlement, WriteOff } from '@/typings/mall'
/**
* 信用额度模拟数据
*/
export const mockCreditLimitList: CreditLimit[] = [
{
merchantId: 'merchant_a',
merchantName: '商户A',
totalLimit: 100000,
usedLimit: 99900,
availableLimit: 100,
updateTime: '2025-11-28 10:00:00',
},
{
merchantId: 'merchant_b',
merchantName: '商户B',
totalLimit: 50000,
usedLimit: 12000,
availableLimit: 38000,
updateTime: '2025-11-28 10:00:00',
},
]
/**
* 应结账款模拟数据
*/
export const mockSettlementList: Settlement[] = [
// 未结账款
{
id: 'settlement_001',
orderNo: 'ORD20251128001',
merchantId: 'merchant_a',
merchantName: '商户A',
amount: 5000,
status: SettlementStatus.UNSETTLED,
dueDate: '2025-12-15',
relatedOrders: ['ORD20251128001', 'ORD20251128002'],
},
{
id: 'settlement_002',
orderNo: 'ORD20251125001',
merchantId: 'merchant_a',
merchantName: '商户A',
amount: 8000,
status: SettlementStatus.UNSETTLED,
dueDate: '2025-12-10',
relatedOrders: ['ORD20251125001'],
},
{
id: 'settlement_003',
orderNo: 'ORD20251120001',
merchantId: 'merchant_b',
merchantName: '商户B',
amount: 3000,
status: SettlementStatus.UNSETTLED,
dueDate: '2025-12-05',
relatedOrders: ['ORD20251120001', 'ORD20251120002', 'ORD20251120003'],
},
{
id: 'settlement_004',
orderNo: 'ORD20251115001',
merchantId: 'merchant_b',
merchantName: '商户B',
amount: 4500,
status: SettlementStatus.OVERDUE,
dueDate: '2025-11-30',
relatedOrders: ['ORD20251115001'],
},
// 新增:昨天到期(逾期)
{
id: 'settlement_new_001',
orderNo: 'ORD20251128999',
merchantId: 'merchant_a',
merchantName: '商户A',
amount: 1200,
status: SettlementStatus.OVERDUE,
dueDate: '2025-11-28',
relatedOrders: ['ORD20251128999'],
},
// 新增:明天到期
{
id: 'settlement_new_002',
orderNo: 'ORD20251129001',
merchantId: 'merchant_b',
merchantName: '商户B',
amount: 2800,
status: SettlementStatus.UNSETTLED,
dueDate: '2025-11-30',
relatedOrders: ['ORD20251129001'],
},
// 已结账款
{
id: 'settlement_005',
orderNo: 'ORD20251110001',
merchantId: 'merchant_a',
merchantName: '商户A',
amount: 6000,
status: SettlementStatus.SETTLED,
dueDate: '2025-11-25',
settlementDate: '2025-11-22',
relatedOrders: ['ORD20251110001'],
},
{
id: 'settlement_006',
orderNo: 'ORD20251105001',
merchantId: 'merchant_a',
merchantName: '商户A',
amount: 7500,
status: SettlementStatus.SETTLED,
dueDate: '2025-11-20',
settlementDate: '2025-11-18',
relatedOrders: ['ORD20251105001', 'ORD20251105002'],
},
{
id: 'settlement_007',
orderNo: 'ORD20251101001',
merchantId: 'merchant_b',
merchantName: '商户B',
amount: 2500,
status: SettlementStatus.SETTLED,
dueDate: '2025-11-15',
settlementDate: '2025-11-12',
relatedOrders: ['ORD20251101001'],
},
]
/**
* 消账记录模拟数据
*/
export const mockWriteOffList: WriteOff[] = [
{
id: 'writeoff_001',
settlementId: 'settlement_005',
amount: 6000,
proof: [
'https://picsum.photos/400/300?random=proof1',
'https://picsum.photos/400/300?random=proof2',
],
remark: '已完成付款,请查收',
submitTime: '2025-11-22 14:30:00',
status: WriteOffStatus.APPROVED,
},
{
id: 'writeoff_002',
settlementId: 'settlement_006',
amount: 7500,
proof: [
'https://picsum.photos/400/300?random=proof3',
],
remark: '转账凭证',
submitTime: '2025-11-18 10:15:00',
status: WriteOffStatus.APPROVED,
},
{
id: 'writeoff_003',
settlementId: 'settlement_001',
amount: 5000,
proof: [
'https://picsum.photos/400/300?random=proof4',
],
remark: '部分付款',
submitTime: '2025-11-28 09:00:00',
status: WriteOffStatus.PENDING,
},
]

238
src/mock/goods.ts Normal file
View File

@@ -0,0 +1,238 @@
import type { Goods } from '@/typings/mall'
/**
* 商品模拟数据
*/
export const mockGoodsList: Goods[] = [
// 服装类商品
{
id: 'goods_001',
shopId: 'merchant_a',
shopName: '商户A',
name: '2024春季新款连衣裙',
cover: 'https://picsum.photos/400/400?random=1',
images: [
'https://picsum.photos/800/800?random=1',
'https://picsum.photos/800/800?random=2',
'https://picsum.photos/800/800?random=3',
],
price: 299,
originalPrice: 599,
stock: 100,
sales: 1234,
description: '优质面料,舒适透气,修身显瘦,适合春夏季节穿着。',
specs: [
{ name: '颜色', values: ['黑色', '白色', '红色'] },
{ name: '尺码', values: ['S', 'M', 'L', 'XL'] },
],
tags: ['新品', '热销'],
categoryId: 'cat_001',
categoryName: '服装',
},
{
id: 'goods_002',
shopId: 'merchant_a',
shopName: '商户A',
name: '男士休闲T恤',
cover: 'https://picsum.photos/400/400?random=4',
images: [
'https://picsum.photos/800/800?random=4',
'https://picsum.photos/800/800?random=5',
],
price: 89,
originalPrice: 159,
stock: 200,
sales: 856,
description: '纯棉面料,柔软舒适,经典百搭款式。',
specs: [
{ name: '颜色', values: ['白色', '灰色', '黑色', '蓝色'] },
{ name: '尺码', values: ['M', 'L', 'XL', 'XXL'] },
],
tags: ['热销'],
categoryId: 'cat_001',
categoryName: '服装',
},
{
id: 'goods_003',
shopId: 'merchant_a',
shopName: '商户A',
name: '女士牛仔裤',
cover: 'https://picsum.photos/400/400?random=6',
images: [
'https://picsum.photos/800/800?random=6',
'https://picsum.photos/800/800?random=7',
],
price: 199,
originalPrice: 399,
stock: 150,
sales: 678,
description: '高腰设计,显瘦修身,弹力面料,穿着舒适。',
specs: [
{ name: '颜色', values: ['浅蓝', '深蓝', '黑色'] },
{ name: '尺码', values: ['25', '26', '27', '28', '29'] },
],
tags: ['推荐'],
categoryId: 'cat_001',
categoryName: '服装',
},
// 数码类商品
{
id: 'goods_004',
shopId: 'merchant_b',
shopName: '商户B',
name: '无线蓝牙耳机',
cover: 'https://picsum.photos/400/400?random=8',
images: [
'https://picsum.photos/800/800?random=8',
'https://picsum.photos/800/800?random=9',
],
price: 299,
originalPrice: 499,
stock: 80,
sales: 2345,
description: '主动降噪,长续航,高音质,支持快充。',
specs: [
{ name: '颜色', values: ['白色', '黑色'] },
],
tags: ['新品', '热销'],
categoryId: 'cat_002',
categoryName: '数码',
},
{
id: 'goods_005',
shopId: 'merchant_b',
shopName: '商户B',
name: '智能手表',
cover: 'https://picsum.photos/400/400?random=10',
images: [
'https://picsum.photos/800/800?random=10',
'https://picsum.photos/800/800?random=11',
],
price: 899,
originalPrice: 1299,
stock: 50,
sales: 567,
description: '健康监测,运动追踪,消息提醒,长续航。',
specs: [
{ name: '颜色', values: ['黑色', '银色', '金色'] },
{ name: '表带', values: ['硅胶', '皮革', '金属'] },
],
tags: ['新品'],
categoryId: 'cat_002',
categoryName: '数码',
},
// 食品类商品
{
id: 'goods_006',
shopId: 'merchant_a',
shopName: '商户A',
name: '进口零食大礼包',
cover: 'https://picsum.photos/400/400?random=12',
images: [
'https://picsum.photos/800/800?random=12',
'https://picsum.photos/800/800?random=13',
],
price: 128,
originalPrice: 198,
stock: 300,
sales: 1890,
description: '多种口味,营养健康,适合全家分享。',
specs: [],
tags: ['热销', '推荐'],
categoryId: 'cat_003',
categoryName: '食品',
},
{
id: 'goods_007',
shopId: 'merchant_a',
shopName: '商户A',
name: '有机坚果礼盒',
cover: 'https://picsum.photos/400/400?random=14',
images: [
'https://picsum.photos/800/800?random=14',
'https://picsum.photos/800/800?random=15',
],
price: 168,
originalPrice: 268,
stock: 120,
sales: 456,
description: '精选优质坚果,营养丰富,送礼佳品。',
specs: [
{ name: '规格', values: ['500g', '1000g'] },
],
tags: ['推荐'],
categoryId: 'cat_003',
categoryName: '食品',
},
// 家居类商品
{
id: 'goods_008',
shopId: 'merchant_b',
shopName: '商户B',
name: '北欧风格台灯',
cover: 'https://picsum.photos/400/400?random=16',
images: [
'https://picsum.photos/800/800?random=16',
'https://picsum.photos/800/800?random=17',
],
price: 159,
originalPrice: 299,
stock: 90,
sales: 234,
description: '简约设计,护眼光源,适合卧室书房。',
specs: [
{ name: '颜色', values: ['白色', '木色'] },
],
tags: ['新品'],
categoryId: 'cat_004',
categoryName: '家居',
},
{
id: 'goods_009',
shopId: 'merchant_b',
shopName: '商户B',
name: '四件套床上用品',
cover: 'https://picsum.photos/400/400?random=18',
images: [
'https://picsum.photos/800/800?random=18',
'https://picsum.photos/800/800?random=19',
],
price: 299,
originalPrice: 599,
stock: 150,
sales: 789,
description: '纯棉面料,柔软亲肤,多种花色可选。',
specs: [
{ name: '尺寸', values: ['1.5m床', '1.8m床', '2.0m床'] },
{ name: '颜色', values: ['浅灰', '深灰', '米白', '粉色'] },
],
tags: ['热销'],
categoryId: 'cat_004',
categoryName: '家居',
},
// 美妆类商品
{
id: 'goods_010',
shopId: 'merchant_a',
shopName: '商户A',
name: '保湿面霜套装',
cover: 'https://picsum.photos/400/400?random=20',
images: [
'https://picsum.photos/800/800?random=20',
'https://picsum.photos/800/800?random=21',
],
price: 399,
originalPrice: 699,
stock: 200,
sales: 1567,
description: '深层补水,改善肌肤,温和不刺激。',
specs: [],
tags: ['热销', '推荐'],
categoryId: 'cat_005',
categoryName: '美妆',
},
]

10
src/mock/index.ts Normal file
View File

@@ -0,0 +1,10 @@
/**
* Mock 数据统一导出
*/
export * from './goods'
export * from './category'
export * from './finance'
export * from './member'
export * from './banner'
export * from './address'

40
src/mock/member.ts Normal file
View File

@@ -0,0 +1,40 @@
import { MemberLevel } from '@/typings/mall'
import type { Member } from '@/typings/mall'
/**
* 会员等级配置
*/
export const memberLevelConfig = {
[MemberLevel.NORMAL]: {
name: '普通会员',
benefits: ['积分累积', '生日优惠'],
color: '#999999',
},
[MemberLevel.SILVER]: {
name: '银卡会员',
benefits: ['积分累积', '生日优惠', '专属客服', '9.5折优惠'],
color: '#C0C0C0',
},
[MemberLevel.GOLD]: {
name: '金卡会员',
benefits: ['积分累积', '生日优惠', '专属客服', '9折优惠', '免运费'],
color: '#FFD700',
},
[MemberLevel.PLATINUM]: {
name: '白金会员',
benefits: ['积分累积', '生日优惠', '专属客服', '8.5折优惠', '免运费', '优先发货'],
color: '#E5E4E2',
},
}
/**
* 会员模拟数据
*/
export const mockMember: Member = {
id: 'member_001',
userId: 'user_001',
level: MemberLevel.GOLD,
points: 3580,
expireDate: '2026-11-28',
benefits: memberLevelConfig[MemberLevel.GOLD].benefits,
}