@a2simcode/ui 0.0.216 → 0.0.218

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 (357) 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/button/index.d.ts +6 -6
  6. package/dist/components/button/src/button.vue.d.ts +5 -5
  7. package/dist/components/table-panel/index.d.ts +30 -1
  8. package/dist/components/table-panel/src/filter-panel.vue.d.ts +13 -1
  9. package/dist/components/table-panel/src/table-panel.vue.d.ts +30 -1
  10. package/dist/simcode-ui.es.js +2384 -2358
  11. package/dist/simcode-ui.umd.js +2 -2
  12. package/dist/stats.html +1 -1
  13. package/dist/ui.css +1 -1
  14. package/docs/components/autocomplete.md +89 -89
  15. package/docs/components/barcode.md +101 -101
  16. package/docs/components/button-select.md +24 -24
  17. package/docs/components/button.md +117 -117
  18. package/docs/components/buttons.md +119 -119
  19. package/docs/components/cascader-select.md +114 -114
  20. package/docs/components/checkbox.md +114 -114
  21. package/docs/components/code-mirror.md +85 -85
  22. package/docs/components/collapse.md +26 -26
  23. package/docs/components/comp.md +71 -71
  24. package/docs/components/count-up.md +24 -24
  25. package/docs/components/count.md +24 -24
  26. package/docs/components/data-panel.md +24 -24
  27. package/docs/components/date.md +76 -76
  28. package/docs/components/dialog-full.md +112 -112
  29. package/docs/components/dialog.md +127 -127
  30. package/docs/components/divider.md +24 -24
  31. package/docs/components/drawer.md +127 -127
  32. package/docs/components/dynamic-layer.md +118 -118
  33. package/docs/components/echarts.md +72 -72
  34. package/docs/components/editor.md +24 -24
  35. package/docs/components/form.md +72 -72
  36. package/docs/components/guid.md +39 -39
  37. package/docs/components/hpanel.md +24 -24
  38. package/docs/components/icon.md +56 -56
  39. package/docs/components/input-button.md +24 -24
  40. package/docs/components/input-code.md +24 -24
  41. package/docs/components/input-color.md +114 -114
  42. package/docs/components/input-layer.md +56 -56
  43. package/docs/components/input-rows.md +370 -370
  44. package/docs/components/input-tag.md +50 -50
  45. package/docs/components/input.md +129 -129
  46. package/docs/components/layer-form.md +61 -61
  47. package/docs/components/layer.md +127 -127
  48. package/docs/components/layout.md +132 -132
  49. package/docs/components/map.md +24 -24
  50. package/docs/components/menu.md +121 -121
  51. package/docs/components/meta/button.ts +212 -212
  52. package/docs/components/meta/buttons.ts +76 -76
  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 +50 -50
  58. package/docs/components/meta/form.ts +181 -181
  59. package/docs/components/meta/input-button.ts +165 -165
  60. package/docs/components/meta/input-cards.ts +112 -112
  61. package/docs/components/meta/input-code.ts +151 -151
  62. package/docs/components/meta/input-color.ts +243 -243
  63. package/docs/components/meta/input-layer.ts +382 -382
  64. package/docs/components/meta/input-rows.ts +119 -119
  65. package/docs/components/meta/layer-form.ts +56 -56
  66. package/docs/components/meta/map.ts +68 -68
  67. package/docs/components/meta/panel.ts +152 -152
  68. package/docs/components/meta/radio.ts +55 -55
  69. package/docs/components/meta/slider.ts +270 -270
  70. package/docs/components/meta/table-panel.ts +254 -242
  71. package/docs/components/meta/table.ts +397 -397
  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 +219 -219
  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 +267 -251
  88. package/docs/components/table.md +405 -405
  89. package/docs/components/tabs.md +26 -26
  90. package/docs/components/title.md +24 -24
  91. package/docs/components/tree.md +207 -207
  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 -9
  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 -0
  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/cascader-select/basic.vue +28 -28
  124. package/docs/examples/cascader-select/clearable.vue +34 -34
  125. package/docs/examples/cascader-select/disabled.vue +43 -43
  126. package/docs/examples/cascader-select/filterable.vue +37 -37
  127. package/docs/examples/cascader-select/methods.vue +84 -84
  128. package/docs/examples/cascader-select/multiple.vue +38 -38
  129. package/docs/examples/cascader-select/slot.vue +45 -45
  130. package/docs/examples/checkbox/basic.vue +18 -18
  131. package/docs/examples/checkbox/button.vue +19 -19
  132. package/docs/examples/checkbox/color.vue +25 -25
  133. package/docs/examples/checkbox/disabled.vue +17 -17
  134. package/docs/examples/checkbox/min-max.vue +20 -20
  135. package/docs/examples/checkbox/mixed.vue +56 -56
  136. package/docs/examples/checkbox/size.vue +28 -28
  137. package/docs/examples/code-mirror/basic.vue +11 -11
  138. package/docs/examples/code-mirror/events.vue +42 -42
  139. package/docs/examples/code-mirror/height.vue +25 -25
  140. package/docs/examples/code-mirror/mode.vue +33 -33
  141. package/docs/examples/code-mirror/readonly.vue +14 -14
  142. package/docs/examples/collapse/basic.vue +82 -82
  143. package/docs/examples/comp/basic.vue +7 -7
  144. package/docs/examples/comp/collapse.vue +38 -38
  145. package/docs/examples/comp/tabs.vue +38 -38
  146. package/docs/examples/count/basic.vue +101 -101
  147. package/docs/examples/count-up/basic.vue +89 -89
  148. package/docs/examples/data-panel/basic.vue +110 -110
  149. package/docs/examples/date/basic.vue +73 -73
  150. package/docs/examples/date/default-value.vue +59 -59
  151. package/docs/examples/date/format.vue +75 -75
  152. package/docs/examples/date/range.vue +66 -66
  153. package/docs/examples/date/types.vue +79 -79
  154. package/docs/examples/decorated-title/basic.vue +31 -31
  155. package/docs/examples/dialog/basic.vue +36 -36
  156. package/docs/examples/dialog/custom-buttons.vue +44 -44
  157. package/docs/examples/dialog/fullscreen.vue +23 -23
  158. package/docs/examples/dialog/no-mask.vue +17 -17
  159. package/docs/examples/dialog/size.vue +44 -44
  160. package/docs/examples/dialog/steps.vue +57 -57
  161. package/docs/examples/dialog-full/basic.vue +29 -29
  162. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  163. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  164. package/docs/examples/dialog-full/no-header.vue +27 -27
  165. package/docs/examples/dialog-full/steps.vue +71 -71
  166. package/docs/examples/divider/basic.vue +52 -52
  167. package/docs/examples/drawer/basic.vue +35 -35
  168. package/docs/examples/drawer/custom-buttons.vue +34 -34
  169. package/docs/examples/drawer/direction.vue +47 -47
  170. package/docs/examples/drawer/mask.vue +36 -36
  171. package/docs/examples/drawer/no-buttons.vue +20 -20
  172. package/docs/examples/drawer/size.vue +28 -28
  173. package/docs/examples/dynamic-layer/basic.vue +33 -33
  174. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  175. package/docs/examples/dynamic-layer/form.vue +73 -73
  176. package/docs/examples/dynamic-layer/steps.vue +52 -52
  177. package/docs/examples/dynamic-layer/types.vue +40 -40
  178. package/docs/examples/echarts/basic.vue +31 -31
  179. package/docs/examples/echarts/dynamic.vue +43 -43
  180. package/docs/examples/echarts/line.vue +46 -46
  181. package/docs/examples/echarts/pie.vue +44 -44
  182. package/docs/examples/editor/basic.vue +15 -15
  183. package/docs/examples/form/basic.vue +663 -663
  184. package/docs/examples/form/init.vue +76 -76
  185. package/docs/examples/form/master-detail.vue +203 -203
  186. package/docs/examples/form/rule-format.vue +179 -179
  187. package/docs/examples/guid/basic.vue +10 -10
  188. package/docs/examples/guid/size.vue +13 -13
  189. package/docs/examples/hpanel/basic.vue +79 -79
  190. package/docs/examples/icon/basic.vue +9 -9
  191. package/docs/examples/icon/rotate-flip.vue +9 -9
  192. package/docs/examples/icon/size.vue +7 -7
  193. package/docs/examples/input/basic.vue +10 -10
  194. package/docs/examples/input/clearable.vue +12 -12
  195. package/docs/examples/input/disabled.vue +6 -6
  196. package/docs/examples/input/icon.vue +23 -23
  197. package/docs/examples/input/password.vue +18 -18
  198. package/docs/examples/input/size.vue +13 -13
  199. package/docs/examples/input/textarea.vue +25 -25
  200. package/docs/examples/input/word-limit.vue +28 -28
  201. package/docs/examples/input-button/basic.vue +33 -33
  202. package/docs/examples/input-cards/basic.vue +79 -79
  203. package/docs/examples/input-code/basic.vue +29 -29
  204. package/docs/examples/input-color/basic.vue +10 -10
  205. package/docs/examples/input-color/disabled.vue +13 -13
  206. package/docs/examples/input-color/format.vue +17 -17
  207. package/docs/examples/input-color/no-alpha.vue +13 -13
  208. package/docs/examples/input-color/only-button.vue +15 -15
  209. package/docs/examples/input-color/predefine.vue +31 -31
  210. package/docs/examples/input-color/size.vue +15 -15
  211. package/docs/examples/input-layer/basic.vue +85 -85
  212. package/docs/examples/input-layer/render-vnode-page.vue +160 -160
  213. package/docs/examples/input-layer/render-vnode.vue +127 -127
  214. package/docs/examples/input-rows/basic.vue +73 -73
  215. package/docs/examples/input-rows/drag.vue +48 -48
  216. package/docs/examples/input-rows/layer-form.vue +85 -85
  217. package/docs/examples/input-rows/nested.vue +91 -91
  218. package/docs/examples/input-tag/basic.vue +27 -27
  219. package/docs/examples/input-tag/colors.vue +23 -23
  220. package/docs/examples/input-tag/readonly.vue +17 -17
  221. package/docs/examples/layer/basic.vue +43 -43
  222. package/docs/examples/layer/custom-buttons.vue +61 -61
  223. package/docs/examples/layer/drawer.vue +37 -37
  224. package/docs/examples/layer/full.vue +38 -38
  225. package/docs/examples/layer/modal.vue +34 -34
  226. package/docs/examples/layer/steps.vue +46 -46
  227. package/docs/examples/layer-form/basic.vue +76 -76
  228. package/docs/examples/layer-form/config.vue +82 -82
  229. package/docs/examples/layer-form/size.vue +72 -72
  230. package/docs/examples/layout/basic.vue +36 -36
  231. package/docs/examples/layout/custom-size.vue +50 -50
  232. package/docs/examples/layout/disable-move.vue +37 -37
  233. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  234. package/docs/examples/layout/min-size.vue +73 -73
  235. package/docs/examples/layout/percent-size.vue +80 -80
  236. package/docs/examples/layout/simple.vue +22 -22
  237. package/docs/examples/layout/top-side.vue +34 -34
  238. package/docs/examples/map/basic.vue +22 -22
  239. package/docs/examples/menu/basic.vue +58 -58
  240. package/docs/examples/menu/collapsed.vue +49 -49
  241. package/docs/examples/menu/horizontal.vue +44 -44
  242. package/docs/examples/menu/selection-test.vue +104 -104
  243. package/docs/examples/menu/theme.vue +46 -46
  244. package/docs/examples/menu/vertical.vue +46 -46
  245. package/docs/examples/number/advanced.vue +143 -143
  246. package/docs/examples/number/basic.vue +63 -63
  247. package/docs/examples/number/disabled.vue +49 -49
  248. package/docs/examples/number/size.vue +42 -42
  249. package/docs/examples/number/slots.vue +123 -123
  250. package/docs/examples/number/step-strictly.vue +41 -41
  251. package/docs/examples/number/step.vue +47 -47
  252. package/docs/examples/page/basic.vue +41 -41
  253. package/docs/examples/page/code-table-model.vue +428 -428
  254. package/docs/examples/page/dept-user-management.vue +211 -211
  255. package/docs/examples/page/init.vue +87 -87
  256. package/docs/examples/page/log.vue +453 -453
  257. package/docs/examples/page/user-management.vue +313 -313
  258. package/docs/examples/panel/tool-buttons.vue +18 -18
  259. package/docs/examples/radio/basic.vue +17 -17
  260. package/docs/examples/radio/button.vue +17 -17
  261. package/docs/examples/radio/color.vue +18 -18
  262. package/docs/examples/radio/disabled.vue +17 -17
  263. package/docs/examples/radio/size.vue +29 -29
  264. package/docs/examples/rate/basic.vue +24 -24
  265. package/docs/examples/rate/half.vue +24 -24
  266. package/docs/examples/rate/readonly.vue +11 -11
  267. package/docs/examples/rate/text.vue +37 -37
  268. package/docs/examples/select/basic.vue +16 -16
  269. package/docs/examples/select/clearable.vue +22 -22
  270. package/docs/examples/select/disabled.vue +31 -31
  271. package/docs/examples/select/filterable.vue +24 -24
  272. package/docs/examples/select/group.vue +23 -23
  273. package/docs/examples/select/icon.vue +16 -16
  274. package/docs/examples/select/multiple.vue +18 -18
  275. package/docs/examples/select/size.vue +39 -39
  276. package/docs/examples/slider/basic.vue +42 -42
  277. package/docs/examples/slider/disabled.vue +17 -17
  278. package/docs/examples/slider/marks.vue +30 -30
  279. package/docs/examples/slider/size.vue +37 -37
  280. package/docs/examples/slider/tooltip.vue +36 -36
  281. package/docs/examples/slider/vertical.vue +26 -26
  282. package/docs/examples/slider-captcha/basic.vue +44 -44
  283. package/docs/examples/slider-captcha/custom.vue +48 -48
  284. package/docs/examples/switch/basic.vue +16 -16
  285. package/docs/examples/switch/disabled.vue +13 -13
  286. package/docs/examples/switch/loading.vue +13 -13
  287. package/docs/examples/switch/size.vue +15 -15
  288. package/docs/examples/switch/text.vue +13 -13
  289. package/docs/examples/table/action-filter.vue +126 -126
  290. package/docs/examples/table/actions.vue +116 -116
  291. package/docs/examples/table/add-row.vue +103 -103
  292. package/docs/examples/table/basic.vue +168 -168
  293. package/docs/examples/table/checkbox-layout.vue +68 -68
  294. package/docs/examples/table/custom-layout.vue +115 -115
  295. package/docs/examples/table/dynamic-type.vue +73 -73
  296. package/docs/examples/table/editable.vue +262 -262
  297. package/docs/examples/table/field-selection.vue +87 -87
  298. package/docs/examples/table/frozen-column.vue +140 -140
  299. package/docs/examples/table/height-mode.vue +99 -99
  300. package/docs/examples/table/icon.vue +85 -85
  301. package/docs/examples/table/link.vue +66 -66
  302. package/docs/examples/table/multiple-disabled.vue +112 -112
  303. package/docs/examples/table/multiple.vue +188 -188
  304. package/docs/examples/table/pagination.vue +151 -151
  305. package/docs/examples/table/single-selection.vue +64 -64
  306. package/docs/examples/table/sub-table-lazy.vue +97 -97
  307. package/docs/examples/table/sub-table.vue +103 -103
  308. package/docs/examples/table/tag.vue +43 -43
  309. package/docs/examples/table/tree-column.vue +119 -119
  310. package/docs/examples/table/tree-data.vue +141 -141
  311. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  312. package/docs/examples/table/tree-lazy.vue +80 -80
  313. package/docs/examples/table/tree-set-selection.vue +75 -75
  314. package/docs/examples/table-panel/basic.vue +229 -229
  315. package/docs/examples/table-panel/batch-operations.vue +286 -285
  316. package/docs/examples/table-panel/button-visibility.vue +88 -88
  317. package/docs/examples/table-panel/filter.vue +219 -219
  318. package/docs/examples/table-panel/get-selection.vue +111 -111
  319. package/docs/examples/table-panel/mask.vue +151 -151
  320. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  321. package/docs/examples/table-panel/pagination.vue +133 -133
  322. package/docs/examples/table-panel/search-list.vue +207 -0
  323. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  324. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  325. package/docs/examples/tabs/basic.vue +98 -98
  326. package/docs/examples/time/base.vue +67 -67
  327. package/docs/examples/title/basic.vue +87 -87
  328. package/docs/examples/tree/accordion.vue +46 -46
  329. package/docs/examples/tree/basic.vue +50 -50
  330. package/docs/examples/tree/buttons.vue +53 -53
  331. package/docs/examples/tree/checkable.vue +52 -52
  332. package/docs/examples/tree/custom-keys.vue +39 -39
  333. package/docs/examples/tree/default-expanded.vue +52 -52
  334. package/docs/examples/tree/draggable.vue +29 -29
  335. package/docs/examples/tree/expand-on-click.vue +39 -39
  336. package/docs/examples/tree/flat-data.vue +20 -20
  337. package/docs/examples/tree/icon.vue +40 -40
  338. package/docs/examples/tree/load-data.vue +37 -37
  339. package/docs/examples/tree/methods.vue +74 -74
  340. package/docs/examples/tree/theme.vue +33 -33
  341. package/docs/examples/tree-select/basic.vue +47 -47
  342. package/docs/examples/upload/accept.vue +31 -31
  343. package/docs/examples/upload/basic.vue +12 -12
  344. package/docs/examples/upload/drag.vue +11 -11
  345. package/docs/examples/upload/image.vue +17 -17
  346. package/docs/examples/upload/limit.vue +20 -20
  347. package/docs/examples/upload/multiple.vue +17 -17
  348. package/docs/examples/upload/readonly.vue +17 -17
  349. package/docs/examples/utils/cipher.vue +160 -160
  350. package/docs/examples/utils/common.vue +153 -153
  351. package/docs/examples/utils/date.vue +56 -56
  352. package/docs/examples/utils/dom.vue +52 -52
  353. package/docs/examples/utils/is.vue +70 -70
  354. package/docs/examples/workflow/basic.vue +265 -265
  355. package/docs/examples/workflow-viewer/basic.vue +248 -248
  356. package/package.json +23 -23
  357. package/docs/examples/button/danger.vue +0 -9
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
+ 感谢所有为这个项目做出贡献的开发者!
@@ -9,11 +9,11 @@ declare const JButton: {
9
9
  }, import('vue').PublicProps, {
10
10
  size: "large" | "default" | "small";
11
11
  icon: string;
12
- type: "primary" | "success" | "dashed" | "link" | "text" | "default";
12
+ type: "primary" | "dashed" | "link" | "text" | "default" | "outline";
13
13
  label: string;
14
+ status: "normal" | "success" | "warning" | "danger";
14
15
  shape: "default" | "circle" | "round";
15
16
  disabled: boolean;
16
- danger: boolean;
17
17
  block: boolean;
18
18
  loading: boolean | {
19
19
  delay?: number;
@@ -42,11 +42,11 @@ declare const JButton: {
42
42
  }, {}, {}, {}, {
43
43
  size: "large" | "default" | "small";
44
44
  icon: string;
45
- type: "primary" | "success" | "dashed" | "link" | "text" | "default";
45
+ type: "primary" | "dashed" | "link" | "text" | "default" | "outline";
46
46
  label: string;
47
+ status: "normal" | "success" | "warning" | "danger";
47
48
  shape: "default" | "circle" | "round";
48
49
  disabled: boolean;
49
- danger: boolean;
50
50
  block: boolean;
51
51
  loading: boolean | {
52
52
  delay?: number;
@@ -72,11 +72,11 @@ declare const JButton: {
72
72
  }, string, {
73
73
  size: "large" | "default" | "small";
74
74
  icon: string;
75
- type: "primary" | "success" | "dashed" | "link" | "text" | "default";
75
+ type: "primary" | "dashed" | "link" | "text" | "default" | "outline";
76
76
  label: string;
77
+ status: "normal" | "success" | "warning" | "danger";
77
78
  shape: "default" | "circle" | "round";
78
79
  disabled: boolean;
79
- danger: boolean;
80
80
  block: boolean;
81
81
  loading: boolean | {
82
82
  delay?: number;
@@ -1,14 +1,14 @@
1
1
  export interface ButtonProps {
2
2
  /** 按钮的类型 */
3
- type?: 'primary' | 'success' | 'dashed' | 'link' | 'text' | 'default';
3
+ type?: 'primary' | 'dashed' | 'link' | 'text' | 'default' | 'outline';
4
+ /** 按钮的状态 */
5
+ status?: 'normal' | 'success' | 'warning' | 'danger';
4
6
  /** 设置按钮大小 */
5
7
  size?: 'large' | 'default' | 'small';
6
8
  /** 设置按钮形状 */
7
9
  shape?: 'default' | 'circle' | 'round';
8
10
  /** 按钮不可用状态 */
9
11
  disabled?: boolean;
10
- /** 设置危险按钮 */
11
- danger?: boolean;
12
12
  /** 将按钮宽度调整为其父宽度的选项 */
13
13
  block?: boolean;
14
14
  /** 设置按钮载入状态 */
@@ -53,11 +53,11 @@ declare const __VLS_component: import('vue').DefineComponent<ButtonProps, {
53
53
  }>, {
54
54
  size: "large" | "default" | "small";
55
55
  icon: string;
56
- type: "primary" | "success" | "dashed" | "link" | "text" | "default";
56
+ type: "primary" | "dashed" | "link" | "text" | "default" | "outline";
57
57
  label: string;
58
+ status: "normal" | "success" | "warning" | "danger";
58
59
  shape: "default" | "circle" | "round";
59
60
  disabled: boolean;
60
- danger: boolean;
61
61
  block: boolean;
62
62
  loading: boolean | {
63
63
  delay?: number;
@@ -5,6 +5,10 @@ declare const JTablePanel: {
5
5
  required: true;
6
6
  default: () => never[];
7
7
  };
8
+ searchList: {
9
+ type: import('vue').PropType<Record<string, any>[]>;
10
+ default: () => never[];
11
+ };
8
12
  isTree: {
9
13
  type: BooleanConstructor;
10
14
  default: boolean;
@@ -175,6 +179,7 @@ declare const JTablePanel: {
175
179
  isSubShowNumber: boolean;
176
180
  subActions: import('..').ButtonCompType[];
177
181
  loadChildren: (record: Record<string, any>) => Promise<any[]>;
182
+ searchList: Record<string, any>[];
178
183
  batchButtons: import('..').ButtonCompType[];
179
184
  noPadding: boolean;
180
185
  showFilterButton: boolean;
@@ -240,6 +245,10 @@ declare const JTablePanel: {
240
245
  type: import('vue').PropType<Record<string, any>[]>;
241
246
  default: () => never[];
242
247
  };
248
+ searchList: {
249
+ type: import('vue').PropType<Record<string, any>[]>;
250
+ default: () => never[];
251
+ };
243
252
  relation: {
244
253
  type: import('vue').PropType<string>;
245
254
  };
@@ -253,6 +262,7 @@ declare const JTablePanel: {
253
262
  "onUpdate:isPin"?: ((value: boolean) => any) | undefined;
254
263
  }>, {
255
264
  getSearchFields: () => Record<string, any>[];
265
+ getFixedSearchData: () => any;
256
266
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
257
267
  filter: (...args: any[]) => void;
258
268
  close: (...args: any[]) => void;
@@ -261,7 +271,10 @@ declare const JTablePanel: {
261
271
  }, import('vue').PublicProps, {
262
272
  columns: import('..').SchemaConfig[];
263
273
  searchFieldList: Record<string, any>[];
264
- }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
274
+ searchList: Record<string, any>[];
275
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
276
+ formRef: unknown;
277
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
265
278
  P: {};
266
279
  B: {};
267
280
  D: {};
@@ -277,6 +290,10 @@ declare const JTablePanel: {
277
290
  type: import('vue').PropType<Record<string, any>[]>;
278
291
  default: () => never[];
279
292
  };
293
+ searchList: {
294
+ type: import('vue').PropType<Record<string, any>[]>;
295
+ default: () => never[];
296
+ };
280
297
  relation: {
281
298
  type: import('vue').PropType<string>;
282
299
  };
@@ -290,9 +307,11 @@ declare const JTablePanel: {
290
307
  "onUpdate:isPin"?: ((value: boolean) => any) | undefined;
291
308
  }>, {
292
309
  getSearchFields: () => Record<string, any>[];
310
+ getFixedSearchData: () => any;
293
311
  }, {}, {}, {}, {
294
312
  columns: import('..').SchemaConfig[];
295
313
  searchFieldList: Record<string, any>[];
314
+ searchList: Record<string, any>[];
296
315
  }> | null;
297
316
  orderPanelRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
298
317
  columns: {
@@ -383,6 +402,10 @@ declare const JTablePanel: {
383
402
  required: true;
384
403
  default: () => never[];
385
404
  };
405
+ searchList: {
406
+ type: import('vue').PropType<Record<string, any>[]>;
407
+ default: () => never[];
408
+ };
386
409
  isTree: {
387
410
  type: BooleanConstructor;
388
411
  default: boolean;
@@ -550,6 +573,7 @@ declare const JTablePanel: {
550
573
  isSubShowNumber: boolean;
551
574
  subActions: import('..').ButtonCompType[];
552
575
  loadChildren: (record: Record<string, any>) => Promise<any[]>;
576
+ searchList: Record<string, any>[];
553
577
  batchButtons: import('..').ButtonCompType[];
554
578
  noPadding: boolean;
555
579
  showFilterButton: boolean;
@@ -567,6 +591,10 @@ declare const JTablePanel: {
567
591
  required: true;
568
592
  default: () => never[];
569
593
  };
594
+ searchList: {
595
+ type: import('vue').PropType<Record<string, any>[]>;
596
+ default: () => never[];
597
+ };
570
598
  isTree: {
571
599
  type: BooleanConstructor;
572
600
  default: boolean;
@@ -737,6 +765,7 @@ declare const JTablePanel: {
737
765
  isSubShowNumber: boolean;
738
766
  subActions: import('..').ButtonCompType[];
739
767
  loadChildren: (record: Record<string, any>) => Promise<any[]>;
768
+ searchList: Record<string, any>[];
740
769
  batchButtons: import('..').ButtonCompType[];
741
770
  noPadding: boolean;
742
771
  showFilterButton: boolean;
@@ -9,6 +9,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
9
9
  type: PropType<Record<string, any>[]>;
10
10
  default: () => never[];
11
11
  };
12
+ searchList: {
13
+ type: PropType<Record<string, any>[]>;
14
+ default: () => never[];
15
+ };
12
16
  relation: {
13
17
  type: PropType<string>;
14
18
  };
@@ -17,6 +21,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
17
21
  };
18
22
  }>, {
19
23
  getSearchFields: () => Record<string, any>[];
24
+ getFixedSearchData: () => any;
20
25
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
21
26
  filter: (...args: any[]) => void;
22
27
  close: (...args: any[]) => void;
@@ -31,6 +36,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
31
36
  type: PropType<Record<string, any>[]>;
32
37
  default: () => never[];
33
38
  };
39
+ searchList: {
40
+ type: PropType<Record<string, any>[]>;
41
+ default: () => never[];
42
+ };
34
43
  relation: {
35
44
  type: PropType<string>;
36
45
  };
@@ -45,5 +54,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
45
54
  }>, {
46
55
  columns: SchemaConfig[];
47
56
  searchFieldList: Record<string, any>[];
48
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
57
+ searchList: Record<string, any>[];
58
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
59
+ formRef: unknown;
60
+ }, HTMLDivElement>;
49
61
  export default _default;
@@ -11,6 +11,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
11
11
  required: true;
12
12
  default: () => never[];
13
13
  };
14
+ /**
15
+ * @zh 固定过滤条件
16
+ */
17
+ searchList: {
18
+ type: PropType<Record<string, any>[]>;
19
+ default: () => never[];
20
+ };
14
21
  /**
15
22
  * @zh 是否是树形结构
16
23
  */
@@ -253,6 +260,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
253
260
  required: true;
254
261
  default: () => never[];
255
262
  };
263
+ /**
264
+ * @zh 固定过滤条件
265
+ */
266
+ searchList: {
267
+ type: PropType<Record<string, any>[]>;
268
+ default: () => never[];
269
+ };
256
270
  /**
257
271
  * @zh 是否是树形结构
258
272
  */
@@ -512,6 +526,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
512
526
  isSubShowNumber: boolean;
513
527
  subActions: ButtonCompType[];
514
528
  loadChildren: (record: Record<string, any>) => Promise<any[]>;
529
+ searchList: Record<string, any>[];
515
530
  batchButtons: ButtonCompType[];
516
531
  noPadding: boolean;
517
532
  showFilterButton: boolean;
@@ -577,6 +592,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
577
592
  type: PropType<Record<string, any>[]>;
578
593
  default: () => never[];
579
594
  };
595
+ searchList: {
596
+ type: PropType<Record<string, any>[]>;
597
+ default: () => never[];
598
+ };
580
599
  relation: {
581
600
  type: PropType<string>;
582
601
  };
@@ -590,6 +609,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
590
609
  "onUpdate:isPin"?: ((value: boolean) => any) | undefined;
591
610
  }>, {
592
611
  getSearchFields: () => Record<string, any>[];
612
+ getFixedSearchData: () => any;
593
613
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
594
614
  filter: (...args: any[]) => void;
595
615
  close: (...args: any[]) => void;
@@ -598,7 +618,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
598
618
  }, import('vue').PublicProps, {
599
619
  columns: SchemaConfig[];
600
620
  searchFieldList: Record<string, any>[];
601
- }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
621
+ searchList: Record<string, any>[];
622
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
623
+ formRef: unknown;
624
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
602
625
  P: {};
603
626
  B: {};
604
627
  D: {};
@@ -614,6 +637,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
614
637
  type: PropType<Record<string, any>[]>;
615
638
  default: () => never[];
616
639
  };
640
+ searchList: {
641
+ type: PropType<Record<string, any>[]>;
642
+ default: () => never[];
643
+ };
617
644
  relation: {
618
645
  type: PropType<string>;
619
646
  };
@@ -627,9 +654,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
627
654
  "onUpdate:isPin"?: ((value: boolean) => any) | undefined;
628
655
  }>, {
629
656
  getSearchFields: () => Record<string, any>[];
657
+ getFixedSearchData: () => any;
630
658
  }, {}, {}, {}, {
631
659
  columns: SchemaConfig[];
632
660
  searchFieldList: Record<string, any>[];
661
+ searchList: Record<string, any>[];
633
662
  }> | null;
634
663
  orderPanelRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
635
664
  columns: {