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/tabs.doc.md
CHANGED
|
@@ -12,22 +12,28 @@ import { Tabs, Tab } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `any` | `undefined` | 否 | 被选中的选项卡,可用 v-model 双向绑定 | `<Tabs v-model="activeTab"></Tabs>` |
|
|
18
|
-
| type | `"default" | "card" | "flat-card"` | `"default"` | 否 | 选项卡类型 | `<Tabs type="card"></Tabs>` |
|
|
19
|
-
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 选项卡尺寸 | `<Tabs size="small"></Tabs>` |
|
|
20
|
-
| vertical | `boolean` | `undefined` | 否 | 是否垂直排列 | `<Tabs vertical></Tabs>` |
|
|
21
|
-
| closable | `boolean` | `false` | 否 | 是否展示选项卡关闭按钮 | `<Tabs closable @remove="handleRemove"></Tabs>` |
|
|
22
|
-
| beforeChange | `(value: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换选项卡之前的拦截函数,返回 false 阻止切换,支持异步 | `<Tabs :beforeChange="handleBeforeChange"></Tabs>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `any` | `undefined` | 否 | 被选中的选项卡,可用 v-model 双向绑定 | - | `<Tabs v-model="activeTab"></Tabs>` |
|
|
18
|
+
| type | `"default" | "card" | "flat-card"` | `"default"` | 否 | 选项卡类型 | - | `<Tabs type="card"></Tabs>` |
|
|
19
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 选项卡尺寸 | - | `<Tabs size="small"></Tabs>` |
|
|
20
|
+
| vertical | `boolean` | `undefined` | 否 | 是否垂直排列 | - | `<Tabs vertical></Tabs>` |
|
|
21
|
+
| closable | `boolean` | `false` | 否 | 是否展示选项卡关闭按钮 | - | `<Tabs closable @remove="handleRemove"></Tabs>` |
|
|
22
|
+
| beforeChange | `(value: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换选项卡之前的拦截函数,返回 false 阻止切换,支持异步 | - | `<Tabs :beforeChange="handleBeforeChange"></Tabs>` |
|
|
23
23
|
|
|
24
24
|
## 事件 (Events)
|
|
25
25
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
26
26
|
| --- | --- | --- | --- | --- |
|
|
27
27
|
| remove | `@remove` | 关闭选项卡时触发 | `value: any` | `<Tabs @remove="handleRemove"></Tabs>` |
|
|
28
28
|
|
|
29
|
-
###
|
|
30
|
-
**remove
|
|
29
|
+
### 事件参数说明
|
|
30
|
+
**remove**
|
|
31
|
+
|
|
32
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
33
|
+
| --- | --- | --- | --- | --- |
|
|
34
|
+
| value | `any` | 是 | - | 被关闭选项卡的 value |
|
|
35
|
+
|
|
36
|
+
事件处理示例:
|
|
31
37
|
```typescript
|
|
32
38
|
const handleRemove = (value: string) => {
|
|
33
39
|
const index = tabs.value.indexOf(value);
|
|
@@ -39,6 +45,7 @@ const handleRemove = (value: string) => {
|
|
|
39
45
|
### Tab
|
|
40
46
|
选项卡项组件
|
|
41
47
|
|
|
48
|
+
#### 属性 (Props)
|
|
42
49
|
| 属性名 | 类型 | 说明 | 示例 |
|
|
43
50
|
| --- | --- | --- | --- |
|
|
44
51
|
| value | `any` | 选项卡的值,用于标识和选中 | `<Tab value="home">首页</Tab>` |
|
|
@@ -46,10 +53,106 @@ const handleRemove = (value: string) => {
|
|
|
46
53
|
| to | `string` | 点击标签的跳转地址 | `<Tab value="home" to="/home">首页</Tab>` |
|
|
47
54
|
| closable | `boolean` | 是否展示该选项卡的关闭按钮 | `<Tab value="tab" closable>可关闭</Tab>` |
|
|
48
55
|
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
#### 事件 (Events)
|
|
57
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
58
|
+
| --- | --- | --- | --- | --- |
|
|
59
|
+
| click | `@click` | Tab 点击事件,发生在 value 改变之后,disabled 状态不触发 | `e: MouseEvent` | `<Tab @click="handleTabClick"></Tab>` |
|
|
60
|
+
|
|
61
|
+
##### Tab 事件参数说明
|
|
62
|
+
**click**
|
|
63
|
+
|
|
64
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
65
|
+
| --- | --- | --- | --- | --- |
|
|
66
|
+
| e | `MouseEvent` | 是 | - | 原生鼠标事件 |
|
|
67
|
+
|
|
68
|
+
事件处理示例:
|
|
69
|
+
```typescript
|
|
70
|
+
const openInNewWindow = ref(false);
|
|
71
|
+
|
|
72
|
+
const handleTabClick = (e: MouseEvent) => {
|
|
73
|
+
openInNewWindow.value = e.metaKey || e.ctrlKey;
|
|
74
|
+
};
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### 组合示例
|
|
78
|
+
##### 禁用选项卡
|
|
79
|
+
**场景**: 禁用某个选项卡
|
|
80
|
+
|
|
81
|
+
禁用某个选项卡
|
|
82
|
+
|
|
83
|
+
**命中的子组件 API**: 属性: value, disabled
|
|
84
|
+
|
|
85
|
+
```vue
|
|
86
|
+
<script setup lang="ts">
|
|
87
|
+
import { ref } from 'vue';
|
|
88
|
+
import { Tabs, Tab } from '@king-design/vue';
|
|
89
|
+
|
|
90
|
+
const activeTab = ref('tab1');
|
|
91
|
+
</script>
|
|
92
|
+
<template>
|
|
93
|
+
<Tabs v-model="activeTab">
|
|
94
|
+
<Tab value="tab1">可用</Tab>
|
|
95
|
+
<Tab value="tab2" disabled>禁用</Tab>
|
|
96
|
+
<Tab value="tab3">可用</Tab>
|
|
97
|
+
</Tabs>
|
|
98
|
+
</template>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
##### 路由导航
|
|
102
|
+
**场景**: 使用 to 属性进行路由导航
|
|
103
|
+
|
|
104
|
+
配合路由使用的选项卡
|
|
105
|
+
|
|
106
|
+
**命中的子组件 API**: 属性: value, to
|
|
107
|
+
|
|
108
|
+
```vue
|
|
109
|
+
<script setup lang="ts">
|
|
110
|
+
import { ref } from 'vue';
|
|
111
|
+
import { Tabs, Tab } from '@king-design/vue';
|
|
112
|
+
|
|
113
|
+
const activeTab = ref('home');
|
|
114
|
+
</script>
|
|
115
|
+
<template>
|
|
116
|
+
<Tabs v-model="activeTab">
|
|
117
|
+
<Tab value="home" to="/">首页</Tab>
|
|
118
|
+
<Tab value="products" to="/products">产品</Tab>
|
|
119
|
+
<Tab value="docs" to="/docs">文档</Tab>
|
|
120
|
+
</Tabs>
|
|
121
|
+
</template>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
##### 可关闭选项卡
|
|
125
|
+
**场景**: 创建可关闭的选项卡
|
|
126
|
+
|
|
127
|
+
支持关闭选项卡
|
|
128
|
+
|
|
129
|
+
**命中的子组件 API**: 属性: value, closable
|
|
130
|
+
|
|
131
|
+
```vue
|
|
132
|
+
<script setup lang="ts">
|
|
133
|
+
import { ref } from 'vue';
|
|
134
|
+
import { Tabs, Tab } from '@king-design/vue';
|
|
135
|
+
|
|
136
|
+
const activeTab = ref('tab1');
|
|
137
|
+
const tabs = ref(['tab1', 'tab2', 'tab3']);
|
|
138
|
+
|
|
139
|
+
const handleRemove = (value: string) => {
|
|
140
|
+
const index = tabs.value.indexOf(value);
|
|
141
|
+
tabs.value.splice(index, 1);
|
|
142
|
+
if (activeTab.value === value && tabs.value.length > 0) {
|
|
143
|
+
activeTab.value = tabs.value[0];
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
</script>
|
|
147
|
+
<template>
|
|
148
|
+
<Tabs v-model="activeTab" closable @remove="handleRemove">
|
|
149
|
+
<Tab v-for="tab in tabs" :key="tab" :value="tab">{{ tab }}</Tab>
|
|
150
|
+
</Tabs>
|
|
151
|
+
</template>
|
|
152
|
+
```
|
|
51
153
|
|
|
52
154
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
155
|
+
### 期望 Tabs 自动切换内容
|
|
53
156
|
> **错误用法**: `<Tabs v-model="activeTab">
|
|
54
157
|
<Tab value="home">首页内容</Tab> <!-- 期望显示内容 -->
|
|
55
158
|
</Tabs>`
|
|
@@ -59,10 +162,12 @@ const handleRemove = (value: string) => {
|
|
|
59
162
|
<div v-if="activeTab === 'home'">首页内容</div>`
|
|
60
163
|
> **说明**: Tabs 仅提供头部样式,内容区域需要使用 v-if 自行切换
|
|
61
164
|
|
|
165
|
+
### Tab 未设置 value
|
|
62
166
|
> **错误用法**: `<Tab>选项卡</Tab>`
|
|
63
167
|
> **正确写法**: `<Tab value="tab1">选项卡</Tab>`
|
|
64
168
|
> **说明**: 每个 Tab 必须设置 value 用于标识
|
|
65
169
|
|
|
170
|
+
### 使用 closable 但未处理 remove 事件
|
|
66
171
|
> **错误用法**: `<Tabs closable> <!-- 点击关闭不会真正移除 -->`
|
|
67
172
|
> **正确写法**: `<Tabs closable @remove="handleRemove">`
|
|
68
173
|
> **说明**: closable 只显示关闭按钮,需要监听 remove 事件手动移除选项卡
|
package/docs_for_llm/tag.doc.md
CHANGED
|
@@ -12,22 +12,28 @@ import { Tag, Tags } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| type | `"default" | "primary" | "success" | "warning" | "danger"` | `"default"` | 否 | 组件类型,决定标签的视觉样式 | `<Tag type="primary">主要标签</Tag>` |
|
|
18
|
-
| closable | `boolean` | `false` | 否 | 是否可关闭,显示关闭按钮 | `<Tag closable @close="handleClose">可关闭标签</Tag>` |
|
|
19
|
-
| closed | `boolean` | `false` | 否 | 是否已关闭(受控模式) | `<Tag closable :closed="isClosed" @close="handleClose">标签</Tag>` |
|
|
20
|
-
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | `<Tag disabled>禁用标签</Tag>` |
|
|
21
|
-
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 组件尺寸 | `<Tag size="small">小标签</Tag>` |
|
|
22
|
-
| border | `"solid" | "dashed" | "none"` | `"none"` | 否 | 定义边框样式 | `<Tag border="solid">带边框标签</Tag>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| type | `"default" | "primary" | "success" | "warning" | "danger"` | `"default"` | 否 | 组件类型,决定标签的视觉样式 | - | `<Tag type="primary">主要标签</Tag>` |
|
|
18
|
+
| closable | `boolean` | `false` | 否 | 是否可关闭,显示关闭按钮 | - | `<Tag closable @close="handleClose">可关闭标签</Tag>` |
|
|
19
|
+
| closed | `boolean` | `false` | 否 | 是否已关闭(受控模式) | - | `<Tag closable :closed="isClosed" @close="handleClose">标签</Tag>` |
|
|
20
|
+
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | - | `<Tag disabled>禁用标签</Tag>` |
|
|
21
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 组件尺寸 | - | `<Tag size="small">小标签</Tag>` |
|
|
22
|
+
| border | `"solid" | "dashed" | "none"` | `"none"` | 否 | 定义边框样式 | - | `<Tag border="solid">带边框标签</Tag>` |
|
|
23
23
|
|
|
24
24
|
## 事件 (Events)
|
|
25
25
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
26
26
|
| --- | --- | --- | --- | --- |
|
|
27
27
|
| close | `@close` | 标签关闭事件,点击关闭按钮时触发 | `e: MouseEvent` | `<Tag closable @close="handleClose">可关闭</Tag>` |
|
|
28
28
|
|
|
29
|
-
###
|
|
30
|
-
**close
|
|
29
|
+
### 事件参数说明
|
|
30
|
+
**close**
|
|
31
|
+
|
|
32
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
33
|
+
| --- | --- | --- | --- | --- |
|
|
34
|
+
| e | `MouseEvent` | 是 | - | 原生鼠标事件对象 |
|
|
35
|
+
|
|
36
|
+
事件处理示例:
|
|
31
37
|
```typescript
|
|
32
38
|
const handleClose = (e: MouseEvent) => {
|
|
33
39
|
console.log('标签已关闭');
|
|
@@ -38,6 +44,7 @@ const handleClose = (e: MouseEvent) => {
|
|
|
38
44
|
### Tags
|
|
39
45
|
标签组容器,用于管理多个标签,支持单行展示和拖拽排序
|
|
40
46
|
|
|
47
|
+
#### 属性 (Props)
|
|
41
48
|
| 属性名 | 类型 | 说明 | 示例 |
|
|
42
49
|
| --- | --- | --- | --- |
|
|
43
50
|
| size | `"large" | "default" | "small" | "mini"` | 定义"更多"标签尺寸 | `<Tags size="small"></Tags>` |
|
|
@@ -45,22 +52,167 @@ const handleClose = (e: MouseEvent) => {
|
|
|
45
52
|
| nowrap | `boolean` | 是否单行展示标签组,超出的部分会隐藏,仅展示隐藏数量 | `<Tags nowrap></Tags>` |
|
|
46
53
|
| draggable | `boolean` | 标签是否支持拖动排序 | `<Tags draggable></Tags>` |
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
#### 事件 (Events)
|
|
56
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
57
|
+
| --- | --- | --- | --- | --- |
|
|
58
|
+
| dragstart | `@dragstart` | 拖动开始时触发 | `key: string | number, from: number` | `<Tags draggable @dragstart="handleTagDragStart"></Tags>` |
|
|
59
|
+
| dragend | `@dragend` | 拖动结束时触发 | `key: string | number, from: number, to: number` | `<Tags draggable @dragend="handleTagDragEnd"></Tags>` |
|
|
60
|
+
|
|
61
|
+
##### Tags 事件参数说明
|
|
62
|
+
**dragstart**
|
|
63
|
+
|
|
64
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
65
|
+
| --- | --- | --- | --- | --- |
|
|
66
|
+
| key | `string | number` | 是 | - | 被拖拽标签的 key |
|
|
67
|
+
| from | `number` | 是 | - | 起始位置索引 |
|
|
68
|
+
|
|
69
|
+
事件处理示例:
|
|
70
|
+
```typescript
|
|
71
|
+
const draggingTagKey = ref<string | number | null>(null);
|
|
72
|
+
|
|
73
|
+
const handleTagDragStart = ({ key }) => {
|
|
74
|
+
draggingTagKey.value = key;
|
|
75
|
+
};
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**dragend**
|
|
79
|
+
|
|
80
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
81
|
+
| --- | --- | --- | --- | --- |
|
|
82
|
+
| key | `string | number` | 是 | - | 被拖拽标签的 key |
|
|
83
|
+
| from | `number` | 是 | - | 起始位置索引 |
|
|
84
|
+
| to | `number` | 是 | - | 目标位置索引 |
|
|
85
|
+
|
|
86
|
+
事件处理示例:
|
|
87
|
+
```typescript
|
|
88
|
+
const tags = ref(['稳定版', '灰度中', '待发布']);
|
|
89
|
+
const draggingTagKey = ref<string | number | null>(null);
|
|
90
|
+
|
|
91
|
+
const handleTagDragEnd = ({ from, to }) => {
|
|
92
|
+
const moved = tags.value.splice(from, 1)[0];
|
|
93
|
+
tags.value.splice(to, 0, moved);
|
|
94
|
+
draggingTagKey.value = null;
|
|
95
|
+
};
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### 插槽 (Slots)
|
|
99
|
+
| 插槽名 | 说明 | 模板写法 | 示例 |
|
|
100
|
+
| --- | --- | --- | --- |
|
|
101
|
+
| append | 追加到后面的元素,不参与到Tags对Tag的管理中 | `#append` | `<Tags>
|
|
102
|
+
<Tag closable>标签一</Tag>
|
|
103
|
+
<template #append>
|
|
104
|
+
<Button type="link">新增标签</Button>
|
|
105
|
+
</template>
|
|
106
|
+
</Tags>` |
|
|
107
|
+
|
|
108
|
+
##### 插槽参数说明
|
|
109
|
+
**append**
|
|
110
|
+
|
|
111
|
+
- 参数结构: 无参数
|
|
112
|
+
|
|
113
|
+
#### 组合示例
|
|
114
|
+
##### 可拖拽排序
|
|
115
|
+
**场景**: 创建支持拖拽排序的标签组
|
|
116
|
+
|
|
117
|
+
支持拖拽排序的标签组
|
|
118
|
+
|
|
119
|
+
**命中的子组件 API**: 属性: draggable | 事件: dragend
|
|
120
|
+
|
|
121
|
+
```vue
|
|
122
|
+
<script setup lang="ts">
|
|
123
|
+
import { ref } from 'vue';
|
|
124
|
+
import { Tags, Tag, Message } from '@king-design/vue';
|
|
125
|
+
|
|
126
|
+
const tags = ref(['标签1', '标签2', '标签3', '标签4']);
|
|
127
|
+
|
|
128
|
+
const handleDragEnd = ({from, to}: {from: number; to: number}) => {
|
|
129
|
+
const tag = tags.value.splice(from, 1)[0];
|
|
130
|
+
tags.value.splice(to, 0, tag);
|
|
131
|
+
Message.success(`从 ${from} 移动到 ${to}`);
|
|
132
|
+
};
|
|
133
|
+
</script>
|
|
134
|
+
<template>
|
|
135
|
+
<Tags draggable @dragend="handleDragEnd">
|
|
136
|
+
<Tag v-for="tag in tags" :key="tag">{{ tag }}</Tag>
|
|
137
|
+
</Tags>
|
|
138
|
+
</template>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
##### 单行标签组
|
|
142
|
+
**场景**: 在有限空间内展示标签,超出部分显示数量
|
|
143
|
+
|
|
144
|
+
超出隐藏并显示隐藏数量
|
|
145
|
+
|
|
146
|
+
**命中的子组件 API**: 属性: nowrap
|
|
147
|
+
|
|
148
|
+
```vue
|
|
149
|
+
<script setup lang="ts">
|
|
150
|
+
import { Tags, Tag } from '@king-design/vue';
|
|
151
|
+
</script>
|
|
152
|
+
<template>
|
|
153
|
+
<div style="width: 300px;">
|
|
154
|
+
<Tags nowrap>
|
|
155
|
+
<Tag>标签1</Tag>
|
|
156
|
+
<Tag>标签2</Tag>
|
|
157
|
+
<Tag>标签3</Tag>
|
|
158
|
+
<Tag>标签4</Tag>
|
|
159
|
+
<Tag>标签5</Tag>
|
|
160
|
+
<Tag>标签6</Tag>
|
|
161
|
+
</Tags>
|
|
162
|
+
</div>
|
|
163
|
+
</template>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
##### 动态编辑标签
|
|
167
|
+
**场景**: 动态添加和删除标签的完整示例
|
|
168
|
+
|
|
169
|
+
动态添加和删除标签
|
|
170
|
+
|
|
171
|
+
**命中的子组件 API**: 插槽: append
|
|
172
|
+
|
|
173
|
+
```vue
|
|
174
|
+
<script setup lang="ts">
|
|
175
|
+
import { ref } from 'vue';
|
|
176
|
+
import { Tags, Tag, Button, Input } from '@king-design/vue';
|
|
177
|
+
|
|
178
|
+
const tags = ref(['标签1', '标签2']);
|
|
179
|
+
const inputValue = ref('');
|
|
180
|
+
|
|
181
|
+
const handleClose = (index: number) => {
|
|
182
|
+
tags.value.splice(index, 1);
|
|
183
|
+
};
|
|
51
184
|
|
|
52
|
-
|
|
53
|
-
|
|
185
|
+
const handleAdd = () => {
|
|
186
|
+
if (inputValue.value) {
|
|
187
|
+
tags.value.push(inputValue.value);
|
|
188
|
+
inputValue.value = '';
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
</script>
|
|
192
|
+
<template>
|
|
193
|
+
<Tags>
|
|
194
|
+
<Tag v-for="(tag, index) in tags" :key="tag"
|
|
195
|
+
closable @close="handleClose(index)">{{ tag }}</Tag>
|
|
196
|
+
<template #append>
|
|
197
|
+
<Input v-model="inputValue" :width="100" size="mini"
|
|
198
|
+
placeholder="新标签" @keydown.enter="handleAdd" />
|
|
199
|
+
</template>
|
|
200
|
+
</Tags>
|
|
201
|
+
</template>
|
|
202
|
+
```
|
|
54
203
|
|
|
55
204
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
205
|
+
### 可关闭标签未使用受控模式
|
|
56
206
|
> **错误用法**: `<Tag closable>标签</Tag>`
|
|
57
207
|
> **正确写法**: `<Tag closable :closed="isClosed" @close="handleClose">标签</Tag>`
|
|
58
208
|
> **说明**: closable 只显示关闭按钮,需要配合 closed 属性和 @close 事件来控制关闭行为
|
|
59
209
|
|
|
210
|
+
### 使用不存在的 type 值
|
|
60
211
|
> **错误用法**: `<Tag type="info">信息标签</Tag>`
|
|
61
212
|
> **正确写法**: `<Tag type="primary">主要标签</Tag>`
|
|
62
213
|
> **说明**: Tag 的 type 只支持 default, primary, success, warning, danger,不存在 info 值
|
|
63
214
|
|
|
215
|
+
### 拖拽标签组未设置 key
|
|
64
216
|
> **错误用法**: `<Tags draggable>
|
|
65
217
|
<Tag v-for="tag in tags">{{ tag }}</Tag>
|
|
66
218
|
</Tags>`
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# 时间轴 (Timeline)
|
|
2
|
+
|
|
3
|
+
时间轴组件,用于按时间顺序展示事件或流程记录。配合 TimelineItem 子组件使用,支持不同状态类型和自定义节点。
|
|
4
|
+
|
|
5
|
+
**关键词**: timeline, 时间轴, 操作记录, 流程日志, TimelineItem, dot
|
|
6
|
+
|
|
7
|
+
**使用场景**: 操作日志、订单轨迹、发布流程、任务执行记录
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { Timeline, TimelineItem } from '@king-design/vue';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 插槽 (Slots)
|
|
15
|
+
| 插槽名 | 说明 | 模板写法 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| default | 时间轴内容,通常由多个 TimelineItem 组成。 | `<Timeline>...</Timeline>` | `<Timeline><TimelineItem>创建完成</TimelineItem><TimelineItem>审核通过</TimelineItem></Timeline>` |
|
|
18
|
+
|
|
19
|
+
### 插槽参数说明
|
|
20
|
+
**default**
|
|
21
|
+
|
|
22
|
+
- 参数结构: 无参数
|
|
23
|
+
|
|
24
|
+
## 子组件 (Sub-Components)
|
|
25
|
+
### TimelineItem
|
|
26
|
+
时间轴节点项。
|
|
27
|
+
|
|
28
|
+
#### 属性 (Props)
|
|
29
|
+
| 属性名 | 类型 | 说明 | 示例 |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| type | `"primary" | "warning" | "danger" | "success"` | 节点状态类型。 | `<TimelineItem type="success">发布成功</TimelineItem>` |
|
|
32
|
+
| size | `"large" | "default" | "small" | "mini"` | 节点尺寸。 | `<TimelineItem size="small">日志记录</TimelineItem>` |
|
|
33
|
+
|
|
34
|
+
#### 插槽 (Slots)
|
|
35
|
+
| 插槽名 | 说明 | 模板写法 | 示例 |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| dot | 自定义时间轴节点圆点。 | `<template #dot>...</template>` | `<TimelineItem><template #dot><Icon class="k-icon-check" /></template>发布完成</TimelineItem>` |
|
|
38
|
+
|
|
39
|
+
##### 插槽参数说明
|
|
40
|
+
**dot**
|
|
41
|
+
|
|
42
|
+
- 参数结构: 无参数
|
|
43
|
+
|
|
44
|
+
#### 组合示例
|
|
45
|
+
##### 自定义节点
|
|
46
|
+
**场景**: 用图标增强时间轴状态表达
|
|
47
|
+
|
|
48
|
+
通过 dot 插槽渲染图标或编号。
|
|
49
|
+
|
|
50
|
+
**命中的子组件 API**: 属性: type | 插槽: dot
|
|
51
|
+
|
|
52
|
+
```vue
|
|
53
|
+
<script setup lang="ts">
|
|
54
|
+
import { Icon, Timeline, TimelineItem } from '@king-design/vue';
|
|
55
|
+
</script>
|
|
56
|
+
<template>
|
|
57
|
+
<Timeline>
|
|
58
|
+
<TimelineItem>
|
|
59
|
+
<template #dot>
|
|
60
|
+
<Icon class="k-icon-play-circle" />
|
|
61
|
+
</template>
|
|
62
|
+
服务启动
|
|
63
|
+
</TimelineItem>
|
|
64
|
+
<TimelineItem type="success">
|
|
65
|
+
<template #dot>
|
|
66
|
+
<Icon class="k-icon-check" />
|
|
67
|
+
</template>
|
|
68
|
+
健康检查通过
|
|
69
|
+
</TimelineItem>
|
|
70
|
+
</Timeline>
|
|
71
|
+
</template>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
##### 不同状态节点
|
|
75
|
+
**场景**: 用时间轴展示状态变更
|
|
76
|
+
|
|
77
|
+
用颜色区分不同阶段。
|
|
78
|
+
|
|
79
|
+
**命中的子组件 API**: 属性: type
|
|
80
|
+
|
|
81
|
+
```vue
|
|
82
|
+
<template>
|
|
83
|
+
<Timeline>
|
|
84
|
+
<TimelineItem type="primary">等待执行</TimelineItem>
|
|
85
|
+
<TimelineItem type="warning">处理中</TimelineItem>
|
|
86
|
+
<TimelineItem type="danger">执行失败</TimelineItem>
|
|
87
|
+
<TimelineItem type="success">重新执行成功</TimelineItem>
|
|
88
|
+
</Timeline>
|
|
89
|
+
</template>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
##### 基础用法
|
|
93
|
+
**场景**: 展示任务处理过程
|
|
94
|
+
|
|
95
|
+
按时间顺序展示操作记录。
|
|
96
|
+
|
|
97
|
+
**命中的子组件 API**: 属性: type
|
|
98
|
+
|
|
99
|
+
```vue
|
|
100
|
+
<template>
|
|
101
|
+
<Timeline>
|
|
102
|
+
<TimelineItem>2026-04-20 10:00 创建任务</TimelineItem>
|
|
103
|
+
<TimelineItem>2026-04-20 10:10 分配负责人</TimelineItem>
|
|
104
|
+
<TimelineItem type="success">2026-04-20 10:30 处理完成</TimelineItem>
|
|
105
|
+
</Timeline>
|
|
106
|
+
</template>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 常见错误与正确用法 (Anti-Hallucination)
|
|
110
|
+
### 在 Timeline 中直接写普通 div,而不是 TimelineItem
|
|
111
|
+
> **错误用法**: `<Timeline><div>创建成功</div><div>发布完成</div></Timeline>`
|
|
112
|
+
> **正确写法**: `<Timeline><TimelineItem>创建成功</TimelineItem><TimelineItem>发布完成</TimelineItem></Timeline>`
|
|
113
|
+
> **说明**: Timeline 负责整体容器结构,具体节点应使用 TimelineItem 渲染,才能获得连线、圆点和状态样式。
|
|
114
|
+
|
|
115
|
+
### 把 dot 插槽写在 Timeline 上
|
|
116
|
+
> **错误用法**: `<Timeline><template #dot>1</template></Timeline>`
|
|
117
|
+
> **正确写法**: `<Timeline><TimelineItem><template #dot>1</template>步骤一</TimelineItem></Timeline>`
|
|
118
|
+
> **说明**: dot 是 TimelineItem 的插槽,不属于 Timeline 容器本身。
|
|
119
|
+
|
|
120
|
+
## 使用示例
|
|
121
|
+
### 基础用法
|
|
122
|
+
**场景**: 展示任务处理过程
|
|
123
|
+
|
|
124
|
+
按时间顺序展示操作记录。
|
|
125
|
+
|
|
126
|
+
**使用的 API**: 属性: type | 插槽: default
|
|
127
|
+
|
|
128
|
+
```vue
|
|
129
|
+
<template>
|
|
130
|
+
<Timeline>
|
|
131
|
+
<TimelineItem>2026-04-20 10:00 创建任务</TimelineItem>
|
|
132
|
+
<TimelineItem>2026-04-20 10:10 分配负责人</TimelineItem>
|
|
133
|
+
<TimelineItem type="success">2026-04-20 10:30 处理完成</TimelineItem>
|
|
134
|
+
</Timeline>
|
|
135
|
+
</template>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 不同状态节点
|
|
139
|
+
**场景**: 用时间轴展示状态变更
|
|
140
|
+
|
|
141
|
+
用颜色区分不同阶段。
|
|
142
|
+
|
|
143
|
+
**使用的 API**: 属性: type | 插槽: default
|
|
144
|
+
|
|
145
|
+
```vue
|
|
146
|
+
<template>
|
|
147
|
+
<Timeline>
|
|
148
|
+
<TimelineItem type="primary">等待执行</TimelineItem>
|
|
149
|
+
<TimelineItem type="warning">处理中</TimelineItem>
|
|
150
|
+
<TimelineItem type="danger">执行失败</TimelineItem>
|
|
151
|
+
<TimelineItem type="success">重新执行成功</TimelineItem>
|
|
152
|
+
</Timeline>
|
|
153
|
+
</template>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 自定义节点
|
|
157
|
+
**场景**: 用图标增强时间轴状态表达
|
|
158
|
+
|
|
159
|
+
通过 dot 插槽渲染图标或编号。
|
|
160
|
+
|
|
161
|
+
**使用的 API**: 属性: type | 插槽: dot
|
|
162
|
+
|
|
163
|
+
```vue
|
|
164
|
+
<script setup lang="ts">
|
|
165
|
+
import { Icon, Timeline, TimelineItem } from '@king-design/vue';
|
|
166
|
+
</script>
|
|
167
|
+
<template>
|
|
168
|
+
<Timeline>
|
|
169
|
+
<TimelineItem>
|
|
170
|
+
<template #dot>
|
|
171
|
+
<Icon class="k-icon-play-circle" />
|
|
172
|
+
</template>
|
|
173
|
+
服务启动
|
|
174
|
+
</TimelineItem>
|
|
175
|
+
<TimelineItem type="success">
|
|
176
|
+
<template #dot>
|
|
177
|
+
<Icon class="k-icon-check" />
|
|
178
|
+
</template>
|
|
179
|
+
健康检查通过
|
|
180
|
+
</TimelineItem>
|
|
181
|
+
</Timeline>
|
|
182
|
+
</template>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 相关组件
|
|
186
|
+
Steps, Tag, Icon
|
|
187
|
+
|