king-design-analyzer 1.0.0

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 (92) hide show
  1. package/README.md +151 -0
  2. package/components/affix.json +178 -0
  3. package/components/az.json +86 -0
  4. package/components/badge.json +162 -0
  5. package/components/billtypes.json +90 -0
  6. package/components/breadcrumb.json +220 -0
  7. package/components/button.json +511 -0
  8. package/components/card.json +334 -0
  9. package/components/cardcontent.json +144 -0
  10. package/components/carousel.json +207 -0
  11. package/components/cascader.json +373 -0
  12. package/components/checkbox.json +298 -0
  13. package/components/code.json +318 -0
  14. package/components/collapse.json +358 -0
  15. package/components/copy.json +220 -0
  16. package/components/datepicker.json +529 -0
  17. package/components/descriptions.json +309 -0
  18. package/components/dialog.json +460 -0
  19. package/components/divider.json +287 -0
  20. package/components/drawer.json +563 -0
  21. package/components/dropdown.json +407 -0
  22. package/components/editable.json +331 -0
  23. package/components/ellipsis.json +218 -0
  24. package/components/form.json +638 -0
  25. package/components/grid.json +377 -0
  26. package/components/icon.json +442 -0
  27. package/components/input.json +821 -0
  28. package/components/layoutcontent.json +210 -0
  29. package/components/menu.json +482 -0
  30. package/components/message.json +345 -0
  31. package/components/pagination.json +444 -0
  32. package/components/paginationplus.json +74 -0
  33. package/components/popover.json +456 -0
  34. package/components/progress.json +354 -0
  35. package/components/protable.json +132 -0
  36. package/components/radio.json +246 -0
  37. package/components/region.json +115 -0
  38. package/components/select.json +676 -0
  39. package/components/slider.json +422 -0
  40. package/components/spin.json +232 -0
  41. package/components/spinner.json +441 -0
  42. package/components/status.json +75 -0
  43. package/components/steps.json +292 -0
  44. package/components/switch.json +357 -0
  45. package/components/table.json +1057 -0
  46. package/components/tablecolumnid.json +217 -0
  47. package/components/tabs.json +363 -0
  48. package/components/tag.json +504 -0
  49. package/components/timepicker.json +447 -0
  50. package/components/tip.json +322 -0
  51. package/components/tooltip.json +416 -0
  52. package/components/tour.json +395 -0
  53. package/components/transfer.json +414 -0
  54. package/components/tree.json +480 -0
  55. package/components/treeselect.json +478 -0
  56. package/components/upload.json +499 -0
  57. package/components/virtuallist.json +178 -0
  58. package/dist/ast/index.d.mts +71 -0
  59. package/dist/ast/index.d.ts +71 -0
  60. package/dist/ast/index.js +15 -0
  61. package/dist/ast/index.mjs +2 -0
  62. package/dist/chunk-4BUGNH4F.mjs +62 -0
  63. package/dist/chunk-5H7N2A5X.mjs +1 -0
  64. package/dist/chunk-5IF32MBB.js +603 -0
  65. package/dist/chunk-ARWRNWDW.js +219 -0
  66. package/dist/chunk-C3L4IXJC.mjs +577 -0
  67. package/dist/chunk-GNVCC37B.js +102 -0
  68. package/dist/chunk-N4UIA6DN.js +68 -0
  69. package/dist/chunk-RAMIBZAU.mjs +216 -0
  70. package/dist/chunk-RNQHI7YG.js +64 -0
  71. package/dist/chunk-TB6BF5TJ.mjs +99 -0
  72. package/dist/chunk-UX7KGX45.mjs +66 -0
  73. package/dist/chunk-YTEYDSDW.js +2 -0
  74. package/dist/full/index.d.mts +29 -0
  75. package/dist/full/index.d.ts +29 -0
  76. package/dist/full/index.js +16 -0
  77. package/dist/full/index.mjs +3 -0
  78. package/dist/index.d.mts +5 -0
  79. package/dist/index.d.ts +5 -0
  80. package/dist/index.js +43 -0
  81. package/dist/index.mjs +6 -0
  82. package/dist/runtime/index.d.mts +14 -0
  83. package/dist/runtime/index.d.ts +14 -0
  84. package/dist/runtime/index.js +15 -0
  85. package/dist/runtime/index.mjs +2 -0
  86. package/dist/sfcCompiler-m51JOfWs.d.mts +22 -0
  87. package/dist/sfcCompiler-m51JOfWs.d.ts +22 -0
  88. package/dist/static/index.d.mts +14 -0
  89. package/dist/static/index.d.ts +14 -0
  90. package/dist/static/index.js +19 -0
  91. package/dist/static/index.mjs +2 -0
  92. package/package.json +88 -0
