32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
|
|
# Ardot 设计稿 API 的坑(batch_edit)
|
|||
|
|
|
|||
|
|
**日期**:2026-07(从误入库的工具记忆里抢救归位)
|
|||
|
|
**场景**:用 Ardot 的 `batch_edit` 批量修改设计稿节点属性(充电柜 H5 应用设计稿,
|
|||
|
|
文件 ID `701384244279693`)。
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
|
|||
|
|
批量改完 7 屏后,用户反馈"位置都是乱的",截图验证发现**所有 7 屏几乎全白/空白**:
|
|||
|
|
容器节点没有任何背景色,只有 text 节点有 fills,所以只剩零星文字可见。
|
|||
|
|
|
|||
|
|
## 根因分析
|
|||
|
|
|
|||
|
|
上一轮重建时**所有 frame/容器节点的 `fills` 都写成了空数组 `[]`**。
|
|||
|
|
更关键的是:**给"已存在的节点"更新颜色时,十六进制简写 `fill:"#FFF"` 不生效** ——
|
|||
|
|
它只在 **Insert 新节点**时可用;Update 已有节点必须写完整对象。
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
| 属性 | 正确写法 | 错误写法 |
|
|||
|
|
|------|---------|---------|
|
|||
|
|
| `fills` | `[{type:"SOLID", color:{r,g,b}}]`(RGB 对象数组) | `fill:"#FFF"`(Update 时无效) |
|
|||
|
|
| `strokes` | `[{type:"SOLID", color:{r,g,b}, width:N}]` | 写成对象形式 |
|
|||
|
|
| `cornerRadius` | 数字 | 数组 |
|
|||
|
|
|
|||
|
|
## 模式 / 反模式
|
|||
|
|
|
|||
|
|
- **模式**:批量改设计稿后,**用截图/渲染验证**,不要只看接口返回成功 ——
|
|||
|
|
"操作成功但属性没生效"正是本次的表现(与后端"打印 ❌ 却 exit 0"是同一类信号缺失)。
|
|||
|
|
- **反模式**:把"同一属性在不同操作(Insert/Update)下语义不同"当理所当然;
|
|||
|
|
涉及此类差异时**先小范围试一个节点并肉眼确认**,再全量批处理。
|