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
@@ -0,0 +1,88 @@
1
+ # SSH 密钥选择 (SSHKeys)
2
+
3
+ 用于拉取并选择 SSH 密钥的业务组件,适合实例创建、重置登录方式和批量授权等需要登录凭证选择的场景。
4
+
5
+ **关键词**: ssh keys, ssh key, SSH 密钥, 登录凭证, 密钥选择, ssh credential, 密钥下拉, linux 登录
6
+
7
+ **使用场景**: 实例创建 SSH 登录凭证选择、批量实例登录方式配置、禁用不合规密钥选项、选择后联动密钥实体信息
8
+
9
+ ## 导入语句
10
+ ```typescript
11
+ import { SSHKeys } from '@ksyun-internal/versatile';
12
+ ```
13
+
14
+ ## 属性 (Props)
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | modelValue | `string` | `undefined` | 否 | 当前选中的密钥 ID | - | - |
18
+ | href | `string` | `undefined` | 否 | 跳转到密钥管理页的链接 | - | - |
19
+ | disableOption | `any` | `undefined` | 否 | 禁用选项的配置或函数 | - | - |
20
+
21
+ ## 事件 (Events)
22
+ | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
23
+ | --- | --- | --- | --- | --- |
24
+ | update:modelValue | `@update:modelValue` | 所选 SSH 密钥 ID 变化时触发,可直接同步表单主值。 | `value?: string` | - |
25
+ | update:key | `@update:key` | 所选完整密钥对象变化时触发,便于读取密钥名称、指纹等信息。 | `value?: SSHKeyItem` | - |
26
+
27
+ ### 事件参数说明
28
+ **update:modelValue**
29
+
30
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
31
+ | --- | --- | --- | --- | --- |
32
+ | value | `string` | 否 | - | 当前选中的 SSH 密钥 ID。 |
33
+
34
+ **update:key**
35
+
36
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
37
+ | --- | --- | --- | --- | --- |
38
+ | value | `SSHKeyItem` | 否 | - | 当前选中的完整 SSH 密钥对象。 |
39
+
40
+ ## 使用示例
41
+ ### 创建实例时选择 SSH 密钥
42
+ **场景**: 在创建 Linux 实例时选择已有 SSH 密钥作为登录凭证。
43
+
44
+ 把 SSH 密钥选择作为登录方式的一部分。
45
+
46
+ **使用的 API**: 属性: modelValue, href | 事件: update:modelValue, update:key
47
+
48
+ ```vue
49
+ <script setup lang="ts">
50
+ import { ref } from 'vue';
51
+ import { SSHKeys } from '@ksyun-internal/versatile';
52
+
53
+ const keyId = ref('key-001');
54
+ </script>
55
+
56
+ <template>
57
+ <SSHKeys v-model="keyId" href="/ssh-key/list" />
58
+ </template>
59
+ ```
60
+
61
+ ### 禁用不合规的 SSH 密钥
62
+ **场景**: 在创建实例时禁用过期或不符合规范的 SSH 密钥。
63
+
64
+ 根据业务规则禁用部分密钥选项,避免被误选。
65
+
66
+ **使用的 API**: 属性: modelValue, href, disableOption | 事件: update:modelValue, update:key
67
+
68
+ ```vue
69
+ <script setup lang="ts">
70
+ import { ref } from 'vue';
71
+ import { SSHKeys } from '@ksyun-internal/versatile';
72
+
73
+ const keyId = ref('');
74
+ const disableOption = (item: { expired?: boolean }) => Boolean(item?.expired);
75
+ </script>
76
+
77
+ <template>
78
+ <SSHKeys
79
+ v-model="keyId"
80
+ href="/ssh-key/list"
81
+ :disable-option="disableOption"
82
+ />
83
+ </template>
84
+ ```
85
+
86
+ ## 相关组件
87
+ Projects
88
+
@@ -2,9 +2,9 @@
2
2
 
3
3
  显示状态图标和文本,支持旋转动画。
4
4
 
5
- **关键词**: status, indicator, loading, 状态
5
+ **关键词**: status, indicator, loading, 状态, 状态指示器, 加载状态, 进度状态
6
6
 
7
- **使用场景**: 表格行状态展示、详情页资源状态
7
+ **使用场景**: 表格行状态展示、详情页资源状态、带进度的任务状态展示、支持刷新动作的状态提示
8
8
 
9
9
  ## 导入语句
