当前位置:网站首页>Mock simulate the background return data with mockjs
Mock simulate the background return data with mockjs
2022-07-02 05:58:00 【Want to eat pineapple crisp】
install mockjs
npm install mockjs --save-dev
npm install @types/mockjs --save-dev
Use
Create basic reference file
establish /mock/index.ts
import Mock from "mockjs"
import homeApi from './home'
import userApi from './user'
// Set up 200-2000 Millisecond delay request data
// Mock.setup({
// timeout: '200-2000'
// })
// Home page related
// Intercept is /home/getData
Mock.mock(/\/home\/getData/, 'get', homeApi.getStatisticalData)
// User correlation
Mock.mock(/\/user\/getUser/, 'get', userApi.getUserList)
Mock.mock(/\/user\/del/, 'get', userApi.deleteUser)
Mock.mock(/\/user\/batchremove/, 'get', userApi.batchremove)
Mock.mock(/\/user\/add/, 'post', userApi.createUser)
Mock.mock(/\/user\/edit/, 'post', userApi.updateUser)
Mock.mock(/\/home\/getData/, 'get', homeApi.getStatisticalData)
establish /mock/home.ts
import Mock from 'mockjs'
// Chart data
let List: any = [];
export default {
getStatisticalData: () => {
for (let i = 0; i < 7; i++) {
List.push(
Mock.mock({
vue: Mock.Random.float(100, 8000, 0, 2),
wechat: Mock.Random.float(100, 8000, 0, 2),
ES6: Mock.Random.float(100, 8000, 0, 2),
Redis: Mock.Random.float(100, 8000, 0, 2),
React: Mock.Random.float(100, 8000, 0, 2),
springboot: Mock.Random.float(100, 8000, 0, 2)
})
)
}
return {
code: 20000,
data: {
// The pie chart
videoData: [
{
name: 'springboot',
value: Mock.Random.float(1000, 10000, 0, 2)
},
{
name: 'vue',
value: Mock.Random.float(1000, 10000, 0, 2)
},
{
name: ' Applet ',
value: Mock.Random.float(1000, 10000, 0, 2)
},
{
name: 'ES6',
value: Mock.Random.float(1000, 10000, 0, 2)
},
{
name: 'Redis',
value: Mock.Random.float(1000, 10000, 0, 2)
},
{
name: 'React',
value: Mock.Random.float(1000, 10000, 0, 2)
}
],
// Histogram
userData: [
{
date: ' Monday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Tuesday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Wednesday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Thursday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Friday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Saturday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
},
{
date: ' Sunday ',
new: Mock.Random.integer(1, 100),
active: Mock.Random.integer(100, 1000)
}
],
// Broken line diagram
orderData: {
date: ['20191001', '20191002', '20191003', '20191004', '20191005', '20191006', '20191007'],
data: List
},
tableData: [
{
name: 'ES6',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
},
{
name: ' Applet ',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
},
{
name: 'Vue',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
},
{
name: 'springboot',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
},
{
name: 'React',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
},
{
name: 'Redis',
todayBuy: Mock.Random.float(100, 1000, 0, 2),
monthBuy: Mock.Random.float(3000, 5000, 0, 2),
totalBuy: Mock.Random.float(40000, 1000000, 0, 2)
}
]
}
}
}
}
establish /mock/user.ts
import Mock from 'mockjs'
// get Request from config.url To obtain parameters ,post from config.body Get parameters in
function param2Obj(url) {
const search = url.split('?')[1]
if (!search) {
return {
}
}
return JSON.parse(
'{"' +
decodeURIComponent(search)
.replace(/"/g, '\\"')
.replace(/&/g, '","')
.replace(/=/g, '":"') +
'"}'
)
}
let List = []
const count = 200
for (let i = 0; i < count; i++) {
List.push(
Mock.mock({
id: Mock.Random.guid(),
name: Mock.Random.cname(),
addr: Mock.mock('@county(true)'),
'age|18-60': 1,
birth: Mock.Random.date(),
sex: Mock.Random.integer(0, 1)
})
)
}
export default {
/** * To obtain a list of * With parameters name, page, limt; name Can not fill , page,limit Have default values . * @param name, page, limit * @return {
{code: number, count: number, data: *[]}} */
getUserList: config => {
const {
name, page = 1, limit = 20 } = param2Obj(config.url)
console.log('name:' + name, 'page:' + page, ' Paging size limit:' + limit)
const mockList = List.filter(user => {
if (name && user.name.indexOf(name) === -1 && user.addr.indexOf(name) === -1) return false
return true
})
const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
return {
code: 20000,
count: mockList.length,
list: pageList
}
},
/** * Add user * @param name, addr, age, birth, sex * @return {
{code: number, data: {message: string}}} */
createUser: config => {
const {
name, addr, age, birth, sex } = JSON.parse(config.body)
console.log(JSON.parse(config.body))
List.unshift({
id: Mock.Random.guid(),
name: name,
addr: addr,
age: age,
birth: birth,
sex: sex
})
return {
code: 20000,
data: {
message: ' Add success '
}
}
},
/** * Delete user * @param id * @return {*} */
deleteUser: config => {
const {
id } = param2Obj(config.url)
if (!id) {
return {
code: -999,
message: ' parameter is incorrect '
}
} else {
List = List.filter(u => u.id !== id)
return {
code: 20000,
message: ' Delete successful '
}
}
},
/** * Batch deletion * @param config * @return {
{code: number, data: {message: string}}} */
batchremove: config => {
let {
ids } = param2Obj(config.url)
ids = ids.split(',')
List = List.filter(u => !ids.includes(u.id))
return {
code: 20000,
data: {
message: ' Batch deletion succeeded '
}
}
},
/** * Modify the user * @param id, name, addr, age, birth, sex * @return {
{code: number, data: {message: string}}} */
updateUser: config => {
const {
id, name, addr, age, birth, sex } = JSON.parse(config.body)
const sex_num = parseInt(sex)
List.some(u => {
if (u.id === id) {
u.name = name
u.addr = addr
u.age = age
u.birth = birth
u.sex = sex_num
return true
}
})
return {
code: 20000,
data: {
message: ' Edit success '
}
}
}
}
stay main.ts
Import basic file
main.ts
import {
createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import './mock'
createApp(App).use(store).use(router).mount('#app')
call
request("/home/getData", {
method: "get",
}).then((data) => {
console.log(data);
});
边栏推荐
- Generics and generic constraints of typescript
- Vscode paste image plugin saves image path settings
- STC8H8K系列汇编和C51实战——按键允许按键计数(利用下降沿中断控制)
- Conglin environmental protection rushes to the scientific and Technological Innovation Board: it plans to raise 2billion yuan, with an annual profit of more than 200million yuan
- Stc8h8k Series Assembly and c51 Real combat - NIXIE TUBE displays ADC, Key Series port reply Key number and ADC value
- Huawei Hongmeng OS, is it OK?
- PHP development and testing WebService (soap) -win
- OLED12864 液晶屏
- 【论文翻译】GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
- 我所理解的DRM显示框架
猜你喜欢
深度学习分类网络 -- AlexNet
Fundamentals of software testing
Lingyunguang rushes to the scientific innovation board: the annual accounts receivable reaches 800million. Dachen and Xiaomi are shareholders
3D printer G code command: complete list and tutorial
ESP8266与STC8H8K单片机联动——天气时钟
Test case
神机百炼3.54-染色法判定二分图
死磕大屏UI,FineReport开发日记
CNN可视化技术 -- CAM & Grad-CAM详解及pytorch简洁实现
Alibaba: open source and self-developed liquid cooling data center technology
随机推荐
Test case
[PHP是否安装了 SOAP 扩]对于php实现soap代理的一个常见问题:Class ‘SoapClient‘ not found in PHP的处理方法
php获取cpu使用率、硬盘使用、内存使用
js判断移动端还是pc端
JWT工具类
Thunder on the ground! Another domestic 5g chip comes out: surpass Huawei and lead the world in performance?
【C语言】筛选法求素数
深度学习分类网络--Network in Network
神机百炼3.54-染色法判定二分图
数理统计与机器学习
Common websites for Postgraduates in data mining
TI毫米波雷达学习(一)
深度学习分类网络 -- AlexNet
Cambrian was reduced by Paleozoic venture capital and Zhike shengxun: a total of more than 700million cash
VSCode paste image插件保存图片路径设置
How vite is compatible with lower version browsers
mysql的约束总结
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四
[Chongqing Guangdong education] selected reading reference materials of British and American literature of Nanyang Normal University
PHP read file (read the specified line containing a string in the file)