king-design-analyzer 2.1.7 → 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 (311) 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 +5 -3
  102. package/dist/ast/index.mjs +3 -1
  103. package/dist/{chunk-DSWKLUIX.mjs → chunk-3LYQ5XFM.mjs} +1 -1
  104. package/dist/chunk-BI5TIQID.mjs +330 -0
  105. package/dist/{chunk-6QS5IGS6.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-JSBRDJBE.js +30 -0
  110. package/dist/chunk-KF5YBEM5.js +143 -0
  111. package/dist/chunk-KMIDURUR.mjs +33324 -0
  112. package/dist/chunk-QC6VTSA3.mjs +117 -0
  113. package/dist/chunk-SZYVGYKK.js +33350 -0
  114. package/dist/{chunk-WYSRJVX4.js → chunk-TA3SV4SP.js} +2 -2
  115. package/dist/chunk-UJCSKKID.mjs +27 -0
  116. package/dist/{chunk-FVSQ6BU6.mjs → chunk-XGPHQHLR.mjs} +4 -4
  117. package/dist/docs/index.js +1 -1
  118. package/dist/docs/index.mjs +1 -1
  119. package/dist/full/index.js +8 -6
  120. package/dist/full/index.mjs +6 -4
  121. package/dist/index.d.mts +1 -0
  122. package/dist/index.d.ts +1 -0
  123. package/dist/index.js +15 -13
  124. package/dist/index.mjs +7 -5
  125. package/dist/metadata/index.d.mts +22 -2
  126. package/dist/metadata/index.d.ts +22 -2
  127. package/dist/metadata/index.js +27 -17
  128. package/dist/metadata/index.mjs +27 -16
  129. package/dist/resolve-BsLBxlBi.d.mts +24 -0
  130. package/dist/resolve-BsLBxlBi.d.ts +24 -0
  131. package/dist/runtime/index.js +5 -4
  132. package/dist/runtime/index.mjs +3 -2
  133. package/dist/shared/index.d.mts +10 -0
  134. package/dist/shared/index.d.ts +10 -0
  135. package/dist/shared/index.js +23 -0
  136. package/dist/shared/index.mjs +2 -0
  137. package/dist/static/index.js +6 -5
  138. package/dist/static/index.mjs +3 -2
  139. package/docs_for_llm/actions.doc.md +77 -0
  140. package/docs_for_llm/advancedset.doc.md +89 -0
  141. package/docs_for_llm/affix.doc.md +15 -7
  142. package/docs_for_llm/aksk.doc.md +111 -0
  143. package/docs_for_llm/az.doc.md +17 -11
  144. package/docs_for_llm/badge.doc.md +6 -5
  145. package/docs_for_llm/billtypes.doc.md +17 -11
  146. package/docs_for_llm/breadcrumb.doc.md +6 -3
  147. package/docs_for_llm/button.doc.md +34 -18
  148. package/docs_for_llm/buttonlink.doc.md +55 -0
  149. package/docs_for_llm/card.doc.md +8 -5
  150. package/docs_for_llm/cardcol.doc.md +78 -0
  151. package/docs_for_llm/cardcols.doc.md +84 -0
  152. package/docs_for_llm/cardcontent.doc.md +10 -10
  153. package/docs_for_llm/cardtabs.doc.md +106 -0
  154. package/docs_for_llm/carousel.doc.md +8 -7
  155. package/docs_for_llm/cascader.doc.md +46 -25
  156. package/docs_for_llm/checkbox.doc.md +25 -13
  157. package/docs_for_llm/cidrinput.doc.md +83 -0
  158. package/docs_for_llm/code.doc.md +22 -11
  159. package/docs_for_llm/collapse.doc.md +9 -6
  160. package/docs_for_llm/colorpicker.doc.md +104 -0
  161. package/docs_for_llm/copy.doc.md +15 -13
  162. package/docs_for_llm/copyhover.doc.md +59 -0
  163. package/docs_for_llm/copyrow.doc.md +71 -0
  164. package/docs_for_llm/datepicker.doc.md +51 -39
  165. package/docs_for_llm/description.doc.md +75 -0
  166. package/docs_for_llm/descriptions.doc.md +9 -6
  167. package/docs_for_llm/dialog.doc.md +48 -77
  168. package/docs_for_llm/divider.doc.md +9 -7
  169. package/docs_for_llm/drawer.doc.md +43 -84
  170. package/docs_for_llm/dropdown.doc.md +52 -21
  171. package/docs_for_llm/duration.doc.md +76 -0
  172. package/docs_for_llm/editable.doc.md +36 -14
  173. package/docs_for_llm/ellipsis.doc.md +10 -5
  174. package/docs_for_llm/filtertablefieldsdialog.doc.md +99 -0
  175. package/docs_for_llm/flex.doc.md +74 -0
  176. package/docs_for_llm/form.doc.md +33 -14
  177. package/docs_for_llm/formiteminput.doc.md +128 -0
  178. package/docs_for_llm/formitemspinner.doc.md +105 -0
  179. package/docs_for_llm/formitemswitch.doc.md +113 -0
  180. package/docs_for_llm/formitemtableconfigs.doc.md +95 -0
  181. package/docs_for_llm/grid.doc.md +7 -5
  182. package/docs_for_llm/header.doc.md +85 -0
  183. package/docs_for_llm/icon.doc.md +12 -8
  184. package/docs_for_llm/icontooltip.doc.md +121 -0
  185. package/docs_for_llm/input.doc.md +90 -39
  186. package/docs_for_llm/instancelist.doc.md +113 -0
  187. package/docs_for_llm/instancenum.doc.md +95 -0
  188. package/docs_for_llm/ipinput.doc.md +77 -0
  189. package/docs_for_llm/kspstatus.doc.md +82 -0
  190. package/docs_for_llm/kvcode.doc.md +76 -0
  191. package/docs_for_llm/layoutcontent.doc.md +17 -17
  192. package/docs_for_llm/layoutlistcontent.doc.md +95 -0
  193. package/docs_for_llm/layoutpermissioncontent.doc.md +84 -0
  194. package/docs_for_llm/layoutstandardlist.doc.md +120 -0
  195. package/docs_for_llm/layouttabs.doc.md +101 -0
  196. package/docs_for_llm/lazymount.doc.md +73 -0
  197. package/docs_for_llm/lazyteleport.doc.md +76 -0
  198. package/docs_for_llm/menu.doc.md +14 -11
  199. package/docs_for_llm/message.doc.md +48 -10
  200. package/docs_for_llm/pagination.doc.md +30 -17
  201. package/docs_for_llm/paginationplus.doc.md +31 -10
  202. package/docs_for_llm/password.doc.md +86 -0
  203. package/docs_for_llm/popover.doc.md +24 -55
  204. package/docs_for_llm/progress.doc.md +13 -10
  205. package/docs_for_llm/projects.doc.md +91 -0
  206. package/docs_for_llm/protable.doc.md +89 -15
  207. package/docs_for_llm/queuevisualrange.doc.md +78 -0
  208. package/docs_for_llm/radio.doc.md +23 -8
  209. package/docs_for_llm/rate.doc.md +122 -0
  210. package/docs_for_llm/region.doc.md +25 -13
  211. package/docs_for_llm/search.doc.md +120 -0
  212. package/docs_for_llm/searchinput.doc.md +111 -0
  213. package/docs_for_llm/searchitems.doc.md +116 -0
  214. package/docs_for_llm/searchselect.doc.md +126 -0
  215. package/docs_for_llm/select.doc.md +40 -55
  216. package/docs_for_llm/sidebar.doc.md +133 -0
  217. package/docs_for_llm/skeleton.doc.md +117 -0
  218. package/docs_for_llm/slider.doc.md +31 -21
  219. package/docs_for_llm/spin.doc.md +8 -5
  220. package/docs_for_llm/spinner.doc.md +28 -18
  221. package/docs_for_llm/split.doc.md +157 -0
  222. package/docs_for_llm/sshkeys.doc.md +88 -0
  223. package/docs_for_llm/status.doc.md +14 -9
  224. package/docs_for_llm/steps.doc.md +10 -7
  225. package/docs_for_llm/switch.doc.md +17 -14
  226. package/docs_for_llm/table.doc.md +118 -51
  227. package/docs_for_llm/tablecolumnid.doc.md +36 -16
  228. package/docs_for_llm/tabs.doc.md +19 -10
  229. package/docs_for_llm/tag.doc.md +19 -10
  230. package/docs_for_llm/timeline.doc.md +109 -0
  231. package/docs_for_llm/timepicker.doc.md +57 -38
  232. package/docs_for_llm/timerange.doc.md +157 -0
  233. package/docs_for_llm/tip.doc.md +20 -11
  234. package/docs_for_llm/tooltip.doc.md +55 -29
  235. package/docs_for_llm/tour.doc.md +48 -29
  236. package/docs_for_llm/transfer.doc.md +40 -29
  237. package/docs_for_llm/tree.doc.md +65 -23
  238. package/docs_for_llm/treeselect.doc.md +37 -48
  239. package/docs_for_llm/upload.doc.md +56 -32
  240. package/docs_for_llm/useCRUD.doc.md +49 -0
  241. package/docs_for_llm/useCountdown.doc.md +43 -0
  242. package/docs_for_llm/useDetail.doc.md +48 -0
  243. package/docs_for_llm/useDialog.doc.md +46 -0
  244. package/docs_for_llm/useEntity.doc.md +45 -0
  245. package/docs_for_llm/useEventListener.doc.md +44 -0
  246. package/docs_for_llm/useFalseUntilTruthy.doc.md +41 -0
  247. package/docs_for_llm/useGetCopyAuthText.doc.md +35 -0
  248. package/docs_for_llm/useGetUserPermission.doc.md +43 -0
  249. package/docs_for_llm/useGroup.doc.md +48 -0
  250. package/docs_for_llm/useIdEntities.doc.md +48 -0
  251. package/docs_for_llm/useIdEntity.doc.md +103 -0
  252. package/docs_for_llm/useInterval.doc.md +43 -0
  253. package/docs_for_llm/useLayoutStandardList.doc.md +38 -0
  254. package/docs_for_llm/useMessage.doc.md +46 -0
  255. package/docs_for_llm/useModifyCache.doc.md +37 -0
  256. package/docs_for_llm/useOpenDialog.doc.md +41 -0
  257. package/docs_for_llm/usePagination.doc.md +60 -0
  258. package/docs_for_llm/usePersist.doc.md +54 -0
  259. package/docs_for_llm/usePoll.doc.md +41 -0
  260. package/docs_for_llm/useRoutePlus.doc.md +34 -0
  261. package/docs_for_llm/useRouterPlus.doc.md +34 -0
  262. package/docs_for_llm/useSearch.doc.md +68 -0
  263. package/docs_for_llm/useShell.doc.md +43 -0
  264. package/docs_for_llm/useSkip.doc.md +41 -0
  265. package/docs_for_llm/useStorageIdEntity.doc.md +46 -0
  266. package/docs_for_llm/useStore.doc.md +34 -0
  267. package/docs_for_llm/useTable.doc.md +57 -0
  268. package/docs_for_llm/useTableGroup.doc.md +47 -0
  269. package/docs_for_llm/useTableSort.doc.md +40 -0
  270. package/docs_for_llm/useToState.doc.md +112 -0
  271. package/docs_for_llm/useUser.doc.md +38 -0
  272. package/docs_for_llm/useValidForm.doc.md +41 -0
  273. package/docs_for_llm/vdialog.doc.md +129 -0
  274. package/docs_for_llm/vdrawer.doc.md +119 -0
  275. package/docs_for_llm/virtuallist.doc.md +6 -3
  276. package/hooks/useCRUD.json +61 -0
  277. package/hooks/useCountdown.json +49 -0
  278. package/hooks/useDetail.json +67 -0
  279. package/hooks/useDialog.json +49 -0
  280. package/hooks/useEntity.json +61 -0
  281. package/hooks/useEventListener.json +61 -0
  282. package/hooks/useFalseUntilTruthy.json +43 -0
  283. package/hooks/useGetCopyAuthText.json +36 -0
  284. package/hooks/useGetUserPermission.json +55 -0
  285. package/hooks/useGroup.json +49 -0
  286. package/hooks/useIdEntities.json +61 -0
  287. package/hooks/useInterval.json +55 -0
  288. package/hooks/useLayoutStandardList.json +36 -0
  289. package/hooks/useMessage.json +73 -0
  290. package/hooks/useModifyCache.json +36 -0
  291. package/hooks/useOpenDialog.json +43 -0
  292. package/hooks/usePagination.json +49 -0
  293. package/hooks/usePersist.json +61 -0
  294. package/hooks/usePoll.json +43 -0
  295. package/hooks/useRoutePlus.json +36 -0
  296. package/hooks/useRouterPlus.json +36 -0
  297. package/hooks/useSearch.json +56 -0
  298. package/hooks/useShell.json +49 -0
  299. package/hooks/useSkip.json +43 -0
  300. package/hooks/useStorageIdEntity.json +67 -0
  301. package/hooks/useStore.json +36 -0
  302. package/hooks/useTable.json +49 -0
  303. package/hooks/useTableGroup.json +43 -0
  304. package/hooks/useTableSort.json +43 -0
  305. package/hooks/useUser.json +36 -0
  306. package/hooks/useValidForm.json +43 -0
  307. package/package.json +12 -6
  308. package/dist/chunk-HDV7ETXE.mjs +0 -1055
  309. package/dist/chunk-HPAUCD5I.js +0 -156
  310. package/dist/chunk-L4DS3EXI.mjs +0 -133
  311. package/dist/chunk-YWY3D4J7.js +0 -1082
@@ -1,529 +1,661 @@
1
1
  {
2
- "id": "datepicker",
3
- "name": "Datepicker",
4
- "displayName": "日期选择",
5
- "category": "form",
6
- "description": "日期选择组件,用于选择日期、日期时间、年份、月份等。支持单选、多选、范围选择,支持禁用日期、快捷方式、自定义格式等功能。",
7
- "importStatement": "import { Datepicker } from '@king-design/vue';",
8
- "props": [
9
- {
10
- "name": "value",
11
- "description": "当前选择的值,可用 v-model 双向绑定。范围选择时为 [Value, Value]",
12
- "type": {
13
- "raw": "Value | Value[] | [Value, Value] | [Value, Value][]",
14
- "kind": "union"
15
- },
16
- "required": false,
17
- "default": "\"\"",
18
- "usageExample": "<Datepicker v-model=\"date\" />"
19
- },
20
- {
21
- "name": "type",
22
- "description": "组件类型",
23
- "type": {
24
- "raw": "\"date\" | \"datetime\" | \"year\" | \"month\"",
25
- "kind": "union",
26
- "unionTypes": [
27
- "date",
28
- "datetime",
29
- "year",
30
- "month"
31
- ]
32
- },
33
- "required": false,
34
- "default": "\"date\"",
35
- "allowedValues": [
36
- {
37
- "value": "date",
38
- "label": "只选择日期",
39
- "isDefault": true
40
- },
41
- {
42
- "value": "datetime",
43
- "label": "选择日期和时间"
44
- },
45
- {
46
- "value": "year",
47
- "label": "选择年份"
48
- },
49
- {
50
- "value": "month",
51
- "label": "选择月份"
2
+ "id": "datepicker",
3
+ "name": "Datepicker",
4
+ "displayName": "日期选择",
5
+ "category": "form",
6
+ "description": "日期选择组件,用于选择日期、日期时间、年份、月份等。支持单选、多选、范围选择,支持禁用日期、快捷方式、自定义格式等功能。",
7
+ "importStatement": "import { Datepicker } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "value",
11
+ "description": "当前选择的值,可用 v-model 双向绑定。范围选择时为 [Value, Value]",
12
+ "type": {
13
+ "raw": "Value | Value[] | [Value, Value] | [Value, Value][]",
14
+ "kind": "union"
15
+ },
16
+ "required": false,
17
+ "default": "\"\"",
18
+ "usageExample": "<Datepicker v-model=\"date\" />"
19
+ },
20
+ {
21
+ "name": "type",
22
+ "description": "组件类型",
23
+ "type": {
24
+ "raw": "\"date\" | \"datetime\" | \"year\" | \"month\"",
25
+ "kind": "union",
26
+ "unionTypes": [
27
+ "date",
28
+ "datetime",
29
+ "year",
30
+ "month"
31
+ ]
32
+ },
33
+ "required": false,
34
+ "default": "\"date\"",
35
+ "allowedValues": [
36
+ {
37
+ "value": "date",
38
+ "label": "只选择日期",
39
+ "isDefault": true
40
+ },
41
+ {
42
+ "value": "datetime",
43
+ "label": "选择日期和时间"
44
+ },
45
+ {
46
+ "value": "year",
47
+ "label": "选择年份"
48
+ },
49
+ {
50
+ "value": "month",
51
+ "label": "选择月份"
52
+ }
53
+ ],
54
+ "usageExample": "<Datepicker type=\"datetime\" />"
55
+ },
56
+ {
57
+ "name": "range",
58
+ "description": "是否选择日期范围",
59
+ "type": {
60
+ "raw": "boolean",
61
+ "kind": "boolean"
62
+ },
63
+ "required": false,
64
+ "default": "false",
65
+ "usageExample": "<Datepicker range />"
66
+ },
67
+ {
68
+ "name": "multiple",
69
+ "description": "是否支持多选",
70
+ "type": {
71
+ "raw": "boolean",
72
+ "kind": "boolean"
73
+ },
74
+ "required": false,
75
+ "default": "false",
76
+ "usageExample": "<Datepicker multiple />"
77
+ },
78
+ {
79
+ "name": "filterable",
80
+ "description": "是否支持筛选输入",
81
+ "type": {
82
+ "raw": "boolean",
83
+ "kind": "boolean"
84
+ },
85
+ "required": false,
86
+ "default": "false",
87
+ "usageExample": "<Datepicker filterable />"
88
+ },
89
+ {
90
+ "name": "loading",
91
+ "description": "数据加载状态",
92
+ "type": {
93
+ "raw": "boolean",
94
+ "kind": "boolean"
95
+ },
96
+ "required": false,
97
+ "default": "false",
98
+ "usageExample": "<Datepicker :loading=\"loading\" />"
99
+ },
100
+ {
101
+ "name": "disabled",
102
+ "description": "是否禁用",
103
+ "type": {
104
+ "raw": "boolean",
105
+ "kind": "boolean"
106
+ },
107
+ "required": false,
108
+ "default": "false",
109
+ "usageExample": "<Datepicker disabled />"
110
+ },
111
+ {
112
+ "name": "name",
113
+ "description": "表单元素的 name 属性",
114
+ "type": {
115
+ "raw": "string",
116
+ "kind": "string"
117
+ },
118
+ "required": false,
119
+ "default": "undefined",
120
+ "usageExample": "<Datepicker name=\"startDate\" />"
121
+ },
122
+ {
123
+ "name": "clearable",
124
+ "description": "是否可清空",
125
+ "type": {
126
+ "raw": "boolean",
127
+ "kind": "boolean"
128
+ },
129
+ "required": false,
130
+ "default": "false",
131
+ "usageExample": "<Datepicker clearable />"
132
+ },
133
+ {
134
+ "name": "size",
135
+ "description": "尺寸",
136
+ "type": {
137
+ "raw": "\"large\" | \"default\" | \"small\" | \"mini\"",
138
+ "kind": "union",
139
+ "unionTypes": [
140
+ "large",
141
+ "default",
142
+ "small",
143
+ "mini"
144
+ ]
145
+ },
146
+ "required": false,
147
+ "default": "\"default\"",
148
+ "allowedValues": [
149
+ {
150
+ "value": "large",
151
+ "label": "大尺寸"
152
+ },
153
+ {
154
+ "value": "default",
155
+ "label": "默认尺寸",
156
+ "isDefault": true
157
+ },
158
+ {
159
+ "value": "small",
160
+ "label": "小尺寸"
161
+ },
162
+ {
163
+ "value": "mini",
164
+ "label": "迷你尺寸"
165
+ }
166
+ ],
167
+ "usageExample": "<Datepicker size=\"small\" />"
168
+ },
169
+ {
170
+ "name": "placeholder",
171
+ "description": "占位文案",
172
+ "type": {
173
+ "raw": "string",
174
+ "kind": "string"
175
+ },
176
+ "required": false,
177
+ "default": "\"请选择日期\"",
178
+ "usageExample": "<Datepicker placeholder=\"选择开始日期\" />"
179
+ },
180
+ {
181
+ "name": "format",
182
+ "description": "日期格式化字符串",
183
+ "type": {
184
+ "raw": "string",
185
+ "kind": "string"
186
+ },
187
+ "required": false,
188
+ "default": "\"YYYY-MM-DD HH:mm:ss\"",
189
+ "usageExample": "<Datepicker format=\"YYYY-MM-DD\" />"
190
+ },
191
+ {
192
+ "name": "valueFormat",
193
+ "description": "value 值的日期格式化字符串",
194
+ "type": {
195
+ "raw": "string",
196
+ "kind": "string"
197
+ },
198
+ "required": false,
199
+ "default": "undefined",
200
+ "usageExample": "<Datepicker valueFormat=\"YYYY-MM-DD\" />"
201
+ },
202
+ {
203
+ "name": "showFormat",
204
+ "description": "展示的日期格式化字符串",
205
+ "type": {
206
+ "raw": "string",
207
+ "kind": "string"
208
+ },
209
+ "required": false,
210
+ "default": "undefined",
211
+ "usageExample": "<Datepicker showFormat=\"YYYY年MM月DD日\" />"
212
+ },
213
+ {
214
+ "name": "min",
215
+ "description": "最小可选日期",
216
+ "type": {
217
+ "raw": "Value",
218
+ "kind": "custom"
219
+ },
220
+ "required": false,
221
+ "default": "undefined",
222
+ "usageExample": "<Datepicker min=\"2024-01-01\" />"
223
+ },
224
+ {
225
+ "name": "max",
226
+ "description": "最大可选日期",
227
+ "type": {
228
+ "raw": "Value",
229
+ "kind": "custom"
230
+ },
231
+ "required": false,
232
+ "default": "undefined",
233
+ "usageExample": "<Datepicker max=\"2024-12-31\" />"
234
+ },
235
+ {
236
+ "name": "disabledDate",
237
+ "description": "禁用日期的函数,返回 true 表示禁用该日期",
238
+ "type": {
239
+ "raw": "(v: Dayjs) => boolean",
240
+ "kind": "function",
241
+ "functionSignature": "(v: Dayjs) => boolean"
242
+ },
243
+ "required": false,
244
+ "default": "undefined",
245
+ "usageExample": "<Datepicker :disabledDate=\"(d) => d.day() === 0\" />"
246
+ },
247
+ {
248
+ "name": "shortcuts",
249
+ "description": "快捷方式配置",
250
+ "type": {
251
+ "raw": "Shortcut[]",
252
+ "kind": "array"
253
+ },
254
+ "required": false,
255
+ "default": "undefined",
256
+ "usageExample": "<Datepicker :shortcuts=\"shortcuts\" />"
257
+ },
258
+ {
259
+ "name": "hideIcon",
260
+ "description": "是否隐藏后面的图标",
261
+ "type": {
262
+ "raw": "boolean",
263
+ "kind": "boolean"
264
+ },
265
+ "required": false,
266
+ "default": "false",
267
+ "usageExample": "<Datepicker hideIcon />"
268
+ },
269
+ {
270
+ "name": "fluid",
271
+ "description": "是否宽度 100%",
272
+ "type": {
273
+ "raw": "boolean",
274
+ "kind": "boolean"
275
+ },
276
+ "required": false,
277
+ "default": "false",
278
+ "usageExample": "<Datepicker fluid />"
279
+ },
280
+ {
281
+ "name": "inline",
282
+ "description": "是否展示内联模式",
283
+ "type": {
284
+ "raw": "boolean",
285
+ "kind": "boolean"
286
+ },
287
+ "required": false,
288
+ "default": "false",
289
+ "usageExample": "<Datepicker inline />"
290
+ },
291
+ {
292
+ "name": "flat",
293
+ "description": "是否展示扁平样式",
294
+ "type": {
295
+ "raw": "boolean",
296
+ "kind": "boolean"
297
+ },
298
+ "required": false,
299
+ "default": "false",
300
+ "usageExample": "<Datepicker flat />"
301
+ },
302
+ {
303
+ "name": "width",
304
+ "description": "指定宽度,自动添加单位 px",
305
+ "type": {
306
+ "raw": "number | string",
307
+ "kind": "union"
308
+ },
309
+ "required": false,
310
+ "default": "undefined",
311
+ "usageExample": "<Datepicker :width=\"200\" />"
312
+ },
313
+ {
314
+ "name": "container",
315
+ "description": "指定弹出菜单追加的位置,默认 Dialog 组件会追加到 Dialog 中,其他追加到 body",
316
+ "type": {
317
+ "raw": "string | ((parentDom: Element, anchor: Node | null) => Element)",
318
+ "kind": "union"
319
+ },
320
+ "required": false,
321
+ "default": "undefined",
322
+ "usageExample": "<Datepicker :container=\"() => document.body\" />"
323
+ },
324
+ {
325
+ "name": "show",
326
+ "description": "是否展示菜单项(受控模式)",
327
+ "type": {
328
+ "raw": "boolean",
329
+ "kind": "boolean"
330
+ },
331
+ "required": false,
332
+ "default": "false",
333
+ "usageExample": "<Datepicker :show=\"visible\" />"
334
+ },
335
+ {
336
+ "name": "position",
337
+ "description": "菜单弹出的位置",
338
+ "type": {
339
+ "raw": "Position | \"left\" | \"bottom\" | \"right\" | \"top\"",
340
+ "kind": "union",
341
+ "unionTypes": [
342
+ "left",
343
+ "bottom",
344
+ "right",
345
+ "top"
346
+ ]
347
+ },
348
+ "required": false,
349
+ "default": "{my: 'left top+8', at: 'left bottom'}",
350
+ "usageExample": "<Datepicker position=\"top\" />"
351
+ },
352
+ {
353
+ "name": "nowrap",
354
+ "description": "选中值区域是否不换行展示,适合单行紧凑布局",
355
+ "type": {
356
+ "raw": "boolean",
357
+ "kind": "boolean"
358
+ },
359
+ "required": false,
360
+ "default": "false",
361
+ "usageExample": "<Datepicker nowrap />"
362
+ },
363
+ {
364
+ "name": "draggable",
365
+ "description": "多选值是否支持拖动排序",
366
+ "type": {
367
+ "raw": "boolean",
368
+ "kind": "boolean"
369
+ },
370
+ "required": false,
371
+ "default": "false",
372
+ "usageExample": "<Datepicker multiple draggable />"
373
+ },
374
+ {
375
+ "name": "virtual",
376
+ "description": "是否开启虚拟列表,用于大数据量场景",
377
+ "type": {
378
+ "raw": "boolean",
379
+ "kind": "boolean"
380
+ },
381
+ "required": false,
382
+ "default": "false",
383
+ "usageExample": "<Datepicker virtual />"
384
+ }
385
+ ],
386
+ "events": [
387
+ {
388
+ "name": "show",
389
+ "vueEventName": "@show",
390
+ "description": "菜单弹出时触发",
391
+ "payload": [],
392
+ "usageExample": "<Datepicker @show=\"handleShow\" />",
393
+ "handlerExample": "const handleShow = () => {\n console.log('日期选择器已打开');\n};"
394
+ },
395
+ {
396
+ "name": "hide",
397
+ "vueEventName": "@hide",
398
+ "description": "菜单隐藏时触发",
399
+ "payload": [],
400
+ "usageExample": "<Datepicker @hide=\"handleHide\" />",
401
+ "handlerExample": "const handleHide = () => {\n console.log('日期选择器已关闭');\n};"
402
+ },
403
+ {
404
+ "name": "selecting",
405
+ "vueEventName": "@selecting",
406
+ "description": "范围选择时,用户正在操作选择时触发",
407
+ "payload": [
408
+ {
409
+ "name": "value",
410
+ "type": "[Dayjs, Dayjs?]",
411
+ "description": "当前选择的值"
412
+ },
413
+ {
414
+ "name": "confirmed",
415
+ "type": "boolean",
416
+ "description": "当前这次 selecting 是否已经进入确认完成态;常见交互过程中通常为 `false`。"
417
+ }
418
+ ],
419
+ "usageExample": "<Datepicker range @selecting=\"handleSelecting\" />",
420
+ "handlerExample": "const handleSelecting = (value, confirmed) => {\n console.log('正在选择:', value, confirmed);\n};"
421
+ }
422
+ ],
423
+ "methods": [
424
+ {
425
+ "name": "show",
426
+ "description": "主动展开日期选择面板。",
427
+ "params": [],
428
+ "returnType": "void",
429
+ "usageExample": "datepickerRef.value?.show();"
430
+ },
431
+ {
432
+ "name": "hide",
433
+ "description": "主动关闭日期选择面板。",
434
+ "params": [],
435
+ "returnType": "void",
436
+ "usageExample": "datepickerRef.value?.hide();"
437
+ },
438
+ {
439
+ "name": "position",
440
+ "description": "重新计算日期选择面板的位置。",
441
+ "params": [],
442
+ "returnType": "void",
443
+ "usageExample": "datepickerRef.value?.position();"
444
+ }
445
+ ],
446
+ "typeDefinitions": [
447
+ {
448
+ "name": "Value",
449
+ "definition": "type Value = string | Date | number | Dayjs",
450
+ "description": "日期值类型,支持字符串、Date 对象、时间戳或 Dayjs 对象"
451
+ },
452
+ {
453
+ "name": "Shortcut",
454
+ "definition": "type Shortcut = {\n label: (() => string | VNode) | string | VNode\n value: () => Value | [Value, Value]\n}",
455
+ "description": "快捷方式配置类型"
52
456
  }
53
- ],
54
- "usageExample": "<Datepicker type=\"datetime\" />"
55
- },
56
- {
57
- "name": "range",
58
- "description": "是否选择日期范围",
59
- "type": {
60
- "raw": "boolean",
61
- "kind": "boolean"
62
- },
63
- "required": false,
64
- "default": "false",
65
- "usageExample": "<Datepicker range />"
66
- },
67
- {
68
- "name": "multiple",
69
- "description": "是否支持多选",
70
- "type": {
71
- "raw": "boolean",
72
- "kind": "boolean"
73
- },
74
- "required": false,
75
- "default": "false",
76
- "usageExample": "<Datepicker multiple />"
77
- },
78
- {
79
- "name": "disabled",
80
- "description": "是否禁用",
81
- "type": {
82
- "raw": "boolean",
83
- "kind": "boolean"
84
- },
85
- "required": false,
86
- "default": "false",
87
- "usageExample": "<Datepicker disabled />"
88
- },
89
- {
90
- "name": "clearable",
91
- "description": "是否可清空",
92
- "type": {
93
- "raw": "boolean",
94
- "kind": "boolean"
95
- },
96
- "required": false,
97
- "default": "false",
98
- "usageExample": "<Datepicker clearable />"
99
- },
100
- {
101
- "name": "size",
102
- "description": "尺寸",
103
- "type": {
104
- "raw": "\"large\" | \"default\" | \"small\" | \"mini\"",
105
- "kind": "union",
106
- "unionTypes": [
107
- "large",
108
- "default",
109
- "small",
110
- "mini"
111
- ]
112
- },
113
- "required": false,
114
- "default": "\"default\"",
115
- "allowedValues": [
116
- {
117
- "value": "large",
118
- "label": "大尺寸"
119
- },
120
- {
121
- "value": "default",
122
- "label": "默认尺寸",
123
- "isDefault": true
124
- },
125
- {
126
- "value": "small",
127
- "label": "小尺寸"
128
- },
129
- {
130
- "value": "mini",
131
- "label": "迷你尺寸"
457
+ ],
458
+ "examples": [
459
+ {
460
+ "id": "datepicker_basic",
461
+ "title": "基础用法",
462
+ "description": "基本的日期选择",
463
+ "difficulty": "easy",
464
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\n</script>\n<template>\n <Datepicker v-model=\"date\" clearable />\n <p>选择的日期: {{ date }}</p>\n</template>",
465
+ "tags": [
466
+ "basic"
467
+ ],
468
+ "usedProps": [
469
+ "value",
470
+ "clearable"
471
+ ],
472
+ "usedEvents": [],
473
+ "usedMethods": [],
474
+ "scenario": "创建一个基本的日期选择器"
475
+ },
476
+ {
477
+ "id": "datepicker_datetime",
478
+ "title": "日期时间选择",
479
+ "description": "同时选择日期和时间",
480
+ "difficulty": "easy",
481
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst datetime = ref('');\n</script>\n<template>\n <Datepicker v-model=\"datetime\" type=\"datetime\" clearable />\n</template>",
482
+ "tags": [
483
+ "datetime",
484
+ "time"
485
+ ],
486
+ "usedProps": [
487
+ "value",
488
+ "type",
489
+ "clearable"
490
+ ],
491
+ "usedEvents": [],
492
+ "usedMethods": [],
493
+ "scenario": "选择日期和时间"
494
+ },
495
+ {
496
+ "id": "datepicker_range",
497
+ "title": "范围选择",
498
+ "description": "选择日期范围",
499
+ "difficulty": "medium",
500
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst dateRange = ref<[string, string]>(['', '']);\n</script>\n<template>\n <Datepicker v-model=\"dateRange\" range clearable />\n</template>",
501
+ "tags": [
502
+ "range",
503
+ "dual"
504
+ ],
505
+ "usedProps": [
506
+ "value",
507
+ "range",
508
+ "clearable"
509
+ ],
510
+ "usedEvents": [],
511
+ "usedMethods": [],
512
+ "scenario": "选择开始日期和结束日期"
513
+ },
514
+ {
515
+ "id": "datepicker_min_max",
516
+ "title": "限制日期范围",
517
+ "description": "限制可选日期的最小和最大值",
518
+ "difficulty": "easy",
519
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\nconst minDate = '2024-01-01';\nconst maxDate = '2024-12-31';\n</script>\n<template>\n <Datepicker v-model=\"date\" :min=\"minDate\" :max=\"maxDate\" />\n</template>",
520
+ "tags": [
521
+ "min",
522
+ "max",
523
+ "limit"
524
+ ],
525
+ "usedProps": [
526
+ "value",
527
+ "min",
528
+ "max"
529
+ ],
530
+ "usedEvents": [],
531
+ "usedMethods": [],
532
+ "scenario": "限制可选的日期范围"
533
+ },
534
+ {
535
+ "id": "datepicker_disabled_date",
536
+ "title": "禁用日期",
537
+ "description": "禁用特定日期(如周末)",
538
+ "difficulty": "medium",
539
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\nimport type { Dayjs } from 'dayjs';\n\nconst date = ref('');\n\n// 禁用周末\nconst disabledDate = (d: Dayjs) => {\n const day = d.day();\n return day === 0 || day === 6;\n};\n</script>\n<template>\n <Datepicker v-model=\"date\" :disabledDate=\"disabledDate\" />\n</template>",
540
+ "tags": [
541
+ "disabledDate",
542
+ "weekend"
543
+ ],
544
+ "usedProps": [
545
+ "value",
546
+ "disabledDate"
547
+ ],
548
+ "usedEvents": [],
549
+ "usedMethods": [],
550
+ "scenario": "禁用周末日期"
551
+ },
552
+ {
553
+ "id": "datepicker_shortcuts",
554
+ "title": "快捷方式",
555
+ "description": "添加快捷日期选择",
556
+ "difficulty": "medium",
557
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\nimport dayjs from 'dayjs';\n\nconst date = ref('');\n\nconst shortcuts = [\n { label: '今天', value: () => dayjs() },\n { label: '昨天', value: () => dayjs().subtract(1, 'day') },\n { label: '一周前', value: () => dayjs().subtract(7, 'day') }\n];\n</script>\n<template>\n <Datepicker v-model=\"date\" :shortcuts=\"shortcuts\" />\n</template>",
558
+ "tags": [
559
+ "shortcuts",
560
+ "quick"
561
+ ],
562
+ "usedProps": [
563
+ "value",
564
+ "shortcuts"
565
+ ],
566
+ "usedEvents": [],
567
+ "usedMethods": [],
568
+ "scenario": "添加快捷日期选择"
569
+ },
570
+ {
571
+ "id": "datepicker_year_month",
572
+ "title": "年份/月份选择",
573
+ "description": "选择年份或月份",
574
+ "difficulty": "easy",
575
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst year = ref('');\nconst month = ref('');\n</script>\n<template>\n <Datepicker v-model=\"year\" type=\"year\" placeholder=\"请选择年份\" />\n <Datepicker v-model=\"month\" type=\"month\" placeholder=\"请选择月份\" />\n</template>",
576
+ "tags": [
577
+ "year",
578
+ "month"
579
+ ],
580
+ "usedProps": [
581
+ "value",
582
+ "type",
583
+ "placeholder"
584
+ ],
585
+ "usedEvents": [],
586
+ "usedMethods": [],
587
+ "scenario": "选择年份或月份"
588
+ },
589
+ {
590
+ "id": "datepicker_custom_format",
591
+ "title": "自定义格式",
592
+ "description": "自定义日期显示格式",
593
+ "difficulty": "easy",
594
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\n</script>\n<template>\n <Datepicker v-model=\"date\" showFormat=\"YYYY年MM月DD日\" />\n</template>",
595
+ "tags": [
596
+ "format",
597
+ "custom"
598
+ ],
599
+ "usedProps": [
600
+ "value",
601
+ "showFormat"
602
+ ],
603
+ "usedEvents": [],
604
+ "usedMethods": [],
605
+ "scenario": "自定义日期的显示格式"
132
606
  }
133
- ],
134
- "usageExample": "<Datepicker size=\"small\" />"
135
- },
136
- {
137
- "name": "placeholder",
138
- "description": "占位文案",
139
- "type": {
140
- "raw": "string",
141
- "kind": "string"
142
- },
143
- "required": false,
144
- "default": "\"请选择日期\"",
145
- "usageExample": "<Datepicker placeholder=\"选择开始日期\" />"
146
- },
147
- {
148
- "name": "format",
149
- "description": "日期格式化字符串",
150
- "type": {
151
- "raw": "string",
152
- "kind": "string"
153
- },
154
- "required": false,
155
- "default": "\"YYYY-MM-DD HH:mm:ss\"",
156
- "usageExample": "<Datepicker format=\"YYYY-MM-DD\" />"
157
- },
158
- {
159
- "name": "valueFormat",
160
- "description": "value 值的日期格式化字符串",
161
- "type": {
162
- "raw": "string",
163
- "kind": "string"
164
- },
165
- "required": false,
166
- "default": "undefined",
167
- "usageExample": "<Datepicker valueFormat=\"YYYY-MM-DD\" />"
168
- },
169
- {
170
- "name": "showFormat",
171
- "description": "展示的日期格式化字符串",
172
- "type": {
173
- "raw": "string",
174
- "kind": "string"
175
- },
176
- "required": false,
177
- "default": "undefined",
178
- "usageExample": "<Datepicker showFormat=\"YYYY年MM月DD日\" />"
179
- },
180
- {
181
- "name": "min",
182
- "description": "最小可选日期",
183
- "type": {
184
- "raw": "Value",
185
- "kind": "custom"
186
- },
187
- "required": false,
188
- "default": "undefined",
189
- "usageExample": "<Datepicker min=\"2024-01-01\" />"
190
- },
191
- {
192
- "name": "max",
193
- "description": "最大可选日期",
194
- "type": {
195
- "raw": "Value",
196
- "kind": "custom"
197
- },
198
- "required": false,
199
- "default": "undefined",
200
- "usageExample": "<Datepicker max=\"2024-12-31\" />"
201
- },
202
- {
203
- "name": "disabledDate",
204
- "description": "禁用日期的函数,返回 true 表示禁用该日期",
205
- "type": {
206
- "raw": "(v: Dayjs) => boolean",
207
- "kind": "function",
208
- "functionSignature": "(v: Dayjs) => boolean"
209
- },
210
- "required": false,
211
- "default": "undefined",
212
- "usageExample": "<Datepicker :disabledDate=\"(d) => d.day() === 0\" /></Datepicker>"
213
- },
214
- {
215
- "name": "shortcuts",
216
- "description": "快捷方式配置",
217
- "type": {
218
- "raw": "Shortcut[]",
219
- "kind": "array"
220
- },
221
- "required": false,
222
- "default": "undefined",
223
- "usageExample": "<Datepicker :shortcuts=\"shortcuts\" />"
224
- },
225
- {
226
- "name": "hideIcon",
227
- "description": "是否隐藏后面的图标",
228
- "type": {
229
- "raw": "boolean",
230
- "kind": "boolean"
231
- },
232
- "required": false,
233
- "default": "false",
234
- "usageExample": "<Datepicker hideIcon />"
235
- },
236
- {
237
- "name": "fluid",
238
- "description": "是否宽度 100%",
239
- "type": {
240
- "raw": "boolean",
241
- "kind": "boolean"
242
- },
243
- "required": false,
244
- "default": "false",
245
- "usageExample": "<Datepicker fluid />"
246
- },
247
- {
248
- "name": "inline",
249
- "description": "是否展示内联模式",
250
- "type": {
251
- "raw": "boolean",
252
- "kind": "boolean"
253
- },
254
- "required": false,
255
- "default": "false",
256
- "usageExample": "<Datepicker inline />"
257
- },
258
- {
259
- "name": "flat",
260
- "description": "是否展示扁平样式",
261
- "type": {
262
- "raw": "boolean",
263
- "kind": "boolean"
264
- },
265
- "required": false,
266
- "default": "false",
267
- "usageExample": "<Datepicker flat />"
268
- },
269
- {
270
- "name": "width",
271
- "description": "指定宽度,自动添加单位 px",
272
- "type": {
273
- "raw": "number | string",
274
- "kind": "union"
275
- },
276
- "required": false,
277
- "default": "undefined",
278
- "usageExample": "<Datepicker :width=\"200\" />"
279
- }
280
- ],
281
- "events": [
282
- {
283
- "name": "show",
284
- "vueEventName": "@show",
285
- "description": "菜单弹出时触发",
286
- "payload": [],
287
- "usageExample": "<Datepicker @show=\"handleShow\" />",
288
- "handlerExample": "const handleShow = () => {\n console.log('日期选择器已打开');\n};"
289
- },
290
- {
291
- "name": "hide",
292
- "vueEventName": "@hide",
293
- "description": "菜单隐藏时触发",
294
- "payload": [],
295
- "usageExample": "<Datepicker @hide=\"handleHide\" />",
296
- "handlerExample": "const handleHide = () => {\n console.log('日期选择器已关闭');\n};"
297
- },
298
- {
299
- "name": "selecting",
300
- "vueEventName": "@selecting",
301
- "description": "范围选择时,用户正在操作选择时触发",
302
- "payload": [
303
- {
304
- "name": "value",
305
- "type": "[Dayjs, Dayjs?]",
306
- "description": "当前选择的值"
607
+ ],
608
+ "commonMistakes": [
609
+ {
610
+ "id": "datepicker_range_value_type",
611
+ "description": "范围选择时 value 类型错误",
612
+ "wrongCode": "const date = ref('');\n<Datepicker v-model=\"date\" range />",
613
+ "correctCode": "const dateRange = ref<[string, string]>(['', '']);\n<Datepicker v-model=\"dateRange\" range />",
614
+ "explanation": "当 range 为 true 时,value 必须是 [string, string] 数组",
615
+ "relatedProps": [
616
+ "value",
617
+ "range"
618
+ ]
619
+ },
620
+ {
621
+ "id": "datepicker_type_typo",
622
+ "description": "type 值拼写错误",
623
+ "wrongCode": "<Datepicker type=\"dateTime\" />",
624
+ "correctCode": "<Datepicker type=\"datetime\" />",
625
+ "explanation": "type 值为小写 datetime,不是 dateTime",
626
+ "relatedProps": [
627
+ "type"
628
+ ]
629
+ },
630
+ {
631
+ "id": "datepicker_disableddate_return",
632
+ "description": "disabledDate 函数返回值错误",
633
+ "wrongCode": "const disabledDate = (d) => { if (d.day() === 0) return '禁用'; }",
634
+ "correctCode": "const disabledDate = (d) => d.day() === 0;",
635
+ "explanation": "disabledDate 必须返回布尔值,true 表示禁用",
636
+ "relatedProps": [
637
+ "disabledDate"
638
+ ]
307
639
  }
308
- ],
309
- "usageExample": "<Datepicker range @selecting=\"handleSelecting\" />",
310
- "handlerExample": "const handleSelecting = (value) => {\n console.log('正在选择:', value);\n};"
311
- }
312
- ],
313
- "methods": [],
314
- "typeDefinitions": [
315
- {
316
- "name": "Value",
317
- "definition": "type Value = string | Date | number | Dayjs",
318
- "description": "日期值类型,支持字符串、Date 对象、时间戳或 Dayjs 对象"
319
- },
320
- {
321
- "name": "Shortcut",
322
- "definition": "type Shortcut = {\n label: (() => string | VNode) | string | VNode\n value: () => Value | [Value, Value]\n}",
323
- "description": "快捷方式配置类型"
324
- }
325
- ],
326
- "examples": [
327
- {
328
- "id": "datepicker_basic",
329
- "title": "基础用法",
330
- "description": "基本的日期选择",
331
- "difficulty": "easy",
332
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\n</script>\n<template>\n <Datepicker v-model=\"date\" clearable />\n <p>选择的日期: {{ date }}</p>\n</template>",
333
- "tags": [
334
- "basic"
335
- ],
336
- "usedProps": [
337
- "value",
338
- "clearable"
339
- ],
340
- "usedEvents": [],
341
- "usedMethods": [],
342
- "scenario": "创建一个基本的日期选择器"
343
- },
344
- {
345
- "id": "datepicker_datetime",
346
- "title": "日期时间选择",
347
- "description": "同时选择日期和时间",
348
- "difficulty": "easy",
349
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst datetime = ref('');\n</script>\n<template>\n <Datepicker v-model=\"datetime\" type=\"datetime\" clearable />\n</template>",
350
- "tags": [
351
- "datetime",
352
- "time"
353
- ],
354
- "usedProps": [
355
- "value",
356
- "type",
357
- "clearable"
358
- ],
359
- "usedEvents": [],
360
- "usedMethods": [],
361
- "scenario": "选择日期和时间"
362
- },
363
- {
364
- "id": "datepicker_range",
365
- "title": "范围选择",
366
- "description": "选择日期范围",
367
- "difficulty": "medium",
368
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst dateRange = ref<[string, string]>(['', '']);\n</script>\n<template>\n <Datepicker v-model=\"dateRange\" range clearable />\n</template>",
369
- "tags": [
370
- "range",
371
- "dual"
372
- ],
373
- "usedProps": [
374
- "value",
375
- "range",
376
- "clearable"
377
- ],
378
- "usedEvents": [],
379
- "usedMethods": [],
380
- "scenario": "选择开始日期和结束日期"
381
- },
382
- {
383
- "id": "datepicker_min_max",
384
- "title": "限制日期范围",
385
- "description": "限制可选日期的最小和最大值",
386
- "difficulty": "easy",
387
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\nconst minDate = '2024-01-01';\nconst maxDate = '2024-12-31';\n</script>\n<template>\n <Datepicker v-model=\"date\" :min=\"minDate\" :max=\"maxDate\" />\n</template>",
388
- "tags": [
389
- "min",
390
- "max",
391
- "limit"
392
- ],
393
- "usedProps": [
394
- "value",
395
- "min",
396
- "max"
397
- ],
398
- "usedEvents": [],
399
- "usedMethods": [],
400
- "scenario": "限制可选的日期范围"
401
- },
402
- {
403
- "id": "datepicker_disabled_date",
404
- "title": "禁用日期",
405
- "description": "禁用特定日期(如周末)",
406
- "difficulty": "medium",
407
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\nimport type { Dayjs } from 'dayjs';\n\nconst date = ref('');\n\n// 禁用周末\nconst disabledDate = (d: Dayjs) => {\n const day = d.day();\n return day === 0 || day === 6;\n};\n</script>\n<template>\n <Datepicker v-model=\"date\" :disabledDate=\"disabledDate\" />\n</template>",
408
- "tags": [
409
- "disabledDate",
410
- "weekend"
411
- ],
412
- "usedProps": [
413
- "value",
414
- "disabledDate"
415
- ],
416
- "usedEvents": [],
417
- "usedMethods": [],
418
- "scenario": "禁用周末日期"
419
- },
420
- {
421
- "id": "datepicker_shortcuts",
422
- "title": "快捷方式",
423
- "description": "添加快捷日期选择",
424
- "difficulty": "medium",
425
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\nimport dayjs from 'dayjs';\n\nconst date = ref('');\n\nconst shortcuts = [\n { label: '今天', value: () => dayjs() },\n { label: '昨天', value: () => dayjs().subtract(1, 'day') },\n { label: '一周前', value: () => dayjs().subtract(7, 'day') }\n];\n</script>\n<template>\n <Datepicker v-model=\"date\" :shortcuts=\"shortcuts\" />\n</template>",
426
- "tags": [
427
- "shortcuts",
428
- "quick"
429
- ],
430
- "usedProps": [
431
- "value",
432
- "shortcuts"
433
- ],
434
- "usedEvents": [],
435
- "usedMethods": [],
436
- "scenario": "添加快捷日期选择"
437
- },
438
- {
439
- "id": "datepicker_year_month",
440
- "title": "年份/月份选择",
441
- "description": "选择年份或月份",
442
- "difficulty": "easy",
443
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst year = ref('');\nconst month = ref('');\n</script>\n<template>\n <Datepicker v-model=\"year\" type=\"year\" placeholder=\"请选择年份\" />\n <Datepicker v-model=\"month\" type=\"month\" placeholder=\"请选择月份\" />\n</template>",
444
- "tags": [
445
- "year",
446
- "month"
447
- ],
448
- "usedProps": [
449
- "value",
450
- "type",
451
- "placeholder"
452
- ],
453
- "usedEvents": [],
454
- "usedMethods": [],
455
- "scenario": "选择年份或月份"
456
- },
457
- {
458
- "id": "datepicker_custom_format",
459
- "title": "自定义格式",
460
- "description": "自定义日期显示格式",
461
- "difficulty": "easy",
462
- "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Datepicker } from '@king-design/vue';\n\nconst date = ref('');\n</script>\n<template>\n <Datepicker v-model=\"date\" showFormat=\"YYYY年MM月DD日\" />\n</template>",
463
- "tags": [
464
- "format",
465
- "custom"
466
- ],
467
- "usedProps": [
468
- "value",
469
- "showFormat"
470
- ],
471
- "usedEvents": [],
472
- "usedMethods": [],
473
- "scenario": "自定义日期的显示格式"
474
- }
475
- ],
476
- "commonMistakes": [
477
- {
478
- "id": "datepicker_range_value_type",
479
- "description": "范围选择时 value 类型错误",
480
- "wrongCode": "const date = ref('');\n<Datepicker v-model=\"date\" range />",
481
- "correctCode": "const dateRange = ref<[string, string]>(['', '']);\n<Datepicker v-model=\"dateRange\" range />",
482
- "explanation": "当 range 为 true 时,value 必须是 [string, string] 数组",
483
- "relatedProps": [
484
- "value",
485
- "range"
486
- ]
487
- },
488
- {
489
- "id": "datepicker_type_typo",
490
- "description": "type 值拼写错误",
491
- "wrongCode": "<Datepicker type=\"dateTime\" />",
492
- "correctCode": "<Datepicker type=\"datetime\" />",
493
- "explanation": "type 值为小写 datetime,不是 dateTime",
494
- "relatedProps": [
495
- "type"
496
- ]
497
- },
498
- {
499
- "id": "datepicker_disableddate_return",
500
- "description": "disabledDate 函数返回值错误",
501
- "wrongCode": "const disabledDate = (d) => { if (d.day() === 0) return '禁用'; }",
502
- "correctCode": "const disabledDate = (d) => d.day() === 0;",
503
- "explanation": "disabledDate 必须返回布尔值,true 表示禁用",
504
- "relatedProps": [
505
- "disabledDate"
506
- ]
507
- }
508
- ],
509
- "searchKeywords": [
510
- "日期",
511
- "datepicker",
512
- "时间",
513
- "日历",
514
- "calendar",
515
- "年份",
516
- "月份",
517
- "范围选择"
518
- ],
519
- "useCases": [
520
- "表单日期输入",
521
- "订单时间选择",
522
- "日期范围筛选",
523
- "预约时间选择",
524
- "报表日期查询"
525
- ],
526
- "relatedComponents": [
527
- "Timepicker"
528
- ]
640
+ ],
641
+ "searchKeywords": [
642
+ "日期",
643
+ "datepicker",
644
+ "时间",
645
+ "日历",
646
+ "calendar",
647
+ "年份",
648
+ "月份",
649
+ "范围选择"
650
+ ],
651
+ "useCases": [
652
+ "表单日期输入",
653
+ "订单时间选择",
654
+ "日期范围筛选",
655
+ "预约时间选择",
656
+ "报表日期查询"
657
+ ],
658
+ "relatedComponents": [
659
+ "Timepicker"
660
+ ]
529
661
  }