king-design-analyzer 2.2.0 → 2.2.1

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 (149) hide show
  1. package/components/actions.json +8 -0
  2. package/components/advancedset.json +1 -0
  3. package/components/affix.json +1 -0
  4. package/components/anchor.json +220 -0
  5. package/components/anchorlink.json +111 -0
  6. package/components/badge.json +1 -0
  7. package/components/breadcrumb.json +2 -1
  8. package/components/button.json +1 -0
  9. package/components/buttonlink.json +1 -0
  10. package/components/card.json +6 -3
  11. package/components/cardcontent.json +5 -0
  12. package/components/cascader.json +56 -0
  13. package/components/collapse.json +335 -348
  14. package/components/configprovider.json +96 -0
  15. package/components/copyrow.json +1 -0
  16. package/components/descriptions.json +10 -3
  17. package/components/diagram.json +295 -0
  18. package/components/dialog.json +4 -0
  19. package/components/divider.json +1 -0
  20. package/components/drawer.json +32 -0
  21. package/components/dropdown.json +4 -4
  22. package/components/flex.json +1 -0
  23. package/components/form.json +12 -3
  24. package/components/header.json +4 -0
  25. package/components/input.json +8 -4
  26. package/components/layoutcontent.json +9 -0
  27. package/components/layoutlistcontent.json +9 -0
  28. package/components/layoutpermissioncontent.json +1 -0
  29. package/components/layoutstandardlist.json +1 -0
  30. package/components/lazymount.json +1 -0
  31. package/components/lazyteleport.json +1 -0
  32. package/components/menu.json +4 -3
  33. package/components/notification.json +351 -0
  34. package/components/protable.json +2 -0
  35. package/components/rate.json +1 -0
  36. package/components/scrollselect.json +140 -0
  37. package/components/select.json +63 -0
  38. package/components/skeleton.json +1 -0
  39. package/components/slider.json +12 -2
  40. package/components/spin.json +2 -1
  41. package/components/spinner.json +419 -429
  42. package/components/split.json +3 -0
  43. package/components/switch.json +4 -2
  44. package/components/table.json +6 -1
  45. package/components/tabs.json +2 -2
  46. package/components/tag.json +8 -5
  47. package/components/timeline.json +3 -1
  48. package/components/tip.json +20 -0
  49. package/components/tooltip.json +8 -0
  50. package/components/transfer.json +52 -5
  51. package/components/tree.json +22 -1
  52. package/components/treeselect.json +56 -0
  53. package/components/vdialog.json +1 -0
  54. package/components/vdrawer.json +4 -0
  55. package/dist/ast/index.d.mts +30 -1
  56. package/dist/ast/index.d.ts +30 -1
  57. package/dist/ast/index.js +3 -3
  58. package/dist/ast/index.mjs +1 -1
  59. package/dist/{chunk-BI5TIQID.mjs → chunk-4OTQAQ6J.mjs} +13 -2
  60. package/dist/{chunk-CJGGFVQJ.js → chunk-4WXOYU2N.js} +31 -8
  61. package/dist/chunk-6HOIRUQB.mjs +409 -0
  62. package/dist/{chunk-CR3GC4H3.js → chunk-DHLWNT53.js} +13 -2
  63. package/dist/{chunk-KMIDURUR.mjs → chunk-IPJJMPOO.mjs} +113 -19
  64. package/dist/{chunk-TA3SV4SP.js → chunk-JJ6AB4ZH.js} +2 -2
  65. package/dist/{chunk-SZYVGYKK.js → chunk-JNRGUR3O.js} +113 -19
  66. package/dist/{chunk-XGPHQHLR.mjs → chunk-LRTDTFFQ.mjs} +27 -4
  67. package/dist/{chunk-3LYQ5XFM.mjs → chunk-NZL6T22V.mjs} +1 -1
  68. package/dist/chunk-V5N65MRP.js +411 -0
  69. package/dist/full/index.d.mts +2 -0
  70. package/dist/full/index.d.ts +2 -0
  71. package/dist/full/index.js +6 -6
  72. package/dist/full/index.mjs +4 -4
  73. package/dist/index.js +13 -13
  74. package/dist/index.mjs +5 -5
  75. package/dist/metadata/index.d.mts +17 -2
  76. package/dist/metadata/index.d.ts +17 -2
  77. package/dist/runtime/index.d.mts +2 -0
  78. package/dist/runtime/index.d.ts +2 -0
  79. package/dist/runtime/index.js +4 -4
  80. package/dist/runtime/index.mjs +2 -2
  81. package/dist/static/index.js +5 -5
  82. package/dist/static/index.mjs +2 -2
  83. package/docs_for_llm/actions.doc.md +11 -1
  84. package/docs_for_llm/advancedset.doc.md +10 -1
  85. package/docs_for_llm/affix.doc.md +5 -0
  86. package/docs_for_llm/anchor.doc.md +155 -0
  87. package/docs_for_llm/anchorlink.doc.md +75 -0
  88. package/docs_for_llm/badge.doc.md +5 -0
  89. package/docs_for_llm/breadcrumb.doc.md +74 -1
  90. package/docs_for_llm/button.doc.md +57 -0
  91. package/docs_for_llm/buttonlink.doc.md +10 -1
  92. package/docs_for_llm/card.doc.md +50 -3
  93. package/docs_for_llm/cardcontent.doc.md +21 -0
  94. package/docs_for_llm/carousel.doc.md +71 -0
  95. package/docs_for_llm/cascader.doc.md +62 -0
  96. package/docs_for_llm/collapse.doc.md +138 -8
  97. package/docs_for_llm/configprovider.doc.md +77 -0
  98. package/docs_for_llm/copyrow.doc.md +10 -1
  99. package/docs_for_llm/datepicker.doc.md +19 -0
  100. package/docs_for_llm/descriptions.doc.md +113 -4
  101. package/docs_for_llm/diagram.doc.md +343 -0
  102. package/docs_for_llm/dialog.doc.md +49 -0
  103. package/docs_for_llm/divider.doc.md +5 -0
  104. package/docs_for_llm/drawer.doc.md +86 -0
  105. package/docs_for_llm/dropdown.doc.md +240 -3
  106. package/docs_for_llm/flex.doc.md +10 -1
  107. package/docs_for_llm/form.doc.md +163 -4
  108. package/docs_for_llm/formitemspinner.doc.md +1 -1
  109. package/docs_for_llm/grid.doc.md +71 -0
  110. package/docs_for_llm/header.doc.md +33 -4
  111. package/docs_for_llm/input.doc.md +109 -2
  112. package/docs_for_llm/layoutcontent.doc.md +37 -0
  113. package/docs_for_llm/layoutlistcontent.doc.md +82 -9
  114. package/docs_for_llm/layoutpermissioncontent.doc.md +10 -1
  115. package/docs_for_llm/layoutstandardlist.doc.md +10 -1
  116. package/docs_for_llm/lazymount.doc.md +10 -1
  117. package/docs_for_llm/lazyteleport.doc.md +10 -1
  118. package/docs_for_llm/menu.doc.md +125 -3
  119. package/docs_for_llm/message.doc.md +45 -0
  120. package/docs_for_llm/notification.doc.md +214 -0
  121. package/docs_for_llm/protable.doc.md +9 -0
  122. package/docs_for_llm/rate.doc.md +5 -0
  123. package/docs_for_llm/scrollselect.doc.md +90 -0
  124. package/docs_for_llm/select.doc.md +174 -0
  125. package/docs_for_llm/skeleton.doc.md +35 -0
  126. package/docs_for_llm/slider.doc.md +11 -1
  127. package/docs_for_llm/spin.doc.md +10 -1
  128. package/docs_for_llm/spinner.doc.md +1 -1
  129. package/docs_for_llm/split.doc.md +13 -0
  130. package/docs_for_llm/steps.doc.md +71 -0
  131. package/docs_for_llm/switch.doc.md +15 -2
  132. package/docs_for_llm/table.doc.md +199 -4
  133. package/docs_for_llm/tabs.doc.md +98 -2
  134. package/docs_for_llm/tag.doc.md +148 -5
  135. package/docs_for_llm/timeline.doc.md +80 -2
  136. package/docs_for_llm/timepicker.doc.md +19 -0
  137. package/docs_for_llm/tip.doc.md +30 -0
  138. package/docs_for_llm/tooltip.doc.md +46 -0
  139. package/docs_for_llm/tour.doc.md +78 -0
  140. package/docs_for_llm/transfer.doc.md +59 -4
  141. package/docs_for_llm/tree.doc.md +64 -1
  142. package/docs_for_llm/treeselect.doc.md +68 -0
  143. package/docs_for_llm/upload.doc.md +7 -0
  144. package/docs_for_llm/vdialog.doc.md +26 -1
  145. package/docs_for_llm/vdrawer.doc.md +33 -4
  146. package/docs_for_llm/virtuallist.doc.md +151 -0
  147. package/package.json +3 -3
  148. package/dist/chunk-D2SXGGTX.mjs +0 -162
  149. package/dist/chunk-EYKZY2F3.js +0 -164
