Blue 中的專案構成了組織用戶和數據的基本框架。
列出所有專案
projectList 查詢允許您使用強大的過濾、排序和分頁選項來檢索專案。
基本範例
query ProjectListQuery {
projectList(filter: { companyIds: ["ENTER COMPANY ID"] }) {
items {
id
uid
slug
name
description
archived
color
icon
createdAt
updatedAt
allowNotification
position
unseenActivityCount
todoListsMaxPosition
lastAccessedAt
isTemplate
automationsCount
totalFileCount
totalFileSize
todoAlias
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
具有過濾和排序的進階範例
query FilteredProjectList {
projectList(
filter: {
companyIds: ["company-123", "company-456"]
archived: false
isTemplate: false
search: "marketing"
inProject: true
folderId: null # Get root-level projects only
}
sort: [position_ASC, name_ASC]
skip: 0
take: 50
) {
items {
id
name
slug
position
archived
}
totalCount
pageInfo {
totalItems
hasNextPage
}
}
}
專案字段
以下表格描述了 ProjectListQuery 中每個專案的所有可用字段:
| 字段 | 類型 | 描述 |
|---|---|---|
| id | ID! | 專案的唯一標識符 |
| uid | String! | 用戶友好的專案唯一標識符 |
| slug | String! | 專案的 URL 友好名稱 |
| name | String! | 專案的顯示名稱 |
| description | String | 專案的簡要描述 |
| archived | Boolean | 布林值,指示專案是否已存檔 |
| color | String | 與專案相關的顏色,用於視覺識別 |
| icon | String | 與專案相關的圖標,用於視覺識別 |
| image | Image | 專案封面圖片對象 |
| createdAt | DateTime! | 專案創建的時間戳 |
| updatedAt | DateTime! | 專案最後更新的時間戳 |
| allowNotification | Boolean! | 布林值,指示專案是否啟用通知 |
| position | Float! | 代表專案在列表中的位置的數值 |
| unseenActivityCount | Int! | 專案中未見活動的數量 |
| todoListsMaxPosition | Float! | 專案中待辦事項列表的最大位置值 |
| lastAccessedAt | DateTime | 專案最後訪問的時間戳 |
| isTemplate | Boolean! | 布林值,指示專案是否為模板 |
| isOfficialTemplate | Boolean! | 布林值,指示這是否是官方 Blue 模板 |
| automationsCount(isActive: Boolean) | Int! | 與專案相關的自動化數量 |
| totalFileCount | Int | 專案中的文件總數 |
| totalFileSize | Float | 專案中所有文件的總大小(以字節為單位) |
| todoAlias | String | 專案中使用的 "todo" 的自定義別名 |
| category | ProjectCategory! | 專案類別(CRM、MARKETING 等) |
| hideEmailFromRoles | [UserAccessLevel!] | 應隱藏電子郵件地址的角色數組 |
| hideStatusUpdate | Boolean | 隱藏狀態更新的布林值 |
| company | Company! | 完整的公司對象詳細信息 |
| accessLevel(userId: String) | UserAccessLevel | 獲取用戶對特定專案的訪問級別 |
| folder | Folder | 包含此專案的文件夾 |
| features | [ProjectFeature!] | 啟用的專案功能數組 |
| sequenceCustomField | CustomField | 用於序列編號的自定義字段 |
| coverConfig | TodoCoverConfig | 待辦事項封面圖片的配置 |
| hideRecordCount | Boolean | 是否隱藏記錄計數 |
| showTimeSpentInTodoList | Boolean | 是否顯示待辦事項列表中的花費時間 |
| showTimeSpentInProject | Boolean | 是否顯示專案中花費的時間 |
| todoFields | [TodoField] | 自定義待辦事項字段定義 |
注意:您可以在 GraphQL 查詢中請求這些字段的任意組合。
分頁字段
pageInfo 對象提供查詢結果的分頁詳細信息:
| 字段 | 類型 | 描述 |
|---|---|---|
| totalPages | Int | 結果的總頁數 |
| totalItems | Int | 符合查詢的專案總數 |
| page | Int | 當前頁碼 |
| perPage | Int | 每頁項目的數量 |
| hasNextPage | Boolean! | 布林值,指示是否有下一頁的結果 |
| hasPreviousPage | Boolean! | 布林值,指示是否有上一頁的結果 |
查詢參數
過濾選項 (ProjectListFilter)
| 參數 | 類型 | 必需 | 描述 |
|---|---|---|---|
companyIds |
[String!]! | ✅ 是 | 要搜索的公司 ID 或 slug 的數組 |
ids |
[String!] | 否 | 按特定專案 ID 過濾 |
archived |
Boolean | 否 | 按存檔狀態過濾(true/false) |
isTemplate |
Boolean | 否 | 過濾模板專案(true/false) |
search |
String | 否 | 按名稱搜索專案(不區分大小寫) |
folderId |
String | 否 | 按文件夾 ID 過濾。使用 null 用於根級專案 |
inProject |
Boolean | 否 | 按用戶成員資格過濾。請參見下面的說明 |
關於 inProject 過濾的注意事項:
true或undefined:返回用戶是成員的專案false:返回用戶不在的專案(需要公司擁有者許可)- 文件夾過濾(
folderId)僅在inProject不是false時有效
排序選項 (ProjectSort)
| 值 | 描述 |
|---|---|
id_ASC |
按 ID 升序排序 |
id_DESC |
按 ID 降序排序 |
name_ASC |
按名稱升序排序(A-Z) |
name_DESC |
按名稱降序排序(Z-A) |
createdAt_ASC |
按創建日期排序(最舊的在前) |
createdAt_DESC |
按創建日期排序(最新的在前) |
updatedAt_ASC |
按最後更新排序(最舊的在前) |
updatedAt_DESC |
按最後更新排序(最新的在前) |
position_ASC |
按位置升序排序* |
position_DESC |
按位置降序排序* |
*位置排序僅在查看用戶是成員的專案時可用(inProject !== false)
分頁參數
| 參數 | 類型 | 默認值 | 描述 |
|---|---|---|---|
skip |
Int | 0 | 要跳過的記錄數 |
take |
Int | 20 | 要返回的記錄數 |
重要注意事項
-
非成員專案的默認行為(
inProject: false):- 排除已存檔的專案,除非明確設置
archived過濾 - 排除模板專案,除非明確設置
isTemplate過濾
- 排除已存檔的專案,除非明確設置
-
文件夾過濾限制:
- 僅在顯示用戶的專案時有效
- 不能與
inProject: false一起使用 - 使用
folderId: null獲取不在任何文件夾中的專案
-
排序回退:
- 在查看非成員專案時忽略位置排序
- 在這種情況下回退到名稱排序
-
已棄用的參數:
orderBy,after,before,first,last已棄用- 使用
sort,skip和take替代