@a2simcode/ui 0.0.270 → 0.0.272

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 (372) hide show
  1. package/.cursor/skills/ui-component-helper/README.md +86 -86
  2. package/.cursor/skills/ui-component-helper/SKILL.md +115 -115
  3. package/LICENSE +53 -53
  4. package/README.md +156 -156
  5. package/dist/components/table/index.d.ts +15 -0
  6. package/dist/components/table/src/interface.d.ts +13 -0
  7. package/dist/components/table/src/table.vue.d.ts +16 -1
  8. package/dist/simcode-ui.es.js +4917 -4884
  9. package/dist/simcode-ui.umd.js +2 -2
  10. package/dist/stats.html +1 -1
  11. package/dist/ui.css +1 -1
  12. package/docs/components/autocomplete.md +89 -89
  13. package/docs/components/barcode.md +101 -101
  14. package/docs/components/button-select.md +24 -24
  15. package/docs/components/button.md +117 -117
  16. package/docs/components/buttons.md +119 -119
  17. package/docs/components/card-list.md +38 -38
  18. package/docs/components/cascader-select.md +114 -114
  19. package/docs/components/checkbox.md +114 -114
  20. package/docs/components/code-mirror.md +85 -85
  21. package/docs/components/collapse.md +26 -26
  22. package/docs/components/comp.md +106 -91
  23. package/docs/components/count-up.md +24 -24
  24. package/docs/components/count.md +24 -24
  25. package/docs/components/data-panel.md +24 -24
  26. package/docs/components/date.md +76 -76
  27. package/docs/components/dialog-full.md +112 -112
  28. package/docs/components/dialog.md +127 -127
  29. package/docs/components/divider.md +24 -24
  30. package/docs/components/drawer.md +127 -127
  31. package/docs/components/dynamic-layer.md +118 -118
  32. package/docs/components/echarts.md +72 -72
  33. package/docs/components/editor.md +24 -24
  34. package/docs/components/form.md +87 -87
  35. package/docs/components/guid.md +39 -39
  36. package/docs/components/hpanel.md +24 -24
  37. package/docs/components/icon.md +56 -56
  38. package/docs/components/input-button.md +24 -24
  39. package/docs/components/input-code.md +24 -24
  40. package/docs/components/input-color.md +114 -114
  41. package/docs/components/input-layer.md +56 -56
  42. package/docs/components/input-rows.md +370 -370
  43. package/docs/components/input-tag.md +50 -50
  44. package/docs/components/input.md +129 -129
  45. package/docs/components/layer-form.md +61 -61
  46. package/docs/components/layer.md +127 -127
  47. package/docs/components/layout.md +132 -132
  48. package/docs/components/map.md +24 -24
  49. package/docs/components/menu.md +121 -121
  50. package/docs/components/meta/button.ts +212 -212
  51. package/docs/components/meta/buttons.ts +76 -76
  52. package/docs/components/meta/card-list.ts +210 -210
  53. package/docs/components/meta/code-mirror.ts +108 -108
  54. package/docs/components/meta/comp.ts +236 -236
  55. package/docs/components/meta/date.ts +267 -267
  56. package/docs/components/meta/echarts.ts +64 -64
  57. package/docs/components/meta/form-item.ts +62 -62
  58. package/docs/components/meta/form.ts +181 -181
  59. package/docs/components/meta/input-button.ts +175 -175
  60. package/docs/components/meta/input-cards.ts +112 -112
  61. package/docs/components/meta/input-code.ts +161 -161
  62. package/docs/components/meta/input-color.ts +243 -243
  63. package/docs/components/meta/input-rows.ts +119 -119
  64. package/docs/components/meta/layer-form.ts +74 -74
  65. package/docs/components/meta/map.ts +68 -68
  66. package/docs/components/meta/panel.ts +152 -152
  67. package/docs/components/meta/radio.ts +55 -55
  68. package/docs/components/meta/select.ts +279 -279
  69. package/docs/components/meta/slider.ts +270 -270
  70. package/docs/components/meta/table-panel.ts +326 -326
  71. package/docs/components/meta/table.ts +489 -458
  72. package/docs/components/meta/tabs.ts +146 -146
  73. package/docs/components/meta/title.ts +91 -91
  74. package/docs/components/meta/tree-select.ts +199 -199
  75. package/docs/components/meta/tree.ts +225 -225
  76. package/docs/components/meta/vpanel.ts +19 -19
  77. package/docs/components/meta/workflow-viewer.ts +55 -55
  78. package/docs/components/number.md +124 -124
  79. package/docs/components/page.md +102 -102
  80. package/docs/components/panel.md +37 -37
  81. package/docs/components/radio.md +87 -87
  82. package/docs/components/rate.md +71 -71
  83. package/docs/components/select.md +133 -133
  84. package/docs/components/slider-captcha.md +41 -41
  85. package/docs/components/slider.md +101 -101
  86. package/docs/components/switch.md +90 -90
  87. package/docs/components/table-panel.md +312 -312
  88. package/docs/components/table.md +510 -495
  89. package/docs/components/tabs.md +26 -26
  90. package/docs/components/title.md +24 -24
  91. package/docs/components/tree.md +222 -222
  92. package/docs/components/upload.md +117 -117
  93. package/docs/components/workflow-viewer.md +21 -21
  94. package/docs/components/workflow.md +21 -21
  95. package/docs/examples/autocomplete/advanced.vue +35 -35
  96. package/docs/examples/autocomplete/basic.vue +32 -32
  97. package/docs/examples/autocomplete/clearable.vue +33 -33
  98. package/docs/examples/autocomplete/custom-template.vue +49 -49
  99. package/docs/examples/autocomplete/disabled.vue +33 -33
  100. package/docs/examples/autocomplete/icon.vue +37 -37
  101. package/docs/examples/barcode/all-types.vue +380 -380
  102. package/docs/examples/barcode/basic.vue +14 -14
  103. package/docs/examples/barcode/props-appearance.vue +243 -243
  104. package/docs/examples/barcode/props-geometry.vue +143 -143
  105. package/docs/examples/barcode/props-logic.vue +216 -216
  106. package/docs/examples/barcode/props-symbology.vue +199 -199
  107. package/docs/examples/barcode/props-text.vue +268 -268
  108. package/docs/examples/button/basic.vue +7 -7
  109. package/docs/examples/button/disabled.vue +42 -42
  110. package/docs/examples/button/loading.vue +6 -6
  111. package/docs/examples/button/shape.vue +7 -7
  112. package/docs/examples/button/size.vue +14 -14
  113. package/docs/examples/button/status.vue +34 -34
  114. package/docs/examples/button/type.vue +10 -10
  115. package/docs/examples/button-select/basic.vue +19 -19
  116. package/docs/examples/buttons/basic.vue +62 -62
  117. package/docs/examples/buttons/disabled.vue +36 -36
  118. package/docs/examples/buttons/dropdown.vue +63 -63
  119. package/docs/examples/buttons/group.vue +52 -52
  120. package/docs/examples/buttons/link.vue +47 -47
  121. package/docs/examples/buttons/popup.vue +39 -39
  122. package/docs/examples/buttons/size.vue +45 -45
  123. package/docs/examples/card-list/basic.vue +70 -70
  124. package/docs/examples/card-list/selection-pagination.vue +69 -69
  125. package/docs/examples/cascader-select/basic.vue +28 -28
  126. package/docs/examples/cascader-select/clearable.vue +34 -34
  127. package/docs/examples/cascader-select/disabled.vue +43 -43
  128. package/docs/examples/cascader-select/filterable.vue +37 -37
  129. package/docs/examples/cascader-select/methods.vue +84 -84
  130. package/docs/examples/cascader-select/multiple.vue +38 -38
  131. package/docs/examples/cascader-select/slot.vue +45 -45
  132. package/docs/examples/checkbox/basic.vue +18 -18
  133. package/docs/examples/checkbox/button.vue +19 -19
  134. package/docs/examples/checkbox/color.vue +25 -25
  135. package/docs/examples/checkbox/disabled.vue +17 -17
  136. package/docs/examples/checkbox/min-max.vue +20 -20
  137. package/docs/examples/checkbox/mixed.vue +56 -56
  138. package/docs/examples/checkbox/size.vue +28 -28
  139. package/docs/examples/code-mirror/basic.vue +11 -11
  140. package/docs/examples/code-mirror/events.vue +42 -42
  141. package/docs/examples/code-mirror/height.vue +25 -25
  142. package/docs/examples/code-mirror/mode.vue +33 -33
  143. package/docs/examples/code-mirror/readonly.vue +14 -14
  144. package/docs/examples/collapse/basic.vue +82 -82
  145. package/docs/examples/comp/basic.vue +7 -7
  146. package/docs/examples/comp/collapse.vue +38 -38
  147. package/docs/examples/comp/table-merge-rows.vue +77 -77
  148. package/docs/examples/comp/table-row-fixed-merge.vue +105 -0
  149. package/docs/examples/comp/tabs.vue +38 -38
  150. package/docs/examples/count/basic.vue +101 -101
  151. package/docs/examples/count-up/basic.vue +89 -89
  152. package/docs/examples/data-panel/basic.vue +110 -110
  153. package/docs/examples/date/basic.vue +73 -73
  154. package/docs/examples/date/default-value.vue +59 -59
  155. package/docs/examples/date/format.vue +75 -75
  156. package/docs/examples/date/range.vue +66 -66
  157. package/docs/examples/date/types.vue +79 -79
  158. package/docs/examples/decorated-title/basic.vue +31 -31
  159. package/docs/examples/dialog/basic.vue +36 -36
  160. package/docs/examples/dialog/custom-buttons.vue +44 -44
  161. package/docs/examples/dialog/fullscreen.vue +23 -23
  162. package/docs/examples/dialog/no-mask.vue +17 -17
  163. package/docs/examples/dialog/size.vue +44 -44
  164. package/docs/examples/dialog/steps.vue +57 -57
  165. package/docs/examples/dialog-full/basic.vue +29 -29
  166. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  167. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  168. package/docs/examples/dialog-full/no-header.vue +27 -27
  169. package/docs/examples/dialog-full/steps.vue +71 -71
  170. package/docs/examples/divider/basic.vue +52 -52
  171. package/docs/examples/drawer/basic.vue +35 -35
  172. package/docs/examples/drawer/custom-buttons.vue +34 -34
  173. package/docs/examples/drawer/direction.vue +47 -47
  174. package/docs/examples/drawer/mask.vue +36 -36
  175. package/docs/examples/drawer/no-buttons.vue +20 -20
  176. package/docs/examples/drawer/size.vue +28 -28
  177. package/docs/examples/dynamic-layer/basic.vue +33 -33
  178. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  179. package/docs/examples/dynamic-layer/form.vue +73 -73
  180. package/docs/examples/dynamic-layer/steps.vue +52 -52
  181. package/docs/examples/dynamic-layer/types.vue +40 -40
  182. package/docs/examples/echarts/basic.vue +31 -31
  183. package/docs/examples/echarts/dynamic.vue +43 -43
  184. package/docs/examples/echarts/line.vue +46 -46
  185. package/docs/examples/echarts/pie.vue +44 -44
  186. package/docs/examples/editor/basic.vue +15 -15
  187. package/docs/examples/form/basic.vue +688 -688
  188. package/docs/examples/form/init.vue +76 -76
  189. package/docs/examples/form/master-detail.vue +203 -203
  190. package/docs/examples/form/rule-format.vue +179 -179
  191. package/docs/examples/form/view-table.vue +378 -378
  192. package/docs/examples/guid/basic.vue +10 -10
  193. package/docs/examples/guid/size.vue +13 -13
  194. package/docs/examples/hpanel/basic.vue +79 -79
  195. package/docs/examples/icon/basic.vue +9 -9
  196. package/docs/examples/icon/rotate-flip.vue +9 -9
  197. package/docs/examples/icon/size.vue +7 -7
  198. package/docs/examples/input/basic.vue +10 -10
  199. package/docs/examples/input/clearable.vue +12 -12
  200. package/docs/examples/input/disabled.vue +6 -6
  201. package/docs/examples/input/icon.vue +23 -23
  202. package/docs/examples/input/password.vue +18 -18
  203. package/docs/examples/input/size.vue +13 -13
  204. package/docs/examples/input/textarea.vue +25 -25
  205. package/docs/examples/input/word-limit.vue +28 -28
  206. package/docs/examples/input-button/basic.vue +33 -33
  207. package/docs/examples/input-cards/basic.vue +79 -79
  208. package/docs/examples/input-code/basic.vue +29 -29
  209. package/docs/examples/input-color/basic.vue +10 -10
  210. package/docs/examples/input-color/disabled.vue +13 -13
  211. package/docs/examples/input-color/format.vue +17 -17
  212. package/docs/examples/input-color/no-alpha.vue +13 -13
  213. package/docs/examples/input-color/only-button.vue +15 -15
  214. package/docs/examples/input-color/predefine.vue +31 -31
  215. package/docs/examples/input-color/size.vue +15 -15
  216. package/docs/examples/input-layer/basic.vue +85 -85
  217. package/docs/examples/input-layer/render-vnode-page.vue +160 -160
  218. package/docs/examples/input-layer/render-vnode.vue +127 -127
  219. package/docs/examples/input-rows/basic.vue +73 -73
  220. package/docs/examples/input-rows/drag.vue +48 -48
  221. package/docs/examples/input-rows/layer-form.vue +85 -85
  222. package/docs/examples/input-rows/nested.vue +91 -91
  223. package/docs/examples/input-tag/basic.vue +27 -27
  224. package/docs/examples/input-tag/colors.vue +23 -23
  225. package/docs/examples/input-tag/readonly.vue +17 -17
  226. package/docs/examples/layer/basic.vue +43 -43
  227. package/docs/examples/layer/custom-buttons.vue +61 -61
  228. package/docs/examples/layer/drawer.vue +37 -37
  229. package/docs/examples/layer/full.vue +38 -38
  230. package/docs/examples/layer/modal.vue +34 -34
  231. package/docs/examples/layer/steps.vue +46 -46
  232. package/docs/examples/layer-form/basic.vue +76 -76
  233. package/docs/examples/layer-form/config.vue +82 -82
  234. package/docs/examples/layer-form/size.vue +72 -72
  235. package/docs/examples/layout/basic.vue +36 -36
  236. package/docs/examples/layout/custom-size.vue +50 -50
  237. package/docs/examples/layout/disable-move.vue +37 -37
  238. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  239. package/docs/examples/layout/min-size.vue +73 -73
  240. package/docs/examples/layout/percent-size.vue +80 -80
  241. package/docs/examples/layout/simple.vue +22 -22
  242. package/docs/examples/layout/top-side.vue +34 -34
  243. package/docs/examples/map/basic.vue +22 -22
  244. package/docs/examples/menu/basic.vue +58 -58
  245. package/docs/examples/menu/collapsed.vue +49 -49
  246. package/docs/examples/menu/horizontal.vue +44 -44
  247. package/docs/examples/menu/selection-test.vue +104 -104
  248. package/docs/examples/menu/theme.vue +46 -46
  249. package/docs/examples/menu/vertical.vue +46 -46
  250. package/docs/examples/number/advanced.vue +143 -143
  251. package/docs/examples/number/basic.vue +63 -63
  252. package/docs/examples/number/disabled.vue +49 -49
  253. package/docs/examples/number/size.vue +42 -42
  254. package/docs/examples/number/slots.vue +123 -123
  255. package/docs/examples/number/step-strictly.vue +41 -41
  256. package/docs/examples/number/step.vue +47 -47
  257. package/docs/examples/page/basic.vue +41 -41
  258. package/docs/examples/page/code-table-model.vue +428 -428
  259. package/docs/examples/page/dept-user-management.vue +211 -211
  260. package/docs/examples/page/init.vue +87 -87
  261. package/docs/examples/page/log.vue +453 -453
  262. package/docs/examples/page/user-management.vue +313 -313
  263. package/docs/examples/panel/tool-buttons.vue +18 -18
  264. package/docs/examples/radio/basic.vue +17 -17
  265. package/docs/examples/radio/button.vue +17 -17
  266. package/docs/examples/radio/color.vue +18 -18
  267. package/docs/examples/radio/disabled.vue +17 -17
  268. package/docs/examples/radio/size.vue +29 -29
  269. package/docs/examples/rate/basic.vue +24 -24
  270. package/docs/examples/rate/half.vue +24 -24
  271. package/docs/examples/rate/readonly.vue +11 -11
  272. package/docs/examples/rate/text.vue +37 -37
  273. package/docs/examples/select/basic.vue +16 -16
  274. package/docs/examples/select/clearable.vue +22 -22
  275. package/docs/examples/select/disabled.vue +31 -31
  276. package/docs/examples/select/filterable.vue +24 -24
  277. package/docs/examples/select/group.vue +23 -23
  278. package/docs/examples/select/icon.vue +16 -16
  279. package/docs/examples/select/multiple.vue +18 -18
  280. package/docs/examples/select/size.vue +39 -39
  281. package/docs/examples/slider/basic.vue +42 -42
  282. package/docs/examples/slider/disabled.vue +17 -17
  283. package/docs/examples/slider/marks.vue +30 -30
  284. package/docs/examples/slider/size.vue +37 -37
  285. package/docs/examples/slider/tooltip.vue +36 -36
  286. package/docs/examples/slider/vertical.vue +26 -26
  287. package/docs/examples/slider-captcha/basic.vue +44 -44
  288. package/docs/examples/slider-captcha/custom.vue +48 -48
  289. package/docs/examples/switch/basic.vue +16 -16
  290. package/docs/examples/switch/disabled.vue +13 -13
  291. package/docs/examples/switch/loading.vue +13 -13
  292. package/docs/examples/switch/size.vue +15 -15
  293. package/docs/examples/switch/text.vue +13 -13
  294. package/docs/examples/table/action-filter.vue +126 -126
  295. package/docs/examples/table/actions.vue +116 -116
  296. package/docs/examples/table/add-row.vue +103 -103
  297. package/docs/examples/table/basic.vue +168 -168
  298. package/docs/examples/table/checkbox-layout.vue +68 -68
  299. package/docs/examples/table/column-filter.vue +96 -96
  300. package/docs/examples/table/custom-layout.vue +115 -115
  301. package/docs/examples/table/custom-merge-cell.vue +206 -206
  302. package/docs/examples/table/dynamic-type.vue +73 -73
  303. package/docs/examples/table/editable.vue +262 -262
  304. package/docs/examples/table/field-selection.vue +87 -87
  305. package/docs/examples/table/frozen-column.vue +140 -140
  306. package/docs/examples/table/height-mode.vue +99 -99
  307. package/docs/examples/table/icon.vue +85 -85
  308. package/docs/examples/table/layer-form.vue +133 -133
  309. package/docs/examples/table/link.vue +66 -66
  310. package/docs/examples/table/merge-cell.vue +78 -78
  311. package/docs/examples/table/merge-header.vue +86 -0
  312. package/docs/examples/table/multiple-disabled.vue +112 -112
  313. package/docs/examples/table/multiple.vue +188 -188
  314. package/docs/examples/table/pagination.vue +151 -151
  315. package/docs/examples/table/row-drag.vue +67 -67
  316. package/docs/examples/table/row-fixed.vue +61 -61
  317. package/docs/examples/table/single-selection.vue +64 -64
  318. package/docs/examples/table/sub-table-lazy.vue +97 -97
  319. package/docs/examples/table/sub-table.vue +103 -103
  320. package/docs/examples/table/tag.vue +43 -43
  321. package/docs/examples/table/tree-column.vue +119 -119
  322. package/docs/examples/table/tree-data.vue +141 -141
  323. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  324. package/docs/examples/table/tree-lazy.vue +80 -80
  325. package/docs/examples/table/tree-set-selection.vue +75 -75
  326. package/docs/examples/table-panel/basic.vue +229 -229
  327. package/docs/examples/table-panel/batch-operations.vue +286 -286
  328. package/docs/examples/table-panel/button-visibility.vue +88 -88
  329. package/docs/examples/table-panel/card.vue +101 -101
  330. package/docs/examples/table-panel/column-filter.vue +116 -116
  331. package/docs/examples/table-panel/filter.vue +219 -219
  332. package/docs/examples/table-panel/get-selection.vue +111 -111
  333. package/docs/examples/table-panel/mask.vue +151 -151
  334. package/docs/examples/table-panel/model-value.vue +87 -87
  335. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  336. package/docs/examples/table-panel/pagination.vue +133 -133
  337. package/docs/examples/table-panel/search-list.vue +207 -207
  338. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  339. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  340. package/docs/examples/tabs/basic.vue +98 -98
  341. package/docs/examples/time/base.vue +67 -67
  342. package/docs/examples/title/basic.vue +87 -87
  343. package/docs/examples/tree/accordion.vue +46 -46
  344. package/docs/examples/tree/basic.vue +50 -50
  345. package/docs/examples/tree/buttons.vue +53 -53
  346. package/docs/examples/tree/check-strictly.vue +53 -53
  347. package/docs/examples/tree/checkable.vue +52 -52
  348. package/docs/examples/tree/custom-keys.vue +39 -39
  349. package/docs/examples/tree/default-expanded.vue +52 -52
  350. package/docs/examples/tree/draggable.vue +29 -29
  351. package/docs/examples/tree/expand-on-click.vue +39 -39
  352. package/docs/examples/tree/flat-data.vue +20 -20
  353. package/docs/examples/tree/icon.vue +40 -40
  354. package/docs/examples/tree/load-data.vue +37 -37
  355. package/docs/examples/tree/methods.vue +74 -74
  356. package/docs/examples/tree/theme.vue +33 -33
  357. package/docs/examples/tree-select/basic.vue +47 -47
  358. package/docs/examples/upload/accept.vue +31 -31
  359. package/docs/examples/upload/basic.vue +12 -12
  360. package/docs/examples/upload/drag.vue +11 -11
  361. package/docs/examples/upload/image.vue +17 -17
  362. package/docs/examples/upload/limit.vue +20 -20
  363. package/docs/examples/upload/multiple.vue +17 -17
  364. package/docs/examples/upload/readonly.vue +17 -17
  365. package/docs/examples/utils/cipher.vue +160 -160
  366. package/docs/examples/utils/common.vue +153 -153
  367. package/docs/examples/utils/date.vue +56 -56
  368. package/docs/examples/utils/dom.vue +52 -52
  369. package/docs/examples/utils/is.vue +70 -70
  370. package/docs/examples/workflow/basic.vue +265 -265
  371. package/docs/examples/workflow-viewer/basic.vue +248 -248
  372. package/package.json +23 -23
