140 lines
3.7 KiB
TypeScript
140 lines
3.7 KiB
TypeScript
import Mock from 'mockjs'
|
|
|
|
/**
|
|
* 全局 mock 数据
|
|
* 集中管理所有页面所需的假数据,便于查看效果
|
|
*/
|
|
|
|
// 商品分类(树形)
|
|
export const mockCategories = [
|
|
{ id: 1, name: '休闲零食', parentId: 0, level: 1, sort: 1 },
|
|
{ id: 2, name: '坚果炒货', parentId: 1, level: 2, sort: 1, icon: '' },
|
|
{ id: 3, name: '糖果巧克力', parentId: 1, level: 2, sort: 2 },
|
|
{ id: 4, name: '肉脯卤味', parentId: 1, level: 2, sort: 3 },
|
|
{ id: 5, name: '膨化食品', parentId: 1, level: 2, sort: 4 },
|
|
{ id: 6, name: '蜜饯果干', parentId: 1, level: 2, sort: 5 },
|
|
{ id: 7, name: '饮料饮品', parentId: 0, level: 1, sort: 2 }
|
|
]
|
|
|
|
// 商品列表
|
|
export const mockProducts = Mock.mock({
|
|
'list|30': [
|
|
{
|
|
'id|+1': 1,
|
|
name: '@ctitle(4, 8)',
|
|
categoryId: '@integer(2, 7)',
|
|
mainImage: Mock.Random.image('120x120', Mock.Random.color(), '#fff', 'png', '商品'),
|
|
price: '@float(10, 200, 2, 2)',
|
|
stock: '@integer(0, 999)',
|
|
sales: '@integer(0, 5000)',
|
|
status: '@integer(0, 1)',
|
|
createTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 用户列表
|
|
export const mockUsers = Mock.mock({
|
|
'list|25': [
|
|
{
|
|
'id|+1': 1001,
|
|
username: '@cname',
|
|
phone: /^1[3-9]\d{9}$/,
|
|
avatar: Mock.Random.image('80x80', Mock.Random.color(), '#fff', 'png', 'U'),
|
|
status: '@integer(0, 1)',
|
|
createTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 订单列表
|
|
export const mockOrders = Mock.mock({
|
|
'list|20': [
|
|
{
|
|
'id|+1': 1,
|
|
orderNo: 'SN@date("yyyyMMdd")@string("number", 6)',
|
|
userId: '@integer(1001, 1050)',
|
|
username: '@cname',
|
|
totalAmount: '@float(50, 800, 2, 2)',
|
|
payAmount: '@float(50, 800, 2, 2)',
|
|
status: '@integer(0, 4)',
|
|
receiverName: '@cname',
|
|
receiverPhone: /^1[3-9]\d{9}$/,
|
|
createTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 优惠券列表
|
|
export const mockCoupons = Mock.mock({
|
|
'list|12': [
|
|
{
|
|
'id|+1': 1,
|
|
name: '@ctitle(6, 12)券',
|
|
type: '@integer(0, 2)',
|
|
amount: '@float(5, 100, 0, 2)',
|
|
minAmount: '@float(0, 200, 0, 2)',
|
|
total: '@integer(100, 1000)',
|
|
remain: '@integer(0, 500)',
|
|
status: '@integer(0, 2)',
|
|
startTime: '@datetime("yyyy-MM-dd HH:mm:ss")',
|
|
endTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 公告列表
|
|
export const mockNotices = Mock.mock({
|
|
'list|10': [
|
|
{
|
|
'id|+1': 1,
|
|
title: '@ctitle(8, 18)',
|
|
type: '@integer(0, 2)',
|
|
isTop: '@integer(0, 1)',
|
|
status: '@integer(0, 1)',
|
|
startTime: '@datetime("yyyy-MM-dd HH:mm:ss")',
|
|
endTime: '@datetime("yyyy-MM-dd HH:mm:ss")',
|
|
createTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 抢购活动
|
|
export const mockSeckillActivities = Mock.mock({
|
|
'list|6': [
|
|
{
|
|
'id|+1': 1,
|
|
name: '@ctitle(6, 10) 限时抢购',
|
|
startTime: '@datetime("yyyy-MM-dd HH:mm:ss")',
|
|
endTime: '@datetime("yyyy-MM-dd HH:mm:ss")',
|
|
status: '@integer(0, 2)',
|
|
createTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 客服会话
|
|
export const mockChatSessions = Mock.mock({
|
|
'list|8': [
|
|
{
|
|
'id|+1': 1,
|
|
sessionNo: 'CS@date("yyyyMMdd")@string("number", 4)',
|
|
userId: '@integer(1001, 1100)',
|
|
username: '@cname',
|
|
adminId: null,
|
|
status: '@integer(0, 2)',
|
|
lastMessage: '@csentence(5, 12)',
|
|
unreadCount: '@integer(0, 5)',
|
|
updateTime: '@datetime("yyyy-MM-dd HH:mm:ss")'
|
|
}
|
|
]
|
|
}).list
|
|
|
|
// 仪表盘数据
|
|
export const mockDashboardStats = {
|
|
todayOrders: Mock.Random.integer(80, 200),
|
|
todaySales: Mock.Random.float(5000, 12000, 2, 2),
|
|
totalUsers: Mock.Random.integer(1500, 3000),
|
|
totalProducts: Mock.Random.integer(200, 500)
|
|
}
|