diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e88afc..9ea2708 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,11 @@ - 小节正文写用户能看懂的变化(新能力、修复、注意事项),避免堆砌内部实现细节 - 打 tag 前**必须**为即将发布的版本新增一节;找不到匹配小节时,本次发布不会更新 changelog 字段 +## 1.0.65 + +- `replaces` create/update 可复用表列 lookup:字段名对齐列名,或使用 `bind.columnMapping` / 字段 `column` +- 更新 ACTIONS.md 与 skill-actions.schema.json + ## 1.0.64 - Skill Action 新增可选 `replaces: create|update|delete`:接管数据管理默认新增/编辑/删除,无配置时宿主仍直写 SQLite diff --git a/SKILL.md b/SKILL.md index 5bbd331..87b02a6 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,7 +1,7 @@ --- name: 技能开发模板(通用业务版) description: "OpenClaw 通用业务技能开发模板,供复制后定制新业务 skill。定制步骤见 development/DEVELOPMENT.md。" -version: 1.0.64 +version: 1.0.65 author: 深圳匠厂科技有限公司 metadata: openclaw: diff --git a/assets/schemas/skill-actions.schema.json b/assets/schemas/skill-actions.schema.json index 0016bd6..f74a2d7 100644 --- a/assets/schemas/skill-actions.schema.json +++ b/assets/schemas/skill-actions.schema.json @@ -57,6 +57,12 @@ "readOnly": { "type": "boolean", "description": "宿主数据管理表单只读展示该字段(仍会随提交传入 entrypoint);用于行内/勾选预填的主键等" + }, + "column": { + "type": "string", + "minLength": 1, + "pattern": "^[a-z][a-z0-9_]*$", + "description": "可选。绑定业务表物理列名;replaces create/update 时宿主可复用该列的中文名与 lookup 下拉" } } }, @@ -125,9 +131,18 @@ "type": "object", "additionalProperties": { "type": "string", "minLength": 1 }, "description": "可选。将 $row.$pk / $row.col / $selection.ids 等映射到 inputSchema 字段名,供 row/batch 预填。" + }, + "columnMapping": { + "type": "object", + "additionalProperties": { + "type": "string", + "minLength": 1, + "pattern": "^[a-z][a-z0-9_]*$" + }, + "description": "可选。将 inputSchema 属性名映射到业务表物理列名,供 replaces create/update 抽屉复用列 displayName / lookup options。" } }, - "description": "表级绑定;toolbar 必填。可选 inputMapping 供行内/批量预填。concurrency/locks 勿写入。" + "description": "表级绑定;toolbar 必填。可选 inputMapping / columnMapping。concurrency/locks 勿写入。" }, "action": { "type": "object", diff --git a/references/ACTIONS.md b/references/ACTIONS.md index 73a0454..ff672b7 100644 --- a/references/ACTIONS.md +++ b/references/ACTIONS.md @@ -143,16 +143,16 @@ Action 是**可选能力**: "bind": { "tables": ["accounts"] }, "inputSchema": { "type": "object", - "required": ["platform", "accountLabel"], + "required": ["platform_key", "account_label"], "properties": { - "platform": { "type": "string", "title": "平台" }, - "accountLabel": { "type": "string", "title": "账号名称" } + "platform_key": { "type": "string", "title": "平台" }, + "account_label": { "type": "string", "title": "账号名称" } } }, "entrypoint": { "type": "cli", "command": "account", - "args": ["add-web", "--platform", "{{platform}}", "--label", "{{accountLabel}}"] + "args": ["add-web", "--platform", "{{platform_key}}", "--label", "{{account_label}}"] } } ``` @@ -167,6 +167,11 @@ Action 是**可选能力**: - `update` / `delete` 可用 `inputMapping`(`$row.$pk`、`$selection.ids`)预填主键。 - 宿主导入仍直写:有 `replaces:create` 的表慎用宿主导入,或另做 import Action。 - 整表 `_jiangchang_tables.readonly=1` 时仍隐藏写按钮(优先于 `replaces`)。 +- **列元数据复用(lookup)**:create/update 抽屉可将 `inputSchema` 字段对齐业务列,复用中文名与 lookup 下拉: + - 优先让属性名 = 物理列名(如 `platform_key`); + - 或 `bind.columnMapping`:`{ "platform": "platform_key" }`; + - 或字段上写 `"column": "platform_key"`。 + - **不要**在 actions.json 里写死会过期的全量平台 `enum`。 ## `interaction`(点击交互方式)