/** * 全局搜索路由 — 员工、页面、功能搜索 */ import { Router } from 'express' import prisma from '../lib/prisma' import { authMiddleware, AuthRequest } from '../middleware/auth' const router = Router() /** * GET /search?q=keyword * 全局搜索:员工、部门等 */ router.get('/', authMiddleware, async (req: AuthRequest, res, next) => { try { const q = (req.query.q as string || '').trim() if (!q || q.length < 1) { return res.json({ success: true, data: { employees: [] } }) } if (!req.user) { return res.status(401).json({ success: false, message: '未授权' }) } const orgId = req.user.orgId // 搜索员工(按姓名、工号、手机号) const employees = await prisma.employee.findMany({ where: { orgId, OR: [ { name: { contains: q } }, { employeeNo: { contains: q } }, { phone: { contains: q } }, ], status: { notIn: ['TERMINATED'] }, }, select: { id: true, name: true, department: true, position: true, employeeNo: true, }, take: 10, }) res.json({ success: true, data: { employees } }) } catch (err) { next(err) } }) export default router