@@ -0,0 +1,96 @@
1
+ {
2
+ "id": "configprovider",
3
+ "name": "ConfigProvider",
4
+ "displayName": "全局配置提供器",
5
+ "category": "general",
6
+ "description": "配置上下文提供器,用于向包裹区域内的组件统一注入类名前缀和波纹动画配置。适合在局部区域隔离样式命名空间或关闭交互波纹效果。",
7
+ "importStatement": "import { ConfigProvider } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "value",
11
+ "description": "传递给内部组件的配置对象",
12
+ "type": {
13
+ "raw": "{ classNamePrefix?: string; disableWave?: boolean }",
14
+ "kind": "object"
15
+ },
16
+ "required": false,
17
+ "default": "{}",
18
+ "usageExample": "<ConfigProvider :value=\"{ classNamePrefix: 'my', disableWave: true }\"></ConfigProvider>"
19
+ }
20
+ ],
21
+ "events": [],
22
+ "slots": [
23
+ {
24
+ "name": "default",
25
+ "description": "需要继承配置的子组件内容",
26
+ "bindingType": "none",
27
+ "vueTemplate": "#default",
28
+ "usageExample": "<ConfigProvider :value=\"config\"><Button>按钮</Button></ConfigProvider>"
29
+ }
30
+ ],
31
+ "methods": [],
32
+ "examples": [
33
+ {
34
+ "id": "configprovider_prefix",
35
+ "title": "自定义类名前缀",
36
+ "description": "为局部组件树设置独立类名前缀。",
37
+ "difficulty": "easy",
38
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Button, ButtonGroup, ConfigProvider } from '@king-design/vue';\n\nconst config = ref({ classNamePrefix: 'custom' });\n</script>\n<template>\n <ConfigProvider :value=\"config\">\n <ButtonGroup>\n <Button>默认按钮</Button>\n <Button type=\"primary\">主要按钮</Button>\n </ButtonGroup>\n </ConfigProvider>\n</template>",
39
+ "tags": [
40
+ "classNamePrefix",
41
+ "scope"
42
+ ],
43
+ "usedProps": [
44
+ "value"
45
+ ],
46
+ "usedEvents": [],
47
+ "usedSlots": [
48
+ "default"
49
+ ],
50
+ "usedMethods": [],
51
+ "scenario": "在微前端或局部主题隔离场景中定制组件类名前缀。"
52
+ },
53
+ {
54
+ "id": "configprovider_disable_wave",
55
+ "title": "关闭波纹效果",
56
+ "description": "统一禁用子组件的波纹动画效果。",
57
+ "difficulty": "easy",
58
+ "code": "<script setup lang=\"ts\">\nimport { Button, ConfigProvider } from '@king-design/vue';\n</script>\n<template>\n <ConfigProvider :value=\"{ disableWave: true }\">\n <div style=\"display: flex; gap: 8px;\">\n <Button>普通按钮</Button>\n <Button type=\"primary\">无波纹按钮</Button>\n </div>\n </ConfigProvider>\n</template>",
59
+ "tags": [
60
+ "disableWave",
61
+ "interaction"
62
+ ],
63
+ "usedProps": [
64
+ "value"
65
+ ],
66
+ "usedEvents": [],
67
+ "usedSlots": [
68
+ "default"
69
+ ],
70
+ "usedMethods": [],
71
+ "scenario": "在需要弱化交互动画或统一交互体验时关闭波纹效果。"
72
+ }
73
+ ],
74
+ "searchKeywords": [
75
+ "configprovider",
76
+ "配置提供器",
77
+ "classNamePrefix",
78
+ "disableWave"
79
+ ],
80
+ "useCases": [
81
+ "局部样式前缀隔离",
82
+ "统一关闭波纹动画",
83
+ "子树级组件配置注入"
84
+ ],
85
+ "typeDefinitions": [
86
+ {
87
+ "name": "ConfigProviderValue",
88
+ "definition": "type ConfigProviderValue = { classNamePrefix?: string; disableWave?: boolean }",
89
+ "description": "ConfigProvider 支持的配置项。"
90
+ }
91
+ ],
92
+ "relatedComponents": [
93
+ "Button",
94
+ "Notification"
95
+ ]
96
+ }
@@ -57,6 +57,7 @@
57
57
  {
58
58
  "name": "default",
59
59
  "description": "自定义行内容",
60
+ "bindingType": "none",
60
61
  "vueTemplate": "<CopyRow>...</CopyRow>"
61
62
  }
