员工和用户整合前暂存
This commit is contained in:
204
src/api/mock/employee.js
Normal file
204
src/api/mock/employee.js
Normal file
@@ -0,0 +1,204 @@
|
||||
// 模拟员工数据
|
||||
const mockEmployees = [
|
||||
{
|
||||
id: 1,
|
||||
name: '张伟',
|
||||
gender: '男',
|
||||
age: 28,
|
||||
education: '本科',
|
||||
department: '运营部',
|
||||
entry_date: '2023-03-15',
|
||||
position: '运营主管',
|
||||
salary: 8500.00,
|
||||
phone: '13800138001',
|
||||
email: 'zhangwei@mxbc.com',
|
||||
status: 1,
|
||||
remark: '负责门店日常运营',
|
||||
created_at: '2023-03-15 09:00:00',
|
||||
updated_at: '2023-03-15 09:00:00'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '李娜',
|
||||
gender: '女',
|
||||
age: 25,
|
||||
education: '专科',
|
||||
department: '销售部',
|
||||
entry_date: '2023-06-01',
|
||||
position: '销售专员',
|
||||
salary: 6000.00,
|
||||
phone: '13800138002',
|
||||
email: 'lina@mxbc.com',
|
||||
status: 1,
|
||||
remark: '',
|
||||
created_at: '2023-06-01 09:00:00',
|
||||
updated_at: '2023-06-01 09:00:00'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '王强',
|
||||
gender: '男',
|
||||
age: 32,
|
||||
education: '硕士',
|
||||
department: '技术部',
|
||||
entry_date: '2022-11-10',
|
||||
position: '技术总监',
|
||||
salary: 15000.00,
|
||||
phone: '13800138003',
|
||||
email: 'wangqiang@mxbc.com',
|
||||
status: 1,
|
||||
remark: '负责系统架构设计',
|
||||
created_at: '2022-11-10 09:00:00',
|
||||
updated_at: '2022-11-10 09:00:00'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '刘洋',
|
||||
gender: '女',
|
||||
age: 23,
|
||||
education: '本科',
|
||||
department: '市场部',
|
||||
entry_date: '2024-01-20',
|
||||
position: '市场专员',
|
||||
salary: 5500.00,
|
||||
phone: '13800138004',
|
||||
email: 'liuyang@mxbc.com',
|
||||
status: 0,
|
||||
remark: '已离职',
|
||||
created_at: '2024-01-20 09:00:00',
|
||||
updated_at: '2025-03-01 17:00:00'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
name: '赵敏',
|
||||
gender: '女',
|
||||
age: 27,
|
||||
education: '本科',
|
||||
department: '财务部',
|
||||
entry_date: '2023-09-05',
|
||||
position: '财务会计',
|
||||
salary: 7000.00,
|
||||
phone: '13800138005',
|
||||
email: 'zhaomin@mxbc.com',
|
||||
status: 1,
|
||||
remark: '',
|
||||
created_at: '2023-09-05 09:00:00',
|
||||
updated_at: '2023-09-05 09:00:00'
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
name: '陈刚',
|
||||
gender: '男',
|
||||
age: 35,
|
||||
education: '高中',
|
||||
department: '仓储部',
|
||||
entry_date: '2022-04-12',
|
||||
position: '仓库管理员',
|
||||
salary: 5000.00,
|
||||
phone: '13800138006',
|
||||
email: 'chengang@mxbc.com',
|
||||
status: 1,
|
||||
remark: '负责原料入库出库',
|
||||
created_at: '2022-04-12 09:00:00',
|
||||
updated_at: '2022-04-12 09:00:00'
|
||||
}
|
||||
]
|
||||
|
||||
// 模拟网络延迟
|
||||
const delay = (ms = 300) => new Promise(r => setTimeout(r, ms))
|
||||
|
||||
// Mock API
|
||||
export const mockEmployeeAPI = {
|
||||
// 获取列表
|
||||
async getList(params = {}) {
|
||||
await delay()
|
||||
let result = [...mockEmployees]
|
||||
|
||||
// 关键词搜索
|
||||
if (params.keyword) {
|
||||
const keyword = params.keyword.toLowerCase()
|
||||
const searchField = params.searchField || '1'
|
||||
|
||||
if (searchField === '1') {
|
||||
// ID:精确匹配
|
||||
result = result.filter(item => String(item.id) === keyword)
|
||||
} else if (searchField === '2') {
|
||||
// 姓名:模糊匹配
|
||||
result = result.filter(item => item.name.toLowerCase().includes(keyword))
|
||||
} else if (searchField === '3') {
|
||||
// 部门:模糊匹配
|
||||
result = result.filter(item => item.department.toLowerCase().includes(keyword))
|
||||
} else {
|
||||
result = result.filter(item =>
|
||||
String(item.id).includes(keyword) ||
|
||||
item.name.toLowerCase().includes(keyword) ||
|
||||
item.department.toLowerCase().includes(keyword)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// 在职状态筛选
|
||||
if (params.status !== undefined && params.status !== '') {
|
||||
result = result.filter(item => item.status === Number(params.status))
|
||||
}
|
||||
|
||||
// 部门筛选
|
||||
if (params.department) {
|
||||
result = result.filter(item => item.department === params.department)
|
||||
}
|
||||
|
||||
return { code: 200, data: result, total: result.length }
|
||||
},
|
||||
|
||||
// 获取详情
|
||||
async getDetail(id) {
|
||||
await delay()
|
||||
const employee = mockEmployees.find(item => item.id === id)
|
||||
if (employee) {
|
||||
return { code: 200, data: employee }
|
||||
}
|
||||
return { code: 404, message: '员工不存在' }
|
||||
},
|
||||
|
||||
// 新增
|
||||
async create(data) {
|
||||
await delay()
|
||||
const maxId = mockEmployees.length > 0 ? Math.max(...mockEmployees.map(item => item.id)) : 0
|
||||
const now = new Date().toISOString().replace('T', ' ').slice(0, 19)
|
||||
const newEmployee = {
|
||||
id: maxId + 1,
|
||||
status: 1,
|
||||
...data,
|
||||
created_at: now,
|
||||
updated_at: now
|
||||
}
|
||||
mockEmployees.push(newEmployee)
|
||||
return { code: 200, data: newEmployee, message: '新增成功' }
|
||||
},
|
||||
|
||||
// 更新
|
||||
async update(id, data) {
|
||||
await delay()
|
||||
const index = mockEmployees.findIndex(item => item.id === id)
|
||||
if (index !== -1) {
|
||||
mockEmployees[index] = {
|
||||
...mockEmployees[index],
|
||||
...data,
|
||||
updated_at: new Date().toISOString().replace('T', ' ').slice(0, 19)
|
||||
}
|
||||
return { code: 200, data: mockEmployees[index], message: '更新成功' }
|
||||
}
|
||||
return { code: 404, message: '员工不存在' }
|
||||
},
|
||||
|
||||
// 删除
|
||||
async delete(id) {
|
||||
await delay()
|
||||
const index = mockEmployees.findIndex(item => item.id === id)
|
||||
if (index !== -1) {
|
||||
mockEmployees.splice(index, 1)
|
||||
return { code: 200, message: '删除成功' }
|
||||
}
|
||||
return { code: 404, message: '员工不存在' }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user