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,478 @@
1
+ {
2
+ "id": "treeselect",
3
+ "name": "TreeSelect",
4
+ "displayName": "下拉树选择",
5
+ "category": "form",
6
+ "description": "下拉树选择组件,结合了 Select 和 Tree 的功能。支持单选/多选、复选框、筛选搜索、异步加载等功能。TreeSelect 继承自 Select,与 Select 共享许多属性。",
7
+ "importStatement": "import { TreeSelect } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "value",
11
+ "description": "当前选择的值,可用 v-model 双向绑定",
12
+ "type": {
13
+ "raw": "any",
14
+ "kind": "custom"
15
+ },
16
+ "required": false,
17
+ "default": "\"\"",
18
+ "usageExample": "<TreeSelect v-model=\"value\">"
19
+ },
20
+ {
21
+ "name": "data",
22
+ "description": "要渲染的树形数据",
23
+ "type": {
24
+ "raw": "TreeDataItem[]",
25
+ "kind": "array"
26
+ },
27
+ "required": true,
28
+ "usageExample": "<TreeSelect :data=\"treeData\">"
29
+ },
30
+ {
31
+ "name": "multiple",
32
+ "description": "是否支持多选",
33
+ "type": {
34
+ "raw": "boolean",
35
+ "kind": "boolean"
36
+ },
37
+ "required": false,
38
+ "default": "false",
39
+ "usageExample": "<TreeSelect multiple>"
40
+ },
41
+ {
42
+ "name": "checkbox",
43
+ "description": "是否展示复选框",
44
+ "type": {
45
+ "raw": "boolean",
46
+ "kind": "boolean"
47
+ },
48
+ "required": false,
49
+ "default": "false",
50
+ "usageExample": "<TreeSelect checkbox>"
51
+ },
52
+ {
53
+ "name": "uncorrelated",
54
+ "description": "父子 checkbox 选中状态是否互不关联",
55
+ "type": {
56
+ "raw": "boolean",
57
+ "kind": "boolean"
58
+ },
59
+ "required": false,
60
+ "default": "false",
61
+ "usageExample": "<TreeSelect checkbox uncorrelated>"
62
+ },
63
+ {
64
+ "name": "filterable",
65
+ "description": "是否支持筛选",
66
+ "type": {
67
+ "raw": "boolean",
68
+ "kind": "boolean"
69
+ },
70
+ "required": false,
71
+ "default": "false",
72
+ "usageExample": "<TreeSelect filterable>"
73
+ },
74
+ {
75
+ "name": "filter",
76
+ "description": "自定义筛选规则函数",
77
+ "type": {
78
+ "raw": "(keywords: string, data: TreeDataItem) => boolean",
79
+ "kind": "function",
80
+ "functionSignature": "(keywords: string, data: TreeDataItem) => boolean"
81
+ },
82
+ "required": false,
83
+ "default": "undefined",
84
+ "usageExample": "<TreeSelect filterable :filter=\"customFilter\">"
85
+ },
86
+ {
87
+ "name": "load",
88
+ "description": "异步加载节点数据的函数",
89
+ "type": {
90
+ "raw": "(node: TreeNode) => Promise<void> | void",
91
+ "kind": "function",
92
+ "functionSignature": "(node: TreeNode) => Promise<void> | void"
93
+ },
94
+ "required": false,
95
+ "default": "undefined",
96
+ "usageExample": "<TreeSelect :load=\"loadData\">"
97
+ },
98
+ {
99
+ "name": "defaultExpandAll",
100
+ "description": "是否默认展开所有节点",
101
+ "type": {
102
+ "raw": "boolean",
103
+ "kind": "boolean"
104
+ },
105
+ "required": false,
106
+ "default": "false",
107
+ "usageExample": "<TreeSelect defaultExpandAll>"
108
+ },
109
+ {
110
+ "name": "showLine",
111
+ "description": "是否展示 Tree 的对齐线",
112
+ "type": {
113
+ "raw": "boolean",
114
+ "kind": "boolean"
115
+ },
116
+ "required": false,
117
+ "default": "true",
118
+ "usageExample": "<TreeSelect :showLine=\"false\">"
119
+ },
120
+ {
121
+ "name": "disabled",
122
+ "description": "是否禁用",
123
+ "type": {
124
+ "raw": "boolean",
125
+ "kind": "boolean"
126
+ },
127
+ "required": false,
128
+ "default": "false",
129
+ "usageExample": "<TreeSelect disabled>"
130
+ },
131
+ {
132
+ "name": "clearable",
133
+ "description": "是否可清空",
134
+ "type": {
135
+ "raw": "boolean",
136
+ "kind": "boolean"
137
+ },
138
+ "required": false,
139
+ "default": "false",
140
+ "usageExample": "<TreeSelect clearable>"
141
+ },
142
+ {
143
+ "name": "loading",
144
+ "description": "数据加载状态",
145
+ "type": {
146
+ "raw": "boolean",
147
+ "kind": "boolean"
148
+ },
149
+ "required": false,
150
+ "default": "false",
151
+ "usageExample": "<TreeSelect :loading=\"isLoading\">"
152
+ },
153
+ {
154
+ "name": "size",
155
+ "description": "尺寸",
156
+ "type": {
157
+ "raw": "\"large\" | \"default\" | \"small\" | \"mini\"",
158
+ "kind": "union",
159
+ "unionTypes": [
160
+ "large",
161
+ "default",
162
+ "small",
163
+ "mini"
164
+ ]
165
+ },
166
+ "required": false,
167
+ "default": "\"default\"",
168
+ "allowedValues": [
169
+ {
170
+ "value": "large",
171
+ "label": "大尺寸"
172
+ },
173
+ {
174
+ "value": "default",
175
+ "label": "默认尺寸",
176
+ "isDefault": true
177
+ },
178
+ {
179
+ "value": "small",
180
+ "label": "小尺寸"
181
+ },
182
+ {
183
+ "value": "mini",
184
+ "label": "迷你尺寸"
185
+ }
186
+ ],
187
+ "usageExample": "<TreeSelect size=\"small\">"
188
+ },
189
+ {
190
+ "name": "placeholder",
191
+ "description": "占位文案",
192
+ "type": {
193
+ "raw": "string",
194
+ "kind": "string"
195
+ },
196
+ "required": false,
197
+ "default": "\"请选择\"",
198
+ "usageExample": "<TreeSelect placeholder=\"请选择节点\">"
199
+ },
200
+ {
201
+ "name": "fluid",
202
+ "description": "是否宽度 100%",
203
+ "type": {
204
+ "raw": "boolean",
205
+ "kind": "boolean"
206
+ },
207
+ "required": false,
208
+ "default": "false",
209
+ "usageExample": "<TreeSelect fluid>"
210
+ },
211
+ {
212
+ "name": "width",
213
+ "description": "指定宽度,自动添加单位 px",
214
+ "type": {
215
+ "raw": "number | string",
216
+ "kind": "union"
217
+ },
218
+ "required": false,
219
+ "default": "undefined",
220
+ "usageExample": "<TreeSelect :width=\"300\">"
221
+ },
222
+ {
223
+ "name": "hideIcon",
224
+ "description": "是否隐藏后面的图标",
225
+ "type": {
226
+ "raw": "boolean",
227
+ "kind": "boolean"
228
+ },
229
+ "required": false,
230
+ "default": "false",
231
+ "usageExample": "<TreeSelect hideIcon>"
232
+ },
233
+ {
234
+ "name": "inline",
235
+ "description": "是否展示内联模式",
236
+ "type": {
237
+ "raw": "boolean",
238
+ "kind": "boolean"
239
+ },
240
+ "required": false,
241
+ "default": "false",
242
+ "usageExample": "<TreeSelect inline>"
243
+ },
244
+ {
245
+ "name": "flat",
246
+ "description": "是否展示扁平样式",
247
+ "type": {
248
+ "raw": "boolean",
249
+ "kind": "boolean"
250
+ },
251
+ "required": false,
252
+ "default": "false",
253
+ "usageExample": "<TreeSelect flat>"
254
+ }
255
+ ],
256
+ "events": [
257
+ {
258
+ "name": "show",
259
+ "vueEventName": "@show",
260
+ "description": "菜单弹出时触发",
261
+ "payload": [],
262
+ "usageExample": "<TreeSelect @show=\"handleShow\">",
263
+ "handlerExample": "const handleShow = () => {\n console.log('下拉菜单已打开');\n};"
264
+ },
265
+ {
266
+ "name": "hide",
267
+ "vueEventName": "@hide",
268
+ "description": "菜单隐藏时触发",
269
+ "payload": [],
270
+ "usageExample": "<TreeSelect @hide=\"handleHide\">",
271
+ "handlerExample": "const handleHide = () => {\n console.log('下拉菜单已关闭');\n};"
272
+ }
273
+ ],
274
+ "methods": [
275
+ {
276
+ "name": "expandAll",
277
+ "description": "展开所有节点",
278
+ "returnType": "void",
279
+ "usageExample": "treeSelectRef.value?.expandAll();"
280
+ }
281
+ ],
282
+ "slots": [
283
+ {
284
+ "name": "value",
285
+ "description": "自定义选择结果的展示",
286
+ "params": "([value: any, label: Children]) => Children"
287
+ },
288
+ {
289
+ "name": "values",
290
+ "description": "自定义多选的选择结果的展示",
291
+ "params": "([values: any[], labels: Children[]]) => Children"
292
+ },
293
+ {
294
+ "name": "prefix",
295
+ "description": "自定义输入框前面展示的内容"
296
+ },
297
+ {
298
+ "name": "suffix",
299
+ "description": "自定义输入框后面展示的内容"
300
+ },
301
+ {
302
+ "name": "menu",
303
+ "description": "自定义整个菜单的内容"
304
+ }
305
+ ],
306
+ "typeDefinitions": [
307
+ {
308
+ "name": "TreeDataItem",
309
+ "definition": "type TreeDataItem<K> = {\n label?: string | VNode\n key?: K\n disabled?: boolean\n loaded?: boolean\n children?: TreeDataItem<K>[]\n}",
310
+ "description": "树节点数据项类型"
311
+ }
312
+ ],
313
+ "examples": [
314
+ {
315
+ "id": "treeselect_basic",
316
+ "title": "基础用法",
317
+ "description": "基本的下拉树选择",
318
+ "difficulty": "easy",
319
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst value = ref('');\nconst data = ref([\n {\n label: '一级节点-1',\n key: '1',\n children: [\n { label: '二级节点-1.1', key: '1-1' },\n { label: '二级节点-1.2', key: '1-2' }\n ]\n },\n {\n label: '一级节点-2',\n key: '2',\n children: [\n { label: '二级节点-2.1', key: '2-1' },\n { label: '二级节点-2.2', key: '2-2', disabled: true }\n ]\n }\n]);\n</script>\n<template>\n <TreeSelect v-model=\"value\" :data=\"data\" placeholder=\"请选择节点\" />\n</template>",
320
+ "tags": [
321
+ "basic"
322
+ ],
323
+ "usedProps": [
324
+ "value",
325
+ "data",
326
+ "placeholder"
327
+ ],
328
+ "usedEvents": [],
329
+ "usedMethods": [],
330
+ "scenario": "创建一个基本的下拉树选择"
331
+ },
332
+ {
333
+ "id": "treeselect_multiple",
334
+ "title": "多选",
335
+ "description": "支持多选的下拉树",
336
+ "difficulty": "easy",
337
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst values = ref<string[]>([]);\nconst data = ref([\n {\n label: '一级节点-1',\n key: '1',\n children: [\n { label: '二级节点-1.1', key: '1-1' },\n { label: '二级节点-1.2', key: '1-2' }\n ]\n },\n {\n label: '一级节点-2',\n key: '2',\n children: [\n { label: '二级节点-2.1', key: '2-1' },\n { label: '二级节点-2.2', key: '2-2' }\n ]\n }\n]);\n</script>\n<template>\n <TreeSelect v-model=\"values\" :data=\"data\" multiple />\n</template>",
338
+ "tags": [
339
+ "multiple"
340
+ ],
341
+ "usedProps": [
342
+ "value",
343
+ "data",
344
+ "multiple"
345
+ ],
346
+ "usedEvents": [],
347
+ "usedMethods": [],
348
+ "scenario": "创建多选下拉树"
349
+ },
350
+ {
351
+ "id": "treeselect_checkbox",
352
+ "title": "带复选框",
353
+ "description": "带复选框的下拉树",
354
+ "difficulty": "medium",
355
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst values = ref<string[]>(['1-1']);\nconst data = ref([\n {\n label: '父节点',\n key: 'parent',\n children: [\n { label: '子节点1', key: '1-1' },\n { label: '子节点2', key: '1-2' },\n { label: '子节点3', key: '1-3' }\n ]\n }\n]);\n</script>\n<template>\n <TreeSelect v-model=\"values\" :data=\"data\" checkbox />\n</template>",
356
+ "tags": [
357
+ "checkbox"
358
+ ],
359
+ "usedProps": [
360
+ "value",
361
+ "data",
362
+ "checkbox"
363
+ ],
364
+ "usedEvents": [],
365
+ "usedMethods": [],
366
+ "scenario": "创建带复选框的下拉树"
367
+ },
368
+ {
369
+ "id": "treeselect_filterable",
370
+ "title": "可搜索",
371
+ "description": "支持搜索过滤的下拉树",
372
+ "difficulty": "easy",
373
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst value = ref('');\nconst data = ref([\n {\n label: '北京',\n key: 'beijing',\n children: [\n { label: '朝阳区', key: 'chaoyang' },\n { label: '海淀区', key: 'haidian' }\n ]\n },\n {\n label: '上海',\n key: 'shanghai',\n children: [\n { label: '浦东新区', key: 'pudong' },\n { label: '黄浦区', key: 'huangpu' }\n ]\n }\n]);\n</script>\n<template>\n <TreeSelect v-model=\"value\" :data=\"data\" filterable placeholder=\"输入搜索\" />\n</template>",
374
+ "tags": [
375
+ "filterable",
376
+ "search"
377
+ ],
378
+ "usedProps": [
379
+ "value",
380
+ "data",
381
+ "filterable",
382
+ "placeholder"
383
+ ],
384
+ "usedEvents": [],
385
+ "usedMethods": [],
386
+ "scenario": "创建可搜索的下拉树"
387
+ },
388
+ {
389
+ "id": "treeselect_async",
390
+ "title": "异步加载",
391
+ "description": "异步加载子节点",
392
+ "difficulty": "medium",
393
+ "code": "<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst data = reactive([\n {\n label: '父节点',\n key: 'parent',\n children: [\n { label: '子节点1', key: 'child1', children: [] },\n { label: '子节点2', key: 'child2', children: [], loaded: true }\n ]\n }\n]);\n\nconst loadData = (node: any) => {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n node.data.children = [\n { label: `异步节点1`, key: `${node.key}-1` },\n { label: `异步节点2`, key: `${node.key}-2`, children: [] }\n ];\n resolve();\n }, 1000);\n });\n};\n</script>\n<template>\n <TreeSelect :data=\"data\" :load=\"loadData\" />\n</template>",
394
+ "tags": [
395
+ "load",
396
+ "async"
397
+ ],
398
+ "usedProps": [
399
+ "data",
400
+ "load"
401
+ ],
402
+ "usedEvents": [],
403
+ "usedMethods": [],
404
+ "scenario": "异步加载子节点数据"
405
+ },
406
+ {
407
+ "id": "treeselect_clearable",
408
+ "title": "可清空",
409
+ "description": "可清空的下拉树",
410
+ "difficulty": "easy",
411
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TreeSelect } from '@king-design/vue';\n\nconst value = ref('node1');\nconst data = ref([\n { label: '节点1', key: 'node1' },\n { label: '节点2', key: 'node2' },\n { label: '节点3', key: 'node3' }\n]);\n</script>\n<template>\n <TreeSelect v-model=\"value\" :data=\"data\" clearable />\n</template>",
412
+ "tags": [
413
+ "clearable"
414
+ ],
415
+ "usedProps": [
416
+ "value",
417
+ "data",
418
+ "clearable"
419
+ ],
420
+ "usedEvents": [],
421
+ "usedMethods": [],
422
+ "scenario": "创建可清空的下拉树"
423
+ }
424
+ ],
425
+ "commonMistakes": [
426
+ {
427
+ "id": "treeselect_data_key",
428
+ "description": "data 中缺少 key 属性",
429
+ "wrongCode": "const data = [{ label: '节点1' }]; // 缺少 key",
430
+ "correctCode": "const data = [{ label: '节点1', key: 'node1' }];",
431
+ "explanation": "每个节点必须有唯一的 key 属性,key 同时也是选中时的取值",
432
+ "relatedProps": [
433
+ "data"
434
+ ]
435
+ },
436
+ {
437
+ "id": "treeselect_multiple_value_type",
438
+ "description": "多选时 value 类型错误",
439
+ "wrongCode": "const value = ref('');\n<TreeSelect v-model=\"value\" multiple />",
440
+ "correctCode": "const values = ref<string[]>([]);\n<TreeSelect v-model=\"values\" multiple />",
441
+ "explanation": "multiple 模式下 value 必须是数组类型",
442
+ "relatedProps": [
443
+ "value",
444
+ "multiple"
445
+ ]
446
+ },
447
+ {
448
+ "id": "treeselect_checkbox_vs_multiple",
449
+ "description": "混淆 checkbox 和 multiple",
450
+ "wrongCode": "<TreeSelect checkbox multiple /> <!-- 通常不需要同时使用 -->",
451
+ "correctCode": "<TreeSelect checkbox /> <!-- checkbox 已隐含多选 -->",
452
+ "explanation": "checkbox 模式已经支持多选,通常不需要同时设置 multiple",
453
+ "relatedProps": [
454
+ "checkbox",
455
+ "multiple"
456
+ ]
457
+ }
458
+ ],
459
+ "searchKeywords": [
460
+ "下拉树",
461
+ "treeselect",
462
+ "树形选择",
463
+ "树选择器",
464
+ "级联选择"
465
+ ],
466
+ "useCases": [
467
+ "组织架构选择",
468
+ "地区选择",
469
+ "分类选择",
470
+ "部门选择",
471
+ "文件夹选择"
472
+ ],
473
+ "relatedComponents": [
474
+ "Tree",
475
+ "Select",
476
+ "Cascader"
477
+ ]
478
+ }