@rezti/dsh-rez-suite 0.1.49 → 0.1.51

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.
Files changed (142) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/README.md +3 -3
  3. package/README.zh.md +2 -2
  4. package/cordis.patch.yml +1 -1
  5. package/lib/client.d.ts +31 -3
  6. package/lib/client.js +343 -7
  7. package/lib/index.js +244 -15
  8. package/lib/style.css +7 -0
  9. package/package.json +12 -11
  10. package/src/boss/mount.ts +4 -3
  11. package/src/boss/register.ts +1 -1
  12. package/src/boss/seed.ts +34 -0
  13. package/src/changelog.ts +48 -0
  14. package/src/channel-board.ts +55 -0
  15. package/src/client/locales.ts +62 -6
  16. package/src/client/panel/BoardTab.tsx +136 -0
  17. package/src/client/panel/ConfigTab.tsx +2 -2
  18. package/src/client/panel/StatusTab.tsx +31 -0
  19. package/src/client/panel/panel.module.css +7 -0
  20. package/src/client/settings-card.tsx +4 -1
  21. package/src/index.ts +3 -2
  22. package/src/protocol.ts +14 -0
  23. package/src/routes.ts +7 -1
  24. package/src/tools.ts +49 -6
  25. package/src/wecom-cli.ts +125 -0
  26. package/templates/boss/ops/AGENTS.md +2 -0
  27. package/templates/shared/wecom-cli.SOURCE.md +9 -0
  28. package/templates/shared/wecom-office/SKILL.md +32 -0
  29. package/templates/shared/wecomcli-calendar/SKILL.md +303 -0
  30. package/templates/shared/wecomcli-calendar/references/calendar-agenda.md +224 -0
  31. package/templates/shared/wecomcli-calendar/references/calendar-cancel.md +108 -0
  32. package/templates/shared/wecomcli-calendar/references/calendar-create.md +238 -0
  33. package/templates/shared/wecomcli-calendar/references/calendar-freebusy.md +207 -0
  34. package/templates/shared/wecomcli-calendar/references/calendar-meeting-room.md +170 -0
  35. package/templates/shared/wecomcli-calendar/references/calendar-search.md +206 -0
  36. package/templates/shared/wecomcli-calendar/references/calendar-update.md +272 -0
  37. package/templates/shared/wecomcli-contact/SKILL.md +58 -0
  38. package/templates/shared/wecomcli-disk/SKILL.md +389 -0
  39. package/templates/shared/wecomcli-doc/SKILL.md +137 -0
  40. package/templates/shared/wecomcli-doc/references/doc-contents-append.md +20 -0
  41. package/templates/shared/wecomcli-doc/references/doc-contents-overwrite.md +27 -0
  42. package/templates/shared/wecomcli-doc/references/doc-create.md +161 -0
  43. package/templates/shared/wecomcli-doc/scripts/build_docx.py +1375 -0
  44. package/templates/shared/wecomcli-doc-manage/SKILL.md +132 -0
  45. package/templates/shared/wecomcli-doc-manage/references/doc-members-update.md +24 -0
  46. package/templates/shared/wecomcli-doc-manage/references/doc-names-update.md +20 -0
  47. package/templates/shared/wecomcli-doc-manage/references/doc-rules-update.md +22 -0
  48. package/templates/shared/wecomcli-email/SKILL.md +218 -0
  49. package/templates/shared/wecomcli-email/references/forward-mail.md +131 -0
  50. package/templates/shared/wecomcli-email/references/get-mail.md +166 -0
  51. package/templates/shared/wecomcli-email/references/reply-mail.md +138 -0
  52. package/templates/shared/wecomcli-email/references/search-mail.md +111 -0
  53. package/templates/shared/wecomcli-email/references/security.md +53 -0
  54. package/templates/shared/wecomcli-email/references/send-mail.md +186 -0
  55. package/templates/shared/wecomcli-email/references/send-schedule.md +83 -0
  56. package/templates/shared/wecomcli-media/SKILL.md +98 -0
  57. package/templates/shared/wecomcli-meeting/SKILL.md +373 -0
  58. package/templates/shared/wecomcli-meeting/references/meeting-cancel.md +113 -0
  59. package/templates/shared/wecomcli-meeting/references/meeting-create.md +167 -0
  60. package/templates/shared/wecomcli-meeting/references/meeting-list.md +226 -0
  61. package/templates/shared/wecomcli-meeting/references/meeting-original-get.md +98 -0
  62. package/templates/shared/wecomcli-meeting/references/meeting-search.md +173 -0
  63. package/templates/shared/wecomcli-meeting/references/meeting-update.md +217 -0
  64. package/templates/shared/wecomcli-message/SKILL.md +200 -0
  65. package/templates/shared/wecomcli-shared/SKILL.md +73 -0
  66. package/templates/shared/wecomcli-sheet/SKILL.md +172 -0
  67. package/templates/shared/wecomcli-sheet/references/sheet-contents-update.md +47 -0
  68. package/templates/shared/wecomcli-sheet/references/sheet-ranges-get.md +45 -0
  69. package/templates/shared/wecomcli-sheet/references/sheet-rows-append.md +45 -0
  70. package/templates/shared/wecomcli-sheet/references/sheet-subsheets-add.md +26 -0
  71. package/templates/shared/wecomcli-sheet/references/sheet-subsheets-delete.md +20 -0
  72. package/templates/shared/wecomcli-smartpage/SKILL.md +170 -0
  73. package/templates/shared/wecomcli-smartpage/references/data-driven-pages.md +50 -0
  74. package/templates/shared/wecomcli-smartpage/references/formula/arraylist.md +369 -0
  75. package/templates/shared/wecomcli-smartpage/references/formula/datetime.md +283 -0
  76. package/templates/shared/wecomcli-smartpage/references/formula/logic.md +247 -0
  77. package/templates/shared/wecomcli-smartpage/references/formula/math.md +362 -0
  78. package/templates/shared/wecomcli-smartpage/references/formula/operators.md +246 -0
  79. package/templates/shared/wecomcli-smartpage/references/formula/pageblock.md +76 -0
  80. package/templates/shared/wecomcli-smartpage/references/formula/templates.md +410 -0
  81. package/templates/shared/wecomcli-smartpage/references/formula/text.md +377 -0
  82. package/templates/shared/wecomcli-smartpage/references/formula/user.md +22 -0
  83. package/templates/shared/wecomcli-smartpage/references/formula-reference.md +192 -0
  84. package/templates/shared/wecomcli-smartpage/references/mdx-syntax.md +739 -0
  85. package/templates/shared/wecomcli-smartpage/references/smartpage-edit.md +506 -0
  86. package/templates/shared/wecomcli-smartsheet/SKILL.md +154 -0
  87. package/templates/shared/wecomcli-smartsheet/assets/templates/README.md +53 -0
  88. package/templates/shared/wecomcli-smartsheet/assets/templates/ai_efficiency.md +709 -0
  89. package/templates/shared/wecomcli-smartsheet/assets/templates/connect_to_app.md +380 -0
  90. package/templates/shared/wecomcli-smartsheet/assets/templates/financial_accounting.md +369 -0
  91. package/templates/shared/wecomcli-smartsheet/assets/templates/hr_and_administration.md +475 -0
  92. package/templates/shared/wecomcli-smartsheet/assets/templates/ledger_records.md +156 -0
  93. package/templates/shared/wecomcli-smartsheet/assets/templates/manufacturing.md +395 -0
  94. package/templates/shared/wecomcli-smartsheet/assets/templates/marketing.md +186 -0
  95. package/templates/shared/wecomcli-smartsheet/assets/templates/office_essentials.md +299 -0
  96. package/templates/shared/wecomcli-smartsheet/assets/templates/personal_efficiency.md +70 -0
  97. package/templates/shared/wecomcli-smartsheet/assets/templates/procurement_logistics.md +325 -0
  98. package/templates/shared/wecomcli-smartsheet/assets/templates/project_management.md +564 -0
  99. package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_customer.md +222 -0
  100. package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_ops.md +105 -0
  101. package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_project.md +109 -0
  102. package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_research.md +92 -0
  103. package/templates/shared/wecomcli-smartsheet/assets/templates/sales_and_operations.md +446 -0
  104. package/templates/shared/wecomcli-smartsheet/assets/templates/store_management.md +431 -0
  105. package/templates/shared/wecomcli-smartsheet/assets/templates/team_tasks.md +274 -0
  106. package/templates/shared/wecomcli-smartsheet/assets/templates/wechat_customer.md +384 -0
  107. package/templates/shared/wecomcli-smartsheet/assets/templates/work_report.md +100 -0
  108. package/templates/shared/wecomcli-smartsheet/references/common.md +143 -0
  109. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-chart-types.md +95 -0
  110. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-edit.md +589 -0
  111. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-field-types.md +438 -0
  112. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-formula.md +845 -0
  113. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-read.md +391 -0
  114. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-record-values.md +201 -0
  115. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-view-types.md +356 -0
  116. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-webhook-examples.md +176 -0
  117. package/templates/shared/wecomcli-smartsheet/references/smart-sheet-webhook.md +169 -0
  118. package/templates/shared/wecomcli-todo/SKILL.md +76 -0
  119. package/templates/shared/wecomcli-todo/references/todo-create.md +137 -0
  120. package/templates/shared/wecomcli-todo/references/todo-delete.md +63 -0
  121. package/templates/shared/wecomcli-todo/references/todo-finish.md +72 -0
  122. package/templates/shared/wecomcli-todo/references/todo-get.md +66 -0
  123. package/templates/shared/wecomcli-todo/references/todo-list.md +133 -0
  124. package/templates/shared/wecomcli-todo/references/todo-update.md +112 -0
  125. package/templates/staff/design/AGENTS.md +2 -1
  126. package/templates/staff/ecommerce/.agents/skills/ops-ecommerce/SKILL.md +6 -0
  127. package/templates/staff/ecommerce/AGENTS.md +49 -0
  128. package/templates/staff/ecommerce/BOOTSTRAP.md +23 -0
  129. package/templates/staff/ecommerce/IDENTITY.md +8 -0
  130. package/templates/staff/ecommerce/MEMORY.md +9 -0
  131. package/templates/staff/ecommerce/PRIORITIES.md +3 -0
  132. package/templates/staff/ecommerce/SOUL.md +5 -0
  133. package/templates/staff/ecommerce/USER.md +8 -0
  134. package/templates/staff/hr/.agents/skills/staff-onboard-keys/SKILL.md +3 -3
  135. package/templates/staff/publish/.agents/skills/ops-publish/SKILL.md +6 -0
  136. package/templates/staff/publish/AGENTS.md +59 -0
  137. package/templates/staff/publish/BOOTSTRAP.md +23 -0
  138. package/templates/staff/publish/IDENTITY.md +8 -0
  139. package/templates/staff/publish/MEMORY.md +9 -0
  140. package/templates/staff/publish/PRIORITIES.md +3 -0
  141. package/templates/staff/publish/SOUL.md +6 -0
  142. package/templates/staff/publish/USER.md +8 -0
