7.6 KiB
字段类型 config 规范(field create / table create / field update)
适用命令:
dws aitable field create、dws aitable table create --fields、dws aitable field update --config本文件是 DWS AI 表格字段 config 的 source of truth。创建/更新字段时,必须严格按此规范构造 JSON。
1. 顶层规则
table create --fields和field create --fields中每个字段对象:{"fieldName":"xxx", "type":"xxx", "config":{...}}field create --name --type --config中 config 单独传 JSON 字符串field update --config只传 config 部分- 不需要 config 的类型(如 text、checkbox、attachment)可省略 config 字段
2. 字段类型速查
| type | 需要 config | config 核心字段 | 说明 |
|---|---|---|---|
text |
❌ | — | 纯文本 |
number |
可选 | formatter |
数字格式 |
singleSelect |
✅ | options |
单选 |
multipleSelect |
✅ | options |
多选 |
date |
可选 | formatter |
日期格式 |
currency |
可选 | currencyType, formatter |
货币 |
progress |
可选 | formatter, min, max, customizeRange |
进度条 |
rating |
可选 | min, max, icon |
评分 |
checkbox |
❌ | — | 勾选框 |
user |
可选 | multiple |
人员 |
department |
可选 | multiple |
部门 |
group |
可选 | multiple |
群组 |
url |
❌ | — | 链接 |
richText |
❌ | — | 富文本 |
telephone |
❌ | — | 电话 |
email |
❌ | — | 邮箱 |
attachment |
❌ | — | 附件 |
geolocation |
❌ | — | 地理位置 |
formula |
✅ | formula |
公式(只读字段) |
unidirectionalLink |
✅ | linkedTableId, multiple |
单向关联 |
bidirectionalLink |
✅ | linkedTableId, multiple |
双向关联 |
creator |
❌ | — | 系统字段:创建人(只读) |
lastModifier |
❌ | — | 系统字段:最后编辑人(只读) |
createdTime |
❌ | — | 系统字段:创建时间(只读) |
lastModifiedTime |
❌ | — | 系统字段:最后编辑时间(只读) |
3. 各类型 config 详解
3.1 number(数字)
config 字段:formatter
可选值:
INT— 整数FLOAT_1— 1 位小数FLOAT_2— 2 位小数(默认)FLOAT_3— 3 位小数FLOAT_4— 4 位小数THOUSAND— 千分位整数THOUSAND_FLOAT— 千分位 + 小数PERCENT— 百分比(整数)PERCENT_FLOAT— 百分比(小数)
{"fieldName": "工时", "type": "number", "config": {"formatter": "FLOAT_2"}}
{"fieldName": "完成率", "type": "number", "config": {"formatter": "PERCENT"}}
3.2 singleSelect / multipleSelect(单选 / 多选)
config 字段:options(必填)
options 结构:
options是数组,每项至少包含name- 创建时只传
name,id由系统生成 - 更新时:已有选项必须回传原
id(从field get获取),新增选项不传 id
{
"fieldName": "优先级",
"type": "singleSelect",
"config": {
"options": [
{"name": "紧急"},
{"name": "高"},
{"name": "中"},
{"name": "低"}
]
}
}
更新已有字段时(保留原选项 + 新增):
{
"options": [
{"id": "opt_existing_1", "name": "紧急"},
{"id": "opt_existing_2", "name": "高"},
{"id": "opt_existing_3", "name": "中"},
{"name": "极低"}
]
}
更新 options 是全量覆盖,不是追加!不传的旧选项会被删除,关联的单元格数据丢失。
3.3 date(日期)
config 字段:formatter
可选值:
YYYY-MM-DD(默认)YYYY-MM-DD HH:mmYYYY-MM-DD HH:mm:ssYYYY/MM/DDYYYY/MM/DD HH:mm
{"fieldName": "截止日期", "type": "date", "config": {"formatter": "YYYY-MM-DD"}}
{"fieldName": "创建时间", "type": "date", "config": {"formatter": "YYYY-MM-DD HH:mm"}}
3.4 currency(货币)
config 字段:currencyType(必填)、formatter(可选)
currencyType 可选值:
CNY | HKD | USD | EUR | GBP | MOP | VND | JPY | KRW | AED | AUD | BRL | CAD | CHF | INR | IDR | MXN | MYR | PHP | PLN | RUB | SGD | THB | TRY | TWD
formatter 可选值(控制小数位):INT | FLOAT_1 | FLOAT_2(默认)| FLOAT_3 | FLOAT_4
{"fieldName": "预算", "type": "currency", "config": {"currencyType": "CNY", "formatter": "FLOAT_2"}}
3.5 progress(进度)
config 字段:formatter(固定为 PERCENT)、customizeRange、min、max
- 默认范围:0~1(即 0%~100%)
- 自定义范围时
customizeRange必须为true
{"fieldName": "完成度", "type": "progress", "config": {"formatter": "PERCENT"}}
自定义范围:
{"fieldName": "进度", "type": "progress", "config": {"formatter": "PERCENT", "customizeRange": true, "min": 0, "max": 1}}
3.6 rating(评分)
config 字段:min、max、icon
min:固定为1max:1~10,默认5icon:默认star
{"fieldName": "满意度", "type": "rating", "config": {"min": 1, "max": 5, "icon": "star"}}
3.7 user / department / group(人员 / 部门 / 群组)
config 字段:multiple
multiple:true(多选,默认)|false(单选)
{"fieldName": "负责人", "type": "user", "config": {"multiple": false}}
{"fieldName": "协作部门", "type": "department", "config": {"multiple": true}}
3.8 formula(公式)
config 字段:formula(必填)
- 公式中引用字段使用方括号 + 字段名:
[字段名] - 支持的函数:参考钉钉 AI 表格公式文档
{"fieldName": "合计", "type": "formula", "config": {"formula": "[单价] * [数量]"}}
{"fieldName": "是否逾期", "type": "formula", "config": {"formula": "IF([截止日期] < NOW(), \"是\", \"否\")"}}
⚠️ formula 字段创建后为只读,不能通过 record create/update 写入值。
3.9 unidirectionalLink(单向关联)
config 字段:linkedTableId(必填)、multiple
linkedTableId:目标表的 tableIdmultiple:true(多选,默认)|false(单选)
{"fieldName": "关联项目", "type": "unidirectionalLink", "config": {"linkedTableId": "tblXXXXXX", "multiple": true}}
3.10 bidirectionalLink(双向关联)
config 字段:linkedTableId(必填)、multiple
- 与单向关联参数相同
- 创建后系统会自动在被关联表创建反向字段
{"fieldName": "关联任务", "type": "bidirectionalLink", "config": {"linkedTableId": "tblYYYYYY", "multiple": true}}
4. AI 字段(ai-config)
AI 字段不使用 config,而使用独立的 --ai-config 参数。详见 aitable-field.md 中的 AI 字段创建示例。
核心规则:
outputType必须与--type对应:text→text, select→singleSelect, multiSelect→multipleSelect, number→number, currency→currency, image/video→attachmentprompt中必须至少包含一个fieldRef引用- 纯文本 prompt 会被后端拒绝
5. 常见错误
| 错误 | 说明 |
|---|---|
| options 更新时不传已有选项的 id | 会被视为新选项,旧选项被删除,关联数据丢失 |
| options 更新时只传新增项 | 全量覆盖,旧选项全部丢失 |
| formula 字段尝试写入值 | 只读字段,record create/update 会报错 |
| linkedTableId 传表名而非 ID | 必须传 tableId(如 tblXXX),不接受表名 |
| progress 值写入 50 表示 50% | 实际应写入 0.5(range 0~1) |
| rating 值超出 max | 写入会报错 |