@a2simcode/ui 0.0.46 → 0.0.47

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 (331) hide show
  1. package/.cursor/skills/ui-component-helper/README.md +43 -0
  2. package/.cursor/skills/ui-component-helper/SKILL.md +81 -0
  3. package/docs/components/autocomplete.md +89 -0
  4. package/docs/components/barcode.md +101 -0
  5. package/docs/components/button-select.md +24 -0
  6. package/docs/components/button.md +117 -0
  7. package/docs/components/buttons.md +119 -0
  8. package/docs/components/cascader-select.md +114 -0
  9. package/docs/components/checkbox.md +114 -0
  10. package/docs/components/code-mirror.md +85 -0
  11. package/docs/components/collapse.md +26 -0
  12. package/docs/components/comp.md +71 -0
  13. package/docs/components/count-up.md +24 -0
  14. package/docs/components/count.md +24 -0
  15. package/docs/components/data-panel.md +24 -0
  16. package/docs/components/dialog-full.md +112 -0
  17. package/docs/components/dialog.md +127 -0
  18. package/docs/components/divider.md +24 -0
  19. package/docs/components/drawer.md +127 -0
  20. package/docs/components/dynamic-layer.md +118 -0
  21. package/docs/components/echarts.md +72 -0
  22. package/docs/components/editor.md +24 -0
  23. package/docs/components/form.md +27 -0
  24. package/docs/components/guid.md +39 -0
  25. package/docs/components/hpanel.md +24 -0
  26. package/docs/components/icon.md +56 -0
  27. package/docs/components/input-button.md +24 -0
  28. package/docs/components/input-code.md +24 -0
  29. package/docs/components/input-color.md +114 -0
  30. package/docs/components/input-layer.md +26 -0
  31. package/docs/components/input-rows.md +370 -0
  32. package/docs/components/input-tag.md +50 -0
  33. package/docs/components/input.md +129 -0
  34. package/docs/components/layer-form.md +61 -0
  35. package/docs/components/layer.md +127 -0
  36. package/docs/components/layout.md +132 -0
  37. package/docs/components/map.md +24 -0
  38. package/docs/components/menu.md +121 -0
  39. package/docs/components/meta/autocomplete.ts +335 -0
  40. package/docs/components/meta/barcode.ts +216 -0
  41. package/docs/components/meta/button-select.ts +94 -0
  42. package/docs/components/meta/button.ts +123 -0
  43. package/docs/components/meta/buttons.ts +56 -0
  44. package/docs/components/meta/cascader-select.ts +328 -0
  45. package/docs/components/meta/checkbox.ts +194 -0
  46. package/docs/components/meta/code-mirror.ts +108 -0
  47. package/docs/components/meta/collapse.ts +52 -0
  48. package/docs/components/meta/comp.ts +224 -0
  49. package/docs/components/meta/count-up.ts +126 -0
  50. package/docs/components/meta/count.ts +113 -0
  51. package/docs/components/meta/data-panel.ts +34 -0
  52. package/docs/components/meta/dialog-full.ts +133 -0
  53. package/docs/components/meta/dialog.ts +175 -0
  54. package/docs/components/meta/divider.ts +66 -0
  55. package/docs/components/meta/drawer.ts +158 -0
  56. package/docs/components/meta/dynamic-layer.ts +99 -0
  57. package/docs/components/meta/echarts.ts +64 -0
  58. package/docs/components/meta/editor.ts +67 -0
  59. package/docs/components/meta/form-item.ts +50 -0
  60. package/docs/components/meta/form.ts +160 -0
  61. package/docs/components/meta/guid.ts +42 -0
  62. package/docs/components/meta/hpanel.ts +20 -0
  63. package/docs/components/meta/icon.ts +68 -0
  64. package/docs/components/meta/input-button.ts +165 -0
  65. package/docs/components/meta/input-code.ts +151 -0
  66. package/docs/components/meta/input-color.ts +243 -0
  67. package/docs/components/meta/input-layer.ts +336 -0
  68. package/docs/components/meta/input-rows.ts +113 -0
  69. package/docs/components/meta/input-tag.ts +112 -0
  70. package/docs/components/meta/input.ts +411 -0
  71. package/docs/components/meta/layer-form.ts +56 -0
  72. package/docs/components/meta/layer.ts +122 -0
  73. package/docs/components/meta/layout.ts +101 -0
  74. package/docs/components/meta/map.ts +68 -0
  75. package/docs/components/meta/menu.ts +43 -0
  76. package/docs/components/meta/number.ts +296 -0
  77. package/docs/components/meta/page.ts +67 -0
  78. package/docs/components/meta/radio.ts +55 -0
  79. package/docs/components/meta/rate.ts +124 -0
  80. package/docs/components/meta/select.ts +279 -0
  81. package/docs/components/meta/slider-captcha.ts +70 -0
  82. package/docs/components/meta/slider.ts +270 -0
  83. package/docs/components/meta/switch.ts +272 -0
  84. package/docs/components/meta/table-panel.ts +154 -0
  85. package/docs/components/meta/table.ts +328 -0
  86. package/docs/components/meta/tabs.ts +136 -0
  87. package/docs/components/meta/title.ts +80 -0
  88. package/docs/components/meta/tree.ts +242 -0
  89. package/docs/components/meta/upload.ts +186 -0
  90. package/docs/components/meta/workflow-viewer.ts +55 -0
  91. package/docs/components/meta/workflow.ts +113 -0
  92. package/docs/components/number.md +124 -0
  93. package/docs/components/page.md +42 -0
  94. package/docs/components/radio.md +87 -0
  95. package/docs/components/rate.md +71 -0
  96. package/docs/components/select.md +133 -0
  97. package/docs/components/slider-captcha.md +41 -0
  98. package/docs/components/slider.md +101 -0
  99. package/docs/components/switch.md +90 -0
  100. package/docs/components/table-panel.md +199 -0
  101. package/docs/components/table.md +202 -0
  102. package/docs/components/tabs.md +26 -0
  103. package/docs/components/title.md +24 -0
  104. package/docs/components/tree.md +207 -0
  105. package/docs/components/upload.md +117 -0
  106. package/docs/components/workflow-viewer.md +21 -0
  107. package/docs/components/workflow.md +21 -0
  108. package/docs/examples/autocomplete/advanced.vue +35 -0
  109. package/docs/examples/autocomplete/basic.vue +32 -0
  110. package/docs/examples/autocomplete/clearable.vue +33 -0
  111. package/docs/examples/autocomplete/custom-template.vue +49 -0
  112. package/docs/examples/autocomplete/disabled.vue +33 -0
  113. package/docs/examples/autocomplete/icon.vue +37 -0
  114. package/docs/examples/barcode/all-types.vue +380 -0
  115. package/docs/examples/barcode/basic.vue +14 -0
  116. package/docs/examples/barcode/props-appearance.vue +243 -0
  117. package/docs/examples/barcode/props-geometry.vue +143 -0
  118. package/docs/examples/barcode/props-logic.vue +216 -0
  119. package/docs/examples/barcode/props-symbology.vue +199 -0
  120. package/docs/examples/barcode/props-text.vue +268 -0
  121. package/docs/examples/button/basic.vue +7 -0
  122. package/docs/examples/button/danger-ghost.vue +17 -0
  123. package/docs/examples/button/disabled.vue +10 -0
  124. package/docs/examples/button/loading.vue +6 -0
  125. package/docs/examples/button/shape.vue +7 -0
  126. package/docs/examples/button/size.vue +14 -0
  127. package/docs/examples/button/type.vue +9 -0
  128. package/docs/examples/button-select/basic.vue +19 -0
  129. package/docs/examples/buttons/basic.vue +45 -0
  130. package/docs/examples/buttons/disabled.vue +36 -0
  131. package/docs/examples/buttons/dropdown.vue +63 -0
  132. package/docs/examples/buttons/group.vue +52 -0
  133. package/docs/examples/buttons/link.vue +47 -0
  134. package/docs/examples/buttons/popup.vue +39 -0
  135. package/docs/examples/buttons/size.vue +45 -0
  136. package/docs/examples/cascader-select/basic.vue +28 -0
  137. package/docs/examples/cascader-select/clearable.vue +34 -0
  138. package/docs/examples/cascader-select/disabled.vue +43 -0
  139. package/docs/examples/cascader-select/filterable.vue +37 -0
  140. package/docs/examples/cascader-select/methods.vue +84 -0
  141. package/docs/examples/cascader-select/multiple.vue +38 -0
  142. package/docs/examples/cascader-select/slot.vue +45 -0
  143. package/docs/examples/checkbox/basic.vue +18 -0
  144. package/docs/examples/checkbox/button.vue +19 -0
  145. package/docs/examples/checkbox/color.vue +25 -0
  146. package/docs/examples/checkbox/disabled.vue +17 -0
  147. package/docs/examples/checkbox/min-max.vue +20 -0
  148. package/docs/examples/checkbox/mixed.vue +56 -0
  149. package/docs/examples/checkbox/size.vue +28 -0
  150. package/docs/examples/code-mirror/basic.vue +11 -0
  151. package/docs/examples/code-mirror/events.vue +42 -0
  152. package/docs/examples/code-mirror/height.vue +25 -0
  153. package/docs/examples/code-mirror/mode.vue +33 -0
  154. package/docs/examples/code-mirror/readonly.vue +14 -0
  155. package/docs/examples/collapse/basic.vue +82 -0
  156. package/docs/examples/comp/basic.vue +7 -0
  157. package/docs/examples/comp/collapse.vue +38 -0
  158. package/docs/examples/comp/tabs.vue +38 -0
  159. package/docs/examples/count/basic.vue +54 -0
  160. package/docs/examples/count-up/basic.vue +89 -0
  161. package/docs/examples/data-panel/basic.vue +110 -0
  162. package/docs/examples/dialog/basic.vue +36 -0
  163. package/docs/examples/dialog/custom-buttons.vue +44 -0
  164. package/docs/examples/dialog/fullscreen.vue +23 -0
  165. package/docs/examples/dialog/no-mask.vue +17 -0
  166. package/docs/examples/dialog/size.vue +44 -0
  167. package/docs/examples/dialog/steps.vue +57 -0
  168. package/docs/examples/dialog-full/basic.vue +29 -0
  169. package/docs/examples/dialog-full/custom-buttons.vue +45 -0
  170. package/docs/examples/dialog-full/no-buttons.vue +18 -0
  171. package/docs/examples/dialog-full/no-header.vue +27 -0
  172. package/docs/examples/dialog-full/steps.vue +71 -0
  173. package/docs/examples/divider/basic.vue +52 -0
  174. package/docs/examples/drawer/basic.vue +35 -0
  175. package/docs/examples/drawer/custom-buttons.vue +34 -0
  176. package/docs/examples/drawer/direction.vue +47 -0
  177. package/docs/examples/drawer/mask.vue +36 -0
  178. package/docs/examples/drawer/no-buttons.vue +20 -0
  179. package/docs/examples/drawer/size.vue +28 -0
  180. package/docs/examples/dynamic-layer/basic.vue +33 -0
  181. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -0
  182. package/docs/examples/dynamic-layer/form.vue +73 -0
  183. package/docs/examples/dynamic-layer/steps.vue +52 -0
  184. package/docs/examples/dynamic-layer/types.vue +40 -0
  185. package/docs/examples/echarts/basic.vue +31 -0
  186. package/docs/examples/echarts/dynamic.vue +43 -0
  187. package/docs/examples/echarts/line.vue +46 -0
  188. package/docs/examples/echarts/pie.vue +44 -0
  189. package/docs/examples/editor/basic.vue +15 -0
  190. package/docs/examples/form/basic.vue +224 -0
  191. package/docs/examples/guid/basic.vue +10 -0
  192. package/docs/examples/guid/size.vue +13 -0
  193. package/docs/examples/hpanel/basic.vue +79 -0
  194. package/docs/examples/icon/basic.vue +9 -0
  195. package/docs/examples/icon/rotate-flip.vue +9 -0
  196. package/docs/examples/icon/size.vue +7 -0
  197. package/docs/examples/input/basic.vue +10 -0
  198. package/docs/examples/input/clearable.vue +12 -0
  199. package/docs/examples/input/disabled.vue +6 -0
  200. package/docs/examples/input/icon.vue +23 -0
  201. package/docs/examples/input/password.vue +18 -0
  202. package/docs/examples/input/size.vue +13 -0
  203. package/docs/examples/input/textarea.vue +25 -0
  204. package/docs/examples/input/word-limit.vue +28 -0
  205. package/docs/examples/input-button/basic.vue +33 -0
  206. package/docs/examples/input-code/basic.vue +29 -0
  207. package/docs/examples/input-color/basic.vue +10 -0
  208. package/docs/examples/input-color/disabled.vue +13 -0
  209. package/docs/examples/input-color/format.vue +17 -0
  210. package/docs/examples/input-color/no-alpha.vue +13 -0
  211. package/docs/examples/input-color/only-button.vue +15 -0
  212. package/docs/examples/input-color/predefine.vue +31 -0
  213. package/docs/examples/input-color/size.vue +15 -0
  214. package/docs/examples/input-layer/basic.vue +69 -0
  215. package/docs/examples/input-rows/basic.vue +73 -0
  216. package/docs/examples/input-rows/drag.vue +48 -0
  217. package/docs/examples/input-rows/layer-form.vue +85 -0
  218. package/docs/examples/input-rows/nested.vue +91 -0
  219. package/docs/examples/input-tag/basic.vue +27 -0
  220. package/docs/examples/input-tag/colors.vue +23 -0
  221. package/docs/examples/input-tag/readonly.vue +17 -0
  222. package/docs/examples/layer/basic.vue +43 -0
  223. package/docs/examples/layer/custom-buttons.vue +61 -0
  224. package/docs/examples/layer/drawer.vue +37 -0
  225. package/docs/examples/layer/full.vue +38 -0
  226. package/docs/examples/layer/modal.vue +34 -0
  227. package/docs/examples/layer/steps.vue +46 -0
  228. package/docs/examples/layer-form/basic.vue +76 -0
  229. package/docs/examples/layer-form/config.vue +82 -0
  230. package/docs/examples/layer-form/size.vue +72 -0
  231. package/docs/examples/layout/basic.vue +36 -0
  232. package/docs/examples/layout/custom-size.vue +50 -0
  233. package/docs/examples/layout/disable-move.vue +37 -0
  234. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -0
  235. package/docs/examples/layout/min-size.vue +73 -0
  236. package/docs/examples/layout/percent-size.vue +80 -0
  237. package/docs/examples/layout/simple.vue +22 -0
  238. package/docs/examples/layout/top-side.vue +34 -0
  239. package/docs/examples/map/basic.vue +22 -0
  240. package/docs/examples/menu/basic.vue +58 -0
  241. package/docs/examples/menu/collapsed.vue +49 -0
  242. package/docs/examples/menu/horizontal.vue +44 -0
  243. package/docs/examples/menu/selection-test.vue +104 -0
  244. package/docs/examples/menu/theme.vue +46 -0
  245. package/docs/examples/menu/vertical.vue +46 -0
  246. package/docs/examples/number/advanced.vue +143 -0
  247. package/docs/examples/number/basic.vue +63 -0
  248. package/docs/examples/number/disabled.vue +49 -0
  249. package/docs/examples/number/size.vue +42 -0
  250. package/docs/examples/number/slots.vue +123 -0
  251. package/docs/examples/number/step-strictly.vue +41 -0
  252. package/docs/examples/number/step.vue +47 -0
  253. package/docs/examples/page/basic.vue +41 -0
  254. package/docs/examples/page/init.vue +87 -0
  255. package/docs/examples/radio/basic.vue +17 -0
  256. package/docs/examples/radio/button.vue +17 -0
  257. package/docs/examples/radio/color.vue +18 -0
  258. package/docs/examples/radio/disabled.vue +17 -0
  259. package/docs/examples/radio/size.vue +29 -0
  260. package/docs/examples/rate/basic.vue +24 -0
  261. package/docs/examples/rate/half.vue +24 -0
  262. package/docs/examples/rate/readonly.vue +11 -0
  263. package/docs/examples/rate/text.vue +32 -0
  264. package/docs/examples/select/basic.vue +16 -0
  265. package/docs/examples/select/clearable.vue +22 -0
  266. package/docs/examples/select/disabled.vue +31 -0
  267. package/docs/examples/select/filterable.vue +24 -0
  268. package/docs/examples/select/group.vue +23 -0
  269. package/docs/examples/select/icon.vue +16 -0
  270. package/docs/examples/select/multiple.vue +18 -0
  271. package/docs/examples/select/size.vue +39 -0
  272. package/docs/examples/slider/basic.vue +42 -0
  273. package/docs/examples/slider/disabled.vue +17 -0
  274. package/docs/examples/slider/marks.vue +30 -0
  275. package/docs/examples/slider/size.vue +37 -0
  276. package/docs/examples/slider/tooltip.vue +36 -0
  277. package/docs/examples/slider/vertical.vue +26 -0
  278. package/docs/examples/slider-captcha/basic.vue +44 -0
  279. package/docs/examples/slider-captcha/custom.vue +48 -0
  280. package/docs/examples/switch/basic.vue +16 -0
  281. package/docs/examples/switch/disabled.vue +13 -0
  282. package/docs/examples/switch/loading.vue +13 -0
  283. package/docs/examples/switch/size.vue +15 -0
  284. package/docs/examples/switch/text.vue +13 -0
  285. package/docs/examples/table/actions.vue +116 -0
  286. package/docs/examples/table/add-row.vue +103 -0
  287. package/docs/examples/table/basic.vue +168 -0
  288. package/docs/examples/table/editable.vue +261 -0
  289. package/docs/examples/table/field-selection.vue +87 -0
  290. package/docs/examples/table/frozen-column.vue +140 -0
  291. package/docs/examples/table/height-mode.vue +99 -0
  292. package/docs/examples/table/multiple.vue +178 -0
  293. package/docs/examples/table/pagination.vue +151 -0
  294. package/docs/examples/table/single-selection.vue +64 -0
  295. package/docs/examples/table/tree-column.vue +119 -0
  296. package/docs/examples/table/tree-data.vue +141 -0
  297. package/docs/examples/table-panel/basic.vue +228 -0
  298. package/docs/examples/table-panel/batch-operations.vue +285 -0
  299. package/docs/examples/table-panel/filter.vue +209 -0
  300. package/docs/examples/table-panel/multiple-selection.vue +243 -0
  301. package/docs/examples/table-panel/pagination.vue +133 -0
  302. package/docs/examples/tabs/basic.vue +98 -0
  303. package/docs/examples/title/basic.vue +80 -0
  304. package/docs/examples/tree/accordion.vue +46 -0
  305. package/docs/examples/tree/basic.vue +50 -0
  306. package/docs/examples/tree/buttons.vue +53 -0
  307. package/docs/examples/tree/checkable.vue +52 -0
  308. package/docs/examples/tree/custom-keys.vue +39 -0
  309. package/docs/examples/tree/default-expanded.vue +52 -0
  310. package/docs/examples/tree/draggable.vue +29 -0
  311. package/docs/examples/tree/expand-on-click.vue +39 -0
  312. package/docs/examples/tree/flat-data.vue +20 -0
  313. package/docs/examples/tree/icon.vue +40 -0
  314. package/docs/examples/tree/load-data.vue +37 -0
  315. package/docs/examples/tree/methods.vue +74 -0
  316. package/docs/examples/tree/theme.vue +33 -0
  317. package/docs/examples/upload/accept.vue +31 -0
  318. package/docs/examples/upload/basic.vue +12 -0
  319. package/docs/examples/upload/drag.vue +11 -0
  320. package/docs/examples/upload/image.vue +17 -0
  321. package/docs/examples/upload/limit.vue +20 -0
  322. package/docs/examples/upload/multiple.vue +17 -0
  323. package/docs/examples/upload/readonly.vue +17 -0
  324. package/docs/examples/utils/cipher.vue +160 -0
  325. package/docs/examples/utils/common.vue +153 -0
  326. package/docs/examples/utils/date.vue +56 -0
  327. package/docs/examples/utils/dom.vue +52 -0
  328. package/docs/examples/utils/is.vue +70 -0
  329. package/docs/examples/workflow/basic.vue +265 -0
  330. package/docs/examples/workflow-viewer/basic.vue +248 -0
  331. package/package.json +6 -2
