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.
Files changed (327) hide show
  1. package/components/actions.json +109 -0
  2. package/components/advancedset.json +128 -0
  3. package/components/affix.json +8 -0
  4. package/components/aksk.json +172 -0
  5. package/components/anchor.json +220 -0
  6. package/components/anchorlink.json +111 -0
  7. package/components/az.json +15 -2
  8. package/components/badge.json +8 -0
  9. package/components/billtypes.json +14 -2
  10. package/components/breadcrumb.json +9 -1
  11. package/components/button.json +192 -0
  12. package/components/buttonlink.json +74 -0
  13. package/components/card.json +14 -4
  14. package/components/cardcol.json +142 -0
  15. package/components/cardcols.json +121 -0
  16. package/components/cardcontent.json +20 -3
  17. package/components/cardtabs.json +172 -0
  18. package/components/carousel.json +7 -0
  19. package/components/cascader.json +576 -368
  20. package/components/checkbox.json +51 -4
  21. package/components/cidrinput.json +140 -0
  22. package/components/code.json +8 -1
  23. package/components/collapse.json +335 -341
  24. package/components/colorpicker.json +217 -0
  25. package/components/configprovider.json +96 -0
  26. package/components/copy.json +7 -0
  27. package/components/copyhover.json +111 -0
  28. package/components/copyrow.json +125 -0
  29. package/components/datepicker.json +656 -524
  30. package/components/description.json +98 -0
  31. package/components/descriptions.json +10 -3
  32. package/components/diagram.json +295 -0
  33. package/components/dialog.json +526 -455
  34. package/components/divider.json +9 -1
  35. package/components/drawer.json +603 -558
  36. package/components/dropdown.json +464 -384
  37. package/components/duration.json +125 -0
  38. package/components/editable.json +66 -0
  39. package/components/ellipsis.json +34 -1
  40. package/components/filtertablefieldsdialog.json +128 -0
  41. package/components/flex.json +152 -0
  42. package/components/form.json +143 -3
  43. package/components/formiteminput.json +214 -0
  44. package/components/formitemspinner.json +213 -0
  45. package/components/formitemswitch.json +185 -0
  46. package/components/formitemtableconfigs.json +210 -0
  47. package/components/grid.json +7 -0
  48. package/components/header.json +165 -0
  49. package/components/icon.json +13 -1
  50. package/components/icontooltip.json +19 -1
  51. package/components/input.json +196 -8
  52. package/components/instancelist.json +194 -0
  53. package/components/instancenum.json +196 -0
  54. package/components/ipinput.json +117 -0
  55. package/components/kspstatus.json +205 -0
  56. package/components/kvcode.json +120 -0
  57. package/components/layoutcontent.json +24 -3
  58. package/components/layoutlistcontent.json +157 -0
  59. package/components/layoutpermissioncontent.json +156 -0
  60. package/components/layoutstandardlist.json +276 -0
  61. package/components/layouttabs.json +168 -0
  62. package/components/lazymount.json +87 -0
  63. package/components/lazyteleport.json +119 -0
  64. package/components/menu.json +11 -3
  65. package/components/notification.json +351 -0
  66. package/components/pagination.json +12 -0
  67. package/components/paginationplus.json +30 -3
  68. package/components/password.json +121 -0
  69. package/components/popover.json +457 -437
  70. package/components/projects.json +129 -0
  71. package/components/protable.json +99 -8
  72. package/components/queuevisualrange.json +110 -0
  73. package/components/radio.json +82 -2
  74. package/components/rate.json +200 -0
  75. package/components/region.json +14 -2
  76. package/components/scrollselect.json +140 -0
  77. package/components/search.json +221 -0
  78. package/components/searchinput.json +132 -0
  79. package/components/searchitems.json +215 -0
  80. package/components/searchselect.json +195 -0
  81. package/components/select.json +749 -666
  82. package/components/sidebar.json +198 -0
  83. package/components/skeleton.json +234 -0
  84. package/components/slider.json +12 -2
  85. package/components/spin.json +10 -2
  86. package/components/spinner.json +419 -429
  87. package/components/split.json +263 -0
  88. package/components/sshkeys.json +138 -0
  89. package/components/status.json +60 -3
  90. package/components/steps.json +7 -0
  91. package/components/switch.json +12 -3
  92. package/components/table.json +24 -2
  93. package/components/tablecolumnid.json +14 -2
  94. package/components/tabs.json +14 -2
  95. package/components/tag.json +8 -5
  96. package/components/timeline.json +215 -0
  97. package/components/timepicker.json +147 -3
  98. package/components/timerange.json +262 -0
  99. package/components/tip.json +27 -0
  100. package/components/tooltip.json +492 -395
  101. package/components/tour.json +418 -372
  102. package/components/transfer.json +79 -8
  103. package/components/tree.json +28 -5
  104. package/components/treeselect.json +612 -475
  105. package/components/upload.json +474 -473
  106. package/components/vdialog.json +309 -0
  107. package/components/vdrawer.json +335 -0
  108. package/components/virtuallist.json +7 -0
  109. package/dist/ast/index.d.mts +65 -2
  110. package/dist/ast/index.d.ts +65 -2
  111. package/dist/ast/index.js +4 -3
  112. package/dist/ast/index.mjs +2 -1
  113. package/dist/chunk-4OTQAQ6J.mjs +341 -0
  114. package/dist/{chunk-F26GUCGG.js → chunk-4WXOYU2N.js} +32 -9
  115. package/dist/chunk-6HOIRUQB.mjs +409 -0
  116. package/dist/chunk-DHLWNT53.js +364 -0
  117. package/dist/{chunk-H2ET6MMM.mjs → chunk-IPJJMPOO.mjs} +155 -66
  118. package/dist/{chunk-WYSRJVX4.js → chunk-JJ6AB4ZH.js} +2 -2
  119. package/dist/{chunk-2W6OCG2S.js → chunk-JNRGUR3O.js} +155 -67
  120. package/dist/chunk-KF5YBEM5.js +143 -0
  121. package/dist/{chunk-OJOHB64C.mjs → chunk-LRTDTFFQ.mjs} +28 -5
  122. package/dist/{chunk-DSWKLUIX.mjs → chunk-NZL6T22V.mjs} +1 -1
  123. package/dist/chunk-QC6VTSA3.mjs +117 -0
  124. package/dist/chunk-V5N65MRP.js +411 -0
  125. package/dist/full/index.d.mts +2 -0
  126. package/dist/full/index.d.ts +2 -0
  127. package/dist/full/index.js +7 -6
  128. package/dist/full/index.mjs +5 -4
  129. package/dist/index.d.mts +1 -0
  130. package/dist/index.d.ts +1 -0
  131. package/dist/index.js +14 -13
  132. package/dist/index.mjs +6 -5
  133. package/dist/metadata/index.d.mts +38 -3
  134. package/dist/metadata/index.d.ts +38 -3
  135. package/dist/metadata/index.js +26 -16
  136. package/dist/metadata/index.mjs +26 -15
  137. package/dist/resolve-BsLBxlBi.d.mts +24 -0
  138. package/dist/resolve-BsLBxlBi.d.ts +24 -0
  139. package/dist/runtime/index.d.mts +2 -0
  140. package/dist/runtime/index.d.ts +2 -0
  141. package/dist/runtime/index.js +4 -4
  142. package/dist/runtime/index.mjs +2 -2
  143. package/dist/shared/index.d.mts +10 -0
  144. package/dist/shared/index.d.ts +10 -0
  145. package/dist/shared/index.js +23 -0
  146. package/dist/shared/index.mjs +2 -0
  147. package/dist/static/index.js +5 -5
  148. package/dist/static/index.mjs +2 -2
  149. package/docs_for_llm/actions.doc.md +87 -0
  150. package/docs_for_llm/advancedset.doc.md +98 -0
  151. package/docs_for_llm/affix.doc.md +20 -7
  152. package/docs_for_llm/aksk.doc.md +111 -0
  153. package/docs_for_llm/anchor.doc.md +155 -0
  154. package/docs_for_llm/anchorlink.doc.md +75 -0
  155. package/docs_for_llm/az.doc.md +17 -11
  156. package/docs_for_llm/badge.doc.md +11 -5
  157. package/docs_for_llm/billtypes.doc.md +17 -11
  158. package/docs_for_llm/breadcrumb.doc.md +80 -4
  159. package/docs_for_llm/button.doc.md +91 -18
  160. package/docs_for_llm/buttonlink.doc.md +64 -0
  161. package/docs_for_llm/card.doc.md +58 -8
  162. package/docs_for_llm/cardcol.doc.md +78 -0
  163. package/docs_for_llm/cardcols.doc.md +84 -0
  164. package/docs_for_llm/cardcontent.doc.md +31 -10
  165. package/docs_for_llm/cardtabs.doc.md +106 -0
  166. package/docs_for_llm/carousel.doc.md +79 -7
  167. package/docs_for_llm/cascader.doc.md +106 -23
  168. package/docs_for_llm/checkbox.doc.md +25 -13
  169. package/docs_for_llm/cidrinput.doc.md +83 -0
  170. package/docs_for_llm/code.doc.md +22 -11
  171. package/docs_for_llm/collapse.doc.md +147 -14
  172. package/docs_for_llm/colorpicker.doc.md +104 -0
  173. package/docs_for_llm/configprovider.doc.md +77 -0
  174. package/docs_for_llm/copy.doc.md +15 -13
  175. package/docs_for_llm/copyhover.doc.md +59 -0
  176. package/docs_for_llm/copyrow.doc.md +80 -0
  177. package/docs_for_llm/datepicker.doc.md +66 -35
  178. package/docs_for_llm/description.doc.md +75 -0
  179. package/docs_for_llm/descriptions.doc.md +122 -10
  180. package/docs_for_llm/diagram.doc.md +343 -0
  181. package/docs_for_llm/dialog.doc.md +97 -77
  182. package/docs_for_llm/divider.doc.md +14 -7
  183. package/docs_for_llm/drawer.doc.md +114 -69
  184. package/docs_for_llm/dropdown.doc.md +290 -22
  185. package/docs_for_llm/duration.doc.md +76 -0
  186. package/docs_for_llm/editable.doc.md +36 -14
  187. package/docs_for_llm/ellipsis.doc.md +10 -5
  188. package/docs_for_llm/filtertablefieldsdialog.doc.md +99 -0
  189. package/docs_for_llm/flex.doc.md +83 -0
  190. package/docs_for_llm/form.doc.md +196 -18
  191. package/docs_for_llm/formiteminput.doc.md +128 -0
  192. package/docs_for_llm/formitemspinner.doc.md +105 -0
  193. package/docs_for_llm/formitemswitch.doc.md +113 -0
  194. package/docs_for_llm/formitemtableconfigs.doc.md +95 -0
  195. package/docs_for_llm/grid.doc.md +78 -5
  196. package/docs_for_llm/header.doc.md +114 -0
  197. package/docs_for_llm/icon.doc.md +12 -8
  198. package/docs_for_llm/icontooltip.doc.md +121 -0
  199. package/docs_for_llm/input.doc.md +199 -41
  200. package/docs_for_llm/instancelist.doc.md +113 -0
  201. package/docs_for_llm/instancenum.doc.md +95 -0
  202. package/docs_for_llm/ipinput.doc.md +77 -0
  203. package/docs_for_llm/kspstatus.doc.md +82 -0
  204. package/docs_for_llm/kvcode.doc.md +76 -0
  205. package/docs_for_llm/layoutcontent.doc.md +54 -17
  206. package/docs_for_llm/layoutlistcontent.doc.md +168 -0
  207. package/docs_for_llm/layoutpermissioncontent.doc.md +93 -0
  208. package/docs_for_llm/layoutstandardlist.doc.md +129 -0
  209. package/docs_for_llm/layouttabs.doc.md +101 -0
  210. package/docs_for_llm/lazymount.doc.md +82 -0
  211. package/docs_for_llm/lazyteleport.doc.md +85 -0
  212. package/docs_for_llm/menu.doc.md +139 -14
  213. package/docs_for_llm/message.doc.md +93 -10
  214. package/docs_for_llm/notification.doc.md +214 -0
  215. package/docs_for_llm/pagination.doc.md +30 -17
  216. package/docs_for_llm/paginationplus.doc.md +31 -10
  217. package/docs_for_llm/password.doc.md +86 -0
  218. package/docs_for_llm/popover.doc.md +24 -55
  219. package/docs_for_llm/progress.doc.md +13 -10
  220. package/docs_for_llm/projects.doc.md +91 -0
  221. package/docs_for_llm/protable.doc.md +98 -15
  222. package/docs_for_llm/queuevisualrange.doc.md +78 -0
  223. package/docs_for_llm/radio.doc.md +23 -8
  224. package/docs_for_llm/rate.doc.md +127 -0
  225. package/docs_for_llm/region.doc.md +25 -13
  226. package/docs_for_llm/scrollselect.doc.md +90 -0
  227. package/docs_for_llm/search.doc.md +120 -0
  228. package/docs_for_llm/searchinput.doc.md +111 -0
  229. package/docs_for_llm/searchitems.doc.md +116 -0
  230. package/docs_for_llm/searchselect.doc.md +126 -0
  231. package/docs_for_llm/select.doc.md +208 -49
  232. package/docs_for_llm/sidebar.doc.md +133 -0
  233. package/docs_for_llm/skeleton.doc.md +152 -0
  234. package/docs_for_llm/slider.doc.md +42 -22
  235. package/docs_for_llm/spin.doc.md +18 -6
  236. package/docs_for_llm/spinner.doc.md +28 -18
  237. package/docs_for_llm/split.doc.md +170 -0
  238. package/docs_for_llm/sshkeys.doc.md +88 -0
  239. package/docs_for_llm/status.doc.md +14 -9
  240. package/docs_for_llm/steps.doc.md +81 -7
  241. package/docs_for_llm/switch.doc.md +32 -16
  242. package/docs_for_llm/table.doc.md +317 -55
  243. package/docs_for_llm/tablecolumnid.doc.md +36 -16
  244. package/docs_for_llm/tabs.doc.md +117 -12
  245. package/docs_for_llm/tag.doc.md +167 -15
  246. package/docs_for_llm/timeline.doc.md +187 -0
  247. package/docs_for_llm/timepicker.doc.md +74 -36
  248. package/docs_for_llm/timerange.doc.md +157 -0
  249. package/docs_for_llm/tip.doc.md +50 -11
  250. package/docs_for_llm/tooltip.doc.md +99 -27
  251. package/docs_for_llm/tour.doc.md +125 -28
  252. package/docs_for_llm/transfer.doc.md +99 -33
  253. package/docs_for_llm/tree.doc.md +129 -24
  254. package/docs_for_llm/treeselect.doc.md +101 -44
  255. package/docs_for_llm/upload.doc.md +63 -32
  256. package/docs_for_llm/useCRUD.doc.md +49 -0
  257. package/docs_for_llm/useCountdown.doc.md +43 -0
  258. package/docs_for_llm/useDetail.doc.md +48 -0
  259. package/docs_for_llm/useDialog.doc.md +46 -0
  260. package/docs_for_llm/useEntity.doc.md +45 -0
  261. package/docs_for_llm/useEventListener.doc.md +44 -0
  262. package/docs_for_llm/useFalseUntilTruthy.doc.md +41 -0
  263. package/docs_for_llm/useGetCopyAuthText.doc.md +35 -0
  264. package/docs_for_llm/useGetUserPermission.doc.md +43 -0
  265. package/docs_for_llm/useGroup.doc.md +48 -0
  266. package/docs_for_llm/useIdEntities.doc.md +48 -0
  267. package/docs_for_llm/useIdEntity.doc.md +103 -0
  268. package/docs_for_llm/useInterval.doc.md +43 -0
  269. package/docs_for_llm/useLayoutStandardList.doc.md +38 -0
  270. package/docs_for_llm/useMessage.doc.md +46 -0
  271. package/docs_for_llm/useModifyCache.doc.md +37 -0
  272. package/docs_for_llm/useOpenDialog.doc.md +41 -0
  273. package/docs_for_llm/usePagination.doc.md +60 -0
  274. package/docs_for_llm/usePersist.doc.md +54 -0
  275. package/docs_for_llm/usePoll.doc.md +41 -0
  276. package/docs_for_llm/useRoutePlus.doc.md +34 -0
  277. package/docs_for_llm/useRouterPlus.doc.md +34 -0
  278. package/docs_for_llm/useSearch.doc.md +68 -0
  279. package/docs_for_llm/useShell.doc.md +43 -0
  280. package/docs_for_llm/useSkip.doc.md +41 -0
  281. package/docs_for_llm/useStorageIdEntity.doc.md +46 -0
  282. package/docs_for_llm/useStore.doc.md +34 -0
  283. package/docs_for_llm/useTable.doc.md +57 -0
  284. package/docs_for_llm/useTableGroup.doc.md +47 -0
  285. package/docs_for_llm/useTableSort.doc.md +40 -0
  286. package/docs_for_llm/useToState.doc.md +112 -0
  287. package/docs_for_llm/useUser.doc.md +38 -0
  288. package/docs_for_llm/useValidForm.doc.md +41 -0
  289. package/docs_for_llm/vdialog.doc.md +154 -0
  290. package/docs_for_llm/vdrawer.doc.md +148 -0
  291. package/docs_for_llm/virtuallist.doc.md +157 -3
  292. package/hooks/useCRUD.json +61 -0
  293. package/hooks/useCountdown.json +49 -0
  294. package/hooks/useDetail.json +67 -0
  295. package/hooks/useDialog.json +49 -0
  296. package/hooks/useEntity.json +61 -0
  297. package/hooks/useEventListener.json +61 -0
  298. package/hooks/useFalseUntilTruthy.json +43 -0
  299. package/hooks/useGetCopyAuthText.json +36 -0
  300. package/hooks/useGetUserPermission.json +55 -0
  301. package/hooks/useGroup.json +49 -0
  302. package/hooks/useIdEntities.json +61 -0
  303. package/hooks/useInterval.json +55 -0
  304. package/hooks/useLayoutStandardList.json +36 -0
  305. package/hooks/useMessage.json +73 -0
  306. package/hooks/useModifyCache.json +36 -0
  307. package/hooks/useOpenDialog.json +43 -0
  308. package/hooks/usePagination.json +49 -0
  309. package/hooks/usePersist.json +61 -0
  310. package/hooks/usePoll.json +43 -0
  311. package/hooks/useRoutePlus.json +36 -0
  312. package/hooks/useRouterPlus.json +36 -0
  313. package/hooks/useSearch.json +56 -0
  314. package/hooks/useShell.json +49 -0
  315. package/hooks/useSkip.json +43 -0
  316. package/hooks/useStorageIdEntity.json +67 -0
  317. package/hooks/useStore.json +36 -0
  318. package/hooks/useTable.json +49 -0
  319. package/hooks/useTableGroup.json +43 -0
  320. package/hooks/useTableSort.json +43 -0
  321. package/hooks/useUser.json +36 -0
  322. package/hooks/useValidForm.json +43 -0
  323. package/package.json +14 -8
  324. package/dist/chunk-D3Y6FGWA.js +0 -153
  325. package/dist/chunk-HPAUCD5I.js +0 -156
  326. package/dist/chunk-L4DS3EXI.mjs +0 -133
  327. package/dist/chunk-NZ6TLWMD.mjs +0 -151
