cy-element-ui 1.1.23 → 1.1.26

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 (663) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +629 -494
  3. package/lib/Alert.js +420 -0
  4. package/lib/Aside.js +277 -0
  5. package/lib/Autocomplete.js +2051 -0
  6. package/lib/Avatar.js +363 -0
  7. package/lib/Backtop.js +404 -0
  8. package/lib/Badge.js +334 -0
  9. package/lib/Breadcrumb.js +293 -0
  10. package/lib/BreadcrumbItem.js +322 -0
  11. package/lib/Button.js +357 -0
  12. package/lib/ButtonGroup.js +262 -0
  13. package/lib/Calendar.js +1146 -0
  14. package/lib/Card.js +297 -0
  15. package/lib/Carousel.js +707 -0
  16. package/lib/CarouselItem.js +434 -0
  17. package/lib/Cascader.js +4641 -0
  18. package/lib/CascaderPanel.js +2602 -0
  19. package/lib/Checkbox.js +627 -0
  20. package/lib/CheckboxButton.js +583 -0
  21. package/lib/CheckboxGroup.js +313 -0
  22. package/lib/Col.js +177 -0
  23. package/lib/Collapse.js +329 -0
  24. package/lib/CollapseItem.js +497 -0
  25. package/lib/ColorPicker.js +2885 -0
  26. package/lib/Container.js +288 -0
  27. package/lib/CySelectDisplayInput.js +367 -0
  28. package/lib/CySubTitle.js +295 -0
  29. package/lib/CyTabDialog.js +1184 -0
  30. package/lib/CyTreeSelect.js +4422 -0
  31. package/lib/DatePicker.js +7574 -0
  32. package/lib/Descriptions.js +457 -0
  33. package/lib/DescriptionsItem.js +140 -0
  34. package/lib/Dialog.js +598 -0
  35. package/lib/Divider.js +313 -0
  36. package/lib/Drawer.js +592 -0
  37. package/lib/Dropdown.js +856 -0
  38. package/lib/DropdownItem.js +316 -0
  39. package/lib/DropdownMenu.js +351 -0
  40. package/lib/Empty.js +730 -0
  41. package/lib/Footer.js +277 -0
  42. package/lib/Form.js +466 -0
  43. package/lib/FormItem.js +826 -0
  44. package/lib/Header.js +277 -0
  45. package/lib/Icon.js +265 -0
  46. package/lib/Image.js +1138 -0
  47. package/lib/InfiniteScroll.js +301 -0
  48. package/lib/Input.js +999 -0
  49. package/lib/InputNumber.js +1552 -0
  50. package/lib/Link.js +332 -0
  51. package/lib/Loading.js +631 -0
  52. package/lib/Main.js +264 -0
  53. package/lib/Menu.js +865 -0
  54. package/lib/MenuItem.js +818 -0
  55. package/lib/MenuItemGroup.js +308 -0
  56. package/lib/Message.js +548 -0
  57. package/lib/MessageBox.js +2134 -0
  58. package/lib/Notification.js +615 -0
  59. package/lib/Option.js +474 -0
  60. package/lib/OptionGroup.js +344 -0
  61. package/lib/PageHeader.js +319 -0
  62. package/lib/Pagination.js +4123 -0
  63. package/lib/Popconfirm.js +1025 -0
  64. package/lib/Popover.js +617 -0
  65. package/lib/Progress.js +595 -0
  66. package/lib/Radio.js +497 -0
  67. package/lib/RadioButton.js +463 -0
  68. package/lib/RadioGroup.js +391 -0
  69. package/lib/Rate.js +670 -0
  70. package/lib/Result.js +578 -0
  71. package/lib/Row.js +149 -0
  72. package/lib/Scrollbar.js +423 -0
  73. package/lib/Select.js +3368 -0
  74. package/lib/Skeleton.js +372 -0
  75. package/lib/SkeletonItem.js +342 -0
  76. package/lib/Slider.js +2854 -0
  77. package/lib/Spinner.js +301 -0
  78. package/lib/Statistic.js +533 -0
  79. package/lib/Step.js +522 -0
  80. package/lib/Steps.js +342 -0
  81. package/lib/Submenu.js +700 -0
  82. package/lib/Switch.js +554 -0
  83. package/lib/TabPane.js +332 -0
  84. package/lib/Table.js +6125 -0
  85. package/lib/TableColumn.js +1481 -0
  86. package/lib/Tabs.js +920 -0
  87. package/lib/Tag.js +304 -0
  88. package/lib/TimePicker.js +4059 -0
  89. package/lib/TimeSelect.js +2871 -0
  90. package/lib/Timeline.js +275 -0
  91. package/lib/TimelineItem.js +371 -0
  92. package/lib/Tooltip.js +425 -0
  93. package/lib/Transfer.js +2557 -0
  94. package/lib/Tree.js +2680 -0
  95. package/lib/Upload.js +1782 -0
  96. package/lib/directives/mousewheel.js +26 -0
  97. package/lib/directives/repeat-click.js +33 -0
  98. package/lib/element-ui.common.js +44768 -0
  99. package/lib/index.js +23 -1
  100. package/lib/locale/format.js +55 -0
  101. package/lib/locale/index.js +63 -0
  102. package/lib/locale/lang/zh-CN.js +126 -0
  103. package/lib/mixins/emitter.js +36 -0
  104. package/lib/mixins/focus.js +15 -0
  105. package/lib/mixins/locale.js +17 -0
  106. package/lib/mixins/migrating.js +69 -0
  107. package/lib/theme-chalk/alert.css +1 -1
  108. package/lib/theme-chalk/button.css +1 -1
  109. package/lib/theme-chalk/calendar.css +1 -1
  110. package/lib/theme-chalk/cascader-panel.css +1 -1
  111. package/lib/theme-chalk/cascader.css +1 -1
  112. package/lib/theme-chalk/checkbox.css +1 -1
  113. package/lib/theme-chalk/color-picker.css +1 -1
  114. package/lib/theme-chalk/date-picker.css +1 -1
  115. package/lib/theme-chalk/dropdown.css +1 -1
  116. package/lib/theme-chalk/icon.css +1 -1
  117. package/lib/theme-chalk/link.css +1 -1
  118. package/lib/theme-chalk/menu.css +1 -1
  119. package/lib/theme-chalk/message-box.css +1 -1
  120. package/lib/theme-chalk/message.css +1 -1
  121. package/lib/theme-chalk/pagination.css +1 -1
  122. package/lib/theme-chalk/reset.css +1 -1
  123. package/lib/theme-chalk/select-dropdown.css +1 -1
  124. package/lib/theme-chalk/select.css +1 -1
  125. package/lib/theme-chalk/table-column.css +1 -1
  126. package/lib/theme-chalk/table.css +1 -1
  127. package/lib/theme-chalk/tag.css +1 -1
  128. package/lib/theme-chalk/time-picker.css +1 -1
  129. package/lib/theme-chalk/transfer.css +1 -1
  130. package/lib/theme-chalk/tree.css +1 -1
  131. package/lib/transitions/collapse-transition.js +91 -0
  132. package/lib/umd/locale/zh-CN.js +142 -0
  133. package/lib/utils/after-leave.js +35 -0
  134. package/lib/utils/aria-dialog.js +104 -0
  135. package/lib/utils/aria-utils.js +126 -0
  136. package/lib/utils/clickoutside.js +79 -0
  137. package/lib/utils/date-util.js +310 -0
  138. package/lib/utils/date.js +369 -0
  139. package/lib/utils/dom.js +234 -0
  140. package/lib/utils/lodash.js +9421 -0
  141. package/lib/utils/menu/aria-menubar.js +24 -0
  142. package/lib/utils/menu/aria-menuitem.js +62 -0
  143. package/lib/utils/menu/aria-submenu.js +69 -0
  144. package/lib/utils/merge.js +21 -0
  145. package/lib/utils/popper.js +1261 -0
  146. package/lib/utils/popup/index.js +233 -0
  147. package/lib/utils/popup/popup-manager.js +205 -0
  148. package/lib/utils/resize-event.js +59 -0
  149. package/lib/utils/scroll-into-view.js +38 -0
  150. package/lib/utils/scrollbar-width.js +39 -0
  151. package/lib/utils/shared.js +12 -0
  152. package/lib/utils/types.js +52 -0
  153. package/lib/utils/util.js +272 -0
  154. package/lib/utils/vdom.js +13 -0
  155. package/lib/utils/vue-popper.js +202 -0
  156. package/package.json +135 -135
  157. package/packages/alert/index.js +8 -8
  158. package/packages/alert/src/main.vue +94 -94
  159. package/packages/aside/index.js +8 -8
  160. package/packages/aside/src/main.vue +20 -20
  161. package/packages/autocomplete/index.js +8 -8
  162. package/packages/autocomplete/src/autocomplete-suggestions.vue +76 -76
  163. package/packages/autocomplete/src/autocomplete.vue +285 -285
  164. package/packages/avatar/index.js +8 -8
  165. package/packages/avatar/src/main.vue +107 -107
  166. package/packages/backtop/index.js +8 -8
  167. package/packages/backtop/src/main.vue +110 -110
  168. package/packages/badge/index.js +8 -8
  169. package/packages/badge/src/main.vue +53 -53
  170. package/packages/breadcrumb/index.js +8 -8
  171. package/packages/breadcrumb/src/breadcrumb-item.vue +41 -41
  172. package/packages/breadcrumb/src/breadcrumb.vue +34 -34
  173. package/packages/breadcrumb-item/index.js +8 -8
  174. package/packages/button/index.js +8 -8
  175. package/packages/button/src/button-group.vue +10 -10
  176. package/packages/button/src/button.vue +78 -78
  177. package/packages/button-group/index.js +8 -8
  178. package/packages/calendar/index.js +8 -8
  179. package/packages/calendar/src/date-table.vue +200 -200
  180. package/packages/calendar/src/main.vue +280 -280
  181. package/packages/card/index.js +8 -8
  182. package/packages/card/src/main.vue +23 -23
  183. package/packages/carousel/index.js +8 -8
  184. package/packages/carousel/src/item.vue +138 -138
  185. package/packages/carousel/src/main.vue +315 -315
  186. package/packages/carousel-item/index.js +8 -8
  187. package/packages/cascader/index.js +8 -8
  188. package/packages/cascader/src/cascader.vue +663 -663
  189. package/packages/cascader-panel/index.js +8 -8
  190. package/packages/cascader-panel/src/cascader-menu.vue +138 -138
  191. package/packages/cascader-panel/src/cascader-node.vue +246 -246
  192. package/packages/cascader-panel/src/cascader-panel.vue +391 -391
  193. package/packages/cascader-panel/src/node.js +165 -165
  194. package/packages/cascader-panel/src/store.js +57 -57
  195. package/packages/checkbox/index.js +8 -8
  196. package/packages/checkbox/src/checkbox-button.vue +199 -199
  197. package/packages/checkbox/src/checkbox-group.vue +48 -48
  198. package/packages/checkbox/src/checkbox.vue +222 -222
  199. package/packages/checkbox-button/index.js +8 -8
  200. package/packages/checkbox-group/index.js +8 -8
  201. package/packages/col/index.js +9 -9
  202. package/packages/col/src/col.js +71 -71
  203. package/packages/collapse/index.js +9 -9
  204. package/packages/collapse/src/collapse-item.vue +114 -114
  205. package/packages/collapse/src/collapse.vue +73 -73
  206. package/packages/collapse-item/index.js +8 -8
  207. package/packages/color-picker/index.js +8 -8
  208. package/packages/color-picker/src/color.js +317 -317
  209. package/packages/color-picker/src/components/alpha-slider.vue +132 -132
  210. package/packages/color-picker/src/components/hue-slider.vue +123 -123
  211. package/packages/color-picker/src/components/picker-dropdown.vue +121 -121
  212. package/packages/color-picker/src/components/predefine.vue +61 -61
  213. package/packages/color-picker/src/components/sv-panel.vue +100 -100
  214. package/packages/color-picker/src/draggable.js +36 -36
  215. package/packages/color-picker/src/main.vue +188 -188
  216. package/packages/container/index.js +8 -8
  217. package/packages/container/src/main.vue +33 -33
  218. package/packages/cy/selectDisplayInput/index.js +8 -8
  219. package/packages/cy/selectDisplayInput/src/main.vue +75 -75
  220. package/packages/cy/subTitle/index.js +7 -7
  221. package/packages/cy/subTitle/src/main.vue +36 -36
  222. package/packages/cy/tabDialog/index.js +23 -23
  223. package/packages/cy/tabDialog/src/dialog/drag.js +63 -63
  224. package/packages/cy/tabDialog/src/dialog/dragHeight.js +34 -34
  225. package/packages/cy/tabDialog/src/dialog/dragWidth.js +30 -30
  226. package/packages/cy/tabDialog/src/main.vue +277 -277
  227. package/packages/cy/treeSelect/index.js +7 -7
  228. package/packages/cy/treeSelect/src/main.vue +290 -290
  229. package/packages/date-picker/index.js +8 -8
  230. package/packages/date-picker/src/basic/date-table.vue +441 -441
  231. package/packages/date-picker/src/basic/month-table.vue +268 -268
  232. package/packages/date-picker/src/basic/time-spinner.vue +304 -304
  233. package/packages/date-picker/src/basic/year-table.vue +111 -111
  234. package/packages/date-picker/src/panel/date-range.vue +680 -680
  235. package/packages/date-picker/src/panel/date.vue +609 -609
  236. package/packages/date-picker/src/panel/month-range.vue +289 -289
  237. package/packages/date-picker/src/panel/time-range.vue +248 -248
  238. package/packages/date-picker/src/panel/time-select.vue +178 -178
  239. package/packages/date-picker/src/panel/time.vue +186 -186
  240. package/packages/date-picker/src/picker/date-picker.js +43 -43
  241. package/packages/date-picker/src/picker/time-picker.js +39 -39
  242. package/packages/date-picker/src/picker/time-select.js +21 -21
  243. package/packages/date-picker/src/picker.vue +956 -956
  244. package/packages/descriptions/index.js +8 -8
  245. package/packages/descriptions/src/descriptions-item.js +30 -30
  246. package/packages/descriptions/src/descriptions-row.js +116 -116
  247. package/packages/descriptions/src/index.js +180 -180
  248. package/packages/descriptions-item/index.js +8 -8
  249. package/packages/dialog/index.js +8 -8
  250. package/packages/dialog/src/component.vue +212 -212
  251. package/packages/divider/index.js +8 -8
  252. package/packages/divider/src/main.vue +37 -37
  253. package/packages/drawer/index.js +8 -8
  254. package/packages/drawer/src/main.vue +205 -205
  255. package/packages/dropdown/index.js +8 -8
  256. package/packages/dropdown/src/dropdown-item.vue +37 -37
  257. package/packages/dropdown/src/dropdown-menu.vue +63 -63
  258. package/packages/dropdown/src/dropdown.vue +293 -293
  259. package/packages/dropdown-item/index.js +8 -8
  260. package/packages/dropdown-menu/index.js +8 -8
  261. package/packages/empty/index.js +7 -7
  262. package/packages/empty/src/img-empty.vue +132 -132
  263. package/packages/empty/src/index.vue +50 -50
  264. package/packages/footer/index.js +8 -8
  265. package/packages/footer/src/main.vue +20 -20
  266. package/packages/form/index.js +8 -8
  267. package/packages/form/src/form-item.vue +324 -324
  268. package/packages/form/src/form.vue +182 -182
  269. package/packages/form/src/label-wrap.vue +78 -78
  270. package/packages/form-item/index.js +8 -8
  271. package/packages/header/index.js +8 -8
  272. package/packages/header/src/main.vue +20 -20
  273. package/packages/icon/index.js +8 -8
  274. package/packages/icon/src/icon.vue +13 -13
  275. package/packages/image/index.js +8 -8
  276. package/packages/image/src/image-viewer.vue +330 -330
  277. package/packages/image/src/main.vue +249 -249
  278. package/packages/infinite-scroll/index.js +8 -8
  279. package/packages/infinite-scroll/src/main.js +149 -149
  280. package/packages/input/index.js +8 -8
  281. package/packages/input/src/calcTextareaHeight.js +104 -104
  282. package/packages/input/src/input.vue +440 -440
  283. package/packages/input-number/index.js +8 -8
  284. package/packages/input-number/src/input-number.vue +286 -286
  285. package/packages/link/index.js +8 -8
  286. package/packages/link/src/main.vue +53 -53
  287. package/packages/loading/index.js +11 -11
  288. package/packages/loading/src/directive.js +133 -133
  289. package/packages/loading/src/index.js +106 -106
  290. package/packages/loading/src/loading.vue +41 -41
  291. package/packages/main/index.js +8 -8
  292. package/packages/main/src/main.vue +12 -12
  293. package/packages/menu/index.js +8 -8
  294. package/packages/menu/src/menu-item-group.vue +45 -45
  295. package/packages/menu/src/menu-item.vue +112 -112
  296. package/packages/menu/src/menu-mixin.js +44 -44
  297. package/packages/menu/src/menu.vue +325 -325
  298. package/packages/menu/src/submenu.vue +348 -348
  299. package/packages/menu-item/index.js +8 -8
  300. package/packages/menu-item-group/index.js +8 -8
  301. package/packages/message/index.js +2 -2
  302. package/packages/message/src/main.js +91 -91
  303. package/packages/message/src/main.vue +117 -117
  304. package/packages/message-box/index.js +2 -2
  305. package/packages/message-box/src/main.js +216 -216
  306. package/packages/message-box/src/main.vue +332 -332
  307. package/packages/notification/index.js +2 -2
  308. package/packages/notification/src/main.js +94 -94
  309. package/packages/notification/src/main.vue +152 -152
  310. package/packages/option/index.js +8 -8
  311. package/packages/option-group/index.js +8 -8
  312. package/packages/page-header/index.js +8 -8
  313. package/packages/page-header/src/main.vue +30 -30
  314. package/packages/pagination/index.js +8 -8
  315. package/packages/pagination/src/pager.vue +163 -163
  316. package/packages/pagination/src/pagination.js +386 -386
  317. package/packages/popconfirm/index.js +8 -8
  318. package/packages/popconfirm/src/main.vue +104 -104
  319. package/packages/popover/index.js +14 -14
  320. package/packages/popover/src/directive.js +20 -20
  321. package/packages/popover/src/main.vue +237 -237
  322. package/packages/progress/index.js +8 -8
  323. package/packages/progress/src/progress.vue +235 -235
  324. package/packages/radio/index.js +8 -8
  325. package/packages/radio/src/radio-button.vue +115 -115
  326. package/packages/radio/src/radio-group.vue +113 -113
  327. package/packages/radio/src/radio.vue +134 -134
  328. package/packages/radio-button/index.js +8 -8
  329. package/packages/radio-group/index.js +8 -8
  330. package/packages/rate/index.js +8 -8
  331. package/packages/rate/src/main.vue +348 -348
  332. package/packages/result/index.js +8 -8
  333. package/packages/result/src/icon-error.vue +13 -13
  334. package/packages/result/src/icon-info.vue +13 -13
  335. package/packages/result/src/icon-success.vue +13 -13
  336. package/packages/result/src/icon-warning.vue +13 -13
  337. package/packages/result/src/index.vue +65 -65
  338. package/packages/row/index.js +9 -9
  339. package/packages/row/src/row.js +44 -44
  340. package/packages/scrollbar/index.js +8 -8
  341. package/packages/scrollbar/src/bar.js +92 -92
  342. package/packages/scrollbar/src/main.js +130 -130
  343. package/packages/scrollbar/src/util.js +34 -34
  344. package/packages/select/index.js +8 -8
  345. package/packages/select/src/navigation-mixin.js +54 -54
  346. package/packages/select/src/option-group.vue +60 -60
  347. package/packages/select/src/option.vue +168 -168
  348. package/packages/select/src/select-dropdown.vue +74 -74
  349. package/packages/select/src/select.vue +900 -900
  350. package/packages/skeleton/index.js +8 -8
  351. package/packages/skeleton/src/img-placeholder.vue +16 -16
  352. package/packages/skeleton/src/index.vue +76 -76
  353. package/packages/skeleton/src/item.vue +22 -22
  354. package/packages/skeleton-item/index.js +8 -8
  355. package/packages/slider/index.js +8 -8
  356. package/packages/slider/src/button.vue +238 -238
  357. package/packages/slider/src/main.vue +427 -427
  358. package/packages/slider/src/marker.js +18 -18
  359. package/packages/spinner/index.js +8 -8
  360. package/packages/spinner/src/spinner.vue +27 -27
  361. package/packages/statistic/index.js +8 -8
  362. package/packages/statistic/src/main.vue +203 -203
  363. package/packages/step/index.js +8 -8
  364. package/packages/steps/README.md +69 -69
  365. package/packages/steps/index.js +8 -8
  366. package/packages/steps/src/step.vue +184 -184
  367. package/packages/steps/src/steps.vue +68 -68
  368. package/packages/submenu/index.js +8 -8
  369. package/packages/switch/index.js +9 -9
  370. package/packages/switch/src/component.vue +174 -174
  371. package/packages/tab-pane/index.js +8 -8
  372. package/packages/table/index.js +8 -8
  373. package/packages/table/src/config.js +124 -124
  374. package/packages/table/src/dropdown.js +28 -28
  375. package/packages/table/src/filter-panel.vue +194 -194
  376. package/packages/table/src/layout-observer.js +68 -68
  377. package/packages/table/src/store/current.js +76 -76
  378. package/packages/table/src/store/expand.js +65 -65
  379. package/packages/table/src/store/helper.js +41 -41
  380. package/packages/table/src/store/index.js +147 -147
  381. package/packages/table/src/store/tree.js +209 -209
  382. package/packages/table/src/store/watcher.js +381 -381
  383. package/packages/table/src/table-body.js +469 -469
  384. package/packages/table/src/table-column.js +319 -319
  385. package/packages/table/src/table-footer.js +153 -153
  386. package/packages/table/src/table-header.js +511 -511
  387. package/packages/table/src/table-layout.js +249 -249
  388. package/packages/table/src/table-row.js +101 -101
  389. package/packages/table/src/table.vue +712 -712
  390. package/packages/table/src/util.js +273 -273
  391. package/packages/table-column/index.js +8 -8
  392. package/packages/tabs/index.js +8 -8
  393. package/packages/tabs/src/tab-bar.vue +57 -57
  394. package/packages/tabs/src/tab-nav.vue +294 -294
  395. package/packages/tabs/src/tab-pane.vue +56 -56
  396. package/packages/tabs/src/tabs.vue +191 -191
  397. package/packages/tag/index.js +8 -8
  398. package/packages/tag/src/tag.vue +58 -58
  399. package/packages/theme-chalk/README.md +33 -33
  400. package/packages/theme-chalk/gulpfile.js +24 -24
  401. package/packages/theme-chalk/package.json +35 -35
  402. package/packages/theme-chalk/src/alert.scss +147 -147
  403. package/packages/theme-chalk/src/aside.scss +7 -7
  404. package/packages/theme-chalk/src/autocomplete.scss +80 -80
  405. package/packages/theme-chalk/src/avatar.scss +51 -51
  406. package/packages/theme-chalk/src/backtop.scss +22 -22
  407. package/packages/theme-chalk/src/badge.scss +57 -57
  408. package/packages/theme-chalk/src/base.scss +2 -2
  409. package/packages/theme-chalk/src/breadcrumb.scss +55 -55
  410. package/packages/theme-chalk/src/button.scss +262 -262
  411. package/packages/theme-chalk/src/calendar.scss +79 -79
  412. package/packages/theme-chalk/src/card.scss +32 -32
  413. package/packages/theme-chalk/src/carousel-item.scss +49 -49
  414. package/packages/theme-chalk/src/carousel.scss +161 -161
  415. package/packages/theme-chalk/src/cascader-panel.scss +120 -120
  416. package/packages/theme-chalk/src/cascader.scss +182 -182
  417. package/packages/theme-chalk/src/checkbox.scss +359 -359
  418. package/packages/theme-chalk/src/col.scss +155 -155
  419. package/packages/theme-chalk/src/collapse.scss +63 -63
  420. package/packages/theme-chalk/src/color-picker.scss +384 -384
  421. package/packages/theme-chalk/src/common/popup.scss +42 -42
  422. package/packages/theme-chalk/src/common/transition.scss +98 -98
  423. package/packages/theme-chalk/src/common/var.scss +1028 -1028
  424. package/packages/theme-chalk/src/container.scss +14 -14
  425. package/packages/theme-chalk/src/cy/base.scss +3 -3
  426. package/packages/theme-chalk/src/cy/index.scss +5 -5
  427. package/packages/theme-chalk/src/cy/selectDisplayInput.scss +75 -75
  428. package/packages/theme-chalk/src/cy/subTitle.scss +26 -26
  429. package/packages/theme-chalk/src/cy/tabDialog.scss +43 -43
  430. package/packages/theme-chalk/src/cy/treeSelect.scss +131 -131
  431. package/packages/theme-chalk/src/date-picker/date-picker.scss +97 -97
  432. package/packages/theme-chalk/src/date-picker/date-range-picker.scss +101 -101
  433. package/packages/theme-chalk/src/date-picker/date-table.scss +151 -151
  434. package/packages/theme-chalk/src/date-picker/month-table.scss +82 -82
  435. package/packages/theme-chalk/src/date-picker/picker-panel.scss +117 -117
  436. package/packages/theme-chalk/src/date-picker/picker.scss +197 -197
  437. package/packages/theme-chalk/src/date-picker/time-picker.scss +85 -85
  438. package/packages/theme-chalk/src/date-picker/time-range-picker.scss +31 -31
  439. package/packages/theme-chalk/src/date-picker/time-spinner.scss +110 -110
  440. package/packages/theme-chalk/src/date-picker/year-table.scss +51 -51
  441. package/packages/theme-chalk/src/date-picker.scss +11 -11
  442. package/packages/theme-chalk/src/descriptions-item.scss +42 -42
  443. package/packages/theme-chalk/src/descriptions.scss +111 -111
  444. package/packages/theme-chalk/src/dialog.scss +123 -123
  445. package/packages/theme-chalk/src/display.scss +12 -12
  446. package/packages/theme-chalk/src/divider.scss +46 -46
  447. package/packages/theme-chalk/src/drawer.scss +219 -219
  448. package/packages/theme-chalk/src/dropdown.scss +182 -182
  449. package/packages/theme-chalk/src/empty.scss +45 -45
  450. package/packages/theme-chalk/src/footer.scss +8 -8
  451. package/packages/theme-chalk/src/form.scss +167 -167
  452. package/packages/theme-chalk/src/header.scss +8 -8
  453. package/packages/theme-chalk/src/icon.scss +1167 -1167
  454. package/packages/theme-chalk/src/image.scss +179 -179
  455. package/packages/theme-chalk/src/input-number.scss +261 -261
  456. package/packages/theme-chalk/src/input.scss +360 -360
  457. package/packages/theme-chalk/src/link.scss +81 -81
  458. package/packages/theme-chalk/src/loading.scss +96 -96
  459. package/packages/theme-chalk/src/main.scss +12 -12
  460. package/packages/theme-chalk/src/menu.scss +289 -289
  461. package/packages/theme-chalk/src/message-box.scss +226 -226
  462. package/packages/theme-chalk/src/message.scss +120 -120
  463. package/packages/theme-chalk/src/mixins/_button.scss +81 -81
  464. package/packages/theme-chalk/src/mixins/config.scss +4 -4
  465. package/packages/theme-chalk/src/mixins/function.scss +44 -44
  466. package/packages/theme-chalk/src/mixins/mixins.scss +191 -191
  467. package/packages/theme-chalk/src/mixins/utils.scss +38 -38
  468. package/packages/theme-chalk/src/notification.scss +99 -99
  469. package/packages/theme-chalk/src/option-group.scss +42 -42
  470. package/packages/theme-chalk/src/option.scss +36 -36
  471. package/packages/theme-chalk/src/page-header.scss +41 -41
  472. package/packages/theme-chalk/src/pagination.scss +295 -295
  473. package/packages/theme-chalk/src/popconfirm.scss +16 -16
  474. package/packages/theme-chalk/src/popover.scss +40 -40
  475. package/packages/theme-chalk/src/popper.scss +100 -100
  476. package/packages/theme-chalk/src/progress.scss +141 -141
  477. package/packages/theme-chalk/src/radio-button.scss +113 -113
  478. package/packages/theme-chalk/src/radio-group.scss +9 -9
  479. package/packages/theme-chalk/src/radio.scss +199 -199
  480. package/packages/theme-chalk/src/rate.scss +49 -49
  481. package/packages/theme-chalk/src/reset.scss +79 -79
  482. package/packages/theme-chalk/src/result.scss +61 -61
  483. package/packages/theme-chalk/src/row.scss +43 -43
  484. package/packages/theme-chalk/src/scrollbar.scss +72 -72
  485. package/packages/theme-chalk/src/select-dropdown.scss +62 -62
  486. package/packages/theme-chalk/src/select.scss +152 -152
  487. package/packages/theme-chalk/src/skeleton-item.scss +84 -84
  488. package/packages/theme-chalk/src/skeleton.scss +40 -40
  489. package/packages/theme-chalk/src/slider.scss +250 -250
  490. package/packages/theme-chalk/src/spinner.scss +44 -44
  491. package/packages/theme-chalk/src/statistic.scss +38 -38
  492. package/packages/theme-chalk/src/step.scss +317 -317
  493. package/packages/theme-chalk/src/steps.scss +20 -20
  494. package/packages/theme-chalk/src/switch.scss +116 -116
  495. package/packages/theme-chalk/src/table-column.scss +96 -96
  496. package/packages/theme-chalk/src/table.scss +564 -564
  497. package/packages/theme-chalk/src/tabs.scss +602 -602
  498. package/packages/theme-chalk/src/tag.scss +163 -163
  499. package/packages/theme-chalk/src/time-picker.scss +8 -8
  500. package/packages/theme-chalk/src/time-select.scss +37 -37
  501. package/packages/theme-chalk/src/timeline-item.scss +86 -86
  502. package/packages/theme-chalk/src/timeline.scss +14 -14
  503. package/packages/theme-chalk/src/tooltip.scss +141 -141
  504. package/packages/theme-chalk/src/transfer.scss +227 -227
  505. package/packages/theme-chalk/src/tree.scss +123 -123
  506. package/packages/theme-chalk/src/upload.scss +603 -603
  507. package/packages/time-picker/index.js +8 -8
  508. package/packages/time-select/index.js +8 -8
  509. package/packages/timeline/index.js +8 -8
  510. package/packages/timeline/src/item.vue +73 -73
  511. package/packages/timeline/src/main.vue +33 -33
  512. package/packages/timeline-item/index.js +8 -8
  513. package/packages/tooltip/index.js +8 -8
  514. package/packages/tooltip/src/main.js +242 -242
  515. package/packages/transfer/index.js +8 -8
  516. package/packages/transfer/src/main.vue +231 -231
  517. package/packages/transfer/src/transfer-panel.vue +251 -251
  518. package/packages/tree/index.js +8 -8
  519. package/packages/tree/src/model/node.js +484 -484
  520. package/packages/tree/src/model/tree-store.js +340 -340
  521. package/packages/tree/src/model/util.js +27 -27
  522. package/packages/tree/src/tree-node.vue +279 -279
  523. package/packages/tree/src/tree.vue +496 -496
  524. package/packages/upload/index.js +8 -8
  525. package/packages/upload/src/ajax.js +85 -85
  526. package/packages/upload/src/index.vue +338 -338
  527. package/packages/upload/src/upload-dragger.vue +70 -70
  528. package/packages/upload/src/upload-list.vue +105 -105
  529. package/packages/upload/src/upload.vue +211 -211
  530. package/src/directives/mousewheel.js +18 -18
  531. package/src/directives/repeat-click.js +26 -26
  532. package/src/index.js +1 -1
  533. package/src/locale/format.js +45 -45
  534. package/src/locale/index.js +48 -48
  535. package/src/locale/lang/zh-CN.js +123 -123
  536. package/src/mixins/emitter.js +33 -33
  537. package/src/mixins/focus.js +9 -9
  538. package/src/mixins/locale.js +9 -9
  539. package/src/mixins/migrating.js +54 -54
  540. package/src/transitions/collapse-transition.js +77 -77
  541. package/src/utils/after-leave.js +27 -27
  542. package/src/utils/aria-dialog.js +90 -90
  543. package/src/utils/aria-utils.js +122 -122
  544. package/src/utils/clickoutside.js +76 -76
  545. package/src/utils/date-util.js +282 -282
  546. package/src/utils/date.js +368 -368
  547. package/src/utils/dom.js +227 -227
  548. package/src/utils/lodash.js +18075 -18075
  549. package/src/utils/menu/aria-menubar.js +14 -14
  550. package/src/utils/menu/aria-menuitem.js +49 -49
  551. package/src/utils/menu/aria-submenu.js +59 -59
  552. package/src/utils/merge.js +15 -15
  553. package/src/utils/popper.js +1276 -1276
  554. package/src/utils/popup/index.js +218 -218
  555. package/src/utils/popup/popup-manager.js +194 -194
  556. package/src/utils/resize-event.js +36 -36
  557. package/src/utils/scroll-into-view.js +27 -27
  558. package/src/utils/scrollbar-width.js +29 -29
  559. package/src/utils/shared.js +7 -7
  560. package/src/utils/types.js +40 -40
  561. package/src/utils/util.js +245 -245
  562. package/src/utils/vdom.js +5 -5
  563. package/src/utils/vue-popper.js +198 -198
  564. package/types/alert.d.ts +31 -31
  565. package/types/aside.d.ts +7 -7
  566. package/types/autocomplete.d.ts +78 -78
  567. package/types/avatar.d.ts +20 -20
  568. package/types/backtop.d.ts +16 -16
  569. package/types/badge.d.ts +16 -16
  570. package/types/breadcrumb-item.d.ts +10 -10
  571. package/types/breadcrumb.d.ts +10 -10
  572. package/types/button-group.d.ts +4 -4
  573. package/types/button.d.ts +37 -37
  574. package/types/calendar.d.ts +15 -15
  575. package/types/card.d.ts +26 -26
  576. package/types/carousel-item.d.ts +10 -10
  577. package/types/carousel.d.ts +57 -57
  578. package/types/cascader-panel.d.ts +72 -72
  579. package/types/cascader.d.ts +65 -65
  580. package/types/checkbox-button.d.ts +22 -22
  581. package/types/checkbox-group.d.ts +22 -22
  582. package/types/checkbox.d.ts +34 -34
  583. package/types/col.d.ts +46 -46
  584. package/types/collapse-item.d.ts +26 -26
  585. package/types/collapse.d.ts +10 -10
  586. package/types/color-picker.d.ts +21 -21
  587. package/types/component.d.ts +13 -13
  588. package/types/container.d.ts +7 -7
  589. package/types/cy/cy-element-ui.d.ts +4 -4
  590. package/types/cy/select-display-input.d.ts +4 -16
  591. package/types/cy/sub-title.d.ts +4 -7
  592. package/types/cy/tab-dialog.d.ts +5 -49
  593. package/types/cy/tree-select.d.ts +7 -44
  594. package/types/date-picker.d.ts +124 -124
  595. package/types/descriptions-item.d.ts +37 -37
  596. package/types/descriptions.d.ts +52 -52
  597. package/types/dialog.d.ts +62 -62
  598. package/types/divider.d.ts +12 -12
  599. package/types/drawer.d.ts +63 -63
  600. package/types/dropdown-item.d.ts +16 -16
  601. package/types/dropdown-menu.d.ts +4 -4
  602. package/types/dropdown.d.ts +38 -38
  603. package/types/empty.d.ts +31 -31
  604. package/types/footer.d.ts +7 -7
  605. package/types/form-item.d.ts +37 -37
  606. package/types/form.d.ts +82 -82
  607. package/types/header.d.ts +7 -7
  608. package/types/icon.d.ts +7 -7
  609. package/types/image.d.ts +43 -43
  610. package/types/index.d.ts +5 -5
  611. package/types/infinite-scroll.d.ts +5 -5
  612. package/types/input-number.d.ts +47 -47
  613. package/types/input.d.ts +107 -107
  614. package/types/link.d.ts +25 -25
  615. package/types/loading.d.ts +62 -62
  616. package/types/main.d.ts +4 -4
  617. package/types/menu-item-group.d.ts +7 -7
  618. package/types/menu-item.d.ts +10 -10
  619. package/types/menu.d.ts +46 -46
  620. package/types/message-box.d.ts +176 -176
  621. package/types/message.d.ts +90 -90
  622. package/types/notification.d.ts +84 -84
  623. package/types/option-group.d.ts +10 -10
  624. package/types/option.d.ts +13 -13
  625. package/types/page-header.d.ts +10 -10
  626. package/types/pagination.d.ts +43 -43
  627. package/types/popconfirm.d.ts +29 -29
  628. package/types/popover.d.ts +71 -71
  629. package/types/progress.d.ts +37 -37
  630. package/types/radio-button.d.ts +16 -16
  631. package/types/radio-group.d.ts +18 -18
  632. package/types/radio.d.ts +19 -19
  633. package/types/rate.d.ts +64 -64
  634. package/types/result.d.ts +33 -33
  635. package/types/row.d.ts +25 -25
  636. package/types/select.d.ts +90 -90
  637. package/types/skeleton-item.d.ts +7 -7
  638. package/types/skeleton.d.ts +33 -33
  639. package/types/slider.d.ts +68 -68
  640. package/types/spinner.d.ts +16 -16
  641. package/types/statistic.d.ts +37 -37
  642. package/types/step.d.ts +34 -34
  643. package/types/steps.d.ts +28 -28
  644. package/types/submenu.d.ts +22 -22
  645. package/types/switch.d.ts +43 -43
  646. package/types/tab-pane.d.ts +19 -19
  647. package/types/table-column.d.ts +117 -117
  648. package/types/table.d.ts +177 -177
  649. package/types/tabs.d.ts +31 -31
  650. package/types/tag.d.ts +28 -28
  651. package/types/time-picker.d.ts +63 -63
  652. package/types/time-select.d.ts +56 -56
  653. package/types/timeline-item.d.ts +20 -20
  654. package/types/timeline.d.ts +6 -6
  655. package/types/tooltip.d.ts +52 -52
  656. package/types/transfer.d.ts +73 -73
  657. package/types/tree.d.ts +266 -266
  658. package/types/upload.d.ts +124 -124
  659. package/web-types.json +4195 -4195
  660. package/types/cy/cy-select-display-input.d.ts +0 -7
  661. package/types/cy/cy-sub-title.d.ts +0 -7
  662. package/types/cy/cy-tab-dialog.d.ts +0 -7
  663. package/types/cy/cy-tree-select.d.ts +0 -7
