ស្វែងរក និងច្រោះកំណត់ត្រា (todos) ក្នុង Blue ជាមួយនឹងជម្រើសស្វែងរក និងបញ្ជីទំព័រដ៏មានអំណាច។
បញ្ជីកំណត់ត្រា
ការស្វែងរក todos អនុញ្ញាតឱ្យអ្នកទាញយកកំណត់ត្រាពី Blue ជាមួយនឹងជម្រើសច្រោះ, រៀបចំ និងបញ្ជីទំព័រដ៏ទូលំទូលាយ។ អ្នកអាចស្វែងរកកំណត់ត្រាតាមក្រុមហ៊ុន, គម្រោង, ឬច្រោះតាមលក្ខខណ្ឌជាក់លាក់ដូចជា អ្នកចាត់តាំង, ស្លាក, និងកាលបរិច្ឆេទ។
ឧទាហរណ៍មូលដ្ឋាន
បញ្ជីកំណត់ត្រាទាំងអស់នៅក្នុងក្រុមហ៊ុនជាមួយនឹងប៉ារ៉ាម៉ែត្រស្រាល:
query ListRecords {
todoQueries {
todos(
filter: {
companyIds: ["company_123"]
}
) {
items {
id
title
done
duedAt
}
pageInfo {
totalItems
hasNextPage
}
}
}
}
ឧទាហរណ៍កម្រិតខ្ពស់
ស្វែងរកកំណត់ត្រាជាមួយនឹងការច្រោះ, រៀបចំ, និងជម្រើសវាលដ៏ទូលំទូលាយ:
query ListRecordsAdvanced {
todoQueries {
todos(
filter: {
companyIds: ["company_123"]
projectIds: ["project_456", "project_789"]
assigneeIds: ["user_123"]
tagIds: ["tag_priority", "tag_urgent"]
showCompleted: false
dueStart: "2025-01-01T00:00:00Z"
dueEnd: "2025-12-31T23:59:59Z"
search: "product launch"
excludeArchivedProjects: true
fields: [
{
type: "CUSTOM_FIELD"
customFieldId: "cf_status_123"
customFieldType: "SELECT_SINGLE"
values: ["In Progress", "Review"]
op: "IN"
}
]
op: "AND"
}
sort: [duedAt_ASC, position_ASC]
limit: 50
skip: 0
) {
items {
id
uid
position
title
text
html
startedAt
duedAt
timezone
color
cover
done
archived
createdAt
updatedAt
commentCount
checklistCount
checklistCompletedCount
isRepeating
todoList {
id
title
}
users {
id
name
email
}
tags {
id
title
color
}
customFields {
id
title
type
value
}
createdBy {
id
name
}
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
}
ប៉ារ៉ាម៉ែត្របញ្ចូល
TodosFilter
ប៉ារ៉ាម៉ែត្រ | ប្រភេទ | ត្រូវការទេ | ការពិពណ៌នា |
---|---|---|---|
companyIds |
[String!]! | ✅ បាទ | លេខសម្គាល់ក្រុមហ៊ុន ឬ slugs ដើម្បីស្វែងរក |
projectIds |
[String!] | ទេ | ច្រោះតាមលេខសម្គាល់គម្រោង ឬ slugs ជាក់លាក់ |
todoIds |
[String!] | ទេ | ទាញយក todos ជាក់លាក់តាមលេខសម្គាល់របស់ពួកវា |
assigneeIds |
[String!] | ទេ | ច្រោះតាមលេខសម្គាល់អ្នកប្រើដែលបានចាត់តាំង |
tagIds |
[String!] | ទេ | ច្រោះតាមលេខសម្គាល់ស្លាក |
tagColors |
[String!] | ទេ | ច្រោះតាមពណ៌ស្លាក (ទ្រង់ទ្រាយ hex) |
tagTitles |
[String!] | ទេ | ច្រោះតាមចំណងជើងស្លាក |
todoListIds |
[String!] | ទេ | ច្រោះតាមលេខសម្គាល់បញ្ជី todos |
todoListTitles |
[String!] | ទេ | ច្រោះតាមចំណងជើងបញ្ជី todos |
done |
Boolean | ទេ | ច្រោះតាមស្ថានភាពបញ្ចប់ (deprecated, ប្រើ showCompleted) |
showCompleted |
Boolean | ទេ | បង្ហាញ/លាក់ todos ដែលបានបញ្ចប់ (លំនាំដើម: ពិត) |
startedAt |
DateTime | ទេ | ច្រោះតាមកាលបរិច្ឆេទចាប់ផ្តើម |
duedAt |
DateTime | ទេ | ច្រោះតាមកាលបរិច្ឆេទកំណត់ជាក់លាក់ |
dueStart |
DateTime | ទេ | ចាប់ផ្តើមជួរដេកកាលបរិច្ឆេទ (រួមបញ្ចូល) |
dueEnd |
DateTime | ទេ | ចុងក្រោយជួរដេកកាលបរិច្ឆេទ (រួមបញ្ចូល) |
search |
String | ទេ | ស្វែងរកក្នុងចំណងជើង និងមាតិកាអត្ថបទ |
q |
String | ទេ | ប៉ារ៉ាម៉ែត្រស្វែងរកជាជម្រើស (ដូចជាស្វែងរក) |
excludeArchivedProjects |
Boolean | ទេ | បដិសេធ todos ពីគម្រោងដែលបានអាថ៌កំបាំង |
coordinates |
JSON | ទេ | ច្រោះតាមកន្លែងភូមិសាស្ត្រសម្រាប់មើលផែនទី (កូអូរឌីណេតពហុជ្រុង) |
fields |
JSON | ទេ | ច្រោះតាមវាលកំណត់ (មើលការច្រោះកម្រិតខ្ពស់) |
op |
FilterLogicalOperator | ទេ | ប្រើប្រាស់ប្រភេទលូតលាស់សម្រាប់វាលច្រោះ (AND/OR) |
ប៉ារ៉ាម៉ែត្រស្វែងរក
ប៉ារ៉ាម៉ែត្រ | ប្រភេទ | ត្រូវការទេ | ការពិពណ៌នា |
---|---|---|---|
filter |
TodosFilter! | ✅ បាទ | លក្ខខណ្ឌច្រោះសម្រាប់ការស្វែងរក |
sort |
[TodosSort!] | ទេ | លំដាប់រៀបចំ (លំនាំដើម: អារ៉ាយទទេ) |
limit |
Int | ទេ | ចំនួនធាតុក្នុងមួយទំព័រ (លំនាំដើម: 20, អតិបរិមា: 500) |
skip |
Int | ទេ | ចំនួនធាតុដែលត្រូវឆ្លងកាត់សម្រាប់បញ្ជីទំព័រ (លំនាំដើម: 0) |
តម្លៃ TodosSort
តម្លៃ | ការពិពណ៌នា |
---|---|
assignees_ASC |
រៀបចំតាមឈ្មោះអ្នកចាត់តាំងឡើង |
assignees_DESC |
រៀបចំតាមឈ្មោះអ្នកចាត់តាំងចុះ |
createdAt_ASC |
រៀបចំតាមកាលបរិច្ឆេទបង្កើតឡើងឡើង (ចាស់បំផុតមុន) |
createdAt_DESC |
រៀបចំតាមកាលបរិច្ឆេទបង្កើតឡើងចុះ (ថ្មីបំផុតមុន) |
createdBy_ASC |
រៀបចំតាមឈ្មោះអ្នកបង្កើតឡើងឡើង |
createdBy_DESC |
រៀបចំតាមឈ្មោះអ្នកបង្កើតឡើងចុះ |
duedAt_ASC |
រៀបចំតាមកាលបរិច្ឆេទកំណត់ឡើង (ដំណាក់កាលដំបូង) |
duedAt_DESC |
រៀបចំតាមកាលបរិច្ឆេទកំណត់ចុះ (ដំណាក់កាលចុងក្រោយ) |
position_ASC |
រៀបចំតាមទីតាំងឡើង (លំដាប់បញ្ជីលំនាំដើម) |
position_DESC |
រៀបចំតាមទីតាំងចុះ |
startedAt_ASC |
រៀបចំតាមកាលបរិច្ឆេទចាប់ផ្តើមឡើង |
startedAt_DESC |
រៀបចំតាមកាលបរិច្ឆេទចាប់ផ្តើមចុះ |
title_ASC |
រៀបចំតាមចំណងជើងតាមអក្សរឡើង |
title_DESC |
រៀបចំតាមចំណងជើងតាមអក្សរចុះ |
todoListPosition_ASC |
រៀបចំតាមទីតាំងបញ្ជី todosឡើង |
todoListPosition_DESC |
រៀបចំតាមទីតាំងបញ្ជី todos ចុះ |
todoListTitle_ASC |
រៀបចំតាមចំណងជើងបញ្ជី todosឡើង |
todoListTitle_DESC |
រៀបចំតាមចំណងជើងបញ្ជី todos ចុះ |
todoTags_ASC |
រៀបចំតាមស្លាកឡើង |
todoTags_DESC |
រៀបចំតាមស្លាកចុះ |
តម្លៃ FilterLogicalOperator
តម្លៃ | ការពិពណ៌នា |
---|---|
AND |
លក្ខខណ្ឌទាំងអស់ត្រូវតែផ្គូផ្គង |
OR |
លក្ខខណ្ឌណាមួយត្រូវតែផ្គូផ្គង |
ការច្រោះវាលផ្ទាល់ខ្លួន
ប៉ារ៉ាម៉ែត្រ fields
គាំទ្រការច្រោះកម្រិតខ្ពស់ដោយវាលផ្ទាល់ខ្លួន:
{
"fields": [
{
"type": "CUSTOM_FIELD",
"customFieldId": "cf_123",
"customFieldType": "SELECT_SINGLE",
"values": ["Option1", "Option2"],
"op": "IN"
}
]
}
រចនាសម្ព័ន្ធច្រោះវាលផ្ទាល់ខ្លួន
វាល | ប្រភេទ | ការពិពណ៌នា |
---|---|---|
type |
String | ត្រូវតែជា "CUSTOM_FIELD" |
customFieldId |
String | លេខសម្គាល់នៃវាលផ្ទាល់ខ្លួន |
customFieldType |
String | ប្រភេទនៃវាលផ្ទាល់ខ្លួន |
values |
[String!] | តម្លៃសម្រាប់ច្រោះ |
op |
String | ប្រភេទប្រៀបធៀប (IN, NOT_IN, EQ, ល) |
ប្រភេទវាលផ្ទាល់ខ្លួនដែលគាំទ្រ
- វាលអត្ថបទ:
TEXT_SINGLE
,TEXT_MULTI
,URL
,EMAIL
,PHONE
,UNIQUE_ID
- វាលលេខ:
CURRENCY
,NUMBER
,FORMULA
- វាលជ្រើសរើស:
SELECT_SINGLE
,SELECT_MULTI
,CHECKBOX
,COUNTRY
- វាលយោង:
REFERENCE
,LOOKUP
- វាលកាលបរិច្ឆេទ:
DATE
វាលឆ្លើយតប
TodosResult
វាល | ប្រភេទ | ការពិពណ៌នា |
---|---|---|
items |
[Todo!]! | អារ៉ាយនៃកំណត់ត្រា todos |
pageInfo |
PageInfo! | ព័ត៌មានមេតាដែលទាក់ទងនឹងបញ្ជីទំព័រ |
PageInfo
វាល | ប្រភេទ | ការពិពណ៌នា |
---|---|---|
totalPages |
Int | ចំនួនទំព័រទាំងអស់ដែលអាចរកបាន |
totalItems |
Int | ចំនួនធាតុសរុបនៅក្នុងទំព័រទាំងអស់ |
page |
Int | លេខទំព័របច្ចុប្បន្ន (គណនាដោយចេញពី skip/limit) |
perPage |
Int | ចំនួនធាតុក្នុងមួយទំព័រ |
hasNextPage |
Boolean! | ថាតើមានទំព័របន្ទាប់ឬអត់ |
hasPreviousPage |
Boolean! | ថាតើមានទំព័រមុនឬអត់ |
វាល Todo
វាល | ប្រភេទ | ការពិពណ៌នា |
---|---|---|
id |
ID! | អត្តសញ្ញាណឯកតា |
uid |
String! | អត្តសញ្ញាណឯកតាដែលមានភាពងាយស្រួល |
position |
Float! | ទីតាំងក្នុងបញ្ជី |
title |
String! | ចំណងជើង todo |
text |
String! | មាតិកាអត្ថបទធម្មតា |
html |
String! | មាតិកាដែលបានរៀបចំជាអត្ថបទ HTML |
startedAt |
DateTime | កាលបរិច្ឆេទ/ម៉ោងចាប់ផ្តើម |
duedAt |
DateTime | កាលបរិច្ឆេទ/ម៉ោងកំណត់ |
timezone |
String | តំបន់ពេលសម្រាប់កាលបរិច្ឆេទ |
color |
String | សញ្ញាផ្ទាំងពណ៌វិចិត្រ |
cover |
String | URL រូបភាពគម្រប |
done |
Boolean! | ស្ថានភាពបញ្ចប់ |
archived |
Boolean! | ស្ថានភាពអាថ៌កំបាំង |
createdAt |
DateTime! | ម៉ោងបង្កើត |
updatedAt |
DateTime! | ម៉ោងធ្វើបច្ចុប្បន្នភាពចុងក្រោយ |
commentCount |
Int! | ចំនួនមតិយោបល់ |
checklistCount |
Int! | ចំនួនធាតុបញ្ជីត្រង់ |
checklistCompletedCount |
Int! | ចំនួនធាតុបញ្ជីត្រង់ដែលបានបញ្ចប់ |
isRepeating |
Boolean! | ថាតើ todo មានការបន្តឬអត់ |
isRead |
Boolean | ស្ថានភាពអានសម្រាប់អ្នកប្រើបច្ចុប្បន្ន |
isSeen |
Boolean | ស្ថានភាពបានមើលសម្រាប់អ្នកប្រើបច្ចុប្បន្ន |
todoList |
TodoList! | បញ្ជី todo ម្តាយ |
users |
[User!]! | អ្នកប្រើដែលបានចាត់តាំង |
tags |
[Tag!]! | ស្លាកដែលទាក់ទង |
checklists |
[Checklist!]! | បញ្ជីត្រង់ដែលទាក់ទង |
createdBy |
User | អ្នកដែលបានបង្កើត todo |
customFields |
[CustomField!]! | តម្លៃវាលផ្ទាល់ខ្លួន |
dependOn |
[Todo!] | todos ដែលរារាំង (ការពឹងផ្អែក) |
dependBy |
[Todo!] | todos ដែលពឹងផ្អែក (ត្រូវបានរារាំងដោយនេះ) |
timeTracking |
TimeTracking | ទិន្នន័យតាមដានពេលវេលា |
អាជ្ញាប័ណ្ណដែលត្រូវការ
អ្នកប្រើត្រូវតែមានការចូលដំណើរការដែលសមស្របដើម្បីស្វែងរកកំណត់ត្រា:
ប្រភេទចូល | លក្ខខណ្ឌ |
---|---|
Company Access | User must be a member of the company |
Project Access | User must have access to specific projects (if filtering by project) |
Todo Visibility | Depends on user's role and permissions: |
- VIEW_ONLY |
Can view all accessible todos |
- COMMENT_ONLY |
Can view all accessible todos |
- CLIENT |
May be restricted to assigned todos only |
- MEMBER |
Can view all project todos |
- ADMIN |
Can view all project todos |
- OWNER |
Can view all company todos |
ការកំណត់ពិសេស:
- អ្នកប្រើដែលមាន
showOnlyAssignedTodos
អនុញ្ញាតឱ្យមើលតែ todos ដែលបានចាត់តាំងឱ្យពួកគេ - បញ្ជី todos ដែលបានលាក់ (ដោយផ្អែកលើការកំណត់តួនាទី) ត្រូវបានច្រោះដោយស្វ័យប្រវត្តិ
- អាជ្ញាប័ណ្ណដែលផ្អែកលើស្លាកអាចច្រោះលទ្ធផលបន្ថែម
ការឆ្លើយតបកំហុស
កំហុសទូទៅ
ការស្វែងរកគ្រប់គ្រងកំហុសយ៉ាងរលូន និងត្រឡប់មកវិញលទ្ធផលទទេសម្រាប់:
- លេខសម្គាល់ក្រុមហ៊ុនមិនត្រឹមត្រូវ
- គម្រោងដែលមិនអាចចូលដំណើរការ
- ស្ថានភាពអនុញ្ញាតមិនអនុញ្ញាត
សម្រាប់កំហុសធ្ងន់ធ្ងរ, កំហុស GraphQL អាចត្រូវបានត្រឡប់មកវិញ:
{
"errors": [{
"message": "Query timeout exceeded",
"extensions": {
"code": "QUERY_TIMEOUT"
}
}]
}
កំណត់សំខាន់
ការប្រតិបត្តិ
- កំណត់លំនាំដើម: 20 ធាតុក្នុងមួយទំព័រ (ត្រូវបានអនុវត្តដោយស្វ័យប្រវត្តិប្រសិនបើមិនបានកំណត់)
- កំណត់អតិបរិមា: 500 ធាតុក្នុងមួយការស្នើសុំ (ត្រូវបានកំណត់ដោយស្វ័យប្រវត្តិ)
- ការបង្កើនប្រសិទ្ធភាព: ការស្វែងរកប្រើការតភ្ជាប់ដែលបានបង្កើនជាមួយ STRAIGHT_JOIN សម្រាប់ការប្រតិបត្តិការល្អបំផុត
- ការស្វែងរក: វាលច្រោះទូទៅត្រូវបានស្វែងរកសម្រាប់ការស្វែងរកលឿន
- វាលផ្ទាល់ខ្លួន: គាំទ្រការច្រោះវាលផ្ទាល់ខ្លួនយ៉ាងទូលំទូលាយជាមួយនឹងផលប៉ះពាល់ដ៏ទាប
- ការស្វែងរកភូមិសាស្ត្រ: គាំទ្រការច្រោះតាមកូអូរឌីណេតពហុជ្រុងសម្រាប់ការមើលផែនទី
ការច្រោះកាលបរិច្ឆេទ
- ជួរដេកកាលបរិច្ឆេទត្រូវបានរួមបញ្ចូល
- គាំទ្រជួរដេកកាលបរិច្ឆេទដែលជាប់គ្នា (todos ដែលចាប់ផ្តើមឬបញ្ចប់នៅក្នុងជួរ)
- កាលបរិច្ឆេទ Null ត្រូវបានគ្រប់គ្រងយ៉ាងរលូន (todos ដែលគ្មានកាលបរិច្ឆេទកំណត់នឹងមិនផ្គូផ្គងជាមួយការច្រោះកាលបរិច្ឆេទ)
- កាលបរិច្ឆេទទាំងអស់គួរត្រូវបានសរសេរនៅក្នុងទ្រង់ទ្រាយ ISO 8601
អាកប្បកិរិយាស្វែងរក
- ការស្វែងរកគឺមិនអាស្រ័យលើករណី
- ស្វែងរកទាំងក្នុងចំណងជើង និងមាតិកាអត្ថបទ
- ការផ្គូផ្គងពាក្យផ្នែកត្រូវបានគាំទ្រ
- តួអក្សរសម្គាល់ត្រូវបានគ្រប់គ្រងយ៉ាងត្រឹមត្រូវ
យុទ្ធសាស្ត្របញ្ជីទំព័រ
- ប្រើ
skip
និងlimit
សម្រាប់ការបញ្ជីទំព័រដែលមានការប្រែប្រួល - គណនាទំព័របច្ចុប្បន្ន:
page = Math.floor(skip / limit) + 1
- សម្រាប់ទិន្នន័យធំៗ, សូមពិចារណាប្រើការច្រោះដើម្បីកាត់បន្ថយទំហំលទ្ធផល
- តែងតែពិនិត្យ
hasNextPage
មុននឹងបន្ថែម skip
ចំណុចចេញផ្សេងទៀត
- បង្កើតកំណត់ត្រា: ប្រើ mutation createTodo ដើម្បីបង្កើតកំណត់ត្រាថ្មី
- កែប្រែកំណត់ត្រា: ប្រើ mutation updateTodo ដើម្បីកែប្រែកំណត់ត្រា
- លុបកំណត់ត្រា: ប្រើ mutation deleteTodo ដើម្បីលុបកំណត់ត្រា
- បញ្ជីវាលផ្ទាល់ខ្លួន: ស្វែងរកវាលផ្ទាល់ខ្លួនដែលមានសម្រាប់ការច្រោះ
- បញ្ជីគម្រោង: ស្វែងរកគម្រោងដែលមានសម្រាប់ការច្រោះ