62
63
  ],
@@ -55,7 +55,8 @@
55
55
  "slots": [
56
56
  {
57
57
  "name": "title",
58
- "description": "自定义title"
58
+ "description": "自定义title",
59
+ "bindingType": "none"
59
60
  }
60
61
  ],
61
62
  "methods": [],
@@ -101,11 +102,17 @@
101
102
  "slots": [
102
103
  {
103
104
  "name": "append",
104
- "description": "用于超长省略后的操作区自定义内容"
105
+ "description": "用于超长省略后的操作区自定义内容",
106
+ "bindingType": "none",
107
+ "vueTemplate": "#append",
108
+ "usageExample": "<DescriptionItem label=\"手机号\">\n 138****8000\n <template #append>\n 修改\n </template>\n</DescriptionItem>"
105
109
  },
106
110
  {
107
111
  "name": "label",
108
- "description": "自定义label"
112
+ "description": "自定义label",
113
+ "bindingType": "none",
114
+ "vueTemplate": "#label",
115
+ "usageExample": "<DescriptionItem>\n <template #label>\n 联系方式\n </template>\n 138****8000\n</DescriptionItem>"
109
116
  }
110
117
  ]
111
118
  }
@@ -0,0 +1,295 @@
1
+ {
2
+ "id": "diagram",
3
+ "name": "Diagram",
4
+ "displayName": "流程图",
5
+ "category": "data",
6
+ "description": "流程图组件,用于在画布中组织图形、连线和布局。支持节点选中、标签编辑以及多种布局方式,适合流程建模、拓扑展示和审批链路可视化场景。",
7
+ "importStatement": "import { Diagram, DRectangle, DCircle, DLine, DTreeLayout } from '@king-design/vue/components/diagram';",
8
+ "props": [],
9
+ "events": [
10
+ {
11
+ "name": "labelChanged",
12
+ "vueEventName": "@labelChanged",
13
+ "description": "节点标签修改后触发",
14
+ "payload": [
15
+ {
16
+ "name": "cell",
17
+ "type": "any",
18
+ "description": "发生变化的图元实例"
19
+ },
20
+ {
21
+ "name": "newLabel",
22
+ "type": "string",
23
+ "description": "修改后的标签内容"
24
+ },
25
+ {
26
+ "name": "oldLabel",
27
+ "type": "string",
28
+ "description": "修改前的标签内容"
29
+ }
30
+ ],
31
+ "usageExample": "<Diagram @labelChanged=\"handleLabelChanged\"></Diagram>",
32
+ "handlerExample": "const handleLabelChanged = (cell: any, newLabel: string, oldLabel: string) => {\n console.log('label changed', oldLabel, '=>', newLabel);\n};"
33
+ },
34
+ {
35
+ "name": "selectionChanged",
36
+ "vueEventName": "@selectionChanged",
37
+ "description": "画布选中元素变化时触发",
38
+ "payload": [
39
+ {
40
+ "name": "cells",
41
+ "type": "any[]",
42
+ "description": "当前选中的图元列表"
43
+ }
44
+ ],
45
+ "usageExample": "<Diagram @selectionChanged=\"handleSelectionChanged\"></Diagram>",
46
+ "handlerExample": "const handleSelectionChanged = (cells: any[]) => {\n console.log('selected cells', cells.length);\n};"
47
+ }
48
+ ],
49
+ "slots": [
50
+ {
51
+ "name": "default",
52
+ "description": "流程图内容,通常放置布局组件、图形组件和连线组件",
53
+ "bindingType": "none",
54
+ "vueTemplate": "#default",
55
+ "usageExample": "<Diagram>\n <DTreeLayout>\n <DRectangle key=\"1\" />\n <DCircle key=\"2\" />\n <DLine from=\"1\" to=\"2\" />\n </DTreeLayout>\n</Diagram>"
56
+ }
57
+ ],
58
+ "methods": [],
59
+ "subComponents": [
60
+ {
61
+ "name": "DRectangle",
62
+ "description": "矩形节点,支持圆角、拖拽、选中和自定义内容。",
63
+ "props": [
64
+ {
65
+ "name": "key",
66
+ "description": "节点唯一标识,供连线引用",
67
+ "type": {
68
+ "raw": "string | number",
69
+ "kind": "union"
70
+ },
71
+ "required": true,
72
+ "default": "undefined",
73
+ "usageExample": "<DRectangle key=\"1\" />"
74
+ },
75
+ {
76
+ "name": "label",
77
+ "description": "节点标签",
78
+ "type": {
79
+ "raw": "string | number",
80
+ "kind": "union"
81
+ },
82
+ "required": false,
83
+ "default": "undefined",
84
+ "usageExample": "<DRectangle key=\"1\" label=\"开始\" />"
85
+ },
86
+ {
87
+ "name": "rounded",
88
+ "description": "圆角大小",
89
+ "type": {
90
+ "raw": "number | string",
91
+ "kind": "union"
92
+ },
93
+ "required": false,
94
+ "default": "0",
95
+ "usageExample": "<DRectangle key=\"1\" :rounded=\"8\" />"
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "name": "DCircle",
101
+ "description": "圆形节点,适合展示起止节点或状态节点。",
102
+ "props": [
103
+ {
104
+ "name": "key",
105
+ "description": "节点唯一标识",
106
+ "type": {
107
+ "raw": "string | number",
108
+ "kind": "union"
109
+ },
110
+ "required": true,
111
+ "default": "undefined",
112
+ "usageExample": "<DCircle key=\"2\" />"
113
+ },
114
+ {
115
+ "name": "label",
116
+ "description": "节点标签",
117
+ "type": {
118
+ "raw": "string | number",
119
+ "kind": "union"
120
+ },
121
+ "required": false,
122
+ "default": "undefined",
123
+ "usageExample": "<DCircle key=\"2\" label=\"结束\" />"
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "name": "DLine",
129
+ "description": "节点之间的连线。",
130
+ "props": [
131
+ {
132
+ "name": "from",
133
+ "description": "起始节点 key",
134
+ "type": {
135
+ "raw": "string | number",
136
+ "kind": "union"
137
+ },
138
+ "required": true,
139
+ "default": "undefined",
140
+ "usageExample": "<DLine from=\"1\" to=\"2\" />"
141
+ },
142
+ {
143
+ "name": "to",
144
+ "description": "目标节点 key",
145
+ "type": {
146
+ "raw": "string | number",
147
+ "kind": "union"
148
+ },
149
+ "required": true,
150
+ "default": "undefined",
151
+ "usageExample": "<DLine from=\"1\" to=\"2\" />"
152
+ },
153
+ {
154
+ "name": "label",
155
+ "description": "连线标签",
156
+ "type": {
157
+ "raw": "string",
158
+ "kind": "string"
159
+ },
160
+ "required": false,
161
+ "default": "undefined",
162
+ "usageExample": "<DLine from=\"1\" to=\"2\" label=\"通过\" />"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "name": "DTreeLayout",
168
+ "description": "树形布局,适合组织审批流或层级关系图。",
169
+ "props": [
170
+ {
171
+ "name": "type",
172
+ "description": "布局方向",
173
+ "type": {
174
+ "raw": "\"horizontal\" | \"vertical\"",
175
+ "kind": "union",
176
+ "unionTypes": [
177
+ "horizontal",
178
+ "vertical"
179
+ ]
180
+ },
181
+ "required": false,
182
+ "default": "\"vertical\"",
183
+ "usageExample": "<DTreeLayout type=\"horizontal\"></DTreeLayout>"
184
+ },
185
+ {
186
+ "name": "levelDistance",
187
+ "description": "层级之间的距离",
188
+ "type": {
189
+ "raw": "number | string",
190
+ "kind": "union"
191
+ },
192
+ "required": false,
193
+ "default": "undefined",
194
+ "usageExample": "<DTreeLayout :levelDistance=\"80\"></DTreeLayout>"
195
+ }
196
+ ]
197
+ },
198
+ {
199
+ "name": "DFlowLayout",
200
+ "description": "流式布局,适合横向或纵向流程图编排。",
201
+ "props": [
202
+ {
203
+ "name": "type",
204
+ "description": "布局方向",
205
+ "type": {
206
+ "raw": "\"horizontal\" | \"vertical\"",
207
+ "kind": "union",
208
+ "unionTypes": [
209
+ "horizontal",
210
+ "vertical"
211
+ ]
212
+ },
213
+ "required": false,
214
+ "default": "\"vertical\"",
215
+ "usageExample": "<DFlowLayout type=\"horizontal\"></DFlowLayout>"
216
+ },
217
+ {
218
+ "name": "intraCellSpacing",
219
+ "description": "同层节点间距",
220
+ "type": {
221
+ "raw": "number | string",
222
+ "kind": "union"
223
+ },
224
+ "required": false,
225
+ "default": "undefined",
226
+ "usageExample": "<DFlowLayout :intraCellSpacing=\"40\"></DFlowLayout>"
227
+ }
228
+ ]
229
+ }
230
+ ],
231
+ "examples": [
232
+ {
233
+ "id": "diagram_basic",
234
+ "title": "基础树形流程图",
235
+ "description": "使用树形布局组织节点和连线。",
236
+ "difficulty": "medium",
237
+ "code": "<script setup lang=\"ts\">\nimport { Diagram, DRectangle, DCircle, DLine, DTreeLayout } from '@king-design/vue/components/diagram';\n</script>\n<template>\n <Diagram>\n <DTreeLayout>\n <DRectangle key=\"1\" label=\"开始\" />\n <DCircle key=\"2\" label=\"审核\" />\n <DCircle key=\"3\" label=\"结束\" />\n <DLine from=\"1\" to=\"2\" />\n <DLine from=\"2\" to=\"3\" />\n </DTreeLayout>\n </Diagram>\n</template>",
238
+ "tags": [
239
+ "tree",
240
+ "basic"
241
+ ],
242
+ "usedProps": [],
243
+ "usedEvents": [],
244
+ "usedSlots": [
245
+ "default"
246
+ ],
247
+ "usedMethods": [],
248
+ "scenario": "快速搭建审批流或状态流转图。"
249
+ },
250
+ {
251
+ "id": "diagram_selectable",
252
+ "title": "可选中节点",
253
+ "description": "监听选中变化,处理画布交互。",
254
+ "difficulty": "medium",
255
+ "code": "<script setup lang=\"ts\">\nimport { Diagram, DRectangle, DLine, DFlowLayout } from '@king-design/vue/components/diagram';\n\nconst handleSelectionChanged = (cells: any[]) => {\n console.log('当前选中数量', cells.length);\n};\n</script>\n<template>\n <Diagram @selectionChanged=\"handleSelectionChanged\">\n <DFlowLayout type=\"horizontal\">\n <DRectangle key=\"1\" label=\"节点 A\" selectable />\n <DRectangle key=\"2\" label=\"节点 B\" selectable />\n <DLine from=\"1\" to=\"2\" label=\"流转\" />\n </DFlowLayout>\n </Diagram>\n</template>",
256
+ "tags": [
257
+ "selection",
258
+ "interaction"
259
+ ],
260
+ "usedProps": [],
261
+ "usedEvents": [
262
+ "selectionChanged"
263
+ ],
264
+ "usedSlots": [
265
+ "default"
266
+ ],
267
+ "usedMethods": [],
268
+ "scenario": "在画布中选中节点并联动侧边配置面板。"
269
+ }
270
+ ],
271
+ "searchKeywords": [
272
+ "diagram",
273
+ "流程图",
274
+ "拓扑图",
275
+ "graph",
276
+ "DTreeLayout",
277
+ "DFlowLayout"
278
+ ],
279
+ "useCases": [
280
+ "审批流建模",
281
+ "拓扑结构展示",
282
+ "流程状态可视化"
283
+ ],
284
+ "typeDefinitions": [
285
+ {
286
+ "name": "DiagramImportPath",
287
+ "definition": "import { Diagram, DRectangle, DLine } from '@king-design/vue/components/diagram'",
288
+ "description": "Diagram 当前推荐使用的导入方式。"
289
+ }
290
+ ],
291
+ "relatedComponents": [
292
+ "Anchor",
293
+ "Card"
294
+ ]
295
+ }
@@ -302,24 +302,28 @@
302
302
  {
303
303
  "name": "default",
304
304
  "description": "弹窗主体内容(body区域)",
305
+ "bindingType": "none",
305
306
  "vueTemplate": "默认插槽",
306
307
  "usageExample": "<Dialog v-model=\"visible\">\n <p>弹窗内容</p>\n</Dialog>"
307
308
  },
308
309
  {
309
310
  "name": "header",
310
311
  "description": "扩展弹窗头部",
312
+ "bindingType": "none",
311
313
  "vueTemplate": "#header",
312
314
  "usageExample": "<Dialog v-model=\"visible\">\n <template #header>\n <h2>自定义头部</h2>\n </template>\n</Dialog>"
313
315
  },
314
316
  {
315
317
  "name": "footer",
316
318
  "description": "扩展弹窗底部按钮区域",
319
+ "bindingType": "none",
317
320
  "vueTemplate": "#footer",
318
321
  "usageExample": "<Dialog v-model=\"visible\">\n <template #footer>\n <Button @click=\"visible = false\">关闭</Button>\n <Button type=\"primary\" @click=\"handleSubmit\">提交</Button>\n </template>\n</Dialog>"
319
322
  },
320
323
  {
321
324
  "name": "content",
322
325
  "description": "定义整个弹窗体,包括header、body、footer",
326
+ "bindingType": "none",
323
327
  "vueTemplate": "#content",
324
328
  "usageExample": "<Dialog v-model=\"visible\">\n <template #content>\n <!-- 完全自定义弹窗结构 -->\n </template>\n</Dialog>"
325
329
  }
@@ -162,6 +162,7 @@
162
162
  {
163
163
  "name": "default",
164
164
  "description": "分割线中间的文字内容",
165
+ "bindingType": "none",
165
166
  "vueTemplate": "#default",
166
167
  "usageExample": "<Divider>文字内容</Divider>"
167
168
  }
@@ -334,6 +334,38 @@
334
334
  "handlerExample": "const handleAfterClose = () => {\n console.log('动画完成');\n};"
335
335
  }
336
336
  ],
337
+ "slots": [
338
+ {
339
+ "name": "content",
340
+ "description": "定义整个弹窗体,包括header,body,footer",
341
+ "bindingType": "none",
342
+ "vueTemplate": "#content"
343
+ },
344
+ {
345
+ "name": "header",
346
+ "description": "扩展弹窗头部",
347
+ "bindingType": "none",
348
+ "vueTemplate": "#header"
349
+ },
350
+ {
351
+ "name": "body",
352
+ "description": "扩展弹窗主体部分",
353
+ "bindingType": "none",
354
+ "vueTemplate": "#body"
355
+ },
356
+ {
357
+ "name": "footer",
358
+ "description": "扩展弹窗底部",
359
+ "bindingType": "none",
360
+ "vueTemplate": "#footer"
361
+ },
362
+ {
363
+ "name": "footer-wrapper",
364
+ "description": "扩展弹窗整个底部,上述footer是它下面一个子扩展点",
365
+ "bindingType": "none",
366
+ "vueTemplate": "#footer-wrapper"
367
+ }
368
+ ],
337
369
  "methods": [
338
370
  {
339
371
  "name": "show",
@@ -269,8 +269,8 @@
269
269
  "description": "被选中的菜单项实例"
270
270
  }
271
271
  ],
272
- "usageExample": "<DropdownItem @select=\"handleSelect\">",
273
- "handlerExample": "const handleSelect = (item) => {\n console.log('选中了:', item);\n};"
272
+ "usageExample": "<DropdownItem @select=\"handleActionSelect\">查看详情</DropdownItem>",
273
+ "handlerExample": "const selectedAction = ref('');\nconst selectedItem = ref(null);\n\nconst handleActionSelect = (item) => {\n selectedAction.value = 'detail';\n selectedItem.value = item;\n};"
274
274
  },
275
275
  {
276
276
  "name": "click",
@@ -283,8 +283,8 @@
283
283
  "description": "原生鼠标事件"
284
284
  }
285
285
  ],
286
- "usageExample": "<DropdownItem @click=\"handleClick\">",
287
- "handlerExample": "const handleClick = (e: MouseEvent) => {\n console.log('点击了菜单项');\n};"
286
+ "usageExample": "<DropdownItem @click=\"recordMenuClick\">下载日志</DropdownItem>",
287
+ "handlerExample": "const lastPointer = ref({ x: 0, y: 0 });\n\nconst recordMenuClick = (e: MouseEvent) => {\n lastPointer.value = { x: e.clientX, y: e.clientY };\n};"
288
288
  }
289
289
  ]