@@ -12,13 +12,13 @@ import { Message } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | content | `string | VNode` | `undefined` | 否 | 提示内容 | `Message.info({ content: '提示内容' })` |
18
- | duration | `number` | `5000` | 否 | 提示展示多长时间后自动关闭,传入 0 时不自动关闭,单位 ms | `Message.info('提示', 10000)` |
19
- | type | `"info" | "error" | "success" | "warning"` | `"info"` | 否 | 提示类型 | `Message.success('成功')` |
20
- | closable | `boolean` | `false` | 否 | 是否展示关闭按钮 | `Message.info({ content: '可关闭', closable: true })` |
21
- | hideIcon | `boolean` | `false` | 否 | 是否隐藏文字前面的图标 | `Message.info({ content: '无图标', hideIcon: true })` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | content | `string | VNode` | `undefined` | 否 | 提示内容 | - | `Message.info({ content: '提示内容' })` |
18
+ | duration | `number` | `5000` | 否 | 提示展示多长时间后自动关闭,传入 0 时不自动关闭,单位 ms | - | `Message.info('提示', 10000)` |
19
+ | type | `"info" | "error" | "success" | "warning"` | `"info"` | 否 | 提示类型 | - | `Message.success('成功')` |
20
+ | closable | `boolean` | `false` | 否 | 是否展示关闭按钮 | - | `Message.info({ content: '可关闭', closable: true })` |
21
+ | hideIcon | `boolean` | `false` | 否 | 是否隐藏文字前面的图标 | - | `Message.info({ content: '无图标', hideIcon: true })` |
22
22
 
