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.
Files changed (305) hide show
  1. package/components/actions.json +101 -0
  2. package/components/advancedset.json +127 -0
  3. package/components/affix.json +7 -0
  4. package/components/aksk.json +172 -0
  5. package/components/az.json +15 -2
  6. package/components/badge.json +7 -0
  7. package/components/billtypes.json +14 -2
  8. package/components/breadcrumb.json +7 -0
  9. package/components/button.json +191 -0
  10. package/components/buttonlink.json +73 -0
  11. package/components/card.json +8 -1
  12. package/components/cardcol.json +142 -0
  13. package/components/cardcols.json +121 -0
  14. package/components/cardcontent.json +15 -3
  15. package/components/cardtabs.json +172 -0
  16. package/components/carousel.json +7 -0
  17. package/components/cascader.json +520 -368
  18. package/components/checkbox.json +51 -4
  19. package/components/cidrinput.json +140 -0
  20. package/components/code.json +8 -1
  21. package/components/collapse.json +7 -0
  22. package/components/colorpicker.json +217 -0
  23. package/components/copy.json +7 -0
  24. package/components/copyhover.json +111 -0
  25. package/components/copyrow.json +124 -0
  26. package/components/datepicker.json +656 -524
  27. package/components/description.json +98 -0
  28. package/components/dialog.json +522 -455
  29. package/components/divider.json +8 -1
  30. package/components/drawer.json +571 -558
  31. package/components/dropdown.json +464 -384
  32. package/components/duration.json +125 -0
  33. package/components/editable.json +66 -0
  34. package/components/ellipsis.json +34 -1
  35. package/components/filtertablefieldsdialog.json +128 -0
  36. package/components/flex.json +151 -0
  37. package/components/form.json +131 -0
  38. package/components/formiteminput.json +214 -0
  39. package/components/formitemspinner.json +213 -0
  40. package/components/formitemswitch.json +185 -0
  41. package/components/formitemtableconfigs.json +210 -0
  42. package/components/grid.json +7 -0
  43. package/components/header.json +161 -0
  44. package/components/icon.json +13 -1
  45. package/components/icontooltip.json +19 -1
  46. package/components/input.json +188 -4
  47. package/components/instancelist.json +194 -0
  48. package/components/instancenum.json +196 -0
  49. package/components/ipinput.json +117 -0
  50. package/components/kspstatus.json +205 -0
  51. package/components/kvcode.json +120 -0
  52. package/components/layoutcontent.json +15 -3
  53. package/components/layoutlistcontent.json +148 -0
  54. package/components/layoutpermissioncontent.json +155 -0
  55. package/components/layoutstandardlist.json +275 -0
  56. package/components/layouttabs.json +168 -0
  57. package/components/lazymount.json +86 -0
  58. package/components/lazyteleport.json +118 -0
  59. package/components/menu.json +7 -0
  60. package/components/pagination.json +12 -0
  61. package/components/paginationplus.json +30 -3
  62. package/components/password.json +121 -0
  63. package/components/popover.json +457 -437
  64. package/components/projects.json +129 -0
  65. package/components/protable.json +97 -8
  66. package/components/queuevisualrange.json +110 -0
  67. package/components/radio.json +82 -2
  68. package/components/rate.json +199 -0
  69. package/components/region.json +14 -2
  70. package/components/search.json +221 -0
  71. package/components/searchinput.json +132 -0
  72. package/components/searchitems.json +215 -0
  73. package/components/searchselect.json +195 -0
  74. package/components/select.json +686 -666
  75. package/components/sidebar.json +198 -0
  76. package/components/skeleton.json +233 -0
  77. package/components/spin.json +8 -1
  78. package/components/split.json +260 -0
  79. package/components/sshkeys.json +138 -0
  80. package/components/status.json +60 -3
  81. package/components/steps.json +7 -0
  82. package/components/switch.json +8 -1
  83. package/components/table.json +18 -1
  84. package/components/tablecolumnid.json +14 -2
  85. package/components/tabs.json +12 -0
  86. package/components/timeline.json +213 -0
  87. package/components/timepicker.json +147 -3
  88. package/components/timerange.json +262 -0
  89. package/components/tip.json +7 -0
  90. package/components/tooltip.json +484 -395
  91. package/components/tour.json +418 -372
  92. package/components/transfer.json +27 -3
  93. package/components/tree.json +6 -4
  94. package/components/treeselect.json +556 -475
  95. package/components/upload.json +474 -473
  96. package/components/vdialog.json +308 -0
  97. package/components/vdrawer.json +331 -0
  98. package/components/virtuallist.json +7 -0
  99. package/dist/ast/index.d.mts +35 -1
  100. package/dist/ast/index.d.ts +35 -1
  101. package/dist/ast/index.js +4 -3
  102. package/dist/ast/index.mjs +2 -1
  103. package/dist/{chunk-DSWKLUIX.mjs → chunk-3LYQ5XFM.mjs} +1 -1
  104. package/dist/chunk-BI5TIQID.mjs +330 -0
  105. package/dist/{chunk-F26GUCGG.js → chunk-CJGGFVQJ.js} +8 -8
  106. package/dist/chunk-CR3GC4H3.js +353 -0
  107. package/dist/{chunk-NZ6TLWMD.mjs → chunk-D2SXGGTX.mjs} +28 -17
  108. package/dist/{chunk-D3Y6FGWA.js → chunk-EYKZY2F3.js} +29 -18
  109. package/dist/chunk-KF5YBEM5.js +143 -0
  110. package/dist/{chunk-H2ET6MMM.mjs → chunk-KMIDURUR.mjs} +42 -47
  111. package/dist/chunk-QC6VTSA3.mjs +117 -0
  112. package/dist/{chunk-2W6OCG2S.js → chunk-SZYVGYKK.js} +42 -48
  113. package/dist/{chunk-WYSRJVX4.js → chunk-TA3SV4SP.js} +2 -2
  114. package/dist/{chunk-OJOHB64C.mjs → chunk-XGPHQHLR.mjs} +4 -4
  115. package/dist/full/index.js +7 -6
  116. package/dist/full/index.mjs +5 -4
  117. package/dist/index.d.mts +1 -0
  118. package/dist/index.d.ts +1 -0
  119. package/dist/index.js +14 -13
  120. package/dist/index.mjs +6 -5
  121. package/dist/metadata/index.d.mts +22 -2
  122. package/dist/metadata/index.d.ts +22 -2
  123. package/dist/metadata/index.js +26 -16
  124. package/dist/metadata/index.mjs +26 -15
  125. package/dist/resolve-BsLBxlBi.d.mts +24 -0
  126. package/dist/resolve-BsLBxlBi.d.ts +24 -0
  127. package/dist/runtime/index.js +4 -4
  128. package/dist/runtime/index.mjs +2 -2
  129. package/dist/shared/index.d.mts +10 -0
  130. package/dist/shared/index.d.ts +10 -0
  131. package/dist/shared/index.js +23 -0
  132. package/dist/shared/index.mjs +2 -0
  133. package/dist/static/index.js +5 -5
  134. package/dist/static/index.mjs +2 -2
  135. package/docs_for_llm/actions.doc.md +77 -0
  136. package/docs_for_llm/advancedset.doc.md +89 -0
  137. package/docs_for_llm/affix.doc.md +15 -7
  138. package/docs_for_llm/aksk.doc.md +111 -0
  139. package/docs_for_llm/az.doc.md +17 -11
  140. package/docs_for_llm/badge.doc.md +6 -5
  141. package/docs_for_llm/billtypes.doc.md +17 -11
  142. package/docs_for_llm/breadcrumb.doc.md +6 -3
  143. package/docs_for_llm/button.doc.md +34 -18
  144. package/docs_for_llm/buttonlink.doc.md +55 -0
  145. package/docs_for_llm/card.doc.md +8 -5
  146. package/docs_for_llm/cardcol.doc.md +78 -0
  147. package/docs_for_llm/cardcols.doc.md +84 -0
  148. package/docs_for_llm/cardcontent.doc.md +10 -10
  149. package/docs_for_llm/cardtabs.doc.md +106 -0
  150. package/docs_for_llm/carousel.doc.md +8 -7
  151. package/docs_for_llm/cascader.doc.md +46 -25
  152. package/docs_for_llm/checkbox.doc.md +25 -13
  153. package/docs_for_llm/cidrinput.doc.md +83 -0
  154. package/docs_for_llm/code.doc.md +22 -11
  155. package/docs_for_llm/collapse.doc.md +9 -6
  156. package/docs_for_llm/colorpicker.doc.md +104 -0
  157. package/docs_for_llm/copy.doc.md +15 -13
  158. package/docs_for_llm/copyhover.doc.md +59 -0
  159. package/docs_for_llm/copyrow.doc.md +71 -0
  160. package/docs_for_llm/datepicker.doc.md +51 -39
  161. package/docs_for_llm/description.doc.md +75 -0
  162. package/docs_for_llm/descriptions.doc.md +9 -6
  163. package/docs_for_llm/dialog.doc.md +48 -77
  164. package/docs_for_llm/divider.doc.md +9 -7
  165. package/docs_for_llm/drawer.doc.md +43 -84
  166. package/docs_for_llm/dropdown.doc.md +52 -21
  167. package/docs_for_llm/duration.doc.md +76 -0
  168. package/docs_for_llm/editable.doc.md +36 -14
  169. package/docs_for_llm/ellipsis.doc.md +10 -5
  170. package/docs_for_llm/filtertablefieldsdialog.doc.md +99 -0
  171. package/docs_for_llm/flex.doc.md +74 -0
  172. package/docs_for_llm/form.doc.md +33 -14
  173. package/docs_for_llm/formiteminput.doc.md +128 -0
  174. package/docs_for_llm/formitemspinner.doc.md +105 -0
  175. package/docs_for_llm/formitemswitch.doc.md +113 -0
  176. package/docs_for_llm/formitemtableconfigs.doc.md +95 -0
  177. package/docs_for_llm/grid.doc.md +7 -5
  178. package/docs_for_llm/header.doc.md +85 -0
  179. package/docs_for_llm/icon.doc.md +12 -8
  180. package/docs_for_llm/icontooltip.doc.md +121 -0
  181. package/docs_for_llm/input.doc.md +90 -39
  182. package/docs_for_llm/instancelist.doc.md +113 -0
  183. package/docs_for_llm/instancenum.doc.md +95 -0
  184. package/docs_for_llm/ipinput.doc.md +77 -0
  185. package/docs_for_llm/kspstatus.doc.md +82 -0
  186. package/docs_for_llm/kvcode.doc.md +76 -0
  187. package/docs_for_llm/layoutcontent.doc.md +17 -17
  188. package/docs_for_llm/layoutlistcontent.doc.md +95 -0
  189. package/docs_for_llm/layoutpermissioncontent.doc.md +84 -0
  190. package/docs_for_llm/layoutstandardlist.doc.md +120 -0
  191. package/docs_for_llm/layouttabs.doc.md +101 -0
  192. package/docs_for_llm/lazymount.doc.md +73 -0
  193. package/docs_for_llm/lazyteleport.doc.md +76 -0
  194. package/docs_for_llm/menu.doc.md +14 -11
  195. package/docs_for_llm/message.doc.md +48 -10
  196. package/docs_for_llm/pagination.doc.md +30 -17
  197. package/docs_for_llm/paginationplus.doc.md +31 -10
  198. package/docs_for_llm/password.doc.md +86 -0
  199. package/docs_for_llm/popover.doc.md +24 -55
  200. package/docs_for_llm/progress.doc.md +13 -10
  201. package/docs_for_llm/projects.doc.md +91 -0
  202. package/docs_for_llm/protable.doc.md +89 -15
  203. package/docs_for_llm/queuevisualrange.doc.md +78 -0
  204. package/docs_for_llm/radio.doc.md +23 -8
  205. package/docs_for_llm/rate.doc.md +122 -0
  206. package/docs_for_llm/region.doc.md +25 -13
  207. package/docs_for_llm/search.doc.md +120 -0
  208. package/docs_for_llm/searchinput.doc.md +111 -0
  209. package/docs_for_llm/searchitems.doc.md +116 -0
  210. package/docs_for_llm/searchselect.doc.md +126 -0
  211. package/docs_for_llm/select.doc.md +40 -55
  212. package/docs_for_llm/sidebar.doc.md +133 -0
  213. package/docs_for_llm/skeleton.doc.md +117 -0
  214. package/docs_for_llm/slider.doc.md +31 -21
  215. package/docs_for_llm/spin.doc.md +8 -5
  216. package/docs_for_llm/spinner.doc.md +28 -18
  217. package/docs_for_llm/split.doc.md +157 -0
  218. package/docs_for_llm/sshkeys.doc.md +88 -0
  219. package/docs_for_llm/status.doc.md +14 -9
  220. package/docs_for_llm/steps.doc.md +10 -7
  221. package/docs_for_llm/switch.doc.md +17 -14
  222. package/docs_for_llm/table.doc.md +118 -51
  223. package/docs_for_llm/tablecolumnid.doc.md +36 -16
  224. package/docs_for_llm/tabs.doc.md +19 -10
  225. package/docs_for_llm/tag.doc.md +19 -10
  226. package/docs_for_llm/timeline.doc.md +109 -0
  227. package/docs_for_llm/timepicker.doc.md +57 -38
  228. package/docs_for_llm/timerange.doc.md +157 -0
  229. package/docs_for_llm/tip.doc.md +20 -11
  230. package/docs_for_llm/tooltip.doc.md +55 -29
  231. package/docs_for_llm/tour.doc.md +48 -29
  232. package/docs_for_llm/transfer.doc.md +40 -29
  233. package/docs_for_llm/tree.doc.md +65 -23
  234. package/docs_for_llm/treeselect.doc.md +37 -48
  235. package/docs_for_llm/upload.doc.md +56 -32
  236. package/docs_for_llm/useCRUD.doc.md +49 -0
  237. package/docs_for_llm/useCountdown.doc.md +43 -0
  238. package/docs_for_llm/useDetail.doc.md +48 -0
  239. package/docs_for_llm/useDialog.doc.md +46 -0
  240. package/docs_for_llm/useEntity.doc.md +45 -0
  241. package/docs_for_llm/useEventListener.doc.md +44 -0
  242. package/docs_for_llm/useFalseUntilTruthy.doc.md +41 -0
  243. package/docs_for_llm/useGetCopyAuthText.doc.md +35 -0
  244. package/docs_for_llm/useGetUserPermission.doc.md +43 -0
  245. package/docs_for_llm/useGroup.doc.md +48 -0
  246. package/docs_for_llm/useIdEntities.doc.md +48 -0
  247. package/docs_for_llm/useIdEntity.doc.md +103 -0
  248. package/docs_for_llm/useInterval.doc.md +43 -0
  249. package/docs_for_llm/useLayoutStandardList.doc.md +38 -0
  250. package/docs_for_llm/useMessage.doc.md +46 -0
  251. package/docs_for_llm/useModifyCache.doc.md +37 -0
  252. package/docs_for_llm/useOpenDialog.doc.md +41 -0
  253. package/docs_for_llm/usePagination.doc.md +60 -0
  254. package/docs_for_llm/usePersist.doc.md +54 -0
  255. package/docs_for_llm/usePoll.doc.md +41 -0
  256. package/docs_for_llm/useRoutePlus.doc.md +34 -0
  257. package/docs_for_llm/useRouterPlus.doc.md +34 -0
  258. package/docs_for_llm/useSearch.doc.md +68 -0
  259. package/docs_for_llm/useShell.doc.md +43 -0
  260. package/docs_for_llm/useSkip.doc.md +41 -0
  261. package/docs_for_llm/useStorageIdEntity.doc.md +46 -0
  262. package/docs_for_llm/useStore.doc.md +34 -0
  263. package/docs_for_llm/useTable.doc.md +57 -0
  264. package/docs_for_llm/useTableGroup.doc.md +47 -0
  265. package/docs_for_llm/useTableSort.doc.md +40 -0
  266. package/docs_for_llm/useToState.doc.md +112 -0
  267. package/docs_for_llm/useUser.doc.md +38 -0
  268. package/docs_for_llm/useValidForm.doc.md +41 -0
  269. package/docs_for_llm/vdialog.doc.md +129 -0
  270. package/docs_for_llm/vdrawer.doc.md +119 -0
  271. package/docs_for_llm/virtuallist.doc.md +6 -3
  272. package/hooks/useCRUD.json +61 -0
  273. package/hooks/useCountdown.json +49 -0
  274. package/hooks/useDetail.json +67 -0
  275. package/hooks/useDialog.json +49 -0
  276. package/hooks/useEntity.json +61 -0
  277. package/hooks/useEventListener.json +61 -0
  278. package/hooks/useFalseUntilTruthy.json +43 -0
  279. package/hooks/useGetCopyAuthText.json +36 -0
  280. package/hooks/useGetUserPermission.json +55 -0
  281. package/hooks/useGroup.json +49 -0
  282. package/hooks/useIdEntities.json +61 -0
  283. package/hooks/useInterval.json +55 -0
  284. package/hooks/useLayoutStandardList.json +36 -0
  285. package/hooks/useMessage.json +73 -0
  286. package/hooks/useModifyCache.json +36 -0
  287. package/hooks/useOpenDialog.json +43 -0
  288. package/hooks/usePagination.json +49 -0
  289. package/hooks/usePersist.json +61 -0
  290. package/hooks/usePoll.json +43 -0
  291. package/hooks/useRoutePlus.json +36 -0
  292. package/hooks/useRouterPlus.json +36 -0
  293. package/hooks/useSearch.json +56 -0
  294. package/hooks/useShell.json +49 -0
  295. package/hooks/useSkip.json +43 -0
  296. package/hooks/useStorageIdEntity.json +67 -0
  297. package/hooks/useStore.json +36 -0
  298. package/hooks/useTable.json +49 -0
  299. package/hooks/useTableGroup.json +43 -0
  300. package/hooks/useTableSort.json +43 -0
  301. package/hooks/useUser.json +36 -0
  302. package/hooks/useValidForm.json +43 -0
  303. package/package.json +12 -6
  304. package/dist/chunk-HPAUCD5I.js +0 -156
  305. package/dist/chunk-L4DS3EXI.mjs +0 -133
