跳到內容

數據表格

數據表格是重要的數據可視化組件,它不僅能展示數據,還自帶行複製、單元格內聯編輯、樹形數據展平、列拖拽、Excel 導出等複雜交互功能。

ID
姓氏
姓名
職位
年齡
1
張三
35
2
李四
總經理
42
3
王五
45
4
趙六
29
5
張靜
33
每頁行數:5
1-5 共 9

工具欄位於表格的頂部,一些簡單的表格可能沒有此欄。

  • :搜索輸入框,也叫過濾輸入框,用於按條件篩選數據,查看過濾語法
  • :列管理工具,用於顯示或隱藏列
  • :重新獲取數據
  • :設置表格樣式、重設

數據行是表格的重要資訊載體,用於展示表格數據。選中後一列數據後,可以複製數據,部分表格允許複製整行數據。

狀態欄用於顯示當前表格的一些狀態,例如選中的行數、分頁資訊、分頁操作。

為了讓系統按指定的過濾條件篩選數據,可以使用數據過濾來完成這項任務,這是一種強大的功能,可以幫助快速鎖定目標數據。TooMaker 使用領域特定查詢語言(Domain-Specific Query Language,簡稱 Query DSL),相比一些使用操作面板式(利用 UI 構建的,由下拉框+預設過濾組成的面板)的過濾器,我們更偏向於結構化語義過濾,鍵盤輸入的效率原高於滑鼠點擊。當一個表格的列超過5個以後,您很難在下拉框中一眼鎖定需要的過濾的列。

<field>:[operator]<value> [logical]

類型:列欄位
必填

需要進行過濾的欄位,這部分欄位來自數據表格中的列標題,輸入框會輔助提示相應的欄位。對於跨模型的欄位,需要使用 . 做分隔符號,例如:model.field

類型= | ! | > | >= | < | <= | ~ | ^ | $ | * | [
預設值=

比較或匹配方式,操作符含義:

  • =:等於,區分大小寫。
  • >:大於。
  • >=:大於等於。
  • <:小於。
  • <=:小於等於。
  • ~:包含/模糊匹配,忽略大小寫。
  • ^:以…開頭,忽略大小寫。
  • $:以…結尾,忽略大小寫。
  • *:正則匹配,由正則語法決定是否區分大小寫。
  • [:在數據組內,必須使用 ] 結尾。
  • !:否定,與其他操作符組合使用,組合方式有:
    • !=:不等於,區分大小寫。
    • !~:不包含,忽略大小寫。
    • !^:不以…開頭,忽略大小寫。
    • !$:不以…結尾,忽略大小寫。
    • ![:不在數據組中,必須使用 ] 結尾

類型:任意,字串、數值、布林值、日期、日期+時間
必填

匹配值,也稱之為目標值。數據列中使用到的數據都可以作為匹配值使用,其中日期、時間需要使用 ISO 8601 格式,例如:2025-09-012025-09-01T00:00:002025-09-01T08:00:00+08:00

一些固定目標值:

  1. null:表示本應有數據但未被定義,表現為缺少狀態,例如一個布林值類型的數據列,通常應該只有 true | false,如果數據未定義,則表現為 null。只能與 = | != 操作符使用。
  2. empty:表示數據為空,字元類數據可以使用。只能與 = | != 操作符使用。

類型' ' | AND | OR | XOR
預設值' '(空格)

多條件組合邏輯,空格等同於 AND。可以使用 () 構建嵌套式條件組合,例如:

nickname:~Jake (age:>20 OR age:<50):暱稱包含 Jake 且年齡在 (20,50) 之間的用戶。

我們定義了一些語法糖用於簡化表達,這些語法糖通常包含了 operatorvalue 兩部分,使用時不能重複指定操作符。

用於篩選時間大於等於今天零點的數據,常見於篩選今天創建的數據,用例:

  • createdAt:@today:等效於 createdAt:>=2025-09-10T00:00:00+08:00

單位d | m | y(天、月、年)

用於快速計算早於今天的日期,常見於篩選距離今天某一段時間內的數據,用例:

  • createdAt:@today-1d:昨天,等效於 createdAt:>=2025-09-09T00:00:00+08:00
  • createdAt:@today-2m:2個月以前,等效於 createdAt:>=2025-07-10T00:00:00+08:00
  • createdAt:@today-3y:3年以前,等效於 createdAt:>=2022-09-10T00:00:00+08:00

用於快速設定在 xy 之間的閉合範圍,不支持半開半閉的範圍,可以和 @today 語法一起使用,用例:

  • age:20..50age:>=20 AND age:<=50
  • age:..50age:<=50
  • createdAt:@today-1m..@todaycreatedAt:>=2025-08-10T00:00:00+08:00 AND createdAt:<=2025-09-10T00:00:00+08:00

可選值deleted | all

用於篩選數據模型是否被歸檔,默認情況隱藏已歸檔數據。用例:

  • is:deleted:顯示已歸檔數據。
  • is:all:顯示所有數據,含已歸檔。
  • contact.is:deleted:顯示已歸檔的聯絡人。