@jieyin/editor-sdk 1.1.125 → 1.1.126

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 CHANGED
@@ -135,7 +135,7 @@ import '@jieyin/editor-sdk/style.css'
135
135
  | `fileBaseUrl` | `string` | - | 文件资源基础 URL(用于代理/拼接) |
136
136
  | `licenseConfig` | `LicenseConfig` | - | License 配置(不传则不做 License 校验) |
137
137
  | `fileToken` | `string \| null` | `null` | 文件访问 Token(用于带鉴权的图片/资源) |
138
- | `onObjectModified` | `(getDiecutStateMap: () => Record<string, unknown>) => void` | - | 画布内容变更回调,可在此调用 `getDiecutStateMap()` 拿各刀版状态 |
138
+ | `onObjectModified` | `(getDiecutStateMap: () => DiecutStateMapResult) => void` | - | 画布内容变更回调,调用 `getDiecutStateMap()` 可得 `{ stateMap, selectedColor, selectedSize }` |
139
139
  | `onRenderAllTemplates` | `(renderMethod) => Promise<...>` | - | 自定义「渲染所有模板」逻辑(如上传到服务器) |
140
140
  | `onSaveDesign` | `() => void \| Promise<void>` | - | 保存设计(传入则在 Topbar 显示保存按钮) |
141
141
  | `onGoHome` | `() => void` | - | 返回首页(传入则在 Topbar 显示返回按钮) |
@@ -155,16 +155,18 @@ interface EditorOptions {
155
155
 
156
156
  ### 暴露方法(ref 调用)
157
157
 
158
+ > **详细入参/出参说明**:见 [API 对接文档](./docs/API-对接文档.md),含 `getDiecutStateMap`、`renderAllTemplates` 等核心方法的入参、出参及对接示例。
159
+
158
160
  通过 `ref` 获取组件实例后,可调用以下方法:
159
161
 
160
162
  | 方法 | 说明 |
161
163
  | -------------------------------- | ------------------------------------------------------------------------------- |
162
164
  | `renderAllTemplates()` | 渲染当前产品下所有模板,返回 `Promise<Array<{ index: number; bitmap: ImageBitmap \| null }>>` |
163
165
  | `triggerRenderAllTemplates()` | 触发一次「渲染所有模板」(会走 `onRenderAllTemplates` 若已传) |
164
- | `getDiecutStateMap()` | 获取当前各刀版画布状态 Map(用于保存设计) |
166
+ | `getDiecutStateMap()` | 获取带元数据的设计状态:`{ stateMap, selectedColor, selectedSize }`(用于保存设计) |
165
167
  | `getCurrentProductName()` | 获取当前产品名称 |
166
168
  | `loadCanvasJson(diecutId, json)` | 按刀版 ID 加载一份画布 JSON |
167
- | `loadDesignStateMap(stateMap)` | 从「按 diecutId 分组」的状态 Map 还原整单设计 |
169
+ | `loadDesignStateMap(payload)` | 还原设计:支持 `{ stateMap, selectedColor?, selectedSize? }` 或旧格式 `Record<diecutId, fabricJson>` |
168
170
 
169
171
  示例:
170
172
 
@@ -180,13 +182,13 @@ import { Editor } from '@jieyin/editor-sdk'
180
182
  const editorRef = ref<InstanceType<typeof Editor> | null>(null)
181
183
 
182
184
  async function save() {
183
- const stateMap = editorRef.value?.getDiecutStateMap?.()
185
+ const result = editorRef.value?.getDiecutStateMap?.()
184
186
  const name = editorRef.value?.getCurrentProductName?.()
185
- // 上传 stateMap、name 到后端...
187
+ // result 为 { stateMap, selectedColor, selectedSize },上传到后端...
186
188
  }
187
189
 
188
- async function restore(stateMap: Record<string, unknown>) {
189
- editorRef.value?.loadDesignStateMap?.(stateMap)
190
+ async function restore(payload: { stateMap: Record<string, unknown>; selectedColor?: string; selectedSize?: string } | Record<string, unknown>) {
191
+ editorRef.value?.loadDesignStateMap?.(payload)
190
192
  }
191
193
  </script>
192
194
  ```
@@ -328,10 +330,10 @@ Editor 内部由多个 composable 组成(产品数据、模板、刀版、画
328
330
  const editorRef = ref<InstanceType<typeof Editor> | null>(null)
329
331
 
330
332
  async function onSaveDesign() {
331
- const stateMap = editorRef.value?.getDiecutStateMap?.()
333
+ const result = editorRef.value?.getDiecutStateMap?.()
332
334
  const productName = editorRef.value?.getCurrentProductName?.()
333
- if (!stateMap) return
334
- await saveDesignTask({ productName, stateMap })
335
+ if (!result?.stateMap) return
336
+ await saveDesignTask({ productName, ...result })
335
337
  }
336
338
  ```
337
339
 
@@ -342,10 +344,10 @@ async function onSaveDesign() {
342
344
  2. 若用 `stateMap`:先让 Editor 完成模板加载(产品、刀版、变形数据就绪),在 `onTemplateReady` 中调用:
343
345
 
344
346
  ```ts
345
- editorRef.value?.loadDesignStateMap?.(stateMap)
347
+ editorRef.value?.loadDesignStateMap?.(payload)
346
348
  ```
347
349
 
348
- 3. 若用 `completeJsonUrl`:在 `onTemplateReady` 中 fetch 该 JSON,按你与后端的约定解析成 `stateMap` 再调用 `loadDesignStateMap(stateMap)`。
350
+ 3. 若用 `completeJsonUrl`:在 `onTemplateReady` 中 fetch 该 JSON,解析成 `{ stateMap, selectedColor?, selectedSize? }` 或旧格式的 stateMap,再调用 `loadDesignStateMap(payload)`。
349
351
 
350
352
  ### License 配置
351
353