@a2simcode/ui 0.0.288 → 0.0.290

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 (370) 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/simcode-ui.es.js +233 -229
  6. package/dist/simcode-ui.umd.js +2 -2
  7. package/dist/stats.html +1 -1
  8. package/dist/ui.css +1 -1
  9. package/docs/components/autocomplete.md +89 -89
  10. package/docs/components/barcode.md +101 -101
  11. package/docs/components/button-select.md +24 -24
  12. package/docs/components/button.md +117 -117
  13. package/docs/components/buttons.md +119 -119
  14. package/docs/components/card-list.md +38 -38
  15. package/docs/components/cascader-select.md +114 -114
  16. package/docs/components/checkbox.md +114 -114
  17. package/docs/components/code-mirror.md +85 -85
  18. package/docs/components/collapse.md +26 -26
  19. package/docs/components/comp.md +106 -106
  20. package/docs/components/count-up.md +24 -24
  21. package/docs/components/count.md +24 -24
  22. package/docs/components/data-panel.md +24 -24
  23. package/docs/components/date.md +76 -76
  24. package/docs/components/dialog-full.md +112 -112
  25. package/docs/components/dialog.md +127 -127
  26. package/docs/components/divider.md +24 -24
  27. package/docs/components/drawer.md +127 -127
  28. package/docs/components/dynamic-layer.md +118 -118
  29. package/docs/components/echarts.md +72 -72
  30. package/docs/components/editor.md +24 -24
  31. package/docs/components/form.md +87 -87
  32. package/docs/components/guid.md +39 -39
  33. package/docs/components/hpanel.md +24 -24
  34. package/docs/components/icon.md +56 -56
  35. package/docs/components/input-button.md +24 -24
  36. package/docs/components/input-code.md +24 -24
  37. package/docs/components/input-color.md +114 -114
  38. package/docs/components/input-layer.md +56 -56
  39. package/docs/components/input-rows.md +370 -370
  40. package/docs/components/input-tag.md +50 -50
  41. package/docs/components/input.md +129 -129
  42. package/docs/components/layer-form.md +61 -61
  43. package/docs/components/layer.md +127 -127
  44. package/docs/components/layout.md +132 -132
  45. package/docs/components/map.md +24 -24
  46. package/docs/components/menu.md +121 -121
  47. package/docs/components/meta/button.ts +212 -212
  48. package/docs/components/meta/buttons.ts +76 -76
  49. package/docs/components/meta/card-list.ts +210 -210
  50. package/docs/components/meta/code-mirror.ts +108 -108
  51. package/docs/components/meta/comp.ts +236 -236
  52. package/docs/components/meta/date.ts +267 -267
  53. package/docs/components/meta/echarts.ts +64 -64
  54. package/docs/components/meta/form-item.ts +62 -62
  55. package/docs/components/meta/form.ts +181 -181
  56. package/docs/components/meta/input-button.ts +175 -175
  57. package/docs/components/meta/input-cards.ts +112 -112
  58. package/docs/components/meta/input-code.ts +161 -161
  59. package/docs/components/meta/input-color.ts +243 -243
  60. package/docs/components/meta/input-rows.ts +119 -119
  61. package/docs/components/meta/layer-form.ts +74 -74
  62. package/docs/components/meta/map.ts +68 -68
  63. package/docs/components/meta/panel.ts +152 -152
  64. package/docs/components/meta/radio.ts +55 -55
  65. package/docs/components/meta/select.ts +279 -279
  66. package/docs/components/meta/slider.ts +270 -270
  67. package/docs/components/meta/table.ts +489 -489
  68. package/docs/components/meta/tabs.ts +146 -146
  69. package/docs/components/meta/title.ts +91 -91
  70. package/docs/components/meta/tree.ts +225 -225
  71. package/docs/components/meta/vpanel.ts +19 -19
  72. package/docs/components/meta/workflow-viewer.ts +55 -55
  73. package/docs/components/number.md +124 -124
  74. package/docs/components/page.md +102 -102
  75. package/docs/components/panel.md +37 -37
  76. package/docs/components/radio.md +87 -87
  77. package/docs/components/rate.md +71 -71
  78. package/docs/components/select.md +133 -133
  79. package/docs/components/slider-captcha.md +41 -41
  80. package/docs/components/slider.md +101 -101
  81. package/docs/components/switch.md +90 -90
  82. package/docs/components/table-panel.md +342 -342
  83. package/docs/components/table.md +510 -510
  84. package/docs/components/tabs.md +26 -26
  85. package/docs/components/title.md +24 -24
  86. package/docs/components/tree.md +222 -222
  87. package/docs/components/upload.md +117 -117
  88. package/docs/components/workflow-viewer.md +21 -21
  89. package/docs/components/workflow.md +21 -21
  90. package/docs/examples/autocomplete/advanced.vue +35 -35
  91. package/docs/examples/autocomplete/basic.vue +32 -32
  92. package/docs/examples/autocomplete/clearable.vue +33 -33
  93. package/docs/examples/autocomplete/custom-template.vue +49 -49
  94. package/docs/examples/autocomplete/disabled.vue +33 -33
  95. package/docs/examples/autocomplete/icon.vue +37 -37
  96. package/docs/examples/barcode/all-types.vue +380 -380
  97. package/docs/examples/barcode/basic.vue +14 -14
  98. package/docs/examples/barcode/props-appearance.vue +243 -243
  99. package/docs/examples/barcode/props-geometry.vue +143 -143
  100. package/docs/examples/barcode/props-logic.vue +216 -216
  101. package/docs/examples/barcode/props-symbology.vue +199 -199
  102. package/docs/examples/barcode/props-text.vue +268 -268
  103. package/docs/examples/button/basic.vue +7 -7
  104. package/docs/examples/button/disabled.vue +42 -42
  105. package/docs/examples/button/loading.vue +6 -6
  106. package/docs/examples/button/shape.vue +7 -7
  107. package/docs/examples/button/size.vue +14 -14
  108. package/docs/examples/button/status.vue +34 -34
  109. package/docs/examples/button/type.vue +10 -10
  110. package/docs/examples/button-select/basic.vue +19 -19
  111. package/docs/examples/buttons/basic.vue +62 -62
  112. package/docs/examples/buttons/disabled.vue +36 -36
  113. package/docs/examples/buttons/dropdown.vue +63 -63
  114. package/docs/examples/buttons/group.vue +52 -52
  115. package/docs/examples/buttons/link.vue +47 -47
  116. package/docs/examples/buttons/popup.vue +39 -39
  117. package/docs/examples/buttons/size.vue +45 -45
  118. package/docs/examples/card-list/basic.vue +70 -70
  119. package/docs/examples/card-list/selection-pagination.vue +69 -69
  120. package/docs/examples/cascader-select/basic.vue +28 -28
  121. package/docs/examples/cascader-select/clearable.vue +34 -34
  122. package/docs/examples/cascader-select/disabled.vue +43 -43
  123. package/docs/examples/cascader-select/filterable.vue +37 -37
  124. package/docs/examples/cascader-select/methods.vue +84 -84
  125. package/docs/examples/cascader-select/multiple.vue +38 -38
  126. package/docs/examples/cascader-select/slot.vue +45 -45
  127. package/docs/examples/checkbox/basic.vue +18 -18
  128. package/docs/examples/checkbox/button.vue +19 -19
  129. package/docs/examples/checkbox/color.vue +25 -25
  130. package/docs/examples/checkbox/disabled.vue +17 -17
  131. package/docs/examples/checkbox/min-max.vue +20 -20
  132. package/docs/examples/checkbox/mixed.vue +56 -56
  133. package/docs/examples/checkbox/size.vue +28 -28
  134. package/docs/examples/code-mirror/basic.vue +11 -11
  135. package/docs/examples/code-mirror/events.vue +42 -42
  136. package/docs/examples/code-mirror/height.vue +25 -25
  137. package/docs/examples/code-mirror/mode.vue +33 -33
  138. package/docs/examples/code-mirror/readonly.vue +14 -14
  139. package/docs/examples/collapse/basic.vue +82 -82
  140. package/docs/examples/comp/basic.vue +7 -7
  141. package/docs/examples/comp/collapse.vue +38 -38
  142. package/docs/examples/comp/table-merge-rows.vue +77 -77
  143. package/docs/examples/comp/table-row-fixed-merge.vue +105 -105
  144. package/docs/examples/comp/tabs.vue +38 -38
  145. package/docs/examples/count/basic.vue +101 -101
  146. package/docs/examples/count-up/basic.vue +89 -89
  147. package/docs/examples/data-panel/basic.vue +110 -110
  148. package/docs/examples/date/basic.vue +73 -73
  149. package/docs/examples/date/default-value.vue +59 -59
  150. package/docs/examples/date/format.vue +75 -75
  151. package/docs/examples/date/range.vue +66 -66
  152. package/docs/examples/date/types.vue +79 -79
  153. package/docs/examples/decorated-title/basic.vue +31 -31
  154. package/docs/examples/dialog/basic.vue +36 -36
  155. package/docs/examples/dialog/custom-buttons.vue +44 -44
  156. package/docs/examples/dialog/fullscreen.vue +23 -23
  157. package/docs/examples/dialog/no-mask.vue +17 -17
  158. package/docs/examples/dialog/size.vue +44 -44
  159. package/docs/examples/dialog/steps.vue +57 -57
  160. package/docs/examples/dialog-full/basic.vue +29 -29
  161. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  162. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  163. package/docs/examples/dialog-full/no-header.vue +27 -27
  164. package/docs/examples/dialog-full/steps.vue +71 -71
  165. package/docs/examples/divider/basic.vue +52 -52
  166. package/docs/examples/drawer/basic.vue +35 -35
  167. package/docs/examples/drawer/custom-buttons.vue +34 -34
  168. package/docs/examples/drawer/direction.vue +47 -47
  169. package/docs/examples/drawer/mask.vue +36 -36
  170. package/docs/examples/drawer/no-buttons.vue +20 -20
  171. package/docs/examples/drawer/size.vue +28 -28
  172. package/docs/examples/dynamic-layer/basic.vue +33 -33
  173. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  174. package/docs/examples/dynamic-layer/form.vue +73 -73
  175. package/docs/examples/dynamic-layer/steps.vue +52 -52
  176. package/docs/examples/dynamic-layer/types.vue +40 -40
  177. package/docs/examples/echarts/basic.vue +31 -31
  178. package/docs/examples/echarts/dynamic.vue +43 -43
  179. package/docs/examples/echarts/line.vue +46 -46
  180. package/docs/examples/echarts/pie.vue +44 -44
  181. package/docs/examples/editor/basic.vue +15 -15
  182. package/docs/examples/form/basic.vue +688 -688
  183. package/docs/examples/form/init.vue +76 -76
  184. package/docs/examples/form/master-detail.vue +203 -203
  185. package/docs/examples/form/rule-format.vue +179 -179
  186. package/docs/examples/form/view-table.vue +378 -378
  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 +98 -98
  292. package/docs/examples/table/basic.vue +168 -168
  293. package/docs/examples/table/checkbox-layout.vue +68 -68
  294. package/docs/examples/table/column-filter.vue +96 -96
  295. package/docs/examples/table/custom-layout.vue +115 -115
  296. package/docs/examples/table/custom-merge-cell.vue +206 -206
  297. package/docs/examples/table/dynamic-type.vue +73 -73
  298. package/docs/examples/table/editable.vue +262 -262
  299. package/docs/examples/table/field-selection.vue +87 -87
  300. package/docs/examples/table/frozen-column.vue +140 -140
  301. package/docs/examples/table/height-mode.vue +99 -99
  302. package/docs/examples/table/icon.vue +85 -85
  303. package/docs/examples/table/layer-form.vue +133 -133
  304. package/docs/examples/table/link.vue +66 -66
  305. package/docs/examples/table/merge-cell.vue +78 -78
  306. package/docs/examples/table/merge-header.vue +86 -86
  307. package/docs/examples/table/multiple-disabled.vue +112 -112
  308. package/docs/examples/table/multiple.vue +188 -188
  309. package/docs/examples/table/pagination.vue +151 -151
  310. package/docs/examples/table/row-drag.vue +67 -67
  311. package/docs/examples/table/row-fixed.vue +61 -61
  312. package/docs/examples/table/single-selection.vue +64 -64
  313. package/docs/examples/table/sub-table-lazy.vue +97 -97
  314. package/docs/examples/table/sub-table.vue +103 -103
  315. package/docs/examples/table/tag.vue +43 -43
  316. package/docs/examples/table/tree-column.vue +119 -119
  317. package/docs/examples/table/tree-data.vue +141 -141
  318. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  319. package/docs/examples/table/tree-lazy.vue +80 -80
  320. package/docs/examples/table/tree-set-selection.vue +75 -75
  321. package/docs/examples/table-panel/basic.vue +229 -229
  322. package/docs/examples/table-panel/batch-operations.vue +286 -286
  323. package/docs/examples/table-panel/button-visibility.vue +88 -88
  324. package/docs/examples/table-panel/card.vue +101 -101
  325. package/docs/examples/table-panel/column-filter.vue +116 -116
  326. package/docs/examples/table-panel/filter.vue +219 -219
  327. package/docs/examples/table-panel/get-selection.vue +111 -111
  328. package/docs/examples/table-panel/mask.vue +151 -151
  329. package/docs/examples/table-panel/model-value.vue +87 -87
  330. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  331. package/docs/examples/table-panel/pagination-select-state-key.vue +176 -176
  332. package/docs/examples/table-panel/pagination.vue +133 -133
  333. package/docs/examples/table-panel/remote-selection.vue +159 -159
  334. package/docs/examples/table-panel/search-list.vue +207 -207
  335. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  336. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  337. package/docs/examples/tabs/basic.vue +98 -98
  338. package/docs/examples/time/base.vue +67 -67
  339. package/docs/examples/title/basic.vue +87 -87
  340. package/docs/examples/tree/accordion.vue +46 -46
  341. package/docs/examples/tree/basic.vue +50 -50
  342. package/docs/examples/tree/buttons.vue +53 -53
  343. package/docs/examples/tree/check-strictly.vue +53 -53
  344. package/docs/examples/tree/checkable.vue +52 -52
  345. package/docs/examples/tree/custom-keys.vue +39 -39
  346. package/docs/examples/tree/default-expanded.vue +52 -52
  347. package/docs/examples/tree/draggable.vue +29 -29
  348. package/docs/examples/tree/expand-on-click.vue +39 -39
  349. package/docs/examples/tree/flat-data.vue +20 -20
  350. package/docs/examples/tree/icon.vue +40 -40
  351. package/docs/examples/tree/load-data.vue +37 -37
  352. package/docs/examples/tree/methods.vue +74 -74
  353. package/docs/examples/tree/theme.vue +33 -33
  354. package/docs/examples/tree-select/basic.vue +47 -47
  355. package/docs/examples/tree-select/lazy.vue +42 -42
  356. package/docs/examples/upload/accept.vue +31 -31
  357. package/docs/examples/upload/basic.vue +12 -12
  358. package/docs/examples/upload/drag.vue +11 -11
  359. package/docs/examples/upload/image.vue +17 -17
  360. package/docs/examples/upload/limit.vue +20 -20
  361. package/docs/examples/upload/multiple.vue +17 -17
  362. package/docs/examples/upload/readonly.vue +17 -17
  363. package/docs/examples/utils/cipher.vue +160 -160
  364. package/docs/examples/utils/common.vue +153 -153
  365. package/docs/examples/utils/date.vue +56 -56
  366. package/docs/examples/utils/dom.vue +52 -52
  367. package/docs/examples/utils/is.vue +70 -70
  368. package/docs/examples/workflow/basic.vue +265 -265
  369. package/docs/examples/workflow-viewer/basic.vue +248 -248
  370. package/package.json +23 -23