package/README.md CHANGED
@@ -1,156 +1,156 @@
1
- # SimCode UI
2
-
3
- <div align="center">
4
- <h1>SimCode UI</h1>
5
- <p>基于 Vue 3 + TypeScript 的现代化 UI 组件库</p>
6
- </div>
7
-
8
- ## ✨ 特性
9
-
10
- - 🚀 **现代化技术栈**: 基于 Vue 3 + TypeScript + Vite
11
- - 📦 **开箱即用**: 提供完善的类型定义和文档
12
- - 🎨 **精美设计**: 现代化的设计风格
13
- - 🔧 **易于定制**: 支持主题定制
14
- - ⚡️ **按需加载**: 支持 Tree Shaking
15
- - 🧪 **完善测试**: 单元测试覆盖
16
-
17
- ## 📦 安装
18
-
19
- 使用 pnpm:
20
-
21
- ```bash
22
- pnpm add @a2simcode/ui
23
- ```
24
-
25
- 使用 npm:
26
-
27
- ```bash
28
- npm install @a2simcode/ui
29
- ```
30
-
31
- 使用 yarn:
32
-
33
- ```bash
34
- yarn add @a2simcode/ui
35
- ```
36
-
37
- ### 安装 Peer Dependencies
38
-
39
- `@a2simcode/ui` 使用 peer dependencies 来避免重复打包依赖。**必须安装**以下依赖:
40
-
41
- ```bash
42
- pnpm add vue element-plus
43
- ```
44
-
45
- 根据你使用的组件,可能还需要安装以下**可选依赖**:
46
-
47
- ```bash
48
- # 如果使用表格组件
49
- pnpm add @visactor/vtable @visactor/vtable-editors
50
-
51
- # 如果使用图表组件
52
- pnpm add echarts
53
-
54
- # 如果使用代码编辑器组件
55
- pnpm add codemirror @codemirror/autocomplete @codemirror/commands @codemirror/lang-javascript @codemirror/lang-json @codemirror/lang-sql @codemirror/lang-python @codemirror/lang-java @codemirror/lang-css @codemirror/lang-html @codemirror/lang-xml @codemirror/lang-markdown @codemirror/language @codemirror/state @codemirror/view
56
-
57
- # 如果使用其他功能组件
58
- pnpm add @iconify/vue @vueuse/core dayjs async-validator crypto-js sortablejs sql-formatter countup.js @bwip-js/browser @wangeditor/editor diagram-js diagram-js-direct-editing min-dom inherits tiny-svg min-dash
59
- ```
60
-
61
- > **注意**: 由于 `@a2simcode/ui` 输出的是预打包的单文件,使用方的打包器可能无法自动识别 peer dependencies。请确保在使用相关组件前,已安装对应的 peer dependencies。
62
-
63
- ## 🔨 快速开始
64
-
65
- ### 完整引入
66
-
67
- ```typescript
68
- import { createApp } from 'vue'
69
- import App from './App.vue'
70
- import SimCodeUI from '@a2simcode/ui'
71
- import '@a2simcode/ui/dist/style.css'
72
-
73
- const app = createApp(App)
74
- app.use(SimCodeUI)
75
- app.mount('#app')
76
- ```
77
-
78
- ### 按需引入
79
-
80
- ```vue
81
- <template>
82
- <j-button type="primary">按钮</j-button>
83
- </template>
84
-
85
- <script setup lang="ts">
86
- import { JButton } from '@a2simcode/ui'
87
- import '@a2simcode/ui/dist/style.css'
88
- </script>
89
- ```
90
-
91
- ## 🎯 组件列表
92
-
93
- - ✅ Button 按钮
94
- - ✅ Input 输入框
95
- - ✅ Radio 单选框
96
- - 🚧 更多组件开发中...
97
-
98
- ## 💻 本地开发
99
-
100
- ```bash
101
- # 进入项目目录
102
- cd simcode-ui
103
-
104
- # 安装依赖
105
- pnpm install
106
-
107
- # 启动开发服务器
108
- pnpm dev
109
-
110
- # 构建组件库
111
- pnpm build
112
-
113
- # 运行测试
114
- pnpm test
115
-
116
- # 启动文档站点
117
- pnpm docs:dev
118
- ```
119
-
120
- ## 📁 项目结构
121
-
122
- ```
123
- simcode-ui/
124
- ├── packages/ # 组件源码
125
- │ ├── components/ # 组件
126
- │ │ ├── button/ # 按钮组件
127
- │ │ ├── input/ # 输入框组件
128
- │ │ └── index.ts # 组件入口
129
- │ └── theme/ # 主题样式
130
- │ └── src/ # 样式源码 (Less)
131
- ├── examples/ # 组件预览
132
- │ ├── App.vue # 预览应用
133
- │ └── main.ts # 入口文件
134
- ├── docs/ # 文档
135
- │ ├── .vitepress/ # VitePress 配置
136
- │ ├── guide/ # 指南
137
- │ └── components/ # 组件文档
138
- ├── __tests__/ # 测试文件
139
- ├── vite.config.ts # Vite 配置
140
- ├── vitest.config.ts # Vitest 配置
141
- └── package.json # 项目配置
142
- ```
143
-
144
- ## 🤝 贡献
145
-
146
- 欢迎提交 Issue 和 Pull Request!
147
-
148
- ## 📄 版权声明
149
-
150
- Copyright © 2024 苏州极简搭信息技术有限公司. All rights reserved.
151
-
152
- 本软件及其相关文档为专有软件,受版权法保护。未经版权所有者明确书面许可,不得以任何形式或方式(电子、机械、复印、录制或其他方式)复制、分发、传播或使用本软件的任何部分。
153
-
154
- ## 🙏 致谢
155
-
156
- 感谢所有为这个项目做出贡献的开发者!
1
+ # SimCode UI
2
+
3
+ <div align="center">
4
+ <h1>SimCode UI</h1>
5
+ <p>基于 Vue 3 + TypeScript 的现代化 UI 组件库</p>
6
+ </div>
7
+
8
+ ## ✨ 特性
9
+
10
+ - 🚀 **现代化技术栈**: 基于 Vue 3 + TypeScript + Vite
11
+ - 📦 **开箱即用**: 提供完善的类型定义和文档
12
+ - 🎨 **精美设计**: 现代化的设计风格
13
+ - 🔧 **易于定制**: 支持主题定制
14
+ - ⚡️ **按需加载**: 支持 Tree Shaking
15
+ - 🧪 **完善测试**: 单元测试覆盖
16
+
17
+ ## 📦 安装
18
+
19
+ 使用 pnpm:
20
+
21
+ ```bash
22
+ pnpm add @a2simcode/ui
23
+ ```
24
+
25
+ 使用 npm:
26
+
27
+ ```bash
28
+ npm install @a2simcode/ui
29
+ ```
30
+
31
+ 使用 yarn:
32
+
33
+ ```bash
34
+ yarn add @a2simcode/ui
35
+ ```
36
+
37
+ ### 安装 Peer Dependencies
38
+
39
+ `@a2simcode/ui` 使用 peer dependencies 来避免重复打包依赖。**必须安装**以下依赖:
40
+
41
+ ```bash
42
+ pnpm add vue element-plus
43
+ ```
44
+
45
+ 根据你使用的组件,可能还需要安装以下**可选依赖**:
46
+
47
+ ```bash
48
+ # 如果使用表格组件
49
+ pnpm add @visactor/vtable @visactor/vtable-editors
50
+
51
+ # 如果使用图表组件
52
+ pnpm add echarts
53
+
54
+ # 如果使用代码编辑器组件
55
+ pnpm add codemirror @codemirror/autocomplete @codemirror/commands @codemirror/lang-javascript @codemirror/lang-json @codemirror/lang-sql @codemirror/lang-python @codemirror/lang-java @codemirror/lang-css @codemirror/lang-html @codemirror/lang-xml @codemirror/lang-markdown @codemirror/language @codemirror/state @codemirror/view
56
+
57
+ # 如果使用其他功能组件
58
+ pnpm add @iconify/vue @vueuse/core dayjs async-validator crypto-js sortablejs sql-formatter countup.js @bwip-js/browser @wangeditor/editor diagram-js diagram-js-direct-editing min-dom inherits tiny-svg min-dash
59
+ ```
60
+
61
+ > **注意**: 由于 `@a2simcode/ui` 输出的是预打包的单文件,使用方的打包器可能无法自动识别 peer dependencies。请确保在使用相关组件前,已安装对应的 peer dependencies。
62
+
63
+ ## 🔨 快速开始
64
+
65
+ ### 完整引入
66
+
67
+ ```typescript
68
+ import { createApp } from 'vue'
69
+ import App from './App.vue'
70
+ import SimCodeUI from '@a2simcode/ui'
71
+ import '@a2simcode/ui/dist/style.css'
72
+
73
+ const app = createApp(App)
74
+ app.use(SimCodeUI)
75
+ app.mount('#app')
76
+ ```
77
+
78
+ ### 按需引入
79
+
80
+ ```vue
81
+ <template>
82
+ <j-button type="primary">按钮</j-button>
83
+ </template>
84
+
85
+ <script setup lang="ts">
86
+ import { JButton } from '@a2simcode/ui'
87
+ import '@a2simcode/ui/dist/style.css'
88
+ </script>
89
+ ```
90
+
91
+ ## 🎯 组件列表
92
+
93
+ - ✅ Button 按钮
94
+ - ✅ Input 输入框
95
+ - ✅ Radio 单选框
96
+ - 🚧 更多组件开发中...
97
+
98
+ ## 💻 本地开发
99
+
100
+ ```bash
101
+ # 进入项目目录
102
+ cd simcode-ui
103
+
104
+ # 安装依赖
105
+ pnpm install
106
+
107
+ # 启动开发服务器
108
+ pnpm dev
109
+
110
+ # 构建组件库
111
+ pnpm build
112
+
113
+ # 运行测试
114
+ pnpm test
115
+
116
+ # 启动文档站点
117
+ pnpm docs:dev
118
+ ```
119
+
120
+ ## 📁 项目结构
121
+
122
+ ```
123
+ simcode-ui/
124
+ ├── packages/ # 组件源码
125
+ │ ├── components/ # 组件
126
+ │ │ ├── button/ # 按钮组件
127
+ │ │ ├── input/ # 输入框组件
128
+ │ │ └── index.ts # 组件入口
129
+ │ └── theme/ # 主题样式
130
+ │ └── src/ # 样式源码 (Less)
131
+ ├── examples/ # 组件预览
132
+ │ ├── App.vue # 预览应用
133
+ │ └── main.ts # 入口文件
134
+ ├── docs/ # 文档
135
+ │ ├── .vitepress/ # VitePress 配置
136
+ │ ├── guide/ # 指南
137
+ │ └── components/ # 组件文档
138
+ ├── __tests__/ # 测试文件
139
+ ├── vite.config.ts # Vite 配置
140
+ ├── vitest.config.ts # Vitest 配置
141
+ └── package.json # 项目配置
142
+ ```
143
+
144
+ ## 🤝 贡献
145
+
146
+ 欢迎提交 Issue 和 Pull Request!
147
+
148
+ ## 📄 版权声明
149
+
150
+ Copyright © 2024 苏州极简搭信息技术有限公司. All rights reserved.
151
+
152
+ 本软件及其相关文档为专有软件,受版权法保护。未经版权所有者明确书面许可,不得以任何形式或方式(电子、机械、复印、录制或其他方式)复制、分发、传播或使用本软件的任何部分。
153
+
154
+ ## 🙏 致谢
155
+
156
+ 感谢所有为这个项目做出贡献的开发者!
@@ -17,6 +17,10 @@ declare const JTable: {
17
17
  required: true;
18
18
  default: () => never[];
19
19
  };