@@ -12,10 +12,10 @@ import { Copy } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | text | `string` | `undefined` | 否 | 复制文案值,要复制到剪贴板的内容 | `<Copy text="要复制的内容"><Button>复制</Button></Copy>` |
18
- | showMessage | `boolean` | `true` | 否 | 复制成功/失败时,是否展示 Message 提示 | `<Copy text="内容" :showMessage="false"><Button>静默复制</Button></Copy>` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | text | `string` | `undefined` | 否 | 复制文案值,要复制到剪贴板的内容 | - | `<Copy text="要复制的内容"><Button>复制</Button></Copy>` |
18
+ | showMessage | `boolean` | `true` | 否 | 复制成功/失败时,是否展示 Message 提示 | - | `<Copy text="内容" :showMessage="false"><Button>静默复制</Button></Copy>` |
19
19
 
20
20
  ## 事件 (Events)
21
21
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
@@ -23,30 +23,32 @@ import { Copy } from '@king-design/vue';
23
23
  | success | `@success` | 复制成功时触发 | `value: string` | `<Copy text="内容" @success="handleSuccess"></Copy>` |
24
24
  | error | `@error` | 复制失败时触发 | `-` | `<Copy text="内容" @error="handleError"></Copy>` |
25
25
 
26
- ### 事件处理函数示例
27
- **success**:
26
+ ### 事件参数说明
27
+ **success**
28
+
29
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
30
+ | --- | --- | --- | --- | --- |
31
+ | value | `string` | 是 | - | 复制的内容 |
32
+
33
+ 事件处理示例:
28
34
  ```typescript
29
35
  const handleSuccess = (value: string) => {
30
36
  console.log('复制成功:', value);
31
37
  };
32
38
  ```