@@ -1,67 +1,67 @@
1
- <template>
2
- <div style="position: relative; width: 100%; height: 500px">
3
- <j-table-panel
4
- row-key="id"
5
- :columns="columns"
6
- :load-data="loadData"
7
- :is-tree="true"
8
- is-multiple
9
- parent-key="pid"
10
- />
11
- </div>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import { ref } from 'vue'
16
-
17
- const columns = ref([
18
- {
19
- id: 'name',
20
- type: '',
21
- config: {
22
- label: '名称',
23
- width: 240,
24
- },
25
- },
26
- {
27
- id: 'id',
28
- type: '',
29
- config: {
30
- label: 'ID',
31
- width: 160,
32
- },
33
- },
34
- {
35
- id: 'pid',
36
- type: '',
37
- config: {
38
- label: '父ID',
39
- width: 160,
40
- },
41
- },
42
- {
43
- id: 'value',
44
- type: '',
45
- config: {
46
- label: '值',
47
- width: 120,
48
- align: 'right',
49
- },
50
- },
51
- ])
52
-
53
- const flatData = [
54
- { id: '1', pid: '', name: '父节点 1', value: 10 },
55
- { id: '1-1', pid: '1', name: '子节点 1-1', value: 11 },
56
- { id: '1-2', pid: '1', name: '子节点 1-2', value: 12 },
57
- { id: '1-2-1', pid: '1-2', name: '子节点 1-2-1', value: 121 },
58
- { id: '2', pid: '', name: '父节点 2', value: 20 },
59
- { id: '2-1', pid: '2', name: '子节点 2-1', value: 21 },
60
- ]
61
-
62
- const loadData = async (_params: Record<string, any>) => {
63
- return new Promise((resolve) => {
64
- setTimeout(() => resolve(flatData), 200)
65
- })
66
- }
67
- </script>
1
+ <template>
2
+ <div style="position: relative; width: 100%; height: 500px">
3
+ <j-table-panel
4
+ row-key="id"
5
+ :columns="columns"
6
+ :load-data="loadData"
7
+ :is-tree="true"
8
+ is-multiple
9
+ parent-key="pid"
10
+ />
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import { ref } from 'vue'
16
+
17
+ const columns = ref([
18
+ {
19
+ id: 'name',
20
+ type: '',
21
+ config: {
22
+ label: '名称',
23
+ width: 240,
24
+ },
25
+ },
26
+ {
27
+ id: 'id',
28
+ type: '',
29
+ config: {
30
+ label: 'ID',
31
+ width: 160,
32
+ },
33
+ },
34
+ {
35
+ id: 'pid',
36
+ type: '',
37
+ config: {
38
+ label: '父ID',
39
+ width: 160,
40
+ },
41
+ },
42
+ {
43
+ id: 'value',
44
+ type: '',
45
+ config: {
46
+ label: '值',
47
+ width: 120,
48
+ align: 'right',
49
+ },
50
+ },
51
+ ])
52
+
53
+ const flatData = [
54
+ { id: '1', pid: '', name: '父节点 1', value: 10 },
55
+ { id: '1-1', pid: '1', name: '子节点 1-1', value: 11 },
56
+ { id: '1-2', pid: '1', name: '子节点 1-2', value: 12 },
57
+ { id: '1-2-1', pid: '1-2', name: '子节点 1-2-1', value: 121 },
58
+ { id: '2', pid: '', name: '父节点 2', value: 20 },
59
+ { id: '2-1', pid: '2', name: '子节点 2-1', value: 21 },
60
+ ]
61
+
62
+ const loadData = async (_params: Record<string, any>) => {
63
+ return new Promise((resolve) => {
64
+ setTimeout(() => resolve(flatData), 200)
65
+ })
66
+ }
67
+ </script>
@@ -1,98 +1,98 @@
1
- <template>
2
- <div class="tabs-demo">
3
- <div class="demo-item">
4
- <p>基础用法</p>
5
- <j-tabs v-model="activeName1">
6
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
7
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
8
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
9
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
10
- </j-tabs>
11
- </div>
12
-
13
- <div class="demo-item">
14
- <p>卡片风格</p>
15
- <j-tabs v-model="activeName2" type="card">
16
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
17
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
18
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
19
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
20
- </j-tabs>
21
- </div>
22
-
23
- <div class="demo-item">
24
- <p>边框卡片风格</p>
25
- <j-tabs v-model="activeName3" type="border-card">
26
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
27
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
28
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
29
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
30
- </j-tabs>
31
- </div>
32
-
33
- <div class="demo-item" style="height: 300px">
34
- <p>标签位置</p>
35
- <div class="j-block" style="height: 0; flex: 1">
36
- <j-tabs v-model="activeName4" tab-position="left">
37
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
38
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
39
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
40
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
41
- </j-tabs>
42
- </div>
43
- </div>
44
-
45
- <div class="demo-item">
46
- <p>可关闭标签</p>
47
- <j-tabs v-model="activeName5" type="card" closable>
48
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
49
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
50
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
51
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
52
- </j-tabs>
53
- </div>
54
-
55
- <div class="demo-item">
56
- <p>可增加标签</p>
57
- <j-tabs v-model="activeName6" type="card" addable>
58
- <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
59
- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
60
- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
61
- <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
62
- </j-tabs>
63
- </div>
64
- </div>
65
- </template>
66
-
67
- <script setup lang="ts">
68
- import { ref } from 'vue'
69
-
70
- const activeName1 = ref('first')
71
- const activeName2 = ref('first')
72
- const activeName3 = ref('first')
73
- const activeName4 = ref('first')
74
- const activeName5 = ref('first')
75
- const activeName6 = ref('first')
76
- </script>
77
-
78
- <style scoped>
79
- .tabs-demo {
80
- display: flex;
81
- flex-direction: column;
82
- gap: 24px;
83
- }
84
-
85
- .demo-item p {
86
- margin: 0 0 12px;
87
- font-size: 14px;
88
- color: var(--j-color-text-2);
89
- font-weight: 500;
90
- }
91
-
92
- .demo-item {
93
- position: relative;
94
- width: 100%;
95
- display: flex;
96
- flex-direction: column;
97
- }
98
- </style>
1
+ <template>
2
+ <div class="tabs-demo">
3
+ <div class="demo-item">
4
+ <p>基础用法</p>
5
+ <j-tabs v-model="activeName1">
6
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
7
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
8
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
9
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
10
+ </j-tabs>
11
+ </div>
12
+
13
+ <div class="demo-item">
14
+ <p>卡片风格</p>
15
+ <j-tabs v-model="activeName2" type="card">
16
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
17
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
18
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
19
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
20
+ </j-tabs>
21
+ </div>
22
+
23
+ <div class="demo-item">
24
+ <p>边框卡片风格</p>
25
+ <j-tabs v-model="activeName3" type="border-card">
26
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
27
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
28
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
29
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
30
+ </j-tabs>
31
+ </div>
32
+
33
+ <div class="demo-item" style="height: 300px">
34
+ <p>标签位置</p>
35
+ <div class="j-block" style="height: 0; flex: 1">
36
+ <j-tabs v-model="activeName4" tab-position="left">
37
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
38
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
39
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
40
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
41
+ </j-tabs>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="demo-item">
46
+ <p>可关闭标签</p>
47
+ <j-tabs v-model="activeName5" type="card" closable>
48
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
49
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
50
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
51
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
52
+ </j-tabs>
53
+ </div>
54
+
55
+ <div class="demo-item">
56
+ <p>可增加标签</p>
57
+ <j-tabs v-model="activeName6" type="card" addable>
58
+ <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
59
+ <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
60
+ <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
61
+ <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
62
+ </j-tabs>
63
+ </div>
64
+ </div>
65
+ </template>
66
+
67
+ <script setup lang="ts">
68
+ import { ref } from 'vue'
69
+
70
+ const activeName1 = ref('first')
71
+ const activeName2 = ref('first')
72
+ const activeName3 = ref('first')
73
+ const activeName4 = ref('first')
74
+ const activeName5 = ref('first')
75
+ const activeName6 = ref('first')
76
+ </script>
77
+
78
+ <style scoped>
79
+ .tabs-demo {
80
+ display: flex;
81
+ flex-direction: column;
82
+ gap: 24px;
83
+ }
84
+
85
+ .demo-item p {
86
+ margin: 0 0 12px;
87
+ font-size: 14px;
88
+ color: var(--j-color-text-2);
89
+ font-weight: 500;
90
+ }
91
+
92
+ .demo-item {
93
+ position: relative;
94
+ width: 100%;
95
+ display: flex;
96
+ flex-direction: column;
97
+ }
98
+ </style>
@@ -1,68 +1,68 @@
1
- <template>
2
- <div class="demo-time-basic">
3
- <div class="block">
4
- <span class="demonstration">Default</span>
5
- <j-time v-model="value1" placeholder="Pick a time" />
6
- </div>
7
- <div class="block">
8
- <span class="demonstration">Time Range</span>
9
- <j-time
10
- v-model="value2"
11
- placeholder="Pick a time range"
12
- is-range
13
- start-placeholder="Start time"
14
- end-placeholder="End time"
15
- />
16
- </div>
17
- <div class="block">
18
- <span class="demonstration">Arrow Control</span>
19
- <j-time
20
- v-model="value3"
21
- placeholder="Pick a time"
22
- arrow-control
23
- />
24
- </div>
25
- <div class="block">
26
- <span class="demonstration">Selectable Range</span>
27
- <j-time
28
- v-model="value4"
29
- placeholder="Pick a time"
30
- :selectable-range="selectableRange"
31
- />
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import { ref } from 'vue'
38
-
39
- const value1 = ref('')
40
- const value2 = ref('')
41
- const value3 = ref('')
42
- const value4 = ref('')
43
-
44
- const selectableRange = ['08:30:00 - 20:30:00']
45
- </script>
46
-
47
- <style scoped>
48
- .demo-time-basic {
49
- display: flex;
50
- flex-wrap: wrap;
51
- }
52
- .demo-time-basic .block {
53
- padding: 30px 0;
54
- text-align: center;
55
- border-right: solid 1px var(--el-border-color);
56
- flex: 1;
57
- min-width: 200px;
58
- }
59
- .demo-time-basic .block:last-child {
60
- border-right: none;
61
- }
62
- .demo-time-basic .demonstration {
63
- display: block;
64
- color: var(--el-text-color-secondary);
65
- font-size: 14px;
66
- margin-bottom: 20px;
67
- }
1
+ <template>
2
+ <div class="demo-time-basic">
3
+ <div class="block">
4
+ <span class="demonstration">Default</span>
5
+ <j-time v-model="value1" placeholder="Pick a time" />
6
+ </div>
7
+ <div class="block">
8
+ <span class="demonstration">Time Range</span>
9
+ <j-time
10
+ v-model="value2"
11
+ placeholder="Pick a time range"
12
+ is-range
13
+ start-placeholder="Start time"
14
+ end-placeholder="End time"
15
+ />
16
+ </div>
17
+ <div class="block">
18
+ <span class="demonstration">Arrow Control</span>
19
+ <j-time
20
+ v-model="value3"
21
+ placeholder="Pick a time"
22
+ arrow-control
23
+ />
24
+ </div>
25
+ <div class="block">
26
+ <span class="demonstration">Selectable Range</span>
27
+ <j-time
28
+ v-model="value4"
29
+ placeholder="Pick a time"
30
+ :selectable-range="selectableRange"
31
+ />
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import { ref } from 'vue'
38
+
39
+ const value1 = ref('')
40
+ const value2 = ref('')
41
+ const value3 = ref('')
42
+ const value4 = ref('')
43
+
44
+ const selectableRange = ['08:30:00 - 20:30:00']
45
+ </script>
46
+
47
+ <style scoped>
48
+ .demo-time-basic {
49
+ display: flex;
50
+ flex-wrap: wrap;
51
+ }
52
+ .demo-time-basic .block {
53
+ padding: 30px 0;
54
+ text-align: center;
55
+ border-right: solid 1px var(--el-border-color);
56
+ flex: 1;
57
+ min-width: 200px;
58
+ }
59
+ .demo-time-basic .block:last-child {
60
+ border-right: none;
61
+ }
62
+ .demo-time-basic .demonstration {
63
+ display: block;
64
+ color: var(--el-text-color-secondary);
65
+ font-size: 14px;
66
+ margin-bottom: 20px;
67
+ }
68
68
  </style>