@@ -0,0 +1,199 @@
1
+ # TablePanel 表格面板
2
+
3
+ 基于 Table 组件封装的高级表格面板,集成搜索、筛选、排序、分页等常用功能。
4
+
5
+ ## 基础用法
6
+
7
+ 通过 `columns` 配置列,`loadData` 加载数据,`buttons` 配置工具栏按钮,`actions` 配置行内操作按钮。需设置 `row-key` 指定行数据的唯一标识字段。
8
+
9
+ <Demo :source-code="tablePanelBasicCode">
10
+ <template #source>
11
+ <table-panel-basic />
12
+ </template>
13
+ <template #description>
14
+ 配置 `columns` 中的 `config.filter.isSearchKeyword` 开启关键字搜索支持。注意:必须配置 `row-key` 属性指定数据唯一标识(如 id),否则无法正常使用多选功能。**重要提示:** 关键字搜索功能需要后端支持,`loadData` 方法会接收包含 `keyword` 参数的对象,需要将关键字传递给后端接口进行数据过滤。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 筛选功能
19
+
20
+ 支持多条件筛选,可以针对不同字段类型选择不同的筛选方式。
21
+
22
+ **重要提示:** 查询过滤功能(包括关键字搜索和筛选条件)需要后端支持。`loadData` 方法会接收包含 `keyword`(关键字搜索)和 `filter`(筛选条件)的参数,需要将这些参数传递给后端接口进行数据过滤。示例中的前端过滤仅用于演示,实际使用时请确保后端接口支持相应的查询参数。
23
+
24
+ <Demo :source-code="tablePanelFilterCode">
25
+ <template #source>
26
+ <table-panel-filter />
27
+ </template>
28
+ <template #description>
29
+ 通过 `config.dataType` 配置字段类型,筛选面板会自动根据类型提供合适的筛选方式。支持的类型:`options`(选项)、`dateTime`(日期时间)等。筛选面板可以点击固定按钮固定在右侧显示。**注意:** 此示例中的查询过滤功能需要后端支持,实际使用时请确保后端接口能够处理 `loadData` 传入的 `keyword` 和 `filter` 参数。
30
+ </template>
31
+ </Demo>
32
+
33
+ ## 分页
34
+
35
+ 通过 `isPage` 开启分页,`loadData` 返回 `{ rows, records }` 格式数据。
36
+
37
+ <Demo :source-code="tablePanelPaginationCode">
38
+ <template #source>
39
+ <table-panel-pagination />
40
+ </template>
41
+ <template #description>
42
+ 设置 `isPage` 为 `true` 开启分页,`loadData` 方法会接收包含 `pagination` 信息的参数对象,返回数据需要包含 `rows`(当前页数据)和 `records`(总条数)。
43
+ </template>
44
+ </Demo>
45
+
46
+ ## 多选功能
47
+
48
+ 通过 `is-multiple` 属性开启多选功能。多选功能支持两种使用场景:
49
+
50
+ ### 1. 无批处理按钮的多选
51
+
52
+ 当只需要多选功能,但不需要批处理按钮时,设置 `is-multiple` 为 `true` 即可。此时:
53
+
54
+ - 表格会显示复选框列,支持单选和全选
55
+ - 选中状态会跨页保持(需要配置 `row-key`)
56
+ - 选中记录后,工具栏会显示选中记录数、"仅选中"/"全部"切换按钮、清空选中按钮
57
+ - 支持"仅显示选中"模式,可以只查看已选中的记录
58
+ - 工具栏按钮(如新增、导出等)始终显示
59
+ - 查询设置按钮(搜索、筛选、排序等)在选中记录后仍显示,但进入"仅显示选中"模式后会隐藏
60
+ - 可以通过组件实例的 `getSelection()` 方法获取当前选中的记录
61
+ - 可以通过 `@select` 事件监听选中状态变化
62
+
63
+ <Demo :source-code="tablePanelMultipleSelectionCode">
64
+ <template #source>
65
+ <table-panel-multiple-selection />
66
+ </template>
67
+ <template #description>
68
+ 设置 `is-multiple` 为 `true` 开启多选功能。必须配置 `row-key` 属性指定数据唯一标识,否则无法跨页保持选中状态。选中记录后,会显示选中记录数、"仅选中"/"全部"切换按钮、清空选中按钮,支持仅显示选中项的功能。可以通过组件实例的 `getSelection()` 方法获取选中的记录,或通过 `@select` 事件监听选中状态变化。
69
+ </template>
70
+ </Demo>
71
+
72
+ ### 2. 带批处理按钮的多选
73
+
74
+ 当需要批量操作功能时,除了设置 `is-multiple` 为 `true`,还需要配置 `batchButtons` 属性。此时:
75
+
76
+ - 表格会显示复选框列,支持单选和全选
77
+ - 选中记录后,工具栏会显示选中记录数、切换显示模式、清空选中等控制按钮
78
+ - 配置的批量操作按钮会在选中记录后显示
79
+ - 选中记录后,会隐藏原先的工具栏按钮和查询设置按钮(搜索、筛选、排序、列管理、刷新)
80
+ - 批量操作按钮的 `click` 函数会接收当前选中的记录数组作为参数
81
+ - 支持"仅显示选中"模式,可以只查看已选中的记录
82
+
83
+ <Demo :source-code="tablePanelBatchOperationsCode">
84
+ <template #source>
85
+ <table-panel-batch-operations />
86
+ </template>
87
+ <template #description>
88
+ 通过 `batchButtons` 配置批量操作按钮,`click` 函数会接收当前选中的记录数组作为参数。选中记录后,会显示选中记录数、切换显示/仅显示选中、清空选中等控制按钮,以及配置的批量操作按钮。同时会隐藏原先的按钮和查询设置按钮(搜索、筛选、排序、列管理、刷新)。
89
+ </template>
90
+ </Demo>
91
+
92
+ ### 多选功能说明
93
+
94
+ **重要提示:**
95
+
96
+ 1. **必须配置 `row-key`**:开启多选功能时,必须配置 `row-key` 属性指定数据唯一标识字段(如 `id`、`orderId` 等),否则无法正常使用多选功能,也无法跨页保持选中状态。
97
+
98
+ 2. **跨页保持选中**:
99
+ - 当配置了 `row-key` 时,选中状态会跨页保持
100
+ - 切换页面时,之前选中的记录仍然保持选中状态
101
+ - 如果数据被刷新或重新加载,有批处理按钮时会清空选中状态,无批处理按钮时会尝试保留仍然存在的记录
102
+
103
+ 3. **获取选中数据**:
104
+ ```vue
105
+ <template>
106
+ <j-table-panel ref="tablePanelRef" is-multiple @select="handleSelect" />
107
+ </template>
108
+ <script setup>
109
+ import { ref } from 'vue'
110
+
111
+ const tablePanelRef = ref()
112
+
113
+ // 方式1: 通过事件监听
114
+ const handleSelect = (selectedRecords) => {
115
+ console.log('选中的记录:', selectedRecords)
116
+ }
117
+
118
+ // 方式2: 通过组件实例方法
119
+ const getSelected = () => {
120
+ const selected = tablePanelRef.value?.getSelection()
121
+ console.log('选中的记录:', selected)
122
+ }
123
+ </script>
124
+ ```
125
+
126
+ 4. **两种模式的区别**:
127
+
128
+ | 特性 | 无批处理按钮 | 有批处理按钮 |
129
+ |------|------------|------------|
130
+ | 工具栏按钮 | 始终显示 | 选中后切换为选中控制按钮 |
131
+ | 查询设置按钮 | 选中后仍显示,进入"仅显示选中"模式后隐藏 | 选中后立即隐藏 |
132
+ | 选中状态保持 | 跨页保持,刷新后尝试保留 | 跨页保持,刷新后清空 |
133
+ | 仅显示选中模式 | 支持 | 支持 |
134
+ | 适用场景 | 需要获取选中数据,但操作在外部处理 | 需要批量操作功能 |
135
+
136
+ ## 批量操作
137
+
138
+ 批量操作是多选功能的一种扩展使用方式,详见上面的"多选功能"章节中的"带批处理按钮的多选"部分。
139
+
140
+ ## API
141
+
142
+ <ApiTable :data="tablePanelApi" componentName="table-panel" />
143
+
144
+ ### ButtonItem 类型
145
+
146
+ | 属性名 | 说明 | 类型 | 默认值 |
147
+ | ------ | ------------ | --------------------------------------------------------------------- | ------ |
148
+ | label | 按钮显示文本 | `string` | - |
149
+ | icon | 按钮图标 | `string` | - |
150
+ | type | 按钮类型 | `'primary' \| 'success' \| 'warning' \| 'danger' \| 'info' \| 'text'` | - |
151
+ | click | 按钮点击回调 | `() => void` | - |
152
+
153
+ ### loadData 参数
154
+
155
+ 调用 `loadData` 时会传入以下参数:
156
+
157
+ ```ts
158
+ interface LoadDataParams {
159
+ // 关键字搜索
160
+ keyword?: {
161
+ value: string // 搜索关键字
162
+ fields: string[] // 搜索字段
163
+ }
164
+ // 筛选条件
165
+ filter?: {
166
+ rel: 'and' | 'or' // 条件关系
167
+ cond: {
168
+ // 条件列表
169
+ field: string // 字段名
170
+ method: string // 筛选方式: eq, ne, like, unlike, in, nin, gte, lte, range, empty, not_empty
171
+ value: any // 筛选值
172
+ type: string // 值类型
173
+ }[]
174
+ }
175
+ // 分页信息(isPage=true 时)
176
+ pagination?: {
177
+ rows: number // 每页条数
178
+ page: number // 当前页码
179
+ sort: string // 排序字段
180
+ }
181
+ // 排序(isPage=false 时)
182
+ sort?: string
183
+ }
184
+ ```
185
+
186
+ <script setup>
187
+ import TablePanelBasic from '../examples/table-panel/basic.vue'
188
+ import TablePanelFilter from '../examples/table-panel/filter.vue'
189
+ import TablePanelPagination from '../examples/table-panel/pagination.vue'
190
+ import TablePanelMultipleSelection from '../examples/table-panel/multiple-selection.vue'
191
+ import TablePanelBatchOperations from '../examples/table-panel/batch-operations.vue'
192
+ import tablePanelApi from './meta/table-panel'
193
+
194
+ import tablePanelBasicCode from '../examples/table-panel/basic.vue?raw'
195
+ import tablePanelFilterCode from '../examples/table-panel/filter.vue?raw'
196
+ import tablePanelPaginationCode from '../examples/table-panel/pagination.vue?raw'
197
+ import tablePanelMultipleSelectionCode from '../examples/table-panel/multiple-selection.vue?raw'
198
+ import tablePanelBatchOperationsCode from '../examples/table-panel/batch-operations.vue?raw'
199
+ </script>
@@ -0,0 +1,202 @@
1
+ # Table 表格
2
+
3
+ 基于字节 VTable 的高性能表格组件,用于展示大量结构化数据。
4
+
5
+ ## 基础用法
6
+
7
+ 基础的表格展示用法。
8
+
9
+ <Demo :source-code="tableBasicCode">
10
+ <template #source>
11
+ <table-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `columns` 属性配置表格列,通过 `records` 属性设置表格数据。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 冻结列
19
+
20
+ 通过 `columns` 中的 `config.frozen` 属性设置列的冻结方式,支持 `left`(左侧冻结)和 `right`(右侧冻结)。
21
+
22
+ > 注意:在列组合(树形表头)中,如果子列设置了冻结属性,则包含该子列的整个父列组都会被冻结。
23
+
24
+ <Demo :source-code="tableFrozenColumnCode">
25
+ <template #source>
26
+ <table-frozen-column />
27
+ </template>
28
+ <template #description>
29
+ 设置 `frozen: 'left'` 或 `frozen: 'right'` 来冻结列。
30
+ </template>
31
+ </Demo>
32
+
33
+ ## 高度模式
34
+
35
+ 通过 `heightMode` 属性控制表格高度模式,支持 `full` (充满父容器) 和 `auto` (内容自适应)。当设置为 `auto` 时,可通过 `maxHeight` 设置最大高度。
36
+
37
+ <Demo :source-code="tableHeightModeCode">
38
+ <template #source>
39
+ <table-height-mode />
40
+ </template>
41
+ <template #description>
42
+ 切换 `heightMode` 查看不同高度模式的效果。当 `heightMode` 为 `auto` 且设置了 `maxHeight` 时,超过最大高度会出现滚动条。
43
+ </template>
44
+ </Demo>
45
+
46
+ ## 列组合
47
+
48
+ 通过在 `columns` 中嵌套 `children` 属性,可以实现多级表头(树形结构列配置)。
49
+
50
+ <Demo :source-code="tableTreeColumnCode">
51
+ <template #source>
52
+ <table-tree-column />
53
+ </template>
54
+ <template #description>
55
+ 在 `columns` 中嵌套 `children` 来声明分组。
56
+ </template>
57
+ </Demo>
58
+
59
+ ## 树形展示
60
+
61
+ 通过 `isTree` 属性开启树形展示。
62
+
63
+ <Demo :source-code="tableTreeDataCode">
64
+ <template #source>
65
+ <table-tree-data />
66
+ </template>
67
+ <template #description>
68
+ 设置 `isTree` 为 `true` 开启树形展示,第一列会自动显示展开/折叠图标。
69
+ </template>
70
+ </Demo>
71
+
72
+ ## 多选
73
+
74
+ 通过 `isMultiple` 属性开启多选。
75
+ <Demo :source-code="tableMultipleCode">
76
+ <template #source>
77
+ <table-multiple />
78
+ </template>
79
+ <template #description>
80
+ 设置 `isMultiple` 为 `true` 开启多选,表格第一列会显示勾选框。
81
+ </template>
82
+ </Demo>
83
+
84
+ ## 单选获取选中行
85
+
86
+ 在非多选模式下,可以通过 `selectionChanged` 事件或 `getSelection` 方法获取当前选中的行数据。
87
+
88
+ <Demo :source-code="tableSingleSelectionCode">
89
+ <template #source>
90
+ <table-single-selection />
91
+ </template>
92
+ <template #description>
93
+ 默认情况下(`isMultiple` 为 `false`),点击表格行会触发 `selectionChanged` 事件。
94
+ </template>
95
+ </Demo>
96
+
97
+ ## 字段控制选中状态
98
+
99
+ 通过 `selectField` 属性绑定选中状态字段。
100
+ <Demo :source-code="tableFieldSelectionCode">
101
+ <template #source>
102
+ <table-field-selection />
103
+ </template>
104
+ <template #description>
105
+ 设置 `selectField` 属性,表格会根据数据中的该字段来渲染选中状态。
106
+ </template>
107
+ </Demo>
108
+
109
+ ## 分页
110
+
111
+ 通过 `isPage` 属性开启分页功能。
112
+
113
+ <Demo :source-code="tablePaginationCode">
114
+ <template #source>
115
+ <table-pagination />
116
+ </template>
117
+ <template #description>
118
+ 设置 `isPage` 为 `true` 开启分页,通过 `v-model:table-page` 和 `v-model:page-size` 绑定当前页码和每页显示数量,监听 `loadPageData` 事件来加载对应页的数据。
119
+ </template>
120
+ </Demo>
121
+
122
+ ## 行内操作按钮
123
+
124
+ 通过 `actions` 属性配置行内操作按钮。
125
+
126
+ <Demo :source-code="tableActionsCode">
127
+ <template #source>
128
+ <table-actions />
129
+ </template>
130
+ <template #description>
131
+ 通过 `actions` 属性传入按钮配置数组,每个按钮需要配置 `id`(唯一标识)、`label`(显示文本)、`click`(点击回调函数)。可选配置 `color` 自定义按钮颜色。操作列宽度自动计算,默认最多显示3个按钮,超出部分收纳到"更多"下拉菜单中。可通过 `actionsMaxCount` 设置最大显示数量,`actionsLabel` 设置操作列标题。
132
+ </template>
133
+ </Demo>
134
+
135
+ ## 单元格编辑
136
+
137
+ 通过在列配置中设置 `editor` 属性启用单元格编辑功能。
138
+
139
+ <Demo :source-code="tableEditableCode">
140
+ <template #source>
141
+ <table-editable />
142
+ </template>
143
+ <template #description>
144
+ 在列配置的 `config` 中设置 `editor: true` 启用编辑功能,点击单元格即可进入编辑模式。支持多种编辑器类型:
145
+ <ul>
146
+ <li><code>j-input</code> - 文本输入框</li>
147
+ <li><code>j-number</code> - 数字输入框</li>
148
+ <li><code>j-select</code> - 下拉选择器</li>
149
+ <li><code>j-radio</code> - 单选框</li>
150
+ <li><code>j-checkbox</code> - 复选框</li>
151
+ <li><code>j-switch</code> - 开关</li>
152
+ <li>以及其他 j-input 开头的输入组件</li>
153
+ </ul>
154
+ 通过监听 <code>cell-change</code> 事件可以获取单元格值的变化。
155
+ </template>
156
+ </Demo>
157
+
158
+ ## 添加数据
159
+
160
+ 通过 `editConfig` 属性配置 `isAddBtn` 为 `true` 来显示添加按钮。
161
+
162
+ <Demo :source-code="tableAddRowCode">
163
+ <template #source>
164
+ <table-add-row />
165
+ </template>
166
+ <template #description>
167
+ 设置 `editConfig` 的 `isAddBtn` 为 `true` 开启添加按钮,可通过 `addBtnText` 自定义按钮文本。点击添加按钮会触发 `add` 事件,并自动在表格中插入一行新数据(使用列配置中的 `defaultValue`)。
168
+ </template>
169
+ </Demo>
170
+
171
+ ## API
172
+
173
+ <ApiTable :data="tableApi" componentName="table" />
174
+
175
+ <script setup>
176
+ import TableBasic from '../examples/table/basic.vue'
177
+ import TableFrozenColumn from '../examples/table/frozen-column.vue'
178
+ import TableHeightMode from '../examples/table/height-mode.vue'
179
+ import TableTreeColumn from '../examples/table/tree-column.vue'
180
+ import TableTreeData from '../examples/table/tree-data.vue'
181
+ import TableMultiple from '../examples/table/multiple.vue'
182
+ import TableSingleSelection from '../examples/table/single-selection.vue'
183
+ import TableFieldSelection from '../examples/table/field-selection.vue'
184
+ import TablePagination from '../examples/table/pagination.vue'
185
+ import TableActions from '../examples/table/actions.vue'
186
+ import TableEditable from '../examples/table/editable.vue'
187
+ import TableAddRow from '../examples/table/add-row.vue'
188
+ import tableApi from './meta/table'
189
+
190
+ import tableBasicCode from '../examples/table/basic.vue?raw'
191
+ import tableFrozenColumnCode from '../examples/table/frozen-column.vue?raw'
192
+ import tableHeightModeCode from '../examples/table/height-mode.vue?raw'
193
+ import tableTreeColumnCode from '../examples/table/tree-column.vue?raw'
194
+ import tableTreeDataCode from '../examples/table/tree-data.vue?raw'
195
+ import tableMultipleCode from '../examples/table/multiple.vue?raw'
196
+ import tableSingleSelectionCode from '../examples/table/single-selection.vue?raw'
197
+ import tableFieldSelectionCode from '../examples/table/field-selection.vue?raw'
198
+ import tablePaginationCode from '../examples/table/pagination.vue?raw'
199
+ import tableActionsCode from '../examples/table/actions.vue?raw'
200
+ import tableEditableCode from '../examples/table/editable.vue?raw'
201
+ import tableAddRowCode from '../examples/table/add-row.vue?raw'
202
+ </script>
@@ -0,0 +1,26 @@
1
+ # Tabs 标签页
2
+
3
+ 用于分隔内容上有关联但属于不同类别的数据集合。
4
+
5
+ ## 基础用法
6
+
7
+ 基础的、简洁的标签页。
8
+
9
+ <Demo :source-code="tabsBasicCode">
10
+ <template #source>
11
+ <tabs-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `v-model` 绑定当前激活的标签页,使用 `el-tab-pane` 定义标签页内容。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## API
19
+
20
+ <ApiTable :data="tabsApi" componentName="tabs" />
21
+
22
+ <script setup>
23
+ import TabsBasic from '../examples/tabs/basic.vue'
24
+ import tabsApi from './meta/tabs'
25
+ import tabsBasicCode from '../examples/tabs/basic.vue?raw'
26
+ </script>
@@ -0,0 +1,24 @@
1
+ # Title 标题
2
+
3
+ 用于展示页面或区域的标题文本。支持自定义颜色、大小、粗细和样式等功能。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="titleBasicCode">
8
+ <template #source>
9
+ <title-basic />
10
+ </template>
11
+ <template #description>
12
+ 通过 `title` 属性设置标题内容,支持 `color`、`size`、`weight` 等属性自定义样式。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="titleApi" componentName="title" />
19
+
20
+ <script setup>
21
+ import TitleBasic from '../examples/title/basic.vue'
22
+ import titleApi from './meta/title'
23
+ import titleBasicCode from '../examples/title/basic.vue?raw'
24
+ </script>
@@ -0,0 +1,207 @@
1
+ # Tree 树形控件
2
+
3
+ 用清晰的层级结构展示信息,可展开或折叠。
4
+
5
+ ## 基础用法
6
+
7
+ 基础的树形结构展示。
8
+
9
+ <Demo :source-code="treeBasicCode">
10
+ <template #source>
11
+ <tree-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `list` 属性设置树形数据,`click` 事件监听节点点击。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 扁平数据
19
+
20
+ 支持扁平数组数据,会自动转换为树形结构。
21
+
22
+ <Demo :source-code="treeFlatDataCode">
23
+ <template #source>
24
+ <tree-flat-data />
25
+ </template>
26
+ <template #description>
27
+ 设置 `is-tree-data` 为 `false`,组件会自动将扁平数组转换为树形结构。需要提供 `pid` 字段表示父级关系。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 可选择
32
+
33
+ 使用 `checkable` 属性开启复选框功能。
34
+
35
+ <Demo :source-code="treeCheckableCode">
36
+ <template #source>
37
+ <tree-checkable />
38
+ </template>
39
+ <template #description>
40
+ 设置 `checkable` 为 `true` 显示复选框,通过 `default-checked-keys` 设置默认选中,`check` 事件监听勾选变化。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 异步加载
45
+
46
+ 通过 `load-data` 属性异步加载数据。
47
+
48
+ <Demo :source-code="treeLoadDataCode">
49
+ <template #source>
50
+ <tree-load-data />
51
+ </template>
52
+ <template #description>
53
+ 使用 `load-data` 属性传入异步加载函数,`after-load-data` 在数据加载完成后触发。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 图标
58
+
59
+ 支持为节点设置图标。
60
+
61
+ <Demo :source-code="treeIconCode">
62
+ <template #source>
63
+ <tree-icon />
64
+ </template>
65
+ <template #description>
66
+ 通过 `default-icon` 和 `default-icon-color` 设置默认图标,节点数据中的 `nodeIcon` 和 `nodeIconColor` 字段可以覆盖默认值。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 节点操作按钮
71
+
72
+ 通过 `tree-buttons` 属性为节点添加操作按钮。
73
+
74
+ <Demo :source-code="treeButtonsCode">
75
+ <template #source>
76
+ <tree-buttons />
77
+ </template>
78
+ <template #description>
79
+ 配置 `tree-buttons` 数组,每个节点右侧会显示操作按钮,点击按钮会触发对应的 `click` 方法。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## 手风琴模式
84
+
85
+ 使用 `accordion` 属性开启手风琴模式。
86
+
87
+ <Demo :source-code="treeAccordionCode">
88
+ <template #source>
89
+ <tree-accordion />
90
+ </template>
91
+ <template #description>
92
+ 设置 `accordion` 为 `true`,每次只打开一个同级树节点。
93
+ </template>
94
+ </Demo>
95
+
96
+ ## 主题
97
+
98
+ 通过 `theme` 属性设置主题样式。
99
+
100
+ <Demo :source-code="treeThemeCode">
101
+ <template #source>
102
+ <tree-theme />
103
+ </template>
104
+ <template #description>
105
+ 支持 `default` 和 `menu` 两种主题,`menu` 主题适用于菜单场景。
106
+ </template>
107
+ </Demo>
108
+
109
+ ## 可拖拽
110
+
111
+ 使用 `draggable` 属性开启拖拽功能。
112
+
113
+ <Demo :source-code="treeDraggableCode">
114
+ <template #source>
115
+ <tree-draggable />
116
+ </template>
117
+ <template #description>
118
+ 设置 `draggable` 为 `true` 开启拖拽,节点数据中的 `canInner` 字段控制是否允许拖入内部。
119
+ </template>
120
+ </Demo>
121
+
122
+ ## 点击展开
123
+
124
+ 使用 `expand-on-click-node` 属性控制点击节点是否展开。
125
+
126
+ <Demo :source-code="treeExpandOnClickCode">
127
+ <template #source>
128
+ <tree-expand-on-click />
129
+ </template>
130
+ <template #description>
131
+ 设置 `expand-on-click-node` 为 `true`,点击节点时会展开或收缩,默认为 `false`,只有点击箭头图标才会展开。
132
+ </template>
133
+ </Demo>
134
+
135
+ ## 自定义字段名
136
+
137
+ 通过 `label-key`、`value-key`、`pid-key` 等属性自定义字段名。
138
+
139
+ <Demo :source-code="treeCustomKeysCode">
140
+ <template #source>
141
+ <tree-custom-keys />
142
+ </template>
143
+ <template #description>
144
+ 当数据字段名不是默认值时,可以通过这些属性自定义字段名。
145
+ </template>
146
+ </Demo>
147
+
148
+ ## 默认展开
149
+
150
+ 通过 `default-expanded-keys` 和 `default-expand-all` 控制默认展开状态。
151
+
152
+ <Demo :source-code="treeDefaultExpandedCode">
153
+ <template #source>
154
+ <tree-default-expanded />
155
+ </template>
156
+ <template #description>
157
+ 使用 `default-expanded-keys` 设置默认展开的节点,`default-expand-all` 控制是否默认展开所有节点。
158
+ </template>
159
+ </Demo>
160
+
161
+ ## 方法调用
162
+
163
+ 通过 ref 调用组件方法。
164
+
165
+ <Demo :source-code="treeMethodsCode">
166
+ <template #source>
167
+ <tree-methods />
168
+ </template>
169
+ <template #description>
170
+ 使用 `setValue` 设置选中节点,`getValue` 获取选中节点,`setCheck` 设置选中复选框,`getCheck` 获取选中的复选框,`refreshData` 刷新数据。
171
+ </template>
172
+ </Demo>
173
+
174
+ ## API
175
+
176
+ <ApiTable :data="treeApi" componentName="tree" />
177
+
178
+ <script setup>
179
+ import TreeBasic from '../examples/tree/basic.vue'
180
+ import TreeFlatData from '../examples/tree/flat-data.vue'
181
+ import TreeCheckable from '../examples/tree/checkable.vue'
182
+ import TreeLoadData from '../examples/tree/load-data.vue'
183
+ import TreeIcon from '../examples/tree/icon.vue'
184
+ import TreeButtons from '../examples/tree/buttons.vue'
185
+ import TreeAccordion from '../examples/tree/accordion.vue'
186
+ import TreeTheme from '../examples/tree/theme.vue'
187
+ import TreeDraggable from '../examples/tree/draggable.vue'
188
+ import TreeExpandOnClick from '../examples/tree/expand-on-click.vue'
189
+ import TreeCustomKeys from '../examples/tree/custom-keys.vue'
190
+ import TreeDefaultExpanded from '../examples/tree/default-expanded.vue'
191
+ import TreeMethods from '../examples/tree/methods.vue'
192
+ import treeApi from './meta/tree'
193
+
194
+ import treeBasicCode from '../examples/tree/basic.vue?raw'
195
+ import treeFlatDataCode from '../examples/tree/flat-data.vue?raw'
196
+ import treeCheckableCode from '../examples/tree/checkable.vue?raw'
197
+ import treeLoadDataCode from '../examples/tree/load-data.vue?raw'
198
+ import treeIconCode from '../examples/tree/icon.vue?raw'
199
+ import treeButtonsCode from '../examples/tree/buttons.vue?raw'
200
+ import treeAccordionCode from '../examples/tree/accordion.vue?raw'
201
+ import treeThemeCode from '../examples/tree/theme.vue?raw'
202
+ import treeDraggableCode from '../examples/tree/draggable.vue?raw'
203
+ import treeExpandOnClickCode from '../examples/tree/expand-on-click.vue?raw'
204
+ import treeCustomKeysCode from '../examples/tree/custom-keys.vue?raw'
205
+ import treeDefaultExpandedCode from '../examples/tree/default-expanded.vue?raw'
206
+ import treeMethodsCode from '../examples/tree/methods.vue?raw'
207
+ </script>