PicoBot/.qoder/skills/lark-base/references/lark-base-form-detail.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

2.9 KiB
Raw Blame History

base +form-detail

通过表单分享 token 读取表单详情。只读操作,适合在提交表单前解析题目结构、必填项、显示条件和附件提交所需的 Base token。

何时使用

  • 用户给出 /share/base/form/{shareToken} 表单分享链接,先提取最后一段作为 --share-token
  • 准备调用 +form-submit 前,必须先用 +form-detail 读取 questions[]
  • 只知道分享链接、还不知道 base-token / table-id / form-id 时,用 +form-detail;已在 Base 内部管理表单时,才用 +form-get
lark-cli base +form-detail --share-token <share_token> --format pretty

读取重点

+form-detail 返回的关键字段:

字段 用途
base_token 表单所属 Base提交附件时必须传给 +form-submit --base-token
questions[].id 题目标识,通常对应字段 ID
questions[].title 提交时使用的字段名/题目名,以真实返回为准
questions[].type 决定值格式;与字段类型和 lark-base-cell-value.md 对齐
questions[].required 判断必填项
questions[].filter 判断题目是否对当前提交可见;被隐藏的问题不要填写

题目除固定字段外,会按类型携带动态配置,例如 select.options / select.multiplenumber.styledatetime.style.formatuser.multiplelink.link_tableformula.expressionlookup.from/select/where/aggregate。提交前按返回结构构造值,不要猜题目类型或选项。

filter 显示条件

questions[].filter 控制题目显示/隐藏:

{
  "conjunction": "and",
  "conditions": [
    {"field_name": "是否携带家属", "operator": "is", "value": ["是"]},
    {"field_name": "参与人数", "operator": "isGreater", "value": [1]}
  ]
}
  • conjunctionand / or,表示条件全部满足或任一满足。
  • conditions[].field_name 引用其他题目的 title
  • conditions[].operator 常见为 isisNotcontainsdoesNotContainisEmptyisNotEmptyisGreaterisGreaterEqualisLessisLessEqual
  • isEmpty / isNotEmpty 不需要 value
  • 附件题目的 filter 只适合 isEmpty / isNotEmpty

如果当前已填写值不满足某题目的 filter,该题目视为隐藏,不应放入 +form-submit --json.fields--json.attachments

与 form-submit 的关系

提交普通字段:

lark-cli base +form-submit \
  --share-token <share_token> \
  --json '{"fields":{"姓名":"张三","评分":5}}'

提交附件字段:

lark-cli base +form-submit \
  --share-token <share_token> \
  --base-token <base_token_from_form_detail> \
  --json '{"fields":{"姓名":"张三"},"attachments":{"附件":["./report.pdf"]}}'

附件字段不要写进 fields;放在顶层 attachments,值为本地文件路径数组。