290
290
  }
@@ -82,6 +82,7 @@
82
82
  {
83
83
  "name": "default",
84
84
  "description": "Flex 容器内容",
85
+ "bindingType": "none",
85
86
  "vueTemplate": "<Flex>...</Flex>"
86
87
  }
87
88
  ],
@@ -496,15 +496,24 @@
496
496
  "slots": [
497
497
  {
498
498
  "name": "label",
499
- "description": "扩展前面的标题label"
499
+ "description": "扩展前面的标题label",
500
+ "bindingType": "none",
501
+ "vueTemplate": "#label",
502
+ "usageExample": "<FormItem>\n <template #label>\n 用户名\n </template>\n <Input />\n</FormItem>"
500
503
  },
501
504
  {
502
505
  "name": "content",
503
- "description": "扩展后面的内容,也可以使用children代替"
506
+ "description": "扩展后面的内容,也可以使用children代替",
507
+ "bindingType": "none",
508
+ "vueTemplate": "#content",
509
+ "usageExample": "<FormItem label=\"用户名\">\n <template #content>\n <Input />\n </template>\n</FormItem>"
504
510
  },
505
511
  {
506
512
  "name": "append",
507
- "description": "往后面追加的内容"
513
+ "description": "往后面追加的内容",
514
+ "bindingType": "none",
515
+ "vueTemplate": "#append",
516
+ "usageExample": "<FormItem label=\"验证码\">\n <Input />\n <template #append>\n <Button type=\"primary\">发送验证码</Button>\n </template>\n</FormItem>"
508
517
  }
509
518
  ]