23
23
  ## 方法 (Methods)
24
24
  | 方法名 | 说明 | 参数 | 返回值 |
@@ -28,17 +28,94 @@ import { Message } from '@king-design/vue';
28
28
  | warning | 显示警告提示消息 | `content: string | VNode | Partial<MessageProps>, duration: number` | `void` |
29
29
  | error | 显示错误提示消息 | `content: string | VNode | Partial<MessageProps>, duration: number` | `void` |
30
30
 
31
+ ### 方法参数说明
32
+ **info**
33
+
34
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
35
+ | --- | --- | --- | --- | --- |
36
+ | content | `string | VNode | Partial<MessageProps>` | 是 | - | 提示内容或配置对象 |
37
+ | duration | `number` | 是 | - | 可选,显示时长(ms) |
38
+
39
+ 调用示例:
40
+ ```typescript
41
+ Message.info('这是一条普通消息');
42
+ ```
43
+
44
+ **success**
45
+
46
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
47
+ | --- | --- | --- | --- | --- |
48
+ | content | `string | VNode | Partial<MessageProps>` | 是 | - | 提示内容或配置对象 |
49
+ | duration | `number` | 是 | - | 可选,显示时长(ms) |
50
+
51
+ 调用示例:
52
+ ```typescript
53
+ Message.success('操作成功');
54
+ ```
55
+
56
+ **warning**
57
+
58
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
59
+ | --- | --- | --- | --- | --- |
60
+ | content | `string | VNode | Partial<MessageProps>` | 是 | - | 提示内容或配置对象 |
61
+ | duration | `number` | 是 | - | 可选,显示时长(ms) |
62
+
63
+ 调用示例:
64
+ ```typescript
65
+ Message.warning('请注意');
66
+ ```
67
+
68
+ **error**
69
+
70
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
71
+ | --- | --- | --- | --- | --- |
72
+ | content | `string | VNode | Partial<MessageProps>` | 是 | - | 提示内容或配置对象 |
73
+ | duration | `number` | 是 | - | 可选,显示时长(ms) |
74
+
75
+ 调用示例:
76
+ ```typescript
77
+ Message.error('操作失败');
78
+ ```
79
+
80
+ ### 方法调用示例
81
+ **info**
82
+
83
+ ```typescript
84
+ Message.info('这是一条普通消息');
85
+ ```
86
+
87
+ **success**
88
+
89
+ ```typescript
90
+ Message.success('操作成功');
91
+ ```
92
+
93
+ **warning**
94
+
95
+ ```typescript
96
+ Message.warning('请注意');
97
+ ```
98
+
99
+ **error**
100
+
101
+ ```typescript
102
+ Message.error('操作失败');
103
+ ```
104
+
31
105
  ## 常见错误与正确用法 (Anti-Hallucination)
