king-design-analyzer 2.1.9 → 2.2.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.
- package/components/actions.json +101 -0
- package/components/advancedset.json +127 -0
- package/components/affix.json +7 -0
- package/components/aksk.json +172 -0
- package/components/az.json +15 -2
- package/components/badge.json +7 -0
- package/components/billtypes.json +14 -2
- package/components/breadcrumb.json +7 -0
- package/components/button.json +191 -0
- package/components/buttonlink.json +73 -0
- package/components/card.json +8 -1
- package/components/cardcol.json +142 -0
- package/components/cardcols.json +121 -0
- package/components/cardcontent.json +15 -3
- package/components/cardtabs.json +172 -0
- package/components/carousel.json +7 -0
- package/components/cascader.json +520 -368
- package/components/checkbox.json +51 -4
- package/components/cidrinput.json +140 -0
- package/components/code.json +8 -1
- package/components/collapse.json +7 -0
- package/components/colorpicker.json +217 -0
- package/components/copy.json +7 -0
- package/components/copyhover.json +111 -0
- package/components/copyrow.json +124 -0
- package/components/datepicker.json +656 -524
- package/components/description.json +98 -0
- package/components/dialog.json +522 -455
- package/components/divider.json +8 -1
- package/components/drawer.json +571 -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 +151 -0
- package/components/form.json +131 -0
- 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 +161 -0
- package/components/icon.json +13 -1
- package/components/icontooltip.json +19 -1
- package/components/input.json +188 -4
- 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 +15 -3
- package/components/layoutlistcontent.json +148 -0
- package/components/layoutpermissioncontent.json +155 -0
- package/components/layoutstandardlist.json +275 -0
- package/components/layouttabs.json +168 -0
- package/components/lazymount.json +86 -0
- package/components/lazyteleport.json +118 -0
- package/components/menu.json +7 -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 +97 -8
- package/components/queuevisualrange.json +110 -0
- package/components/radio.json +82 -2
- package/components/rate.json +199 -0
- package/components/region.json +14 -2
- 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 +686 -666
- package/components/sidebar.json +198 -0
- package/components/skeleton.json +233 -0
- package/components/spin.json +8 -1
- package/components/split.json +260 -0
- package/components/sshkeys.json +138 -0
- package/components/status.json +60 -3
- package/components/steps.json +7 -0
- package/components/switch.json +8 -1
- package/components/table.json +18 -1
- package/components/tablecolumnid.json +14 -2
- package/components/tabs.json +12 -0
- package/components/timeline.json +213 -0
- package/components/timepicker.json +147 -3
- package/components/timerange.json +262 -0
- package/components/tip.json +7 -0
- package/components/tooltip.json +484 -395
- package/components/tour.json +418 -372
- package/components/transfer.json +27 -3
- package/components/tree.json +6 -4
- package/components/treeselect.json +556 -475
- package/components/upload.json +474 -473
- package/components/vdialog.json +308 -0
- package/components/vdrawer.json +331 -0
- package/components/virtuallist.json +7 -0
- package/dist/ast/index.d.mts +35 -1
- package/dist/ast/index.d.ts +35 -1
- package/dist/ast/index.js +4 -3
- package/dist/ast/index.mjs +2 -1
- package/dist/{chunk-DSWKLUIX.mjs → chunk-3LYQ5XFM.mjs} +1 -1
- package/dist/chunk-BI5TIQID.mjs +330 -0
- package/dist/{chunk-F26GUCGG.js → chunk-CJGGFVQJ.js} +8 -8
- package/dist/chunk-CR3GC4H3.js +353 -0
- package/dist/{chunk-NZ6TLWMD.mjs → chunk-D2SXGGTX.mjs} +28 -17
- package/dist/{chunk-D3Y6FGWA.js → chunk-EYKZY2F3.js} +29 -18
- package/dist/chunk-KF5YBEM5.js +143 -0
- package/dist/{chunk-H2ET6MMM.mjs → chunk-KMIDURUR.mjs} +42 -47
- package/dist/chunk-QC6VTSA3.mjs +117 -0
- package/dist/{chunk-2W6OCG2S.js → chunk-SZYVGYKK.js} +42 -48
- package/dist/{chunk-WYSRJVX4.js → chunk-TA3SV4SP.js} +2 -2
- package/dist/{chunk-OJOHB64C.mjs → chunk-XGPHQHLR.mjs} +4 -4
- 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 +22 -2
- package/dist/metadata/index.d.ts +22 -2
- 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.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 +77 -0
- package/docs_for_llm/advancedset.doc.md +89 -0
- package/docs_for_llm/affix.doc.md +15 -7
- package/docs_for_llm/aksk.doc.md +111 -0
- package/docs_for_llm/az.doc.md +17 -11
- package/docs_for_llm/badge.doc.md +6 -5
- package/docs_for_llm/billtypes.doc.md +17 -11
- package/docs_for_llm/breadcrumb.doc.md +6 -3
- package/docs_for_llm/button.doc.md +34 -18
- package/docs_for_llm/buttonlink.doc.md +55 -0
- package/docs_for_llm/card.doc.md +8 -5
- 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 +10 -10
- package/docs_for_llm/cardtabs.doc.md +106 -0
- package/docs_for_llm/carousel.doc.md +8 -7
- package/docs_for_llm/cascader.doc.md +46 -25
- 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 +9 -6
- package/docs_for_llm/colorpicker.doc.md +104 -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 +71 -0
- package/docs_for_llm/datepicker.doc.md +51 -39
- package/docs_for_llm/description.doc.md +75 -0
- package/docs_for_llm/descriptions.doc.md +9 -6
- package/docs_for_llm/dialog.doc.md +48 -77
- package/docs_for_llm/divider.doc.md +9 -7
- package/docs_for_llm/drawer.doc.md +43 -84
- package/docs_for_llm/dropdown.doc.md +52 -21
- 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 +74 -0
- package/docs_for_llm/form.doc.md +33 -14
- 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 +7 -5
- package/docs_for_llm/header.doc.md +85 -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 +90 -39
- 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 +17 -17
- package/docs_for_llm/layoutlistcontent.doc.md +95 -0
- package/docs_for_llm/layoutpermissioncontent.doc.md +84 -0
- package/docs_for_llm/layoutstandardlist.doc.md +120 -0
- package/docs_for_llm/layouttabs.doc.md +101 -0
- package/docs_for_llm/lazymount.doc.md +73 -0
- package/docs_for_llm/lazyteleport.doc.md +76 -0
- package/docs_for_llm/menu.doc.md +14 -11
- package/docs_for_llm/message.doc.md +48 -10
- 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 +89 -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 +122 -0
- package/docs_for_llm/region.doc.md +25 -13
- 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 +40 -55
- package/docs_for_llm/sidebar.doc.md +133 -0
- package/docs_for_llm/skeleton.doc.md +117 -0
- package/docs_for_llm/slider.doc.md +31 -21
- package/docs_for_llm/spin.doc.md +8 -5
- package/docs_for_llm/spinner.doc.md +28 -18
- package/docs_for_llm/split.doc.md +157 -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 +10 -7
- package/docs_for_llm/switch.doc.md +17 -14
- package/docs_for_llm/table.doc.md +118 -51
- package/docs_for_llm/tablecolumnid.doc.md +36 -16
- package/docs_for_llm/tabs.doc.md +19 -10
- package/docs_for_llm/tag.doc.md +19 -10
- package/docs_for_llm/timeline.doc.md +109 -0
- package/docs_for_llm/timepicker.doc.md +57 -38
- package/docs_for_llm/timerange.doc.md +157 -0
- package/docs_for_llm/tip.doc.md +20 -11
- package/docs_for_llm/tooltip.doc.md +55 -29
- package/docs_for_llm/tour.doc.md +48 -29
- package/docs_for_llm/transfer.doc.md +40 -29
- package/docs_for_llm/tree.doc.md +65 -23
- package/docs_for_llm/treeselect.doc.md +37 -48
- package/docs_for_llm/upload.doc.md +56 -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 +129 -0
- package/docs_for_llm/vdrawer.doc.md +119 -0
- package/docs_for_llm/virtuallist.doc.md +6 -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 +12 -6
- package/dist/chunk-HPAUCD5I.js +0 -156
- package/dist/chunk-L4DS3EXI.mjs +0 -133
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 卡片标签页 (CardTabs)
|
|
2
|
+
|
|
3
|
+
带卡片视觉风格的标签切换组件,适合详情页顶部在“概览、监控、操作日志”等信息块之间切换。
|
|
4
|
+
|
|
5
|
+
**关键词**: card tabs, detail tabs, 卡片标签, 卡片页签, 详情页签, 信息块切换, tabs, tab switch
|
|
6
|
+
|
|
7
|
+
**使用场景**: 详情页卡片切换、多块信息切换、基于后端字段映射的标签切换、概览与监控等内容分区
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { CardTabs } from '@ksyun-internal/versatile';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| modelValue | `string | number` | `undefined` | 否 | 当前选中的标签值 | - | - |
|
|
18
|
+
| tabs | `any[]` | `undefined` | 否 | 标签数据列表 | - | - |
|
|
19
|
+
| tabLabelName | `string` | `"label"` | 否 | 标签文案字段名 | - | - |
|
|
20
|
+
| tabValueName | `string` | `"value"` | 否 | 标签值字段名 | - | - |
|
|
21
|
+
| data | `any[]` | `undefined` | 否 | 每个标签对应的卡片内容数据 | - | - |
|
|
22
|
+
|
|
23
|
+
## 事件 (Events)
|
|
24
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
25
|
+
| --- | --- | --- | --- | --- |
|
|
26
|
+
| update:modelValue | `@update:modelValue` | 当前激活标签值变化时触发,可直接驱动外层 `v-model`。 | `value?: string | number` | - |
|
|
27
|
+
| change:value | `@change:value` | 标签切换并得到新的 value 时触发,通常用于请求对应数据。 | `value?: string | number` | - |
|
|
28
|
+
| update:tab | `@update:tab` | 当前选中的完整 tab 对象变化时触发,便于读取 tab 上的额外配置。 | `value?: CardTabItem` | - |
|
|
29
|
+
|
|
30
|
+
### 事件参数说明
|
|
31
|
+
**update:modelValue**
|
|
32
|
+
|
|
33
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
34
|
+
| --- | --- | --- | --- | --- |
|
|
35
|
+
| value | `string | number` | 否 | - | 当前激活标签的 value。 |
|
|
36
|
+
|
|
37
|
+
**change:value**
|
|
38
|
+
|
|
39
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
40
|
+
| --- | --- | --- | --- | --- |
|
|
41
|
+
| value | `string | number` | 否 | - | 当前切换后的标签值。 |
|
|
42
|
+
|
|
43
|
+
**update:tab**
|
|
44
|
+
|
|
45
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
46
|
+
| --- | --- | --- | --- | --- |
|
|
47
|
+
| value | `CardTabItem` | 否 | - | 当前激活的完整标签项对象。 |
|
|
48
|
+
|
|
49
|
+
## 使用示例
|
|
50
|
+
### 详情页中的卡片标签切换
|
|
51
|
+
**场景**: 在详情卡片头部切换不同业务分区。
|
|
52
|
+
|
|
53
|
+
用 CardTabs 在卡片区域切换不同信息块。
|
|
54
|
+
|
|
55
|
+
**使用的 API**: 属性: modelValue, tabs | 事件: update:modelValue
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<script setup lang="ts">
|
|
59
|
+
import { ref } from 'vue';
|
|
60
|
+
import { CardTabs } from '@ksyun-internal/versatile';
|
|
61
|
+
|
|
62
|
+
const activeTab = ref('base');
|
|
63
|
+
const tabs = [
|
|
64
|
+
{ label: '基本信息', value: 'base' },
|
|
65
|
+
{ label: '监控图表', value: 'monitor' },
|
|
66
|
+
{ label: '变更记录', value: 'logs' },
|
|
67
|
+
];
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<template>
|
|
71
|
+
<CardTabs v-model="activeTab" :tabs="tabs" />
|
|
72
|
+
</template>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 自定义标签字段名
|
|
76
|
+
**场景**: 直接复用后端返回的 tab 数据结构而不做额外转换。
|
|
77
|
+
|
|
78
|
+
当后端返回的字段名不是 label/value 时,可通过映射字段使用。
|
|
79
|
+
|
|
80
|
+
**使用的 API**: 属性: modelValue, tabs, tabLabelName, tabValueName | 事件: update:modelValue
|
|
81
|
+
|
|
82
|
+
```vue
|
|
83
|
+
<script setup lang="ts">
|
|
84
|
+
import { ref } from 'vue';
|
|
85
|
+
import { CardTabs } from '@ksyun-internal/versatile';
|
|
86
|
+
|
|
87
|
+
const activeTab = ref('network');
|
|
88
|
+
const tabs = [
|
|
89
|
+
{ name: '基础信息', id: 'base' },
|
|
90
|
+
{ name: '网络配置', id: 'network' },
|
|
91
|
+
];
|
|
92
|
+
</script>
|
|
93
|
+
|
|
94
|
+
<template>
|
|
95
|
+
<CardTabs
|
|
96
|
+
v-model="activeTab"
|
|
97
|
+
:tabs="tabs"
|
|
98
|
+
tab-label-name="name"
|
|
99
|
+
tab-value-name="id"
|
|
100
|
+
/>
|
|
101
|
+
</template>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 相关组件
|
|
105
|
+
LayoutTabs, CardCols, CardCol
|
|
106
|
+
|
|
@@ -12,13 +12,13 @@ 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
|
|
@@ -29,6 +29,7 @@ import { Carousel, CarouselItem } from '@king-design/vue';
|
|
|
29
29
|
| value | `string` | 定义该项的唯一值,若不设置默认为索引 "$0", "$1"... | `<CarouselItem value="item1"></CarouselItem>` |
|
|
30
30
|
|
|
31
31
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
32
|
+
### 未设置 Carousel 高度
|
|
32
33
|
> **错误用法**: `<Carousel>...</Carousel>`
|
|
33
34
|
> **正确写法**: `<Carousel style="height: 300px;">...</Carousel>`
|
|
34
35
|
> **说明**: Carousel 默认可能没有高度或者高度为 0,需要显式设置高度。
|
|
@@ -12,43 +12,64 @@ 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">` |
|
|
38
51
|
|
|
39
|
-
|
|
40
|
-
|
|
52
|
+
### 事件参数说明
|
|
53
|
+
**change**
|
|
54
|
+
|
|
55
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
56
|
+
| --- | --- | --- | --- | --- |
|
|
57
|
+
| value | `any` | 是 | - | 当前选中的值 |
|
|
58
|
+
|
|
59
|
+
## 方法 (Methods)
|
|
60
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
41
61
|
| --- | --- | --- | --- |
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
| suffix | 自定义输入框后面展示的内容 | `undefined` | - |
|
|
62
|
+
| show | 主动展开级联选择面板。 | `-` | `void` |
|
|
63
|
+
| hide | 主动关闭级联选择面板。 | `-` | `void` |
|
|
64
|
+
| position | 重新计算级联选择面板的位置。 | `-` | `void` |
|
|
46
65
|
|
|
47
66
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
67
|
+
### 数据未加载时显示空白
|
|
48
68
|
> **错误用法**: `<Cascader :data="[]" />`
|
|
49
69
|
> **正确写法**: `<Cascader :data="options" :loading="isLoading" />`
|
|
50
70
|
> **说明**: 如果数据为空,建议设置 loading 状态或者提供数据源。
|
|
51
71
|
|
|
72
|
+
### value 格式错误
|
|
52
73
|
> **错误用法**: `const value = ref('beijing')`
|
|
53
74
|
> **正确写法**: `const value = ref(['beijing', 'chaoyang'])`
|
|
54
75
|
> **说明**: 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';`
|
|
@@ -12,12 +12,12 @@ import { Collapse, CollapseItem } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `string[]` | `undefined` | 否 | 当前展开的 CollapseItem 取值,可用 v-model 双向绑定 | `<Collapse v-model="activeKeys"></Collapse>` |
|
|
18
|
-
| accordion | `boolean` | `false` | 否 | 是否展示手风琴风格,同时只能展开一个面板 | `<Collapse v-model="activeKeys" accordion></Collapse>` |
|
|
19
|
-
| arrow | `"right" | "left"` | `"right"` | 否 | 指定箭头位置 | `<Collapse arrow="left"></Collapse>` |
|
|
20
|
-
| noBorder | `boolean` | `false` | 否 | 是否展示无边框的简洁样式 | `<Collapse noBorder></Collapse>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `string[]` | `undefined` | 否 | 当前展开的 CollapseItem 取值,可用 v-model 双向绑定 | - | `<Collapse v-model="activeKeys"></Collapse>` |
|
|
18
|
+
| accordion | `boolean` | `false` | 否 | 是否展示手风琴风格,同时只能展开一个面板 | - | `<Collapse v-model="activeKeys" accordion></Collapse>` |
|
|
19
|
+
| arrow | `"right" | "left"` | `"right"` | 否 | 指定箭头位置 | - | `<Collapse arrow="left"></Collapse>` |
|
|
20
|
+
| noBorder | `boolean` | `false` | 否 | 是否展示无边框的简洁样式 | - | `<Collapse noBorder></Collapse>` |
|
|
21
21
|
|
|
22
22
|
## 插槽 (Slots)
|
|
23
23
|
| 插槽名 | 说明 | 模板写法 | 示例 |
|
|
@@ -39,12 +39,14 @@ import { Collapse, CollapseItem } from '@king-design/vue';
|
|
|
39
39
|
- `@hide`: 收起时触发
|
|
40
40
|
|
|
41
41
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
42
|
+
### value 类型错误,使用字符串而非数组
|
|
42
43
|
> **错误用法**: `const activeKey = ref('1');
|
|
43
44
|
<Collapse v-model="activeKey">`
|
|
44
45
|
> **正确写法**: `const activeKeys = ref(['1']);
|
|
45
46
|
<Collapse v-model="activeKeys">`
|
|
46
47
|
> **说明**: Collapse 的 value 必须是字符串数组类型,即使使用 accordion 模式
|
|
47
48
|
|
|
49
|
+
### CollapseItem 未设置 value 导致无法正确控制
|
|
48
50
|
> **错误用法**: `<Collapse v-model="activeKeys">
|
|
49
51
|
<CollapseItem title="面板">内容</CollapseItem>
|
|
50
52
|
</Collapse>`
|
|
@@ -53,6 +55,7 @@ import { Collapse, CollapseItem } from '@king-design/vue';
|
|
|
53
55
|
</Collapse>`
|
|
54
56
|
> **说明**: 建议为 CollapseItem 显式设置 value,便于控制展开状态
|
|
55
57
|
|
|
58
|
+
### arrow 值拼写错误
|
|
56
59
|
> **错误用法**: `<Collapse arrow="start">`
|
|
57
60
|
> **正确写法**: `<Collapse arrow="left">`
|
|
58
61
|
> **说明**: arrow 只支持 right 和 left 两个值
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# 颜色选择器 (Colorpicker)
|
|
2
|
+
|
|
3
|
+
颜色选择器组件,用于选择纯色或带透明度的颜色值。点击触发器后会弹出调色面板,支持预设颜色、自定义弹出容器和弹层定位。
|
|
4
|
+
|
|
5
|
+
**关键词**: colorpicker, 颜色选择器, 颜色, 主题色, rgba, hex, 预设颜色
|
|
6
|
+
|
|
7
|
+
**使用场景**: 主题颜色配置、图表颜色设置、标签颜色自定义、运营后台品牌色选择
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { Colorpicker } from '@king-design/vue';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `string` | `undefined` | 是 | 当前颜色值,必填。支持十六进制颜色或 rgba 字符串,可用 v-model 双向绑定。 | - | `<Colorpicker v-model="color" />` |
|
|
18
|
+
| presets | `string[]` | `["#D0021B", "#F5A623", "#F8E71C", "#8B572A", "#7ED321", "#417505", "#BD10E0", "#9013FE", "#4A90E2", "#50E3C2", "#B8E986", "#000000", "#4A4A4A", "#9B9B9B", "#FFFFFF"]` | 否 | 预设颜色列表,展示在面板底部,便于快速选择常用颜色。 | - | `<Colorpicker v-model="color" :presets="['#1677ff', '#52c41a', '#faad14']" />` |
|
|
19
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸。 | - | `<Colorpicker v-model="color" size="small" />` |
|
|
20
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用,禁用后无法打开面板和修改颜色。 | - | `<Colorpicker v-model="color" disabled />` |
|
|
21
|
+
| container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹出层挂载位置。通常在 Dialog、Drawer 等容器中需要显式指定,避免层级或定位异常。 | - | `<Colorpicker v-model="color" :container="() => document.body" />` |
|
|
22
|
+
| show | `boolean` | `undefined` | 否 | 是否展示颜色面板,可用于受控显示。 | - | `<Colorpicker v-model="color" :show="visible" />` |
|
|
23
|
+
| position | `DropdownProps['position']` | `{ collision: 'fit' }` | 否 | 下拉面板定位配置,继承 Dropdown 的 position 能力。 | - | `<Colorpicker v-model="color" :position="{ placement: 'bottom-start', collision: 'fit' }" />` |
|
|
24
|
+
|
|
25
|
+
## 常见错误与正确用法 (Anti-Hallucination)
|
|
26
|
+
### 未传入有效颜色字符串
|
|
27
|
+
> **错误用法**: `<Colorpicker :value="undefined" />`
|
|
28
|
+
> **正确写法**: `<Colorpicker v-model="color" />`
|
|
29
|
+
> **说明**: Colorpicker 的 value 是必填项,应提供合法的颜色字符串并通过 v-model 维护状态。
|
|
30
|
+
|
|
31
|
+
### 在弹层容器内使用时未指定 container
|
|
32
|
+
> **错误用法**: `<Dialog v-model="visible"><Colorpicker v-model="color" /></Dialog>`
|
|
33
|
+
> **正确写法**: `<Dialog v-model="visible"><Colorpicker v-model="color" :container="() => document.body" /></Dialog>`
|
|
34
|
+
> **说明**: Colorpicker 内部会渲染下拉面板,在 Dialog、Drawer 等场景中建议显式设置挂载容器,避免遮挡和定位问题。
|
|
35
|
+
|
|
36
|
+
## 使用示例
|
|
37
|
+
### 基础用法
|
|
38
|
+
**场景**: 选择品牌主色或主题色
|
|
39
|
+
|
|
40
|
+
选择主题色并实时预览。
|
|
41
|
+
|
|
42
|
+
**使用的 API**: 属性: value
|
|
43
|
+
|
|
44
|
+
```vue
|
|
45
|
+
<script setup lang="ts">
|
|
46
|
+
import { ref } from 'vue';
|
|
47
|
+
import { Colorpicker } from '@king-design/vue';
|
|
48
|
+
|
|
49
|
+
const color = ref('#1677ff');
|
|
50
|
+
</script>
|
|
51
|
+
<template>
|
|
52
|
+
<div style="display: flex; align-items: center; gap: 12px;">
|
|
53
|
+
<Colorpicker v-model="color" />
|
|
54
|
+
<span>当前颜色:{{ color }}</span>
|
|
55
|
+
</div>
|
|
56
|
+
</template>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 预设颜色
|
|
60
|
+
**场景**: 为运营后台提供固定品牌色
|
|
61
|
+
|
|
62
|
+
通过 presets 提供常用颜色快捷选择。
|
|
63
|
+
|
|
64
|
+
**使用的 API**: 属性: value, presets
|
|
65
|
+
|
|
66
|
+
```vue
|
|
67
|
+
<script setup lang="ts">
|
|
68
|
+
import { ref } from 'vue';
|
|
69
|
+
import { Colorpicker } from '@king-design/vue';
|
|
70
|
+
|
|
71
|
+
const color = ref('#52c41a');
|
|
72
|
+
const presets = ['#1677ff', '#52c41a', '#faad14', '#f5222d', '#722ed1'];
|
|
73
|
+
</script>
|
|
74
|
+
<template>
|
|
75
|
+
<Colorpicker v-model="color" :presets="presets" />
|
|
76
|
+
</template>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 弹窗内使用
|
|
80
|
+
**场景**: 在弹窗中配置颜色字段
|
|
81
|
+
|
|
82
|
+
在弹窗中显式指定挂载容器,避免弹层错位。
|
|
83
|
+
|
|
84
|
+
**使用的 API**: 属性: value, container
|
|
85
|
+
|
|
86
|
+
```vue
|
|
87
|
+
<script setup lang="ts">
|
|
88
|
+
import { ref } from 'vue';
|
|
89
|
+
import { Button, Colorpicker, Dialog } from '@king-design/vue';
|
|
90
|
+
|
|
91
|
+
const visible = ref(false);
|
|
92
|
+
const color = ref('rgba(22, 119, 255, 0.8)');
|
|
93
|
+
</script>
|
|
94
|
+
<template>
|
|
95
|
+
<Button @click="visible = true">编辑颜色</Button>
|
|
96
|
+
<Dialog v-model="visible" title="颜色设置">
|
|
97
|
+
<Colorpicker v-model="color" :container="() => document.body" />
|
|
98
|
+
</Dialog>
|
|
99
|
+
</template>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 相关组件
|
|
103
|
+
Input, Dropdown, Dialog
|
|
104
|
+
|