33
39
 
34
- **error**:
35
- ```typescript
36
- const handleError = () => {
37
- console.log('复制失败');
38
- };
39
- ```
40
-
41
40
  ## 常见错误与正确用法 (Anti-Hallucination)
41
+ ### 未设置 text 属性
42
42
  > **错误用法**: `<Copy><Button>复制</Button></Copy>`
43
43
  > **正确写法**: `<Copy text="要复制的内容"><Button>复制</Button></Copy>`
44
44
  > **说明**: 必须通过 text 属性指定要复制的内容
45
45
 
46
+ ### 未提供触发元素
46
47
  > **错误用法**: `<Copy text="内容" />`
47
48
  > **正确写法**: `<Copy text="内容"><Button>复制</Button></Copy>`
48
49
  > **说明**: Copy 组件需要包裹一个子元素作为触发器
49
50
 
51
+ ### success 事件处理函数参数错误
50
52
  > **错误用法**: `const handleSuccess = () => {
51
53
  console.log('复制成功');
52
54
  }`
@@ -0,0 +1,59 @@
1
+ # 悬浮复制 (CopyHover)
2
+
3
+ 在文本悬停时才露出复制图标的轻量组件,适合详情字段、表格单元格等需要降低视觉噪音的复制场景。
4
+
5
+ **关键词**: copy hover, hover copy, 复制悬浮, 悬停复制, 轻量复制按钮
6
+
7
+ **使用场景**: 详情字段快速复制、列表项悬浮复制、敏感信息禁用复制
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { CopyHover } from '@ksyun-internal/versatile';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | text | `string` | `""` | 否 | 待复制文本 | - | - |
18
+ | showMessage | `boolean` | `true` | 否 | 复制成功/失败时,是否展示 Message 提示 | `inherited:Copy` | `<Copy text="内容" :showMessage="false"><Button>静默复制</Button></Copy>` |
19
+ | tooltipText | `string` | `undefined` | 否 | 复制按钮提示文案 | - | - |
20
+ | disabled | `boolean` | `undefined` | 否 | 是否禁用复制 | - | - |
21
+
22
+ ## 使用示例
23
+ ### 详情字段悬浮复制
24
+ **场景**: 在详情页展示实例 ID,同时保持界面简洁。
25
+
26
+ 只在悬停时显示复制图标,适合长 ID、Token 等字段。
27
+
28
+ **使用的 API**: 属性: text, tooltipText
29
+
30
+ ```vue
31
+ <script setup lang="ts">
32
+ import { CopyHover } from '@ksyun-internal/versatile';
33
+ </script>
34
+
35
+ <template>
36
+ <CopyHover text="i-2ze7x5a4a92b" tooltip-text="复制实例 ID" />
37
+ </template>
38
+ ```
39
+
40
+ ### 敏感字段禁止复制
41
+ **场景**: 在脱敏展示 SecretKey 等敏感内容时显式禁用复制。
42
+
43
+ 对脱敏后的内容保留展示但关闭复制。
44
+
45
+ **使用的 API**: 属性: text, tooltipText, disabled
46
+
47
+ ```vue
48
+ <script setup lang="ts">
49
+ import { CopyHover } from '@ksyun-internal/versatile';
50
+ </script>
51
+
52
+ <template>
53
+ <CopyHover text="sk-******" tooltip-text="敏感信息不可复制" :disabled="true" />
54
+ </template>
55
+ ```
56
+
57
+ ## 相关组件
58
+ Copy, CopyRow
59
+
@@ -0,0 +1,71 @@
1
+ # 复制行 (CopyRow)
2
+
3
+ 用于展示并复制一整行文本的业务组件,适合实例 ID、API 地址、回源域名等长文本信息。
4
+
5
+ **关键词**: copy row, copy text row, 复制行, 文本复制, 长文本复制
6
+
7
+ **使用场景**: 详情页字段复制、表格文本复制、自定义内容的复制展示行
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { CopyRow } from '@ksyun-internal/versatile';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | text | `string` | `undefined` | 否 | 待展示和复制的文本内容 | - | - |
18
+ | maxLines | `number` | `undefined` | 否 | 最大展示行数 | - | - |
19
+ | position | `any` | `undefined` | 否 | 复制提示弹出位置 | - | - |
20
+ | disabled | `boolean` | `undefined` | 否 | 是否禁用复制 | - | - |
21
+ | disabledTooltip | `boolean` | `undefined` | 否 | 禁用时是否显示 tooltip | - | - |
22
+
23
+ ## 插槽 (Slots)
24
+ | 插槽名 | 说明 | 模板写法 | 示例 |
25
+ | --- | --- | --- | --- |
26
+ | default | 自定义行内容 | `<CopyRow>...</CopyRow>` | - |
27
+
28
+ ## 使用示例
29
+ ### 接口地址一键复制
30
+ **场景**: 在详情页展示并复制较长的接口地址或资源标识。
31
+
32
+ 在单行文本中集成复制能力和超长内容省略。
33
+
34
+ **使用的 API**: 属性: text, maxLines
35
+
36
+ ```vue
37
+ <script setup lang="ts">
38
+ import { CopyRow } from '@ksyun-internal/versatile';
39
+ </script>
40
+
41
+ <template>
42
+ <CopyRow
43
+ text="https://api.ksyun.com/v1/instance/describe"
44
+ :max-lines="1"
45
+ />
46
+ </template>
47
+ ```
48
+
49
+ ### 自定义复制行内容
50
+ **场景**: 在详情页用自定义文案组合显示可复制字段。
51
+
52
+ 通过默认插槽自定义展示样式,同时保留复制能力。
53
+
54
+ **使用的 API**: 属性: text
55
+
56
+ ```vue
57
+ <script setup lang="ts">
58
+ import { CopyRow } from '@ksyun-internal/versatile';
59
+ </script>
60
+
61
+ <template>
62
+ <CopyRow text="bucket-logs-001">
63
+ <strong>日志桶:</strong>
64
+ <span>bucket-logs-001</span>
65
+ </CopyRow>
66
+ </template>
67
+ ```
68
+
69
+ ## 相关组件
70
+ CopyHover, TableColumnId
71
+
@@ -12,69 +12,81 @@ import { Datepicker } 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] | `<Datepicker v-model="date" />` |
18
- | type | `"date" | "datetime" | "year" | "month"` | `"date"` | 否 | 组件类型 | `<Datepicker type="datetime" />` |
19
- | range | `boolean` | `false` | 否 | 是否选择日期范围 | `<Datepicker range />` |
20
- | multiple | `boolean` | `false` | 否 | 是否支持多选 | `<Datepicker multiple />` |
21
- | disabled | `boolean` | `false` | 否 | 是否禁用 | `<Datepicker disabled />` |
22
- | clearable | `boolean` | `false` | 否 | 是否可清空 | `<Datepicker clearable />` |
23
- | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | `<Datepicker size="small" />` |
24
- | placeholder | `string` | `"请选择日期"` | 否 | 占位文案 | `<Datepicker placeholder="选择开始日期" />` |
25
- | format | `string` | `"YYYY-MM-DD HH:mm:ss"` | 否 | 日期格式化字符串 | `<Datepicker format="YYYY-MM-DD" />` |
26
- | valueFormat | `string` | `undefined` | 否 | value 值的日期格式化字符串 | `<Datepicker valueFormat="YYYY-MM-DD" />` |
27
- | showFormat | `string` | `undefined` | 否 | 展示的日期格式化字符串 | `<Datepicker showFormat="YYYY年MM月DD日" />` |
28
- | min | `Value` | `undefined` | 否 | 最小可选日期 | `<Datepicker min="2024-01-01" />` |
29
- | max | `Value` | `undefined` | 否 | 最大可选日期 | `<Datepicker max="2024-12-31" />` |
30
- | disabledDate | `(v: Dayjs) => boolean` | `undefined` | 否 | 禁用日期的函数,返回 true 表示禁用该日期 | `<Datepicker :disabledDate="(d) => d.day() === 0" /></Datepicker>` |
31
- | shortcuts | `Shortcut[]` | `undefined` | 否 | 快捷方式配置 | `<Datepicker :shortcuts="shortcuts" />` |
32
- | hideIcon | `boolean` | `false` | 否 | 是否隐藏后面的图标 | `<Datepicker hideIcon />` |
33
- | fluid | `boolean` | `false` | 否 | 是否宽度 100% | `<Datepicker fluid />` |
34
- | inline | `boolean` | `false` | 否 | 是否展示内联模式 | `<Datepicker inline />` |
35
- | flat | `boolean` | `false` | 否 | 是否展示扁平样式 | `<Datepicker flat />` |
36
- | width | `number | string` | `undefined` | 否 | 指定宽度,自动添加单位 px | `<Datepicker :width="200" />` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `Value | Value[] | [Value, Value] | [Value, Value][]` | `""` | 否 | 当前选择的值,可用 v-model 双向绑定。范围选择时为 [Value, Value] | - | `<Datepicker v-model="date" />` |
18
+ | type | `"date" | "datetime" | "year" | "month"` | `"date"` | 否 | 组件类型 | - | `<Datepicker type="datetime" />` |
19
+ | range | `boolean` | `false` | 否 | 是否选择日期范围 | - | `<Datepicker range />` |
20
+ | multiple | `boolean` | `false` | 否 | 是否支持多选 | - | `<Datepicker multiple />` |
21
+ | filterable | `boolean` | `false` | 否 | 是否支持筛选输入 | - | `<Datepicker filterable />` |
22
+ | loading | `boolean` | `false` | 否 | 数据加载状态 | - | `<Datepicker :loading="loading" />` |
23
+ | disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Datepicker disabled />` |
24
+ | name | `string` | `undefined` | 否 | 表单元素的 name 属性 | - | `<Datepicker name="startDate" />` |
25
+ | clearable | `boolean` | `false` | 否 | 是否可清空 | - | `<Datepicker clearable />` |
26
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | - | `<Datepicker size="small" />` |
27
+ | placeholder | `string` | `"请选择日期"` | 否 | 占位文案 | - | `<Datepicker placeholder="选择开始日期" />` |
28
+ | format | `string` | `"YYYY-MM-DD HH:mm:ss"` | 否 | 日期格式化字符串 | - | `<Datepicker format="YYYY-MM-DD" />` |
29
+ | valueFormat | `string` | `undefined` | 否 | value 值的日期格式化字符串 | - | `<Datepicker valueFormat="YYYY-MM-DD" />` |
30
+ | showFormat | `string` | `undefined` | 否 | 展示的日期格式化字符串 | - | `<Datepicker showFormat="YYYY年MM月DD日" />` |
31
+ | min | `Value` | `undefined` | 否 | 最小可选日期 | - | `<Datepicker min="2024-01-01" />` |
32
+ | max | `Value` | `undefined` | 否 | 最大可选日期 | - | `<Datepicker max="2024-12-31" />` |
33
+ | disabledDate | `(v: Dayjs) => boolean` | `undefined` | 否 | 禁用日期的函数,返回 true 表示禁用该日期 | - | `<Datepicker :disabledDate="(d) => d.day() === 0" />` |
34
+ | shortcuts | `Shortcut[]` | `undefined` | 否 | 快捷方式配置 | - | `<Datepicker :shortcuts="shortcuts" />` |
35
+ | hideIcon | `boolean` | `false` | 否 | 是否隐藏后面的图标 | - | `<Datepicker hideIcon />` |
36
+ | fluid | `boolean` | `false` | 否 | 是否宽度 100% | - | `<Datepicker fluid />` |
37
+ | inline | `boolean` | `false` | 否 | 是否展示内联模式 | - | `<Datepicker inline />` |
38
+ | flat | `boolean` | `false` | 否 | 是否展示扁平样式 | - | `<Datepicker flat />` |
39
+ | width | `number | string` | `undefined` | 否 | 指定宽度,自动添加单位 px | - | `<Datepicker :width="200" />` |
40
+ | container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹出菜单追加的位置,默认 Dialog 组件会追加到 Dialog 中,其他追加到 body | - | `<Datepicker :container="() => document.body" />` |
41
+ | show | `boolean` | `false` | 否 | 是否展示菜单项(受控模式) | - | `<Datepicker :show="visible" />` |
42
+ | position | `Position | "left" | "bottom" | "right" | "top"` | `{my: 'left top+8', at: 'left bottom'}` | 否 | 菜单弹出的位置 | - | `<Datepicker position="top" />` |
43
+ | nowrap | `boolean` | `false` | 否 | 选中值区域是否不换行展示,适合单行紧凑布局 | - | `<Datepicker nowrap />` |
44
+ | draggable | `boolean` | `false` | 否 | 多选值是否支持拖动排序 | - | `<Datepicker multiple draggable />` |
45
+ | virtual | `boolean` | `false` | 否 | 是否开启虚拟列表,用于大数据量场景 | - | `<Datepicker virtual />` |
37
46
 
38
47
  ## 事件 (Events)
39
48
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
40
49
  | --- | --- | --- | --- | --- |
41
50
  | show | `@show` | 菜单弹出时触发 | `-` | `<Datepicker @show="handleShow" />` |
42
51
  | hide | `@hide` | 菜单隐藏时触发 | `-` | `<Datepicker @hide="handleHide" />` |
43
- | selecting | `@selecting` | 范围选择时,用户正在操作选择时触发 | `value: [Dayjs, Dayjs?]` | `<Datepicker range @selecting="handleSelecting" />` |
52
+ | selecting | `@selecting` | 范围选择时,用户正在操作选择时触发 | `value: [Dayjs, Dayjs?], confirmed: boolean` | `<Datepicker range @selecting="handleSelecting" />` |
44
53
 
45
- ### 事件处理函数示例
46
- **show**:
47
- ```typescript
48
- const handleShow = () => {
49
- console.log('日期选择器已打开');
50
- };
51
- ```
54
+ ### 事件参数说明
55
+ **selecting**
52
56
 
53
- **hide**:
54
- ```typescript
55
- const handleHide = () => {
56
- console.log('日期选择器已关闭');
57
- };
58
- ```
57
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
58
+ | --- | --- | --- | --- | --- |
59
+ | value | `[Dayjs, Dayjs?]` | 是 | - | 当前选择的值 |
60
+ | confirmed | `boolean` | 是 | - | 当前这次 selecting 是否已经进入确认完成态;常见交互过程中通常为 `false`。 |
59
61
 
60
- **selecting**:
62
+ 事件处理示例:
61
63
  ```typescript
