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
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('标签已关闭');
|
|
@@ -53,14 +59,17 @@ const handleClose = (e: MouseEvent) => {
|
|
|
53
59
|
- `undefined`: 追加到后面的元素,不参与到Tags对Tag的管理中
|
|
54
60
|
|
|
55
61
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
62
|
+
### 可关闭标签未使用受控模式
|
|
56
63
|
> **错误用法**: `<Tag closable>标签</Tag>`
|
|
57
64
|
> **正确写法**: `<Tag closable :closed="isClosed" @close="handleClose">标签</Tag>`
|
|
58
65
|
> **说明**: closable 只显示关闭按钮,需要配合 closed 属性和 @close 事件来控制关闭行为
|
|
59
66
|
|
|
67
|
+
### 使用不存在的 type 值
|
|
60
68
|
> **错误用法**: `<Tag type="info">信息标签</Tag>`
|
|
61
69
|
> **正确写法**: `<Tag type="primary">主要标签</Tag>`
|
|
62
70
|
> **说明**: Tag 的 type 只支持 default, primary, success, warning, danger,不存在 info 值
|
|
63
71
|
|
|
72
|
+
### 拖拽标签组未设置 key
|
|
64
73
|
> **错误用法**: `<Tags draggable>
|
|
65
74
|
<Tag v-for="tag in tags">{{ tag }}</Tag>
|
|
66
75
|
</Tags>`
|
|
@@ -0,0 +1,109 @@
|
|
|
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
|
+
## 子组件 (Sub-Components)
|
|
20
|
+
### TimelineItem
|
|
21
|
+
时间轴节点项。
|
|
22
|
+
|
|
23
|
+
| 属性名 | 类型 | 说明 | 示例 |
|
|
24
|
+
| --- | --- | --- | --- |
|
|
25
|
+
| type | `"primary" | "warning" | "danger" | "success"` | 节点状态类型。 | `<TimelineItem type="success">发布成功</TimelineItem>` |
|
|
26
|
+
| size | `"large" | "default" | "small" | "mini"` | 节点尺寸。 | `<TimelineItem size="small">日志记录</TimelineItem>` |
|
|
27
|
+
|
|
28
|
+
**插槽**:
|
|
29
|
+
- `<template #dot>...</template>`: 自定义时间轴节点圆点。
|
|
30
|
+
|
|
31
|
+
## 常见错误与正确用法 (Anti-Hallucination)
|
|
32
|
+
### 在 Timeline 中直接写普通 div,而不是 TimelineItem
|
|
33
|
+
> **错误用法**: `<Timeline><div>创建成功</div><div>发布完成</div></Timeline>`
|
|
34
|
+
> **正确写法**: `<Timeline><TimelineItem>创建成功</TimelineItem><TimelineItem>发布完成</TimelineItem></Timeline>`
|
|
35
|
+
> **说明**: Timeline 负责整体容器结构,具体节点应使用 TimelineItem 渲染,才能获得连线、圆点和状态样式。
|
|
36
|
+
|
|
37
|
+
### 把 dot 插槽写在 Timeline 上
|
|
38
|
+
> **错误用法**: `<Timeline><template #dot>1</template></Timeline>`
|
|
39
|
+
> **正确写法**: `<Timeline><TimelineItem><template #dot>1</template>步骤一</TimelineItem></Timeline>`
|
|
40
|
+
> **说明**: dot 是 TimelineItem 的插槽,不属于 Timeline 容器本身。
|
|
41
|
+
|
|
42
|
+
## 使用示例
|
|
43
|
+
### 基础用法
|
|
44
|
+
**场景**: 展示任务处理过程
|
|
45
|
+
|
|
46
|
+
按时间顺序展示操作记录。
|
|
47
|
+
|
|
48
|
+
**使用的 API**: 属性: type | 插槽: default
|
|
49
|
+
|
|
50
|
+
```vue
|
|
51
|
+
<template>
|
|
52
|
+
<Timeline>
|
|
53
|
+
<TimelineItem>2026-04-20 10:00 创建任务</TimelineItem>
|
|
54
|
+
<TimelineItem>2026-04-20 10:10 分配负责人</TimelineItem>
|
|
55
|
+
<TimelineItem type="success">2026-04-20 10:30 处理完成</TimelineItem>
|
|
56
|
+
</Timeline>
|
|
57
|
+
</template>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 不同状态节点
|
|
61
|
+
**场景**: 用时间轴展示状态变更
|
|
62
|
+
|
|
63
|
+
用颜色区分不同阶段。
|
|
64
|
+
|
|
65
|
+
**使用的 API**: 属性: type | 插槽: default
|
|
66
|
+
|
|
67
|
+
```vue
|
|
68
|
+
<template>
|
|
69
|
+
<Timeline>
|
|
70
|
+
<TimelineItem type="primary">等待执行</TimelineItem>
|
|
71
|
+
<TimelineItem type="warning">处理中</TimelineItem>
|
|
72
|
+
<TimelineItem type="danger">执行失败</TimelineItem>
|
|
73
|
+
<TimelineItem type="success">重新执行成功</TimelineItem>
|
|
74
|
+
</Timeline>
|
|
75
|
+
</template>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 自定义节点
|
|
79
|
+
**场景**: 用图标增强时间轴状态表达
|
|
80
|
+
|
|
81
|
+
通过 dot 插槽渲染图标或编号。
|
|
82
|
+
|
|
83
|
+
**使用的 API**: 属性: type | 插槽: dot
|
|
84
|
+
|
|
85
|
+
```vue
|
|
86
|
+
<script setup lang="ts">
|
|
87
|
+
import { Icon, Timeline, TimelineItem } from '@king-design/vue';
|
|
88
|
+
</script>
|
|
89
|
+
<template>
|
|
90
|
+
<Timeline>
|
|
91
|
+
<TimelineItem>
|
|
92
|
+
<template #dot>
|
|
93
|
+
<Icon class="k-icon-play-circle" />
|
|
94
|
+
</template>
|
|
95
|
+
服务启动
|
|
96
|
+
</TimelineItem>
|
|
97
|
+
<TimelineItem type="success">
|
|
98
|
+
<template #dot>
|
|
99
|
+
<Icon class="k-icon-check" />
|
|
100
|
+
</template>
|
|
101
|
+
健康检查通过
|
|
102
|
+
</TimelineItem>
|
|
103
|
+
</Timeline>
|
|
104
|
+
</template>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 相关组件
|
|
108
|
+
Steps, Tag, Icon
|
|
109
|
+
|
|
@@ -12,26 +12,36 @@ import { Timepicker } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| value | `Value | Value[] | [Value, Value] | [Value, Value][]` | `""` | 否 | 当前选中的时间,可用 v-model 双向绑定。范围选择时为 [Value, Value] | `<Timepicker v-model="time" />` |
|
|
18
|
-
| range | `boolean` | `false` | 否 | 是否选择时间范围 | `<Timepicker range />` |
|
|
19
|
-
| multiple | `boolean` | `false` | 否 | 是否支持多选 | `<Timepicker multiple />` |
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| value | `Value | Value[] | [Value, Value] | [Value, Value][]` | `""` | 否 | 当前选中的时间,可用 v-model 双向绑定。范围选择时为 [Value, Value] | - | `<Timepicker v-model="time" />` |
|
|
18
|
+
| range | `boolean` | `false` | 否 | 是否选择时间范围 | - | `<Timepicker range />` |
|
|
19
|
+
| multiple | `boolean` | `false` | 否 | 是否支持多选 | - | `<Timepicker multiple />` |
|
|
20
|
+
| filterable | `boolean` | `false` | 否 | 是否支持筛选输入 | - | `<Timepicker filterable />` |
|
|
21
|
+
| loading | `boolean` | `false` | 否 | 数据加载状态 | - | `<Timepicker :loading="loading" />` |
|
|
22
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Timepicker disabled />` |
|
|
23
|
+
| name | `string` | `undefined` | 否 | 表单元素的 name 属性 | - | `<Timepicker name="startTime" />` |
|
|
24
|
+
| clearable | `boolean` | `false` | 否 | 是否可清空 | - | `<Timepicker clearable />` |
|
|
25
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | - | `<Timepicker size="small" />` |
|
|
26
|
+
| placeholder | `string` | `"请选择时间"` | 否 | 占位文案 | - | `<Timepicker placeholder="选择开始时间" />` |
|
|
27
|
+
| format | `string` | `"YYYY-MM-DD HH:mm:ss"` | 否 | 时间格式化字符串 | - | `<Timepicker format="HH:mm" />` |
|
|
28
|
+
| valueFormat | `string` | `undefined` | 否 | value 值的格式化字符串 | - | `<Timepicker valueFormat="HH:mm:ss" />` |
|
|
29
|
+
| showFormat | `string` | `undefined` | 否 | 展示的格式化字符串 | - | `<Timepicker showFormat="HH时mm分" />` |
|
|
30
|
+
| step | `string` | `undefined` | 否 | 固定时间点的步长,如 "00:30" 表示每 30 分钟一个选项 | - | `<Timepicker step="00:30" />` |
|
|
31
|
+
| min | `Value` | `undefined` | 否 | 最小可选时间 | - | `<Timepicker min="09:00:00" />` |
|
|
32
|
+
| max | `Value` | `undefined` | 否 | 最大可选时间 | - | `<Timepicker max="18:00:00" />` |
|
|
33
|
+
| disabledDate | `(v: Dayjs) => boolean` | `undefined` | 否 | 禁用日期的函数,返回 true 表示禁用该日期 | - | `<Timepicker :disabledDate="(d) => d.day() === 0" />` |
|
|
34
|
+
| hideIcon | `boolean` | `false` | 否 | 是否隐藏后面的图标 | - | `<Timepicker hideIcon />` |
|
|
35
|
+
| fluid | `boolean` | `false` | 否 | 是否宽度 100% | - | `<Timepicker fluid />` |
|
|
36
|
+
| inline | `boolean` | `false` | 否 | 是否展示内联模式 | - | `<Timepicker inline />` |
|
|
37
|
+
| flat | `boolean` | `false` | 否 | 是否展示扁平样式 | - | `<Timepicker flat />` |
|
|
38
|
+
| width | `number | string` | `undefined` | 否 | 指定宽度,自动添加单位 px | - | `<Timepicker :width="150" />` |
|
|
39
|
+
| container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹出菜单追加的位置,默认 Dialog 组件会追加到 Dialog 中,其他追加到 body | - | `<Timepicker :container="() => document.body" />` |
|
|
40
|
+
| show | `boolean` | `false` | 否 | 是否展示菜单项(受控模式) | - | `<Timepicker :show="visible" />` |
|
|
41
|
+
| position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'left top+8', at: 'left bottom'}` | 否 | 菜单弹出的位置 | - | `<Timepicker position="top" />` |
|
|
42
|
+
| nowrap | `boolean` | `false` | 否 | 选中值区域是否不换行展示,适合单行紧凑布局 | - | `<Timepicker nowrap />` |
|
|
43
|
+
| draggable | `boolean` | `false` | 否 | 多选值是否支持拖动排序 | - | `<Timepicker multiple draggable />` |
|
|
44
|
+
| virtual | `boolean` | `false` | 否 | 是否开启虚拟列表,用于大数据量场景 | - | `<Timepicker virtual />` |
|
|
35
45
|
|
|
36
46
|
## 事件 (Events)
|
|
37
47
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
@@ -39,48 +49,57 @@ import { Timepicker } from '@king-design/vue';
|
|
|
39
49
|
| show | `@show` | 菜单弹出时触发 | `-` | `<Timepicker @show="handleShow" />` |
|
|
40
50
|
| hide | `@hide` | 菜单隐藏时触发 | `-` | `<Timepicker @hide="handleHide" />` |
|
|
41
51
|
| change | `@change` | 用户操作完成且值变化时触发 | `value: string` | `<Timepicker @change="handleChange" />` |
|
|
42
|
-
| selecting | `@selecting` | 范围选择时,用户正在操作选择时触发 | `value: [Dayjs, Dayjs?]` | `<Timepicker range @selecting="handleSelecting" />` |
|
|
52
|
+
| selecting | `@selecting` | 范围选择时,用户正在操作选择时触发 | `value: [Dayjs, Dayjs?], confirmed: boolean` | `<Timepicker range @selecting="handleSelecting" />` |
|
|
43
53
|
|
|
44
|
-
###
|
|
45
|
-
**
|
|
46
|
-
```typescript
|
|
47
|
-
const handleShow = () => {
|
|
48
|
-
console.log('时间选择器已打开');
|
|
49
|
-
};
|
|
50
|
-
```
|
|
54
|
+
### 事件参数说明
|
|
55
|
+
**change**
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
console.log('时间选择器已关闭');
|
|
56
|
-
};
|
|
57
|
-
```
|
|
57
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
58
|
+
| --- | --- | --- | --- | --- |
|
|
59
|
+
| value | `string` | 是 | - | 当前选择的时间值 |
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
事件处理示例:
|
|
60
62
|
```typescript
|
|
61
63
|
const handleChange = (value: string) => {
|
|
62
64
|
console.log('选择的时间:', value);
|
|
63
65
|
};
|
|
64
66
|
```
|
|
65
67
|
|
|
66
|
-
**selecting
|
|
68
|
+
**selecting**
|
|
69
|
+
|
|
70
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
71
|
+
| --- | --- | --- | --- | --- |
|
|
72
|
+
| value | `[Dayjs, Dayjs?]` | 是 | - | 当前选择的值 |
|
|
73
|
+
| confirmed | `boolean` | 是 | - | 当前这次 selecting 是否已经进入确认完成态;常见交互过程中通常为 `false`。 |
|
|
74
|
+
|
|
75
|
+
事件处理示例:
|
|
67
76
|
```typescript
|
|
68
|
-
const handleSelecting = (value) => {
|
|
69
|
-
console.log('正在选择:', value);
|
|
77
|
+
const handleSelecting = (value, confirmed) => {
|
|
78
|
+
console.log('正在选择:', value, confirmed);
|
|
70
79
|
};
|
|
71
80
|
```
|
|
72
81
|
|
|
82
|
+
## 方法 (Methods)
|
|
83
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
84
|
+
| --- | --- | --- | --- |
|
|
85
|
+
| show | 主动展开时间选择面板。 | `-` | `void` |
|
|
86
|
+
| hide | 主动关闭时间选择面板。 | `-` | `void` |
|
|
87
|
+
| position | 重新计算时间选择面板的位置。 | `-` | `void` |
|
|
88
|
+
|
|
73
89
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
90
|
+
### 范围选择时 value 类型错误
|
|
74
91
|
> **错误用法**: `const time = ref('');
|
|
75
92
|
<Timepicker v-model="time" range />`
|
|
76
93
|
> **正确写法**: `const timeRange = ref<[string, string]>(['', '']);
|
|
77
94
|
<Timepicker v-model="timeRange" range />`
|
|
78
95
|
> **说明**: 当 range 为 true 时,value 必须是 [string, string] 数组
|
|
79
96
|
|
|
97
|
+
### step 格式错误
|
|
80
98
|
> **错误用法**: `<Timepicker step="30" /> <!-- 期望 30 分钟 -->`
|
|
81
99
|
> **正确写法**: `<Timepicker step="00:30" />`
|
|
82
100
|
> **说明**: step 应使用时间格式字符串,如 "00:30" 表示 30 分钟
|
|
83
101
|
|
|
102
|
+
### min/max 格式与 format 不匹配
|
|
84
103
|
> **错误用法**: `<Timepicker min="9:00" max="18:00" /> <!-- 缺少秒 -->`
|
|
85
104
|
> **正确写法**: `<Timepicker min="09:00:00" max="18:00:00" />`
|
|
86
105
|
> **说明**: min/max 应使用完整的时间格式
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# 时间范围 (TimeRange)
|
|
2
|
+
|
|
3
|
+
面向报表、监控和日志场景的时间范围选择组件,支持快捷区间、自定义起止时间以及时间戳格式输出。
|
|
4
|
+
|
|
5
|
+
**关键词**: time range, date range, time filter, 时间范围, 时间筛选, 快捷时间, 监控时间段, 日志时间查询
|
|
6
|
+
|
|
7
|
+
**使用场景**: 监控页时间筛选、报表页时间范围选择、日志页最近时间窗口查询、按快捷区间切换统计周期
|
|
8
|
+
|
|
9
|
+
## 导入语句
|
|
10
|
+
```typescript
|
|
11
|
+
import { TimeRange } from '@ksyun-internal/versatile';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 属性 (Props)
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| type | `"date" | "datetime" | "year" | "month"` | `"date"` | 否 | 组件类型 | `inherited:Datepicker` | `<Datepicker type="datetime" />` |
|
|
18
|
+
| range | `boolean` | `false` | 否 | 是否选择日期范围 | `inherited:Datepicker` | `<Datepicker range />` |
|
|
19
|
+
| multiple | `boolean` | `false` | 否 | 是否支持多选 | `inherited:Datepicker` | `<Datepicker multiple />` |
|
|
20
|
+
| filterable | `boolean` | `false` | 否 | 是否支持筛选输入 | `inherited:Datepicker` | `<Datepicker filterable />` |
|
|
21
|
+
| loading | `boolean` | `false` | 否 | 数据加载状态 | `inherited:Datepicker` | `<Datepicker :loading="loading" />` |
|
|
22
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用 | `inherited:Datepicker` | `<Datepicker disabled />` |
|
|
23
|
+
| name | `string` | `undefined` | 否 | 表单元素的 name 属性 | `inherited:Datepicker` | `<Datepicker name="startDate" />` |
|
|
24
|
+
| clearable | `boolean` | `false` | 否 | 是否可清空 | `inherited:Datepicker` | `<Datepicker clearable />` |
|
|
25
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | `inherited:Datepicker` | `<Datepicker size="small" />` |
|
|
26
|
+
| placeholder | `string` | `"请选择日期"` | 否 | 占位文案 | `inherited:Datepicker` | `<Datepicker placeholder="选择开始日期" />` |
|
|
27
|
+
| format | `string` | `"YYYY-MM-DD HH:mm:ss"` | 否 | 日期格式化字符串 | - | - |
|
|
28
|
+
| valueFormat | `string` | `undefined` | 否 | value 值的日期格式化字符串 | `inherited:Datepicker` | `<Datepicker valueFormat="YYYY-MM-DD" />` |
|
|
29
|
+
| showFormat | `string` | `undefined` | 否 | 展示的日期格式化字符串 | `inherited:Datepicker` | `<Datepicker showFormat="YYYY年MM月DD日" />` |
|
|
30
|
+
| min | `Value` | `undefined` | 否 | 最小可选日期 | `inherited:Datepicker` | `<Datepicker min="2024-01-01" />` |
|
|
31
|
+
| max | `Value` | `undefined` | 否 | 最大可选日期 | `inherited:Datepicker` | `<Datepicker max="2024-12-31" />` |
|
|
32
|
+
| disabledDate | `(v: Dayjs) => boolean` | `undefined` | 否 | 禁用日期的函数,返回 true 表示禁用该日期 | `inherited:Datepicker` | `<Datepicker :disabledDate="(d) => d.day() === 0" />` |
|
|
33
|
+
| shortcuts | `Shortcut[]` | `undefined` | 否 | 快捷方式配置 | `inherited:Datepicker` | `<Datepicker :shortcuts="shortcuts" />` |
|
|
34
|
+
| hideIcon | `boolean` | `false` | 否 | 是否隐藏后面的图标 | `inherited:Datepicker` | `<Datepicker hideIcon />` |
|
|
35
|
+
| fluid | `boolean` | `false` | 否 | 是否宽度 100% | `inherited:Datepicker` | `<Datepicker fluid />` |
|
|
36
|
+
| inline | `boolean` | `false` | 否 | 是否展示内联模式 | `inherited:Datepicker` | `<Datepicker inline />` |
|
|
37
|
+
| flat | `boolean` | `false` | 否 | 是否展示扁平样式 | `inherited:Datepicker` | `<Datepicker flat />` |
|
|
38
|
+
| width | `number | string` | `undefined` | 否 | 指定宽度,自动添加单位 px | `inherited:Datepicker` | `<Datepicker :width="200" />` |
|
|
39
|
+
| container | `Container` | `undefined` | 否 | 弹出层挂载容器 | - | - |
|
|
40
|
+
| show | `boolean` | `false` | 否 | 是否展示菜单项(受控模式) | `inherited:Datepicker` | `<Datepicker :show="visible" />` |
|
|
41
|
+
| position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'left top+8', at: 'left bottom'}` | 否 | 菜单弹出的位置 | `inherited:Datepicker` | `<Datepicker position="top" />` |
|
|
42
|
+
| nowrap | `boolean` | `false` | 否 | 选中值区域是否不换行展示,适合单行紧凑布局 | `inherited:Datepicker` | `<Datepicker nowrap />` |
|
|
43
|
+
| draggable | `boolean` | `false` | 否 | 多选值是否支持拖动排序 | `inherited:Datepicker` | `<Datepicker multiple draggable />` |
|
|
44
|
+
| virtual | `boolean` | `false` | 否 | 是否开启虚拟列表,用于大数据量场景 | `inherited:Datepicker` | `<Datepicker virtual />` |
|
|
45
|
+
| modelValue | `[number, number] | [string, string]` | `undefined` | 否 | 当前选中的时间范围 | - | - |
|
|
46
|
+
| startTime | `string | number` | `undefined` | 否 | 当前时间范围的开始时间 | - | - |
|
|
47
|
+
| endTime | `string | number` | `undefined` | 否 | 当前时间范围的结束时间 | - | - |
|
|
48
|
+
| label | `string` | `""` | 否 | 组件标题文案 | - | - |
|
|
49
|
+
| times | `(Time | number | 'today' | 'yesterday')[]` | `undefined` | 否 | 快捷时间范围配置,支持分钟数或 today / yesterday 等枚举 | - | - |
|
|
50
|
+
| defaultValue | `number | 'today' | 'yesterday'` | `undefined` | 否 | 首次渲染时使用的默认快捷值 | - | - |
|
|
51
|
+
| timestamp | `boolean` | `false` | 否 | 是否以时间戳格式返回值 | - | - |
|
|
52
|
+
|
|
53
|
+
## 事件 (Events)
|
|
54
|
+
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
55
|
+
| --- | --- | --- | --- | --- |
|
|
56
|
+
| update:modelValue | `@update:modelValue` | 整个时间范围值变化时触发,适合直接驱动查询参数。 | `value?: TimeModelType` | - |
|
|
57
|
+
| update:startTime | `@update:startTime` | 开始时间变化时触发,可用于单独记录查询区间起点。 | `value?: string | number` | - |
|
|
58
|
+
| update:endTime | `@update:endTime` | 结束时间变化时触发,可用于单独记录查询区间终点。 | `value?: string | number` | - |
|
|
59
|
+
|
|
60
|
+
### 事件参数说明
|
|
61
|
+
**update:modelValue**
|
|
62
|
+
|
|
63
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
64
|
+
| --- | --- | --- | --- | --- |
|
|
65
|
+
| value | `TimeModelType` | 否 | - | 当前完整时间范围,可能是时间戳元组或格式化后的字符串元组。 |
|
|
66
|
+
|
|
67
|
+
**update:startTime**
|
|
68
|
+
|
|
69
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
70
|
+
| --- | --- | --- | --- | --- |
|
|
71
|
+
| value | `string | number` | 否 | - | 当前开始时间值;`timestamp=true` 时通常是时间戳,否则为格式化字符串。 |
|
|
72
|
+
|
|
73
|
+
**update:endTime**
|
|
74
|
+
|
|
75
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
76
|
+
| --- | --- | --- | --- | --- |
|
|
77
|
+
| value | `string | number` | 否 | - | 当前结束时间值;`timestamp=true` 时通常是时间戳,否则为格式化字符串。 |
|
|
78
|
+
|
|
79
|
+
## 方法 (Methods)
|
|
80
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
81
|
+
| --- | --- | --- | --- |
|
|
82
|
+
| setTimeValue | 按快捷值主动切换时间范围 | `value: number | 'today' | 'yesterday'` | `void` |
|
|
83
|
+
| refetch | 刷新当前时间范围到最新时间 | `value?: number | 'today' | 'yesterday'` | `void` |
|
|
84
|
+
|
|
85
|
+
### 方法参数说明
|
|
86
|
+
**setTimeValue**
|
|
87
|
+
|
|
88
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
89
|
+
| --- | --- | --- | --- | --- |
|
|
90
|
+
| value | `number | 'today' | 'yesterday'` | 是 | - | 目标快捷值,可传分钟数或 `today`、`yesterday` 这类内置快捷标识。 |
|
|
91
|
+
|
|
92
|
+
**refetch**
|
|
93
|
+
|
|
94
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
95
|
+
| --- | --- | --- | --- | --- |
|
|
96
|
+
| value | `number | 'today' | 'yesterday'` | 否 | - | 可选的快捷值;传入后会先切换到该快捷区间,再把结束时间刷新到当前最新时刻。 |
|
|
97
|
+
|
|
98
|
+
## 使用示例
|
|
99
|
+
### 监控页时间筛选
|
|
100
|
+
**场景**: 在监控和报表页面中切换查询时间范围。
|
|
101
|
+
|
|
102
|
+
提供最近 1 小时、最近 24 小时等快捷时间范围。
|
|
103
|
+
|
|
104
|
+
**使用的 API**: 属性: modelValue, label, times, timestamp | 事件: update:modelValue, update:startTime, update:endTime
|
|
105
|
+
|
|
106
|
+
```vue
|
|
107
|
+
<script setup lang="ts">
|
|
108
|
+
import { ref } from 'vue';
|
|
109
|
+
import { TimeRange } from '@ksyun-internal/versatile';
|
|
110
|
+
|
|
111
|
+
const timeRange = ref<[number, number] | undefined>();
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
<template>
|
|
115
|
+
<TimeRange
|
|
116
|
+
v-model="timeRange"
|
|
117
|
+
label="统计周期"
|
|
118
|
+
:times="[60, 360, 'today']"
|
|
119
|
+
:timestamp="true"
|
|
120
|
+
/>
|
|
121
|
+
</template>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 刷新到最新时间窗口
|
|
125
|
+
**场景**: 在日志和监控页面中一键把查询区间重置到最新时间窗口。
|
|
126
|
+
|
|
127
|
+
通过组件方法把当前时间范围刷新到最新时刻,适合日志和监控实时查看场景。
|
|
128
|
+
|
|
129
|
+
**使用的 API**: 属性: modelValue, times, defaultValue, timestamp | 事件: update:modelValue | 方法: refetch
|
|
130
|
+
|
|
131
|
+
```vue
|
|
132
|
+
<script setup lang="ts">
|
|
133
|
+
import { ref } from 'vue';
|
|
134
|
+
import { TimeRange } from '@ksyun-internal/versatile';
|
|
135
|
+
|
|
136
|
+
const rangeRef = ref<InstanceType<typeof TimeRange>>();
|
|
137
|
+
const timeRange = ref<[number, number] | undefined>();
|
|
138
|
+
const refreshLatest = () => {
|
|
139
|
+
rangeRef.value?.refetch(60);
|
|
140
|
+
};
|
|
141
|
+
</script>
|
|
142
|
+
|
|
143
|
+
<template>
|
|
144
|
+
<button @click="refreshLatest">刷新最近 1 小时</button>
|
|
145
|
+
<TimeRange
|
|
146
|
+
ref="rangeRef"
|
|
147
|
+
v-model="timeRange"
|
|
148
|
+
:times="[60, 360, 1440]"
|
|
149
|
+
:default-value="60"
|
|
150
|
+
:timestamp="true"
|
|
151
|
+
/>
|
|
152
|
+
</template>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 相关组件
|
|
156
|
+
Datepicker, Duration
|
|
157
|
+
|
package/docs_for_llm/tip.doc.md
CHANGED
|
@@ -12,23 +12,29 @@ import { Tip } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| type | `"default" | "primary" | "success" | "warning" | "danger"` | `"default"` | 否 | 提示类型 | `<Tip type="warning">警告内容</Tip>` |
|
|
18
|
-
| closable | `boolean` | `false` | 否 | 是否可关闭 | `<Tip closable>可关闭的提示</Tip>` |
|
|
19
|
-
| closed | `boolean` | `false` | 否 | 是否已关闭,可用 v-model:closed 双向绑定 | `<Tip :closed="isClosed">提示</Tip>` |
|
|
20
|
-
| showIcon | `boolean` | `false` | 否 | 是否展示图标 | `<Tip type="success" showIcon>成功</Tip>` |
|
|
21
|
-
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | `<Tip disabled>禁用状态</Tip>` |
|
|
22
|
-
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 组件尺寸 | `<Tip size="small">小尺寸提示</Tip>` |
|
|
23
|
-
| border | `"solid" | "dashed" | "none"` | `"solid"` | 否 | 边框样式 | `<Tip border="dashed">虚线边框</Tip>` |
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| type | `"default" | "primary" | "success" | "warning" | "danger"` | `"default"` | 否 | 提示类型 | - | `<Tip type="warning">警告内容</Tip>` |
|
|
18
|
+
| closable | `boolean` | `false` | 否 | 是否可关闭 | - | `<Tip closable>可关闭的提示</Tip>` |
|
|
19
|
+
| closed | `boolean` | `false` | 否 | 是否已关闭,可用 v-model:closed 双向绑定 | - | `<Tip :closed="isClosed">提示</Tip>` |
|
|
20
|
+
| showIcon | `boolean` | `false` | 否 | 是否展示图标 | - | `<Tip type="success" showIcon>成功</Tip>` |
|
|
21
|
+
| disabled | `boolean` | `false` | 否 | 是否展示禁用状态 | - | `<Tip disabled>禁用状态</Tip>` |
|
|
22
|
+
| size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 组件尺寸 | - | `<Tip size="small">小尺寸提示</Tip>` |
|
|
23
|
+
| border | `"solid" | "dashed" | "none"` | `"solid"` | 否 | 边框样式 | - | `<Tip border="dashed">虚线边框</Tip>` |
|
|
24
24
|
|
|
25
25
|
## 事件 (Events)
|
|
26
26
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
27
27
|
| --- | --- | --- | --- | --- |
|
|
28
28
|
| close | `@close` | 关闭时触发 | `e: MouseEvent` | `<Tip closable @close="handleClose"></Tip>` |
|
|
29
29
|
|
|
30
|
-
###
|
|
31
|
-
**close
|
|
30
|
+
### 事件参数说明
|
|
31
|
+
**close**
|
|
32
|
+
|
|
33
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
34
|
+
| --- | --- | --- | --- | --- |
|
|
35
|
+
| e | `MouseEvent` | 是 | - | 原生鼠标事件 |
|
|
36
|
+
|
|
37
|
+
事件处理示例:
|
|
32
38
|
```typescript
|
|
33
39
|
const handleClose = (e: MouseEvent) => {
|
|
34
40
|
console.log('提示已关闭');
|
|
@@ -36,14 +42,17 @@ const handleClose = (e: MouseEvent) => {
|
|
|
36
42
|
```
|
|
37
43
|
|
|
38
44
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
45
|
+
### 使用 closable 但未处理关闭逻辑
|
|
39
46
|
> **错误用法**: `<Tip closable>提示</Tip> <!-- 点击关闭按钮不会隐藏 -->`
|
|
40
47
|
> **正确写法**: `<Tip closable :closed="closed" @close="handleClose">提示</Tip>`
|
|
41
48
|
> **说明**: closable 只显示关闭按钮,需要监听 close 事件并设置 closed 来隐藏
|
|
42
49
|
|
|
50
|
+
### type 值拼写错误
|
|
43
51
|
> **错误用法**: `<Tip type="error">错误</Tip>`
|
|
44
52
|
> **正确写法**: `<Tip type="danger">错误</Tip>`
|
|
45
53
|
> **说明**: 错误类型应使用 danger 而非 error
|
|
46
54
|
|
|
55
|
+
### showIcon 大小写错误
|
|
47
56
|
> **错误用法**: `<Tip showicon>提示</Tip>`
|
|
48
57
|
> **正确写法**: `<Tip showIcon>提示</Tip>`
|
|
49
58
|
> **说明**: 属性名是 showIcon(驼峰命名)
|
|
@@ -12,58 +12,84 @@ import { Tooltip } from '@king-design/vue';
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## 属性 (Props)
|
|
15
|
-
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
|
|
16
|
-
| --- | --- | --- | --- | --- | --- |
|
|
17
|
-
| content | `string | VNode` | `undefined` | 否 | 提示的内容 | `<Tooltip content="提示内容"
|
|
18
|
-
| trigger | `"hover" | "click" | "focus"` | `"hover"` | 否 | 触发方式 | `<Tooltip trigger="click"
|
|
19
|
-
| value | `boolean` | `false` | 否 | 是否展示弹层,可用 v-model 双向绑定 | `<Tooltip v-model="visible"
|
|
20
|
-
| disabled | `boolean` | `false` | 否 | 是否禁用提示 | `<Tooltip disabled
|
|
21
|
-
| position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'center bottom-10', at: 'center top', collision: 'flipfit'}` | 否 | 弹层弹出的位置,默认在触发器正上方 | `<Tooltip position="bottom"
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
15
|
+
| 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| content | `string | VNode` | `undefined` | 否 | 提示的内容 | - | `<Tooltip content="提示内容">` |
|
|
18
|
+
| trigger | `"hover" | "click" | "focus"` | `"hover"` | 否 | 触发方式 | - | `<Tooltip trigger="click">` |
|
|
19
|
+
| value | `boolean` | `false` | 否 | 是否展示弹层,可用 v-model 双向绑定 | - | `<Tooltip v-model="visible">` |
|
|
20
|
+
| disabled | `boolean` | `false` | 否 | 是否禁用提示 | - | `<Tooltip disabled>` |
|
|
21
|
+
| position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'center bottom-10', at: 'center top', collision: 'flipfit'}` | 否 | 弹层弹出的位置,默认在触发器正上方 | - | `<Tooltip position="bottom">` |
|
|
22
|
+
| collison | `Collision | [Collision, Collision]` | `undefined` | 否 | 碰撞检测策略,控制弹层超出边界时的处理方式。注意源码字段名拼写为 collison。 | - | `<Tooltip :collison="'flipfit'">` |
|
|
23
|
+
| theme | `"dark" | "light"` | `"dark"` | 否 | 主题 | - | `<Tooltip theme="light">` |
|
|
24
|
+
| showArrow | `boolean` | `true` | 否 | 弹层是否展示箭头 | - | `<Tooltip :showArrow="false">` |
|
|
25
|
+
| hoverable | `boolean` | `false` | 否 | 对于悬浮触发方式,提示弹层是否在鼠标悬浮时仍然展示 | - | `<Tooltip hoverable>` |
|
|
26
|
+
| always | `boolean` | `false` | 否 | 是否一直保持当前展示/隐藏状态 | - | `<Tooltip always>` |
|
|
27
|
+
| size | `"default" | "small"` | `"default"` | 否 | 弹层尺寸 | - | `<Tooltip size="small">` |
|
|
28
|
+
| of | `"self" | "parent" | Event` | `"self"` | 否 | 弹出菜单的位置是相对当前触发元素还是父元素 | - | `<Tooltip of="parent">` |
|
|
29
|
+
| container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹出菜单追加的位置 | - | `<Tooltip :container="() => document.body">` |
|
|
30
|
+
| alwaysShowOnClick | `boolean` | `false` | 否 | 不管什么触发方式,重复点击触发器都不隐藏弹层 | - | `<Tooltip alwaysShowOnClick>` |
|
|
29
31
|
|
|
30
32
|
## 事件 (Events)
|
|
31
33
|
| 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
|
|
32
34
|
| --- | --- | --- | --- | --- |
|
|
33
|
-
| show | `@show` | 弹层展示时触发 | `-` | `<Tooltip @show="handleShow"
|
|
34
|
-
| hide | `@hide` | 弹层隐藏时触发 | `-` | `<Tooltip @hide="handleHide"
|
|
35
|
+
| show | `@show` | 弹层展示时触发 | `-` | `<Tooltip @show="handleShow">` |
|
|
36
|
+
| hide | `@hide` | 弹层隐藏时触发 | `-` | `<Tooltip @hide="handleHide">` |
|
|
37
|
+
| positioned | `@positioned` | 提示弹层完成定位计算后触发,可用于读取最终落位结果。 | `feedback: Feedback` | `<Tooltip @positioned="handlePositioned">` |
|
|
35
38
|
|
|
36
|
-
###
|
|
37
|
-
**
|
|
38
|
-
```typescript
|
|
39
|
-
const handleShow = () => {
|
|
40
|
-
console.log('Tooltip 已展示');
|
|
41
|
-
};
|
|
42
|
-
```
|
|
39
|
+
### 事件参数说明
|
|
40
|
+
**positioned**
|
|
43
41
|
|
|
44
|
-
|
|
42
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
43
|
+
| --- | --- | --- | --- | --- |
|
|
44
|
+
| feedback | `Feedback` | 是 | - | 定位反馈对象,描述当前 Tooltip 的最终 placement 和坐标信息。 |
|
|
45
|
+
|
|
46
|
+
事件处理示例:
|
|
45
47
|
```typescript
|
|
46
|
-
const
|
|
47
|
-
console.log('Tooltip
|
|
48
|
+
const handlePositioned = (feedback: Feedback) => {
|
|
49
|
+
console.log('Tooltip 最终位置', feedback.placement);
|
|
48
50
|
};
|
|
49
51
|
```
|
|
50
52
|
|
|
51
|
-
##
|
|
52
|
-
|
|
|
53
|
+
## 方法 (Methods)
|
|
54
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
53
55
|
| --- | --- | --- | --- |
|
|
54
|
-
|
|
|
56
|
+
| show | 主动显示提示弹层。 | `shouldFocus?: boolean` | `void` |
|
|
57
|
+
| hide | 主动隐藏提示弹层。 | `immediately: boolean` | `void` |
|
|
58
|
+
| position | 重新计算提示弹层的位置。 | `callback?: (feedback: Feedback) => void` | `void` |
|
|
59
|
+
|
|
60
|
+
### 方法参数说明
|
|
61
|
+
**show**
|
|
62
|
+
|
|
63
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
64
|
+
| --- | --- | --- | --- | --- |
|
|
65
|
+
| shouldFocus | `boolean` | 否 | - | 显示后是否尝试把焦点移动到弹层内容。 |
|
|
66
|
+
|
|
67
|
+
**hide**
|
|
68
|
+
|
|
69
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
70
|
+
| --- | --- | --- | --- | --- |
|
|
71
|
+
| immediately | `boolean` | 是 | - | 是否立即隐藏,用于手动控制点击确认型 Tooltip 的关闭时机。 |
|
|
72
|
+
|
|
73
|
+
**position**
|
|
74
|
+
|
|
75
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
76
|
+
| --- | --- | --- | --- | --- |
|
|
77
|
+
| callback | `(feedback: Feedback) => void` | 否 | - | 定位完成后的回调,可读取最终 placement 和坐标。 |
|
|
55
78
|
|
|
56
79
|
## 常见错误与正确用法 (Anti-Hallucination)
|
|
80
|
+
### 未提供触发元素
|
|
57
81
|
> **错误用法**: `<Tooltip content="提示" />`
|
|
58
82
|
> **正确写法**: `<Tooltip content="提示">
|
|
59
83
|
<Button>触发器</Button>
|
|
60
84
|
</Tooltip>`
|
|
61
85
|
> **说明**: Tooltip 需要包裹一个子元素作为触发器
|
|
62
86
|
|
|
87
|
+
### position 值拼写错误
|
|
63
88
|
> **错误用法**: `<Tooltip position="buttom">`
|
|
64
89
|
> **正确写法**: `<Tooltip position="bottom">`
|
|
65
90
|
> **说明**: position 只支持 top, bottom, left, right,注意拼写
|
|
66
91
|
|
|
92
|
+
### 使用 hoverable 但 content 不可交互
|
|
67
93
|
> **错误用法**: `<Tooltip hoverable content="纯文本" /> <!-- hoverable 无意义 -->`
|
|
68
94
|
> **正确写法**: `<Tooltip hoverable>
|
|
69
95
|
<Button>触发</Button>
|