init
This commit is contained in:
231
cool-admin-vue/packages/crud/src/test/service.ts
Normal file
231
cool-admin-vue/packages/crud/src/test/service.ts
Normal file
@@ -0,0 +1,231 @@
|
||||
import { assign, orderBy } from "lodash-es";
|
||||
import { uuid } from "../utils";
|
||||
|
||||
const userList = [
|
||||
{
|
||||
id: 1,
|
||||
name: "楚行云",
|
||||
createTime: "1996-09-14",
|
||||
wages: 73026,
|
||||
status: 1,
|
||||
account: "chuxingyun",
|
||||
occupation: 4,
|
||||
phone: 13797353874
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "秦尘",
|
||||
createTime: "1977-11-09",
|
||||
wages: 74520,
|
||||
status: 0,
|
||||
account: "qincheng",
|
||||
occupation: 3,
|
||||
phone: 18593911044
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "叶凡",
|
||||
createTime: "1982-11-28",
|
||||
wages: 81420,
|
||||
status: 0,
|
||||
account: "yefan",
|
||||
occupation: 1,
|
||||
phone: 16234136338
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "白小纯",
|
||||
createTime: "2012-12-17",
|
||||
wages: 65197,
|
||||
status: 1,
|
||||
account: "baixiaochun",
|
||||
occupation: 2,
|
||||
phone: 16325661110
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
name: "韩立",
|
||||
createTime: "1982-07-10",
|
||||
wages: 99107,
|
||||
status: 1,
|
||||
account: "hanli",
|
||||
occupation: 2,
|
||||
phone: 18486594866
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
name: "唐三",
|
||||
createTime: "2019-07-31",
|
||||
wages: 80658,
|
||||
status: 1,
|
||||
account: "tangsan",
|
||||
occupation: 5,
|
||||
phone: 15565014642
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
name: "王林",
|
||||
createTime: "2009-07-26",
|
||||
wages: 57408,
|
||||
status: 1,
|
||||
account: "wanglin",
|
||||
occupation: 1,
|
||||
phone: 13852767084
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
name: "李强",
|
||||
createTime: "2016-04-26",
|
||||
wages: 71782,
|
||||
status: 1,
|
||||
account: "liqiang",
|
||||
occupation: 3,
|
||||
phone: 18365332834
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
name: "秦羽",
|
||||
createTime: "1984-01-18",
|
||||
wages: 87860,
|
||||
status: 1,
|
||||
account: "qinyu",
|
||||
occupation: 0,
|
||||
phone: 18149247129
|
||||
}
|
||||
];
|
||||
|
||||
class TestService {
|
||||
// 分页列表
|
||||
async page(params: any) {
|
||||
const { keyWord, page, size, sort, order } = params || {};
|
||||
|
||||
// 关键字查询
|
||||
const keyWordLikeFields = ["phone", "name"];
|
||||
|
||||
// 等值查询
|
||||
const fieldEq = ["createTime", "occupation", "status"];
|
||||
|
||||
// 模糊查询
|
||||
const likeFields = ["phone", "name"];
|
||||
|
||||
// 过滤后的列表
|
||||
const list = orderBy(userList, order, sort).filter((e: any) => {
|
||||
let f = true;
|
||||
|
||||
if (keyWord !== undefined) {
|
||||
f = !!keyWordLikeFields.find((k) => String(e[k]).includes(String(params.keyWord)));
|
||||
}
|
||||
|
||||
fieldEq.forEach((k) => {
|
||||
if (f) {
|
||||
if (params[k] !== undefined) {
|
||||
f = e[k] == params[k];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
likeFields.forEach((k) => {
|
||||
if (f) {
|
||||
if (params[k] !== undefined) {
|
||||
f = String(e[k]).includes(String(params[k]));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return f;
|
||||
});
|
||||
|
||||
return new Promise((resolve) => {
|
||||
// 模拟延迟
|
||||
setTimeout(() => {
|
||||
resolve({
|
||||
list: list.slice((page - 1) * size, page * size),
|
||||
pagination: {
|
||||
total: list.length,
|
||||
page,
|
||||
size
|
||||
},
|
||||
subData: {
|
||||
wages: list.reduce((a, b) => {
|
||||
return a + b.wages;
|
||||
}, 0)
|
||||
}
|
||||
});
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
|
||||
// 更新
|
||||
async update(params: { id: any; [key: string]: any }) {
|
||||
const item = userList.find((e) => e.id == params.id);
|
||||
|
||||
if (item) {
|
||||
assign(item, params);
|
||||
}
|
||||
}
|
||||
|
||||
// 新增
|
||||
async add(params: any) {
|
||||
const id = uuid();
|
||||
|
||||
userList.push({
|
||||
id,
|
||||
...params
|
||||
});
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
// 详情
|
||||
async info(params: { id: any }) {
|
||||
const { id } = params || {};
|
||||
return userList.find((e) => e.id == id);
|
||||
}
|
||||
|
||||
// 删除
|
||||
async delete(params: { ids: any[] }) {
|
||||
const { ids = [] } = params || {};
|
||||
|
||||
ids.forEach((id) => {
|
||||
const index = userList.findIndex((e) => e.id == id);
|
||||
userList.splice(index, 1);
|
||||
});
|
||||
}
|
||||
|
||||
// 全部列表
|
||||
async list() {
|
||||
return userList;
|
||||
}
|
||||
|
||||
search = {
|
||||
fieldEq: [
|
||||
{
|
||||
propertyName: "occupation",
|
||||
comment: "工作",
|
||||
source: "a.occupation"
|
||||
}
|
||||
],
|
||||
fieldLike: [
|
||||
{
|
||||
propertyName: "status",
|
||||
comment: "状态",
|
||||
dict: ["关闭", "开启"],
|
||||
source: "a.status"
|
||||
}
|
||||
],
|
||||
keyWordLikeFields: [
|
||||
{
|
||||
propertyName: "name",
|
||||
comment: "姓名",
|
||||
source: "a.name"
|
||||
},
|
||||
{
|
||||
propertyName: "phone",
|
||||
comment: "手机号",
|
||||
source: "a.phone"
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
export { TestService };
|
Reference in New Issue
Block a user