62
- const handleSelecting = (value) => {
63
- console.log('正在选择:', value);
64
+ const handleSelecting = (value, confirmed) => {
65
+ console.log('正在选择:', value, confirmed);
64
66
  };
65
67
  ```
66
68
 
69
+ ## 方法 (Methods)
70
+ | 方法名 | 说明 | 参数 | 返回值 |
71
+ | --- | --- | --- | --- |
72
+ | show | 主动展开日期选择面板。 | `-` | `void` |
73
+ | hide | 主动关闭日期选择面板。 | `-` | `void` |
74
+ | position | 重新计算日期选择面板的位置。 | `-` | `void` |
75
+
67
76
  ## 常见错误与正确用法 (Anti-Hallucination)
77
+ ### 范围选择时 value 类型错误
68
78
  > **错误用法**: `const date = ref('');
69
79
  <Datepicker v-model="date" range />`
70
80
  > **正确写法**: `const dateRange = ref<[string, string]>(['', '']);
71
81
  <Datepicker v-model="dateRange" range />`
72
82
  > **说明**: 当 range 为 true 时,value 必须是 [string, string] 数组
73
83
 
84
+ ### type 值拼写错误
74
85
  > **错误用法**: `<Datepicker type="dateTime" />`
75
86
  > **正确写法**: `<Datepicker type="datetime" />`
76
87
  > **说明**: type 值为小写 datetime,不是 dateTime
77
88
 
89
+ ### disabledDate 函数返回值错误
78
90
  > **错误用法**: `const disabledDate = (d) => { if (d.day() === 0) return '禁用'; }`
79
91
  > **正确写法**: `const disabledDate = (d) => d.day() === 0;`
80
92
  > **说明**: disabledDate 必须返回布尔值,true 表示禁用
@@ -0,0 +1,75 @@
1
+ # 描述输入 (Description)
2
+
3
+ 面向资源描述、备注和说明信息的简化输入组件,适合需要统一长度和校验规则的描述类字段。
4
+
5
+ **关键词**: description, remark input, 描述输入, 备注填写, 说明文本
6
+
7
+ **使用场景**: 资源描述录入、备注信息填写、编辑页备注预览
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { Description } from '@ksyun-internal/versatile';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | modelValue | `string | null` | `undefined` | 否 | 描述内容 | - | - |
18
+
19
+ ## 事件 (Events)
20
+ | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
21
+ | --- | --- | --- | --- | --- |
22
+ | update:modelValue | `@update:modelValue` | 描述内容变化时触发,可直接同步备注或说明字段。 | `value?: string | null` | - |
23
+
24
+ ### 事件参数说明
25
+ **update:modelValue**
26
+
27
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
28
+ | --- | --- | --- | --- | --- |
29
+ | value | `string | null` | 否 | - | 当前备注或描述文本。 |
30
+
31
+ ## 使用示例
32
+ ### 实例备注录入
33
+ **场景**: 在创建或编辑资源时填写用途说明和备注信息。
34
+
35
+ 使用 Description 统一承载资源备注或用途说明。
36
+
37
+ **使用的 API**: 属性: modelValue | 事件: update:modelValue
38
+
39
+ ```vue
40
+ <script setup lang="ts">
41
+ import { ref } from 'vue';
42
+ import { Description } from '@ksyun-internal/versatile';
43
+
44
+ const remark = ref('用于支付链路的核心应用实例');
45
+ </script>
46
+
47
+ <template>
48
+ <Description v-model="remark" />
49
+ </template>
50
+ ```
51
+
52
+ ### 编辑资源备注
53
+ **场景**: 在编辑资源信息时实时预览备注字段内容。
54
+
55
+ 在编辑表单中回填已有备注并持续同步到父级状态。
56
+
57
+ **使用的 API**: 属性: modelValue | 事件: update:modelValue
58
+
59
+ ```vue
60
+ <script setup lang="ts">
61
+ import { ref } from 'vue';
62
+ import { Description } from '@ksyun-internal/versatile';
63
+
64
+ const remark = ref('部署于金融业务生产环境');
65
+ </script>
66
+
67
+ <template>
68
+ <Description v-model="remark" />
69
+ <div>预览:{{ remark }}</div>
70
+ </template>
71
+ ```
72
+
73
+ ## 相关组件
74
+ FormItemInput
75
+
@@ -12,12 +12,12 @@ import { Descriptions, DescriptionItem } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | title | `string | number | VNode` | `undefined` | 否 | 描述列表的标题,显示在最顶部 | `<Descriptions title="用户信息"></Descriptions>` |
18
- | vertical | `boolean` | `false` | 否 | 是否垂直排列(label 在上,content 在下) | `<Descriptions vertical></Descriptions>` |
19
- | columns | `number` | `3` | 否 | 一行的 DescriptionItem 数量 | `<Descriptions :columns="2"></Descriptions>` |
20
- | items | `DescriptionItemProps[]` | `[]` | 否 | 描述列表项内容数组,可替代使用 DescriptionItem 子组件 | `<Descriptions :items="items" />` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | title | `string | number | VNode` | `undefined` | 否 | 描述列表的标题,显示在最顶部 | - | `<Descriptions title="用户信息"></Descriptions>` |
18
+ | vertical | `boolean` | `false` | 否 | 是否垂直排列(label 在上,content 在下) | - | `<Descriptions vertical></Descriptions>` |
19
+ | columns | `number` | `3` | 否 | 一行的 DescriptionItem 数量 | - | `<Descriptions :columns="2"></Descriptions>` |
20
+ | items | `DescriptionItemProps[]` | `[]` | 否 | 描述列表项内容数组,可替代使用 DescriptionItem 子组件 | - | `<Descriptions :items="items" />` |
21
21
 
22
22
  ## 插槽 (Slots)
23
23
  | 插槽名 | 说明 | 模板写法 | 示例 |
@@ -39,6 +39,7 @@ import { Descriptions, DescriptionItem } from '@king-design/vue';
39
39
  - `undefined`: 自定义label
40
40
 
41
41
  ## 常见错误与正确用法 (Anti-Hallucination)
42
+ ### DescriptionItem 未设置 label
42
43
  > **错误用法**: `<Descriptions>
43
44
  <DescriptionItem>张三</DescriptionItem>
44
45
  </Descriptions>`
@@ -47,6 +48,7 @@ import { Descriptions, DescriptionItem } from '@king-design/vue';
47
48
  </Descriptions>`
48
49
  > **说明**: DescriptionItem 应该设置 label 属性来标识字段名称
49
50
 
51
+ ### items 数组结构错误
50
52
  > **错误用法**: `const items = ['姓名', '年龄'];`
51
53
  > **正确写法**: `const items = [
52
54
  { label: '姓名', content: '张三' },
@@ -54,6 +56,7 @@ import { Descriptions, DescriptionItem } from '@king-design/vue';
54
56
  ];`
55
57
  > **说明**: items 数组中的每个元素必须是包含 label 和 content 的对象
56
58
 
59
+ ### columns 使用字符串而非数字
57
60
  > **错误用法**: `<Descriptions columns="2">`
58
61
  > **正确写法**: `<Descriptions :columns="2">`
59
62
  > **说明**: columns 是数字类型,需要使用 v-bind (:columns) 语法传入数字
@@ -12,114 +12,84 @@ import { Dialog, Button } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | value | `boolean` | `false` | 否 | 弹窗是否展示,可用v-model双向绑定 | `<Dialog v-model="visible"></Dialog>` |
18
- | title | `string` | `"提示"` | 否 | 弹窗标题 | `<Dialog v-model="visible" title="确认操作"></Dialog>` |
19
- | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 弹窗尺寸 | `<Dialog v-model="visible" size="small"></Dialog>` |
20
- | width | `number | string` | `undefined` | 否 | 指定弹窗宽度,number类型时单位为px,string类型需要指定单位 | `<Dialog v-model="visible" :width="800"></Dialog>` |
21
- | loading | `boolean` | `false` | 否 | "确定"按钮是否为加载状态 | `<Dialog v-model="visible" :loading="isSubmitting"></Dialog>` |
22
- | disabledOk | `boolean` | `false` | 否 | "确定"按钮是否为禁用状态 | `<Dialog v-model="visible" :disabledOk="!isValid"></Dialog>` |
23
- | okText | `string` | `"确定"` | 否 | "确定"按钮文案 | `<Dialog v-model="visible" okText="保存"></Dialog>` |
24
- | cancelText | `string` | `"取消"` | 否 | "取消"按钮文案 | `<Dialog v-model="visible" cancelText="放弃"></Dialog>` |
25
- | overlay | `boolean` | `true` | 否 | 是否展示遮罩层 | `<Dialog v-model="visible" :overlay="false"></Dialog>` |
26
- | closable | `boolean` | `true` | 否 | 点击遮罩层是否可以关闭弹窗 | `<Dialog v-model="visible" :closable="false"></Dialog>` |
27
- | escClosable | `boolean` | `true` | 否 | 是否按ESC键关闭弹窗 | `<Dialog v-model="visible" :escClosable="false"></Dialog>` |
28
- | hideClose | `boolean` | `false` | 否 | 是否隐藏右上角关闭按钮 | `<Dialog v-model="visible" hideClose></Dialog>` |
29
- | draggable | `boolean` | `true` | 否 | 弹窗是否可拖拽 | `<Dialog v-model="visible" :draggable="false"></Dialog>` |
30
- | mode | `"destroy" | "hide"` | `"hide"` | 否 | 指定主体元素在关闭状态下的渲染方式 | `<Dialog v-model="visible" mode="destroy"></Dialog>` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `boolean` | `false` | 否 | 弹窗是否展示,可用v-model双向绑定 | - | `<Dialog v-model="visible">` |
18
+ | title | `string` | `"提示"` | 否 | 弹窗标题 | - | `<Dialog v-model="visible" title="确认操作">` |
19
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 弹窗尺寸 | - | `<Dialog v-model="visible" size="small">` |
20
+ | width | `number | string` | `undefined` | 否 | 指定弹窗宽度,number类型时单位为px,string类型需要指定单位 | - | `<Dialog v-model="visible" :width="800">` |
21
+ | loading | `boolean` | `false` | 否 | "确定"按钮是否为加载状态 | - | `<Dialog v-model="visible" :loading="isSubmitting">` |
22
+ | disabledOk | `boolean` | `false` | 否 | "确定"按钮是否为禁用状态 | - | `<Dialog v-model="visible" :disabledOk="!isValid">` |
23
+ | okText | `string` | `"确定"` | 否 | "确定"按钮文案 | - | `<Dialog v-model="visible" okText="保存">` |
24
+ | cancelText | `string` | `"取消"` | 否 | "取消"按钮文案 | - | `<Dialog v-model="visible" cancelText="放弃">` |
25
+ | ok | `() => void` | `undefined` | 否 | "确定"按钮点击后自定义回调函数 | - | `<Dialog v-model="visible" :ok="handleOk">` |
26
+ | cancel | `() => void` | `undefined` | 否 | "取消"按钮点击后自定义回调函数 | - | `<Dialog v-model="visible" :cancel="handleCancel">` |
27
+ | container | `string | ((parentDom: Element, anchor: Node | null) => Element)` | `undefined` | 否 | 指定弹窗插入的位置,默认追加到 body | - | `<Dialog v-model="visible" :container="() => document.body">` |
28
+ | overlay | `boolean` | `true` | 否 | 是否展示遮罩层 | - | `<Dialog v-model="visible" :overlay="false">` |
29
+ | closable | `boolean` | `true` | 否 | 点击遮罩层是否可以关闭弹窗 | - | `<Dialog v-model="visible" :closable="false">` |
30
+ | terminate | `() => void` | `undefined` | 否 | 用户点击关闭按钮、遮罩层或按 ESC 键时的回调函数 | - | `<Dialog v-model="visible" :terminate="handleTerminate">` |
31
+ | escClosable | `boolean` | `true` | 否 | 是否按ESC键关闭弹窗 | - | `<Dialog v-model="visible" :escClosable="false">` |
32
+ | hideClose | `boolean` | `false` | 否 | 是否隐藏右上角关闭按钮 | - | `<Dialog v-model="visible" hideClose>` |
33
+ | draggable | `boolean` | `true` | 否 | 弹窗是否可拖拽 | - | `<Dialog v-model="visible" :draggable="false">` |
34
+ | mode | `"destroy" | "hide"` | `"hide"` | 否 | 指定主体元素在关闭状态下的渲染方式 | - | `<Dialog v-model="visible" mode="destroy">` |
31
35
 
32
36
  ## 事件 (Events)
33
37
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
34
38
  | --- | --- | --- | --- | --- |
35
- | open | `@open` | 弹窗打开后触发 | `-` | `<Dialog v-model="visible" @open="handleOpen"></Dialog>` |
36
- | close | `@close` | 弹窗关闭后触发,不管是什么原因导致的关闭 | `-` | `<Dialog v-model="visible" @close="handleClose"></Dialog>` |
37
- | ok | `@ok` | 点击确定按钮时触发 | `-` | `<Dialog v-model="visible" @ok="handleOk"></Dialog>` |
38
- | cancel | `@cancel` | 点击取消按钮时触发 | `-` | `<Dialog v-model="visible" @cancel="handleCancel"></Dialog>` |
39
- | terminate | `@terminate` | 用户强行关闭弹窗时触发:点击关闭按钮、点击遮罩层、按ESC键 | `-` | `<Dialog v-model="visible" @terminate="handleTerminate"></Dialog>` |
40
- | afterClose | `@after-close` | 弹窗退出动画执行完成后触发 | `-` | `<Dialog v-model="visible" @after-close="handleAfterClose"></Dialog>` |
41
-
42
- ### 事件处理函数示例
43
- **open**:
44
- ```typescript
45
- const handleOpen = () => {
46
- console.log('弹窗已打开');
47
- };
48
- ```
49
-
50
- **close**:
51
- ```typescript
52
- const handleClose = () => {
53
- console.log('弹窗已关闭');
54
- };
55
- ```
56
-
57
- **ok**:
58
- ```typescript
59
- const handleOk = () => {
60
- // 处理确定逻辑
61
- visible.value = false;
62
- };
63
- ```
64
-
65
- **cancel**:
66
- ```typescript
67
- const handleCancel = () => {
68
- visible.value = false;
69
- };
70
- ```
71
-
72
- **terminate**:
73
- ```typescript
74
- const handleTerminate = () => {
75
- console.log('用户强行关闭了弹窗');
76
- };
77
- ```
78
-
79
- **afterClose**:
80
- ```typescript
81
- const handleAfterClose = () => {
82
- // 动画完成后清理
83
- };
84
- ```
39
+ | open | `@open` | 弹窗打开后触发 | `-` | `<Dialog v-model="visible" @open="handleOpen">` |
40
+ | close | `@close` | 弹窗关闭后触发,不管是什么原因导致的关闭 | `-` | `<Dialog v-model="visible" @close="handleClose">` |
41
+ | ok | `@ok` | 点击确定按钮时触发 | `-` | `<Dialog v-model="visible" @ok="handleOk">` |
42
+ | cancel | `@cancel` | 点击取消按钮时触发 | `-` | `<Dialog v-model="visible" @cancel="handleCancel">` |
43
+ | terminate | `@terminate` | 用户强行关闭弹窗时触发:点击关闭按钮、点击遮罩层、按ESC键 | `-` | `<Dialog v-model="visible" @terminate="handleTerminate">` |
44
+ | afterClose | `@after-close` | 弹窗退出动画执行完成后触发 | `-` | `<Dialog v-model="visible" @after-close="handleAfterClose">` |
85
45
 
86
46
  ## 插槽 (Slots)
87
47
  | 插槽名 | 说明 | 模板写法 | 示例 |
88
48
  | --- | --- | --- | --- |
89
- | content | 定义整个弹窗体,包括header,body,footer | `#content` | `<Dialog v-model="visible">
90
- <template #content>
91
- <!-- 完全自定义弹窗结构 -->
92
- </template>
49
+ | default | 弹窗主体内容(body区域) | `默认插槽` | `<Dialog v-model="visible">
50
+ <p>弹窗内容</p>
93
51
  </Dialog>` |
94
52
  | header | 扩展弹窗头部 | `#header` | `<Dialog v-model="visible">
95
53
  <template #header>
96
54
  <h2>自定义头部</h2>
97
55
  </template>
98
56
  </Dialog>` |
99
- | body | 扩展弹窗主体部分 | `#body` | - |
100
- | footer | 扩展弹窗底部 | `#footer` | `<Dialog v-model="visible">
57
+ | footer | 扩展弹窗底部按钮区域 | `#footer` | `<Dialog v-model="visible">
101
58
  <template #footer>
102
59
  <Button @click="visible = false">关闭</Button>
103
60
  <Button type="primary" @click="handleSubmit">提交</Button>
104
61
  </template>
105
62
  </Dialog>` |
106
- | footerWrapper | 扩展弹窗整个底部,上述footer是它下面一个子扩展点 | `#footerWrapper` | - |
63
+ | content | 定义整个弹窗体,包括header、body、footer | `#content` | `<Dialog v-model="visible">
64
+ <template #content>
65
+ <!-- 完全自定义弹窗结构 -->
66
+ </template>
67
+ </Dialog>` |
107
68
 
108
69
  ## 方法 (Methods)
109
70
  | 方法名 | 说明 | 参数 | 返回值 |
110
71
  | --- | --- | --- | --- |
111
- | show | 弹出弹窗 | `` | `Promise` |
112
- | close | 关闭弹窗 | `` | `void` |
113
- | showLoading | "确定"按钮变为加载状态 | `` | `void` |
114
- | hideLoading | "确定"按钮变为正常状态 | `` | `void` |
72
+ | show | 弹出弹窗 | `props?: DialogProps` | `Promise` |
73
+ | close | 关闭弹窗 | `-` | `void` |
74
+ | showLoading | "确定"按钮变为加载状态 | `-` | `void` |
75
+ | hideLoading | "确定"按钮变为正常状态 | `-` | `void` |
76
+
77
+ ### 方法参数说明
78
+ **show**
79
+
80
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
81
+ | --- | --- | --- | --- | --- |
82
+ | props | `DialogProps` | 否 | - | 可选的临时弹窗配置,会在本次显示时覆盖标题、按钮文案或宽度等属性。 |
115
83
 
116
84
  ## 常见错误与正确用法 (Anti-Hallucination)
85
+ ### 静态方法调用时未正确导入Dialog
117
86
  > **错误用法**: `import { confirm } from '@king-design/vue';
118
87
  confirm({ title: '确认' });`
119
88
  > **正确写法**: `import { Dialog } from '@king-design/vue';
120
89
  Dialog.confirm({ title: '确认' });`
121
90
  > **说明**: confirm、success、warning、error是Dialog的静态方法,需要通过Dialog.xxx()调用
122
91
 
92
+ ### @ok事件中未关闭弹窗
123
93
  > **错误用法**: `const handleOk = () => {
124
94
  // 只处理业务逻辑,忘记关闭弹窗
125
95
  submitData();
@@ -130,6 +100,7 @@ Dialog.confirm({ title: '确认' });`
130
100
  };`
131
101
  > **说明**: 使用@ok事件时,弹窗不会自动关闭,需要在处理函数中手动设置visible为false
132
102
 
103
+ ### v-model语法错误
133
104
  > **错误用法**: `<Dialog :value="visible" @update:value="visible = $event">`
134
105
  > **正确写法**: `<Dialog v-model="visible">`
135
106
  > **说明**: Vue 3中应使用v-model语法糖,不需要手动拆分:value和@update:value
@@ -12,13 +12,13 @@ import { Divider } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | borderType | `"solid" | "dashed" | "dotted" | "double"` | `"solid"` | 否 | 定义线的类型 | `<Divider borderType="dashed">虚线</Divider>` |
18
- | position | `"left" | "right" | "center"` | `"center"` | 否 | 定义文字位置 | `<Divider position="left">左侧文字</Divider>` |
19
- | type | `"vertical" | "horizontal"` | `"vertical"` | 否 | 定义排列方式(水平或垂直)。注意:'horizontal' 用于创建垂直分割线(水平排列),'vertical' 用于创建水平分割线(垂直排列)。 | `<Divider type="horizontal" />` |
20
- | theme | `"light" | "dark"` | `"light"` | 否 | 定义主题,适用于深/浅色背景 | `<Divider theme="dark" />` |
21
- | margin | `"large" | "default" | "small" | "none" | number` | `"default"` | 否 | 定义Divider上下(或左右)外边距 | `<Divider margin="large" />` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | borderType | `"solid" | "dashed" | "dotted" | "double"` | `"solid"` | 否 | 定义线的类型 | - | `<Divider borderType="dashed">虚线</Divider>` |
18
+ | position | `"left" | "right" | "center"` | `"center"` | 否 | 定义文字位置 | - | `<Divider position="left">左侧文字</Divider>` |
19
+ | type | `"vertical" | "horizontal"` | `"vertical"` | 否 | 定义排列方式(水平或垂直)。注意:'horizontal' 用于创建垂直分割线(水平排列),'vertical' 用于创建水平分割线(垂直排列)。 | - | `<Divider type="horizontal" />` |
20
+ | theme | `"light" | "dark"` | `"light"` | 否 | 定义主题,适用于深/浅色背景 | - | `<Divider theme="dark" />` |
21
+ | margin | `"large" | "default" | "small" | "none" | number` | `"default"` | 否 | 定义Divider上下(或左右)外边距 | - | `<Divider margin="large" />` |
22
22
 
23
23
  ## 插槽 (Slots)
24
24
  | 插槽名 | 说明 | 模板写法 | 示例 |
@@ -26,10 +26,12 @@ import { Divider } from '@king-design/vue';
26
26
  | default | 分割线中间的文字内容 | `#default` | `<Divider>文字内容</Divider>` |
27
27
 
28
28
  ## 常见错误与正确用法 (Anti-Hallucination)
29
+ ### 混淆 vertical 和 horizontal 的含义
29
30
  > **错误用法**: `<Divider type="vertical" /> <!-- 想创建垂直分割线 -->`
30
31
  > **正确写法**: `<Divider type="horizontal" /> <!-- vertical是默认值(水平线),horizontal才是垂直线 -->`
31
32
  > **说明**: Divider 的 type 属性指的是排列方式。vertical 表示垂直排列(即上下分隔,产生水平线),horizontal 表示水平排列(即左右分隔,产生垂直线)。
32
33
 
34
+ ### 自定义 margin 时未使用动态绑定
33
35
  > **错误用法**: `<Divider margin="20" />`
34
36
  > **正确写法**: `<Divider :margin="20" />`
35
37
  > **说明**: 如果传入的是数字类型的 margin,需要使用 v-bind 语法 (:margin)。