510
519
  }
@@ -72,21 +72,25 @@
72
72
  {
73
73
  "name": "title",
74
74
  "description": "扩展顶部栏左侧标题处内容",
75
+ "bindingType": "none",
75
76
  "vueTemplate": "<template #title>...</template>"
76
77
  },
77
78
  {
78
79
  "name": "titleAppend",
79
80
  "description": "扩展顶部栏左侧标题后的追加内容",
81
+ "bindingType": "none",
80
82
  "vueTemplate": "<template #titleAppend>...</template>"
81
83
  },
82
84
  {
83
85
  "name": "docPrepend",
84
86
  "description": "扩展右侧文档入口前的内容",
87
+ "bindingType": "none",
85
88
  "vueTemplate": "<template #docPrepend>...</template>"
86
89
  },
87
90
  {
88
91
  "name": "doc",
89
92
  "description": "自定义右侧文档区域",
93
+ "bindingType": "none",
90
94
  "vueTemplate": "<template #doc>...</template>"
91
95
  }
92
96
  ],
@@ -479,24 +479,28 @@
479
479
  {
480
480
  "name": "prepend",
481
481
  "description": "输入框前置内容,展示在输入框外部左侧",
482
+ "bindingType": "none",
482
483
  "vueTemplate": "#prepend",
483
484
  "usageExample": "<Input v-model=\"url\">\n <template #prepend>http://</template>\n</Input>"
484
485
  },