20
+ mergeHeader: {
21
+ type: import('vue').PropType<import('.').MergeHeaderOption[]>;
22
+ default: () => never[];
23
+ };
20
24
  columnFilter: {
21
25
  type: import('vue').PropType<string[]>;
22
26
  default: () => never[];
@@ -224,6 +228,7 @@ declare const JTable: {
224
228
  rowNum: number;
225
229
  isPage: boolean;
226
230
  columns: import('.').ColumnSchemaConfig[];
231
+ mergeHeader: import('.').MergeHeaderOption[];
227
232
  columnFilter: string[];
228
233
  records: Record<string, any>[];
229
234
  isTree: boolean;
@@ -292,6 +297,10 @@ declare const JTable: {
292
297
  required: true;
293
298
  default: () => never[];
294
299
  };
300
+ mergeHeader: {
301
+ type: import('vue').PropType<import('.').MergeHeaderOption[]>;
302
+ default: () => never[];
303
+ };
295
304
  columnFilter: {
296
305
  type: import('vue').PropType<string[]>;
297
306
  default: () => never[];
@@ -474,6 +483,7 @@ declare const JTable: {
474
483
  rowNum: number;
475
484
  isPage: boolean;
476
485
  columns: import('.').ColumnSchemaConfig[];
486
+ mergeHeader: import('.').MergeHeaderOption[];
477
487
  columnFilter: string[];
478
488
  records: Record<string, any>[];
479
489
  isTree: boolean;
@@ -537,6 +547,10 @@ declare const JTable: {
537
547
  required: true;
538
548
  default: () => never[];
539
549
  };
550
+ mergeHeader: {
551
+ type: import('vue').PropType<import('.').MergeHeaderOption[]>;
552
+ default: () => never[];
553
+ };
540
554
  columnFilter: {
541
555
  type: import('vue').PropType<string[]>;
542
556
  default: () => never[];
@@ -744,6 +758,7 @@ declare const JTable: {
744
758
  rowNum: number;
745
759
  isPage: boolean;
746
760
  columns: import('.').ColumnSchemaConfig[];
761
+ mergeHeader: import('.').MergeHeaderOption[];
747
762
  columnFilter: string[];
748
763
  records: Record<string, any>[];
749
764
  isTree: boolean;
@@ -37,6 +37,19 @@ export interface CustomMergeCellRule {
37
37
  * @zh 自定义合并单元格配置类型
38
38
  */
39
39
  export type CustomMergeCellOption = CustomMergeCellRule[] | ((col: number, row: number, table: any) => CustomMergeCellRule | undefined);
40
+ /**
41
+ * @zh 合并表头配置
42
+ */
43
+ export interface MergeHeaderOption {
44
+ /** 表头配置唯一标识,可被后续 value 引用 */
45
+ _i?: string;
46
+ /** 合并表头显示文本 */
47
+ label: string;
48
+ /** 子列 id 或上级表头 _i,多个用英文逗号分隔 */
49
+ value: string;
50
+ /** 表头对齐方式 */
51
+ align?: 'left' | 'center' | 'right';
52
+ }
40
53
  export interface TableColumnConfig {
41
54
  /**
42
55
  * @zh 列的宽度
@@ -1,4 +1,4 @@
1
- import { ColumnSchemaConfig, CustomMergeCellOption } from './interface';
1
+ import { ColumnSchemaConfig, CustomMergeCellOption, MergeHeaderOption } from './interface';
2
2
  import { ButtonCompType } from '../../buttons/src/interface';
3
3
  import { EditConfigType } from '../../input-rows/src/interface';
4
4
  import { PropType } from 'vue';
@@ -27,6 +27,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
27
27
  required: true;
28
28
  default: () => never[];
29
29
  };
30
+ /**
31
+ * @zh 合并表头配置,value 支持逗号分隔列 id 或前置合并表头 _i
32
+ */
33
+ mergeHeader: {
34
+ type: PropType<MergeHeaderOption[]>;
35
+ default: () => never[];
36
+ };
30
37
  /**
31
38
  * @zh 列过滤(用于隐藏列)
32
39
  */
@@ -329,6 +336,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
329
336
  required: true;
330
337
  default: () => never[];
331
338
  };
339
+ /**
340
+ * @zh 合并表头配置,value 支持逗号分隔列 id 或前置合并表头 _i
341
+ */
342
+ mergeHeader: {
343
+ type: PropType<MergeHeaderOption[]>;
344
+ default: () => never[];
345
+ };
332
346
  /**
333
347
  * @zh 列过滤(用于隐藏列)
334
348
  */
@@ -606,6 +620,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
606
620
  rowNum: number;
607
621
  isPage: boolean;
608
622
  columns: ColumnSchemaConfig[];
623
+ mergeHeader: MergeHeaderOption[];
609
624
  columnFilter: string[];
610
625
  records: Record<string, any>[];
611
626
  isTree: boolean;