@@ -0,0 +1,358 @@
1
+ {
2
+ "id": "collapse",
3
+ "name": "Collapse",
4
+ "displayName": "折叠面板",
5
+ "category": "data",
6
+ "description": "折叠面板组件,用于将内容区域折叠/展开。支持手风琴模式(同时只展开一个)、箭头位置自定义、无边框样式等。配合 CollapseItem 子组件使用。",
7
+ "importStatement": "import { Collapse, CollapseItem } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "value",
11
+ "description": "当前展开的 CollapseItem 取值,可用 v-model 双向绑定",
12
+ "type": {
13
+ "raw": "string[]",
14
+ "kind": "array"
15
+ },
16
+ "required": false,
17
+ "default": "undefined",
18
+ "usageExample": "<Collapse v-model=\"activeKeys\">"
19
+ },
20
+ {
21
+ "name": "accordion",
22
+ "description": "是否展示手风琴风格,同时只能展开一个面板",
23
+ "type": {
24
+ "raw": "boolean",
25
+ "kind": "boolean"
26
+ },
27
+ "required": false,
28
+ "default": "false",
29
+ "usageExample": "<Collapse v-model=\"activeKeys\" accordion>"
30
+ },
31
+ {
32
+ "name": "arrow",
33
+ "description": "指定箭头位置",
34
+ "type": {
35
+ "raw": "\"right\" | \"left\"",
36
+ "kind": "union",
37
+ "unionTypes": [
38
+ "right",
39
+ "left"
40
+ ]
41
+ },
42
+ "required": false,
43
+ "default": "\"right\"",
44
+ "allowedValues": [
45
+ {
46
+ "value": "right",
47
+ "label": "箭头在右侧",
48
+ "isDefault": true
49
+ },
50
+ {
51
+ "value": "left",
52
+ "label": "箭头在左侧"
53
+ }
54
+ ],
55
+ "usageExample": "<Collapse arrow=\"left\">"
56
+ },
57
+ {
58
+ "name": "noBorder",
59
+ "description": "是否展示无边框的简洁样式",
60
+ "type": {
61
+ "raw": "boolean",
62
+ "kind": "boolean"
63
+ },
64
+ "required": false,
65
+ "default": "false",
66
+ "usageExample": "<Collapse noBorder>"
67
+ }
68
+ ],
69
+ "events": [],
70
+ "slots": [
71
+ {
72
+ "name": "title",
73
+ "description": "扩展标题"
74
+ }
75
+ ],
76
+ "methods": [],
77
+ "subComponents": [
78
+ {
79
+ "name": "CollapseItem",
80
+ "description": "折叠面板项组件,用于定义每个可折叠的内容区域",
81
+ "props": [
82
+ {
83
+ "name": "value",
84
+ "description": "当前 CollapseItem 的取值,默认会使用 $ + 索引的组合",
85
+ "type": {
86
+ "raw": "string",
87
+ "kind": "string"
88
+ },
89
+ "required": false,
90
+ "default": "$${index}",
91
+ "usageExample": "<CollapseItem value=\"1\" title=\"面板标题\">内容</CollapseItem>"
92
+ },
93
+ {
94
+ "name": "title",
95
+ "description": "标题内容",
96
+ "type": {
97
+ "raw": "string | VNode",
98
+ "kind": "union"
99
+ },
100
+ "required": false,
101
+ "default": "undefined",
102
+ "usageExample": "<CollapseItem title=\"面板标题\">内容</CollapseItem>"
103
+ },
104
+ {
105
+ "name": "disabled",
106
+ "description": "是否禁用",
107
+ "type": {
108
+ "raw": "boolean",
109
+ "kind": "boolean"
110
+ },
111
+ "required": false,
112
+ "default": "false",
113
+ "usageExample": "<CollapseItem disabled title=\"禁用面板\">内容</CollapseItem>"
114
+ }
115
+ ],
116
+ "events": [
117
+ {
118
+ "name": "show",
119
+ "vueEventName": "@show",
120
+ "description": "展开时触发",
121
+ "payload": [
122
+ {
123
+ "name": "collapseItem",
124
+ "type": "CollapseItem",
125
+ "description": "当前折叠项实例"
126
+ }
127
+ ],
128
+ "usageExample": "<CollapseItem @show=\"handleShow\">",
129
+ "handlerExample": "const handleShow = () => {\n console.log('面板已展开');\n};"
130
+ },
131
+ {
132
+ "name": "hide",
133
+ "vueEventName": "@hide",
134
+ "description": "收起时触发",
135
+ "payload": [
136
+ {
137
+ "name": "collapseItem",
138
+ "type": "CollapseItem",
139
+ "description": "当前折叠项实例"
140
+ }
141
+ ],
142
+ "usageExample": "<CollapseItem @hide=\"handleHide\">",
143
+ "handlerExample": "const handleHide = () => {\n console.log('面板已收起');\n};"
144
+ }
145
+ ]
146
+ }
147
+ ],
148
+ "examples": [
149
+ {
150
+ "id": "collapse_basic",
151
+ "title": "基础用法",
152
+ "description": "基本的折叠面板",
153
+ "difficulty": "easy",
154
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKeys = ref(['1']);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\">\n <CollapseItem value=\"1\" title=\"面板一\">\n 这是面板一的内容\n </CollapseItem>\n <CollapseItem value=\"2\" title=\"面板二\">\n 这是面板二的内容\n </CollapseItem>\n <CollapseItem value=\"3\" title=\"面板三\">\n 这是面板三的内容\n </CollapseItem>\n </Collapse>\n</template>",
155
+ "tags": [
156
+ "basic"
157
+ ],
158
+ "usedProps": [
159
+ "value",
160
+ "title"
161
+ ],
162
+ "usedEvents": [],
163
+ "usedMethods": [],
164
+ "scenario": "创建基本的折叠面板"
165
+ },
166
+ {
167
+ "id": "collapse_accordion",
168
+ "title": "手风琴模式",
169
+ "description": "同时只能展开一个面板",
170
+ "difficulty": "easy",
171
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKey = ref(['1']);\n</script>\n<template>\n <Collapse v-model=\"activeKey\" accordion>\n <CollapseItem value=\"1\" title=\"面板一\">内容一</CollapseItem>\n <CollapseItem value=\"2\" title=\"面板二\">内容二</CollapseItem>\n <CollapseItem value=\"3\" title=\"面板三\">内容三</CollapseItem>\n </Collapse>\n</template>",
172
+ "tags": [
173
+ "accordion",
174
+ "single"
175
+ ],
176
+ "usedProps": [
177
+ "value",
178
+ "accordion",
179
+ "title"
180
+ ],
181
+ "usedEvents": [],
182
+ "usedMethods": [],
183
+ "scenario": "创建手风琴效果的折叠面板"
184
+ },
185
+ {
186
+ "id": "collapse_arrow_left",
187
+ "title": "箭头在左侧",
188
+ "description": "将展开箭头放在左侧",
189
+ "difficulty": "easy",
190
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKeys = ref([]);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\" arrow=\"left\">\n <CollapseItem value=\"1\" title=\"面板一\">内容一</CollapseItem>\n <CollapseItem value=\"2\" title=\"面板二\">内容二</CollapseItem>\n </Collapse>\n</template>",
191
+ "tags": [
192
+ "arrow",
193
+ "left"
194
+ ],
195
+ "usedProps": [
196
+ "value",
197
+ "arrow",
198
+ "title"
199
+ ],
200
+ "usedEvents": [],
201
+ "usedMethods": [],
202
+ "scenario": "将折叠箭头放在左侧"
203
+ },
204
+ {
205
+ "id": "collapse_no_border",
206
+ "title": "无边框样式",
207
+ "description": "简洁的无边框样式",
208
+ "difficulty": "easy",
209
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKeys = ref(['1']);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\" noBorder>\n <CollapseItem value=\"1\" title=\"面板一\">内容一</CollapseItem>\n <CollapseItem value=\"2\" title=\"面板二\">内容二</CollapseItem>\n </Collapse>\n</template>",
210
+ "tags": [
211
+ "noBorder",
212
+ "simple"
213
+ ],
214
+ "usedProps": [
215
+ "value",
216
+ "noBorder",
217
+ "title"
218
+ ],
219
+ "usedEvents": [],
220
+ "usedMethods": [],
221
+ "scenario": "创建无边框的简洁折叠面板"
222
+ },
223
+ {
224
+ "id": "collapse_disabled",
225
+ "title": "禁用面板",
226
+ "description": "禁用某个折叠项",
227
+ "difficulty": "easy",
228
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKeys = ref([]);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\">\n <CollapseItem value=\"1\" title=\"可用面板\">内容一</CollapseItem>\n <CollapseItem value=\"2\" title=\"禁用面板\" disabled>内容二</CollapseItem>\n </Collapse>\n</template>",
229
+ "tags": [
230
+ "disabled"
231
+ ],
232
+ "usedProps": [
233
+ "value",
234
+ "title",
235
+ "disabled"
236
+ ],
237
+ "usedEvents": [],
238
+ "usedMethods": [],
239
+ "scenario": "禁用某个折叠面板项"
240
+ },
241
+ {
242
+ "id": "collapse_custom_title",
243
+ "title": "自定义标题",
244
+ "description": "使用插槽自定义标题内容",
245
+ "difficulty": "easy",
246
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem, Icon } from '@king-design/vue';\n\nconst activeKeys = ref([]);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\">\n <CollapseItem value=\"1\">\n <template #title>\n <Icon class=\"k-icon-star\" color=\"warning\" /> 自定义标题\n </template>\n 内容一\n </CollapseItem>\n </Collapse>\n</template>",
247
+ "tags": [
248
+ "title",
249
+ "slot",
250
+ "custom"
251
+ ],
252
+ "usedProps": [
253
+ "value"
254
+ ],
255
+ "usedEvents": [],
256
+ "usedSlots": [
257
+ "title"
258
+ ],
259
+ "usedMethods": [],
260
+ "scenario": "使用图标自定义折叠面板标题"
261
+ },
262
+ {
263
+ "id": "collapse_events",
264
+ "title": "监听展开收起",
265
+ "description": "监听面板的展开和收起事件",
266
+ "difficulty": "easy",
267
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem, Message } from '@king-design/vue';\n\nconst activeKeys = ref([]);\n\nconst handleShow = () => {\n Message.success('面板已展开');\n};\n\nconst handleHide = () => {\n Message.info('面板已收起');\n};\n</script>\n<template>\n <Collapse v-model=\"activeKeys\">\n <CollapseItem value=\"1\" title=\"面板一\" @show=\"handleShow\" @hide=\"handleHide\">\n 内容一\n </CollapseItem>\n </Collapse>\n</template>",
268
+ "tags": [
269
+ "show",
270
+ "hide",
271
+ "event"
272
+ ],
273
+ "usedProps": [
274
+ "value",
275
+ "title"
276
+ ],
277
+ "usedEvents": [
278
+ "show",
279
+ "hide"
280
+ ],
281
+ "usedMethods": [],
282
+ "scenario": "监听折叠面板的展开和收起事件"
283
+ },
284
+ {
285
+ "id": "collapse_faq",
286
+ "title": "FAQ 常见问题",
287
+ "description": "常见问题解答场景",
288
+ "difficulty": "medium",
289
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Collapse, CollapseItem } from '@king-design/vue';\n\nconst activeKeys = ref([]);\n\nconst faqs = ref([\n { id: '1', q: '如何注册账号?', a: '点击首页右上角的注册按钮...' },\n { id: '2', q: '忘记密码怎么办?', a: '在登录页面点击\\\"忘记密码\\\"链接...' },\n { id: '3', q: '如何联系客服?', a: '您可以通过在线客服或拨打客服电话...' }\n]);\n</script>\n<template>\n <Collapse v-model=\"activeKeys\" accordion>\n <CollapseItem v-for=\"faq in faqs\" :key=\"faq.id\" :value=\"faq.id\" :title=\"faq.q\">\n {{ faq.a }}\n </CollapseItem>\n </Collapse>\n</template>",
290
+ "tags": [
291
+ "faq",
292
+ "dynamic",
293
+ "v-for"
294
+ ],
295
+ "usedProps": [
296
+ "value",
297
+ "accordion",
298
+ "title"
299
+ ],
300
+ "usedEvents": [],
301
+ "usedMethods": [],
302
+ "scenario": "创建 FAQ 常见问题解答页面"
303
+ }
304
+ ],
305
+ "commonMistakes": [
306
+ {
307
+ "id": "collapse_value_type",
308
+ "description": "value 类型错误,使用字符串而非数组",
309
+ "wrongCode": "const activeKey = ref('1');\n<Collapse v-model=\"activeKey\">",
310
+ "correctCode": "const activeKeys = ref(['1']);\n<Collapse v-model=\"activeKeys\">",
311
+ "explanation": "Collapse 的 value 必须是字符串数组类型,即使使用 accordion 模式",
312
+ "relatedProps": [
313
+ "value"
314
+ ]
315
+ },
316
+ {
317
+ "id": "collapse_missing_value",
318
+ "description": "CollapseItem 未设置 value 导致无法正确控制",
319
+ "wrongCode": "<Collapse v-model=\"activeKeys\">\n <CollapseItem title=\"面板\">内容</CollapseItem>\n</Collapse>",
320
+ "correctCode": "<Collapse v-model=\"activeKeys\">\n <CollapseItem value=\"1\" title=\"面板\">内容</CollapseItem>\n</Collapse>",
321
+ "explanation": "建议为 CollapseItem 显式设置 value,便于控制展开状态",
322
+ "relatedProps": [
323
+ "value"
324
+ ]
325
+ },
326
+ {
327
+ "id": "collapse_arrow_typo",
328
+ "description": "arrow 值拼写错误",
329
+ "wrongCode": "<Collapse arrow=\"start\">",
330
+ "correctCode": "<Collapse arrow=\"left\">",
331
+ "explanation": "arrow 只支持 right 和 left 两个值",
332
+ "relatedProps": [
333
+ "arrow"
334
+ ]
335
+ }
336
+ ],
337
+ "searchKeywords": [
338
+ "折叠面板",
339
+ "collapse",
340
+ "手风琴",
341
+ "accordion",
342
+ "展开",
343
+ "收起",
344
+ "FAQ"
345
+ ],
346
+ "useCases": [
347
+ "FAQ 常见问题",
348
+ "设置选项分组",
349
+ "内容分区展示",
350
+ "侧边栏菜单",
351
+ "配置项分类"
352
+ ],
353
+ "relatedComponents": [
354
+ "CollapseItem",
355
+ "Card",
356
+ "Tabs"
357
+ ]
358
+ }
@@ -0,0 +1,220 @@
1
+ {
2
+ "id": "copy",
3
+ "name": "Copy",
4
+ "displayName": "复制",
5
+ "category": "other",
6
+ "description": "复制到剪贴板组件,用于将文本内容复制到系统剪贴板。支持成功/失败回调和消息提示。",
7
+ "importStatement": "import { Copy } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "text",
11
+ "description": "复制文案值,要复制到剪贴板的内容",
12
+ "type": {
13
+ "raw": "string",
14
+ "kind": "string"
15
+ },
16
+ "required": false,
17
+ "default": "undefined",
18
+ "usageExample": "<Copy text=\"要复制的内容\"><Button>复制</Button></Copy>"
19
+ },
20
+ {
21
+ "name": "showMessage",
22
+ "description": "复制成功/失败时,是否展示 Message 提示",
23
+ "type": {
24
+ "raw": "boolean",
25
+ "kind": "boolean"
26
+ },
27
+ "required": false,
28
+ "default": "true",
29
+ "usageExample": "<Copy text=\"内容\" :showMessage=\"false\"><Button>静默复制</Button></Copy>"
30
+ }
31
+ ],
32
+ "events": [
33
+ {
34
+ "name": "success",
35
+ "vueEventName": "@success",
36
+ "description": "复制成功时触发",
37
+ "payload": [
38
+ {
39
+ "name": "value",
40
+ "type": "string",
41
+ "description": "复制的内容"
42
+ }
43
+ ],
44
+ "usageExample": "<Copy text=\"内容\" @success=\"handleSuccess\">",
45
+ "handlerExample": "const handleSuccess = (value: string) => {\n console.log('复制成功:', value);\n};"
46
+ },
47
+ {
48
+ "name": "error",
49
+ "vueEventName": "@error",
50
+ "description": "复制失败时触发",
51
+ "payload": [],
52
+ "usageExample": "<Copy text=\"内容\" @error=\"handleError\">",
53
+ "handlerExample": "const handleError = () => {\n console.log('复制失败');\n};"
54
+ }
55
+ ],
56
+ "methods": [],
57
+ "examples": [
58
+ {
59
+ "id": "copy_basic",
60
+ "title": "基础用法",
61
+ "description": "基本的复制功能",
62
+ "difficulty": "easy",
63
+ "code": "<script setup lang=\"ts\">\nimport { Copy, Button } from '@king-design/vue';\n</script>\n<template>\n <Copy text=\"这是要复制的内容\">\n <Button type=\"primary\">点击复制</Button>\n </Copy>\n</template>",
64
+ "tags": [
65
+ "basic",
66
+ "clipboard"
67
+ ],
68
+ "usedProps": [
69
+ "text"
70
+ ],
71
+ "usedEvents": [],
72
+ "usedMethods": [],
73
+ "scenario": "创建一个点击即可复制文本的按钮"
74
+ },
75
+ {
76
+ "id": "copy_dynamic",
77
+ "title": "复制动态内容",
78
+ "description": "复制响应式变量的内容",
79
+ "difficulty": "easy",
80
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Copy, Button, Input } from '@king-design/vue';\n\nconst content = ref('默认内容');\n</script>\n<template>\n <Input v-model=\"content\" placeholder=\"输入要复制的内容\" />\n <Copy :text=\"content\">\n <Button type=\"primary\">复制输入内容</Button>\n </Copy>\n</template>",
81
+ "tags": [
82
+ "dynamic",
83
+ "reactive"
84
+ ],
85
+ "usedProps": [
86
+ "text"
87
+ ],
88
+ "usedEvents": [],
89
+ "usedMethods": [],
90
+ "scenario": "复制用户输入的动态内容"
91
+ },
92
+ {
93
+ "id": "copy_silent",
94
+ "title": "静默复制",
95
+ "description": "禁用默认消息提示,自定义处理",
96
+ "difficulty": "easy",
97
+ "code": "<script setup lang=\"ts\">\nimport { Copy, Button, Message } from '@king-design/vue';\n\nconst handleSuccess = (value: string) => {\n Message.success('自定义提示:复制成功!');\n};\n</script>\n<template>\n <Copy text=\"要复制的内容\" :showMessage=\"false\" @success=\"handleSuccess\">\n <Button>静默复制</Button>\n </Copy>\n</template>",
98
+ "tags": [
99
+ "showMessage",
100
+ "silent",
101
+ "custom"
102
+ ],
103
+ "usedProps": [
104
+ "text",
105
+ "showMessage"
106
+ ],
107
+ "usedEvents": [
108
+ "success"
109
+ ],
110
+ "usedMethods": [],
111
+ "scenario": "禁用默认提示,使用自定义消息"
112
+ },
113
+ {
114
+ "id": "copy_events",
115
+ "title": "监听复制事件",
116
+ "description": "监听复制成功和失败事件",
117
+ "difficulty": "easy",
118
+ "code": "<script setup lang=\"ts\">\nimport { Copy, Button, Message } from '@king-design/vue';\n\nconst handleSuccess = (value: string) => {\n console.log('复制成功:', value);\n};\n\nconst handleError = () => {\n Message.error('复制失败,请手动复制');\n};\n</script>\n<template>\n <Copy text=\"复制内容\" @success=\"handleSuccess\" @error=\"handleError\">\n <Button>点击复制</Button>\n </Copy>\n</template>",
119
+ "tags": [
120
+ "success",
121
+ "error",
122
+ "event"
123
+ ],
124
+ "usedProps": [
125
+ "text"
126
+ ],
127
+ "usedEvents": [
128
+ "success",
129
+ "error"
130
+ ],
131
+ "usedMethods": [],
132
+ "scenario": "监听复制操作的成功和失败"
133
+ },
134
+ {
135
+ "id": "copy_link",
136
+ "title": "复制链接",
137
+ "description": "复制分享链接场景",
138
+ "difficulty": "easy",
139
+ "code": "<script setup lang=\"ts\">\nimport { Copy, Icon } from '@king-design/vue';\n\nconst link = 'https://example.com/share/12345';\n</script>\n<template>\n <span>{{ link }}</span>\n <Copy :text=\"link\">\n <Icon class=\"k-icon-clone\" hoverable style=\"cursor: pointer; margin-left: 8px;\" />\n </Copy>\n</template>",
140
+ "tags": [
141
+ "link",
142
+ "share",
143
+ "icon"
144
+ ],
145
+ "usedProps": [
146
+ "text"
147
+ ],
148
+ "usedEvents": [],
149
+ "usedMethods": [],
150
+ "scenario": "复制分享链接的常见场景"
151
+ },
152
+ {
153
+ "id": "copy_code",
154
+ "title": "复制代码块",
155
+ "description": "复制代码内容",
156
+ "difficulty": "easy",
157
+ "code": "<script setup lang=\"ts\">\nimport { Copy, Button } from '@king-design/vue';\n\nconst code = `npm install @king-design/vue`;\n</script>\n<template>\n <div style=\"display: flex; align-items: center; background: #f5f5f5; padding: 8px 12px; border-radius: 4px;\">\n <code style=\"flex: 1;\">{{ code }}</code>\n <Copy :text=\"code\">\n <Button size=\"mini\" type=\"link\">复制</Button>\n </Copy>\n </div>\n</template>",
158
+ "tags": [
159
+ "code",
160
+ "snippet"
161
+ ],
162
+ "usedProps": [
163
+ "text"
164
+ ],
165
+ "usedEvents": [],
166
+ "usedMethods": [],
167
+ "scenario": "复制代码片段或命令"
168
+ }
169
+ ],
170
+ "commonMistakes": [
171
+ {
172
+ "id": "copy_empty_text",
173
+ "description": "未设置 text 属性",
174
+ "wrongCode": "<Copy><Button>复制</Button></Copy>",
175
+ "correctCode": "<Copy text=\"要复制的内容\"><Button>复制</Button></Copy>",
176
+ "explanation": "必须通过 text 属性指定要复制的内容",
177
+ "relatedProps": [
178
+ "text"
179
+ ]
180
+ },
181
+ {
182
+ "id": "copy_missing_child",
183
+ "description": "未提供触发元素",
184
+ "wrongCode": "<Copy text=\"内容\" />",
185
+ "correctCode": "<Copy text=\"内容\"><Button>复制</Button></Copy>",
186
+ "explanation": "Copy 组件需要包裹一个子元素作为触发器",
187
+ "relatedProps": []
188
+ },
189
+ {
190
+ "id": "copy_success_param",
191
+ "description": "success 事件处理函数参数错误",
192
+ "wrongCode": "const handleSuccess = () => {\n console.log('复制成功');\n}",
193
+ "correctCode": "const handleSuccess = (value: string) => {\n console.log('复制成功:', value);\n}",
194
+ "explanation": "success 事件会传入复制的内容作为参数",
195
+ "relatedProps": []
196
+ }
197
+ ],
198
+ "searchKeywords": [
199
+ "复制",
200
+ "copy",
201
+ "剪贴板",
202
+ "clipboard",
203
+ "粘贴",
204
+ "分享",
205
+ "链接"
206
+ ],
207
+ "useCases": [
208
+ "复制分享链接",
209
+ "复制邀请码",
210
+ "复制代码片段",
211
+ "复制订单号",
212
+ "复制收货地址",
213
+ "一键复制命令"
214
+ ],
215
+ "relatedComponents": [
216
+ "Button",
217
+ "Icon",
218
+ "Message"
219
+ ]
220
+ }