TTeamDesk 学习手册

src/server/ticket-filter.ts

此代码来自构建时的仓库快照。修改源码后重新构建即可更新。

ts
import type { Prisma, MemberRole } from '@/generated/prisma/client';
import type { ExportFilters } from '@/shared/tasks';

// 列表和导出共用过滤逻辑,防止异步导出遗漏客户归属条件或团队条件。
export function ticketWhere(
  teamId: string,
  member: { id: string; userId: string; role: MemberRole },
  filters: Partial<ExportFilters>,
  scopeCreatorId?: string | null,
): Prisma.TicketWhereInput {
  return {
    teamId,
    ...(scopeCreatorId || member.role === 'CUSTOMER'
      ? { creatorId: scopeCreatorId ?? member.userId }
      : {}),
    ...(filters.status ? { status: filters.status } : {}),
    ...(filters.priority ? { priority: filters.priority } : {}),
    ...(filters.q
      ? { title: { contains: filters.q, mode: 'insensitive' } }
      : {}),
    ...(filters.assignment === 'mine'
      ? { assigneeMembershipId: member.id }
      : filters.assignment === 'unassigned'
        ? { assigneeMembershipId: null }
        : {}),
  };
}

搜索教程

输入关键词,搜索全部章节。

阅读设置

外观
正文字号

从一张工单出发,读懂数据如何流转。

设置与进度仅保存在当前浏览器。