@@ -0,0 +1,739 @@
1
+ # MDX 语法参考
2
+
3
+ 智能文档使用 MDX 语法编写页面内容,支持所有 Markdown 标准语法,并扩展了以下自定义组件。
4
+
5
+ > [前置依赖] 编写公式前请查阅 [公式参考](formula-reference.md)。本文档未提及的组件不要创造,否则会作为普通文本插入,导致页面不可读。
6
+
7
+ ## smartpage 和 page 标签
8
+
9
+ ```markdown
10
+ <smartpage>
11
+ <page title="页面 1">
12
+ # 页面标题
13
+ <card color="blue">
14
+ 子页面内部可以使用我们扩展的 Markdown 语法
15
+ </card>
16
+ <page title="页面 1 的子页面">
17
+ 子页面之间可以嵌套
18
+ </page>
19
+ </page>
20
+ <page title="页面 2">
21
+ 也可以并列
22
+ </page>
23
+ </smartpage>
24
+ ```
25
+
26
+ 使用规则:
27
+
28
+ - smartpage 和 page 标签是必要的
29
+ - 除非用户特意要求,使用单页面来承载内容
30
+ - 智能文档和子页面的标题应该符合对应内容的语义
31
+ - 如果使用嵌套页面,要满足总-分的结构
32
+ - **<page> 标签使用规范**:
33
+ - **新建智能文档场景**(使用 `wecom-cli smartpage import` 完成 Markdown 导入时):使用 `<page title="xxx">` 控制首页标题,此时 title 必填
34
+ - **追加/覆盖已有页面场景**(`wecom-cli smartpage pages append` / `wecom-cli smartpage pages overwrite`):当前已存在页面结构,markdown 不需要再包含 `<page>` 标签,否则会作为普通文本插入到页面中
35
+ - **title 属性不要 HTML 转义**:`<page title="...">` 中的 title 值是纯文本标题,`&`、`<`、`>` 等字符**直接书写即可**,不要转义为 `&amp;`、`&lt;`、`&gt;`。
36
+
37
+ ## 文本
38
+
39
+ ```markdown
40
+ 普通文本
41
+ **加粗文本**
42
+ _斜体文本_
43
+ ~~删除线~~
44
+ ```
45
+
46
+ ## 富文本
47
+
48
+ ```markdown
49
+ 这是一个<span style="color: blue; background-color: light_red_background">蓝色前景且红色背景的文字</span>
50
+ ```
51
+
52
+ ## 高亮卡片
53
+
54
+ ```markdown
55
+ <card color="blue">
56
+ <span style="color:blue">用于展示需要**突出**,也常与分栏共用实现更好的**对比**和**并列**效果。</span>
57
+ - 也可直接内嵌 Markdown 语法
58
+ </card>
59
+ ```
60
+
61
+ > [注意] 卡片内部的字体颜色必须与卡片颜色一致,以达到更好的视觉统一效果
62
+
63
+ ## 分栏布局
64
+
65
+ ```markdown
66
+ <grid>
67
+ <area width-ratio="0.5">左侧内容,占 50% 宽度</area>
68
+ <area width-ratio="0.5">右侧内容,占 50% 宽度</area>
69
+ </grid>
70
+ ```
71
+
72
+ - `width-ratio`:子容器宽度占比,范围 0.1~1.0,所有的子容器宽度占比之和为 1
73
+ - 分栏内可以嵌套卡片、列表、文本等内容
74
+ - 分栏的 area 元素可以内嵌 markdown 语法,个数大于等于 2
75
+
76
+ ## 列表
77
+
78
+ **有序列表**:当各项内容之间存在依赖关系、时间先后或等级排名时使用
79
+
80
+ ```markdown
81
+ 1. 第一步
82
+ 2. 第二步
83
+ 3. 第三步
84
+ ```
85
+
86
+ **无序列表**:当各项内容是并列关系时使用
87
+
88
+ ```markdown
89
+ - 苹果
90
+ - 香蕉
91
+ - 橙子
92
+ ```
93
+
94
+ ## 分割线
95
+
96
+ ```markdown
97
+ ---
98
+ ```
99
+
100
+ ## 居中与对齐
101
+
102
+ ```markdown
103
+ <div align="center">
104
+ 使用 align 属性可以居中/左右对齐(center/left/right)一个段落或标题
105
+ </div>
106
+ ```
107
+
108
+ ## 链接
109
+
110
+ 外部链接使用 Markdown 标准链接语法:
111
+
112
+ ```markdown
113
+ [访问 Google](https://www.google.com)
114
+ ```
115
+
116
+ 如果你不确定资源对应的外部链接,使用`#`作为代替,例如
117
+
118
+ ```markdown
119
+ [市场调研分析](#)
120
+ ```
121
+
122
+ ## 颜色
123
+
124
+ ### 字体颜色(font-color)
125
+
126
+ | 值 | 效果 |
127
+ | --- | --- |
128
+ | default | 默认颜色 |
129
+ | grey | 灰色 |
130
+ | red | 红色 |
131
+ | orange | 橙色 |
132
+ | yellow | 黄色 |
133
+ | green | 绿色 |
134
+ | cyan | 青色 |
135
+ | blue | 蓝色 |
136
+ | accent_blue | 强调蓝 |
137
+ | purple | 紫色 |
138
+
139
+ ### 背景颜色(background-color)
140
+
141
+ | 值 | 效果 |
142
+ | --- | --- |
143
+ | default_background | 默认背景 |
144
+ | light_grey_background | 浅灰背景 |
145
+ | grey_background | 灰色背景 |
146
+ | dark_background | 深色背景 |
147
+ | light_red_background | 浅红背景 |
148
+ | red_background | 红色背景 |
149
+ | light_orange_background | 浅橙色背景 |
150
+ | orange_background | 橙色背景 |
151
+ | light_yellow_background | 浅黄色背景 |
152
+ | yellow_background | 黄色背景 |
153
+ | light_green_background | 浅绿色背景 |
154
+ | green_background | 绿色背景 |
155
+ | light_cyan_background | 浅青色背景 |
156
+ | cyan_background | 青色背景 |
157
+ | light_blue_background | 浅蓝色背景 |
158
+ | blue_background | 蓝色背景 |
159
+ | light_accent_blue_background | 浅强调蓝背景 |
160
+ | accent_blue_background | 强调蓝背景 |
161
+ | light_purple_background | 浅紫色背景 |
162
+ | purple_background | 紫色背景 |
163
+
164
+ ### 卡片颜色(card color)
165
+
166
+ | 值 | 效果 |
167
+ | --- | --- |
168
+ | blue | 蓝色卡片 |
169
+ | dark_blue | 深蓝色卡片 |
170
+ | green | 绿色卡片 |
171
+ | dark_green | 深绿色卡片 |
172
+ | yellow | 黄色卡片 |
173
+ | dark_yellow | 深黄色卡片 |
174
+ | red | 红色卡片 |
175
+ | dark_red | 深红色卡片 |
176
+ | purple | 紫色卡片 |
177
+ | dark_purple | 深紫色卡片 |
178
+ | gray | 灰色卡片 |
179
+ | dark_gray | 深灰色卡片 |
180
+ | orange | 橙色卡片 |
181
+ | dark_orange | 深橙色卡片 |
182
+ | cyan | 青色卡片 |
183
+ | dark_cyan | 深青色卡片 |
184
+ | indigo | 靛蓝卡片 |
185
+ | dark_indigo | 深靛蓝卡片 |
186
+
187
+ > [提示] AI 生成内容时优先使用浅色系卡片(如蓝色、绿色、黄色等),以获得更好的视觉效果和可读性
188
+
189
+ ## 待办事项
190
+
191
+ 使用原生 Markdown 任务列表语法,无需自定义标签:
192
+
193
+ ```markdown
194
+ - [ ] 待完成的任务
195
+ - [x] 已完成的任务
196
+ ```
197
+
198
+ ## `<image>` 图片
199
+
200
+ 编写 `image` 的 MDX 内容前,需要先调用 `wecom-cli smartpage images upload` 上传图片,获取图片 URL。
201
+
202
+ ```markdown
203
+ <image src="图片url"/>
204
+ ```
205
+
206
+ 属性表:
207
+
208
+ | 属性 / 内容 | 必填 | 说明 |
209
+ | --- | --- | --- |
210
+ | `align` | 否 | 图片对齐方式 |
211
+ | `size` | 否 | 图片尺寸 |
212
+
213
+ ## `<formulaSpan>` 公式Span
214
+
215
+ 内联公式组件,标签内文本即公式字符串。
216
+
217
+ ```markdown
218
+ <formulaSpan id="本月销售额">[订单表].FILTER(MONTH([Each].[日期]) = MONTH(TODAY())).[金额].SUM()</formulaSpan>
219
+ ```
220
+
221
+ 属性表:
222
+
223
+ | 属性 / 内容 | 必填 | 说明 |
224
+ | --- | --- | --- |
225
+ | `id` | 否 | 公式名称,可供其它公式通过 [页面名.公式名] 引用 |
226
+
227
+ 使用规则:
228
+
229
+ - 公式内容直接写在标签内,必填,公式中的特殊符号需 XML 转义(`<` → `&lt;`、`>` → `&gt;`、`&` → `&amp;`、`"` → `&quot;`)
230
+
231
+ > [提示] 普通 Markdown 文本中,`&` 等特殊字符无需转义,直接书写即可。XML 转义仅在特定组件内部需要(如 `<formulaSpan>` 公式内容的标签体内)
232
+
233
+ ## `<input>` 输入框
234
+
235
+ 文本输入控件,输入结果可被按钮公式、图表筛选等场景读取。
236
+
237
+ ```markdown
238
+ <input name="姓名输入框" placeholder="请输入姓名" defaultValue="纯文本预填值" defaultValueFormula="">
239
+ <style size="large"></style>
240
+ </input>
241
+ ```
242
+
243
+ 属性表:
244
+
245
+ | 属性 / 子标签 | 必填 | 说明 |
246
+ | --- | --- | --- |
247
+ | `name` | 是 | 控件唯一标识,按钮公式中用 `[页面名.控件名]` 引用;也供图表/表格筛选条件通过 `valueScBlockId` 引用 |
248
+ | `placeholder` | 否 | 占位提示文字 |
249
+ | `defaultValue` | 否 | 纯文本预填值,与 `defaultValueFormula` 互斥 |
250
+ | `defaultValueFormula` | 否 | 公式预填值(如 `USER()`),与 `defaultValue` 互斥 |
251
+ | `style` | 否 | 样式子标签,属性包含:`size` 可选 `medium` / `large`,`width` 可选 `auto` / `fill`,`align` 可选 `left` / `mid` / `right` |
252
+
253
+ ## `<select>` 选择器
254
+
255
+ ```markdown
256
+ <select id="select_1" name="城市选择器" placeholder="请选择城市" allowMultiple="false" allowAddOption="true">
257
+ <options>
258
+ <option>北京</option>
259
+ <option>上海</option>
260
+ </options>
261
+ <defaultValue>北京</defaultValue>
262
+ <style size="large"></style>
263
+ </select>
264
+ ```
265
+
266
+ 属性表:
267
+
268
+ | 属性 / 子标签 | 必填 | 说明 |
269
+ | --- | --- | --- |
270
+ | `id` | 否 | 控件唯一标识,按钮公式中用 [页面名.控件id] 引用,也供图表/表格筛选条件通过 valueScBlockId 引用 |
271
+ | `name` | 否 | 控件名称 |
272
+ | `placeholder` | 否 | 占位提示文字 |
273
+ | `defaultValue` | 否 | 纯文本预填值 |
274
+ | `allowMultiple` | 否 | 是否允许多选,可选 `true` / `false` |
275
+ | `allowAddOption` | 否 | 是否允许用户在下拉选项中新增选项,可选 `true` / `false` |
276
+ | `options.option` | 否 | 预设的下拉选项,多个 `<option>` 标签定义多个可选项 |
277
+ | `style` | 否 | 样式子标签,属性包含:`size` 可选 `medium` / `large`,`width` 可选 `auto` / `fill` |
278
+
279
+
280
+ ## `<datePicker>` 日期选择器
281
+
282
+ 日期输入控件,所选日期可被按钮公式、图表筛选等场景读取。
283
+
284
+ ```markdown
285
+ <datePicker id="date_1" name="控件名称" placeholder="未选择时的提示文字" format="YYYY-MM-DD" defaultValue="2026-01-01">
286
+ <style size="large"></style>
287
+ </datePicker>
288
+ ```
289
+
290
+ 属性表:
291
+
292
+ | 属性 / 子标签 | 必填 | 说明 |
293
+ | --- | --- | --- |
294
+ | `id` | 否 | 逻辑ID,供图表筛选条件引用 |
295
+ | `name` | 否 | 控件名称 |
296
+ | `placeholder` | 否 | 未选择时的提示文字 |
297
+ | `format` | 否 | 日期格式,默认 `YYYY-MM-DD`;可选 `YYYY年M月D日` / `YYYY/M/D` / `M月D日` / `M/D/YYYY` / `D/M/YYYY` / `YYYY年M月D日 HH:mm` / `YYYY-MM-DD HH:mm` |
298
+ | `defaultValue` | 否 | 默认日期,格式 `YYYY-MM-DD` |
299
+ | `style` | 否 | 样式子标签,属性包含:`size` 可选 `medium` / `large`,`width` 可选 `auto` / `fill` |
300
+
301
+
302
+ ## `<button>` 按钮
303
+
304
+ 按钮控件,点击时执行 `formulaString` 中的公式。
305
+
306
+ ```markdown
307
+ <button id="button_1" displayValue="提交到表格" formulaString="ADDRECORD([成绩表], [成绩表.姓名], [学生成绩提交页.姓名输入框])">
308
+ <style size="large" color="blue"></style>
309
+ </button>
310
+ ```
311
+
312
+ 属性表:
313
+
314
+ | 属性 | 必填 | 说明 |
315
+ | --- | --- | --- |
316
+ | `id` | 否 | 控件唯一标识,用于公式引用 |
317
+ | `displayValue` | 否 | 按钮显示文字,默认 `按钮` |
318
+ | `formulaString` | 是 | 触发公式,如 `[表名.字段名]` 或 `[页面名.控件id]` |
319
+ | `style` | 否 | 样式字符串,分号分隔;`size` 可选 `medium` / `large`,`color` 可选 `blue` / `red` / `gray` / `white` |
320
+
321
+ ## 图表组件
322
+
323
+ > **前置依赖**:所有统计图表(`<columnChart>` / `<barChart>` / `<lineChart>` / `<pieChart>` / `<comboChart>` / `<statisticsChart>` / `<wordCloudChart>`)以及 `<smartsheetView>` 均需基于智能文档**内置绑定的智能表格**。
324
+ > 创建智能文档后,通过 `wecom-cli smartpage databases get` 获取内置数据表的子表 ID,再委托 `wecomcli-smartsheet` 技能完成数据表建设(创建子表 / 字段),最后再编写页面的 mdx 内容。**不要**使用外部独立创建的智能表格。
325
+
326
+ ### `<filterInfo>` 筛选条件
327
+
328
+ 图表、智能表格视图等组件通用的筛选条件容器。
329
+
330
+ ```markdown
331
+ <filterInfo type="custom" conjunction="and">
332
+ <conditions>
333
+ <!-- 静态筛选:直接使用 value -->
334
+ <condition fieldId="日期字段" operator="is" value="2026-01-15"></condition>
335
+ <!-- 动态筛选:引用上方控件逻辑 id(如 input_1) -->
336
+ <condition fieldId="姓名" operator="contains" valueScBlockId="input_1"></condition>
337
+ <!-- 单选/多选字段筛选(option 类型):使用 value 绑定选项名称 -->
338
+ <condition fieldId="状态" operator="is" value="已完成"></condition>
339
+ </conditions>
340
+ </filterInfo>
341
+ ```
342
+
343
+ 属性表:
344
+
345
+ | 属性 / 子标签 | 必填 | 说明 |
346
+ | --- | --- | --- |
347
+ | `type` | 是 | 固定值 `custom` |
348
+ | `conjunction` | 是 | 多条件逻辑关系,可选 `and` / `or` |
349
+ | `<condition>` | 是 | 筛选条件项,可包含多条 |
350
+ | `condition.fieldId` | 是 | 筛选字段名 |
351
+ | `condition.operator` | 是 | 可选值:`is` / `is_not` / `contains` / `does_not_contain` / `is_greater` / `is_greater_or_equal` / `is_less` / `is_less_or_equal` / `is_empty` / `is_not_empty` |
352
+ | `condition.value` | 否 | 静态筛选值,与 `valueScBlockId` 互斥 |
353
+ | `condition.valueScBlockId` | 否 | 动态绑定控件的 `id`,与 `value` 互斥 |
354
+
355
+ 使用规则:
356
+
357
+ - 多条件之间的关系由 `conjunction` 决定,全部组件共用此规则
358
+ - **时间类型字段筛选**:当筛选参数为时间时,`value` 必须传入 `YYYY-mm-dd` 格式的字符串,如 `2026-01-15`,且 `operator` 支持选择 `is` / `is_not` / `is_greater` / `is_less` / `is_empty` / `is_not_empty`,其余均不支持,传入将导致组件数据不可用
359
+ - **时间范围筛选**:当需要筛选某段时间范围(如早于某日期且晚于某日期/本月/本年)时,需要设置两个条件分别使用 `is_greater` 和 `is_less` 操作符,并使用 `and` 逻辑连接。
360
+ - **本月 / 本年等区间筛选的端点取值规则**:由于 `is_greater` 与 `is_less` 均为**严格大于 / 严格小于**(不含等号),筛选「本月」「本年」等闭区间时,端点必须分别取**目标区间第一天的前一天**与**目标区间最后一天的后一天**,从而保证目标区间内的所有日期都被包含。
361
+ - 示例:筛选「本月」(以 5 月为例),应使用 `is_greater 2026-04-30` 且 `is_less 2026-06-01`;
362
+ - 示例:筛选「本年」(以 2026 年为例),应使用 `is_greater 2025-12-31` 且 `is_less 2027-01-01`。
363
+ - **单选类型字段筛选**:当筛选的字段为单选类型时,`operator` 支持选择 `is` / `is_not` / `contains` / `does_not_contain` / `is_empty` / `is_not_empty`,其余均不支持
364
+
365
+ ### statType 统计类型速查
366
+
367
+ 下表为图表组件中 `statType` / `series.statType` 属性的可选值,多图表公用。
368
+
369
+ | 值 | 含义 | 适用字段类型 |
370
+ | --- | --- | --- |
371
+ | 8 | 求和 | 数字 |
372
+ | 9 | 平均值 | 数字 |
373
+ | 10 | 最大值 | 数字 |
374
+ | 11 | 最小值 | 数字 |
375
+
376
+ 使用规则:
377
+ - statType 只能用于数字类型的字段,或公式输出为数字的字段。如果字段类型不是数字,使用 statType 可能会导致图表无法正常显示或统计结果不正确。
378
+
379
+ ### seriesType 统计方式
380
+
381
+ 下表为图表组件中 `seriesConfig.seriesType` 属性的可选值,多图表公用。
382
+
383
+ | 值 | 含义 |
384
+ | --- | --- |
385
+ | 0 | 未知 |
386
+ | 1 | 统计记录总数 |
387
+ | 2 | 列统计 |
388
+
389
+ 使用规则:
390
+
391
+ - **当 `seriesType="1"`(统计记录总数 / 行数统计)时,`<seriesConfig>` 内部不需要填写 `<series>` 子标签**,图表会直接对当前数据表/筛选后的记录条数做统计。
392
+ - 当 `seriesType="2"`(列统计)时,必须在 `<seriesConfig>` 内填写 `<series>` 子标签,并通过 `series.fieldId` 与 `series.statType` 指定统计字段及统计方式(求和、平均值等)。
393
+ - 不显式填写 `seriesType` 时,按图表默认行为(一般等同于 `2` 列统计)处理。
394
+
395
+ ### `<columnChart>` 柱状图
396
+
397
+ 以纵向柱子呈现分类数值对比的图表。适用于在有限类别上进行量化对比,如各部门销售额、各产品销量。提供二级分组后可表达嵌套对比(堆积 / 百分比堆积)。
398
+
399
+ ```markdown
400
+ <columnChart>
401
+ <tableId>tbl001</tableId>
402
+ <categoryFieldId>月份</categoryFieldId>
403
+ <secondaryCategoryFieldId>类别</secondaryCategoryFieldId>
404
+ <config title="标题" chartSubType="13">
405
+ <seriesConfig seriesType="2">
406
+ <series fieldId="金额" statType="8"></series>
407
+ </seriesConfig>
408
+ </config>
409
+ <filterInfo type="custom" conjunction="and">
410
+ <conditions>
411
+ <condition fieldId="状态" operator="is" value="已完成"></condition>
412
+ </conditions>
413
+ </filterInfo>
414
+ </columnChart>
415
+ ```
416
+
417
+ 属性表:
418
+
419
+ | 属性 / 子标签 | 必填 | 说明 |
420
+ | --- | --- | --- |
421
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
422
+ | `<categoryFieldId>` | 是 | 横轴分组字段名 |
423
+ | `<secondaryCategoryFieldId>` | 否 | 二级分组字段;使用时 `<series>` 只能有 1 个 |
424
+ | `config.title` | 否 | 图表标题 |
425
+ | `config.chartSubType` | 否 | 子类型,`13` 普通(默认) / `33` 堆积 / `34` 百分比堆积 |
426
+ | `seriesConfig.seriesType` | 否 | 统计方式,见 [seriesType 统计方式](#seriestype-统计方式);为 `1`(行数统计)时内部 `<series>` 不填 |
427
+ | `series.fieldId` | 列统计必填 | 统计字段名称(仅 `seriesType="2"` 时填写) |
428
+ | `series.statType` | 列统计必填 | 统计类型,见 [statType 统计类型速查](#stattype-统计类型速查)(仅 `seriesType="2"` 时填写) |
429
+ | `<filterInfo>` | 否 | 筛选条件,详见 [<filterInfo>](#filterinfo-筛选条件) |
430
+
431
+ ### `<barChart>` 条形图
432
+
433
+ 条形图即横向柱状图,适用于分类名称较长、类别数量较多,或需要按数值排名展示的场景(如 TOP 客户、各项目耗时排行榜)。
434
+
435
+ ```markdown
436
+ <barChart>
437
+ <tableId>订单表</tableId>
438
+ <categoryFieldId>地区</categoryFieldId>
439
+ <config title="各地区销售额" chartSubType="29">
440
+ <seriesConfig seriesType="2">
441
+ <series fieldId="金额" statType="8"></series>
442
+ </seriesConfig>
443
+ </config>
444
+ <filterInfo type="custom" conjunction="and">
445
+ <conditions>
446
+ <condition fieldId="状态" operator="is" value="已完成"></condition>
447
+ </conditions>
448
+ </filterInfo>
449
+ </barChart>
450
+ ```
451
+
452
+ 属性表:
453
+
454
+ | 属性 / 子标签 | 必填 | 说明 |
455
+ | --- | --- | --- |
456
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
457
+ | `<categoryFieldId>` | 是 | 纵轴字段名 |
458
+ | `config.title` | 否 | 图表标题 |
459
+ | `config.chartSubType` | 否 | 子类型,`11` 普通(默认) / `29` 堆积 / `30` 百分比堆积 |
460
+ | 其余字段 | — | 同 [柱状图公用字段说明](#columnchart-柱状图)(`seriesConfig` / `series` / `<filterInfo>`) |
461
+
462
+
463
+ ### `<lineChart>` 折线图
464
+
465
+ 折线图以点连线的方式展示连续变化趋势,适用于观察指标随时间的趋势(月度销售走势、每日活跃用户变化等)。
466
+
467
+ ```markdown
468
+ <lineChart>
469
+ <tableId>销售表</tableId>
470
+ <categoryFieldId>日期</categoryFieldId>
471
+ <config title="销售额趋势" isSmooth="true">
472
+ <seriesConfig seriesType="2">
473
+ <series fieldId="金额" statType="8"></series>
474
+ </seriesConfig>
475
+ </config>
476
+ <filterInfo type="custom" conjunction="and">
477
+ <conditions>
478
+ <condition fieldId="状态" operator="is" value="已完成"></condition>
479
+ </conditions>
480
+ </filterInfo>
481
+ </lineChart>
482
+ ```
483
+
484
+ 属性表:
485
+
486
+ | 属性 / 子标签 | 必填 | 说明 |
487
+ | --- | --- | --- |
488
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
489
+ | `<categoryFieldId>` | 是 | 横轴字段,建议使用时间字段 |
490
+ | `config.title` | 否 | 图表标题 |
491
+ | `config.isSmooth` | 否 | 是否平滑曲线,可选 `true` / `false`,默认 `false` |
492
+ | 其余字段 | — | 同 [柱状图公用字段说明](#columnchart-柱状图)(`seriesConfig` / `series` / `<filterInfo>`) |
493
+
494
+
495
+ ### `<pieChart>` 饼图 / 环图
496
+
497
+ 以扇形区块展示各分类在总体中的占比,适用于展示构成比例(成本构成、不同渠道贡献占比等)。
498
+
499
+ ```markdown
500
+ <pieChart>
501
+ <tableId>销售表</tableId>
502
+ <categoryFieldId>类别</categoryFieldId>
503
+ <config title="各类别销售额分布" chartSubType="8">
504
+ <seriesConfig seriesType="2">
505
+ <series fieldId="金额" statType="8"></series>
506
+ </seriesConfig>
507
+ </config>
508
+ <filterInfo type="custom" conjunction="and">
509
+ <conditions>
510
+ <condition fieldId="状态" operator="is" value="已完成"></condition>
511
+ </conditions>
512
+ </filterInfo>
513
+ </pieChart>
514
+ ```
515
+
516
+ 属性表:
517
+
518
+ | 属性 / 子标签 | 必填 | 说明 |
519
+ | --- | --- | --- |
520
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
521
+ | `<categoryFieldId>` | 是 | 分组字段名称 |
522
+ | `config.title` | 否 | 图表标题 |
523
+ | `config.chartSubType` | 否 | 子类型,`8` 饼图(默认) / `10` 环图 |
524
+ | 其余字段 | — | 同 [柱状图公用字段说明](#columnchart-柱状图)(`seriesConfig` / `series` / `<filterInfo>`) |
525
+
526
+
527
+ ### `<comboChart>` 组合图
528
+
529
+ 可将每个系列渲染为柱状图或折线图,支持左右双轴,适用于数值范围差异较大的跨指标展示(如销售额 vs 增长率)。
530
+
531
+ ```markdown
532
+ <comboChart>
533
+ <tableId>tbl001</tableId>
534
+ <categoryFieldId>fld_month</categoryFieldId>
535
+ <config title="销售额与增长率">
536
+ <seriesConfig seriesType="2">
537
+ <series fieldId="fld_amount" statType="8" chartType="13" axisPosition="2"></series>
538
+ <series fieldId="fld_growth_rate" statType="9" chartType="3" axisPosition="3"></series>
539
+ </seriesConfig>
540
+ </config>
541
+ <filterInfo type="custom" conjunction="and">
542
+ <conditions>
543
+ <condition fieldId="fld_status" operator="is" value="option-string"></condition>
544
+ </conditions>
545
+ </filterInfo>
546
+ </comboChart>
547
+ ```
548
+
549
+ 属性表:
550
+
551
+ | 属性 / 子标签 | 必填 | 说明 |
552
+ | --- | --- | --- |
553
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
554
+ | `<categoryFieldId>` | 是 | 横轴字段名 |
555
+ | `config.title` | 否 | 图表标题 |
556
+ | `seriesConfig.seriesType` | 否 | 统计方式,见 [seriesType 统计方式](#seriestype-统计方式);组合图通常使用 `2`(列统计) |
557
+ | `series.fieldId` | 是 | 统计字段名 |
558
+ | `series.statType` | 是 | 统计类型,见 [statType 统计类型速查](#stattype-统计类型速查) |
559
+ | `series.chartType` | 是 | 系列图表类型,`13` 柱状图 / `3` 折线图 |
560
+ | `series.axisPosition` | 否 | 所在坐标轴,`2` 左轴(默认) / `3` 右轴 |
561
+ | `<filterInfo>` | 否 | 筛选条件,详见 [<filterInfo>](#filterinfo-筛选条件) |
562
+
563
+ - 至少提供 2 个 `<series>` 才能体现组合效果
564
+ - 组合图依赖具体字段的不同统计方式做对比,因此一般不使用 `seriesType="1"` 行数统计模式
565
+
566
+ ### `<statisticsChart>` 指标卡
567
+
568
+ 单个统计数值的大字号展示。适用于看板顶部突出关键指标,如“本月订单总数”、“当前在线人数”、“全年销售总额”。
569
+
570
+ ```markdown
571
+ <statisticsChart>
572
+ <tableId>员工表</tableId>
573
+ <statisticsFieldId>金额</statisticsFieldId>
574
+ <config title="总销售额" statType="8">
575
+ </config>
576
+ <filterInfo type="custom" conjunction="and">
577
+ <conditions>
578
+ <condition fieldId="fld_amount" operator="is_greater" valueScBlockId="input_1"></condition>
579
+ </conditions>
580
+ </filterInfo>
581
+ </statisticsChart>
582
+ ```
583
+
584
+ 属性表:
585
+
586
+ | 属性 / 子标签 | 必填 | 说明 |
587
+ | --- | --- | --- |
588
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
589
+ | `<statisticsFieldId>` | 否 | 统计字段名称,不填则统计记录总数 |
590
+ | `config.title` | 否 | 图表标题 |
591
+ | `config.statType` | 否 | 统计类型,见 [statType 统计类型速查](#stattype-统计类型速查);不填时为记录计数模式 |
592
+ | `<filterInfo>` | 否 | 筛选条件,详见 [<filterInfo>](#filterinfo-筛选条件) |
593
+
594
+ ### `<wordCloudChart>` 词云图
595
+
596
+ 按词频大小展示文本中的高频词汇。适用于快速识别评论、反馈、资讯标题等文本字段中的热点词汇。
597
+
598
+ ```markdown
599
+ <wordCloudChart>
600
+ <tableId>tbl001</tableId>
601
+ <keywordFieldId>fld_comments</keywordFieldId>
602
+ <config title="评论关键词" wordCount="50" hideCommonWords="false">
603
+ </config>
604
+ <filterInfo type="custom" conjunction="and">
605
+ <conditions>
606
+ <condition fieldId="fld_priority" operator="is" value="highOptionId"></condition>
607
+ </conditions>
608
+ </filterInfo>
609
+ </wordCloudChart>
610
+ ```
611
+
612
+ 属性表:
613
+
614
+ | 属性 / 子标签 | 必填 | 说明 |
615
+ | --- | --- | --- |
616
+ | `<tableId>` | 是 | 关联的数据表标识,可填入数据表名称或数据表ID |
617
+ | `<keywordFieldId>` | 是 | 关键字字段,仅支持文本类型 |
618
+ | `config.title` | 否 | 图表标题 |
619
+ | `config.wordCount` | 否 | 最大显示词数 |
620
+ | `config.hideCommonWords` | 否 | 是否过滤常用词,可选 `true` / `false` |
621
+ | `<filterInfo>` | 否 | 筛选条件,详见 [<filterInfo>](#filterinfo-筛选条件) |
622
+
623
+ 使用规则:
624
+
625
+ - `<keywordFieldId>` 仅支持文本类型字段
626
+
627
+ ## `<smartsheetView>` 智能表格视图
628
+
629
+ 将关联智能表格的数据以表格视图的形式直接嵌入到智能文档中,可叠加筛选条件。适用于在文档中直接展示某张子表的明细数据,并配合上方的输入控件做联动筛选。
630
+
631
+ ```markdown
632
+ <smartsheetView tableId="数据表ID" title="视图标题">
633
+ <filterInfo type="custom" conjunction="and">
634
+ <conditions>
635
+ <!-- 动态筛选:引用上方 input_1 控件的输入值 -->
636
+ <condition fieldId="name-field-id" operator="contains" valueScBlockId="input_1"></condition>
637
+ </conditions>
638
+ </filterInfo>
639
+ </smartsheetView>
640
+ ```
641
+
642
+ 属性表:
643
+
644
+ | 属性 / 子标签 | 必填 | 说明 |
645
+ | --- | --- | --- |
646
+ | `tableId` | 是 | 数据表ID(注意:本组件以**属性**而非子标签出现) |
647
+ | `title` | 否 | 视图标题 |
648
+ | `<filterInfo>` | 否 | 筛选条件,格式与图表组件完全一致,详见 [<filterInfo>](#filterinfo-筛选条件) |
649
+
650
+ 使用规则:
651
+
652
+ - 标签名为驼峰命名法 `smartsheetView`,属性名也是驼峰式,不要写作 `smartsheet_view`
653
+ - 推荐通过 `valueScBlockId` 实现与上方控件的动态联动筛选
654
+
655
+ ## `<linkcard>` 链接卡片
656
+
657
+ 外链卡片组件,将一个链接以带标题、描述、缩略图、图标的卡片形式展示。适用于推荐外部资源、引用站外资料等场景。
658
+
659
+ ```markdown
660
+ <linkcard linkUrl="https://docs.qq.com" linkName="链接标题" linkDescription="描述文字,默认为链接地址" linkThumbnail="缩略图URL" linkIcon="图标URL">
661
+ </linkcard>
662
+ ```
663
+
664
+ 属性表:
665
+
666
+ | 属性 | 必填 | 说明 |
667
+ | --- | --- | --- |
668
+ | `linkUrl` | 是 | 链接地址 |
669
+ | `linkName` | 是 | 链接标题 |
670
+ | `linkDescription` | 否 | 描述文字,未填时默认显示链接地址 |
671
+ | `linkThumbnail` | 否 | 缩略图 URL,未填时使用默认缩略图 |
672
+ | `linkIcon` | 否 | 图标 URL,未填时使用默认 icon |
673
+
674
+ ## `<flowChart>` 流程图(只读组件)
675
+
676
+ 智能文档中的流程图组件。**只读,不可通过 MDX 创建或修改,改写页面时必须原样保留。**
677
+
678
+ ```markdown
679
+ <flowChart hinaId="..." width="..." height="..." />
680
+ ```
681
+
682
+
683
+ ## 普通表格
684
+
685
+ 普通表格支持两种写法:Markdown 风格的表格适合常规数据展示,HTML 风格的表格支持合并单元格、对齐方式与背景颜色等复杂样式。
686
+
687
+ ### Markdown 风格表格
688
+
689
+ 适用于表头简单、无合并单元格的常规表格场景:
690
+
691
+ ```markdown
692
+ | 序号 | 姓名 | 部门 | 状态 |
693
+ | --- | --- | --- | --- |
694
+ | 1 | 张三 | 研发部 | 进行中 |
695
+ | 2 | 李四 | 产品部 | 已完成 |
696
+ | 3 | 王五 | 设计部 | 待开始 |
697
+ ```
698
+
699
+ ### HTML 风格表格
700
+
701
+ 当需要合并单元格、设置列宽、添加背景色等复杂样式时,使用 HTML 表格语法:
702
+
703
+ > **提示**:当智能文档返回带有复杂样式(`width`、`colspan`、`rowspan` 等)的 HTML 表格时,请在修改时保持相同的 HTML 格式,以确保样式信息不被丢失。
704
+
705
+ ```markdown
706
+ <table>
707
+ <colgroup><col span="2" width="120"/></colgroup>
708
+ <thead><tr><th background-color="light_grey_background">表头</th><th background-color="light_grey_background">表头</th></tr></thead>
709
+ <tbody><tr><td>单元格</td><td>单元格</td></tr></tbody>
710
+ </table>
711
+ ```
712
+
713
+ 支持的能力:
714
+
715
+ - 合并单元格(`colspan` / `rowspan`)
716
+ - 对齐(`align="left|center|right"`)
717
+ - 背景颜色(`background-color`)
718
+
719
+ ## 转义规则
720
+
721
+ MDX 把 `<`、`>`、`{`、`}` 视为 JSX 语法符号,正文中出现时需转义:
722
+
723
+ | 原文字符 | 转义写法 |
724
+ | --- | --- |
725
+ | `<` | `&lt;` |
726
+ | `>` | `&gt;` |
727
+ | `{` | `&#123;` |
728
+ | `}` | `&#125;` |
729
+ | `~` | `\~` |
730
+
731
+ 正文中的 `<`、`>`、`{`、`}` 按上表转义并以正文形式呈现,不要用代码块包裹来规避转义。
732
+
733
+ ### 不需要转义的场景
734
+
735
+ - **MDX 标签属性值内**(如 `<span style="color: grey">`):属性值里的 `<` `>` 已在引号内,不需要额外转义
736
+ - **代码围栏(` ``` … ``` `)内**:代码块内容原样保留,渲染器不解析 JSX,无需转义;
737
+ - **行内代码(`` `…` ``)内**:同上,原样保留
738
+ - **Markdown 链接 URL 部分**(如 `[文字](https://…)`):URL 里的 `&` 等字符保持原样,不转义
739
+ - **删除线**:`~` 是删除线时无需转义