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
package/docs_for_llm/icon.doc.md
CHANGED
|
@@ -12,28 +12,32 @@ import { Icon } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| class | `string` | `undefined` | 是 | 必填。通过 class 指定图标名称,需以 k-icon- 为前缀。例如: k-icon-user | `<Icon class="k-icon-user" />` |
|
|
18
|
-
| size | `"default" | "large" | "small" | "mini" | string | number` | `"default"` | 否 | 定义图标尺寸,可使用预设值或自定义数值 | `<Icon class="k-icon-home" size="large" />` |
|
|
19
|
-
| color | `"default" | "primary" | "danger" | "warning" | "success" | string` | `undefined` | 否 | 图标颜色,可使用预设主题色或自定义颜色值 | `<Icon class="k-icon-heart" color="danger" />` |
|
|
20
|
-
| rotate | `boolean` | `false` | 否 | 是否一直旋转图标,适用于加载状态 | `<Icon class="k-icon-refresh" rotate />` |
|
|
21
|
-
| hoverable | `boolean` | `false` | 否 | 图标是否具有 hover 效果,适用于可点击图标 | `<Icon class="k-icon-delete" hoverable @click="handleDelete" />` |
|
|
22
|
-
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | `<Icon class="k-icon-edit" disabled />` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| class | `string` | `undefined` | 是 | 必填。通过 class 指定图标名称,需以 k-icon- 为前缀。例如: k-icon-user | - | `<Icon class="k-icon-user" />` |
|
|
18
|
+
| size | `"default" | "large" | "small" | "mini" | string | number` | `"default"` | 否 | 定义图标尺寸,可使用预设值或自定义数值 | - | `<Icon class="k-icon-home" size="large" />` |
|
|
19
|
+
| color | `"default" | "primary" | "danger" | "warning" | "success" | string` | `undefined` | 否 | 图标颜色,可使用预设主题色或自定义颜色值 | - | `<Icon class="k-icon-heart" color="danger" />` |
|
|
20
|
+
| rotate | `boolean` | `false` | 否 | 是否一直旋转图标,适用于加载状态 | - | `<Icon class="k-icon-refresh" rotate />` |
|
|
21
|
+
| hoverable | `boolean` | `false` | 否 | 图标是否具有 hover 效果,适用于可点击图标 | - | `<Icon class="k-icon-delete" hoverable @click="handleDelete" />` |
|
|
22
|
+
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | - | `<Icon class="k-icon-edit" disabled />` |
|
|
23
23
|
|
|
24
24
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
25
|
+
### 未通过 class 指定图标名称
|
|
25
26
|
> **错误用法**: `<Icon name="k-icon-search" />`
|
|
26
27
|
> **正确写法**: `<Icon class="k-icon-search" />`
|
|
27
28
|
> **说明**: 图标名称必须通过 class 属性指定,而非 name 属性
|
|
28
29
|
|
|
30
|
+
### 图标名称前缀错误
|
|
29
31
|
> **错误用法**: `<Icon class="icon-search" />`
|
|
30
32
|
> **正确写法**: `<Icon class="k-icon-search" />`
|
|
31
33
|
> **说明**: KPC 图标名称必须以 k-icon- 为前缀
|
|
32
34
|
|
|
35
|
+
### 自定义尺寸使用字符串而非数字
|
|
33
36
|
> **错误用法**: `<Icon class="k-icon-home" size="24px" />`
|
|
34
37
|
> **正确写法**: `<Icon class="k-icon-home" :size="24" />`
|
|
35
38
|
> **说明**: 自定义数值尺寸应使用数字类型,不需要带单位
|
|
36
39
|
|
|
40
|
+
### 预设颜色值拼写错误
|
|
37
41
|
> **错误用法**: `<Icon class="k-icon-heart" color="red" />`
|
|
38
42
|
> **正确写法**: `<Icon class="k-icon-heart" color="danger" />`
|
|
39
43
|
> **说明**: 预设颜色值为 default, primary, danger, warning, success。如需使用其他颜色,请使用十六进制或 RGB 格式
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 图标提示 (IconTooltip)
|
|
2
|
+
|
|
3
|
+
带有 Tooltip 提示的图标组件,支持普通图标和按钮图标两种类型。常用于工具栏中的刷新、下载、设置等操作。
|
|
4
|
+
|
|
5
|
+
**关键词**: IconTooltip, 图标提示, 工具栏, 刷新, 下载, 设置
|
|
6
|
+
|
|
7
|
+
**使用场景**: 工具栏操作按钮、表格刷新按钮、信息提示图标、设置入口
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { IconTooltip } from '@ksyun-internal/versatile';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| icon | `string` | `""` | 是 | 指定 KPC 图标的 class 名称 | - | `<IconTooltip icon="k-icon-refresh" />` |
|
|
18
|
+
| type | `"default" | "button"` | `"default"` | 否 | 图标类型 | - | `<IconTooltip type="button" icon="k-icon-refresh" />` |
|
|
19
|
+
| hoverable | `boolean` | `true` | 否 | 图标是否具有 hover 效果 | - | `<IconTooltip icon="k-icon-information" :hoverable="false" />` |
|
|
20
|
+
| loading | `boolean` | `false` | 否 | 对于 type="button" 类型,是否为正在加载中的图标 | - | `<IconTooltip type="button" icon="k-icon-refresh" :loading="true" />` |
|
|
21
|
+
| theme | `"dark" | "light"` | `"dark"` | 否 | 指定 Tooltip 的主题 | - | `<IconTooltip icon="k-icon-refresh" theme="light" />` |
|
|
22
|
+
| tooltipText | `string` | `""` | 否 | 指定 Tooltip 的提示内容 | - | `<IconTooltip icon="k-icon-refresh" tooltipText="刷新" />` |
|
|
23
|
+
| color | `string` | `undefined` | 否 | 自定义图标颜色,适用于普通图标和按钮图标 | - | `<IconTooltip icon="k-icon-information" color="#1890ff" tooltipText="信息" />` |
|
|
24
|
+
|
|
25
|
+
## 常见错误与正确用法 (Anti-Hallucination)
|
|
26
|
+
### 未指定 icon 属性
|
|
27
|
+
> **错误用法**: `<IconTooltip tooltipText="刷新" />`
|
|
28
|
+
> **正确写法**: `<IconTooltip icon="k-icon-refresh" tooltipText="刷新" />`
|
|
29
|
+
> **说明**: icon 是必填属性,需要指定图标的 class 名称
|
|
30
|
+
|
|
31
|
+
### 在 default 类型上使用 loading
|
|
32
|
+
> **错误用法**: `<IconTooltip icon="k-icon-refresh" :loading="true" />`
|
|
33
|
+
> **正确写法**: `<IconTooltip type="button" icon="k-icon-refresh" :loading="true" />`
|
|
34
|
+
> **说明**: loading 属性仅对 type="button" 类型有效
|
|
35
|
+
|
|
36
|
+
## 使用示例
|
|
37
|
+
### 基础用法
|
|
38
|
+
**场景**: 展示基础的图标提示
|
|
39
|
+
|
|
40
|
+
基本的图标提示
|
|
41
|
+
|
|
42
|
+
**使用的 API**: 属性: icon, tooltipText, theme
|
|
43
|
+
|
|
44
|
+
```vue
|
|
45
|
+
<script setup lang="ts">
|
|
46
|
+
import { IconTooltip } from '@ksyun-internal/versatile';
|
|
47
|
+
</script>
|
|
48
|
+
<template>
|
|
49
|
+
<IconTooltip icon="k-icon-refresh" tooltipText="刷新" theme="light" />
|
|
50
|
+
<IconTooltip icon="k-icon-download" tooltipText="下载" theme="light" />
|
|
51
|
+
<IconTooltip icon="k-icon-settings" tooltipText="自定义列表字段" theme="light" />
|
|
52
|
+
</template>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 图标按钮
|
|
56
|
+
**场景**: 展示按钮样式的图标
|
|
57
|
+
|
|
58
|
+
按钮样式的图标提示
|
|
59
|
+
|
|
60
|
+
**使用的 API**: 属性: type, icon, tooltipText
|
|
61
|
+
|
|
62
|
+
```vue
|
|
63
|
+
<script setup lang="ts">
|
|
64
|
+
import { IconTooltip } from '@ksyun-internal/versatile';
|
|
65
|
+
</script>
|
|
66
|
+
<template>
|
|
67
|
+
<IconTooltip type="button" icon="k-icon-refresh" tooltipText="刷新" />
|
|
68
|
+
<IconTooltip type="button" icon="k-icon-download" tooltipText="下载" />
|
|
69
|
+
<IconTooltip type="button" icon="k-icon-settings" tooltipText="自定义列表字段" />
|
|
70
|
+
</template>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 加载状态
|
|
74
|
+
**场景**: 展示加载中的图标按钮
|
|
75
|
+
|
|
76
|
+
按钮图标的加载状态
|
|
77
|
+
|
|
78
|
+
**使用的 API**: 属性: icon, type, loading, tooltipText
|
|
79
|
+
|
|
80
|
+
```vue
|
|
81
|
+
<script setup lang="ts">
|
|
82
|
+
import { ref } from 'vue';
|
|
83
|
+
import { IconTooltip } from '@ksyun-internal/versatile';
|
|
84
|
+
|
|
85
|
+
const loading = ref(false);
|
|
86
|
+
const handleClick = () => {
|
|
87
|
+
loading.value = true;
|
|
88
|
+
setTimeout(() => loading.value = false, 2000);
|
|
89
|
+
};
|
|
90
|
+
</script>
|
|
91
|
+
<template>
|
|
92
|
+
<IconTooltip
|
|
93
|
+
icon="k-icon-refresh"
|
|
94
|
+
type="button"
|
|
95
|
+
:loading="loading"
|
|
96
|
+
tooltipText="刷新"
|
|
97
|
+
@click="handleClick"
|
|
98
|
+
/>
|
|
99
|
+
</template>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 去掉 hover 状态
|
|
103
|
+
**场景**: 禁用 hover 效果
|
|
104
|
+
|
|
105
|
+
禁用 hover 效果的图标
|
|
106
|
+
|
|
107
|
+
**使用的 API**: 属性: type, icon, tooltipText, hoverable
|
|
108
|
+
|
|
109
|
+
```vue
|
|
110
|
+
<script setup lang="ts">
|
|
111
|
+
import { IconTooltip } from '@ksyun-internal/versatile';
|
|
112
|
+
</script>
|
|
113
|
+
<template>
|
|
114
|
+
<IconTooltip type="button" icon="k-icon-refresh" tooltipText="刷新" :hoverable="false" />
|
|
115
|
+
<IconTooltip icon="k-icon-information" tooltipText="信息提示" :hoverable="false" />
|
|
116
|
+
</template>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 相关组件
|
|
120
|
+
Icon, Tooltip, ButtonLink
|
|
121
|
+
|
|
@@ -12,28 +12,39 @@ import { Input, Search } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| type | `string` | `"text"` | 否 | 在原生 input 标签的 type 取值的基础上扩展了 textarea 值,当取该值时渲染成 <textarea> | `<Input type="textarea" :rows="4" placeholder="请输入内容" />` |
|
|
18
|
-
| value | `string` | `undefined` | 否 | 输入框的值,可用 v-model 进行双向绑定 | `<Input v-model="inputValue" />` |
|
|
19
|
-
| defaultValue | `string` | `undefined` | 否 | input 的 defaultValue,首次渲染使用该值 | `<Input defaultValue="初始值" />` |
|
|
20
|
-
| name | `string` | `undefined` | 否 | 原生 input 标签的 name 属性 | `<Input name="username" />` |
|
|
21
|
-
| placeholder | `string` | `undefined` | 否 | 占位文案 | `<Input placeholder="请输入内容" />` |
|
|
22
|
-
| readonly | `boolean` | `false` | 否 | 是否只读 | `<Input v-model="value" readonly />` |
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| type | `string` | `"text"` | 否 | 在原生 input 标签的 type 取值的基础上扩展了 textarea 值,当取该值时渲染成 <textarea> | - | `<Input type="textarea" :rows="4" placeholder="请输入内容" />` |
|
|
18
|
+
| value | `string` | `undefined` | 否 | 输入框的值,可用 v-model 进行双向绑定 | - | `<Input v-model="inputValue" />` |
|
|
19
|
+
| defaultValue | `string` | `undefined` | 否 | input 的 defaultValue,首次渲染使用该值 | - | `<Input defaultValue="初始值" />` |
|
|
20
|
+
| name | `string` | `undefined` | 否 | 原生 input 标签的 name 属性 | `native` | `<Input name="username" />` |
|
|
21
|
+
| placeholder | `string` | `undefined` | 否 | 占位文案 | `native` | `<Input placeholder="请输入内容" />` |
|
|
22
|
+
| readonly | `boolean` | `false` | 否 | 是否只读 | `native` | `<Input v-model="value" readonly />` |
|
|
23
|
+
| autocomplete | `string` | `undefined` | 否 | 原生 autocomplete 属性,指定浏览器自动补全行为 | `native` | `<Input autocomplete="username" />` |
|
|
24
|
+
| autofocus | `boolean` | `undefined` | 否 | 原生 autofocus 属性,页面加载后自动聚焦输入框 | `native` | `<Input autofocus />` |
|
|
25
|
+
| form | `string` | `undefined` | 否 | 原生 form 属性,指定输入框关联的表单 id | `native` | `<Input form="searchForm" />` |
|
|
26
|
+
| maxlength | `number | string` | `undefined` | 否 | 原生 maxlength 属性,限制最大输入长度 | `native` | `<Input :maxlength="50" showCount />` |
|
|
27
|
+
| pattern | `string` | `undefined` | 否 | 原生 pattern 属性,指定输入值需要匹配的正则模式 | `native` | `<Input pattern="[0-9]{6}" placeholder="请输入6位数字" />` |
|
|
28
|
+
| required | `boolean` | `undefined` | 否 | 原生 required 属性,标记为必填输入项 | `native` | `<Input required placeholder="必填项" />` |
|
|
29
|
+
| clearable | `boolean` | `false` | 否 | 是否展示快速清除按钮 | - | `<Input v-model="value" clearable />` |
|
|
30
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Input disabled placeholder="禁用状态" />` |
|
|
31
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 组件尺寸 | - | `<Input size="large" placeholder="大尺寸输入框" />` |
|
|
32
|
+
| rows | `number | string` | `2` | 否 | 当 type="textarea" 时,默认展示文本行数 | `native` | `<Input type="textarea" :rows="6" />` |
|
|
33
|
+
| cols | `number` | `undefined` | 否 | 原生 cols 属性,当 type="textarea" 时指定可见宽度 | `native` | `<Input type="textarea" :cols="40" />` |
|
|
34
|
+
| datalist | `string` | `undefined` | 否 | 原生 datalist 属性,关联 datalist 元素 id | `native` | `<Input datalist="city-list" />` |
|
|
35
|
+
| dirname | `string` | `undefined` | 否 | 原生 dirname 属性,提交时附带输入方向信息 | `native` | `<Input dirname="comment.dir" />` |
|
|
36
|
+
| wrap | `"hard" | "soft"` | `undefined` | 否 | 原生 wrap 属性,当 type="textarea" 时指定换行提交方式 | `native` | `<Input type="textarea" wrap="hard" />` |
|
|
37
|
+
| autoWidth | `boolean` | `false` | 否 | 是否宽度随输入的文本的长度变化而变化 | - | `<Input autoWidth placeholder="宽度自适应" />` |
|
|
38
|
+
| fluid | `boolean` | `false` | 否 | 是否宽度 100% | - | `<Input fluid placeholder="宽度100%" />` |
|
|
39
|
+
| width | `string | number` | `undefined` | 否 | 指定宽度,组件会加上单位 px | - | `<Input :width="300" placeholder="宽度300px" />` |
|
|
40
|
+
| stackClearIcon | `boolean` | `false` | 否 | 是否将清空按钮覆盖在 suffix 按钮上展示来节省空间 | - | `<Input clearable stackClearIcon />` |
|
|
41
|
+
| frozenOnInput | `boolean` | `false` | 否 | 是否在输入的过程中冻结 value 更新到视图 | - | `<Input frozenOnInput />` |
|
|
42
|
+
| inline | `boolean` | `false` | 否 | 是否展示内联模式 | - | `<Input inline />` |
|
|
43
|
+
| waveDisabled | `boolean` | `false` | 否 | 是否禁用点击波纹效果 | - | `<Input waveDisabled />` |
|
|
44
|
+
| resize | `"none" | "vertical" | "horizontal" | "both"` | `"vertical"` | 否 | 指定 textarea 输入框拖动调整大小的方向,默认只能垂直方向调整 | - | `<Input type="textarea" resize="both" />` |
|
|
45
|
+
| flat | `boolean` | `false` | 否 | 是否展示扁平样式 | - | `<Input flat placeholder="扁平样式" />` |
|
|
46
|
+
| showCount | `boolean` | `false` | 否 | 是否展示字符长度提示数字 | - | `<Input showCount maxlength="50" />` |
|
|
47
|
+
| showPassword | `boolean` | `false` | 否 | 当 type="password" 时,是否展示显隐密码按钮 | - | `<Input type="password" showPassword />` |
|
|
37
48
|
|
|
38
49
|
## 事件 (Events)
|
|
39
50
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
@@ -47,22 +58,27 @@ import { Input, Search } from '@king-design/vue';
|
|
|
47
58
|
| mouseenter | `@mouseenter` | 原生 mouseenter 事件,绑定在组件最外层元素上 | `event: MouseEvent` | `<Input @mouseenter="handleMouseenter" />` |
|
|
48
59
|
| mouseleave | `@mouseleave` | 原生 mouseleave 事件,绑定在组件最外层元素上 | `event: MouseEvent` | `<Input @mouseleave="handleMouseleave" />` |
|
|
49
60
|
|
|
50
|
-
###
|
|
51
|
-
**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
```
|
|
61
|
+
### 事件参数说明
|
|
62
|
+
**change**
|
|
63
|
+
|
|
64
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
65
|
+
| --- | --- | --- | --- | --- |
|
|
66
|
+
| event | `Event` | 是 | - | 原生 change 事件对象 |
|
|
57
67
|
|
|
58
|
-
|
|
68
|
+
事件处理示例:
|
|
59
69
|
```typescript
|
|
60
70
|
const handleChange = (e: Event) => {
|
|
61
71
|
console.log('值已变化', (e.target as HTMLInputElement).value);
|
|
62
72
|
};
|
|
63
73
|
```
|
|
64
74
|
|
|
65
|
-
**keydown
|
|
75
|
+
**keydown**
|
|
76
|
+
|
|
77
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
78
|
+
| --- | --- | --- | --- | --- |
|
|
79
|
+
| event | `KeyboardEvent` | 是 | - | 原生键盘事件对象 |
|
|
80
|
+
|
|
81
|
+
事件处理示例:
|
|
66
82
|
```typescript
|
|
67
83
|
const handleKeydown = (e: KeyboardEvent) => {
|
|
68
84
|
if (e.key === 'Enter') {
|
|
@@ -71,35 +87,65 @@ const handleKeydown = (e: KeyboardEvent) => {
|
|
|
71
87
|
};
|
|
72
88
|
```
|
|
73
89
|
|
|
74
|
-
**keyup
|
|
90
|
+
**keyup**
|
|
91
|
+
|
|
92
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
93
|
+
| --- | --- | --- | --- | --- |
|
|
94
|
+
| event | `KeyboardEvent` | 是 | - | 原生键盘事件对象 |
|
|
95
|
+
|
|
96
|
+
事件处理示例:
|
|
75
97
|
```typescript
|
|
76
98
|
const handleKeyup = (e: KeyboardEvent) => {
|
|
77
99
|
console.log('键盘抬起', e.key);
|
|
78
100
|
};
|
|
79
101
|
```
|
|
80
102
|
|
|
81
|
-
**keypress
|
|
103
|
+
**keypress**
|
|
104
|
+
|
|
105
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
106
|
+
| --- | --- | --- | --- | --- |
|
|
107
|
+
| event | `KeyboardEvent` | 是 | - | 原生键盘事件对象 |
|
|
108
|
+
|
|
109
|
+
事件处理示例:
|
|
82
110
|
```typescript
|
|
83
111
|
const handleKeypress = (e: KeyboardEvent) => {
|
|
84
112
|
console.log('按键', e.key);
|
|
85
113
|
};
|
|
86
114
|
```
|
|
87
115
|
|
|
88
|
-
**click
|
|
116
|
+
**click**
|
|
117
|
+
|
|
118
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
119
|
+
| --- | --- | --- | --- | --- |
|
|
120
|
+
| event | `MouseEvent` | 是 | - | 原生鼠标事件对象 |
|
|
121
|
+
|
|
122
|
+
事件处理示例:
|
|
89
123
|
```typescript
|
|
90
124
|
const handleClick = (e: MouseEvent) => {
|
|
91
125
|
console.log('点击输入框');
|
|
92
126
|
};
|
|
93
127
|
```
|
|
94
128
|
|
|
95
|
-
**mouseenter
|
|
129
|
+
**mouseenter**
|
|
130
|
+
|
|
131
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
132
|
+
| --- | --- | --- | --- | --- |
|
|
133
|
+
| event | `MouseEvent` | 是 | - | 原生鼠标事件对象 |
|
|
134
|
+
|
|
135
|
+
事件处理示例:
|
|
96
136
|
```typescript
|
|
97
137
|
const handleMouseenter = (e: MouseEvent) => {
|
|
98
138
|
console.log('鼠标进入');
|
|
99
139
|
};
|
|
100
140
|
```
|
|
101
141
|
|
|
102
|
-
**mouseleave
|
|
142
|
+
**mouseleave**
|
|
143
|
+
|
|
144
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
145
|
+
| --- | --- | --- | --- | --- |
|
|
146
|
+
| event | `MouseEvent` | 是 | - | 原生鼠标事件对象 |
|
|
147
|
+
|
|
148
|
+
事件处理示例:
|
|
103
149
|
```typescript
|
|
104
150
|
const handleMouseleave = (e: MouseEvent) => {
|
|
105
151
|
console.log('鼠标离开');
|
|
@@ -122,17 +168,55 @@ const handleMouseleave = (e: MouseEvent) => {
|
|
|
122
168
|
<template #suffix><Icon class="k-icon-search" /></template>
|
|
123
169
|
</Input>` |
|
|
124
170
|
|
|
171
|
+
### 插槽参数说明
|
|
172
|
+
**prepend**
|
|
173
|
+
|
|
174
|
+
- 参数结构: 无参数
|
|
175
|
+
|
|
176
|
+
**append**
|
|
177
|
+
|
|
178
|
+
- 参数结构: 无参数
|
|
179
|
+
|
|
180
|
+
**prefix**
|
|
181
|
+
|
|
182
|
+
- 参数结构: 无参数
|
|
183
|
+
|
|
184
|
+
**suffix**
|
|
185
|
+
|
|
186
|
+
- 参数结构: 无参数
|
|
187
|
+
|
|
125
188
|
## 方法 (Methods)
|
|
126
189
|
| 方法名 | 说明 | 参数 | 返回值 |
|
|
127
190
|
| --- | --- | --- | --- |
|
|
128
|
-
| focus | 使输入框获得焦点 |
|
|
129
|
-
| blur | 使输入框失去焦点 |
|
|
130
|
-
| select | 全选输入框中的内容 |
|
|
191
|
+
| focus | 使输入框获得焦点 | `-` | `void` |
|
|
192
|
+
| blur | 使输入框失去焦点 | `-` | `void` |
|
|
193
|
+
| select | 全选输入框中的内容 | `-` | `void` |
|
|
194
|
+
|
|
195
|
+
### 方法调用示例
|
|
196
|
+
**focus**
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
const inputRef = ref<InstanceType<typeof Input>>();
|
|
200
|
+
inputRef.value?.focus();</InstanceType>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**blur**
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
inputRef.value?.blur();
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**select**
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
inputRef.value?.select();
|
|
213
|
+
```
|
|
131
214
|
|
|
132
215
|
## 子组件 (Sub-Components)
|
|
133
216
|
### Search
|
|
134
217
|
搜索框组件,提供可展开收起的搜索输入框功能
|
|
135
218
|
|
|
219
|
+
#### 属性 (Props)
|
|
136
220
|
| 属性名 | 类型 | 说明 | 示例 |
|
|
137
221
|
| --- | --- | --- | --- |
|
|
138
222
|
| value | `string` | 组件输入的值 | `<Search v-model="keywords" />` |
|
|
@@ -141,28 +225,102 @@ const handleMouseleave = (e: MouseEvent) => {
|
|
|
141
225
|
| size | `"large" | "default" | "small" | "mini"` | 尺寸 | `<Search size="small" />` |
|
|
142
226
|
| open | `boolean` | 是否展开状态 | `<Search :open="isExpanded" />` |
|
|
143
227
|
|
|
144
|
-
|
|
145
|
-
|
|
228
|
+
#### 事件 (Events)
|
|
229
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
230
|
+
| --- | --- | --- | --- | --- |
|
|
231
|
+
| submit | `@submit` | 表单提交事件,按回车或点击搜索按钮时触发 | `keywords: string` | `<Search @submit="handleKeywordSearch" />` |
|
|
232
|
+
|
|
233
|
+
##### Search 事件参数说明
|
|
234
|
+
**submit**
|
|
235
|
+
|
|
236
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
237
|
+
| --- | --- | --- | --- | --- |
|
|
238
|
+
| keywords | `string` | 是 | - | 当前搜索关键字 |
|
|
239
|
+
|
|
240
|
+
事件处理示例:
|
|
241
|
+
```typescript
|
|
242
|
+
const searchHistory = ref<string[]>([]);
|
|
243
|
+
|
|
244
|
+
const handleKeywordSearch = (keywords: string) => {
|
|
245
|
+
const normalized = keywords.trim();
|
|
246
|
+
if (!normalized) return;
|
|
247
|
+
searchHistory.value = [normalized, ...searchHistory.value.filter((item) => item !== normalized)].slice(0, 5);
|
|
248
|
+
};
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### 方法 (Methods)
|
|
252
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
253
|
+
| --- | --- | --- | --- |
|
|
254
|
+
| focus | 使搜索框获得焦点 | `-` | `void` |
|
|
255
|
+
| blur | 使搜索框失去焦点 | `-` | `void` |
|
|
256
|
+
|
|
257
|
+
##### Search 方法调用示例
|
|
258
|
+
**focus**
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
const searchRef = ref<InstanceType<typeof Search>>();
|
|
262
|
+
|
|
263
|
+
const openSearchBar = () => {
|
|
264
|
+
searchRef.value?.focus();
|
|
265
|
+
};
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**blur**
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
const closeSearchBar = () => {
|
|
272
|
+
searchRef.value?.blur();
|
|
273
|
+
};
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 组合示例
|
|
277
|
+
##### 搜索框
|
|
278
|
+
**场景**: 创建搜索框,支持回车提交
|
|
279
|
+
|
|
280
|
+
使用 Search 组件创建搜索输入框
|
|
281
|
+
|
|
282
|
+
**命中的子组件 API**: 事件: submit
|
|
283
|
+
|
|
284
|
+
```vue
|
|
285
|
+
<script setup lang="ts">
|
|
286
|
+
import { ref } from 'vue';
|
|
287
|
+
import { Search, Message } from '@king-design/vue';
|
|
288
|
+
|
|
289
|
+
const keywords = ref('');
|
|
290
|
+
|
|
291
|
+
const handleSubmit = (value: string) => {
|
|
292
|
+
Message.info(`搜索: ${value}`);
|
|
293
|
+
};
|
|
294
|
+
</script>
|
|
295
|
+
<template>
|
|
296
|
+
<Search v-model="keywords" @submit="handleSubmit" />
|
|
297
|
+
</template>
|
|
298
|
+
```
|
|
146
299
|
|
|
147
300
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
301
|
+
### 设置 rows 但未指定 type="textarea"
|
|
148
302
|
> **错误用法**: `<Input :rows="4" placeholder="多行" />`
|
|
149
303
|
> **正确写法**: `<Input type="textarea" :rows="4" placeholder="多行" />`
|
|
150
304
|
> **说明**: rows 属性只在 type="textarea" 时生效,普通 input 不支持 rows
|
|
151
305
|
|
|
306
|
+
### 使用不存在的 size 值 (Input)
|
|
152
307
|
> **错误用法**: `<Input size="medium" />`
|
|
153
308
|
> **正确写法**: `<Input size="default" />`
|
|
154
309
|
> **说明**: Input 的 size 只支持 large, default, small, mini。常见错误是使用 medium 值。
|
|
155
310
|
|
|
311
|
+
### 在非 textarea 上使用 resize 属性
|
|
156
312
|
> **错误用法**: `<Input resize="both" />`
|
|
157
313
|
> **正确写法**: `<Input type="textarea" resize="both" />`
|
|
158
314
|
> **说明**: resize 属性只对 type="textarea" 生效
|
|
159
315
|
|
|
316
|
+
### 错误地导入或使用不存在的 Textarea 组件
|
|
160
317
|
> **错误用法**: `import { Textarea } from '@king-design/vue';
|
|
161
318
|
<Textarea v-model="desc" />`
|
|
162
319
|
> **正确写法**: `import { Input } from '@king-design/vue';
|
|
163
320
|
<Input type="textarea" v-model="desc" />`
|
|
164
321
|
> **说明**: KPC 组件库没有单独的 Textarea 组件,多行输入统一使用 Input 组件并设置 type="textarea"。
|
|
165
322
|
|
|
323
|
+
### 使用 Element UI 的 show-word-limit 属性
|
|
166
324
|
> **错误用法**: `<Input show-word-limit />`
|
|
167
325
|
> **正确写法**: `<Input showCount />`
|
|
168
326
|
> **说明**: KPC 中展示字数计数的属性是 showCount,不是 show-word-limit。
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# 实例列表选择 (InstanceList)
|
|
2
|
+
|
|
3
|
+
用于从实例候选列表中选择目标实例的表单组件,可同步返回实例值和实例实体,适合迁移、备份、挂载等场景。
|
|
4
|
+
|
|
5
|
+
**关键词**: instance list, instance selector, 实例选择, 目标实例, 资源实例下拉
|
|
6
|
+
|
|
7
|
+
**使用场景**: 从候选实例中选择目标实例、迁移或挂载时选择实例、选择后联动实例实体信息
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { InstanceList } from '@ksyun-internal/versatile';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| modelValue | `string` | `undefined` | 否 | 当前选中的实例 ID | - | - |
|
|
18
|
+
| list | `Record<string, any>[]` | `undefined` | 否 | 可选实例列表 | - | - |
|
|
19
|
+
| listKeyName | `string` | `"key"` | 否 | 列表项中作为 value 的字段名 | - | - |
|
|
20
|
+
| listLabelName | `string` | `"label"` | 否 | 列表项中作为 label 的字段名 | - | - |
|
|
21
|
+
| fluid | `boolean` | `undefined` | 否 | 是否启用流式宽度 | - | - |
|
|
22
|
+
| existedList | `string[]` | `undefined` | 否 | 已存在实例列表,用于唯一性校验 | - | - |
|
|
23
|
+
| checkInstanceUniqueTip | `string` | `"实例不可重复"` | 否 | 实例重复时的提示文案 | - | - |
|
|
24
|
+
| container | `string` | `undefined` | 否 | 下拉面板挂载容器 | - | - |
|
|
25
|
+
| width | `string | number` | `undefined` | 否 | 控件宽度 | - | - |
|
|
26
|
+
|
|
27
|
+
## 事件 (Events)
|
|
28
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
| update:modelValue | `@update:modelValue` | 选中的实例标识变化时触发,通常用于同步实例 ID 或名称。 | `value?: string` | - |
|
|
31
|
+
| update:instance | `@update:instance` | 当前选中的完整实例对象变化时触发,便于读取规格、状态等附加字段。 | `value?: InstanceOption` | - |
|
|
32
|
+
|
|
33
|
+
### 事件参数说明
|
|
34
|
+
**update:modelValue**
|
|
35
|
+
|
|
36
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
37
|
+
| --- | --- | --- | --- | --- |
|
|
38
|
+
| value | `string` | 否 | - | 当前选中的实例标识。 |
|
|
39
|
+
|
|
40
|
+
**update:instance**
|
|
41
|
+
|
|
42
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
43
|
+
| --- | --- | --- | --- | --- |
|
|
44
|
+
| value | `InstanceOption` | 否 | - | 当前选中的完整实例对象。 |
|
|
45
|
+
|
|
46
|
+
## 使用示例
|
|
47
|
+
### 选择目标实例
|
|
48
|
+
**场景**: 在克隆、挂载或迁移流程中选择目标实例。
|
|
49
|
+
|
|
50
|
+
从候选实例列表中选取一个实例并同步实例实体。
|
|
51
|
+
|
|
52
|
+
**使用的 API**: 属性: modelValue, list, listKeyName, listLabelName | 事件: update:modelValue, update:instance
|
|
53
|
+
|
|
54
|
+
```vue
|
|
55
|
+
<script setup lang="ts">
|
|
56
|
+
import { ref } from 'vue';
|
|
57
|
+
import { InstanceList } from '@ksyun-internal/versatile';
|
|
58
|
+
|
|
59
|
+
const selected = ref('i-001');
|
|
60
|
+
const list = [
|
|
61
|
+
{ id: 'i-001', name: 'web-prod-01' },
|
|
62
|
+
{ id: 'i-002', name: 'web-prod-02' },
|
|
63
|
+
];
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<template>
|
|
67
|
+
<InstanceList
|
|
68
|
+
v-model="selected"
|
|
69
|
+
:list="list"
|
|
70
|
+
list-key-name="id"
|
|
71
|
+
list-label-name="name"
|
|
72
|
+
/>
|
|
73
|
+
</template>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 联动实例实体信息
|
|
77
|
+
**场景**: 在选择实例后同步展示其可用区、规格等附加信息。
|
|
78
|
+
|
|
79
|
+
监听 update:instance 获取当前实例的完整信息。
|
|
80
|
+
|
|
81
|
+
**使用的 API**: 属性: modelValue, list, listKeyName, listLabelName | 事件: update:instance
|
|
82
|
+
|
|
83
|
+
```vue
|
|
84
|
+
<script setup lang="ts">
|
|
85
|
+
import { ref } from 'vue';
|
|
86
|
+
import { InstanceList } from '@ksyun-internal/versatile';
|
|
87
|
+
|
|
88
|
+
const selected = ref('i-001');
|
|
89
|
+
const currentZone = ref('');
|
|
90
|
+
const list = [
|
|
91
|
+
{ id: 'i-001', name: 'web-prod-01', zone: 'cn-beijing-6a' },
|
|
92
|
+
{ id: 'i-002', name: 'web-prod-02', zone: 'cn-beijing-6b' },
|
|
93
|
+
];
|
|
94
|
+
const handleInstance = (instance: { zone?: string }) => {
|
|
95
|
+
currentZone.value = instance?.zone || '';
|
|
96
|
+
};
|
|
97
|
+
</script>
|
|
98
|
+
|
|
99
|
+
<template>
|
|
100
|
+
<InstanceList
|
|
101
|
+
v-model="selected"
|
|
102
|
+
:list="list"
|
|
103
|
+
list-key-name="id"
|
|
104
|
+
list-label-name="name"
|
|
105
|
+
@update:instance="handleInstance"
|
|
106
|
+
/>
|
|
107
|
+
<div>所在可用区:{{ currentZone }}</div>
|
|
108
|
+
</template>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 相关组件
|
|
112
|
+
FormItemTableConfigs, Select
|
|
113
|
+
|