485
486
  {
486
487
  "name": "append",
487
488
  "description": "输入框后置内容,展示在输入框外部右侧",
489
+ "bindingType": "none",
488
490
  "vueTemplate": "#append",
489
491
  "usageExample": "<Input v-model=\"email\">\n <template #append>.com</template>\n</Input>"
490
492
  },
491
493
  {
492
494
  "name": "prefix",
493
495
  "description": "输入框前缀图标或内容,展示在输入框内部左侧",
496
+ "bindingType": "none",
494
497
  "vueTemplate": "#prefix",
495
498
  "usageExample": "<Input v-model=\"user\">\n <template #prefix><Icon class=\"k-icon-user\" /></template>\n</Input>"
496
499
  },
497
500
  {
498
501
  "name": "suffix",
499
502
  "description": "输入框后缀图标或内容,展示在输入框内部右侧",
503
+ "bindingType": "none",
500
504
  "vueTemplate": "#suffix",
501
505
  "usageExample": "<Input v-model=\"search\">\n <template #suffix><Icon class=\"k-icon-search\" /></template>\n</Input>"
502
506
  }
@@ -745,8 +749,8 @@
745
749
  "description": "当前搜索关键字"
746
750
  }
747
751
  ],
748
- "usageExample": "<Search @submit=\"handleSearch\" />",
749
- "handlerExample": "const handleSearch = (keywords: string) => {\n console.log('搜索关键字:', keywords);\n};"
752
+ "usageExample": "<Search @submit=\"handleKeywordSearch\" />",
753
+ "handlerExample": "const searchHistory = ref<string[]>([]);\n\nconst handleKeywordSearch = (keywords: string) => {\n const normalized = keywords.trim();\n if (!normalized) return;\n searchHistory.value = [normalized, ...searchHistory.value.filter((item) => item !== normalized)].slice(0, 5);\n};"
750
754
  }
751
755
  ],
752
756
  "methods": [
@@ -755,14 +759,14 @@
755
759
  "description": "使搜索框获得焦点",
756
760
  "params": [],
757
761
  "returnType": "void",
758
- "usageExample": "const searchRef = ref<InstanceType<typeof Search>>();\nsearchRef.value?.focus();"
762
+ "usageExample": "const searchRef = ref<InstanceType<typeof Search>>();\n\nconst openSearchBar = () => {\n searchRef.value?.focus();\n};"
759
763
  },
760
764
  {
761
765
  "name": "blur",
762
766
  "description": "使搜索框失去焦点",
763
767
  "params": [],
764
768
  "returnType": "void",
765
- "usageExample": "searchRef.value?.blur();"
769
+ "usageExample": "const closeSearchBar = () => {\n searchRef.value?.blur();\n};"
766
770
  }
767
771
  ]
768
772
  }