10
10
  ```typescript
@@ -12,11 +12,16 @@ import { Status } from '@ksyun-internal/versatile';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | type | `StatusType` | `undefined` | 否 | 状态类型 | - |
18
- | color | `string` | `undefined` | 否 | 自定义颜色 | - |
19
- | text | `string` | `undefined` | 否 | 状态文本 | - |
20
- | rotate | `boolean` | `undefined` | 否 | 是否旋转图标 | - |
21
- | refresh | `() => Promise<void>` | `undefined` | 否 | 刷新函数,传递此属性时会显示刷新按钮 | - |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | type | `StatusType` | `undefined` | 否 | 状态类型 | - | - |
18
+ | color | `string` | `undefined` | 否 | 自定义颜色 | - | - |
19
+ | text | `string` | `undefined` | 否 | 状态文本 | - | - |
20
+ | rotate | `boolean` | `undefined` | 否 | 是否旋转图标 | - | - |
21
+ | rotationDuration | `string | number` | `undefined` | 否 | 旋转动画时长,支持字符串或数字 | - | - |
22
+ | refresh | `() => Promise<void>` | `undefined` | 否 | 刷新函数,传递此属性时会显示刷新按钮 | - | - |
23
+ | tip | `string` | `undefined` | 否 | 状态说明提示文案 | - | - |
24
+ | progress | `number` | `undefined` | 否 | 进度值,传入后可展示带进度语义的状态 | - | - |
25
+ | refreshTip | `string` | `undefined` | 否 | 刷新按钮的 tooltip 文案 | - | - |
26
+ | position | `"left" | "right" | "top" | "bottom" | Options` | `undefined` | 否 | 状态提示或刷新按钮的弹出位置 | - | - |
22
27
 
@@ -12,13 +12,13 @@ import { Steps, Step } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | value | `number` | `undefined` | 否 | 当前第几步,从 0 开始,可用 v-model 双向绑定 | `<Steps :value="current"></Steps>` |
18
- | status | `"normal" | "error"` | `"normal"` | 否 | 步骤条的状态 | `<Steps status="error"></Steps>` |
19
- | type | `"default" | "line" | "simple" | "line-compact"` | `"default"` | 否 | 步骤条样式 | `<Steps type="line"></Steps>` |
20
- | clickable | `boolean` | `false` | 否 | 是否支持快速切换已完成的步骤 | `<Steps v-model="current" clickable></Steps>` |
21
- | vertical | `boolean` | `false` | 否 | 是否垂直排列 | `<Steps vertical></Steps>` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `number` | `undefined` | 否 | 当前第几步,从 0 开始,可用 v-model 双向绑定 | - | `<Steps :value="current"></Steps>` |
18
+ | status | `"normal" | "error"` | `"normal"` | 否 | 步骤条的状态 | - | `<Steps status="error"></Steps>` |
19
+ | type | `"default" | "line" | "simple" | "line-compact"` | `"default"` | 否 | 步骤条样式 | - | `<Steps type="line"></Steps>` |
20
+ | clickable | `boolean` | `false` | 否 | 是否支持快速切换已完成的步骤 | - | `<Steps v-model="current" clickable></Steps>` |
21
+ | vertical | `boolean` | `false` | 否 | 是否垂直排列 | - | `<Steps vertical></Steps>` |
22
22
 
23
23
  ## 子组件 (Sub-Components)
24
24
  ### Step
@@ -29,16 +29,19 @@ import { Steps, Step } from '@king-design/vue';
29
29
  | title | `string` | 步骤标题 | `<Step title="步骤1" />` |
30
30
 
31
31
  ## 常见错误与正确用法 (Anti-Hallucination)
32
+ ### value 从 1 开始而非 0
32
33
  > **错误用法**: `const current = ref(1); // 期望第一步
33
34
  <Steps :value="current">`
34
35
  > **正确写法**: `const current = ref(0); // 第一步