106
+ ### 未导入 Message 组件
32
107
  > **错误用法**: `Message.success('成功'); // ReferenceError: Message is not defined`
33
108
  > **正确写法**: `import { Message } from '@king-design/vue';
34
109
 
35
110
  Message.success('成功');`
36
111
  > **说明**: 使用 Message 前需要先从 @king-design/vue 导入
37
112
 
113
+ ### duration 使用字符串而非数字
38
114
  > **错误用法**: `Message.info('提示', '5000');`
39
115
  > **正确写法**: `Message.info('提示', 5000);`
40
116
  > **说明**: duration 必须是数字类型,单位是毫秒
41
117
 
118
+ ### 传入配置对象时忘记设置 content
42
119
  > **错误用法**: `Message.info({ duration: 10000 });`
43
120
  > **正确写法**: `Message.info({ content: '提示内容', duration: 10000 });`
44
121
  > **说明**: 使用配置对象时必须包含 content 属性
@@ -49,6 +126,8 @@ Message.success('成功');`
49
126
 
50
127
  基本的消息提示
51
128
 
129
+ **使用的 API**: 方法: info
130
+
52
131
  ```vue
53
132
  <script setup lang="ts">
54
133
  import { Button, Message } from '@king-design/vue';
@@ -67,6 +146,8 @@ const showMessage = () => {
67
146
 
68
147
  四种类型的消息提示
69
148
 
149
+ **使用的 API**: 方法: success, warning, error, info
150
+
70
151
  ```vue
71
152
  <script setup lang="ts">
72
153
  import { Button, Message } from '@king-design/vue';
@@ -89,7 +170,7 @@ const showInfo = () => Message.info('提示信息');
89
170
 
90
171
  设置消息显示时长
91
172
 
92
- **使用的 API**: 属性: duration
173
+ **使用的 API**: 属性: duration | 方法: info, warning
93
174
 
94
175
  ```vue
95
176
  <script setup lang="ts">
@@ -116,7 +197,7 @@ const showPermanent = () => {
116
197
 
117
198
  带关闭按钮的消息
118
199
 
119
- **使用的 API**: 属性: content, closable, duration
200
+ **使用的 API**: 属性: content, closable, duration | 方法: info
120
201
 
121
202
  ```vue
122
203
  <script setup lang="ts">
@@ -140,7 +221,7 @@ const showMessage = () => {
140
221
 
141
222
  不显示图标的消息
142
223
 
143
- **使用的 API**: 属性: content, hideIcon
224
+ **使用的 API**: 属性: content, hideIcon | 方法: success
144
225
 
145
226
  ```vue
146
227
  <script setup lang="ts">
@@ -163,6 +244,8 @@ const showMessage = () => {
163
244
 
164
245
  常见的 API 请求结果提示
165
246
 
247
+ **使用的 API**: 方法: success, error
248
+
166
249
  ```vue
167
250
  <script setup lang="ts">
168
251
  import { ref } from 'vue';
@@ -0,0 +1,214 @@
1
+ # 通知提醒 (Notification)
2
+
3
+ 全局通知组件,用于展示可停留、可关闭的系统级通知信息。支持不同语义类型、展示位置、自定义图标和点击回调,适合成功反馈、系统公告和后台异步任务提醒。
4
+
5
+ **关键词**: notification, 通知, 提醒, 全局通知, notice
6
+
7
+ **使用场景**: 系统公告提醒、异步任务完成通知、操作成功或失败反馈
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { Notification } from '@king-design/vue';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | title | `Children` | `undefined` | 否 | 通知标题内容 | - | `Notification.notice({ title: '部署完成' })` |
18
+ | content | `Children` | `undefined` | 否 | 通知正文内容 | - | `Notification.notice({ content: '实例已经创建成功' })` |
19
+ | duration | `number` | `5000` | 否 | 通知自动关闭时间,单位 ms;传入 0 表示不自动关闭 | - | `Notification.info({ title: '处理中', duration: 0 })` |
20
+ | type | `"info" | "error" | "success" | "warning" | ""` | `"info"` | 否 | 通知类型 | - | `Notification.success({ title: '发布成功' })` |
21
+ | closable | `boolean` | `true` | 否 | 是否显示关闭按钮 | - | `Notification.notice({ title: '系统公告', closable: false })` |
22
+ | icon | `string | VNode` | `undefined` | 否 | 自定义通知图标 | - | `Notification.notice({ title: '自定义图标', icon: 'k-icon-info' })` |
23
+ | position | `"topRight" | "topLeft" | "bottomRight" | "bottomLeft" | "top" | "bottom"` | `"topRight"` | 否 | 通知展示位置 | - | `Notification.info({ title: '左下角通知', position: 'bottomLeft' })` |
24
+ | className | `string` | `undefined` | 否 | 自定义通知根节点类名 | - | `Notification.notice({ title: '自定义样式', className: 'my-notification' })` |
25
+ | onClick | `(e: MouseEvent) => void` | `undefined` | 否 | 点击通知主体时触发的回调 | - | `Notification.notice({ title: '查看详情', onClick: () => console.log('clicked') })` |
26
+ | onClose | `() => void` | `undefined` | 否 | 通知关闭后触发的回调 | - | `Notification.notice({ title: '关闭回调', onClose: () => console.log('closed') })` |
27
+
28
+ ## 方法 (Methods)
29
+ | 方法名 | 说明 | 参数 | 返回值 |
30
+ | --- | --- | --- | --- |
31
+ | notice | 展示一条通知并返回唯一 ID | `props: Partial<NotificationProps>` | `number` |
32
+ | close | 关闭指定 ID 的通知 | `id: number` | `void` |
33
+ | info | 展示普通类型通知 | `props: Partial<NotificationProps>` | `number` |
34
+ | success | 展示成功类型通知 | `props: Partial<NotificationProps>` | `number` |
35
+ | warning | 展示警告类型通知 | `props: Partial<NotificationProps>` | `number` |
36
+ | error | 展示错误类型通知 | `props: Partial<NotificationProps>` | `number` |
37
+
38
+ ### 方法参数说明
39
+ **notice**
40
+
41
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
42
+ | --- | --- | --- | --- | --- |
43
+ | props | `Partial<NotificationProps>` | 是 | - | 通知配置对象 |
44
+
45
+ 调用示例:
46
+ ```typescript
47
+ const id = Notification.notice({ title: '部署完成', content: '实例已创建完成' });
48
+ ```
49
+
50
+ **close**
51
+
52
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
53
+ | --- | --- | --- | --- | --- |
54
+ | id | `number` | 是 | - | 由 notice 返回的通知 ID |
55
+
56
+ 调用示例:
57
+ ```typescript
58
+ Notification.close(id);
59
+ ```
60
+
61
+ **info**
62
+
63
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
64
+ | --- | --- | --- | --- | --- |
65
+ | props | `Partial<NotificationProps>` | 是 | - | 通知配置对象 |
66
+
67
+ 调用示例:
68
+ ```typescript
69
+ Notification.info({ title: '普通提醒', content: '这是一条信息通知' });
70
+ ```
71
+
72
+ **success**
73
+
74
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
75
+ | --- | --- | --- | --- | --- |
76
+ | props | `Partial<NotificationProps>` | 是 | - | 通知配置对象 |
77
+
78
+ 调用示例:
79
+ ```typescript
80
+ Notification.success({ title: '保存成功', content: '配置已更新' });
81
+ ```
82
+
83
+ **warning**
84
+
85
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
86
+ | --- | --- | --- | --- | --- |
87
+ | props | `Partial<NotificationProps>` | 是 | - | 通知配置对象 |
88
+
89
+ 调用示例:
90
+ ```typescript
91
+ Notification.warning({ title: '余额不足', content: '请尽快续费' });
92
+ ```
93
+
94
+ **error**
95
+
96
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
97
+ | --- | --- | --- | --- | --- |
98
+ | props | `Partial<NotificationProps>` | 是 | - | 通知配置对象 |
99
+
100
+ 调用示例:
101
+ ```typescript
102
+ Notification.error({ title: '提交失败', content: '请稍后重试' });
103
+ ```
104
+
105
+ ### 方法调用示例
106
+ **notice**
107
+
108
+ ```typescript
109
+ const id = Notification.notice({ title: '部署完成', content: '实例已创建完成' });
110
+ ```
111
+
112
+ **close**
113
+
114
+ ```typescript
115
+ Notification.close(id);
116
+ ```
117
+
118
+ **info**
119
+
120
+ ```typescript
121
+ Notification.info({ title: '普通提醒', content: '这是一条信息通知' });
122
+ ```
123
+
124
+ **success**
125
+
126
+ ```typescript
127
+ Notification.success({ title: '保存成功', content: '配置已更新' });
128
+ ```
129
+
130
+ **warning**
131
+
132
+ ```typescript
133
+ Notification.warning({ title: '余额不足', content: '请尽快续费' });
134
+ ```
135
+
136
+ **error**
137
+
138
+ ```typescript
139
+ Notification.error({ title: '提交失败', content: '请稍后重试' });
140
+ ```
141
+
142
+ ## 使用示例
143
+ ### 基础通知
144
+ **场景**: 在页面操作完成后展示全局反馈。
145
+
146
+ 点击按钮展示基础通知。
147
+
148
+ **使用的 API**: 方法: notice
149
+
150
+ ```vue
151
+ <script setup lang="ts">
152
+ import { Button, Notification } from '@king-design/vue';
153
+
154
+ const openNotification = () => {
155
+ Notification.notice({
156
+ title: 'Hello, King Design',
157
+ content: '这是一条基础通知',
158
+ });
159
+ };
160
+ </script>
161
+ <template>
162
+ <Button @click="openNotification">打开通知</Button>
163
+ </template>
164
+ ```
165
+
166
+ ### 不同类型
167
+ **场景**: 根据业务结果展示不同语义反馈。
168
+
169
+ 按语义展示不同类型的通知。
170
+
171
+ **使用的 API**: 属性: type | 方法: info, success, warning, error
172
+
173
+ ```vue
174
+ <script setup lang="ts">
175
+ import { Button, Notification } from '@king-design/vue';
176
+ </script>
177
+ <template>
178
+ <div style="display: flex; gap: 8px; flex-wrap: wrap;">
179
+ <Button @click="Notification.info({ title: '普通提醒', content: '这是一条信息通知' })">Info</Button>
180
+ <Button @click="Notification.success({ title: '发布成功', content: '版本已上线' })">Success</Button>
181
+ <Button @click="Notification.warning({ title: '容量不足', content: '请及时清理磁盘' })">Warning</Button>
182
+ <Button @click="Notification.error({ title: '同步失败', content: '网络连接异常' })">Error</Button>
183
+ </div>
184
+ </template>
185
+ ```
186
+
187
+ ### 位置与常驻
188
+ **场景**: 展示需要用户明确感知和手动关闭的通知。
189
+
190
+ 控制通知位置并让通知常驻直到手动关闭。
191
+
192
+ **使用的 API**: 属性: position, duration | 方法: notice
193
+
194
+ ```vue
195
+ <script setup lang="ts">
196
+ import { Button, Notification } from '@king-design/vue';
197
+
198
+ const openPinned = () => {
199
+ Notification.notice({
200
+ title: '系统公告',
201
+ content: '该通知位于底部且不会自动关闭',
202
+ position: 'bottom',
203
+ duration: 0,
204
+ });
205
+ };
206
+ </script>
207
+ <template>
208
+ <Button @click="openPinned">打开常驻通知</Button>
209
+ </template>
210
+ ```
211
+
212
+ ## 相关组件
213
+ Message, Dialog
214
+
@@ -12,29 +12,36 @@ import { Pagination } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | value | `number` | `1` | 否 | 当前页码,可用 v-model 双向绑定 | `<Pagination v-model="currentPage" :total="100" />` |
18
- | total | `number` | `0` | 否 | 数据总条数 | `<Pagination :total="1000" />` |
19
- | limit | `number` | `10` | 否 | 每页条数,可用 v-model:limit 双向绑定 | `<Pagination v-model:limit="pageSize" :total="100" />` |
20
- | limits | `Array<number>` | `[10, 20, 50]` | 否 | 可选的每页条数列表 | `<Pagination :limits="[20, 50, 100, 200]" :total="1000" />` |
21
- | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | `<Pagination size="small" :total="100" />` |
22
- | counts | `number` | `7` | 否 | 展示的页码按钮个数 | `<Pagination :counts="5" :total="100" />` |
23
- | flat | `boolean` | `false` | 否 | 是否展示无边框样式 | `<Pagination flat :total="100" />` |
24
- | simple | `boolean` | `false` | 否 | 是否展示简洁样式 | `<Pagination simple :total="100" />` |
25
- | showTotal | `boolean` | `true` | 否 | 是否显示总条数 | `<Pagination :showTotal="false" :total="100" />` |
26
- | showGoto | `boolean` | `false` | 否 | 是否显示快速跳转框 | `<Pagination showGoto :total="100" />` |
27
- | showLimits | `boolean` | `true` | 否 | 是否显示每页条数选择框 | `<Pagination :showLimits="false" :total="100" />` |
28
- | disableBtn | `(page: number, limit: number) => boolean` | `undefined` | 否 | 禁用页码按钮的函数,"上一页""下一页"按钮依然可点 | `<Pagination :disableBtn="(page) => page > 10" :total="200" /></Pagination>` |
29
- | disablePage | `(page: number, limit: number) => boolean` | `undefined` | 否 | 同时禁用页码按钮和"上一页""下一页"按钮的函数 | `<Pagination :disablePage="(page) => page > 10" :total="200" /></Pagination>` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `number` | `1` | 否 | 当前页码,可用 v-model 双向绑定 | - | `<Pagination v-model="currentPage" :total="100" />` |
18
+ | total | `number` | `0` | 否 | 数据总条数 | - | `<Pagination :total="1000" />` |
19
+ | limit | `number` | `10` | 否 | 每页条数,可用 v-model:limit 双向绑定 | - | `<Pagination v-model:limit="pageSize" :total="100" />` |
20
+ | limits | `Array<number>` | `[10, 20, 50]` | 否 | 可选的每页条数列表 | - | `<Pagination :limits="[20, 50, 100, 200]" :total="1000" />` |
21
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | - | `<Pagination size="small" :total="100" />` |
22
+ | counts | `number` | `7` | 否 | 展示的页码按钮个数 | - | `<Pagination :counts="5" :total="100" />` |
23
+ | flat | `boolean` | `false` | 否 | 是否展示无边框样式 | - | `<Pagination flat :total="100" />` |
24
+ | simple | `boolean` | `false` | 否 | 是否展示简洁样式 | - | `<Pagination simple :total="100" />` |
25
+ | showTotal | `boolean` | `true` | 否 | 是否显示总条数 | - | `<Pagination :showTotal="false" :total="100" />` |
26
+ | showGoto | `boolean` | `false` | 否 | 是否显示快速跳转框 | - | `<Pagination showGoto :total="100" />` |
27
+ | showLimits | `boolean` | `true` | 否 | 是否显示每页条数选择框 | - | `<Pagination :showLimits="false" :total="100" />` |
28
+ | disableBtn | `(page: number, limit: number) => boolean` | `undefined` | 否 | 禁用页码按钮的函数,"上一页""下一页"按钮依然可点 | - | `<Pagination :disableBtn="(page) => page > 10" :total="200" /></Pagination>` |
29
+ | disablePage | `(page: number, limit: number) => boolean` | `undefined` | 否 | 同时禁用页码按钮和"上一页""下一页"按钮的函数 | - | `<Pagination :disablePage="(page) => page > 10" :total="200" /></Pagination>` |
30
30
 
31
31
  ## 事件 (Events)
32
32
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
33
33
  | --- | --- | --- | --- | --- |
34
34
  | change | `@change` | value 和 limit 变化时触发,同时变化不会重复触发 | `value: number, limit: number` | `<Pagination @change="handleChange" :total="100" />` |
35
35
 
36
- ### 事件处理函数示例
37
- **change**:
36
+ ### 事件参数说明
37
+ **change**
38
+
39
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
40
+ | --- | --- | --- | --- | --- |
41
+ | value | `number` | 是 | - | 当前页码 |
42
+ | limit | `number` | 是 | - | 每页条数 |
43
+
44
+ 事件处理示例:
38
45
  ```typescript
39
46
  const handleChange = ({value, limit}: {value: number; limit: number}) => {
40
47
  console.log(`当前页: ${value}, 每页: ${limit}`);
@@ -43,26 +50,32 @@ const handleChange = ({value, limit}: {value: number; limit: number}) => {
43
50
  ```
44
51
 
45
52
  ## 常见错误与正确用法 (Anti-Hallucination)
53
+ ### 未设置 total 属性
46
54
  > **错误用法**: `<Pagination v-model="currentPage" />`
47
55
  > **正确写法**: `<Pagination v-model="currentPage" :total="100" />`
48
56
  > **说明**: 必须设置 total 属性来指定数据总条数,否则分页无法正确计算总页数
49
57
 
58
+ ### 使用不存在的 size 值 (Pagination)
50
59
  > **错误用法**: `<Pagination size="medium" :total="100" />`
51
60
  > **正确写法**: `<Pagination size="default" :total="100" />`
52
61
  > **说明**: Pagination 的 size 只支持 large, default, small, mini。常见错误是使用 medium 值。
53
62
 
63
+ ### limit 值不在 limits 列表中
54
64
  > **错误用法**: `<Pagination :limit="15" :limits="[10, 20, 50]" :total="100" />`
55
65
  > **正确写法**: `<Pagination :limit="10" :limits="[10, 20, 50]" :total="100" />`
56
66
  > **说明**: limit 的初始值应该在 limits 列表中,否则可能导致显示异常
57
67
 
68
+ ### change 事件参数解构错误
58
69
  > **错误用法**: `const handleChange = (value, limit) => {}`
59
70
  > **正确写法**: `const handleChange = ({value, limit}: {value: number; limit: number}) => {}`
60
71
  > **说明**: change 事件的参数是一个对象,需要解构获取 value 和 limit
61
72
 
73
+ ### 错误使用 Element UI 风格事件名
62
74
  > **错误用法**: `<Pagination @current-change="..." @size-change="..." />`
63
75
  > **正确写法**: `<Pagination @change="..." />`
64
76
  > **说明**: KPC Pagination 不支持 `@current-change` 或 `@size-change`,请统一使用 `@change` 事件监听页码或每页条数变化。
65
77
 
78
+ ### 建议使用 v-model 进行双向绑定
66
79
  > **错误用法**: `<Pagination :value="page" :limit="size" @change="..." />`
67
80
  > **正确写法**: `<Pagination v-model="page" v-model:limit="size" />`
68
81
  > **说明**: 推荐使用 `v-model` 绑定当前页码,`v-model:limit` 绑定每页条数,更加简洁。
@@ -2,9 +2,9 @@
2
2
 
3
3
  集成选中统计和操作的分页组件,继承自 Pagination。
4
4
 
5
- **关键词**: pagination, page, paging, 分页
5
+ **关键词**: pagination, page, paging, 分页, 增强分页, 选中统计分页, 列表底部分页
6
6
 
7
- **使用场景**: 列表页分页控制
7
+ **使用场景**: 列表页分页控制、批量勾选后的分页统计、带选中数量提示的资源列表分页
8
8
 
9
9
  ## 导入语句
10
10
  ```typescript
@@ -12,21 +12,42 @@ import { PaginationPlus } from '@ksyun-internal/versatile';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | modelValue | `number` | `undefined` | 否 | 当前页码 | - |
18
- | checkedKeys | `any[]` | `undefined` | 否 | 选中的行的 key 列表 | - |
19
- | checkedLength | `number` | `undefined` | 否 | 选中的总数量 | - |
20
- | showCheckedTotal | `boolean` | `true` | 否 | 是否显示选中统计信息 | - |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | total | `number` | `0` | 否 | 数据总条数 | `inherited:Pagination` | `<Pagination :total="1000" />` |
18
+ | limit | `number` | `10` | 否 | 每页条数,可用 v-model:limit 双向绑定 | `inherited:Pagination` | `<Pagination v-model:limit="pageSize" :total="100" />` |
19
+ | limits | `Array<number>` | `[10, 20, 50]` | 否 | 可选的每页条数列表 | `inherited:Pagination` | `<Pagination :limits="[20, 50, 100, 200]" :total="1000" />` |
20
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | `inherited:Pagination` | `<Pagination size="small" :total="100" />` |
21
+ | counts | `number` | `7` | 否 | 展示的页码按钮个数 | `inherited:Pagination` | `<Pagination :counts="5" :total="100" />` |
22
+ | flat | `boolean` | `false` | 否 | 是否展示无边框样式 | `inherited:Pagination` | `<Pagination flat :total="100" />` |
23
+ | simple | `boolean` | `false` | 否 | 是否展示简洁样式 | `inherited:Pagination` | `<Pagination simple :total="100" />` |
24
+ | showTotal | `boolean` | `true` | 否 | 是否显示总条数 | `inherited:Pagination` | `<Pagination :showTotal="false" :total="100" />` |
25
+ | showGoto | `boolean` | `false` | 否 | 是否显示快速跳转框 | `inherited:Pagination` | `<Pagination showGoto :total="100" />` |
26
+ | showLimits | `boolean` | `true` | 否 | 是否显示每页条数选择框 | `inherited:Pagination` | `<Pagination :showLimits="false" :total="100" />` |
27
+ | disableBtn | `(page: number, limit: number) => boolean` | `undefined` | 否 | 禁用页码按钮的函数,"上一页""下一页"按钮依然可点 | `inherited:Pagination` | `<Pagination :disableBtn="(page) => page > 10" :total="200" /></Pagination>` |
28
+ | disablePage | `(page: number, limit: number) => boolean` | `undefined` | 否 | 同时禁用页码按钮和"上一页""下一页"按钮的函数 | `inherited:Pagination` | `<Pagination :disablePage="(page) => page > 10" :total="200" /></Pagination>` |
29
+ | modelValue | `number` | `undefined` | 否 | 当前页码 | - | - |
30
+ | checkedKeys | `any[]` | `undefined` | 否 | 选中的行的 key 列表 | - | - |
31
+ | checkedLength | `number` | `undefined` | 否 | 选中的总数量 | - | - |
32
+ | showCheckedTotal | `boolean` | `true` | 否 | 是否显示选中统计信息 | - | - |
21
33
 
22
34
  ## 事件 (Events)
23
35
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
24
36
  | --- | --- | --- | --- | --- |
25
37
  | change | `change` | 页码或每页条数改变时触发 | `data: { page: number, limit: number }` | `<PaginationPlus @change="onChange" />` |
26
38
 
27
- ### 事件处理函数示例
28
- **change**:
39
+ ### 事件参数说明
40
+ **change**
41
+
42
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
43
+ | --- | --- | --- | --- | --- |
44
+ | data | `{ page: number, limit: number }` | 是 | - | 分页信息 |
45
+
46
+ 事件处理示例:
29
47
  ```typescript
30
48
  ({ page, limit }) => { params.page = page; }
31
49
  ```
32
50
 
51
+ ## 相关组件
52
+ Pagination, ProTable
53
+
@@ -0,0 +1,86 @@
1
+ # 密码输入 (Password)
2
+
3
+ 面向密码录入的业务输入组件,内置校验能力和错误提示展示,适合实例登录密码、数据库密码等安全场景。
4
+
5
+ **关键词**: password, password input, 密码输入, 密码校验, 数据库密码, 登录密码
6
+
7
+ **使用场景**: 账号凭证录入、新建实例密码配置、数据库密码复杂度校验
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { Password } from '@ksyun-internal/versatile';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | modelValue | `string` | `undefined` | 否 | 当前密码值 | - | - |
18
+ | validate | `string | Function` | `undefined` | 否 | 自定义校验函数或校验规则 | - | - |
19
+ | errorMessage | `string` | `undefined` | 否 | 校验失败时的错误提示文案 | - | - |
20
+
21
+ ## 事件 (Events)
22
+ | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
23
+ | --- | --- | --- | --- | --- |
24
+ | update:modelValue | `@update:modelValue` | 密码内容变化时触发,可与父级表单或强度校验逻辑联动。 | `value?: string` | - |
25
+
26
+ ### 事件参数说明
27
+ **update:modelValue**
28
+
29
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
30
+ | --- | --- | --- | --- | --- |
31
+ | value | `string` | 否 | - | 当前输入的密码值。 |
32
+
33
+ ## 使用示例
34
+ ### 实例登录密码录入
35
+ **场景**: 在创建实例或重置密码时录入并校验登录密码。
36
+
37
+ 结合 validate 和错误提示控制密码输入质量。
38
+
39
+ **使用的 API**: 属性: modelValue, validate, errorMessage | 事件: update:modelValue
40
+
41
+ ```vue
42
+ <script setup lang="ts">
43
+ import { ref } from 'vue';
44
+ import { Password } from '@ksyun-internal/versatile';
45
+
46
+ const password = ref('');
47
+ const validate = (value: string) => /^(?=.*[A-Z])(?=.*\d).{8,}$/.test(value);
48
+ </script>
49
+
50
+ <template>
51
+ <Password
52
+ v-model="password"
53
+ :validate="validate"
54
+ error-message="至少 8 位,且必须包含大写字母和数字"
55
+ />
56
+ </template>
57
+ ```
58
+
59
+ ### 数据库密码规则校验
60
+ **场景**: 在数据库创建页中校验更严格的密码复杂度要求。
61
+
62
+ 通过自定义规则约束数据库密码长度和复杂度。
63
+
64
+ **使用的 API**: 属性: modelValue, validate, errorMessage | 事件: update:modelValue
65
+
66
+ ```vue
67
+ <script setup lang="ts">
68
+ import { ref } from 'vue';
69
+ import { Password } from '@ksyun-internal/versatile';
70
+
71
+ const password = ref('');
72
+ const validate = (value: string) => value.length >= 12 && /[A-Z]/.test(value) && /\d/.test(value);
73
+ </script>
74
+
75
+ <template>
76
+ <Password
77
+ v-model="password"
78
+ :validate="validate"
79
+ error-message="至少 12 位,并包含大写字母和数字"
80
+ />
81
+ </template>
82
+ ```
83
+
84
+ ## 相关组件
85
+ Input
86
+