king-design-analyzer 2.1.9 → 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.
- package/components/actions.json +109 -0
- package/components/advancedset.json +128 -0
- package/components/affix.json +8 -0
- package/components/aksk.json +172 -0
- package/components/anchor.json +220 -0
- package/components/anchorlink.json +111 -0
- package/components/az.json +15 -2
- package/components/badge.json +8 -0
- package/components/billtypes.json +14 -2
- package/components/breadcrumb.json +9 -1
- package/components/button.json +192 -0
- package/components/buttonlink.json +74 -0
- package/components/card.json +14 -4
- package/components/cardcol.json +142 -0
- package/components/cardcols.json +121 -0
- package/components/cardcontent.json +20 -3
- package/components/cardtabs.json +172 -0
- package/components/carousel.json +7 -0
- package/components/cascader.json +576 -368
- package/components/checkbox.json +51 -4
- package/components/cidrinput.json +140 -0
- package/components/code.json +8 -1
- package/components/collapse.json +335 -341
- package/components/colorpicker.json +217 -0
- package/components/configprovider.json +96 -0
- package/components/copy.json +7 -0
- package/components/copyhover.json +111 -0
- package/components/copyrow.json +125 -0
- package/components/datepicker.json +656 -524
- package/components/description.json +98 -0
- package/components/descriptions.json +10 -3
- package/components/diagram.json +295 -0
- package/components/dialog.json +526 -455
- package/components/divider.json +9 -1
- package/components/drawer.json +603 -558
- package/components/dropdown.json +464 -384
- package/components/duration.json +125 -0
- package/components/editable.json +66 -0
- package/components/ellipsis.json +34 -1
- package/components/filtertablefieldsdialog.json +128 -0
- package/components/flex.json +152 -0
- package/components/form.json +143 -3
- package/components/formiteminput.json +214 -0
- package/components/formitemspinner.json +213 -0
- package/components/formitemswitch.json +185 -0
- package/components/formitemtableconfigs.json +210 -0
- package/components/grid.json +7 -0
- package/components/header.json +165 -0
- package/components/icon.json +13 -1
- package/components/icontooltip.json +19 -1
- package/components/input.json +196 -8
- package/components/instancelist.json +194 -0
- package/components/instancenum.json +196 -0
- package/components/ipinput.json +117 -0
- package/components/kspstatus.json +205 -0
- package/components/kvcode.json +120 -0
- package/components/layoutcontent.json +24 -3
- package/components/layoutlistcontent.json +157 -0
- package/components/layoutpermissioncontent.json +156 -0
- package/components/layoutstandardlist.json +276 -0
- package/components/layouttabs.json +168 -0
- package/components/lazymount.json +87 -0
- package/components/lazyteleport.json +119 -0
- package/components/menu.json +11 -3
- package/components/notification.json +351 -0
- package/components/pagination.json +12 -0
- package/components/paginationplus.json +30 -3
- package/components/password.json +121 -0
- package/components/popover.json +457 -437
- package/components/projects.json +129 -0
- package/components/protable.json +99 -8
- package/components/queuevisualrange.json +110 -0
- package/components/radio.json +82 -2
- package/components/rate.json +200 -0
- package/components/region.json +14 -2
- package/components/scrollselect.json +140 -0
- package/components/search.json +221 -0
- package/components/searchinput.json +132 -0
- package/components/searchitems.json +215 -0
- package/components/searchselect.json +195 -0
- package/components/select.json +749 -666
- package/components/sidebar.json +198 -0
- package/components/skeleton.json +234 -0
- package/components/slider.json +12 -2
- package/components/spin.json +10 -2
- package/components/spinner.json +419 -429
- package/components/split.json +263 -0
- package/components/sshkeys.json +138 -0
- package/components/status.json +60 -3
- package/components/steps.json +7 -0
- package/components/switch.json +12 -3
- package/components/table.json +24 -2
- package/components/tablecolumnid.json +14 -2
- package/components/tabs.json +14 -2
- package/components/tag.json +8 -5
- package/components/timeline.json +215 -0
- package/components/timepicker.json +147 -3
- package/components/timerange.json +262 -0
- package/components/tip.json +27 -0
- package/components/tooltip.json +492 -395
- package/components/tour.json +418 -372
- package/components/transfer.json +79 -8
- package/components/tree.json +28 -5
- package/components/treeselect.json +612 -475
- package/components/upload.json +474 -473
- package/components/vdialog.json +309 -0
- package/components/vdrawer.json +335 -0
- package/components/virtuallist.json +7 -0
- package/dist/ast/index.d.mts +65 -2
- package/dist/ast/index.d.ts +65 -2
- package/dist/ast/index.js +4 -3
- package/dist/ast/index.mjs +2 -1
- package/dist/chunk-4OTQAQ6J.mjs +341 -0
- package/dist/{chunk-F26GUCGG.js → chunk-4WXOYU2N.js} +32 -9
- package/dist/chunk-6HOIRUQB.mjs +409 -0
- package/dist/chunk-DHLWNT53.js +364 -0
- package/dist/{chunk-H2ET6MMM.mjs → chunk-IPJJMPOO.mjs} +155 -66
- package/dist/{chunk-WYSRJVX4.js → chunk-JJ6AB4ZH.js} +2 -2
- package/dist/{chunk-2W6OCG2S.js → chunk-JNRGUR3O.js} +155 -67
- package/dist/chunk-KF5YBEM5.js +143 -0
- package/dist/{chunk-OJOHB64C.mjs → chunk-LRTDTFFQ.mjs} +28 -5
- package/dist/{chunk-DSWKLUIX.mjs → chunk-NZL6T22V.mjs} +1 -1
- package/dist/chunk-QC6VTSA3.mjs +117 -0
- package/dist/chunk-V5N65MRP.js +411 -0
- package/dist/full/index.d.mts +2 -0
- package/dist/full/index.d.ts +2 -0
- package/dist/full/index.js +7 -6
- package/dist/full/index.mjs +5 -4
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +14 -13
- package/dist/index.mjs +6 -5
- package/dist/metadata/index.d.mts +38 -3
- package/dist/metadata/index.d.ts +38 -3
- package/dist/metadata/index.js +26 -16
- package/dist/metadata/index.mjs +26 -15
- package/dist/resolve-BsLBxlBi.d.mts +24 -0
- package/dist/resolve-BsLBxlBi.d.ts +24 -0
- package/dist/runtime/index.d.mts +2 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +4 -4
- package/dist/runtime/index.mjs +2 -2
- package/dist/shared/index.d.mts +10 -0
- package/dist/shared/index.d.ts +10 -0
- package/dist/shared/index.js +23 -0
- package/dist/shared/index.mjs +2 -0
- package/dist/static/index.js +5 -5
- package/dist/static/index.mjs +2 -2
- package/docs_for_llm/actions.doc.md +87 -0
- package/docs_for_llm/advancedset.doc.md +98 -0
- package/docs_for_llm/affix.doc.md +20 -7
- package/docs_for_llm/aksk.doc.md +111 -0
- package/docs_for_llm/anchor.doc.md +155 -0
- package/docs_for_llm/anchorlink.doc.md +75 -0
- package/docs_for_llm/az.doc.md +17 -11
- package/docs_for_llm/badge.doc.md +11 -5
- package/docs_for_llm/billtypes.doc.md +17 -11
- package/docs_for_llm/breadcrumb.doc.md +80 -4
- package/docs_for_llm/button.doc.md +91 -18
- package/docs_for_llm/buttonlink.doc.md +64 -0
- package/docs_for_llm/card.doc.md +58 -8
- package/docs_for_llm/cardcol.doc.md +78 -0
- package/docs_for_llm/cardcols.doc.md +84 -0
- package/docs_for_llm/cardcontent.doc.md +31 -10
- package/docs_for_llm/cardtabs.doc.md +106 -0
- package/docs_for_llm/carousel.doc.md +79 -7
- package/docs_for_llm/cascader.doc.md +106 -23
- package/docs_for_llm/checkbox.doc.md +25 -13
- package/docs_for_llm/cidrinput.doc.md +83 -0
- package/docs_for_llm/code.doc.md +22 -11
- package/docs_for_llm/collapse.doc.md +147 -14
- package/docs_for_llm/colorpicker.doc.md +104 -0
- package/docs_for_llm/configprovider.doc.md +77 -0
- package/docs_for_llm/copy.doc.md +15 -13
- package/docs_for_llm/copyhover.doc.md +59 -0
- package/docs_for_llm/copyrow.doc.md +80 -0
- package/docs_for_llm/datepicker.doc.md +66 -35
- package/docs_for_llm/description.doc.md +75 -0
- package/docs_for_llm/descriptions.doc.md +122 -10
- package/docs_for_llm/diagram.doc.md +343 -0
- package/docs_for_llm/dialog.doc.md +97 -77
- package/docs_for_llm/divider.doc.md +14 -7
- package/docs_for_llm/drawer.doc.md +114 -69
- package/docs_for_llm/dropdown.doc.md +290 -22
- package/docs_for_llm/duration.doc.md +76 -0
- package/docs_for_llm/editable.doc.md +36 -14
- package/docs_for_llm/ellipsis.doc.md +10 -5
- package/docs_for_llm/filtertablefieldsdialog.doc.md +99 -0
- package/docs_for_llm/flex.doc.md +83 -0
- package/docs_for_llm/form.doc.md +196 -18
- package/docs_for_llm/formiteminput.doc.md +128 -0
- package/docs_for_llm/formitemspinner.doc.md +105 -0
- package/docs_for_llm/formitemswitch.doc.md +113 -0
- package/docs_for_llm/formitemtableconfigs.doc.md +95 -0
- package/docs_for_llm/grid.doc.md +78 -5
- package/docs_for_llm/header.doc.md +114 -0
- package/docs_for_llm/icon.doc.md +12 -8
- package/docs_for_llm/icontooltip.doc.md +121 -0
- package/docs_for_llm/input.doc.md +199 -41
- package/docs_for_llm/instancelist.doc.md +113 -0
- package/docs_for_llm/instancenum.doc.md +95 -0
- package/docs_for_llm/ipinput.doc.md +77 -0
- package/docs_for_llm/kspstatus.doc.md +82 -0
- package/docs_for_llm/kvcode.doc.md +76 -0
- package/docs_for_llm/layoutcontent.doc.md +54 -17
- package/docs_for_llm/layoutlistcontent.doc.md +168 -0
- package/docs_for_llm/layoutpermissioncontent.doc.md +93 -0
- package/docs_for_llm/layoutstandardlist.doc.md +129 -0
- package/docs_for_llm/layouttabs.doc.md +101 -0
- package/docs_for_llm/lazymount.doc.md +82 -0
- package/docs_for_llm/lazyteleport.doc.md +85 -0
- package/docs_for_llm/menu.doc.md +139 -14
- package/docs_for_llm/message.doc.md +93 -10
- package/docs_for_llm/notification.doc.md +214 -0
- package/docs_for_llm/pagination.doc.md +30 -17
- package/docs_for_llm/paginationplus.doc.md +31 -10
- package/docs_for_llm/password.doc.md +86 -0
- package/docs_for_llm/popover.doc.md +24 -55
- package/docs_for_llm/progress.doc.md +13 -10
- package/docs_for_llm/projects.doc.md +91 -0
- package/docs_for_llm/protable.doc.md +98 -15
- package/docs_for_llm/queuevisualrange.doc.md +78 -0
- package/docs_for_llm/radio.doc.md +23 -8
- package/docs_for_llm/rate.doc.md +127 -0
- package/docs_for_llm/region.doc.md +25 -13
- package/docs_for_llm/scrollselect.doc.md +90 -0
- package/docs_for_llm/search.doc.md +120 -0
- package/docs_for_llm/searchinput.doc.md +111 -0
- package/docs_for_llm/searchitems.doc.md +116 -0
- package/docs_for_llm/searchselect.doc.md +126 -0
- package/docs_for_llm/select.doc.md +208 -49
- package/docs_for_llm/sidebar.doc.md +133 -0
- package/docs_for_llm/skeleton.doc.md +152 -0
- package/docs_for_llm/slider.doc.md +42 -22
- package/docs_for_llm/spin.doc.md +18 -6
- package/docs_for_llm/spinner.doc.md +28 -18
- package/docs_for_llm/split.doc.md +170 -0
- package/docs_for_llm/sshkeys.doc.md +88 -0
- package/docs_for_llm/status.doc.md +14 -9
- package/docs_for_llm/steps.doc.md +81 -7
- package/docs_for_llm/switch.doc.md +32 -16
- package/docs_for_llm/table.doc.md +317 -55
- package/docs_for_llm/tablecolumnid.doc.md +36 -16
- package/docs_for_llm/tabs.doc.md +117 -12
- package/docs_for_llm/tag.doc.md +167 -15
- package/docs_for_llm/timeline.doc.md +187 -0
- package/docs_for_llm/timepicker.doc.md +74 -36
- package/docs_for_llm/timerange.doc.md +157 -0
- package/docs_for_llm/tip.doc.md +50 -11
- package/docs_for_llm/tooltip.doc.md +99 -27
- package/docs_for_llm/tour.doc.md +125 -28
- package/docs_for_llm/transfer.doc.md +99 -33
- package/docs_for_llm/tree.doc.md +129 -24
- package/docs_for_llm/treeselect.doc.md +101 -44
- package/docs_for_llm/upload.doc.md +63 -32
- package/docs_for_llm/useCRUD.doc.md +49 -0
- package/docs_for_llm/useCountdown.doc.md +43 -0
- package/docs_for_llm/useDetail.doc.md +48 -0
- package/docs_for_llm/useDialog.doc.md +46 -0
- package/docs_for_llm/useEntity.doc.md +45 -0
- package/docs_for_llm/useEventListener.doc.md +44 -0
- package/docs_for_llm/useFalseUntilTruthy.doc.md +41 -0
- package/docs_for_llm/useGetCopyAuthText.doc.md +35 -0
- package/docs_for_llm/useGetUserPermission.doc.md +43 -0
- package/docs_for_llm/useGroup.doc.md +48 -0
- package/docs_for_llm/useIdEntities.doc.md +48 -0
- package/docs_for_llm/useIdEntity.doc.md +103 -0
- package/docs_for_llm/useInterval.doc.md +43 -0
- package/docs_for_llm/useLayoutStandardList.doc.md +38 -0
- package/docs_for_llm/useMessage.doc.md +46 -0
- package/docs_for_llm/useModifyCache.doc.md +37 -0
- package/docs_for_llm/useOpenDialog.doc.md +41 -0
- package/docs_for_llm/usePagination.doc.md +60 -0
- package/docs_for_llm/usePersist.doc.md +54 -0
- package/docs_for_llm/usePoll.doc.md +41 -0
- package/docs_for_llm/useRoutePlus.doc.md +34 -0
- package/docs_for_llm/useRouterPlus.doc.md +34 -0
- package/docs_for_llm/useSearch.doc.md +68 -0
- package/docs_for_llm/useShell.doc.md +43 -0
- package/docs_for_llm/useSkip.doc.md +41 -0
- package/docs_for_llm/useStorageIdEntity.doc.md +46 -0
- package/docs_for_llm/useStore.doc.md +34 -0
- package/docs_for_llm/useTable.doc.md +57 -0
- package/docs_for_llm/useTableGroup.doc.md +47 -0
- package/docs_for_llm/useTableSort.doc.md +40 -0
- package/docs_for_llm/useToState.doc.md +112 -0
- package/docs_for_llm/useUser.doc.md +38 -0
- package/docs_for_llm/useValidForm.doc.md +41 -0
- package/docs_for_llm/vdialog.doc.md +154 -0
- package/docs_for_llm/vdrawer.doc.md +148 -0
- package/docs_for_llm/virtuallist.doc.md +157 -3
- package/hooks/useCRUD.json +61 -0
- package/hooks/useCountdown.json +49 -0
- package/hooks/useDetail.json +67 -0
- package/hooks/useDialog.json +49 -0
- package/hooks/useEntity.json +61 -0
- package/hooks/useEventListener.json +61 -0
- package/hooks/useFalseUntilTruthy.json +43 -0
- package/hooks/useGetCopyAuthText.json +36 -0
- package/hooks/useGetUserPermission.json +55 -0
- package/hooks/useGroup.json +49 -0
- package/hooks/useIdEntities.json +61 -0
- package/hooks/useInterval.json +55 -0
- package/hooks/useLayoutStandardList.json +36 -0
- package/hooks/useMessage.json +73 -0
- package/hooks/useModifyCache.json +36 -0
- package/hooks/useOpenDialog.json +43 -0
- package/hooks/usePagination.json +49 -0
- package/hooks/usePersist.json +61 -0
- package/hooks/usePoll.json +43 -0
- package/hooks/useRoutePlus.json +36 -0
- package/hooks/useRouterPlus.json +36 -0
- package/hooks/useSearch.json +56 -0
- package/hooks/useShell.json +49 -0
- package/hooks/useSkip.json +43 -0
- package/hooks/useStorageIdEntity.json +67 -0
- package/hooks/useStore.json +36 -0
- package/hooks/useTable.json +49 -0
- package/hooks/useTableGroup.json +43 -0
- package/hooks/useTableSort.json +43 -0
- package/hooks/useUser.json +36 -0
- package/hooks/useValidForm.json +43 -0
- package/package.json +14 -8
- package/dist/chunk-D3Y6FGWA.js +0 -153
- package/dist/chunk-HPAUCD5I.js +0 -156
- package/dist/chunk-L4DS3EXI.mjs +0 -133
- package/dist/chunk-NZ6TLWMD.mjs +0 -151
|
@@ -12,23 +12,95 @@ import { Carousel, CarouselItem } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `string` | `"$0"` | 否 | 当前展示的内容块对应的值。默认为索引字符串 "$0", "$1" 等 | `<Carousel v-model="currentValue"></Carousel>` |
|
|
18
|
-
| autoplay | `boolean | number` | `false` | 否 | 是否自动切换。如果传入数字,则表示自动切换的时间间隔(毫秒)。为 0 或 false 则不自动切换。 | `<Carousel :autoplay="3000"></Carousel>` |
|
|
19
|
-
| arrow | `"hover" | "always" | "never"` | `"hover"` | 否 | 左右切换箭头的展示方式 | `<Carousel arrow="always"></Carousel>` |
|
|
20
|
-
| effect | `"slide" | "fade"` | `"slide"` | 否 | 切换动画效果 | `<Carousel effect="fade"></Carousel>` |
|
|
21
|
-
| clonedAmount | `number` | `1` | 否 | slide 模式下,指定前后克隆的内容块数量,用于无缝循环轮播 | `<Carousel :clonedAmount="2"></Carousel>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `string` | `"$0"` | 否 | 当前展示的内容块对应的值。默认为索引字符串 "$0", "$1" 等 | - | `<Carousel v-model="currentValue"></Carousel>` |
|
|
18
|
+
| autoplay | `boolean | number` | `false` | 否 | 是否自动切换。如果传入数字,则表示自动切换的时间间隔(毫秒)。为 0 或 false 则不自动切换。 | - | `<Carousel :autoplay="3000"></Carousel>` |
|
|
19
|
+
| arrow | `"hover" | "always" | "never"` | `"hover"` | 否 | 左右切换箭头的展示方式 | - | `<Carousel arrow="always"></Carousel>` |
|
|
20
|
+
| effect | `"slide" | "fade"` | `"slide"` | 否 | 切换动画效果 | - | `<Carousel effect="fade"></Carousel>` |
|
|
21
|
+
| clonedAmount | `number` | `1` | 否 | slide 模式下,指定前后克隆的内容块数量,用于无缝循环轮播 | - | `<Carousel :clonedAmount="2"></Carousel>` |
|
|
22
22
|
|
|
23
23
|
## 子组件 (Sub-Components)
|
|
24
24
|
### CarouselItem
|
|
25
25
|
走马灯的内容项
|
|
26
26
|
|
|
27
|
+
#### 属性 (Props)
|
|
27
28
|
| 属性名 | 类型 | 说明 | 示例 |
|
|
28
29
|
| --- | --- | --- | --- |
|
|
29
30
|
| value | `string` | 定义该项的唯一值,若不设置默认为索引 "$0", "$1"... | `<CarouselItem value="item1"></CarouselItem>` |
|
|
30
31
|
|
|
32
|
+
#### 组合示例
|
|
33
|
+
##### 基础用法
|
|
34
|
+
**场景**: 基本的轮播展示
|
|
35
|
+
|
|
36
|
+
基本的走马灯效果
|
|
37
|
+
|
|
38
|
+
```vue
|
|
39
|
+
<script setup lang="ts">
|
|
40
|
+
import { Carousel, CarouselItem } from '@king-design/vue';
|
|
41
|
+
</script>
|
|
42
|
+
<template>
|
|
43
|
+
<Carousel style="height: 200px;">
|
|
44
|
+
<CarouselItem>
|
|
45
|
+
<div class="demo-item">1</div>
|
|
46
|
+
</CarouselItem>
|
|
47
|
+
<CarouselItem>
|
|
48
|
+
<div class="demo-item">2</div>
|
|
49
|
+
</CarouselItem>
|
|
50
|
+
<CarouselItem>
|
|
51
|
+
<div class="demo-item">3</div>
|
|
52
|
+
</CarouselItem>
|
|
53
|
+
</Carousel>
|
|
54
|
+
</template>
|
|
55
|
+
<style>
|
|
56
|
+
.demo-item {
|
|
57
|
+
height: 100%;
|
|
58
|
+
background: #36cfc9;
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
color: #fff;
|
|
63
|
+
font-size: 20px;
|
|
64
|
+
}
|
|
65
|
+
</style>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
##### 自动轮播
|
|
69
|
+
**场景**: 首页 Banner 自动轮播
|
|
70
|
+
|
|
71
|
+
设置 autoplay 属性自动播放
|
|
72
|
+
|
|
73
|
+
```vue
|
|
74
|
+
<script setup lang="ts">
|
|
75
|
+
import { Carousel, CarouselItem } from '@king-design/vue';
|
|
76
|
+
</script>
|
|
77
|
+
<template>
|
|
78
|
+
<Carousel :autoplay="3000" style="height: 200px;">
|
|
79
|
+
<CarouselItem>Page 1</CarouselItem>
|
|
80
|
+
<CarouselItem>Page 2</CarouselItem>
|
|
81
|
+
</Carousel>
|
|
82
|
+
</template>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
##### 淡入淡出
|
|
86
|
+
**场景**: 使用淡入淡出效果的轮播
|
|
87
|
+
|
|
88
|
+
使用 effect="fade" 切换效果
|
|
89
|
+
|
|
90
|
+
```vue
|
|
91
|
+
<script setup lang="ts">
|
|
92
|
+
import { Carousel, CarouselItem } from '@king-design/vue';
|
|
93
|
+
</script>
|
|
94
|
+
<template>
|
|
95
|
+
<Carousel effect="fade" style="height: 200px;">
|
|
96
|
+
<CarouselItem>Page 1</CarouselItem>
|
|
97
|
+
<CarouselItem>Page 2</CarouselItem>
|
|
98
|
+
</Carousel>
|
|
99
|
+
</template>
|
|
100
|
+
```
|
|
101
|
+
|
|
31
102
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
103
|
+
### 未设置 Carousel 高度
|
|
32
104
|
> **错误用法**: `<Carousel>...</Carousel>`
|
|
33
105
|
> **正确写法**: `<Carousel style="height: 300px;">...</Carousel>`
|
|
34
106
|
> **说明**: Carousel 默认可能没有高度或者高度为 0,需要显式设置高度。
|
|
@@ -12,43 +12,126 @@ import { Cascader } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `any` | `""` | 否 | 当前选中的值。多选模式下为数组。 | `<Cascader v-model="selectedCity"
|
|
18
|
-
| data | `CascaderData[]` | `[]` | 是 | 级联数据源。结构为 {value, label, children}[] | `<Cascader :data="options"
|
|
19
|
-
| multiple | `boolean` | `false` | 否 | 是否开启多选模式 | `<Cascader multiple
|
|
20
|
-
| filterable | `boolean` | `false` | 否 | 是否可搜索 | `<Cascader filterable
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `any` | `""` | 否 | 当前选中的值。多选模式下为数组。 | - | `<Cascader v-model="selectedCity">` |
|
|
18
|
+
| data | `CascaderData[]` | `[]` | 是 | 级联数据源。结构为 {value, label, children}[] | - | `<Cascader :data="options">` |
|
|
19
|
+
| multiple | `boolean` | `false` | 否 | 是否开启多选模式 | - | `<Cascader multiple>` |
|
|
20
|
+
| filterable | `boolean` | `false` | 否 | 是否可搜索 | - | `<Cascader filterable>` |
|
|
21
|
+
| filter | `(keywords: string, data: CascaderData) => boolean` | `undefined` | 否 | 自定义筛选规则函数 | - | `<Cascader filterable :filter="(kw, item) => item.label.includes(kw)">` |
|
|
22
|
+
| clearable | `boolean` | `false` | 否 | 是否显示清空按钮 | - | `<Cascader clearable>` |
|
|
23
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Cascader disabled>` |
|
|
24
|
+
| name | `string` | `undefined` | 否 | 表单元素的 name 属性 | - | `<Cascader name="city">` |
|
|
25
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | - | `<Cascader size="small">` |
|
|
26
|
+
| hideIcon | `boolean` | `false` | 否 | 是否隐藏后面的下拉图标 | - | `<Cascader hideIcon>` |
|
|
27
|
+
| trigger | `"click" | "hover"` | `"click"` | 否 | 子菜单触发方式 | - | `<Cascader trigger="hover">` |
|
|
28
|
+
| changeOnSelect | `boolean` | `false` | 否 | 是否选中父级即改变 value(允许选择任意一级) | - | `<Cascader changeOnSelect>` |
|
|
29
|
+
| format | `(values: any[]) => string` | `undefined` | 否 | 自定义选中项的显示格式,参数为选中的数据项数组,返回显示的字符串。 | - | `<Cascader :format="(v) => v.map(i => i.label).join(' > ')">` |
|
|
30
|
+
| loadData | `(item: any) => Promise<void> | void` | `undefined` | 否 | 动态加载数据函数。当子节点为空时调用。 | - | `<Cascader :loadData="loadMore">` |
|
|
31
|
+
| loading | `boolean` | `false` | 否 | 是否显示加载中状态 | - | `<Cascader loading>` |
|
|
32
|
+
| fluid | `boolean` | `false` | 否 | 是否宽度 100% | - | `<Cascader fluid>` |
|
|
33
|
+
| inline | `boolean` | `false` | 否 | 展示内联模式,该模式下组件没有边框,宽度和高度由内容撑开 | - | `<Cascader inline>` |
|
|
34
|
+
| placeholder | `string` | `"请选择"` | 否 | 占位文本 | - | `<Cascader placeholder="请选择城市">` |
|
|
35
|
+
| container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹出菜单追加的位置,默认 Dialog 组件会追加到 Dialog 中,其他追加到 body | - | `<Cascader :container="() => document.body">` |
|
|
36
|
+
| width | `number | string` | `undefined` | 否 | 指定宽度,组件自动添加单位 px | - | `<Cascader :width="240">` |
|
|
37
|
+
| show | `boolean` | `false` | 否 | 是否展示菜单项(受控模式) | - | `<Cascader :show="visible">` |
|
|
38
|
+
| position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'left top+8', at: 'left bottom'}` | 否 | 菜单弹出的位置 | - | `<Cascader position="top">` |
|
|
39
|
+
| flat | `boolean` | `false` | 否 | 是否展示扁平样式 | - | `<Cascader flat>` |
|
|
40
|
+
| nowrap | `boolean` | `false` | 否 | 选中值区域是否不换行展示,适合单行紧凑布局 | - | `<Cascader nowrap>` |
|
|
41
|
+
| draggable | `boolean` | `false` | 否 | 多选值是否支持拖动排序 | - | `<Cascader multiple draggable>` |
|
|
42
|
+
| virtual | `boolean` | `false` | 否 | 是否开启虚拟列表,用于大数据量场景 | - | `<Cascader virtual>` |
|
|
43
|
+
| fields | `object` | `undefined` | 否 | 自定义字段名映射,默认 {value:'value', label:'label', children:'children', disabled:'disabled'} | - | `<Cascader :fields="{value: 'code', label: 'name'}">` |
|
|
31
44
|
|
|
32
45
|
## 事件 (Events)
|
|
33
46
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
34
47
|
| --- | --- | --- | --- | --- |
|
|
35
|
-
| change | `@change` | 值发生变化时触发 | `value: any` | `<Cascader @change="handleChange"
|
|
36
|
-
| show | `@show` | 菜单显示时触发 | `-` | `<Cascader @show="onShow"
|
|
37
|
-
| hide | `@hide` | 菜单隐藏时触发 | `-` | `<Cascader @hide="onHide"
|
|
48
|
+
| change | `@change` | 值发生变化时触发 | `value: any` | `<Cascader @change="handleChange">` |
|
|
49
|
+
| show | `@show` | 菜单显示时触发 | `-` | `<Cascader @show="onShow">` |
|
|
50
|
+
| hide | `@hide` | 菜单隐藏时触发 | `-` | `<Cascader @hide="onHide">` |
|
|
51
|
+
|
|
52
|
+
### 事件参数说明
|
|
53
|
+
**change**
|
|
54
|
+
|
|
55
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
56
|
+
| --- | --- | --- | --- | --- |
|
|
57
|
+
| value | `any` | 是 | - | 当前选中的值 |
|
|
38
58
|
|
|
39
59
|
## 插槽 (Slots)
|
|
40
60
|
| 插槽名 | 说明 | 模板写法 | 示例 |
|
|
41
61
|
| --- | --- | --- | --- |
|
|
42
|
-
| value |
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
62
|
+
| value | 自定义单选模式下的已选路径展示内容 | `#value="[value, label]"` | `<Cascader v-model="selectedCity" :data="options">
|
|
63
|
+
<template #value="[value, label]">
|
|
64
|
+
<span>{{ label }} ({{ value.join(' / ') }})</span>
|
|
65
|
+
</template>
|
|
66
|
+
</Cascader>` |
|
|
67
|
+
| values | 自定义多选模式下的已选路径展示内容 | `#values="[values, labels]"` | `<Cascader v-model="selectedCities" :data="options" multiple>
|
|
68
|
+
<template #values="[values, labels]">
|
|
69
|
+
<span>已选 {{ labels.length }} 条路径</span>
|
|
70
|
+
</template>
|
|
71
|
+
</Cascader>` |
|
|
72
|
+
| prefix | 扩展选择框前缀内容 | `#prefix` | `<Cascader :data="options">
|
|
73
|
+
<template #prefix>
|
|
74
|
+
<span class="k-icon-location"></span>
|
|
75
|
+
</template>
|
|
76
|
+
</Cascader>` |
|
|
77
|
+
| suffix | 扩展选择框后缀内容 | `#suffix` | `<Cascader :data="options">
|
|
78
|
+
<template #suffix>
|
|
79
|
+
<span>路径</span>
|
|
80
|
+
</template>
|
|
81
|
+
</Cascader>` |
|
|
82
|
+
|
|
83
|
+
### 插槽参数说明
|
|
84
|
+
**value**
|
|
85
|
+
|
|
86
|
+
- 参数结构: #value="[value, label]"
|
|
87
|
+
- 参数列表: `value: V[]`、`label: string`
|
|
88
|
+
|
|
89
|
+
**values**
|
|
90
|
+
|
|
91
|
+
- 参数结构: #values="[values, labels]"
|
|
92
|
+
- 参数列表: `values: V[][]`、`labels: string[]`
|
|
93
|
+
|
|
94
|
+
**prefix**
|
|
95
|
+
|
|
96
|
+
- 参数结构: 无参数
|
|
97
|
+
|
|
98
|
+
**suffix**
|
|
99
|
+
|
|
100
|
+
- 参数结构: 无参数
|
|
101
|
+
|
|
102
|
+
## 方法 (Methods)
|
|
103
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
104
|
+
| --- | --- | --- | --- |
|
|
105
|
+
| show | 主动展开级联选择面板。 | `-` | `void` |
|
|
106
|
+
| hide | 主动关闭级联选择面板。 | `-` | `void` |
|
|
107
|
+
| position | 重新计算级联选择面板的位置。 | `-` | `void` |
|
|
108
|
+
|
|
109
|
+
### 方法调用示例
|
|
110
|
+
**show**
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
cascaderRef.value?.show();
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**hide**
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
cascaderRef.value?.hide();
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**position**
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
cascaderRef.value?.position();
|
|
126
|
+
```
|
|
46
127
|
|
|
47
128
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
129
|
+
### 数据未加载时显示空白
|
|
48
130
|
> **错误用法**: `<Cascader :data="[]" />`
|
|
49
131
|
> **正确写法**: `<Cascader :data="options" :loading="isLoading" />`
|
|
50
132
|
> **说明**: 如果数据为空,建议设置 loading 状态或者提供数据源。
|
|
51
133
|
|
|
134
|
+
### value 格式错误
|
|
52
135
|
> **错误用法**: `const value = ref('beijing')`
|
|
53
136
|
> **正确写法**: `const value = ref(['beijing', 'chaoyang'])`
|
|
54
137
|
> **说明**: Cascader 的 value 通常是一个数组(表示路径),如果是多选则为二维数组。
|
|
@@ -12,25 +12,34 @@ import { Checkbox } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `any` | `false` | 否 | 复选框的取值,可用 v-model 双向绑定。单独使用时为布尔值,组合使用时为数组 | `<Checkbox v-model="checked">选项</Checkbox>` |
|
|
18
|
-
| trueValue | `any` | `true` | 否 | 选中时的值 | `<Checkbox trueValue="yes" falseValue="no"></Checkbox>` |
|
|
19
|
-
| falseValue | `any` | `false` | 否 | 未选中时的值 | `<Checkbox trueValue="active" falseValue="inactive"></Checkbox>` |
|
|
20
|
-
| disabled | `boolean` | `false` | 否 | 是否禁用 | `<Checkbox disabled>禁用</Checkbox>` |
|
|
21
|
-
| indeterminate | `boolean` | `false` | 否 | 是否半选中状态,用于实现全选功能时表示部分选中 | `<Checkbox :indeterminate="isPartialChecked"></Checkbox>` |
|
|
22
|
-
| name | `string` | `undefined` | 否 | 原生 name 属性 | `<Checkbox name="agreement"></Checkbox>` |
|
|
23
|
-
| required | `boolean` | `undefined` | 否 | 原生 required 属性 | `<Checkbox required></Checkbox>` |
|
|
24
|
-
| form | `string` | `undefined` | 否 | 原生 form 属性 | `<Checkbox form="myForm"></Checkbox>` |
|
|
25
|
-
| autofocus | `boolean` | `undefined` | 否 | 原生 autofocus 属性 | `<Checkbox autofocus></Checkbox>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `any` | `false` | 否 | 复选框的取值,可用 v-model 双向绑定。单独使用时为布尔值,组合使用时为数组 | - | `<Checkbox v-model="checked">选项</Checkbox>` |
|
|
18
|
+
| trueValue | `any` | `true` | 否 | 选中时的值 | - | `<Checkbox trueValue="yes" falseValue="no"></Checkbox>` |
|
|
19
|
+
| falseValue | `any` | `false` | 否 | 未选中时的值 | - | `<Checkbox trueValue="active" falseValue="inactive"></Checkbox>` |
|
|
20
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Checkbox disabled>禁用</Checkbox>` |
|
|
21
|
+
| indeterminate | `boolean` | `false` | 否 | 是否半选中状态,用于实现全选功能时表示部分选中 | - | `<Checkbox :indeterminate="isPartialChecked"></Checkbox>` |
|
|
22
|
+
| name | `string` | `undefined` | 否 | 原生 name 属性 | `native` | `<Checkbox name="agreement"></Checkbox>` |
|
|
23
|
+
| required | `boolean` | `undefined` | 否 | 原生 required 属性 | `native` | `<Checkbox required></Checkbox>` |
|
|
24
|
+
| form | `string` | `undefined` | 否 | 原生 form 属性 | `native` | `<Checkbox form="myForm"></Checkbox>` |
|
|
25
|
+
| autofocus | `boolean` | `undefined` | 否 | 原生 autofocus 属性 | `native` | `<Checkbox autofocus></Checkbox>` |
|
|
26
|
+
| autocomplete | `string` | `undefined` | 否 | 原生 autocomplete 属性,指定浏览器自动补全行为 | `native` | `<Checkbox autocomplete="off"></Checkbox>` |
|
|
27
|
+
| maxlength | `number | string` | `undefined` | 否 | 原生 maxlength 属性,组件透传到内部 input 元素 | `native` | `<Checkbox :maxlength="1"></Checkbox>` |
|
|
26
28
|
|
|
27
29
|
## 事件 (Events)
|
|
28
30
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
29
31
|
| --- | --- | --- | --- | --- |
|
|
30
32
|
| change | `@change` | 当点击组件导致值变化时触发 | `value: any, e: MouseEvent` | `<Checkbox @change="handleChange"></Checkbox>` |
|
|
31
33
|
|
|
32
|
-
###
|
|
33
|
-
**change
|
|
34
|
+
### 事件参数说明
|
|
35
|
+
**change**
|
|
36
|
+
|
|
37
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
38
|
+
| --- | --- | --- | --- | --- |
|
|
39
|
+
| value | `any` | 是 | - | 变化后的值 |
|
|
40
|
+
| e | `MouseEvent` | 是 | - | 原生鼠标事件 |
|
|
41
|
+
|
|
42
|
+
事件处理示例:
|
|
34
43
|
```typescript
|
|
35
44
|
const handleChange = (value: boolean, e: MouseEvent) => {
|
|
36
45
|
console.log('选中状态:', value);
|
|
@@ -38,6 +47,7 @@ const handleChange = (value: boolean, e: MouseEvent) => {
|
|
|
38
47
|
```
|
|
39
48
|
|
|
40
49
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
50
|
+
### 复选框组使用错误的 value 类型
|
|
41
51
|
> **错误用法**: `const checked = ref(false);
|
|
42
52
|
<Checkbox v-model="checked" trueValue="apple">苹果</Checkbox>
|
|
43
53
|
<Checkbox v-model="checked" trueValue="banana">香蕉</Checkbox>`
|
|
@@ -46,10 +56,12 @@ const handleChange = (value: boolean, e: MouseEvent) => {
|
|
|
46
56
|
<Checkbox v-model="checkedList" trueValue="banana">香蕉</Checkbox>`
|
|
47
57
|
> **说明**: 复选框组需要使用数组类型的 value
|
|
48
58
|
|
|
59
|
+
### 使用 indeterminate 但未正确处理全选逻辑
|
|
49
60
|
> **错误用法**: `<Checkbox :indeterminate="true">全选</Checkbox>`
|
|
50
61
|
> **正确写法**: `<Checkbox v-model="checkAll" :indeterminate="indeterminate">全选</Checkbox>`
|
|
51
62
|
> **说明**: indeterminate 只控制视觉样式,需要配合 v-model 和计算属性实现全选逻辑
|
|
52
63
|
|
|
64
|
+
### 自定义值类型与初始值不匹配
|
|
53
65
|
> **错误用法**: `const value = ref(false);
|
|
54
66
|
<Checkbox v-model="value" trueValue="yes" falseValue="no">`
|
|
55
67
|
> **正确写法**: `const value = ref('no');
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# CIDR 输入框 (CidrInput)
|
|
2
|
+
|
|
3
|
+
用于录入网段 CIDR 的业务输入组件,把 IP 地址与掩码选择组合在一起,常用于 VPC、子网和安全策略配置。
|
|
4
|
+
|
|
5
|
+
**关键词**: cidr, cidr input, 网段输入, 子网配置, network cidr, 掩码选择
|
|
6
|
+
|
|
7
|
+
**使用场景**: 网络配置、子网和路由录入、CIDR 分段输入与校验
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { CidrInput } from '@ksyun-internal/versatile';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| modelValue | `string` | `undefined` | 否 | CIDR 值,如 192.168.0.0/24 | - | - |
|
|
18
|
+
| vpcCidr | `string` | `undefined` | 否 | 所属 VPC 的 CIDR,用于约束和提示 | - | - |
|
|
19
|
+
| disabled | `boolean | any[]` | `undefined` | 否 | 禁用状态或禁用分段配置 | - | - |
|
|
20
|
+
| tooltip | `any[]` | `undefined` | 否 | 各分段 tooltip 配置 | - | - |
|
|
21
|
+
| maskRange | `number[]` | `[0, 32]` | 否 | 可选掩码范围 | - | - |
|
|
22
|
+
|
|
23
|
+
## 事件 (Events)
|
|
24
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
25
|
+
| --- | --- | --- | --- | --- |
|
|
26
|
+
| update:modelValue | `@update:modelValue` | CIDR 字符串变化时触发,可直接同步到网络配置表单。 | `value?: string` | - |
|
|
27
|
+
|
|
28
|
+
### 事件参数说明
|
|
29
|
+
**update:modelValue**
|
|
30
|
+
|
|
31
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
32
|
+
| --- | --- | --- | --- | --- |
|
|
33
|
+
| value | `string` | 否 | - | 当前输入的 CIDR 字符串。 |
|
|
34
|
+
|
|
35
|
+
## 使用示例
|
|
36
|
+
### 子网网段录入
|
|
37
|
+
**场景**: 创建子网时录入并校验目标网段。
|
|
38
|
+
|
|
39
|
+
限制掩码范围,并结合 VPC 网段给出约束。
|
|
40
|
+
|
|
41
|
+
**使用的 API**: 属性: modelValue, vpcCidr, maskRange | 事件: update:modelValue
|
|
42
|
+
|
|
43
|
+
```vue
|
|
44
|
+
<script setup lang="ts">
|
|
45
|
+
import { ref } from 'vue';
|
|
46
|
+
import { CidrInput } from '@ksyun-internal/versatile';
|
|
47
|
+
|
|
48
|
+
const cidr = ref('192.168.1.0/24');
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<template>
|
|
52
|
+
<CidrInput
|
|
53
|
+
v-model="cidr"
|
|
54
|
+
vpc-cidr="192.168.0.0/16"
|
|
55
|
+
:mask-range="[16, 28]"
|
|
56
|
+
/>
|
|
57
|
+
</template>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 为分段输入补充提示
|
|
61
|
+
**场景**: 在网络配置页中用提示文案降低 CIDR 输入门槛。
|
|
62
|
+
|
|
63
|
+
给 CIDR 各段提供 tooltip,帮助用户理解输入规则。
|
|
64
|
+
|
|
65
|
+
**使用的 API**: 属性: modelValue, tooltip, maskRange | 事件: update:modelValue
|
|
66
|
+
|
|
67
|
+
```vue
|
|
68
|
+
<script setup lang="ts">
|
|
69
|
+
import { ref } from 'vue';
|
|
70
|
+
import { CidrInput } from '@ksyun-internal/versatile';
|
|
71
|
+
|
|
72
|
+
const cidr = ref('10.0.0.0/24');
|
|
73
|
+
const tooltip = ['网络段', '子网段', '主机段', '预留', '掩码长度'];
|
|
74
|
+
</script>
|
|
75
|
+
|
|
76
|
+
<template>
|
|
77
|
+
<CidrInput v-model="cidr" :tooltip="tooltip" :mask-range="[24, 28]" />
|
|
78
|
+
</template>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 相关组件
|
|
82
|
+
IPInput
|
|
83
|
+
|
package/docs_for_llm/code.doc.md
CHANGED
|
@@ -12,23 +12,31 @@ import { Code } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `string` | `""` | 否 | 编辑器的代码内容,可用 v-model 双向绑定 | `<Code v-model="code" />` |
|
|
18
|
-
| language | `string` | `"javascript"` | 否 | 指定编程语言 | `<Code language="typescript" />` |
|
|
19
|
-
| theme | `"vs" | "vs-dark" | "hc-black"` | `"vs"` | 否 | 指定主题 | `<Code theme="vs-dark" />` |
|
|
20
|
-
| readOnly | `boolean` | `false` | 否 | 是否只读 | `<Code readOnly />` |
|
|
21
|
-
| width | `string` | `"100%"` | 否 | 指定宽度,需要带单位 | `<Code width="800px" />` |
|
|
22
|
-
| height | `string` | `"100%"` | 否 | 指定高度,需要带单位 | `<Code height="400px" />` |
|
|
23
|
-
| options | `editor.IStandaloneEditorConstructionOptions` | `{}` | 否 | 其它 Monaco Editor 配置,会传给 monaco.editor.create() 方法 | `<Code :options="{minimap: {enabled: false}}" />` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `string` | `""` | 否 | 编辑器的代码内容,可用 v-model 双向绑定 | - | `<Code v-model="code" />` |
|
|
18
|
+
| language | `string` | `"javascript"` | 否 | 指定编程语言 | - | `<Code language="typescript" />` |
|
|
19
|
+
| theme | `"vs" | "vs-dark" | "hc-black"` | `"vs"` | 否 | 指定主题 | - | `<Code theme="vs-dark" />` |
|
|
20
|
+
| readOnly | `boolean` | `false` | 否 | 是否只读 | - | `<Code readOnly />` |
|
|
21
|
+
| width | `string` | `"100%"` | 否 | 指定宽度,需要带单位 | - | `<Code width="800px" />` |
|
|
22
|
+
| height | `string` | `"100%"` | 否 | 指定高度,需要带单位 | - | `<Code height="400px" />` |
|
|
23
|
+
| options | `editor.IStandaloneEditorConstructionOptions` | `{}` | 否 | 其它 Monaco Editor 配置,会传给 monaco.editor.create() 方法 | - | `<Code :options="{minimap: {enabled: false}}" />` |
|
|
24
24
|
|
|
25
25
|
## 事件 (Events)
|
|
26
26
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
27
27
|
| --- | --- | --- | --- | --- |
|
|
28
28
|
| ready | `@ready` | 编辑器加载并实例化完成时触发 | `editor: editor.IStandaloneCodeEditor, Editor: typeof editor, Monaco: typeof monaco` | `<Code @ready="handleReady" />` |
|
|
29
29
|
|
|
30
|
-
###
|
|
31
|
-
**ready
|
|
30
|
+
### 事件参数说明
|
|
31
|
+
**ready**
|
|
32
|
+
|
|
33
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
34
|
+
| --- | --- | --- | --- | --- |
|
|
35
|
+
| editor | `editor.IStandaloneCodeEditor` | 是 | - | 编辑器实例 |
|
|
36
|
+
| Editor | `typeof editor` | 是 | - | Editor 模块 |
|
|
37
|
+
| Monaco | `typeof monaco` | 是 | - | Monaco 模块 |
|
|
38
|
+
|
|
39
|
+
事件处理示例:
|
|
32
40
|
```typescript
|
|
33
41
|
const handleReady = (editor, Editor, Monaco) => {
|
|
34
42
|
console.log('编辑器已加载', editor);
|
|
@@ -37,14 +45,17 @@ const handleReady = (editor, Editor, Monaco) => {
|
|
|
37
45
|
```
|
|
38
46
|
|
|
39
47
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
48
|
+
### height/width 未带单位
|
|
40
49
|
> **错误用法**: `<Code height="200" /> <!-- 无单位 -->`
|
|
41
50
|
> **正确写法**: `<Code height="200px" />`
|
|
42
51
|
> **说明**: height 和 width 需要带单位,如 px、%、vh 等
|
|
43
52
|
|
|
53
|
+
### language 拼写错误
|
|
44
54
|
> **错误用法**: `<Code language="Javascript" /> <!-- 大写错误 -->`
|
|
45
55
|
> **正确写法**: `<Code language="javascript" />`
|
|
46
56
|
> **说明**: language 应使用小写,如 javascript、typescript
|
|
47
57
|
|
|
58
|
+
### 未正确导入 Code 组件
|
|
48
59
|
> **错误用法**: `import { Code } from '@king-design/vue'; // 可能未包含在默认 bundle 中`
|
|
49
60
|
> **正确写法**: `// 确保项目配置了 Monaco Editor
|
|
50
61
|
import { Code } from '@king-design/vue';`
|