package/README.md CHANGED
@@ -1,494 +1,629 @@
1
- # cy-element-ui 组件开发指南
2
-
3
- ## 概述
4
-
5
- 本文档详细介绍如何在 cy-element-ui 项目中创建新组件,并将其打包发布到 npm 仓库。
6
-
7
- ---
8
-
9
- ## 一、创建新组件
10
-
11
- ### 1. 自动创建组件模板
12
-
13
- 使用项目提供的脚本自动生成组件基础结构:
14
-
15
- ```bash
16
- npm run new:cy <component-name>
17
- ```
18
-
19
- **示例:**
20
- ```bash
21
- npm run new:cy test
22
- ```
23
-
24
- **执行结果:**
25
- - 创建 `packages/cy-test/` 目录
26
- - 创建 `packages/cy-test/index.js` - 组件导出文件
27
- - 创建 `packages/cy-test/src/main.vue` - 组件实现文件
28
-
29
- ### 2. 手动创建组件(可选)
30
-
31
- 如果需要自定义结构,可以手动创建以下文件:
32
-
33
- **文件结构:**
34
- ```
35
- packages/
36
- └── cy-test/
37
- ├── index.js # 组件导出
38
- └── src/
39
- └── main.vue # 组件实现
40
- ```
41
-
42
- **`packages/cy-test/index.js` 内容:**
43
- ```javascript
44
- import CyTest from './src/main';
45
-
46
- CyTest.install = function(Vue) {
47
- Vue.component(CyTest.name, CyTest);
48
- };
49
-
50
- export default CyTest;
51
- ```
52
-
53
- **`packages/cy-test/src/main.vue` 内容:**
54
- ```vue
55
- <template>
56
- <div class="cy-test">
57
- <slot></slot>
58
- </div>
59
- </template>
60
-
61
- <script>
62
- export default {
63
- name: 'CyTest',
64
- props: {
65
- // 定义组件属性
66
- }
67
- };
68
- </script>
69
- ```
70
-
71
- ---
72
-
73
- ## 二、添加组件样式
74
-
75
- ### 1. 创建样式文件
76
-
77
- 在主题样式目录中创建组件样式:
78
-
79
- ```bash
80
- touch packages/theme-chalk/src/cy-test.scss
81
- ```
82
-
83
- **`packages/theme-chalk/src/cy-test.scss` 内容示例:**
84
- ```scss
85
- .cy-test {
86
- display: inline-block;
87
- padding: 20px 24px;
88
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
89
- border-radius: 8px;
90
- transition: all 0.3s ease;
91
- }
92
- ```
93
-
94
- ### 2. 导入样式到主题入口
95
-
96
- 修改 `packages/theme-chalk/src/index.scss`,添加样式导入:
97
-
98
- ```scss
99
- // 在文件末尾添加
100
- @import "./cy-test.scss";
101
- ```
102
-
103
- ### 3. 产研组件样式组织(cy 模块)
104
-
105
- 产研自定义组件(treeSelect、tabDialog、subTitle)的样式统一存放在 `packages/theme-chalk/src/cy/` 目录下:
106
-
107
- **目录结构:**
108
- ```
109
- packages/theme-chalk/src/
110
- └── cy/
111
- ├── index.scss # cy 模块入口
112
- ├── base.scss # 基础样式
113
- ├── treeSelect.scss # 树形选择器样式
114
- ├── tabDialog.scss # 标签对话框样式
115
- ├── subTitle.scss # 副标题样式
116
- └── selectDisplayInput.scss # 选择显示输入框样式
117
- ```
118
-
119
- **`packages/theme-chalk/src/cy/index.scss` 内容:**
120
- ```scss
121
- @import "./base.scss";
122
- @import "./treeSelect.scss";
123
- @import "./tabDialog.scss";
124
- @import "./subTitle.scss";
125
- @import "./selectDisplayInput.scss";
126
- ```
127
-
128
- **主入口引入:**
129
-
130
- 修改 `packages/theme-chalk/src/index.scss`,添加:
131
- ```scss
132
- @import "./cy/index.scss";
133
- ```
134
-
135
- ---
136
-
137
- ## 三、注册组件到组件库
138
-
139
- ### 1. 更新组件配置文件
140
-
141
- 修改 `components.json`,添加新组件:
142
-
143
- ```json
144
- {
145
- "cy-test": "./packages/cy-test/index.js"
146
- }
147
- ```
148
-
149
- ### 2. 重新生成入口文件
150
-
151
- 运行以下命令自动更新 `src/index.js`:
152
-
153
- ```bash
154
- npm run build:file
155
- ```
156
-
157
- **验证:**
158
- 检查 `src/index.js` 是否包含:
159
- ```javascript
160
- import CyTest from '../packages/cy-test/index.js';
161
- ```
162
-
163
- ---
164
-
165
- ## 四、添加组件文档(可选)
166
-
167
- ### 1. 创建示例页面
168
-
169
- 在示例目录中创建组件展示页面:
170
-
171
- ```
172
- examples/
173
- └── pages/
174
- ├── zh-CN/
175
- │ └── cy-test.md # 中文文档
176
- └── en-US/
177
- └── cy-test.md # 英文文档
178
- ```
179
-
180
- ### 2. 配置导航
181
-
182
- 修改 `examples/nav.config.json`,添加导航项:
183
-
184
- ```json
185
- {
186
- "chanyan": {
187
- "name": "产研模块",
188
- "children": [
189
- {
190
- "path": "/cy-test",
191
- "name": "CyTest 测试组件"
192
- }
193
- ]
194
- }
195
- }
196
- ```
197
-
198
- ---
199
-
200
- ## 五、打包构建
201
-
202
- ### 1. 完整构建
203
-
204
- 运行完整构建命令,生成 `lib/` 目录:
205
-
206
- ```bash
207
- npm run dist
208
- ```
209
-
210
- **构建内容:**
211
- - `lib/index.js` - 主入口文件(包含所有组件)
212
- - `lib/theme-chalk/` - 主题样式文件
213
-
214
- ### 2. 单独构建主题样式(可选)
215
-
216
- 如果只修改了样式,可以单独构建主题:
217
-
218
- ```bash
219
- npm run build:theme
220
- ```
221
-
222
- ### 3. 验证打包结果
223
-
224
- 检查 `lib/index.js` 是否包含新组件:
225
-
226
- ```bash
227
- grep "CyTest" lib/index.js
228
- ```
229
-
230
- ---
231
-
232
- ## 六、发布到 npm
233
-
234
- ### 1. 更新版本号
235
-
236
- 修改 `package.json` 中的版本号:
237
-
238
- ```json
239
- {
240
- "version": "1.1.4"
241
- }
242
- ```
243
-
244
- **版本号规则:**
245
- - `MAJOR.MINOR.PATCH`
246
- - 修复bug:增加 PATCH
247
- - 新增功能:增加 MINOR
248
- - 重大变更:增加 MAJOR
249
-
250
- ### 2. 登录 npm
251
-
252
- 确保已登录 npm 账号:
253
-
254
- ```bash
255
- npm login
256
- ```
257
-
258
- ### 3. 发布到 npm
259
-
260
- 执行发布命令:
261
-
262
- ```bash
263
- npm publish
264
- ```
265
-
266
- **注意事项:**
267
- - 确保版本号未被使用过
268
- - 确保 `lib/` 目录已正确生成
269
- - 确保 `package.json` 中的 `main` 字段指向正确
270
-
271
- ---
272
-
273
- ## 七、在项目中使用
274
-
275
- ### 1. 安装依赖
276
-
277
- ```bash
278
- npm install cy-element-ui --save
279
- ```
280
-
281
- ### 2. 全局引入
282
-
283
- ```javascript
284
- // main.js
285
- import Vue from 'vue'
286
- import CyElementUI from 'cy-element-ui'
287
- import 'cy-element-ui/lib/theme-chalk/index.css'
288
-
289
- Vue.use(CyElementUI)
290
- ```
291
-
292
- ### 3. 使用组件
293
-
294
- ```vue
295
- <template>
296
- <cy-test title="测试">
297
- 这是测试内容
298
- </cy-test>
299
- </template>
300
- ```
301
-
302
- ---
303
-
304
- ## 八、文件变更汇总
305
-
306
- ### 创建的文件
307
-
308
- | 文件路径 | 说明 |
309
- |---------|------|
310
- | `packages/cy-test/index.js` | 组件导出文件 |
311
- | `packages/cy-test/src/main.vue` | 组件实现文件 |
312
- | `packages/theme-chalk/src/cy-test.scss` | 组件样式文件 |
313
- | `packages/theme-chalk/src/cy/` | 产研组件样式目录 |
314
- | `packages/theme-chalk/src/cy/index.scss` | cy 模块样式入口 |
315
- | `packages/theme-chalk/src/cy/base.scss` | cy 基础样式 |
316
- | `packages/theme-chalk/src/cy/treeSelect.scss` | 树形选择器样式 |
317
- | `packages/theme-chalk/src/cy/tabDialog.scss` | 标签对话框样式 |
318
- | `packages/theme-chalk/src/cy/subTitle.scss` | 副标题样式 |
319
- | `packages/selectDisplayInput/index.js` | 选择显示输入框组件导出 |
320
- | `packages/selectDisplayInput/src/main.vue` | 选择显示输入框组件实现 |
321
- | `packages/theme-chalk/src/cy/selectDisplayInput.scss` | 选择显示输入框样式 |
322
- | `examples/docs/zh-cn/chanyan/selectDisplayInput.md` | 选择显示输入框中文文档 |
323
- | `examples/docs/en-us/chanyan/selectDisplayInput.md` | 选择显示输入框英文文档 |
324
-
325
- ### 修改的文件
326
-
327
- | 文件路径 | 修改内容 |
328
- |---------|---------|
329
- | `components.json` | 添加组件配置 |
330
- | `packages/theme-chalk/src/index.scss` | 导入组件样式和 cy 模块 |
331
- | `src/index.js` | 自动生成组件注册 |
332
- | `package.json` | 更新版本号和构建脚本 |
333
-
334
- ### 生成的文件(构建后)
335
-
336
- | 文件路径 | 说明 |
337
- |---------|------|
338
- | `lib/index.js` | 打包后的主入口 |
339
- | `lib/theme-chalk/cy-test.css` | 组件样式 |
340
- | `lib/theme-chalk/index.css` | 完整主题样式 |
341
- | `lib/treeSelect.js` | 树形选择器组件 |
342
- | `lib/tabDialog.js` | 标签对话框组件 |
343
- | `lib/subTitle.js` | 副标题组件 |
344
- | `lib/selectDisplayInput.js` | 选择显示输入框组件 |
345
-
346
- ---
347
-
348
- ## 九、常见问题
349
-
350
- ### Q1: 组件未被打包进 lib/index.js
351
-
352
- **原因:** `components.json` 未添加组件配置
353
-
354
- **解决:**
355
- ```bash
356
- npm run build:file
357
- ```
358
-
359
- ### Q2: 样式未生效
360
-
361
- **原因:** 样式未导入到主题入口
362
-
363
- **解决:**
364
- 检查 `packages/theme-chalk/src/index.scss` 是否包含:
365
- ```scss
366
- @import "./cy-test.scss";
367
- ```
368
-
369
- ### Q3: 发布时版本冲突
370
-
371
- **原因:** 版本号已存在
372
-
373
- **解决:**
374
- 更新 `package.json` 中的版本号
375
-
376
- ### Q4: npm 发布失败
377
-
378
- **原因:** 未登录或权限不足
379
-
380
- **解决:**
381
- ```bash
382
- npm login
383
- ```
384
-
385
- ### Q5: 打包过程卡住或时间过长
386
-
387
- **原因1:** `components.json` 中缺少组件注册,导致 webpack 构建时无法找到组件入口
388
-
389
- **解决:**
390
- ```bash
391
- # 检查 components.json 是否包含组件
392
- cat components.json
393
-
394
- # 如果缺少,手动添加
395
- # 例如:"tabDialog": "./packages/tabDialog/index.js"
396
-
397
- # 重新生成入口文件
398
- npm run build:file
399
- ```
400
-
401
- **原因2:** webpack 批量打包组件时内存不足
402
-
403
- **解决:**
404
- ```bash
405
- # 增加 Node.js 内存限制
406
- node --max-old-space-size=8192 node_modules/webpack/bin/webpack.js --config build/webpack.component.js
407
- ```
408
-
409
- **或者修改 package.json 中的构建脚本:**
410
- ```json
411
- {
412
- "scripts": {
413
- "dist": "npm run clean && npm run build:file && npm run lint && webpack --config build/webpack.conf.js && node --max-old-space-size=8192 node_modules/webpack/bin/webpack.js --config build/webpack.component.js && npm run build:utils && npm run build:umd && npm run build:theme"
414
- }
415
- }
416
- ```
417
-
418
- ### Q6: 自定义指令未注册
419
-
420
- **原因:** 组件使用了自定义指令(如 `v-dialog-drag`),但未在主入口文件中注册
421
-
422
- **解决:**
423
- ```javascript
424
- // src/index.js
425
- import dragDirective from '../packages/tabDialog/src/dialog/drag';
426
- import dragHeightDirective from '../packages/tabDialog/src/dialog/dragHeight';
427
-
428
- const install = function(Vue) {
429
- // 注册组件
430
- components.forEach(component => {
431
- Vue.component(component.name, component);
432
- });
433
-
434
- // 注册指令
435
- Vue.directive('dialog-drag', dragDirective);
436
- Vue.directive('dialog-drag-height', dragHeightDirective);
437
- };
438
- ```
439
-
440
- ### Q7: npm 安装新版本失败
441
-
442
- **原因:** 使用了淘宝镜像,新版本尚未同步
443
-
444
- **解决:**
445
- ```bash
446
- # 临时切换到官方源
447
- npm config set registry https://registry.npmjs.org
448
-
449
- # 安装依赖
450
- npm install
451
-
452
- # 验证安装版本
453
- npm list cy-element-ui
454
- ```
455
-
456
- ### Q8: 组件文档无法加载,报错 "Cannot find module './zh-CN/xxx.md'"
457
-
458
- **原因:** 文档文件放置路径不正确。自定义组件文档应放在 `examples/docs/zh-cn/chanyan/` 目录下,而不是 `examples/docs/zh-CN/` 根目录。
459
-
460
- **解决:**
461
- ```bash
462
- # 正确的文档路径
463
- examples/docs/zh-cn/chanyan/selectDisplayInput.md
464
- examples/docs/en-us/chanyan/selectDisplayInput.md
465
-
466
- # 导航配置示例(examples/nav.config.json)
467
- {
468
- "path": "/chanyan/selectDisplayInput",
469
- "title": "SelectDisplayInput 选择显示输入框"
470
- }
471
- ```
472
-
473
- **注意:**
474
- - 导航配置中的 `path` 应与文档文件路径对应
475
- - 英文文档需放在 `examples/docs/en-us/chanyan/` 目录下
476
- - 目录名称使用小写 `zh-cn` `en-us`
477
-
478
- ---
479
-
480
- ## 十、开发流程建议
481
-
482
- 1. **创建组件** `npm run new:cy <name>`
483
- 2. **编写代码** → 修改 `packages/<name>/src/main.vue`
484
- 3. **添加样式** 创建 `packages/theme-chalk/src/<name>.scss`
485
- 4. **注册组件** `npm run build:file`
486
- 5. **测试预览** → `npm run dev`
487
- 6. **打包构建** → `npm run dist`
488
- 7. **发布 npm** → `npm version patch && npm publish`
489
-
490
- ---
491
-
492
- ## License
493
-
494
- MIT
1
+ # cy-element-ui 组件开发指南
2
+
3
+ ## 一、在项目中安装使用
4
+
5
+ ### 1.1 安装依赖
6
+
7
+ ```bash
8
+ # 使用 npm
9
+ npm install cy-element-ui --save
10
+
11
+ # 使用 yarn
12
+ yarn add cy-element-ui
13
+
14
+ # 使用淘宝镜像
15
+ npm install cy-element-ui --save --registry=https://registry.npmmirror.com
16
+ ```
17
+
18
+ ### 1.2 全局引入
19
+
20
+ ```javascript
21
+ // main.js
22
+ import Vue from 'vue';
23
+ import CyElementUI from 'cy-element-ui';
24
+ import 'cy-element-ui/lib/theme-chalk/index.css';
25
+
26
+ Vue.use(CyElementUI);
27
+ ```
28
+
29
+ ### 1.3 按需引入
30
+
31
+ #### 方法一:手动引入
32
+
33
+ ```javascript
34
+ import Vue from 'vue';
35
+ import { CyTreeSelect, CyTabDialog, ElButton } from 'cy-element-ui';
36
+ import 'cy-element-ui/lib/theme-chalk/cy/treeSelect.css';
37
+ import 'cy-element-ui/lib/theme-chalk/cy/tabDialog.css';
38
+ import 'cy-element-ui/lib/theme-chalk/button.css';
39
+
40
+ Vue.use(CyTreeSelect);
41
+ Vue.use(CyTabDialog);
42
+ Vue.use(ElButton);
43
+ ```
44
+
45
+ #### 方法二:使用 babel-plugin-component
46
+
47
+ **安装插件:**
48
+
49
+ ```bash
50
+ npm install babel-plugin-component --save-dev
51
+ ```
52
+
53
+ **配置 `.babelrc`:**
54
+
55
+ ```json
56
+ {
57
+ "plugins": [
58
+ ["component", {
59
+ "libraryName": "cy-element-ui",
60
+ "styleLibraryName": "theme-chalk"
61
+ }]
62
+ ]
63
+ }
64
+ ```
65
+
66
+ **使用:**
67
+
68
+ ```javascript
69
+ import Vue from 'vue';
70
+ import { CyTreeSelect, CyTabDialog, ElButton } from 'cy-element-ui';
71
+
72
+ Vue.use(CyTreeSelect);
73
+ Vue.use(CyTabDialog);
74
+ Vue.use(ElButton);
75
+ ```
76
+
77
+ ### 1.4 使用示例
78
+
79
+ ```vue
80
+ <template>
81
+ <div class="app-container">
82
+ <!-- 使用 Element UI 组件 -->
83
+ <el-button type="primary">Element Button</el-button>
84
+
85
+ <!-- 使用产研自定义组件 -->
86
+ <cy-tree-select
87
+ v-model="selectedIds"
88
+ :data="treeData"
89
+ placeholder="请选择"
90
+ ></cy-tree-select>
91
+
92
+ <cy-tab-dialog
93
+ title="标签对话框"
94
+ :visible="dialogVisible"
95
+ @close="dialogVisible = false"
96
+ >
97
+ <div slot="tab1">标签1内容</div>
98
+ <div slot="tab2">标签2内容</div>
99
+ </cy-tab-dialog>
100
+ </div>
101
+ </template>
102
+
103
+ <script>
104
+ export default {
105
+ name: 'App',
106
+ data() {
107
+ return {
108
+ selectedIds: [],
109
+ dialogVisible: false,
110
+ treeData: [
111
+ {
112
+ id: '1',
113
+ label: '一级节点',
114
+ children: [
115
+ { id: '1-1', label: '二级节点' }
116
+ ]
117
+ }
118
+ ]
119
+ };
120
+ }
121
+ };
122
+ </script>
123
+ ```
124
+
125
+ ---
126
+
127
+ ## 二、项目架构
128
+
129
+ ### 2.1 整体架构
130
+
131
+ ```
132
+ element-dev/ # 项目根目录
133
+ ├── build/ # 构建工具目录
134
+ │ ├── bin/ # 脚本命令
135
+ │ │ ├── build-entry.js # 生成入口文件脚本
136
+ │ │ ├── gen-cy-types.js # 生成cy组件类型定义
137
+ │ │ ├── new.js # 创建el组件脚本
138
+ │ │ └── new-cy.js # 创建cy组件脚本
139
+ │ ├── webpack.conf.js # UMD构建配置
140
+ │ ├── webpack.common.js # CommonJS构建配置
141
+ │ ├── webpack.component.js # 组件单独构建配置
142
+ │ └── webpack.demo.js # 示例站点构建配置
143
+ ├── examples/ # 示例文档站点
144
+ │ ├── docs/ # 文档内容
145
+ │ │ └── zh-CN/ # 中文文档
146
+ │ │ └── cy/ # 产研组件文档
147
+ │ ├── nav.config.json # 导航配置
148
+ │ └── route.config.js # 路由配置
149
+ ├── packages/ # 组件源码目录
150
+ │ ├── cy/ # 产研自定义组件
151
+ │ │ ├── treeSelect/ # 树形选择器
152
+ │ │ ├── tabDialog/ # 标签对话框
153
+ │ │ ├── subTitle/ # 副标题
154
+ │ │ └── selectDisplayInput/ # 选择显示输入框
155
+ │ └── theme-chalk/ # 主题样式源码
156
+ │ └── src/ # SCSS源码
157
+ │ └── cy/ # cy组件样式
158
+ ├── src/ # 核心源码
159
+ │ └── index.js # 组件库主入口(自动生成)
160
+ ├── types/ # 类型定义
161
+ │ └── cy/ # cy组件类型定义
162
+ ├── components.json # 组件配置清单
163
+ └── Makefile # 命令脚本
164
+ ```
165
+
166
+ ### 2.2 目录职责说明
167
+
168
+ | 目录层级 | 目录路径 | 职责 | 详细说明 |
169
+ |----------|----------|------|----------|
170
+ | 一级 | `build/` | 构建工具 | 包含所有构建脚本和webpack配置文件 |
171
+ | 二级 | `build/bin/` | 命令脚本 | new.js创建el组件,new-cy.js创建cy组件 |
172
+ | 一级 | `examples/` | 示例站点 | 组件展示文档和示例代码 |
173
+ | 二级 | `examples/docs/zh-CN/cy/` | 产研组件文档 | cy组件的中文文档目录 |
174
+ | 一级 | `packages/` | 组件源码 | 所有el和cy组件的源代码 |
175
+ | 二级 | `packages/cy/` | 产研组件 | 自定义的cy-*组件,独立目录管理 |
176
+ | 三级 | `packages/cy/treeSelect/` | 树形选择器 | CyTreeSelect组件源码 |
177
+ | 二级 | `packages/theme-chalk/src/cy/` | cy样式 | 产研组件的SCSS样式文件 |
178
+ | 一级 | `src/` | 核心入口 | 自动生成的组件注册入口文件 |
179
+ | 一级 | `types/cy/` | 类型定义 | cy组件的TypeScript类型定义 |
180
+
181
+ ### 2.3 组件结构规范
182
+
183
+ **产研自定义组件结构(cy组件):**
184
+
185
+ ```
186
+ packages/
187
+ └── cy/ # cy组件根目录
188
+ ├── treeSelect/ # 组件目录(驼峰式)
189
+ │ ├── index.js # 组件导出文件
190
+ │ └── src/ # 源码目录
191
+ │ └── main.vue # 主组件文件(必须)
192
+ ├── tabDialog/
193
+ ├── subTitle/
194
+ └── selectDisplayInput/
195
+ ```
196
+
197
+ **组件目录命名规则:**
198
+ - cy组件:驼峰式(如 `treeSelect`)
199
+
200
+ ---
201
+
202
+ ## 三、创建新组件
203
+
204
+ ### 3.1 创建 cy 组件(产研自定义)
205
+
206
+ 使用 Makefile 命令创建组件:
207
+
208
+ ```bash
209
+ make new-cy <component-name> [中文名]
210
+ ```
211
+
212
+ **示例:**
213
+
214
+ ```bash
215
+ make new-cy advancedSelect 高级选择器
216
+ ```
217
+
218
+ **执行该命令后自动完成以下操作:**
219
+
220
+ #### 3.1.1 自动创建的文件
221
+
222
+ | 文件路径 | 说明 | 是否必须修改 |
223
+ |----------|------|-------------|
224
+ | `packages/cy/advancedSelect/index.js` | 组件导出文件 | 否(自动生成) |
225
+ | `packages/cy/advancedSelect/src/main.vue` | 组件实现文件 | 是(必须编写逻辑) |
226
+ | `examples/docs/zh-CN/cy/advancedSelect.md` | 中文文档文件 | 是(必须编写文档) |
227
+ | `packages/theme-chalk/src/cy/advancedSelect.scss` | 组件样式文件 | 是(必须编写样式) |
228
+ | `examples/demo-styles/cy/advancedSelect.scss` | 示例页面样式文件 | 否(可选) |
229
+ | `types/cy/advancedSelect.d.ts` | 类型定义文件(不带 cy- 前缀) | 否(自动生成) |
230
+
231
+ #### 3.1.2 自动修改的文件
232
+
233
+ | 文件路径 | 修改内容 | 说明 |
234
+ |----------|---------|------|
235
+ | `packages/theme-chalk/src/cy/index.scss` | 添加 `@import "./advancedSelect.scss";` | 引入组件样式到主题 |
236
+ | `examples/demo-styles/cy/index.scss` | 添加 `@import "./advancedSelect.scss";` | 引入组件样式到示例 |
237
+ | `components.json` | 添加组件配置项 | 注册组件到构建系统 |
238
+ | `examples/nav.config.json` | 添加导航菜单项 | 注册组件到文档导航 |
239
+
240
+ #### 3.1.3 开发人员需要完成的工作
241
+
242
+ | 步骤 | 工作内容 | 文件 | 优先级 |
243
+ |------|---------|------|--------|
244
+ | 1 | 编写组件逻辑和模板 | `packages/cy/advancedSelect/src/main.vue` | 高 |
245
+ | 2 | 编写组件样式 | `packages/theme-chalk/src/cy/advancedSelect.scss` | 高 |
246
+ | 3 | 编写组件文档 | `examples/docs/zh-CN/cy/advancedSelect.md` | 高 |
247
+ | 4 | 重新生成入口 | `npm run build:file` | 必须 |
248
+
249
+ #### 3.1.4 生成的文件内容示例
250
+
251
+ **`packages/cy/advancedSelect/index.js`:**
252
+
253
+ ```javascript
254
+ import CyAdvancedSelect from './src/main';
255
+
256
+ /* istanbul ignore next */
257
+ CyAdvancedSelect.install = function(Vue) {
258
+ Vue.component(CyAdvancedSelect.name, CyAdvancedSelect);
259
+ };
260
+
261
+ export default CyAdvancedSelect;
262
+ ```
263
+
264
+ **`packages/cy/advancedSelect/src/main.vue`:**
265
+
266
+ ```vue
267
+ <template>
268
+ <div class="cy-advanced-select"></div>
269
+ </template>
270
+
271
+ <script>
272
+ export default {
273
+ name: 'CyAdvancedSelect'
274
+ };
275
+ </script>
276
+ ```
277
+
278
+ ### 3.2 创建 el 组件(Element UI 风格)
279
+
280
+ 使用 Makefile 命令创建组件:
281
+
282
+ ```bash
283
+ make new <component-name> [中文名]
284
+ ```
285
+
286
+ **示例:**
287
+
288
+ ```bash
289
+ make new custom-button 自定义按钮
290
+ ```
291
+
292
+ **执行该命令后自动完成以下操作:**
293
+
294
+ #### 3.2.1 自动创建的文件
295
+
296
+ | 文件路径 | 说明 | 是否必须修改 |
297
+ |----------|------|-------------|
298
+ | `packages/custom-button/index.js` | 组件导出文件 | 否(自动生成) |
299
+ | `packages/custom-button/src/main.vue` | 组件实现文件 | 是(必须编写逻辑) |
300
+ | `examples/docs/zh-CN/custom-button.md` | 中文文档文件 | 是(必须编写文档) |
301
+ | `packages/theme-chalk/src/custom-button.scss` | 组件样式文件 | 是(必须编写样式) |
302
+ | `examples/demo-styles/custom-button.scss` | 示例页面样式文件 | 否(可选) |
303
+
304
+ #### 3.2.2 自动修改的文件
305
+
306
+ | 文件路径 | 修改内容 | 说明 |
307
+ |----------|---------|------|
308
+ | `packages/theme-chalk/src/index.scss` | 添加 `@import "./custom-button.scss";` | 引入组件样式到主题 |
309
+ | `examples/demo-styles/index.scss` | 添加 `@import "./custom-button.scss";` | 引入组件样式到示例 |
310
+ | `components.json` | 添加组件配置项 | 注册组件到构建系统 |
311
+
312
+ #### 3.2.3 开发人员需要完成的工作
313
+
314
+ | 步骤 | 工作内容 | 文件 | 优先级 |
315
+ |------|---------|------|--------|
316
+ | 1 | 编写组件逻辑和模板 | `packages/custom-button/src/main.vue` | |
317
+ | 2 | 编写组件样式 | `packages/theme-chalk/src/custom-button.scss` | |
318
+ | 3 | 编写组件文档 | `examples/docs/zh-CN/custom-button.md` | |
319
+ | 4 | 添加导航配置 | `examples/nav.config.json` | |
320
+ | 5 | 重新生成入口 | `npm run build:file` | 必须 |
321
+
322
+ ### 3.3 组件配置文件详解
323
+
324
+ #### components.json
325
+
326
+ 组件配置清单,定义所有需要打包的组件:
327
+
328
+ ```json
329
+ [
330
+ { "name": "CyTreeSelect", "path": "./packages/cy/treeSelect/index.js" },
331
+ { "name": "CyTabDialog", "path": "./packages/cy/tabDialog/index.js" },
332
+ { "name": "CySubTitle", "path": "./packages/cy/subTitle/index.js" },
333
+ { "name": "CySelectDisplayInput", "path": "./packages/cy/selectDisplayInput/index.js" },
334
+ { "name": "Button", "path": "./packages/button/index.js" },
335
+ { "name": "Input", "path": "./packages/input/index.js" }
336
+ ]
337
+ ```
338
+
339
+ **字段说明:**
340
+ - `name`:组件名称(使用 PascalCase,cy组件以Cy开头,el组件首字母大写)
341
+ - `path`:组件导出文件路径(相对于项目根目录)
342
+
343
+ #### 自动生成入口文件
344
+
345
+ 运行 `npm run build:file` 自动生成 `src/index.js`,包含:
346
+
347
+ 1. 所有组件的 import 语句
348
+ 2. 组件数组定义(components)
349
+ 3. install 函数(注册所有组件、指令、原型方法)
350
+ 4. 默认导出对象(包含版本号、install方法、所有组件)
351
+
352
+ ### 3.4 组件命名规范
353
+
354
+ | 类型 | 前缀 | 命名方式 | 示例 |
355
+ |------|------|---------|------|
356
+ | Element UI 组件 | `El` | PascalCase | `ElButton`, `ElInput` |
357
+ | 产研自定义组件 | `Cy` | PascalCase | `CyTreeSelect`, `CyTabDialog` |
358
+ | 组件目录(el) | - | 小写连字符 | `custom-button` |
359
+ | 组件目录(cy) | - | 驼峰式 | `treeSelect` |
360
+ | 样式文件 | - | 小写连字符 | `button.scss`, `tree-select.scss` |
361
+ | 文档文件 | - | 驼峰式 | `treeSelect.md` |
362
+
363
+ ---
364
+
365
+ ## 四、修改现有组件
366
+
367
+ ### 4.1 修改组件代码
368
+
369
+ **步骤 1:定位组件文件**
370
+
371
+ ```bash
372
+ # 修改 cy 组件
373
+ vi packages/cy/treeSelect/src/main.vue
374
+
375
+ # 修改 el 组件
376
+ vi packages/button/src/button.vue
377
+ ```
378
+
379
+ **步骤 2:修改组件逻辑**
380
+
381
+ ```vue
382
+ <script>
383
+ export default {
384
+ name: 'CyTreeSelect',
385
+ props: {
386
+ // 添加或修改属性
387
+ allowClear: {
388
+ type: Boolean,
389
+ default: false
390
+ }
391
+ },
392
+ methods: {
393
+ // 添加或修改方法
394
+ clearSelection() {
395
+ if (this.allowClear) {
396
+ this.selectedValues = [];
397
+ this.$emit('input', []);
398
+ }
399
+ }
400
+ }
401
+ };
402
+ </script>
403
+ ```
404
+
405
+ ### 4.2 修改组件样式
406
+
407
+ ```scss
408
+ // packages/theme-chalk/src/cy/treeSelect.scss
409
+ .cy-tree-select {
410
+ // 添加新样式
411
+ &__clear-btn {
412
+ position: absolute;
413
+ right: 30px;
414
+ top: 50%;
415
+ transform: translateY(-50%);
416
+ cursor: pointer;
417
+ color: #909399;
418
+ }
419
+ }
420
+ ```
421
+
422
+ ### 4.3 更新组件文档
423
+
424
+ 同步更新对应的文档文件,添加新属性和方法的说明。
425
+
426
+ ---
427
+
428
+ ## 五、编写组件文档
429
+
430
+ ### 5.1 创建文档文件
431
+
432
+ **中文文档路径:**
433
+
434
+ ```
435
+ examples/docs/zh-CN/cy/<component-name>.md
436
+ ```
437
+
438
+ **文档内容结构:**
439
+
440
+ ```markdown
441
+ ## CyAdvancedSelect 高级选择器
442
+
443
+ ### 介绍
444
+
445
+ 高级选择器组件,支持多选、搜索过滤、标签展示等功能。
446
+
447
+ ### 基本用法
448
+
449
+ ```html
450
+ <cy-advanced-select
451
+ v-model="selectedValues"
452
+ :options="options"
453
+ placeholder="请选择"
454
+ ></cy-advanced-select>
455
+ ```
456
+
457
+ ```javascript
458
+ export default {
459
+ data() {
460
+ return {
461
+ selectedValues: [],
462
+ options: [
463
+ { value: '1', label: '选项1' },
464
+ { value: '2', label: '选项2' },
465
+ { value: '3', label: '选项3' }
466
+ ]
467
+ };
468
+ }
469
+ };
470
+ ```
471
+
472
+ ### 属性
473
+
474
+ | 属性 | 说明 | 类型 | 默认值 |
475
+ |------|------|------|--------|
476
+ | value / v-model | 选中值数组 | Array | [] |
477
+ | options | 选项列表 | Array | [] |
478
+ | placeholder | 占位提示 | String | '请选择' |
479
+
480
+ ### 事件
481
+
482
+ | 事件名 | 说明 | 参数 |
483
+ |--------|------|------|
484
+ | input | 选中值变化时触发 | 选中的值数组 |
485
+ | change | 选中值变化时触发 | 选中的选项对象数组 |
486
+ ```
487
+
488
+ ### 5.2 配置导航
489
+
490
+ 修改 `examples/nav.config.json`:
491
+
492
+ ```json
493
+ {
494
+ "zh-CN": {
495
+ "title": "组件",
496
+ "children": [
497
+ {
498
+ "path": "/chanyan",
499
+ "title": "产研组件",
500
+ "children": [
501
+ {
502
+ "path": "/chanyan/treeSelect",
503
+ "title": "TreeSelect 树形选择器"
504
+ },
505
+ {
506
+ "path": "/chanyan/advancedSelect",
507
+ "title": "AdvancedSelect 高级选择器"
508
+ }
509
+ ]
510
+ }
511
+ ]
512
+ }
513
+ }
514
+ ```
515
+
516
+ ---
517
+
518
+ ## 六、打包构建
519
+
520
+ ### 6.1 完整构建
521
+
522
+ ```bash
523
+ npm run dist
524
+ ```
525
+
526
+ **构建内容:**
527
+
528
+ | 文件路径 | 说明 |
529
+ |----------|------|
530
+ | `lib/index.js` | UMD格式主入口 |
531
+ | `lib/element-ui.common.js` | CommonJS格式入口 |
532
+ | `lib/theme-chalk/` | 主题样式目录 |
533
+ | `lib/[component].js` | 各组件单独打包文件 |
534
+
535
+ ### 6.2 分步构建
536
+
537
+ ```bash
538
+ # 清理构建目录
539
+ npm run clean
540
+
541
+ # 生成入口文件
542
+ npm run build:file
543
+
544
+ # 构建 UMD 版本
545
+ npx webpack --config build/webpack.conf.js
546
+
547
+ # 构建 CommonJS 版本
548
+ npx webpack --config build/webpack.common.js
549
+
550
+ # 构建组件单独文件
551
+ npx webpack --config build/webpack.component.js
552
+
553
+ # 构建工具函数
554
+ npm run build:utils
555
+
556
+ # 构建主题样式
557
+ npm run build:theme
558
+ ```
559
+
560
+ ### 6.3 内存不足问题处理
561
+
562
+ 如果构建时出现内存不足错误(退出码 `-1073741510`),可以增加 Node.js 内存限制:
563
+
564
+ ```bash
565
+ # 方式一:临时设置环境变量
566
+ $env:NODE_OPTIONS="--max-old-space-size=8192"
567
+ npm run dist
568
+
569
+ # 方式二:直接使用 node 命令
570
+ node --max-old-space-size=8192 node_modules/webpack/bin/webpack.js --config build/webpack.component.js
571
+ ```
572
+
573
+ ---
574
+
575
+ ## 七、发布到 npm
576
+
577
+ ### 7.1 更新版本号
578
+
579
+ ```bash
580
+ # 升级补丁版本(1.1.3 → 1.1.4)
581
+ npm version patch
582
+
583
+ # 升级次要版本(1.1.3 → 1.2.0)
584
+ npm version minor
585
+
586
+ # 升级主要版本(1.1.3 → 2.0.0)
587
+ npm version major
588
+ ```
589
+
590
+ ### 7.2 登录 npm
591
+
592
+ ```bash
593
+ npm login
594
+ ```
595
+
596
+ ### 7.3 发布
597
+
598
+ ```bash
599
+ npm publish
600
+ ```
601
+
602
+ ---
603
+
604
+ ## 八、开发流程最佳实践
605
+
606
+ ### 8.1 开发流程
607
+
608
+ ```
609
+ 1. 创建组件 → make new-cy <name> [中文名]
610
+ 2. 编写代码 → 修改 packages/cy/<name>/src/main.vue
611
+ 3. 编写样式 → 修改 packages/theme-chalk/src/cy/<name>.scss
612
+ 4. 编写文档 → 修改 examples/docs/zh-CN/cy/<name>.md
613
+ 5. 生成入口 → npm run build:file
614
+ 6. 启动开发 → npm run dev
615
+ 7. 完整构建 → npm run dist
616
+ 8. 发布 npm → npm publish
617
+ ```
618
+
619
+ ### 8.2 注意事项
620
+
621
+ 1. **不使用单元测试**:本项目不编写单元测试,所有组件通过示例站点验证
622
+ 2. **类型定义**:cy组件的类型定义文件不带 `cy-` 前缀,使用连字符命名(如 `tree-select.d.ts`)
623
+ 3. **样式命名**:使用 BEM 命名规范,cy组件样式类名以 `cy-` 开头
624
+ 4. **文档语言**:仅提供中文文档,不提供其他语言版本
625
+
626
+ ---
627
+
628
+ **版本**: v1.0
629
+ **最后更新**: 2024年