97 lines
2.7 KiB
TypeScript
97 lines
2.7 KiB
TypeScript
import { Random } from 'mockjs';
|
|
import { resultSuccess, doCustomTimes } from '../_util';
|
|
|
|
const avatarList = [
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-1.jpg',
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-2.jpg',
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-3.jpg',
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-4.jpg',
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-5.jpg',
|
|
'https://img.naiveadmin.com/assets/avatar/avatar-6.jpg',
|
|
];
|
|
|
|
const coverList = [
|
|
'https://img.naiveadmin.com/assets/article/1.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/2.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/3.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/4.jpg',
|
|
'https://img.naiveadmin.com/assets/article/5.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/6.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/7.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/8.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/9.jpeg',
|
|
'https://img.naiveadmin.com/assets/article/10.jpeg',
|
|
];
|
|
|
|
const articleList = (pageSize) => {
|
|
const result: any[] = [];
|
|
doCustomTimes(pageSize, () => {
|
|
result.push({
|
|
id: '@integer(10,999999)',
|
|
title: Random.csentence(),
|
|
tags: getRandomArrayElements(
|
|
[
|
|
'有限理性',
|
|
'智商',
|
|
'情绪智力',
|
|
'心理理论',
|
|
'多动症',
|
|
'抑郁症',
|
|
'梦的解析',
|
|
'催眠',
|
|
'投射测验',
|
|
'习惯化范式',
|
|
],
|
|
2,
|
|
4,
|
|
),
|
|
summary: Random.cparagraph(),
|
|
avatar: Random.pick(avatarList),
|
|
cover: Random.pick(coverList),
|
|
author: '@cname()',
|
|
collection: Random.natural(10, 999),
|
|
like: Random.natural(10, 999),
|
|
comment: Random.natural(10, 999),
|
|
date: `@date('yyyy-MM-dd')`,
|
|
'no|100000-10000000': 100000,
|
|
});
|
|
});
|
|
return result;
|
|
};
|
|
|
|
export default [
|
|
{
|
|
url: '/api/article/list',
|
|
timeout: 1000,
|
|
method: 'get',
|
|
response: ({ query }) => {
|
|
const { page = 1, pageSize = 1 } = query;
|
|
const list = articleList(Number(pageSize));
|
|
return resultSuccess({
|
|
page: Number(page),
|
|
pageSize: Number(pageSize),
|
|
pageCount: 60,
|
|
itemCount: 60 * Number(pageSize),
|
|
list,
|
|
});
|
|
},
|
|
},
|
|
];
|
|
|
|
//从数组中取出指定个数的元素
|
|
function getRandomArrayElements(arr, start, end) {
|
|
const count = Math.floor(Math.random() * (end - start) + start);
|
|
const shuffled = arr.slice(0);
|
|
let i = arr.length;
|
|
const min = i - count;
|
|
let temp: any;
|
|
let index: number;
|
|
while (i-- > min) {
|
|
index = Math.floor((i + 1) * Math.random());
|
|
temp = shuffled[index];
|
|
shuffled[index] = shuffled[i];
|
|
shuffled[i] = temp;
|
|
}
|
|
return shuffled.slice(min);
|
|
}
|