snack-mall/admin-snack/src/mock/data.ts

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)
}