35
36
  <Steps :value="current">`
36
37
  > **说明**: Steps 的 value 从 0 开始,0 表示第一步
37
38
 
39
+ ### 使用 clickable 但未用 v-model
38
40
  > **错误用法**: `<Steps :value="current" clickable> <!-- 点击不会改变值 -->`
39
41
  > **正确写法**: `<Steps v-model="current" clickable>`
40
42
  > **说明**: 使用 clickable 时需要用 v-model 进行双向绑定才能响应点击
41
43
 
44
+ ### type 值拼写错误
42
45
  > **错误用法**: `<Steps type="compact">`
43
46
  > **正确写法**: `<Steps type="line-compact">`
44
47
  > **说明**: type 只支持 default, line, simple, line-compact
@@ -12,20 +12,20 @@ import { Switch } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | value | `any` | `false` | 否 | 开关当前值,可用 v-model 双向绑定 | `<Switch v-model="value" />` |
18
- | trueValue | `any` | `true` | 否 | 开启时的值 | `<Switch trueValue="on" falseValue="off" />` |
19
- | falseValue | `any` | `false` | 否 | 关闭时的值 | `<Switch trueValue="1" falseValue="0" />` |
20
- | on | `string` | `undefined` | 否 | 开启时显示的文案 | `<Switch on="开" off="关" />` |
21
- | off | `string` | `undefined` | 否 | 关闭时显示的文案 | `<Switch on="ON" off="OFF" />` |
22
- | disabled | `boolean` | `false` | 否 | 是否禁用 | `<Switch disabled />` |
23
- | loading | `boolean` | `false` | 否 | 是否显示加载状态 | `<Switch :loading="isLoading" />` |
24
- | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | `<Switch size="small" />` |
25
- | width | `number | string` | `undefined` | 否 | 开关的宽度 | `<Switch :width="60" />` |
26
- | height | `number | string` | `undefined` | 否 | 开关的高度 | `<Switch :height="24" />` |
27
- | name | `string` | `undefined` | 否 | 开关的名称,用于表单提交 | `<Switch name="enable" />` |
28
- | beforeChange | `(from: any, to: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换前的拦截函数,返回 false 阻止切换,支持异步 | `<Switch :beforeChange="handleBeforeChange" />` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `any` | `false` | 否 | 开关当前值,可用 v-model 双向绑定 | - | `<Switch v-model="value" />` |
18
+ | trueValue | `any` | `true` | 否 | 开启时的值 | - | `<Switch trueValue="on" falseValue="off" />` |
19
+ | falseValue | `any` | `false` | 否 | 关闭时的值 | - | `<Switch trueValue="1" falseValue="0" />` |
20
+ | on | `string` | `undefined` | 否 | 开启时显示的文案 | - | `<Switch on="开" off="关" />` |
21
+ | off | `string` | `undefined` | 否 | 关闭时显示的文案 | - | `<Switch on="ON" off="OFF" />` |
22
+ | disabled | `boolean` | `false` | 否 | 是否禁用 | - | `<Switch disabled />` |
23
+ | loading | `boolean` | `false` | 否 | 是否显示加载状态 | - | `<Switch :loading="isLoading" />` |
24
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 尺寸 | - | `<Switch size="small" />` |
25
+ | width | `number | string` | `undefined` | 否 | 开关的宽度 | - | `<Switch :width="60" />` |
26
+ | height | `number | string` | `undefined` | 否 | 开关的高度 | - | `<Switch :height="24" />` |
27
+ | name | `string` | `undefined` | 否 | 开关的名称,用于表单提交 | - | `<Switch name="enable" />` |
28
+ | beforeChange | `(from: any, to: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换前的拦截函数,返回 false 阻止切换,支持异步 | - | `<Switch :beforeChange="handleBeforeChange" />` |
29
29
 
30
30
  ## 插槽 (Slots)
31
31
  | 插槽名 | 说明 | 模板写法 | 示例 |
@@ -34,12 +34,14 @@ import { Switch } from '@king-design/vue';
34
34
  | off | 扩展关闭时的文案 | `undefined` | - |
35
35
 
36
36
  ## 常见错误与正确用法 (Anti-Hallucination)
37
+ ### 在 Vue 中使用保留字 Switch
37
38
  > **错误用法**: `import { Switch } from '@king-design/vue';
38
39
  // 可能在某些情况下与 Vue 保留字冲突`
39
40
  > **正确写法**: `import { Switch as KSwitch } from '@king-design/vue';
40
41
  // 或直接使用 Switch,现代 Vue 3 通常没问题`
41
42
  > **说明**: 在某些 Vue 版本中,Switch 可能是保留字,可以重命名为 KSwitch
42
43
 
44
+ ### beforeChange 函数未正确返回布尔值
43
45
  > **错误用法**: `const beforeChange = async () => {
44
46
  await Dialog.confirm({});
45
47
  // 忘记返回 true
@@ -54,6 +56,7 @@ import { Switch } from '@king-design/vue';
54
56
  }`
55
57
  > **说明**: beforeChange 必须返回布尔值,true 允许切换,false 阻止切换
56
58
 
59
+ ### 自定义值类型与初始值不匹配
57
60
  > **错误用法**: `const value = ref(false);
58
61
  <Switch v-model="value" trueValue="yes" falseValue="no" />`
59
62
  > **正确写法**: `const value = ref('no');
@@ -12,46 +12,46 @@ import { Table, TableColumn } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | data | `T[]` | `undefined` | 否 | 表格数据数组 | `<Table :data="tableData"></Table>` |
18
- | fixHeader | `boolean | number | string` | `false` | 否 | 表头固定,给定需要固定高度的具体数值,当超出该值时,展示滚动条 | `<Table :data="data" :fixHeader="300"></Table>` |
19
- | stickHeader | `boolean | number | string` | `false` | 否 | 表头吸顶,给定需要吸顶的高度,当表头在页面滚动滚动时,距离视窗顶部的距离等于该高度时,将表头固定在此高度处 | - |
20
- | stickScrollbar | `boolean | number | string` | `false` | 否 | 当出现横向滚动条时,设置是否当表格底部没有滚动到视窗中时,将横向滚动条固定在页面底部;取值为number类型时,用来指定距离视窗底部的距离 | - |
21
- | checkType | `"checkbox" | "radio" | "none"` | `"checkbox"` | 否 | 当行可选择时,定义选择的类型: 单选 "radio" , 复选 "checkbox", 不可选 "none" | - |
22
- | checkedKeys | `TableRowKey[]` | `[]` | 否 | 通过key数组来指定哪些行被选中,可用v-model:checkedKeys双向绑定 | - |
23
- | rowKey | `(value: T, index: number) => TableRowKey` | `(value, index) => index` | 否 | 设置每行的key | `<Table :data="tableData" :rowKey="(value, index) => index"></Table>` |
24
- | rowCheckable | `boolean` | `true` | 否 | 当行可选时,是否点击该行任意区域都可选中 | - |
25
- | disableRow | `(value: T, index: number, key: TableRowKey) => boolean` | `undefined` | 否 | 定义行禁用可选的逻辑,返回true,则该行被禁用选择 | - |
26
- | type | `"default" | "border" | "grid"` | `"default"` | 否 | 表格类型,默认左右无边框,"border"类型会添加边框, "grid"类型会展示栅格边框 | - |
27
- | stripe | `boolean` | `false` | 否 | 相邻行是否展示不同的背景色 | - |
28
- | rowClassName | `(value: T, index: number, key: TableRowKey) => string | undefined` | `undefined` | 否 | 通过一个函数定义行的className,该函数会传入该行数据,索引和key当做参数,返回的字符串将被设为该行的className | - |
29
- | group | `TableGroupValue` | `undefined` | 否 | 分组配置 | - |
30
- | sort | `TableSortValue` | `undefined` | 否 | 排序配置,可用v-model:sort双向绑定 | - |
31
- | loading | `boolean` | `false` | 否 | 是否展示加载状态 | - |
32
- | merge | `TableMerge` | `undefined` | 否 | 指定表格单元格合并逻辑 | - |
33
- | expandedKeys | `TableRowKey[]` | `undefined` | 否 | 通过key来指定哪些行展开,可用v-model:expandedKeys绑定 | - |
34
- | rowExpandable | `boolean` | `true` | 否 | 是否点击该行任意区域即展开 | - |
35
- | selectedKeys | `TableRowKey[]` | `undefined` | 否 | 当rowSelectable取值为非false时,指定哪些行高亮 | - |
36
- | rowSelectable | `boolean | "single" | "multiple"` | `false` | 否 | 是否点击行时高亮该行,取值为multiple时,可以同时高亮多行 | - |
37
- | childrenKey | `string` | `"children"` | 否 | 树形表格指定子元素键名 | - |
38
- | indent | `number` | `32` | 否 | 树形表格指定子元素缩进宽度 | - |
39
- | spreadKeys | `TableRowKey[]` | `undefined` | 否 | 树形表格指定展开的行,可用v-model:spreadKeys绑定 | - |
40
- | tooltipPosition | `"left" | "bottom" | "right" | "top" | Position` | `"top"` | 否 | 行提示的位置 | - |
41
- | tooltipContainer | `Container` | `undefined` | 否 | 指定行提示弹层追加的位置,支持函数或 CSS 选择器 | - |
42
- | keepStatus | `boolean` | `false` | 否 | 是否在行销毁的时候,保持该行在checkedKeys | selectedKeys | spreadKeys | expandedKeys中的key值 | - |
43
- | showIndeterminate | `boolean` | `true` | 否 | 表头的Checkbox是否支持展示半选中状态 | - |
44
- | resizable | `boolean` | `false` | 否 | 是否可以表头拖动调整列宽 | - |
45
- | minColWidth | `number` | `40` | 否 | 指定所有列拖动时的最小宽度 | - |
46
- | widthStoreKey | `string` | `undefined` | 否 | 如果要保存表格拖动后的列宽信息,可以通过该属性设置保存到localStorage中的key | - |
47
- | draggable | `boolean` | `false` | 否 | 表格行是否可拖动排序 | - |
48
- | animation | `boolean | [boolean, boolean]` | `true` | 否 | 是否开启动效,可以通过数组单独设置行和列的动效 | - |
49
- | hideHeader | `boolean` | `false` | 否 | 是否隐藏表头 | - |
50
- | pagination | `boolean | PaginationProps` | `false` | 否 | 是否支持分页,可传入对象配置分页参数 | - |
51
- | fixFooter | `boolean` | `false` | 否 | table给定需要固定高度时,自定义footer固定 | - |
52
- | load | `(node: any) => Promise<any[]> | void` | `undefined` | 否 | 指定异步加载节点数据的函数,该函数通过Promise返回数组来添加子节点数据 | - |
53
- | spreadArrowIndex | `number` | `0` | 否 | 指定树形表格展开Icon的所在列,默认在第一列 | - |
54
- | virtual | `boolean` | `false` | 否 | 是否开启虚拟滚动,适用于大数据量场景 | - |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | data | `T[]` | `undefined` | 否 | 表格数据数组 | - | `<Table :data="tableData"></Table>` |
18
+ | fixHeader | `boolean | number | string` | `false` | 否 | 表头固定,给定需要固定高度的具体数值,当超出该值时,展示滚动条 | - | `<Table :data="data" :fixHeader="300"></Table>` |
19
+ | stickHeader | `boolean | number | string` | `false` | 否 | 表头吸顶,给定需要吸顶的高度,当表头在页面滚动滚动时,距离视窗顶部的距离等于该高度时,将表头固定在此高度处 | - | - |
20
+ | stickScrollbar | `boolean | number | string` | `false` | 否 | 当出现横向滚动条时,设置是否当表格底部没有滚动到视窗中时,将横向滚动条固定在页面底部;取值为number类型时,用来指定距离视窗底部的距离 | - | - |
21
+ | checkType | `"checkbox" | "radio" | "none"` | `"checkbox"` | 否 | 当行可选择时,定义选择的类型: 单选 "radio" , 复选 "checkbox", 不可选 "none" | - | - |
22
+ | checkedKeys | `TableRowKey[]` | `[]` | 否 | 通过key数组来指定哪些行被选中,可用v-model:checkedKeys双向绑定 | - | - |
23
+ | rowKey | `(value: T, index: number) => TableRowKey` | `(value, index) => index` | 否 | 设置每行的key | - | `<Table :data="tableData" :rowKey="(value, index) => index"></Table>` |
24
+ | rowCheckable | `boolean` | `true` | 否 | 当行可选时,是否点击该行任意区域都可选中 | - | - |
25
+ | disableRow | `(value: T, index: number, key: TableRowKey) => boolean` | `undefined` | 否 | 定义行禁用可选的逻辑,返回true,则该行被禁用选择 | - | - |
26
+ | type | `"default" | "border" | "grid"` | `"default"` | 否 | 表格类型,默认左右无边框,"border"类型会添加边框, "grid"类型会展示栅格边框 | - | - |
27
+ | stripe | `boolean` | `false` | 否 | 相邻行是否展示不同的背景色 | - | - |
28
+ | rowClassName | `(value: T, index: number, key: TableRowKey) => string | undefined` | `undefined` | 否 | 通过一个函数定义行的className,该函数会传入该行数据,索引和key当做参数,返回的字符串将被设为该行的className | - | - |
29
+ | group | `TableGroupValue` | `undefined` | 否 | 分组配置 | - | - |
30
+ | sort | `TableSortValue` | `undefined` | 否 | 排序配置,可用v-model:sort双向绑定 | - | - |
31
+ | loading | `boolean` | `false` | 否 | 是否展示加载状态 | - | - |
32
+ | merge | `TableMerge` | `undefined` | 否 | 指定表格单元格合并逻辑 | - | - |
33
+ | expandedKeys | `TableRowKey[]` | `undefined` | 否 | 通过key来指定哪些行展开,可用v-model:expandedKeys绑定 | - | - |
34
+ | rowExpandable | `boolean` | `true` | 否 | 是否点击该行任意区域即展开 | - | - |
35
+ | selectedKeys | `TableRowKey[]` | `undefined` | 否 | 当rowSelectable取值为非false时,指定哪些行高亮 | - | - |
36
+ | rowSelectable | `boolean | "single" | "multiple"` | `false` | 否 | 是否点击行时高亮该行,取值为multiple时,可以同时高亮多行 | - | - |
37
+ | childrenKey | `string` | `"children"` | 否 | 树形表格指定子元素键名 | - | - |
38
+ | indent | `number` | `32` | 否 | 树形表格指定子元素缩进宽度 | - | - |
39
+ | spreadKeys | `TableRowKey[]` | `undefined` | 否 | 树形表格指定展开的行,可用v-model:spreadKeys绑定 | - | - |
40
+ | tooltipPosition | `"left" | "bottom" | "right" | "top" | Position` | `"top"` | 否 | 行提示的位置 | - | - |
41
+ | tooltipContainer | `Container` | `undefined` | 否 | 指定行提示弹层追加的位置,支持函数或 CSS 选择器 | - | - |
42
+ | keepStatus | `boolean` | `false` | 否 | 是否在行销毁的时候,保持该行在checkedKeys | selectedKeys | spreadKeys | expandedKeys中的key值 | - | - |
43
+ | showIndeterminate | `boolean` | `true` | 否 | 表头的Checkbox是否支持展示半选中状态 | - | - |
44
+ | resizable | `boolean` | `false` | 否 | 是否可以表头拖动调整列宽 | - | - |
45
+ | minColWidth | `number` | `40` | 否 | 指定所有列拖动时的最小宽度 | - | - |
46
+ | widthStoreKey | `string` | `undefined` | 否 | 如果要保存表格拖动后的列宽信息,可以通过该属性设置保存到localStorage中的key | - | - |
47
+ | draggable | `boolean` | `false` | 否 | 表格行是否可拖动排序 | - | - |
48
+ | animation | `boolean | [boolean, boolean]` | `true` | 否 | 是否开启动效,可以通过数组单独设置行和列的动效 | - | - |
49
+ | hideHeader | `boolean` | `false` | 否 | 是否隐藏表头 | - | - |
50
+ | pagination | `boolean | PaginationProps` | `false` | 否 | 是否支持分页,可传入对象配置分页参数 | - | - |
51
+ | fixFooter | `boolean` | `false` | 否 | table给定需要固定高度时,自定义footer固定 | - | - |
52
+ | load | `(node: any) => Promise<any[]> | void` | `undefined` | 否 | 指定异步加载节点数据的函数,该函数通过Promise返回数组来添加子节点数据 | - | - |
53
+ | spreadArrowIndex | `number` | `0` | 否 | 指定树形表格展开Icon的所在列,默认在第一列 | - | - |
54
+ | virtual | `boolean` | `false` | 否 | 是否开启虚拟滚动,适用于大数据量场景 | - | - |
55
55
 
56
56
  ## 事件 (Events)
57
57
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
@@ -65,15 +65,35 @@ import { Table, TableColumn } from '@king-design/vue';
65
65
  | uncheckAll | `@uncheck-all` | 手动取消全选触发 | `-` | `<Table @uncheck-all="handleUncheckAll" />` |
66
66
  | page | `@page` | 当内置翻页改变页码或每页数量时触发 | `data: {value: number, limit: number}` | `<Table :data="data" :pagination="true" @page="handlePage"></Table>` |
67
67
 
68
- ### 事件处理函数示例
69
- **clickRow**:
68
+ ### 事件参数说明
69
+ **clickRow**
70
+
71
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
72
+ | --- | --- | --- | --- | --- |
73
+ | data | `T` | 是 | - | 行数据 |
74
+ | index | `number` | 是 | - | 行索引 |
75
+ | key | `TableRowKey` | 是 | - | 行key |
76
+
77
+ 事件处理示例:
70
78
  ```typescript
71
79
  const handleClickRow = (data: any, index: number, key: string | number) => {
72
80
  console.log('点击行:', data);
73
81
  };
74
82
  ```
75
83
 
76
- **dragend**:
84
+ **dragstart**
85
+
86
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
87
+ | --- | --- | --- | --- | --- |
88
+ | data | `{key: TableRowKey, from: number}` | 是 | - | 拖动开始信息 |
89
+
90
+ **dragend**
91
+
92
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
93
+ | --- | --- | --- | --- | --- |
94
+ | data | `{key: TableRowKey, from: number, to: number}` | 是 | - | 拖动结束信息 |
95
+
96
+ 事件处理示例:
77
97
  ```typescript
78
98
  const handleDragEnd = (info: {key: number, from: number, to: number}) => {
79
99
  const item = data.value.splice(info.from, 1)[0];
@@ -81,21 +101,43 @@ const handleDragEnd = (info: {key: number, from: number, to: number}) => {
81
101
  };
82
102
  ```
83
103
 
84
- **checkRow**:
104
+ **checkRow**
105
+
106
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
107
+ | --- | --- | --- | --- | --- |
108
+ | data | `T` | 是 | - | 选中行数据 |
109
+ | index | `number` | 是 | - | 行索引 |
110
+ | key | `TableRowKey` | 是 | - | 行key |
111
+
112
+ 事件处理示例:
85
113
  ```typescript
86
114
  const handleCheckRow = (data: any, index: number, key: string | number) => {
87
115
  console.log('选中行:', data);
88
116
  };
89
117
  ```
90
118
 
91
- **uncheckRow**:
119
+ **uncheckRow**
120
+
121
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
122
+ | --- | --- | --- | --- | --- |
123
+ | data | `T` | 是 | - | 取消选中行数据 |
124
+ | index | `number` | 是 | - | 行索引 |
125
+ | key | `TableRowKey` | 是 | - | 行key |
126
+
127
+ 事件处理示例:
92
128
  ```typescript
93
129
  const handleUncheckRow = (data: any, index: number, key: string | number) => {
94
130
  console.log('取消选中:', data);
95
131
  };
96
132
  ```
97
133
 
98
- **page**:
134
+ **page**
135
+
136
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
137
+ | --- | --- | --- | --- | --- |
138
+ | data | `{value: number, limit: number}` | 是 | - | 分页信息 |
139
+
140
+ 事件处理示例:
99
141
  ```typescript
100
142
  const handlePage = (pageInfo: {value: number, limit: number}) => {
101
143
  console.log('当前页:', pageInfo.value, '每页:', pageInfo.limit);
@@ -129,13 +171,33 @@ const handlePage = (pageInfo: {value: number, limit: number}) => {
129
171
  ## 方法 (Methods)
130
172
  | 方法名 | 说明 | 参数 | 返回值 |
131
173
  | --- | --- | --- | --- |
132
- | getCheckedData | 获取选中数据信息 | `` | `T[]` |
133
- | getSelectedData | 获取高亮行数据信息 | `` | `T[]` |
134
- | checkAll | 全部选中 | `` | `void` |
135
- | uncheckAll | 全不选中 | `` | `void` |
174
+ | getCheckedData | 获取选中数据信息 | `-` | `T[]` |
175
+ | getSelectedData | 获取高亮行数据信息 | `-` | `T[]` |
176
+ | checkAll | 全部选中 | `-` | `void` |
177
+ | uncheckAll | 全不选中 | `-` | `void` |
136
178
  | scrollToRowByIndex | 通过索引指定滚动的行 | `index: number` | `Promise<void>` |
137
179
  | scrollToRowByKey | 通过key指定滚动的行 | `key: TableRowKey` | `Promise<void>` |
138
- | exportTable | 导出表格 | `data: T[], filename: string` | `Promise<string>` |
180
+ | exportTable | 导出表格 | `data?: T[], filename?: string` | `Promise<string>` |
181
+
182
+ ### 方法参数说明
183
+ **scrollToRowByIndex**
184
+
185
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
186
+ | --- | --- | --- | --- | --- |
187
+ | index | `number` | 是 | - | 行索引 |
188
+
189
+ **scrollToRowByKey**
190
+
191
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
192
+ | --- | --- | --- | --- | --- |
193
+ | key | `TableRowKey` | 是 | - | 行key |
194
+
195
+ **exportTable**
196
+
197
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
198
+ | --- | --- | --- | --- | --- |
199
+ | data | `T[]` | 否 | `this.data` | 要导出的数据 |
200
+ | filename | `string` | 否 | `"table"` | 导出文件名 |
139
201
 
140
202
  ## 子组件 (Sub-Components)
141
203
  ### TableColumn
@@ -166,22 +228,27 @@ const handlePage = (pageInfo: {value: number, limit: number}) => {
166
228
  - `#default="[data, index]"`: 与template扩展点等价,为了方便vue中使用的别名
167
229
 
168
230
  ## 常见错误与正确用法 (Anti-Hallucination)
231
+ ### TableColumn 作用域插槽参数解构方式错误
169
232
  > **错误用法**: `<template #default="{ row }">`
170
233
  > **正确写法**: `<template #default="[row]">`
171
234
  > **说明**: KPC 组件库使用数组形式传递作用域插槽参数,而非对象解构。正确写法是 [row] 或 [row, index],不是 { row } 或 { row, index }
172
235
 
236
+ ### TableColumn 未设置 key 属性
173
237
  > **错误用法**: `<TableColumn title="姓名" />`
174
238
  > **正确写法**: `<TableColumn key="name" title="姓名" />`
175
239
  > **说明**: TableColumn 的 key 属性是必须的,用于标识列和数据映射
176
240
 
241
+ ### 使用选择功能时未设置 rowKey
177
242
  > **错误用法**: `<Table :data="data" checkType="checkbox" v-model:checkedKeys="keys">`
178
243
  > **正确写法**: `<Table :data="data" checkType="checkbox" v-model:checkedKeys="keys" :rowKey="row => row.id">`
179
244
  > **说明**: 使用 checkType 进行行选择时,应该设置 rowKey 来唯一标识每行,否则默认使用数组索引,数据变化时可能导致选中状态错乱
180
245
 
246
+ ### TableColumn 错误使用 prop 属性
181
247
  > **错误用法**: `<TableColumn prop="name" />`
182
248
  > **正确写法**: `<TableColumn key="name" />`
183
249
  > **说明**: KPC TableColumn 使用 `key` 属性来指定数据字段,而不是 `prop`。
184
250
 
251
+ ### TableColumn 错误使用 label 属性
185
252
  > **错误用法**: `<TableColumn label="姓名" />`
186
253
  > **正确写法**: `<TableColumn title="姓名" />`
187
254
  > **说明**: KPC TableColumn 使用 `title` 属性来指定列标题,而不是 `label`。
@@ -2,9 +2,9 @@
2
2
 
3
3
  用于表格中的ID列展示,支持复制功能和禁用状态。
4
4
 
5
- **关键词**: id, column, table, 表格列
5
+ **关键词**: id, column, table, 表格列, ID列, 名称ID列, 资源标识列
6
6
 
7
- **使用场景**: 资源列表ID列展示
7
+ **使用场景**: 资源列表ID列展示、支持复制的名称和 ID 展示、表格中可点击资源名称列
8
8
 
9
9
  ## 导入语句
10
10
  ```typescript
@@ -12,20 +12,20 @@ import { TableColumnId } from '@ksyun-internal/versatile';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | name | `string` | `""` | 否 | 显示的名称 | - |
18
- | id | `string` | `""` | 否 | 显示的 id | - |
19
- | disabled | `boolean` | `false` | 否 | 是否禁止复制功能 | - |
20
- | disabledClickName | `boolean` | `false` | 否 | 是否置灰名称 | - |
21
- | disabledEditable | `boolean` | `false` | 否 | 是否置灰编辑按钮 | - |
22
- | type | `"link" | "none"` | `"link"` | 否 | 样式模式 | - |
23
- | editable | `boolean` | `false` | 否 | 名称是否支持编辑 | - |
24
- | editableTip | `string` | `"编辑"` | 否 | 编辑图标的 tooltip 提示,默认编辑 | - |
25
- | editableProps | `Record<string, any>` | `undefined` | 否 | Editable 组件支持的属性 | - |
26
- | to | `string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric` | `undefined` | 否 | 链接跳转路径,当 type 为 'link' 时生效,同 router-link 的 to 属性一致;当使用 to 属性进行跳转时,右键菜单栏才会出现 '在新标签页中打开' | - |
27
- | target | `'_blank' | '_self' | '_parent' | '_top'` | `'_self'` | 否 | 链接跳转目标,当 type 为 'link' 且使用 to 时生效,同 a 标签的 target 属性一致 | - |
28
- | maxLines | `number` | `1` | 否 | 名称/ID 展示的最大行数,超出部分会被省略号代替 | - |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | name | `string` | `""` | 否 | 显示的名称 | - | - |
18
+ | id | `string` | `""` | 否 | 显示的 id | - | - |
19
+ | disabled | `boolean` | `false` | 否 | 是否禁止复制功能 | - | - |
20
+ | disabledClickName | `boolean` | `false` | 否 | 是否置灰名称 | - | - |
21
+ | disabledEditable | `boolean` | `false` | 否 | 是否置灰编辑按钮 | - | - |
22
+ | type | `"link" | "none"` | `"link"` | 否 | 样式模式 | - | - |
23
+ | editable | `boolean` | `false` | 否 | 名称是否支持编辑 | - | - |
24
+ | editableTip | `string` | `"编辑"` | 否 | 编辑图标的 tooltip 提示,默认编辑 | - | - |
25
+ | editableProps | `Record<string, any>` | `undefined` | 否 | Editable 组件支持的属性 | - | - |
26
+ | to | `string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric` | `undefined` | 否 | 链接跳转路径,当 type 为 'link' 时生效,同 router-link 的 to 属性一致;当使用 to 属性进行跳转时,右键菜单栏才会出现 '在新标签页中打开' | - | - |
27
+ | target | `'_blank' | '_self' | '_parent' | '_top'` | `'_self'` | 否 | 链接跳转目标,当 type 为 'link' 且使用 to 时生效,同 a 标签的 target 属性一致 | - | - |
28
+ | maxLines | `number` | `1` | 否 | 名称/ID 展示的最大行数,超出部分会被省略号代替 | - | - |
29
29
 
30
30
  ## 事件 (Events)
31
31
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
@@ -34,3 +34,23 @@ import { TableColumnId } from '@ksyun-internal/versatile';
34
34
  | click:id | `@click:id` | 当点击 id 时触发 | `value: string` | `<TableColumnId @click:id="handleClickId" />` |
35
35
  | change:name | `@change:name` | 当编辑名称,名称内容改变时触发 | `newValue: string, oldValue: string` | `<TableColumnId @change:name="(newVal, oldVal) => handleNameChange(newVal, oldVal)" /></TableColumnId>` |
36
36
 
37
+ ### 事件参数说明
38
+ **click:name**
39
+
40
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
41
+ | --- | --- | --- | --- | --- |
42
+ | value | `string` | 是 | - | 名称的值 |
43
+
44
+ **click:id**
45
+
46
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
47
+ | --- | --- | --- | --- | --- |
48
+ | value | `string` | 是 | - | id 的值 |
49
+
50
+ **change:name**
51
+
52
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
53
+ | --- | --- | --- | --- | --- |
54
+ | newValue | `string` | 是 | - | 新的名称值 |
55
+ | oldValue | `string` | 是 | - | 旧的名称值 |
56
+
@@ -12,22 +12,28 @@ import { Tabs, Tab } from '@king-design/vue';
12
12
  ```
13
13
 
14
14
  ## 属性 (Props)
15
- | 属性名 | 类型 | 默认值 | 必填 | 说明 | 示例 |
16
- | --- | --- | --- | --- | --- | --- |
17
- | value | `any` | `undefined` | 否 | 被选中的选项卡,可用 v-model 双向绑定 | `<Tabs v-model="activeTab"></Tabs>` |
18
- | type | `"default" | "card" | "flat-card"` | `"default"` | 否 | 选项卡类型 | `<Tabs type="card"></Tabs>` |
19
- | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 选项卡尺寸 | `<Tabs size="small"></Tabs>` |
20
- | vertical | `boolean` | `undefined` | 否 | 是否垂直排列 | `<Tabs vertical></Tabs>` |
21
- | closable | `boolean` | `false` | 否 | 是否展示选项卡关闭按钮 | `<Tabs closable @remove="handleRemove"></Tabs>` |
22
- | beforeChange | `(value: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换选项卡之前的拦截函数,返回 false 阻止切换,支持异步 | `<Tabs :beforeChange="handleBeforeChange"></Tabs>` |
15
+ | 属性名 | 类型 | 默认值 | 必填 | 说明 | 标签 | 示例 |
16
+ | --- | --- | --- | --- | --- | --- | --- |
17
+ | value | `any` | `undefined` | 否 | 被选中的选项卡,可用 v-model 双向绑定 | - | `<Tabs v-model="activeTab"></Tabs>` |
18
+ | type | `"default" | "card" | "flat-card"` | `"default"` | 否 | 选项卡类型 | - | `<Tabs type="card"></Tabs>` |
19
+ | size | `"large" | "default" | "small" | "mini"` | `"default"` | 否 | 选项卡尺寸 | - | `<Tabs size="small"></Tabs>` |
20
+ | vertical | `boolean` | `undefined` | 否 | 是否垂直排列 | - | `<Tabs vertical></Tabs>` |
21
+ | closable | `boolean` | `false` | 否 | 是否展示选项卡关闭按钮 | - | `<Tabs closable @remove="handleRemove"></Tabs>` |
22
+ | beforeChange | `(value: any) => boolean | Promise<boolean>` | `undefined` | 否 | 切换选项卡之前的拦截函数,返回 false 阻止切换,支持异步 | - | `<Tabs :beforeChange="handleBeforeChange"></Tabs>` |
23
23
 
24
24
  ## 事件 (Events)
25
25
  | 事件名 | Vue事件名 | 说明 | 回调参数 | 示例 |
26
26
  | --- | --- | --- | --- | --- |
27
27
  | remove | `@remove` | 关闭选项卡时触发 | `value: any` | `<Tabs @remove="handleRemove"></Tabs>` |
28
28
 
29
- ### 事件处理函数示例
30
- **remove**:
29
+ ### 事件参数说明
30
+ **remove**
31
+
32
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
33
+ | --- | --- | --- | --- | --- |
34
+ | value | `any` | 是 | - | 被关闭选项卡的 value |
35
+
36
+ 事件处理示例:
31
37
  ```typescript
32
38
  const handleRemove = (value: string) => {
33
39
  const index = tabs.value.indexOf(value);
@@ -50,6 +56,7 @@ const handleRemove = (value: string) => {
50
56
  - `@click`: Tab 点击事件,发生在 value 改变之后,disabled 状态不触发
51
57
 
52
58
  ## 常见错误与正确用法 (Anti-Hallucination)
59
+ ### 期望 Tabs 自动切换内容
53
60
  > **错误用法**: `<Tabs v-model="activeTab">
54
61
  <Tab value="home">首页内容</Tab> <!-- 期望显示内容 -->
55
62
  </Tabs>`
@@ -59,10 +66,12 @@ const handleRemove = (value: string) => {
59
66
  <div v-if="activeTab === 'home'">首页内容</div>`
60
67
  > **说明**: Tabs 仅提供头部样式,内容区域需要使用 v-if 自行切换
61
68
 
69
+ ### Tab 未设置 value
62
70
  > **错误用法**: `<Tab>选项卡</Tab>`
63
71
  > **正确写法**: `<Tab value="tab1">选项卡</Tab>`
64
72
  > **说明**: 每个 Tab 必须设置 value 用于标识
65
73
 
74
+ ### 使用 closable 但未处理 remove 事件
66
75
  > **错误用法**: `<Tabs closable> <!-- 点击关闭不会真正移除 -->`
67
76
  > **正确写法**: `<Tabs closable @remove="handleRemove">`
68
77
  > **说明**: closable 只显示关闭按钮,需要监听 remove 事件手动移除选项卡