You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
3.0 KiB
TypeScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import Mock from 'mockjs';
import qs from 'query-string';
import setupMock from '@/utils/setupMock';
setupMock({
setup: () => {
Mock.mock(new RegExp('/api/workplace/overview-content'), () => {
const year = new Date().getFullYear();
const getLineData = () => {
return new Array(12).fill(0).map((_item, index) => ({
date: `${year}-${index + 1}`,
count: Mock.Random.natural(20000, 75000),
}));
};
return {
allContents: '15',
liveContents: '174',
increaseComments: '82',
growthRate: '4,888',
chartData: getLineData(),
};
});
const getList = () => {
const { list } = Mock.mock({
'list|100': [
{
'rank|+1': 1,
title: () =>
Mock.Random.pick([
'经济日报:财政政策要精准提升效能',
'“双12”遇冷消费者厌倦了电商平台的促销“套路”',
'致敬坚守战“疫”一线的社区工作者',
'普高还是职高?家长们陷入选校难题',
]),
pv: function () {
return 500000 - 3200 * this.rank;
},
increase: '@float(-1, 1)',
},
],
});
return list;
};
const listText = getList();
const listPic = getList();
const listVideo = getList();
Mock.mock(new RegExp('/api/workplace/popular-contents'), (params) => {
const {
page = 1,
pageSize = 5,
category = 0,
} = qs.parseUrl(params.url).query as unknown as {
page?: number;
pageSize?: number;
category?: number;
};
const list = [listText, listPic, listVideo][Number(category)];
return {
list: list.slice((page - 1) * pageSize, page * pageSize),
total: 100,
};
});
Mock.mock(new RegExp('/api/workplace/content-percentage'), () => {
return [
{
type: '纯文本',
count: 148564,
percent: 0.16,
},
{
type: '图文类',
count: 334271,
percent: 0.36,
},
{
type: '视频类',
count: 445695,
percent: 0.48,
},
];
});
Mock.mock(new RegExp('/api/workplace/announcement'), () => {
return [
{
type: 'activity',
key: '1',
content: '组件库新增10+个组件'
},
{
type: 'info',
key: '2',
content: '定时任务执行成功1次失败0次。'
},
{
type: 'notice',
key: '3',
content: '当前产品试用期即将结束,如需续费请点击查看。',
},
{
type: 'notice',
key: '4',
content: '1 月新系统升级计划通知',
},
{
type: 'info',
key: '5',
content: '新增内容已经通过审核,详情请点击查看。',
},
];
});
},
});