@amaster.ai/pi-lark 0.1.2-beta.40 → 0.1.2-beta.42
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/package.json +2 -2
- package/skills/lark-apps/SKILL.md +15 -3
- package/skills/lark-apps/references/lark-apps-automation.md +164 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +1 -1
- package/skills/lark-apps/references/lark-apps-db.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +7 -2
- package/skills/lark-apps/references/lark-apps-init.md +1 -2
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +3 -1
- package/skills/lark-base/SKILL.md +1 -1
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
- package/skills/lark-calendar/SKILL.md +89 -31
- package/skills/lark-calendar/references/lark-calendar-create.md +8 -39
- package/skills/lark-calendar/references/lark-calendar-room-find.md +5 -9
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-update.md +2 -7
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-fetch.md +4 -2
- package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +4 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
- package/skills/lark-doc/references/lark-doc-xml.md +3 -2
- package/skills/lark-drive/SKILL.md +17 -7
- package/skills/lark-drive/references/lark-drive-comment-location.md +16 -4
- package/skills/lark-drive/references/lark-drive-comments-guide.md +16 -8
- package/skills/lark-drive/references/lark-drive-delete.md +12 -0
- package/skills/lark-drive/references/lark-drive-export.md +39 -10
- package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
- package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +1 -1
- package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
- package/skills/lark-drive/references/lark-drive-pull.md +3 -3
- package/skills/lark-drive/references/lark-drive-push.md +33 -6
- package/skills/lark-drive/references/lark-drive-status.md +12 -14
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
- package/skills/lark-drive/references/lark-drive-workflow.md +2 -1
- package/skills/lark-im/SKILL.md +5 -4
- package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
- package/skills/lark-im/references/lark-im-messages-send.md +1 -1
- package/skills/lark-mail/SKILL.md +12 -9
- package/skills/lark-mail/references/lark-mail-forward.md +1 -1
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
- package/skills/lark-mail/references/lark-mail-reply.md +1 -1
- package/skills/lark-mail/references/lark-mail-watch.md +1 -1
- package/skills/lark-markdown/SKILL.md +3 -2
- package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
- package/skills/lark-minutes/SKILL.md +19 -4
- package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-todo.md +2 -4
- package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
- package/skills/lark-shared/SKILL.md +26 -8
- package/skills/lark-sheets/SKILL.md +98 -29
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
- package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
- package/skills/lark-slides/SKILL.md +29 -18
- package/skills/lark-slides/references/asset-planning.md +16 -5
- package/skills/lark-slides/references/examples.md +57 -227
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-create.md +21 -2
- package/skills/lark-slides/references/lark-slides-media-upload.md +0 -1
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
- package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -1
- package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
- package/skills/lark-slides/references/lark-slides-whiteboard.md +31 -30
- package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +9 -7
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +4 -4
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +12 -10
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +14 -13
- package/skills/lark-slides/references/planning-layer.md +32 -2
- package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +1 -1
- package/skills/lark-slides/references/troubleshooting.md +7 -25
- package/skills/lark-slides/references/validation-checklist.md +18 -9
- package/skills/lark-slides/references/visual-planning.md +4 -3
- package/skills/lark-slides/references/xml-format-guide.md +50 -1
- package/skills/lark-slides/references/xml-schema-quick-ref.md +7 -3
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +647 -52
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +529 -0
- package/skills/lark-task/SKILL.md +1 -0
- package/skills/lark-task/references/lark-task-create.md +14 -1
- package/skills/lark-vc/references/lark-vc-recording.md +0 -2
- package/skills/lark-vc-agent/SKILL.md +24 -14
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +65 -37
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +8 -8
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +5 -2
- package/skills/lark-wiki/SKILL.md +4 -2
- package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
- package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
- package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +0 -220
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
4. 写入 `.lark-slides/plan/<deck-or-task-id>/slide_plan.json`。
|
|
13
13
|
5. 读取 `xml-schema-quick-ref.md`、`visual-planning.md` 和 `asset-planning.md`。
|
|
14
14
|
6. 按 plan、visual planning 和 asset planning 规则逐页生成 XML,把 `layout_type`、`visual_focus`、`text_density` 转成具体页面几何和文本量约束,并把缺失素材转成可执行兜底视觉。
|
|
15
|
-
7. 创建 PPT 后用 `
|
|
15
|
+
7. 创建 PPT 后用 `slides +xml-get` 回读,核对页面数量、关键元素和 plan 到 XML 的对应关系。
|
|
16
16
|
|
|
17
17
|
## Plan Path
|
|
18
18
|
|
|
@@ -119,6 +119,34 @@ Each slide must include:
|
|
|
119
119
|
- `text_density`: `low`, `medium`, or `high`.
|
|
120
120
|
- `speaker_intent`: why the speaker needs this page and how it advances the story.
|
|
121
121
|
|
|
122
|
+
Optional slide fields:
|
|
123
|
+
|
|
124
|
+
- `chart_contract`: required when the page plan includes a standard data chart that `<chart>` supports. Use this shape:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"chart_contract": {
|
|
129
|
+
"required": true,
|
|
130
|
+
"render_as": "native_chart",
|
|
131
|
+
"chart_type": "line",
|
|
132
|
+
"data_source": "mock_placeholder",
|
|
133
|
+
"data_series_required": true,
|
|
134
|
+
"placeholder_label_required": true,
|
|
135
|
+
"manual_shape_fallback_allowed": false
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
When `chart_contract.required == true`, XML generation must produce a `<chart>` element on that slide. A shape, line, polyline, or whiteboard approximation does not satisfy the plan.
|
|
141
|
+
|
|
142
|
+
`data_source` must be one of:
|
|
143
|
+
|
|
144
|
+
- `user_provided`: the user supplied concrete values, tables, CSV, or metric lists; use them and do not replace them with mock data.
|
|
145
|
+
- `mock_placeholder`: the user asked for a placeholder, template, example, or later-replaceable chart position; use mock data in native `<chart>`.
|
|
146
|
+
- `mock_required_by_intent`: the user did not provide concrete values but asked for data expression, charts, trends, comparisons, or distributions; use mock data in native `<chart>`.
|
|
147
|
+
|
|
148
|
+
`data_series_required` means the generated XML must include `<chartData>`. It does not require user-provided real-world values. When real values are unavailable but chart expression is part of the user's intent, write mock or placeholder values into native `<chart>` and label them clearly instead of switching to manual drawing primitives or metric blocks.
|
|
149
|
+
|
|
122
150
|
## Layout Vocabulary
|
|
123
151
|
|
|
124
152
|
Use one of these `layout_type` values unless the user explicitly needs a custom structure:
|
|
@@ -183,6 +211,7 @@ Use an object for one planned asset, an array for multiple real needs, or `asset
|
|
|
183
211
|
- `purpose`: why this asset helps the page's key message.
|
|
184
212
|
- `suggested_query`: short future lookup hint only; do not execute it unless separately requested.
|
|
185
213
|
- `fallback_if_missing`: concrete XML-native visual plan using shapes, labels, tables, whiteboard diagrams, or placeholder panels.
|
|
214
|
+
- `chart_contract`: when `asset_type` is `chart` and the visual is a supported standard data chart, set this optional slide-level field so generation is locked to native `<chart>`.
|
|
186
215
|
|
|
187
216
|
For detailed rules and examples, read `asset-planning.md`.
|
|
188
217
|
|
|
@@ -190,7 +219,7 @@ Good examples:
|
|
|
190
219
|
|
|
191
220
|
- `{"asset_type":"architecture_diagram","purpose":"Explain component relationships.","suggested_query":"service architecture diagram","fallback_if_missing":"Draw a component diagram with grouped boxes, connector arrows, and short labels."}`
|
|
192
221
|
- `{"asset_type":"logo","purpose":"Identify the customer context.","suggested_query":"customer logo","fallback_if_missing":"Use a text label in a small badge."}`
|
|
193
|
-
- `{"asset_type":"chart","purpose":"Show adoption trend.","suggested_query":"monthly adoption trend chart","fallback_if_missing":"
|
|
222
|
+
- `{"asset_type":"chart","purpose":"Show adoption trend.","suggested_query":"monthly adoption trend chart","fallback_if_missing":"Render a native `<chart>` using the provided series when available; otherwise render a native `<chart>` with mock placeholder values and label it as 模拟数据,仅占位,待替换真实数据."}`
|
|
194
223
|
|
|
195
224
|
## XML Generation Contract
|
|
196
225
|
|
|
@@ -201,6 +230,7 @@ Before writing each slide XML, map the plan fields to concrete decisions:
|
|
|
201
230
|
- `visual_focus` determines the largest visual region or emphasized object.
|
|
202
231
|
- `text_density` caps visible text volume.
|
|
203
232
|
- `asset_need` informs placeholder diagrams, icons, charts, screenshots, or shape-based fallback visuals only. Missing real assets must use `fallback_if_missing`, not blank regions.
|
|
233
|
+
- `chart_contract` locks supported standard data charts to native `<chart>` output. Manual approximations are allowed only when the planned chart type is unsupported by `<chart>` or when the visual is explicitly non-data/decorative.
|
|
204
234
|
|
|
205
235
|
After creating the PPT, fetch the presentation and verify:
|
|
206
236
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<presentation xmlns="/sml/2.0" width="960" height="540"><title>全球消费电子市场洞察 · 图表可视化 Demo</title><theme><textStyles><headline fontColor="rgba(31, 35, 41, 1)"/><sub-headline fontColor="rgba(31, 35, 41, 1)"/><body fontColor="rgba(31, 35, 41, 1)"/><caption fontColor="rgba(155, 158, 162, 1)" fontSize="14"/></textStyles></theme><slide><style><fill><fillColor color="linear-gradient(135deg,rgba(10, 20, 45, 1) 0%,rgba(28, 71, 120, 1) 100%)"/></fill></style><data><shape width="8" height="180" topLeftX="72" topLeftY="188" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="760" height="60" topLeftX="100" topLeftY="180" type="text"><content textType="caption" fontSize="14" fontFamily="思源黑体" color="rgba(240, 129, 54, 1)" bold="true"><p>CONSULTING INSIGHTS · MARKET SERIES 2026 / Q3</p></content></shape><shape width="760" height="90" topLeftX="100" topLeftY="222" type="text"><content textType="title" fontSize="44" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>全球消费电子市场洞察</p></content></shape><shape width="760" height="50" topLeftX="100" topLeftY="300" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" bold="true"><p>数据可视化图谱 · Chart Library Demo</p></content></shape><shape width="760" height="30" topLeftX="100" topLeftY="358" type="text"><content fontSize="14" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>覆盖柱状 · 折线 · 饼图 · 条形 · 面积 · 散点 · 组合 · 雷达 · 其他 九大类</p></content></shape><line startX="100" startY="410" endX="240.0035713830186" endY="410"><border color="rgba(240, 129, 54, 1)"/></line><shape width="500" height="24" topLeftX="100" topLeftY="420" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>Prepared by Consulting Insights · July 2026</p></content></shape><shape width="180" height="24" topLeftX="720" topLeftY="480" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>Strictly Private & Confidential</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>目录 · 图表类型索引</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>CHART LIBRARY OVERVIEW · 9 CATEGORIES</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 00 / OVERVIEW</p></content></shape><shape width="400" height="30" topLeftX="60" topLeftY="110" type="text"><content textType="headline" fontSize="16" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>数据比较类</p></content></shape><line startX="60" startY="140" endX="440.0013157871956" endY="140"><border color="rgba(240, 129, 54, 1)"/></line><shape width="36" height="36" topLeftX="60" topLeftY="160" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="60" topLeftY="163" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>01</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="160" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>柱状图 Column</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="180" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>分组 / 堆叠 / 百分比堆叠</p></content></shape><shape width="36" height="36" topLeftX="60" topLeftY="210" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="60" topLeftY="213" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>02</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="210" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>条形图 Bar</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="230" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>分组 / 堆叠 / 百分比堆叠</p></content></shape><shape width="36" height="36" topLeftX="60" topLeftY="260" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="60" topLeftY="263" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>03</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="260" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>饼图 Pie</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="280" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>饼图 / 环形图</p></content></shape><shape width="400" height="30" topLeftX="60" topLeftY="330" type="text"><content textType="headline" fontSize="16" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>趋势与结构类</p></content></shape><line startX="60" startY="360" endX="440.0013157871956" endY="360"><border color="rgba(240, 129, 54, 1)"/></line><shape width="36" height="36" topLeftX="60" topLeftY="380" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="60" topLeftY="383" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>04</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="380" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>折线图 Line</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="400" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>直线 / 平滑 / 阶梯</p></content></shape><shape width="36" height="36" topLeftX="60" topLeftY="430" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="60" topLeftY="433" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>05</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="430" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>面积图 Area</p></content></shape><shape width="340" height="20" topLeftX="108" topLeftY="450" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>分组 / 堆叠 / 百分比堆叠</p></content></shape><shape width="400" height="30" topLeftX="500" topLeftY="110" type="text"><content textType="headline" fontSize="16" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>关系与多维类</p></content></shape><line startX="500" startY="140" endX="880.0013157871956" endY="140"><border color="rgba(240, 129, 54, 1)"/></line><shape width="36" height="36" topLeftX="500" topLeftY="160" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="500" topLeftY="163" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>06</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="160" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>散点图 Scatter</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="180" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>散点图 / 气泡图</p></content></shape><shape width="36" height="36" topLeftX="500" topLeftY="210" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="500" topLeftY="213" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>07</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="210" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>组合图 Combo</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="230" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>柱状 + 折线 双轴组合</p></content></shape><shape width="36" height="36" topLeftX="500" topLeftY="260" presetHandlers="0" type="rect"><fill><fillColor color="rgba(28, 71, 120, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="500" topLeftY="263" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>08</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="260" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>雷达图 Radar</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="280" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>多边形 / 圆形 / 无填充</p></content></shape><shape width="400" height="30" topLeftX="500" topLeftY="330" type="text"><content textType="headline" fontSize="16" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>其他</p></content></shape><line startX="500" startY="360" endX="880.0013157871956" endY="360"><border color="rgba(240, 129, 54, 1)"/></line><shape width="36" height="36" topLeftX="500" topLeftY="380" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="36" height="30" topLeftX="500" topLeftY="383" type="text"><content fontSize="16" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true" textAlign="center"><p>09</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="380" type="text"><content fontSize="15" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>其他 Others</p></content></shape><shape width="340" height="20" topLeftX="548" topLeftY="400" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(100, 116, 139, 1)"><p>词云 / 漏斗 / 帕累托</p></content></shape><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Consulting Insights © 2026 · CE Market Series</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>02 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>柱状图 · Column Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>季度出货量对比 · GROUPED / STACKED / 100% STACKED</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 01 / COLUMN</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 分组柱状图 · Grouped</p></content></shape><chart width="270" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="column"><chartExtra/></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="季度">2024Q1,2024Q2,2024Q3,2024Q4</chartField></dim1><dim2><chartField name="Apple">52,48,55,68</chartField><chartField name="Samsung">60,58,63,72</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">智能手机季度出货(百万台)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 堆叠柱状图 · Stacked</p></content></shape><chart width="270" height="350" topLeftX="345" topLeftY="132"><chartPlotArea><chartPlot type="column"><chartExtra><chartStack/></chartExtra></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="季度">2024Q1,2024Q2,2024Q3,2024Q4</chartField></dim1><dim2><chartField name="硬件">80,85,92,105</chartField><chartField name="服务">45,52,58,66</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">收入结构(亿美元)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 百分比堆叠 · 100% Stacked</p></content></shape><chart width="270" height="350" topLeftX="648" topLeftY="132"><chartPlotArea><chartPlot type="column"><chartExtra><chartStack percentage="true"/></chartExtra><chartSeriesList><chartSeries index="1"><chartTooltip format="0%"/></chartSeries><chartSeries index="2"><chartTooltip format="0%"/></chartSeries></chartSeriesList></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9" format="0%"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="区域">北美,欧洲,亚太,拉美</chartField></dim1><dim2><chartField name="Apple">0.55,0.42,0.3,0.28</chartField><chartField name="Samsung">0.45,0.58,0.7,0.72</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">区域市场份额构成</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle><chartTooltip format="0%"/></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>03 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>折线图 · Line Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>用户规模趋势 · STRAIGHT / SMOOTH / STEP</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 02 / LINE</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 直线折线图 · Straight</p></content></shape><chart width="270" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="line"><chartExtra/></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="月份">1月,2月,3月,4月,5月,6月</chartField></dim1><dim2><chartField name="iOS">120,135,128,152,168,180</chartField><chartField name="Android">200,215,232,228,250,265</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">MAU 月活跃用户(百万)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 平滑折线图 · Smooth</p></content></shape><chart width="270" height="350" topLeftX="345" topLeftY="132"><chartPlotArea><chartPlot type="line"><chartExtra><chartSmooth/></chartExtra></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="月份">1月,2月,3月,4月,5月,6月</chartField></dim1><dim2><chartField name="iOS">42,58,55,72,88,96</chartField><chartField name="Android">78,82,96,102,118,132</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">DAU 日活跃用户(百万)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 阶梯折线图 · Step</p></content></shape><chart width="270" height="350" topLeftX="648" topLeftY="132"><chartPlotArea><chartPlot type="line"><chartExtra><chartStep/></chartExtra></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="月份">1月,2月,3月,4月,5月,6月</chartField></dim1><dim2><chartField name="Pro 版">999,999,899,899,799,799</chartField><chartField name="标准版">699,699,649,599,599,549</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">定价调整轨迹(美元)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>04 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>饼图 · Pie Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>市场份额结构 · PIE / DONUT</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 03 / PIE</p></content></shape><shape width="440" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="440" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="420" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 饼图 · Pie</p></content></shape><chart width="420" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="pie" yAxisPosition="right"><chartExtra/><chartLabels position="outside" value="false" percentage="true" fontSize="10"/></chartPlot></chartPlotArea><chartLegend position="right" fontSize="10"/><chartData><dim1><chartField name="品牌">Apple,Samsung,Xiaomi,Huawei,Others</chartField></dim1><dim2><chartField name="份额">28,24,15,12,21</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">全球智能手机品牌份额 2026H1</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/><color value="rgb(56, 142, 60)"/><color value="rgb(148, 163, 184)"/><color value="rgb(120, 144, 180)"/></chartColorTheme></chartStyle></chart><shape width="440" height="400" topLeftX="488" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="440" height="32" topLeftX="488" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="420" height="22" topLeftX="500" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 环形图 · Donut</p></content></shape><chart width="420" height="350" topLeftX="498" topLeftY="132"><chartPlotArea><chartPlot type="pie" yAxisPosition="right"><chartExtra/><chartLabels position="outside" category="true" value="false" percentage="true" fontSize="10"/><chartSeriesList><chartSeries index="1"><chartSectors innerRadius="0.55" offsetRadius="0" startAngle="0"/></chartSeries></chartSeriesList></chartPlot></chartPlotArea><chartData><dim1><chartField name="业务">硬件,服务,可穿戴,其他</chartField></dim1><dim2><chartField name="占比">52,26,15,7</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">收入结构(按业务线)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/><color value="rgb(56, 142, 60)"/><color value="rgb(148, 163, 184)"/></chartColorTheme></chartStyle></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>05 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>条形图 · Bar Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>横向排名对比 · GROUPED / STACKED / 100% STACKED</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 04 / BAR</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 分组条形图 · Grouped</p></content></shape><chart width="270" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="bar"><chartExtra/></chartPlot><chartAxes><chartAxis type="y" position="left"><chartLabel fontSize="9"/></chartAxis><chartAxis type="x"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="品类">手机,平板,手表,耳机</chartField></dim1><dim2><chartField name="2025">180,68,42,96</chartField><chartField name="2026">210,82,58,132</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">品类销售对比(万台)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 堆叠条形图 · Stacked</p></content></shape><chart width="270" height="350" topLeftX="345" topLeftY="132"><chartPlotArea><chartPlot type="bar"><chartExtra><chartStack/></chartExtra></chartPlot><chartAxes><chartAxis type="y" position="left"><chartLabel fontSize="9"/></chartAxis><chartAxis type="x"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="品类">手机,平板,手表,耳机</chartField></dim1><dim2><chartField name="线上">125,45,32,78</chartField><chartField name="线下">85,37,26,54</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">渠道构成(万台)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 百分比堆叠 · 100% Stacked</p></content></shape><chart width="270" height="350" topLeftX="648" topLeftY="132"><chartPlotArea><chartPlot type="bar"><chartExtra><chartStack percentage="true"/></chartExtra><chartSeriesList><chartSeries index="1"><chartTooltip format="0%"/></chartSeries><chartSeries index="2"><chartTooltip format="0%"/></chartSeries></chartSeriesList></chartPlot><chartAxes><chartAxis type="y" position="left"><chartLabel fontSize="9"/></chartAxis><chartAxis type="x"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9" format="0%"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="品类">手机,平板,手表,耳机</chartField></dim1><dim2><chartField name="线上">1.25,0.45,0.32,0.78</chartField><chartField name="线下">0.85,0.37,0.26,0.54</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">渠道占比结构</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle><chartTooltip format="0%"/></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>06 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>面积图 · Area Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>体量与结构演进 · OVERLAY / STACKED / 100% STACKED</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 05 / AREA</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 重叠面积图 · Overlay</p></content></shape><chart width="270" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="area"><chartExtra/></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="年份">2021,2022,2023,2024,2025,2026</chartField></dim1><dim2><chartField name="北美">180,210,245,268,295,322</chartField><chartField name="亚太">120,155,180,220,258,296</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">全年营收走势(亿美元)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 堆叠面积图 · Stacked</p></content></shape><chart width="270" height="350" topLeftX="345" topLeftY="132"><chartPlotArea><chartPlot type="area"><chartExtra><chartStack/></chartExtra></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="年份">2021,2022,2023,2024,2025,2026</chartField></dim1><dim2><chartField name="北美">180,210,245,268,295,322</chartField><chartField name="亚太">120,155,180,220,258,296</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">总营收堆叠视图</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 百分比堆叠 · 100% Stacked</p></content></shape><chart width="270" height="350" topLeftX="648" topLeftY="132"><chartPlotArea><chartPlot type="area"><chartExtra><chartStack percentage="true"/></chartExtra></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="9"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="9" format="0%"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="年份">2021,2022,2023,2024,2025,2026</chartField></dim1><dim2><chartField name="北美">180,210,245,268,295,322</chartField><chartField name="亚太">120,155,180,220,258,296</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">区域营收占比演进</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle><chartTooltip format="0%"/></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>07 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>散点图 · Scatter & Bubble</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>价格-口碑二维分布 & 三维气泡 · SCATTER / BUBBLE</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 06 / SCATTER</p></content></shape><shape width="440" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="440" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="420" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 散点图 · Scatter</p></content></shape><whiteboard width="420" height="350" topLeftX="42" topLeftY="132"/><shape width="440" height="400" topLeftX="488" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="440" height="32" topLeftX="488" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="420" height="22" topLeftX="500" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 气泡图 · Bubble</p></content></shape><whiteboard width="420" height="350" topLeftX="498" topLeftY="132"/><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>08 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>组合图 · Combo Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>营收规模 & 增长率双轴视图 · COLUMN + LINE</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 07 / COMBO</p></content></shape><shape width="576" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="576" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="560" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>八季度营收与同比增速</p></content></shape><chart width="556" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="combo"><chartExtra/><chartSeriesList><chartSeries index="1" comboType="column"/><chartSeries index="2" comboType="line" yAxisPosition="right"><chartTooltip format="0%"/></chartSeries></chartSeriesList></chartPlot><chartAxes><chartAxis type="x"><chartLabel fontSize="10"/></chartAxis><chartAxis type="y" position="left"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="10"/></chartAxis><chartAxis type="y" position="right"><chartLabel fontSize="10" format="0%"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="11"/><chartData><dim1><chartField name="季度">24Q1,24Q2,24Q3,24Q4,25Q1,25Q2,25Q3,25Q4</chartField></dim1><dim2><chartField name="营收">180,195,210,245,220,238,258,296</chartField><chartField name="增速">0.08,0.12,0.15,0.18,0.22,0.22,0.23,0.21</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">营收(亿美元, 左轴) · 同比增速(%, 右轴)</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="304" height="400" topLeftX="624" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="304" height="4" topLeftX="624" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="264" height="26" topLeftX="644" topLeftY="118" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(240, 129, 54, 1)" bold="true"><p>KEY TAKEAWAY</p></content></shape><shape width="264" height="90" topLeftX="644" topLeftY="146" type="text"><content textType="headline" fontSize="18" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>营收连续 6 季度双位数增长</p></content></shape><shape width="264" height="80" topLeftX="644" topLeftY="248" type="text"><content fontSize="13" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)"><p>24Q4 - 25Q4 期间同比增速稳定在 18-23%,营收规模从 245 亿扩张至 296 亿美元。</p></content></shape><line startX="644" startY="352" endX="720.0065786626394" endY="352"><border color="rgba(240, 129, 54, 1)"/></line><shape width="264" height="26" topLeftX="644" topLeftY="360" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(240, 129, 54, 1)" bold="true"><p>WHAT TO WATCH</p></content></shape><shape width="264" height="90" topLeftX="644" topLeftY="386" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)"><p>· 25Q4 增速首次微降 2pp</p><p>· 高基数效应即将显现</p><p>· 需关注亚太区库存周期</p></content></shape><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>09 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>雷达图 · Radar Chart</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>产品能力多维对比 · POLYGON / CIRCLE / OUTLINE</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 08 / RADAR</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 多边形雷达 · Polygon</p></content></shape><chart width="270" height="350" topLeftX="42" topLeftY="132"><chartPlotArea><chartPlot type="radar"><chartExtra><chartRadar/></chartExtra><chartAreas/></chartPlot><chartAxes><chartAxis type="angle"><chartLabel fontSize="9"/></chartAxis><chartAxis type="radius" max="10"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="8"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="维度">性能,续航,拍照,屏幕,系统,生态</chartField></dim1><dim2><chartField name="品牌 A">9,7,8,9,8,9</chartField><chartField name="品牌 B">7,9,9,7,8,6</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">旗舰机型能力评估</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 圆形雷达 · Circle</p></content></shape><chart width="270" height="350" topLeftX="345" topLeftY="132"><chartPlotArea><chartPlot type="radar"><chartExtra><chartSmooth/><chartRadar shape="circle"/></chartExtra><chartAreas/></chartPlot><chartAxes><chartAxis type="angle"><chartLabel fontSize="9"/></chartAxis><chartAxis type="radius" max="10"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="8"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="维度">性能,续航,拍照,屏幕,系统,生态</chartField></dim1><dim2><chartField name="品牌 A">7,8,6,8,7,7</chartField><chartField name="品牌 B">8,6,7,7,8,8</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">中端机型能力评估</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 无填充雷达 · Outline</p></content></shape><chart width="270" height="350" topLeftX="648" topLeftY="132"><chartPlotArea><chartPlot type="radar"><chartExtra><chartRadar area="false"/></chartExtra></chartPlot><chartAxes><chartAxis type="angle"><chartLabel fontSize="9"/></chartAxis><chartAxis type="radius" max="10"><chartGridLine color="rgb(226, 232, 240)"/><chartLabel fontSize="8"/></chartAxis></chartAxes></chartPlotArea><chartLegend position="bottom" fontSize="10"/><chartData><dim1><chartField name="维度">性能,续航,拍照,屏幕,系统,生态</chartField></dim1><dim2><chartField name="品牌 A">6,7,5,6,6,5</chartField><chartField name="品牌 B">5,6,6,5,7,6</chartField></dim2></chartData><chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">入门机型能力评估</chartTitle><chartStyle><chartBackground color="rgba(0, 0, 0, 0)"/><chartBorder color="rgb(222, 224, 227)" width="0"/><chartColorTheme><color value="rgb(28, 71, 120)"/><color value="rgb(240, 129, 54)"/></chartColorTheme></chartStyle></chart><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>10 / 12</p></content></shape></data><note><content/></note></slide><slide><style><fill><fillColor color="rgba(248, 249, 251, 1)"/></fill></style><data><shape width="960" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(15, 30, 58, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="8" height="72" topLeftX="0" topLeftY="0" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 129, 54, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="700" height="30" topLeftX="32" topLeftY="14" type="text"><content textType="headline" fontSize="22" fontFamily="思源黑体" color="rgba(255, 255, 255, 1)" bold="true"><p>其他 · Word Cloud · Funnel · Pareto</p></content></shape><shape width="700" height="20" topLeftX="32" topLeftY="46" type="text"><content textType="caption" fontSize="12" fontFamily="思源黑体" color="rgba(180, 192, 210, 1)"><p>词云 / 漏斗 / 帕累托 · 补充可视化视角</p></content></shape><shape width="160" height="22" topLeftX="770" topLeftY="26" type="text"><content textType="caption" fontSize="11" fontFamily="思源黑体" color="rgba(220, 228, 240, 1)" textAlign="right"><p>SECTION 09 / OTHERS</p></content></shape><shape width="290" height="400" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="32" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="44" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>① 词云图 · Word Cloud</p></content></shape><whiteboard width="270" height="350" topLeftX="42" topLeftY="132"/><shape width="290" height="400" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="335" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="347" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>② 漏斗图 · Funnel</p></content></shape><whiteboard width="270" height="350" topLeftX="345" topLeftY="132"/><shape width="290" height="400" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(255, 255, 255, 1)"/></fill><border color="rgba(226, 232, 240, 1)" width="1"/><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="290" height="32" topLeftX="638" topLeftY="92" presetHandlers="0" type="rect"><fill><fillColor color="rgba(240, 244, 249, 1)"/></fill><content fontSize="16" fontFamily="思源黑体" color="rgba(31, 35, 41, 1)"/></shape><shape width="270" height="22" topLeftX="650" topLeftY="98" type="text"><content fontSize="12" fontFamily="思源黑体" color="rgba(15, 30, 58, 1)" bold="true"><p>③ 帕累托图 · Pareto</p></content></shape><whiteboard width="270" height="350" topLeftX="648" topLeftY="132"/><line startX="32" startY="506" endX="928.0005580355405" endY="506"><border color="rgba(226, 232, 240, 1)" width="1"/></line><shape width="500" height="18" topLeftX="32" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)"><p>Source: Consulting Insights Research · 数据仅用于示意</p></content></shape><shape width="128" height="18" topLeftX="800" topLeftY="512" type="text"><content textType="caption" fontSize="10" fontFamily="思源黑体" color="rgba(148, 163, 184, 1)" textAlign="right"><p>11 / 12</p></content></shape></data><note><content/></note></slide></presentation>
|
|
@@ -3018,7 +3018,7 @@
|
|
|
3018
3018
|
|
|
3019
3019
|
子元素(mermaid 与 svg 二选一):
|
|
3020
3020
|
- mermaid: Mermaid 源码文本, 可使用 CDATA 包裹
|
|
3021
|
-
适用场景:
|
|
3021
|
+
适用场景: 流程图、时序图、思维导图、类图、甘特图、ER 图、用户旅程等结构图
|
|
3022
3022
|
特点: 用简短的文本声明描述图表逻辑, 由渲染引擎自动布局, 无需手动计算坐标
|
|
3023
3023
|
示例: <mermaid><![CDATA[flowchart TD\n A[开始] --> B[结束]]]></mermaid>
|
|
3024
3024
|
- svg: SVG 内容
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
# Troubleshooting
|
|
2
2
|
|
|
3
|
-
本文件覆盖 lark-slides
|
|
4
|
-
|
|
5
|
-
## XML Preflight
|
|
6
|
-
|
|
7
|
-
在真正创建或替换前,至少检查:
|
|
8
|
-
|
|
9
|
-
- 特殊字符已转义:正文和标题里的 `&`、`<`、`>` 不能裸写;属性值里的裸 `&` 也必须写成 `&`。
|
|
10
|
-
- 属性引号安全:XML 属性、shell 引号、JSON 字符串包装之间没有互相打断。
|
|
11
|
-
- 结构合法:`<slide>` 下只放 `<style>`、`<data>`、`<note>`,文本都在 `<content>` 内。
|
|
12
|
-
- 图片路径正确:`<img src="@...">` 只在 `+create --slides` 的支持链路中使用;直接调用 `xml_presentation.slide.create` 必须先拿到 `file_token`。
|
|
3
|
+
本文件覆盖 lark-slides 的 XML 排障和常见失败处理。
|
|
13
4
|
|
|
14
5
|
## Failure Order
|
|
15
6
|
|
|
16
7
|
遇到 `invalid param`、某一页创建失败、页面空白或布局错乱时,按顺序处理:
|
|
17
8
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
9
|
+
1. 先判断是否已有可用的 `xml_presentation_id`:从成功 stdout、错误 hint、用户给定链接或已保存上下文中获取;没有 ID 时不要回读,直接按当前错误处理。
|
|
10
|
+
2. 如果有 `xml_presentation_id`,再用 `slides +xml-get` 尝试回读,确认是否存在演示文稿、是否已有部分页面写入、或是否只是空 presentation。
|
|
20
11
|
3. 检查失败页是否含未转义字符:`Q&A -> Q&A`,文本 `<` / `>` 写成 `<` / `>`,属性 URL `a=1&b=2 -> a=1&b=2`。
|
|
21
12
|
4. 检查标签闭合、属性引号、`<content>` 结构,以及 `<slide>` 直接子元素。
|
|
22
|
-
5.
|
|
23
|
-
6. 如果使用 `--slides '[...]'`,怀疑 shell 截断时直接切到两步创建:先 `slides +create`,再用 `xml_presentation.slide.create` 逐页添加。
|
|
24
|
-
7. 局部问题用 `+replace-slide` 块级修正;整页结构要改时再用 `slide.delete` 旧页 + `slide.create` 新页。
|
|
13
|
+
5. 如果使用 `--slides '[...]'`,怀疑 shell 截断时直接切到两步创建:先 `slides +create`,再用 `xml_presentation.slide create` 逐页添加。
|
|
25
14
|
|
|
26
15
|
## Symptom Fixes
|
|
27
16
|
|
|
@@ -34,10 +23,9 @@
|
|
|
34
23
|
| 表格列宽不合理 | 调整 `colgroup` 中 `col` 的 `width` 值 |
|
|
35
24
|
| 图表没有显示 | 检查 `chartPlotArea` 和 `chartData` 是否都包含,`dim1` / `dim2` 数据数量是否匹配 |
|
|
36
25
|
| 图片被裁掉一部分 | `<img>` 的 `width` / `height` 是裁剪后尺寸;要整图显示就让 `width:height` 对齐原图比例 |
|
|
37
|
-
| 图片不显示 / `<img src>` 仍是 `@path` | `@` 占位符只在 `+create --slides` 中替换;直接调 `xml_presentation.slide
|
|
26
|
+
| 图片不显示 / `<img src>` 仍是 `@path` | `@` 占位符只在 `+create --slides` 中替换;直接调 `xml_presentation.slide create` 必须先用 `+media-upload` 拿 `file_token` |
|
|
38
27
|
| 新插入的 `<img>` 挡住原有元素 | `slide.get` 读原页,对照已有块坐标挑空白位置;空间不够就在同一批 `--parts` 里先移动/缩小现有块再插图 |
|
|
39
28
|
| 渐变背景变成白色 | 渐变必须用 `rgba()` 格式 + 百分比停靠点,如 `linear-gradient(135deg,rgba(30,60,114,1) 0%,rgba(59,130,246,1) 100%)` |
|
|
40
|
-
| 整体风格不统一 | 封面页和结尾页用同一背景,内容页保持一致的配色和字号体系 |
|
|
41
29
|
|
|
42
30
|
## Common Errors
|
|
43
31
|
|
|
@@ -46,18 +34,12 @@
|
|
|
46
34
|
| 400 XML 格式错误 | XML 语法错误 | 检查标签闭合、属性引号、特殊字符转义 |
|
|
47
35
|
| 400 请求包装错误 | `--data` 未按 schema 包装 | 检查是否传入 `xml_presentation.content` 或 `slide.content` |
|
|
48
36
|
| 创建成功但页面空白 / 内容缺失 / 布局错乱 | 常见于 `--slides '[...]'` 的 shell 转义或长参数传递问题 | 改用两步创建,并在创建后立即读取 XML 验证 |
|
|
49
|
-
| 403 权限不足 | 身份或 scope 不匹配 | 先检查是否误用了 bot 身份,再确认 scope
|
|
37
|
+
| 403 权限不足 | 身份或 scope 不匹配 | 先检查是否误用了 bot 身份,再确认 scope 和文档权限;无权限时根据错误响应引导用户解决 |
|
|
50
38
|
| 404 演示文稿不存在 | `xml_presentation_id` 不正确或无权限 | 检查 token;wiki URL 需先解析真实 `obj_token` |
|
|
51
39
|
| 404 幻灯片不存在 | `slide_id` 不正确 | 重新读取 presentation 或 slide,确认最新 ID |
|
|
52
40
|
| 400 无法删除唯一幻灯片 | 演示文稿至少保留一页 | 先创建新页,再删除旧页 |
|
|
53
41
|
| 1061002 媒体上传 params error | slides 媒体上传参数不符合约定 | 用 `slides +media-upload`,不要手拼原生 `medias/upload_all`;slides 唯一可用 `parent_type` 是 `slide_file` |
|
|
54
42
|
| 1061004 forbidden | 当前身份对演示文稿无编辑权限 | 确认 user/bot 对目标 PPT 有编辑权限;bot 常见于 PPT 非该 bot 创建 |
|
|
55
43
|
| 3350001 | XML 非 well-formed、XML 结构不符合服务端要求,或 replace 片段问题 | 优先检查未转义字符;replace 场景再看 `block_id` 和 `<content/>` |
|
|
56
|
-
| 3350002 | `revision_id` 大于当前版本 | 用 `-1`
|
|
44
|
+
| 3350002 | `revision_id` 大于当前版本 | 用 `-1` 取当前版本,或重新用 `slides +xml-get` 取最新 `revision_id` |
|
|
57
45
|
| validation: unsafe file path | `--file` 给了绝对路径或上层路径 | `--file` 必须是 CWD 内相对路径;先 `cd` 到素材目录再执行 |
|
|
58
|
-
|
|
59
|
-
## Command-Specific References
|
|
60
|
-
|
|
61
|
-
- 图片上传、`@path` 占位符、`file_token`:见 [lark-slides-media-upload.md](lark-slides-media-upload.md) 和 [lark-slides-create.md](lark-slides-create.md)。
|
|
62
|
-
- 块级替换、`block_id`、3350001 replace 细节:见 [lark-slides-replace-slide.md](lark-slides-replace-slide.md)。
|
|
63
|
-
- 原生 `slide.create` 包装、`before_slide_id` 和 jq 模板:见 [lark-slides-xml-presentation-slide-create.md](lark-slides-xml-presentation-slide-create.md)。
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## Required Flow
|
|
8
8
|
|
|
9
9
|
1. 记录创建或编辑返回的 `xml_presentation_id`,以及已知的 `slide_id` / `revision_id`。
|
|
10
|
-
2. 用 `
|
|
10
|
+
2. 用 `slides +xml-get` 回读全文 XML 到本地文件。
|
|
11
11
|
3. 检查实际页数是否符合计划或用户要求。
|
|
12
12
|
4. 检查每页 `<data>` 内是否有预期主要元素。
|
|
13
13
|
5. 检查没有明显空白页、破损页、缺失标题或缺失主视觉。
|
|
@@ -19,22 +19,24 @@
|
|
|
19
19
|
回读命令:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
lark-cli slides
|
|
23
|
-
--
|
|
22
|
+
lark-cli slides +xml-get --as user \
|
|
23
|
+
--presentation "YOUR_ID" \
|
|
24
|
+
--output .lark-slides/plan/<deck-or-task-id>/readback.xml \
|
|
25
|
+
--json
|
|
24
26
|
```
|
|
25
27
|
|
|
26
28
|
## Automated XML Text Overlap Lint
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
提交前本地 XML 必须运行 XML 语法和文本重叠静态检查:
|
|
29
31
|
|
|
30
32
|
```bash
|
|
31
|
-
python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentation.xml>
|
|
33
|
+
python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentation-or-slide.xml>
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
通过标准:
|
|
35
37
|
|
|
36
|
-
- `summary.error_count == 0`。任何 error
|
|
37
|
-
-
|
|
38
|
+
- `summary.error_count == 0`。任何 error 都必须先修复再提交接口。
|
|
39
|
+
- 当前工具检查 XML well-formed、SXSD tag/attr 支持情况、IconPark icon 类型和 icon 填充可见性、文本元素之间的明显重叠,以及 whiteboard 容器与外部 sibling 元素的可疑边界重叠;它不检查越界、文本高度不足、图文压盖、表格/图表压盖或底部拥挤。
|
|
38
40
|
- 该工具不能替代页数核对、关键内容核对或真实视觉验收。
|
|
39
41
|
|
|
40
42
|
常见 code 的处理方向:
|
|
@@ -42,7 +44,14 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
42
44
|
| code | 含义 | 处理方式 |
|
|
43
45
|
|------|------|----------|
|
|
44
46
|
| `xml_not_well_formed` | XML 语法错误或文本未转义 | 修复标签闭合、属性引号、`&` / `<` / `>` 转义 |
|
|
47
|
+
| `sml_prefixed_tag` | SML 元素使用了命名空间前缀,如 `<ns0:slide>` 或 `<sml:shape>` | 使用 `<slide xmlns="http://www.larkoffice.com/sml/2.0">` 的默认命名空间,或使用无前缀标签 |
|
|
48
|
+
| `sxsd_unsupported_tag` | 使用了 SXSD 不支持的标签 | 按 lint `hint` 替换为受支持标签;常见如 `textbox -> <shape type="text">`、`image -> <img>` |
|
|
49
|
+
| `sxsd_unsupported_attr` | 支持的标签上使用了不支持的属性 | 按 lint `hint` 改为支持的属性;常见如 `x -> topLeftX`、`fontColor -> color` |
|
|
50
|
+
| `iconpark_unsupported_icon_type` | `<icon>` 使用了 `iconpark-index.json` 中不存在的 `iconType` | 按 lint `hint` 改为名单内的 `iconType`,或先用 `scripts/iconpark_tool.py` 搜索 |
|
|
51
|
+
| `icon_missing_fill_color` | 视觉规范要求 `<icon>` 设置 `<fill><fillColor color="..."/></fill>`,避免图标不可见 | 给 `<icon>` 添加显式非透明填充色,例如 `rgba(37, 99, 235, 1)` |
|
|
52
|
+
| `icon_transparent_fill_color` | `<icon>` 的 `fillColor` 是透明色,不满足视觉可见性要求 | 改成与背景有足够对比的非透明颜色 |
|
|
45
53
|
| `bbox_overlap` | 文本元素的估算绘制区域明显重叠 | 拉开文本坐标、缩小文本框/字号,或改成明确的分栏/分组结构 |
|
|
54
|
+
| `whiteboard_external_overlap` | whiteboard 容器 bbox 与外部 sibling 元素跨边界重叠 | 按 lint `hint` 缩小或移动 whiteboard / 外部元素;若接受该风险,最终必须以截图 QA 或等价渲染视觉检查为准 |
|
|
46
55
|
|
|
47
56
|
## Page Count And Structure
|
|
48
57
|
|
|
@@ -80,7 +89,7 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
80
89
|
|
|
81
90
|
`slide.get` 回读 XML 时,`<whiteboard>` 块只返回位置属性(`topLeftX`、`topLeftY`、`width`、`height`),SVG / Mermaid 内容**不随 XML 返回**。
|
|
82
91
|
|
|
83
|
-
- whiteboard
|
|
92
|
+
- whiteboard 验证可以核对坐标是否越界:`topLeftX + width ≤ 960`,`topLeftY + height ≤ 540`;lint 还会报告 whiteboard 容器与外部 sibling 元素的可疑边界重叠。
|
|
84
93
|
- SVG 和 Mermaid 内容的正确性无法通过回读 XML 验证,需要人工视觉验收。
|
|
85
94
|
- 不要在验证记录中声称 whiteboard 内容已验证,除非用户确认了视觉效果。
|
|
86
95
|
|
|
@@ -101,7 +110,7 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
101
110
|
|
|
102
111
|
```text
|
|
103
112
|
验证记录:
|
|
104
|
-
- 回读:已执行
|
|
113
|
+
- 回读:已执行 slides +xml-get,实际页数 N / 预期 N。
|
|
105
114
|
- 关键页:架构解释 / Self-Attention / 对比或演进 / 总结页均存在。
|
|
106
115
|
- 结构:检查了主要 shape/img/table/chart 元素,无明显空白页或破损页。
|
|
107
116
|
- 布局:检查了标题层级、主视觉、重叠/越界/文本溢出风险。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
新建演示文稿或大幅改写页面时,在 `slide_plan.json` 完成后、生成 XML 前读取本文件。目标是让 `layout_type`、`visual_focus`、`text_density` 变成实际页面几何,而不是只写在 plan 里。
|
|
4
4
|
|
|
5
|
-
默认画布按 `960 x 540`
|
|
5
|
+
默认画布按 `960 x 540` 规划。模板 XML 可以覆盖具体坐标,但不能覆盖这些原则:页面要有主视觉区域、文本要受密度约束、不同 `layout_type` 必须产生明显不同的坐标结构。
|
|
6
6
|
|
|
7
7
|
## Core Rules
|
|
8
8
|
|
|
@@ -131,6 +131,7 @@ Purpose: make one metric or fact memorable.
|
|
|
131
131
|
|
|
132
132
|
Geometry:
|
|
133
133
|
- Reserve the largest object for the metric: font size often `64-110`, region at least `300 x 120`.
|
|
134
|
+
- Set `autoFit="normal-auto-fit"` on the metric's `<content>` so an oversized number shrinks to fit its box instead of overflowing.
|
|
134
135
|
- Pair the number with one explanation and optional 2-3 small supporting labels.
|
|
135
136
|
- Do not bury the number in a bullet list or small card.
|
|
136
137
|
|
|
@@ -168,7 +169,7 @@ Text:
|
|
|
168
169
|
|
|
169
170
|
Purpose: explain components, dependencies, or system flow.
|
|
170
171
|
|
|
171
|
-
Implementation: prefer `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>`
|
|
172
|
+
Implementation: prefer Mermaid `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>` as fallback.
|
|
172
173
|
|
|
173
174
|
Geometry:
|
|
174
175
|
- Main visual area should be a diagram, not prose.
|
|
@@ -184,7 +185,7 @@ Text:
|
|
|
184
185
|
|
|
185
186
|
Purpose: show operational steps, workflow, or cause-effect path.
|
|
186
187
|
|
|
187
|
-
Implementation: prefer `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>`
|
|
188
|
+
Implementation: prefer Mermaid `<whiteboard>` (see `lark-slides-whiteboard.md`); use `<shape>` + `<line>` as fallback.
|
|
188
189
|
|
|
189
190
|
Geometry:
|
|
190
191
|
- Use numbered steps connected by arrows or lines.
|
|
@@ -263,7 +263,56 @@
|
|
|
263
263
|
- `<chartLegend>`
|
|
264
264
|
- `<chartTooltip>`
|
|
265
265
|
|
|
266
|
-
|
|
266
|
+
完整图表类型覆盖示例见 [slides_chart_demo.xml](slides_chart_demo.xml),其中包含柱状、条形、折线、面积、饼 / 环、雷达等原生 `<chart>` 示例,以及散点、气泡、漏斗、帕累托、瀑布等 `<whiteboard>` SVG 图表示例。
|
|
267
|
+
|
|
268
|
+
组合图示例(来自 [slides_chart_demo.xml](slides_chart_demo.xml)):
|
|
269
|
+
|
|
270
|
+
```xml
|
|
271
|
+
<chart width="556" height="350" topLeftX="42" topLeftY="132">
|
|
272
|
+
<chartPlotArea>
|
|
273
|
+
<chartPlot type="combo">
|
|
274
|
+
<chartExtra/>
|
|
275
|
+
<chartSeriesList>
|
|
276
|
+
<chartSeries index="1" comboType="column"/>
|
|
277
|
+
<chartSeries index="2" comboType="line" yAxisPosition="right">
|
|
278
|
+
<chartTooltip format="0%"/>
|
|
279
|
+
</chartSeries>
|
|
280
|
+
</chartSeriesList>
|
|
281
|
+
</chartPlot>
|
|
282
|
+
<chartAxes>
|
|
283
|
+
<chartAxis type="x">
|
|
284
|
+
<chartLabel fontSize="10"/>
|
|
285
|
+
</chartAxis>
|
|
286
|
+
<chartAxis type="y" position="left">
|
|
287
|
+
<chartGridLine color="rgb(226, 232, 240)"/>
|
|
288
|
+
<chartLabel fontSize="10"/>
|
|
289
|
+
</chartAxis>
|
|
290
|
+
<chartAxis type="y" position="right">
|
|
291
|
+
<chartLabel fontSize="10" format="0%"/>
|
|
292
|
+
</chartAxis>
|
|
293
|
+
</chartAxes>
|
|
294
|
+
</chartPlotArea>
|
|
295
|
+
<chartLegend position="bottom" fontSize="11"/>
|
|
296
|
+
<chartData>
|
|
297
|
+
<dim1>
|
|
298
|
+
<chartField name="季度">24Q1,24Q2,24Q3,24Q4,25Q1,25Q2,25Q3,25Q4</chartField>
|
|
299
|
+
</dim1>
|
|
300
|
+
<dim2>
|
|
301
|
+
<chartField name="营收">180,195,210,245,220,238,258,296</chartField>
|
|
302
|
+
<chartField name="增速">0.08,0.12,0.15,0.18,0.22,0.22,0.23,0.21</chartField>
|
|
303
|
+
</dim2>
|
|
304
|
+
</chartData>
|
|
305
|
+
<chartTitle fontSize="12" color="rgba(15, 30, 58, 1)" bold="true">营收(亿美元, 左轴) · 同比增速(%, 右轴)</chartTitle>
|
|
306
|
+
<chartStyle>
|
|
307
|
+
<chartBackground color="rgba(0, 0, 0, 0)"/>
|
|
308
|
+
<chartBorder color="rgb(222, 224, 227)" width="0"/>
|
|
309
|
+
<chartColorTheme>
|
|
310
|
+
<color value="rgb(28, 71, 120)"/>
|
|
311
|
+
<color value="rgb(240, 129, 54)"/>
|
|
312
|
+
</chartColorTheme>
|
|
313
|
+
</chartStyle>
|
|
314
|
+
</chart>
|
|
315
|
+
```
|
|
267
316
|
|
|
268
317
|
## 样式元素
|
|
269
318
|
|
|
@@ -139,15 +139,19 @@ XSD 中的 `title`、`headline`、`sub-headline`、`body`、`caption` 主要出
|
|
|
139
139
|
### icon
|
|
140
140
|
|
|
141
141
|
```xml
|
|
142
|
-
<icon iconType="iconpark/Base/setting.svg" topLeftX="80" topLeftY="120" width="32" height="32"
|
|
142
|
+
<icon iconType="iconpark/Base/setting.svg" topLeftX="80" topLeftY="120" width="32" height="32">
|
|
143
|
+
<fill>
|
|
144
|
+
<fillColor color="rgba(37, 99, 235, 1)"/>
|
|
145
|
+
</fill>
|
|
146
|
+
</icon>
|
|
143
147
|
```
|
|
144
148
|
|
|
145
|
-
`iconType` 必须来自已验证的 IconPark
|
|
149
|
+
`iconType` 必须来自已验证的 IconPark 路径;视觉 lint 规范要求 `fillColor` 显式设置为非透明颜色,避免图标不可见。需要语义图标时,先运行 `scripts/iconpark_tool.py search --query "<语义>"`,不要凭记忆拼路径。更多规则见 [iconpark.md](iconpark.md)。
|
|
146
150
|
|
|
147
151
|
### whiteboard
|
|
148
152
|
|
|
149
153
|
```xml
|
|
150
|
-
<!-- SVG
|
|
154
|
+
<!-- SVG 模式:<chart> 不支持的图表或自定义视觉、装饰元素 -->
|
|
151
155
|
<whiteboard topLeftX="580" topLeftY="120" width="340" height="280">
|
|
152
156
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
153
157
|
<rect x="60" y="80" width="40" height="140" rx="3" fill="rgba(59,130,246,0.85)"/>
|