This commit is contained in:
eibons
2025-08-15 21:37:29 +08:00
parent 2d7f77a984
commit ce999372ae
183 changed files with 21567 additions and 5 deletions

View 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 };