docs: settle host import leading-star and lookup label contract
All checks were successful
技能自动化发布 / release (push) Successful in 19s
All checks were successful
技能自动化发布 / release (push) Successful in 19s
This commit is contained in:
@@ -291,6 +291,20 @@ Action 是否提供、挂哪些 `placements`,由本技能 **入口定位表**
|
||||
|
||||
可抄文件见 [`assets/examples/`](../assets/examples/):`replaces-*.action.example.json`。
|
||||
|
||||
### 导入表头与 lookup 单元格(宿主契约,`replaces: import` 必读)
|
||||
|
||||
宿主「下载导入模板」与导入预览已统一:
|
||||
|
||||
| 现象 | 宿主实际写出 | 技能解析须兼容 |
|
||||
|------|--------------|----------------|
|
||||
| 必填红星 | 写在**显示名前**:`*长尾词`、`* 名称`(表单标签同此) | **前缀 / 后缀** `*` / `*` 都要剥掉后再对 `display_name`;**禁止**只 `removesuffix("*")` |
|
||||
| lookup / 关联列 | 单元格常为 `{value} · {label}`,如 `157 · 波兰小包专线` | 取前导整数写库;勿要求用户只填纯数字 |
|
||||
| 示例行 | 单元格以 `【示例】` 开头 | 整行跳过,勿当业务数据 |
|
||||
|
||||
写库链路:宿主面板只把 **`filePath` + `onError`** 交给技能;**字段映射下拉结果不传入 CLI**。技能必须自己读文件、洗表头、映射列。预览「看起来有字」不等于技能已认到必填列——只剥后缀 `*` 时,前缀模板会导致「xxx不能为空」。
|
||||
|
||||
**推荐实现:** 直接复用模板内 [`scripts/service/table_file_import.py`](../scripts/service/table_file_import.py)(`normalize_header` / `optional_int` / `load_table_rows`)。Action 文案里写「表头:名称(可带前/后缀*)」即可,**不要**再写死「表头:名称*」误导后人。
|
||||
|
||||
### 示例:create
|
||||
|
||||
```json
|
||||
@@ -437,7 +451,7 @@ Action 是否提供、挂哪些 `placements`,由本技能 **入口定位表**
|
||||
- 点默认「新增/编辑/删除」时走该 Action 的 `interaction`(create/update 常用 `form`;delete 常用 `confirm`)。
|
||||
- 点默认「导入」时**固定**打开宿主导入面板;确认后若有 `replaces:import` 则调用该 Action(`interaction` 不决定是否再弹技能表单)。
|
||||
- `update` / `delete` 可用 `inputMapping`(`$row.$pk`、`$selection.ids`)预填主键。
|
||||
- `import` 约定:`filePath`(或 `file`)+ 可选 `onError`(`skip`/`abort` 或上例中文枚举);技能自行解析文件与表头。
|
||||
- `import` 约定:`filePath`(或 `file`)+ 可选 `onError`(`skip`/`abort` 或上例中文枚举);技能自行解析文件与表头(须兼容宿主前缀 `*` 与 lookup `编号 · 名称`,见上文「导入表头与 lookup 单元格」)。
|
||||
- 整表 `_jiangchang_tables.readonly=1` 时仍隐藏宿主默认新增/编辑/导入与直写删除;**若声明了 `replaces: delete`,宿主仍显示「删除」并走技能 CLI**(不直写 SQLite)。
|
||||
- **列元数据复用**:Action 表单(含 toolbar/batch 弹窗与 create/update 抽屉)可将 `inputSchema` 字段对齐业务列,复用中文名与列上 **options**(静态枚举 `options_json` **数组**,或已解析的 lookup):
|
||||
- 优先让属性名 = 物理列名(如 `carrier_code` / `platform_key`);
|
||||
|
||||
Reference in New Issue
Block a user