數據表格
數據表格是重要的數據可視化組件,它不僅能展示數據,還自帶行複製、單元格內聯編輯、樹形數據展平、列拖拽、Excel 導出等複雜交互功能。
數據表格範例
Section titled “數據表格範例”工具欄位於表格的頂部,一些簡單的表格可能沒有此欄。
- :搜索輸入框,也叫過濾輸入框,用於按條件篩選數據,查看過濾語法
- :列管理工具,用於顯示或隱藏列
- :重新獲取數據
- :設置表格樣式、重設
數據行是表格的重要資訊載體,用於展示表格數據。選中後一列數據後,可以複製數據,部分表格允許複製整行數據。
狀態欄用於顯示當前表格的一些狀態,例如選中的行數、分頁資訊、分頁操作。
為了讓系統按指定的過濾條件篩選數據,可以使用數據過濾來完成這項任務,這是一種強大的功能,可以幫助快速鎖定目標數據。TooMaker 使用領域特定查詢語言(Domain-Specific Query Language,簡稱 Query DSL),相比一些使用操作面板式(利用 UI 構建的,由下拉框+預設過濾組成的面板)的過濾器,我們更偏向於結構化語義過濾,鍵盤輸入的效率原高於滑鼠點擊。當一個表格的列超過5個以後,您很難在下拉框中一眼鎖定需要的過濾的列。
<field>:[operator]<value> [logical]類型:列欄位
必填
需要進行過濾的欄位,這部分欄位來自數據表格中的列標題,輸入框會輔助提示相應的欄位。對於跨模型的欄位,需要使用 . 做分隔符號,例如:model.field。
operator
Section titled “operator”類型:= | ! | > | >= | < | <= | ~ | ^ | $ | * | [
預設值:=
比較或匹配方式,操作符含義:
=:等於,區分大小寫。>:大於。>=:大於等於。<:小於。<=:小於等於。~:包含/模糊匹配,忽略大小寫。^:以…開頭,忽略大小寫。$:以…結尾,忽略大小寫。*:正則匹配,由正則語法決定是否區分大小寫。[:在數據組內,必須使用]結尾。!:否定,與其他操作符組合使用,組合方式有:!=:不等於,區分大小寫。!~:不包含,忽略大小寫。!^:不以…開頭,忽略大小寫。!$:不以…結尾,忽略大小寫。![:不在數據組中,必須使用]結尾
類型:任意,字串、數值、布林值、日期、日期+時間
必填
匹配值,也稱之為目標值。數據列中使用到的數據都可以作為匹配值使用,其中日期、時間需要使用 ISO 8601 格式,例如:2025-09-01,2025-09-01T00:00:00,2025-09-01T08:00:00+08:00。
一些固定目標值:
null:表示本應有數據但未被定義,表現為缺少狀態,例如一個布林值類型的數據列,通常應該只有true | false,如果數據未定義,則表現為null。只能與= | !=操作符使用。empty:表示數據為空,字元類數據可以使用。只能與= | !=操作符使用。
logical
Section titled “logical”類型:' ' | AND | OR | XOR
預設值:' '(空格)
多條件組合邏輯,空格等同於 AND。可以使用 () 構建嵌套式條件組合,例如:
nickname:~Jake (age:>20 OR age:<50):暱稱包含 Jake 且年齡在 (20,50) 之間的用戶。
我們定義了一些語法糖用於簡化表達,這些語法糖通常包含了 operator 和 value 兩部分,使用時不能重複指定操作符。
@today
Section titled “@today”用於篩選時間大於等於今天零點的數據,常見於篩選今天創建的數據,用例:
createdAt:@today:等效於createdAt:>=2025-09-10T00:00:00+08:00
@today-<數字><單位>
Section titled “@today-<數字><單位>”單位:d | m | y(天、月、年)
用於快速計算早於今天的日期,常見於篩選距離今天某一段時間內的數據,用例:
createdAt:@today-1d:昨天,等效於createdAt:>=2025-09-09T00:00:00+08:00createdAt:@today-2m:2個月以前,等效於createdAt:>=2025-07-10T00:00:00+08:00createdAt:@today-3y:3年以前,等效於createdAt:>=2022-09-10T00:00:00+08:00
用於快速設定在 x 到 y 之間的閉合範圍,不支持半開半閉的範圍,可以和 @today 語法一起使用,用例:
age:20..50:age:>=20 AND age:<=50age:..50:age:<=50createdAt:@today-1m..@today:createdAt:>=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:顯示已歸檔的聯絡人。