1、ts中安装mock
npm install @types/mockjs -D
npm install mockjs -D
复制代码
2、新建mock文件
// src文件夹下
mock
├─index.ts
├─data
| └table.ts
复制代码
具体接口table.ts文件
import { Random } from 'mockjs'
interface ListType {
id: number,
name: string,
code: number,
province: string,
date: string
}
const dataList: Array<ListType> = [];
for (let i = 0; i < 100; i++) {
dataList.push({
id: i,
name: Random.cname(),
code: Random.integer(100000, 800000),
province: Random.province(),
date: Random.date(),
})
}
export default {
getList: (params: any) => {
const info = JSON.parse(params.body);
const [index, size, total] = [info.pageIndex - 1, info.pageSize, dataList.length]
const len: any = total / size
const totalPages: number = len - parseInt(len) >= 0 ? parseInt(len) + 1 : len
const newDataList: Array<ListType> = dataList.slice(index * size, (index + 1) * size)
return {
total: dataList.length,
data: newDataList,
totalPages: totalPages
}
},
update: (params: any) => {
const info = JSON.parse(params.body);
dataList[info.index] = info.data
return {
result: true,
data: 'success'
}
},
delete: (params: any) => {
const info = JSON.parse(params.body);
dataList.splice(info.index, 1);
return {
result: true,
data: 'success'
}
}
}
复制代码
index.ts文件
import Mock from 'mockjs'
import table from './data/table'
Mock.mock('/table/getList', 'post', table.getList)
Mock.mock('/table/update', 'post', table.update)
Mock.mock('/table/delete', 'post', table.delete)
export default Mock
复制代码
3、main.ts文件
if (process.env.NODE_ENV === 'development') {
require ('./mock/index.ts')
}
复制代码
4、请求封装
import request from '@/utils/request'
// 表格
export function getTableList(params: any): Promise<any> {
return request({
url: '/table/getList',
method: 'post',
data: params
})
}
export function deleteTableList(params: any): Promise<any> {
return request({
url: '/table/delete',
method: 'post',
data: params
})
}
export function updateTableList(params: any): Promise<any> {
return request({
url: '/table/update',
method: 'post',
data: params
})
}
复制代码
5、调用
import { getTableList, deleteTableList, updateTableList } from "@/api/api";
getTableList() {
let params = {
pageIndex: this.pageIndex,
pageSize: this.pageSize,
};
getTableList(params).then((res: any) => {
this.tableData = res.data;
this.total = res.total;
});
},
复制代码
项目地址:github.com/bo2bo/vue3-…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END