@@ -1,87 +1,87 @@
1
- <template>
2
- <div class="title-demo">
3
- <div class="demo-item">
4
- <p>基础用法</p>
5
- <j-title title="这是一个标题" />
6
- </div>
7
-
8
- <div class="demo-item">
9
- <p>设置对齐方式</p>
10
- <j-title title="左对齐" align="left" />
11
- <j-title title="居中对齐" align="center" />
12
- <j-title title="右对齐" align="right" />
13
- </div>
14
-
15
- <div class="demo-item">
16
- <p>设置颜色</p>
17
- <j-title title="蓝色标题" color="#1890ff" />
18
- </div>
19
-
20
- <div class="demo-item">
21
- <p>设置大小</p>
22
- <j-title title="小标题" :size="14" />
23
- <j-title title="默认标题" :size="16" />
24
- <j-title title="大标题" :size="24" />
25
- </div>
26
-
27
- <div class="demo-item">
28
- <p>设置粗细</p>
29
- <j-title title="正常粗细" weight="normal" />
30
- <j-title title="加粗标题" weight="bold" />
31
- <j-title title="特粗标题" weight="900" />
32
- </div>
33
-
34
- <div class="demo-item">
35
- <p>组合使用</p>
36
- <j-title
37
- title="自定义样式标题"
38
- color="#f53f3f"
39
- :size="20"
40
- weight="bold"
41
- class="custom-title"
42
- />
43
- </div>
44
-
45
- <div class="demo-item">
46
- <p>使用 style 对象</p>
47
- <j-title
48
- title="复杂样式标题"
49
- :style="{
50
- color: '#00b42a',
51
- fontSize: '18px',
52
- fontWeight: 'bold',
53
- textDecoration: 'underline',
54
- }"
55
- />
56
- </div>
57
- </div>
58
- </template>
59
-
60
- <script setup lang="ts">
61
- // 示例代码无需额外逻辑
62
- </script>
63
-
64
- <style scoped>
65
- .title-demo {
66
- display: flex;
67
- flex-direction: column;
68
- gap: 24px;
69
- }
70
-
71
- .demo-item {
72
- display: flex;
73
- flex-direction: column;
74
- gap: 12px;
75
- }
76
-
77
- .demo-item p {
78
- margin: 0;
79
- font-size: 14px;
80
- color: var(--j-color-text-2);
81
- font-weight: 500;
82
- }
83
-
84
- .custom-title {
85
- letter-spacing: 1px;
86
- }
87
- </style>
1
+ <template>
2
+ <div class="title-demo">
3
+ <div class="demo-item">
4
+ <p>基础用法</p>
5
+ <j-title title="这是一个标题" />
6
+ </div>
7
+
8
+ <div class="demo-item">
9
+ <p>设置对齐方式</p>
10
+ <j-title title="左对齐" align="left" />
11
+ <j-title title="居中对齐" align="center" />
12
+ <j-title title="右对齐" align="right" />
13
+ </div>
14
+
15
+ <div class="demo-item">
16
+ <p>设置颜色</p>
17
+ <j-title title="蓝色标题" color="#1890ff" />
18
+ </div>
19
+
20
+ <div class="demo-item">
21
+ <p>设置大小</p>
22
+ <j-title title="小标题" :size="14" />
23
+ <j-title title="默认标题" :size="16" />
24
+ <j-title title="大标题" :size="24" />
25
+ </div>
26
+
27
+ <div class="demo-item">
28
+ <p>设置粗细</p>
29
+ <j-title title="正常粗细" weight="normal" />
30
+ <j-title title="加粗标题" weight="bold" />
31
+ <j-title title="特粗标题" weight="900" />
32
+ </div>
33
+
34
+ <div class="demo-item">
35
+ <p>组合使用</p>
36
+ <j-title
37
+ title="自定义样式标题"
38
+ color="#f53f3f"
39
+ :size="20"
40
+ weight="bold"
41
+ class="custom-title"
42
+ />
43
+ </div>
44
+
45
+ <div class="demo-item">
46
+ <p>使用 style 对象</p>
47
+ <j-title
48
+ title="复杂样式标题"
49
+ :style="{
50
+ color: '#00b42a',
51
+ fontSize: '18px',
52
+ fontWeight: 'bold',
53
+ textDecoration: 'underline',
54
+ }"
55
+ />
56
+ </div>
57
+ </div>
58
+ </template>
59
+
60
+ <script setup lang="ts">
61
+ // 示例代码无需额外逻辑
62
+ </script>
63
+
64
+ <style scoped>
65
+ .title-demo {
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 24px;
69
+ }
70
+
71
+ .demo-item {
72
+ display: flex;
73
+ flex-direction: column;
74
+ gap: 12px;
75
+ }
76
+
77
+ .demo-item p {
78
+ margin: 0;
79
+ font-size: 14px;
80
+ color: var(--j-color-text-2);
81
+ font-weight: 500;
82
+ }
83
+
84
+ .custom-title {
85
+ letter-spacing: 1px;
86
+ }
87
+ </style>