@amaster.ai/pi-lark 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/lark-apps/SKILL.md +59 -14
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-automation.md +80 -2
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -5
- package/skills/lark-apps/references/lark-apps-create.md +6 -4
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +1 -1
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
- package/skills/lark-apps/references/lark-apps-init.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +2 -2
- package/skills/lark-apps/references/lark-apps-local-dev.md +80 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-base/SKILL.md +34 -19
- package/skills/lark-base/references/lark-base-cell-value.md +3 -3
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +17 -1
- package/skills/lark-base/references/lark-base-dashboard.md +17 -4
- package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
- package/skills/lark-base/references/lark-base-data-query.md +11 -4
- package/skills/lark-base/references/lark-base-field-create.md +21 -6
- package/skills/lark-base/references/lark-base-field-json.md +9 -6
- package/skills/lark-base/references/lark-base-field-update.md +17 -1
- package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
- package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-base/references/lark-base-role-guide.md +11 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +11 -137
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +14 -8
- package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
- package/skills/lark-contact/SKILL.md +19 -3
- package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
- package/skills/lark-doc/SKILL.md +26 -61
- package/skills/lark-doc/references/genres/business-analysis.md +30 -0
- package/skills/lark-doc/references/genres/data-report.md +32 -0
- package/skills/lark-doc/references/genres/email.md +38 -0
- package/skills/lark-doc/references/genres/execution-plan.md +27 -0
- package/skills/lark-doc/references/genres/formal-doc.md +37 -0
- package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
- package/skills/lark-doc/references/genres/memo-brief.md +25 -0
- package/skills/lark-doc/references/genres/official-redhead.md +73 -0
- package/skills/lark-doc/references/genres/prd.md +26 -0
- package/skills/lark-doc/references/genres/proposal.md +24 -0
- package/skills/lark-doc/references/genres/research-report.md +32 -0
- package/skills/lark-doc/references/genres/retrospective.md +25 -0
- package/skills/lark-doc/references/genres/route-consumer.md +37 -0
- package/skills/lark-doc/references/genres/route-creative.md +36 -0
- package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
- package/skills/lark-doc/references/genres/route-marketing.md +40 -0
- package/skills/lark-doc/references/genres/route-media.md +36 -0
- package/skills/lark-doc/references/genres/route-opinion.md +38 -0
- package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
- package/skills/lark-doc/references/genres/route-platform.md +9 -0
- package/skills/lark-doc/references/genres/route-report.md +10 -0
- package/skills/lark-doc/references/genres/route-workplace.md +17 -0
- package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
- package/skills/lark-doc/references/genres/technical-doc.md +39 -0
- package/skills/lark-doc/references/genres/wechat.md +39 -0
- package/skills/lark-doc/references/genres/weekly-report.md +24 -0
- package/skills/lark-doc/references/genres/white-paper.md +32 -0
- package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
- package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
- package/skills/lark-doc/references/lark-doc-create.md +22 -48
- package/skills/lark-doc/references/lark-doc-fetch.md +84 -93
- package/skills/lark-doc/references/lark-doc-history.md +16 -15
- package/skills/lark-doc/references/lark-doc-md.md +5 -1
- package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
- package/skills/lark-doc/references/lark-doc-script.md +76 -0
- package/skills/lark-doc/references/lark-doc-update.md +70 -222
- package/skills/lark-doc/references/lark-doc-whiteboard.md +14 -17
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +46 -0
- package/skills/lark-doc/references/lark-doc-xml.md +38 -166
- package/skills/lark-drive/SKILL.md +32 -50
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
- package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +3 -3
- package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
- package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +9 -15
- package/skills/lark-drive/references/lark-drive-copy.md +87 -0
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-download.md +6 -1
- package/skills/lark-drive/references/lark-drive-export.md +3 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
- package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
- package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
- package/skills/lark-drive/references/lark-drive-search.md +7 -1
- package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
- package/skills/lark-drive/references/lark-drive-task-result.md +3 -0
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
- package/skills/lark-event/SKILL.md +8 -4
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-vc.md +8 -2
- package/skills/lark-im/SKILL.md +9 -9
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-chat-list.md +9 -2
- package/skills/lark-im/references/lark-im-chat-members-list.md +7 -4
- package/skills/lark-im/references/lark-im-chat-messages-list.md +10 -3
- package/skills/lark-im/references/lark-im-chat-search.md +9 -2
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +2 -2
- package/skills/lark-im/references/lark-im-feed-group-list.md +2 -2
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
- package/skills/lark-im/references/lark-im-flag-list.md +9 -8
- package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
- package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
- package/skills/lark-im/references/lark-im-messages-search.md +4 -5
- package/skills/lark-im/references/lark-im-threads-messages-list.md +8 -4
- package/skills/lark-mail/references/lark-mail-triage.md +19 -4
- package/skills/lark-minutes/SKILL.md +1 -1
- package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-shared/SKILL.md +3 -3
- package/skills/lark-sheets/SKILL.md +83 -82
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +13 -58
- package/skills/lark-sheets/references/lark-sheets-chart.md +2 -1
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +5 -5
- package/skills/lark-sheets/references/lark-sheets-read-data.md +80 -6
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +21 -10
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-workbook.md +4 -3
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -12
- package/skills/lark-sheets/scripts/lark_detect_subtables.py +593 -0
- package/skills/lark-sheets/scripts/lark_inspect_workbook.py +188 -0
- package/skills/lark-sheets/scripts/lark_profile_table.py +614 -0
- package/skills/lark-sheets/scripts/lark_sheet_range.py +176 -0
- package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +184 -0
- package/skills/lark-sheets/scripts/sheets_df.py +21 -3
- package/skills/lark-slides/SKILL.md +134 -104
- package/skills/lark-slides/references/asset-planning.md +6 -4
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/lark-slides-create.md +86 -66
- package/skills/lark-slides/references/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +6 -7
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +4 -27
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
- package/skills/lark-slides/references/lark-slides-replace-slide.md +22 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +33 -15
- package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +90 -32
- package/skills/lark-slides/references/planning-layer.md +11 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1415 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +539 -79
- package/skills/lark-slides/references/troubleshooting.md +26 -9
- package/skills/lark-slides/references/validation-checklist.md +55 -18
- package/skills/lark-slides/references/visual-planning.md +25 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +299 -51
- package/skills/lark-slides/scripts/sxsd_validator.py +1052 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1964 -195
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +4051 -501
- package/skills/lark-task/SKILL.md +7 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +9 -0
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-whiteboard/SKILL.md +21 -13
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +17 -16
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +7 -7
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +23 -31
- package/skills/lark-whiteboard/routes/dsl.md +11 -5
- package/skills/lark-whiteboard/routes/mermaid.md +3 -3
- package/skills/lark-whiteboard/routes/svg-edit.md +9 -6
- package/skills/lark-whiteboard/routes/svg.md +14 -7
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/mention.md +71 -0
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +6 -3
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
- package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
- package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
- package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
- package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -80
- package/skills/lark-slides/references/examples.md +0 -91
- package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
- package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -125
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -433
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Base Filter 条件结构(公共协议)
|
|
2
|
+
|
|
3
|
+
Filter 是一组「字段/操作符/值」条件的组合,用 `logic`(`and` / `or`)把多条 `conditions` 连接起来,用于描述「满足什么条件」。视图筛选 `filter`、记录读取/搜索的 `--filter-json`、表单题目显隐条件 `visible_rule` 复用同一套 tuple 结构,本文件是其公共协议(SSOT)。
|
|
4
|
+
|
|
5
|
+
## 0. 适用范围
|
|
6
|
+
|
|
7
|
+
本协议只适用于以下场景:
|
|
8
|
+
|
|
9
|
+
- `+view-set-filter` / `+view-get-filter` 的视图筛选配置。
|
|
10
|
+
- `+record-list --filter-json` / `+record-search --filter-json` 的结构化记录筛选。
|
|
11
|
+
- `+form-questions-create` / `+form-questions-update` 中的 `visible_rule` 显隐条件。
|
|
12
|
+
|
|
13
|
+
本协议**不适用于 `+data-query`**。`+data-query` 支持过滤,但使用的是 LiteQuery DSL 的 `filters` 对象结构:`{"type":1,"conjunction":"and","conditions":[{"field_name":"状态","operator":"is","value":["有效"]}]}`,不是这里的 tuple 条件 `["状态","==","有效"]`。构造 `+data-query --dsl` 时请阅读 [lark-base-data-query.md](lark-base-data-query.md) 的 FilterGroup / Condition 章节。
|
|
14
|
+
|
|
15
|
+
## 1. 顶层结构
|
|
16
|
+
|
|
17
|
+
- 必须是 JSON 对象。
|
|
18
|
+
- 顶层结构是 `{logic?, conditions?}`。
|
|
19
|
+
- `logic` 默认 `and`;推荐只用 canonical 值 `and` / `or`。
|
|
20
|
+
- `conditions` 默认空数组。
|
|
21
|
+
- 每条条件写成 tuple:`[field, operator, value?]`。
|
|
22
|
+
- `empty` / `non_empty` 可写成 2 项:`[field, "empty"]`、`[field, "non_empty"]`。
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"logic": "and",
|
|
27
|
+
"conditions": [
|
|
28
|
+
["状态", "intersects", ["Doing"]],
|
|
29
|
+
["负责人", "intersects", [{ "id": "ou_xxx" }]],
|
|
30
|
+
["截止时间", "empty"]
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
清空写法:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"conditions": []
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 2. operator
|
|
44
|
+
|
|
45
|
+
可用 operator:
|
|
46
|
+
- `==`
|
|
47
|
+
- `!=`
|
|
48
|
+
- `>`
|
|
49
|
+
- `>=`
|
|
50
|
+
- `<`
|
|
51
|
+
- `<=`
|
|
52
|
+
- `intersects`
|
|
53
|
+
- `disjoint`
|
|
54
|
+
- `empty`
|
|
55
|
+
- `non_empty`
|
|
56
|
+
|
|
57
|
+
## 3. value 写法
|
|
58
|
+
|
|
59
|
+
value 类型取决于条件引用对象(字段 / 题目)的类型。
|
|
60
|
+
|
|
61
|
+
### `text`
|
|
62
|
+
|
|
63
|
+
用字符串:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
["标题", "intersects", "发布"]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### `location`
|
|
70
|
+
|
|
71
|
+
location 筛选只按 `full_address` 字符串匹配,不能直接按经纬度筛选;优先使用 `intersects` 做包含匹配,例如查深圳:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
["位置", "intersects", "深圳"]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
不推荐写 `["位置", "==", "深圳"]` 这类精确匹配,除非确保筛选值与完整 `full_address` 完全一致。
|
|
78
|
+
|
|
79
|
+
### `number` / `auto_number`
|
|
80
|
+
|
|
81
|
+
用数字:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
["工时", ">=", 3.5]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### `select`
|
|
88
|
+
|
|
89
|
+
用选项名数组:
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
["状态", "intersects", ["Doing", "Blocked"]]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `user` / `created_by` / `updated_by`
|
|
96
|
+
|
|
97
|
+
用对象数组:
|
|
98
|
+
|
|
99
|
+
> **人员筛选:不要猜 ID。** 不知道 `open_id` 时,先用 `lark-contact` 查 id:`lark-cli contact +search-user --query "<姓名/邮箱/手机号>" --as user`。
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
["负责人", "intersects", [{ "id": "ou_xxx" }]]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### `group_chat`
|
|
106
|
+
|
|
107
|
+
用对象数组:
|
|
108
|
+
|
|
109
|
+
> **群组筛选:不要猜 ID。** 不知道 `chat_id` 时,先用 `lark-im` 搜群:`lark-cli im +chat-search --query "<群名关键词>" --as user`;取结果里的 `oc_xxx`。
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
["负责群", "intersects", [{ "id": "oc_xxx" }]]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### `link`
|
|
116
|
+
|
|
117
|
+
用记录 id 对象数组:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
["关联任务", "intersects", [{ "id": "rec_xxx" }]]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### `checkbox`
|
|
124
|
+
|
|
125
|
+
用布尔值:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
["完成", "==", true]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `datetime` / `created_at` / `updated_at`
|
|
132
|
+
|
|
133
|
+
用相对时间关键字或 `ExactDate(...)`:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
["截止时间", "==", "ExactDate(2026-01-01)"]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
["截止时间", "==", "ExactDate(2026-01-01 11:30)"]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
["截止时间", "==", "Today"]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
可用关键字:
|
|
148
|
+
- `Today`
|
|
149
|
+
- `Yesterday`
|
|
150
|
+
- `Tomorrow`
|
|
151
|
+
|
|
152
|
+
### `formula` / `lookup`
|
|
153
|
+
|
|
154
|
+
- 筛选值类型由字段计算结果类型动态决定。
|
|
155
|
+
- 拿不准时,先把 `value` 当作单个字符串填入做一次尝试。
|
|
156
|
+
- 如果报错,再按错误提示把 `value` 改成对应类型。
|
|
157
|
+
|
|
158
|
+
字符串示例:
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
["风险说明", "intersects", "高风险"]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
数字示例:
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
["汇总分", ">=", 80]
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 4. 易错点
|
|
171
|
+
|
|
172
|
+
- 不要再写旧对象风格:`{"field_name":...,"operator":...}`。
|
|
173
|
+
- `user` / `group_chat` / `link` 不要写成单个标量。
|
|
174
|
+
- `empty` / `non_empty` 不要硬塞无意义的 value。
|
|
175
|
+
- 日期条件稳定写法用 `ExactDate(...)` 或 `Today` / `Yesterday` / `Tomorrow`。
|
|
176
|
+
- `formula` / `lookup` 的 value 形状不固定;拿不准时先读当前配置或字段定义,或根据错误提示修正类型。
|
|
177
|
+
|
|
178
|
+
## 5. 参考
|
|
179
|
+
- [lookup-field-guide.md](lookup-field-guide.md)
|
|
@@ -19,10 +19,7 @@ lark-cli base +form-questions-create \
|
|
|
19
19
|
--base-token <base_token> \
|
|
20
20
|
--table-id <table_id> \
|
|
21
21
|
--form-id <form_id> \
|
|
22
|
-
--questions '[
|
|
23
|
-
{"type":"text","title":"您的姓名是?","required":true},
|
|
24
|
-
{"type":"text","title":"您的联系方式是?","required":false}
|
|
25
|
-
]'
|
|
22
|
+
--questions '[{"type":"text","title":"您的姓名是?","required":true},{"type":"text","title":"您的联系方式是?","required":false}]'
|
|
26
23
|
|
|
27
24
|
# 添加单选题(带选项)
|
|
28
25
|
lark-cli base +form-questions-create \
|
|
@@ -50,6 +47,13 @@ lark-cli base +form-questions-create \
|
|
|
50
47
|
--table-id <table_id> \
|
|
51
48
|
--form-id <form_id> \
|
|
52
49
|
--questions '[{"type":"text","title":"反馈建议","description":"更多详情请查看[帮助文档](https://example.com/help)"}]'
|
|
50
|
+
|
|
51
|
+
# 添加带显隐条件(visible_rule)的问题:当「是否需要发票」选择「是」时才显示「发票抬头」
|
|
52
|
+
lark-cli base +form-questions-create \
|
|
53
|
+
--base-token <base_token> \
|
|
54
|
+
--table-id <table_id> \
|
|
55
|
+
--form-id <form_id> \
|
|
56
|
+
--questions '[{"type":"select","title":"是否需要发票","required":true,"options":[{"name":"是","hue":"Blue"},{"name":"否","hue":"Gray"}]},{"type":"text","title":"发票抬头","visible_rule":{"logic":"and","conditions":[["是否需要发票","==","是"]]}}]'
|
|
53
57
|
```
|
|
54
58
|
|
|
55
59
|
## 参数
|
|
@@ -78,6 +82,7 @@ lark-cli base +form-questions-create \
|
|
|
78
82
|
| `multiple` | 否 | 是否多选(`select`/`user` 类型有效,bool) |
|
|
79
83
|
| `options` | 否 | 选项列表(仅 `select` 有效):`[{"name":"选项1","hue":"Blue"}]`,hue 可选:`Red`/`Orange`/`Yellow`/`Green`/`Blue`/`Purple`/`Gray` |
|
|
80
84
|
| `style` | 否 | 字段样式配置(见下方说明) |
|
|
85
|
+
| `visible_rule` | 否 | 题目显隐条件(见下方「`visible_rule` 显隐条件」) |
|
|
81
86
|
|
|
82
87
|
### `style` 字段说明
|
|
83
88
|
|
|
@@ -88,6 +93,30 @@ lark-cli base +form-questions-create \
|
|
|
88
93
|
| `number`(评分) | `{"type":"rating","icon":"star","min":1,"max":5}` | icon 可选:`star`/`heart`/`thumbsup`/`fire`/`smile`/`lightning`/`flower`/`number` |
|
|
89
94
|
| `datetime` | `{"format":"yyyy/MM/dd"}` | format 可选:`yyyy/MM/dd`、`yyyy/MM/dd HH:mm`、`MM-dd`、`MM/dd/yyyy`、`dd/MM/yyyy` |
|
|
90
95
|
|
|
96
|
+
### `visible_rule` 显隐条件
|
|
97
|
+
|
|
98
|
+
> **仅当用户明确要求为题目设置显隐条件(显示/隐藏逻辑)时,才需要读下面的结构说明;否则忽略本节。**
|
|
99
|
+
|
|
100
|
+
`visible_rule` 控制题目在表单中的显示/隐藏:当条件满足时题目显示,不满足时隐藏;不传或 `conditions` 为空数组则题目始终显示。
|
|
101
|
+
|
|
102
|
+
- **结构与视图筛选 `filter` 完全一致**,即 `{logic?, conditions?}`,共用同一套公共协议。
|
|
103
|
+
- 与视图 `filter` 唯一的区别:`conditions` 中的 `field` 引用的是**同一表单内其他题目的题目名称或题目 ID**(推荐用题目 ID 以避免重名歧义),而不是数据表字段。
|
|
104
|
+
- **只能引用前序题目**:条件只能引用排在当前题目之前的题目——创建时按 `questions` 数组顺序判定(可引用同批次更靠前的新题目或表单中已有题目),不支持循环引用。
|
|
105
|
+
- 引用的题目必须真实存在,否则会报错。
|
|
106
|
+
- 列出题目(`+form-questions-list`)会在每个题目对象中**原样返回** `visible_rule`;未设置显隐条件的题目返回 `null` 或 `conditions` 为空数组。
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"logic": "and",
|
|
111
|
+
"conditions": [
|
|
112
|
+
["是否需要发票", "==", "是"],
|
|
113
|
+
["报销金额", ">=", 1000]
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
详细的 `visible_rule` 结构(顶层规则、operator 列表、各题目类型的 value 写法)请阅读 [lark-base-filter-condition.md](lark-base-filter-condition.md)。
|
|
119
|
+
|
|
91
120
|
## 输出格式
|
|
92
121
|
|
|
93
122
|
返回创建成功的问题列表:
|
|
@@ -108,11 +137,15 @@ lark-cli base +form-questions-create \
|
|
|
108
137
|
> [!CAUTION]
|
|
109
138
|
> 这是**写入操作** — 执行前必须向用户确认。
|
|
110
139
|
|
|
111
|
-
1.
|
|
112
|
-
2.
|
|
113
|
-
3.
|
|
140
|
+
1. 先确定表单所属的真实 `table_id`,并在整个表单管理工作流中复用它;仅在 ID 缺失或归属不明确时调用 `+table-list`。
|
|
141
|
+
2. 用 `+form-questions-list` 查看现有问题。问题 `id` 是承载该问题的 `field_id`,不是独立于数据表的临时 ID。
|
|
142
|
+
3. 除非用户明确要求同名的独立问题,否则目标标题已经存在时用 `+form-questions-update` 更新必填状态、标题或描述;不要创建同名问题后再删除旧问题。
|
|
143
|
+
4. 创建确实不存在的问题,或用户明确要求的同名独立问题,并报告新建的问题 ID。
|
|
144
|
+
|
|
145
|
+
`+form-questions-delete` 会删除承载问题的数据表字段,不能删除主字段问题。不要通过“新建重复问题再删除旧问题”来替换主字段。
|
|
114
146
|
|
|
115
147
|
## 参考
|
|
116
148
|
|
|
117
149
|
- [lark-base](../SKILL.md) — 多维表格全部命令
|
|
150
|
+
- [lark-base-filter-condition.md](lark-base-filter-condition.md) — `visible_rule` / `filter` 条件结构公共协议
|
|
118
151
|
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -2,40 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
批量更新多维表格表单/问卷中的问题配置(标题、描述、是否必填、显隐条件等)。
|
|
6
|
+
|
|
7
|
+
> [!CAUTION]
|
|
8
|
+
> `+form-questions-update` 是**题目配置全量覆盖**,不是 patch。对每个传入的题目,未携带的属性会回落为默认值,显式传空字符串 / `null` / 空数组会直接写入空或清空;如果要保留现有属性,必须先用 `+form-questions-list` 查出现状,再把要保留的字段一起带回 `--questions`。
|
|
6
9
|
|
|
7
10
|
## 命令
|
|
8
11
|
|
|
9
12
|
```bash
|
|
10
|
-
#
|
|
13
|
+
# 先读取现有题目配置,作为 read-modify-write 的基线
|
|
14
|
+
lark-cli base +form-questions-list \
|
|
15
|
+
--base-token <base_token> \
|
|
16
|
+
--table-id <table_id> \
|
|
17
|
+
--form-id <form_id>
|
|
18
|
+
|
|
19
|
+
# 更新一个问题的标题,同时带回要保留的 required / description / visible_rule 等字段
|
|
11
20
|
lark-cli base +form-questions-update \
|
|
12
21
|
--base-token <base_token> \
|
|
13
22
|
--table-id <table_id> \
|
|
14
23
|
--form-id <form_id> \
|
|
15
|
-
--questions '[{"id":"q_001","title":"您的真实姓名是?"}]'
|
|
24
|
+
--questions '[{"id":"q_001","title":"您的真实姓名是?","description":"请填写真实姓名","required":true,"visible_rule":null}]'
|
|
16
25
|
|
|
17
|
-
#
|
|
26
|
+
# 同时更新多个问题;每个对象都应是该题目的目标完整配置
|
|
18
27
|
lark-cli base +form-questions-update \
|
|
19
28
|
--base-token <base_token> \
|
|
20
29
|
--table-id <table_id> \
|
|
21
30
|
--form-id <form_id> \
|
|
22
|
-
--questions '[
|
|
23
|
-
{"id":"q_001","title":"姓名(必填)","required":true},
|
|
24
|
-
{"id":"q_002","title":"联系方式","required":false}
|
|
25
|
-
]'
|
|
31
|
+
--questions '[{"id":"q_001","title":"姓名(必填)","required":true},{"id":"q_002","title":"联系方式","required":false}]'
|
|
26
32
|
|
|
27
|
-
#
|
|
33
|
+
# 更新问题描述(纯文本),同时带回要保留的 title / required / visible_rule
|
|
34
|
+
lark-cli base +form-questions-update \
|
|
35
|
+
--base-token <base_token> \
|
|
36
|
+
--table-id <table_id> \
|
|
37
|
+
--form-id <form_id> \
|
|
38
|
+
--questions '[{"id":"q_001","title":"您的姓名","description":"请填写您的真实姓名","required":true,"visible_rule":null}]'
|
|
39
|
+
# 更新问题描述(含链接),同时带回要保留的 title / required / visible_rule
|
|
28
40
|
lark-cli base +form-questions-update \
|
|
29
41
|
--base-token <base_token> \
|
|
30
42
|
--table-id <table_id> \
|
|
31
43
|
--form-id <form_id> \
|
|
32
|
-
--questions '[{"id":"q_001","description":"
|
|
33
|
-
|
|
44
|
+
--questions '[{"id":"q_001","title":"反馈建议","description":"更多说明请参考[帮助文档](https://example.com/help)","required":false,"visible_rule":null}]'
|
|
45
|
+
|
|
46
|
+
# 更新题目显隐条件(visible_rule),同时带回要保留的 title / description / required
|
|
34
47
|
lark-cli base +form-questions-update \
|
|
35
48
|
--base-token <base_token> \
|
|
36
49
|
--table-id <table_id> \
|
|
37
50
|
--form-id <form_id> \
|
|
38
|
-
--questions '[{"id":"
|
|
51
|
+
--questions '[{"id":"q_002","title":"发票抬头","description":"","required":false,"visible_rule":{"logic":"and","conditions":[["q_001","==","是"]]}}]'
|
|
52
|
+
|
|
53
|
+
# 清空题目显隐条件(使题目始终显示),同时带回要保留的 title / description / required
|
|
54
|
+
lark-cli base +form-questions-update \
|
|
55
|
+
--base-token <base_token> \
|
|
56
|
+
--table-id <table_id> \
|
|
57
|
+
--form-id <form_id> \
|
|
58
|
+
--questions '[{"id":"q_002","title":"发票抬头","description":"","required":false,"visible_rule":null}]'
|
|
39
59
|
```
|
|
40
60
|
|
|
41
61
|
## 参数
|
|
@@ -52,15 +72,46 @@ lark-cli base +form-questions-update \
|
|
|
52
72
|
|
|
53
73
|
## `--questions` 格式
|
|
54
74
|
|
|
55
|
-
每个问题对象必须包含 `id
|
|
75
|
+
每个问题对象必须包含 `id`。注意:对象不是增量 patch,而是该题目的目标完整配置;未携带字段会按服务端默认值重建。
|
|
56
76
|
|
|
57
77
|
| 字段 | 必填 | 说明 |
|
|
58
78
|
|------|------|------|
|
|
59
79
|
| `id` | **是** | 问题 ID(field_id),不可修改 |
|
|
60
|
-
| `title` | 否 |
|
|
61
|
-
| `description` | 否 |
|
|
62
|
-
| `required` | 否 |
|
|
63
|
-
| `option_display_mode` | 否 |
|
|
80
|
+
| `title` | 否 | 目标问题标题;省略会回落为字段名,传空字符串会写入空标题(若服务端允许) |
|
|
81
|
+
| `description` | 否 | 目标问题描述(纯文本或 Markdown 链接,如 `[文本](https://example.com)`);省略或传空字符串都会清空描述 |
|
|
82
|
+
| `required` | 否 | 目标是否必填;省略会回落为 `false` |
|
|
83
|
+
| `option_display_mode` | 否 | 目标选项展示方式(仅 `select` 有效):`0`=下拉,`1`=纵向(默认),`2`=横向;省略会回落默认展示方式 |
|
|
84
|
+
| `visible_rule` | 否 | 目标题目显隐条件;传完整 `{logic, conditions}` 对象覆盖,传 `null` 或省略都会清空(见下方说明) |
|
|
85
|
+
|
|
86
|
+
## 全量覆盖语义
|
|
87
|
+
|
|
88
|
+
- 先执行 `+form-questions-list`,读取被更新题目的当前 `id`、`title`、`description`、`required`、`option_display_mode`、`visible_rule`。
|
|
89
|
+
- 构造 `--questions` 时,只改用户明确要求变化的字段;所有仍要保留的字段必须按当前值一并传回。
|
|
90
|
+
- 不要用“只传要改的字段”的方式更新题目。比如只传 `{"id":"q_002","title":"新标题"}` 会让 `description` 清空、`required` 回落为 `false`、`visible_rule` 清空。
|
|
91
|
+
- 用户明确要求清空时才传空值:`description:""` 清空描述,`visible_rule:null` 清空显隐条件,`conditions:[]` 也表示无条件显示。
|
|
92
|
+
|
|
93
|
+
### `visible_rule` 显隐条件
|
|
94
|
+
|
|
95
|
+
> **仅当用户明确要求为题目设置或修改显隐条件(显示/隐藏逻辑)时,才需要读下面的结构说明;否则忽略本节。**
|
|
96
|
+
|
|
97
|
+
`visible_rule` 控制题目显示/隐藏,**结构与视图筛选 `filter` 完全一致**(`{logic?, conditions?}`),共用同一套公共协议。
|
|
98
|
+
|
|
99
|
+
- `conditions` 中的 `field` 引用**同一表单内其他题目的题目名称或题目 ID**(推荐用题目 ID)。
|
|
100
|
+
- 更新时按表单中题目的**实际顺序**判定,只能引用排在当前题目之前的题目;不支持循环引用。
|
|
101
|
+
- 更新 `visible_rule` 需传**完整**的 `{logic, conditions}` 对象(整体覆盖);要保留现有显隐条件就必须把当前 `visible_rule` 原样带回;传 `null`、省略 `visible_rule` 或传空 `conditions` 都会使题目始终显示。
|
|
102
|
+
- 列出题目(`+form-questions-list`)会在每个题目对象中**原样返回** `visible_rule`;未设置显隐条件的题目返回 `null` 或 `conditions` 为空数组。
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"logic": "and",
|
|
107
|
+
"conditions": [
|
|
108
|
+
["q_001", "==", "是"],
|
|
109
|
+
["q_003", ">=", 1000]
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
详细的 `visible_rule` 结构(顶层规则、operator 列表、各题目类型的 value 写法)请阅读 [lark-base-filter-condition.md](lark-base-filter-condition.md)。
|
|
64
115
|
|
|
65
116
|
## 输出格式
|
|
66
117
|
|
|
@@ -82,11 +133,13 @@ lark-cli base +form-questions-update \
|
|
|
82
133
|
> [!CAUTION]
|
|
83
134
|
> 这是**写入操作** — 执行前必须向用户确认。
|
|
84
135
|
|
|
85
|
-
1. 先用 `+form-questions-list` 获取现有问题及其 `id`
|
|
86
|
-
2.
|
|
87
|
-
3.
|
|
136
|
+
1. 先用 `+form-questions-list` 获取现有问题及其 `id` 和完整配置。
|
|
137
|
+
2. 以现有配置为基线,只修改用户明确要求变化的字段;要保留的字段必须原样带回。
|
|
138
|
+
3. 构造包含 `id` 和目标完整配置的更新数组。
|
|
139
|
+
4. 执行命令并报告更新结果。
|
|
88
140
|
|
|
89
141
|
## 参考
|
|
90
142
|
|
|
91
143
|
- [lark-base](../SKILL.md) — 多维表格全部命令
|
|
144
|
+
- [lark-base-filter-condition.md](lark-base-filter-condition.md) — `visible_rule` / `filter` 条件结构公共协议
|
|
92
145
|
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
通过表单分享链接填写并提交多维表格表单。仅支持分享模式(share_token),支持填写普通字段值和上传本地文件作为附件。
|
|
6
6
|
|
|
7
|
+
> **⚠️ 高风险写操作(high-risk-write):** 本命令会向表单写入并提交数据,属于高风险写操作,必须额外传递 `--yes` 进行确认,否则会返回 `confirmation_required` 错误并退出。当用户明确要求提交且目标表单无歧义时,直接附加 `--yes`,无需再次询问。
|
|
8
|
+
|
|
7
9
|
## 填写前必读:先获取表单详情
|
|
8
10
|
|
|
9
11
|
**在调用 `+form-submit` 之前,必须先使用 `+form-detail` 获取表单详情。** 原因如下:
|
|
@@ -21,10 +23,11 @@ lark-cli base +form-detail --share-token <share_token>
|
|
|
21
23
|
|
|
22
24
|
# 2️⃣ 根据返回的 questions 列表,按 type 格式化值、检查 required、判断 filter 条件
|
|
23
25
|
|
|
24
|
-
# 3️⃣
|
|
26
|
+
# 3️⃣ 再提交(高风险写操作,必须带 --yes)
|
|
25
27
|
lark-cli base +form-submit \
|
|
26
28
|
--share-token <share_token> \
|
|
27
|
-
--json '{"fields":{...}}'
|
|
29
|
+
--json '{"fields":{...}}' \
|
|
30
|
+
--yes
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
`+form-detail` 的返回中要重点读取 `questions[].type`、`questions[].required`、题目 `filter` 和附件场景所需的 `data.base_token`。
|
|
@@ -35,7 +38,8 @@ lark-cli base +form-submit \
|
|
|
35
38
|
# 基本提交(填写普通字段)
|
|
36
39
|
lark-cli base +form-submit \
|
|
37
40
|
--share-token <share_token> \
|
|
38
|
-
--json '{"fields":{"服务评分":5,"评价内容":"服务态度好"}}'
|
|
41
|
+
--json '{"fields":{"服务评分":5,"评价内容":"服务态度好"}}' \
|
|
42
|
+
--yes
|
|
39
43
|
|
|
40
44
|
# 带附件提交(需要额外提供 --base-token)
|
|
41
45
|
lark-cli base +form-submit \
|
|
@@ -47,15 +51,17 @@ lark-cli base +form-submit \
|
|
|
47
51
|
"附件字段名": ["./report.pdf", "./photo.png"],
|
|
48
52
|
"另一个附件字段": ["./doc.docx"]
|
|
49
53
|
}
|
|
50
|
-
}'
|
|
54
|
+
}' \
|
|
55
|
+
--yes
|
|
51
56
|
|
|
52
57
|
# 使用应用身份(bot)
|
|
53
58
|
lark-cli base +form-submit \
|
|
54
59
|
--share-token <share_token> \
|
|
55
60
|
--json '{"fields":{...}}' \
|
|
56
|
-
--as bot
|
|
61
|
+
--as bot \
|
|
62
|
+
--yes
|
|
57
63
|
|
|
58
|
-
# 预览 API
|
|
64
|
+
# 预览 API 调用(不实际执行,dry-run 无需 --yes)
|
|
59
65
|
lark-cli base +form-submit \
|
|
60
66
|
--share-token <share_token> \
|
|
61
67
|
--json '{"fields":{...}}' \
|
|
@@ -69,6 +75,7 @@ lark-cli base +form-submit \
|
|
|
69
75
|
| `--share-token <token>` | 是 | 表单分享 Token(必填),从表单分享链接中提取 |
|
|
70
76
|
| `--base-token <token>` | 条件必填 | Base token;**当 `--json` 包含 `attachments` 时必须提供**,用于将附件上传到 Base Drive Media |
|
|
71
77
|
| `--json <json>` | 是 | JSON 对象,包含 `"fields"`(普通字段值)和 `"attachments"`(附件上传),详见下方说明 |
|
|
78
|
+
| `--yes` | 是 | 确认高风险写操作。本命令为 high-risk-write,不带 `--yes` 会返回 `confirmation_required` |
|
|
72
79
|
| `--format` | 否 | 输出格式:json(默认)\| pretty \| table \| ndjson \| csv |
|
|
73
80
|
| `--as` | 否 | 身份:user(默认)\| bot |
|
|
74
81
|
| `--dry-run` | 否 | 预览 API 调用,不执行 |
|
|
@@ -138,7 +145,8 @@ https://www.example.com/share/base/form/shrbcvST8eZy0vk8zjVZ1CAXNye
|
|
|
138
145
|
```bash
|
|
139
146
|
lark-cli base +form-submit \
|
|
140
147
|
--share-token shrbcvST8eZy0vk8zjVZ1CAXNye \
|
|
141
|
-
--json '{"fields":{...}}'
|
|
148
|
+
--json '{"fields":{...}}' \
|
|
149
|
+
--yes
|
|
142
150
|
```
|
|
143
151
|
|
|
144
152
|
## 输出格式
|
|
@@ -158,6 +166,7 @@ lark-cli base +form-submit \
|
|
|
158
166
|
|
|
159
167
|
## 提示
|
|
160
168
|
|
|
169
|
+
- **本命令为高风险写操作(high-risk-write),必须额外传递 `--yes` 确认**,否则返回 `confirmation_required` 并以非零码退出;`--dry-run` 预览除外
|
|
161
170
|
- 本命令仅支持通过表单分享链接(share_token)提交,不支持通过 base_token + table_id + view_id 方式提交
|
|
162
171
|
- **当 `--json` 包含 `attachments` 时,必须额外提供 `--base-token`**,因为附件上传到 Base Drive Media 需要指定目标 Base
|
|
163
172
|
- 附件字段只需在 `--json.attachments` 中提供本地路径即可,CLI 自动完成校验、并行上传、Token 获取和合并写入
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
## 适用场景(重点)
|
|
8
8
|
|
|
9
9
|
- 适合导入 CSV / Excel、外部系统一次性写入新数据。
|
|
10
|
-
-
|
|
10
|
+
- 先把每条输入数据映射为独立的字段对象,再组装到 `create_records`。
|
|
11
11
|
|
|
12
12
|
## 推荐命令
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
lark-cli base +record-batch-create --base-token <base_token> --table-id <table_id> \
|
|
16
|
-
--json '{"
|
|
16
|
+
--json '{"create_records":[{"标题":"任务 A","状态":"Open"},{"标题":"任务 B","状态":"Done"}]}'
|
|
17
17
|
|
|
18
18
|
lark-cli base +record-batch-create --base-token <base_token> --table-id <table_id> --json @batch-create.json
|
|
19
19
|
```
|
|
@@ -34,23 +34,25 @@ lark-cli base +record-batch-create --base-token <base_token> --table-id <table_i
|
|
|
34
34
|
|
|
35
35
|
本节只说明 `+record-batch-create` 的外层 JSON 形状;CellValue 统一看 [lark-base-cell-value.md](lark-base-cell-value.md)。
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
对象形态:
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{"create_records":[{"标题":"任务 A","状态":"Open"},{"标题":"任务 B","状态":"Done"}]}
|
|
41
|
+
```
|
|
38
42
|
|
|
39
43
|
| 字段 | 类型 | 必填 | 说明 |
|
|
40
44
|
|------|------|------|------|
|
|
41
|
-
| `
|
|
42
|
-
| `rows` | `CellValue[][]` | 是 | 二维数组,每一行按 `fields` 同序给 cell;单次最多 200 行 |
|
|
45
|
+
| `create_records` | `Array<Map<FieldNameOrID, CellValue>>` | 是 | 记录字段对象数组;每条记录可以提交不同字段,单次最多 200 条 |
|
|
43
46
|
|
|
44
47
|
## 返回重点
|
|
45
48
|
|
|
46
|
-
返回 `
|
|
49
|
+
返回 `record_id_list` 和可选的 `ignored_fields`。
|
|
47
50
|
|
|
48
51
|
## 坑点
|
|
49
52
|
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
- select 写入未知选项时平台可能自动新增选项;如果不是要新增选项,先确认真实选项名。
|
|
53
|
+
- 每个 `create_records` 元素都是独立的记录字段对象,只提交该记录需要写入的字段。
|
|
54
|
+
- 单次最多 200 条,超出需分批写入。
|
|
55
|
+
- `select` 字段只支持写入字段中已有的选项;构造 CellValue 前先用 `+field-list` 或 `+field-search-options` 确认目标选项存在。
|
|
54
56
|
|
|
55
57
|
## 参考
|
|
56
58
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
通过 `update_records` 为每条记录提交字段值。
|
|
6
6
|
|
|
7
7
|
## 推荐命令
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
lark-cli base +record-batch-update --base-token <base_token> --table-id <table_id> \
|
|
11
|
-
--json '{"
|
|
11
|
+
--json '{"update_records":{"<record_id_a>":{"状态":["完成"]},"<record_id_b>":{"分数":20}}}'
|
|
12
12
|
|
|
13
13
|
lark-cli base +record-batch-update --base-token <base_token> --table-id <table_id> --json @batch-update.json
|
|
14
14
|
```
|
|
@@ -29,23 +29,25 @@ lark-cli base +record-batch-update --base-token <base_token> --table-id <table_i
|
|
|
29
29
|
|
|
30
30
|
本节只说明 `+record-batch-update` 的外层 JSON 形状;CellValue 统一看 [lark-base-cell-value.md](lark-base-cell-value.md)。
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
对象形态:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{"update_records":{"recA":{"状态":["完成"]},"recB":{"分数":20}}}
|
|
36
|
+
```
|
|
33
37
|
|
|
34
38
|
| 字段 | 类型 | 必填 | 说明 |
|
|
35
39
|
|------|------|------|------|
|
|
36
|
-
| `
|
|
37
|
-
| `patch` | `Map<FieldNameOrID, CellValue>` | 是 | 字段更新对象;key 是字段名或字段 ID,value 是 `CellValue`;同一份 `patch` 会应用到 `record_id_list` 内所有记录 |
|
|
40
|
+
| `update_records` | `Map<RecordID, Map<FieldNameOrID, CellValue>>` | 是 | record ID 到字段更新对象的映射(单次最多 200 条) |
|
|
38
41
|
|
|
39
42
|
## 返回重点
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
成功响应只包含可选的 `ignored_fields`;没有忽略字段时 `data` 为空对象。请求不会预先校验 record ID 是否存在,因此需要确认实际写入结果时,应再用 `+record-get` 读回目标记录。
|
|
42
45
|
|
|
43
46
|
## 坑点
|
|
44
47
|
|
|
45
|
-
-
|
|
46
|
-
- `record_id_list` 最大 200 条,超过会被接口校验拒绝。
|
|
48
|
+
- 单次最多更新 200 条记录,超过会被接口校验拒绝。
|
|
47
49
|
- 命令不会自动做字段/行映射转换,传什么就发什么。
|
|
48
|
-
-
|
|
50
|
+
- 如果字段映射包含只读字段,返回里可能出现 `ignored_fields`;这些字段不会被更新。
|
|
49
51
|
|
|
50
52
|
## 参考
|
|
51
53
|
|
|
@@ -55,7 +55,7 @@ lark-cli base +record-upsert --base-token <base_token> --table-id <table_id> --r
|
|
|
55
55
|
## 坑点
|
|
56
56
|
|
|
57
57
|
- 有 `--record-id` 就一定更新;不传就一定创建,不会自动查重或按业务键 upsert。
|
|
58
|
-
- select
|
|
58
|
+
- `select` 字段只支持写入字段中已有的选项;构造 CellValue 前先用 `+field-list` 或 `+field-search-options` 确认目标选项存在。
|
|
59
59
|
- 这是写入操作,执行前必须确认目标表和字段。
|
|
60
60
|
|
|
61
61
|
## 参考
|
|
@@ -6,6 +6,7 @@ This guide is the entry point for Base advanced permissions and roles. Use it to
|
|
|
6
6
|
|
|
7
7
|
| Goal | Command | Notes |
|
|
8
8
|
|------|---------|-------|
|
|
9
|
+
| Check advanced permission status | `+base-get` | Read `data.base.is_advanced`. There is no `+advperm-get` command. |
|
|
9
10
|
| Enable advanced permissions | `+advperm-enable` | Required before creating or updating roles. Caller must be a Base admin. |
|
|
10
11
|
| Disable advanced permissions | `+advperm-disable` | High-risk write. Disabling invalidates existing custom roles. |
|
|
11
12
|
| Locate roles | `+role-list` | Returns role summaries. Use `+role-get` for full config. |
|
|
@@ -14,6 +15,16 @@ This guide is the entry point for Base advanced permissions and roles. Use it to
|
|
|
14
15
|
| Update a role | `+role-update` | Delta merge. Read current config first, then send only intended changes. |
|
|
15
16
|
| Delete a role | `+role-delete` | Custom roles only. System roles cannot be deleted. |
|
|
16
17
|
|
|
18
|
+
## Required order
|
|
19
|
+
|
|
20
|
+
At the start of a role workflow, before the first `+role-list`, `+role-get`, `+role-create`, `+role-update`, or `+role-delete` call:
|
|
21
|
+
|
|
22
|
+
1. Run `lark-cli base +base-get --base-token <base_token>` and inspect `data.base.is_advanced`.
|
|
23
|
+
2. If `is_advanced` is `false`, run `+advperm-enable` before the role command. If the user did not authorize enabling advanced permissions, stop and explain the required precondition.
|
|
24
|
+
3. Run the requested role commands only after `is_advanced` is `true` or `+advperm-enable` succeeds. Reuse that confirmed status for later role calls in the same workflow.
|
|
25
|
+
|
|
26
|
+
Do not probe with `+advperm-get`: that command is not supported. Do not use an empty `+role-list` response to infer the advanced permission status; a disabled Base can also return an empty list.
|
|
27
|
+
|
|
17
28
|
## Safety boundaries
|
|
18
29
|
|
|
19
30
|
- Role operations require advanced permissions to be enabled and the caller to be a Base admin.
|