@a2simcode/ui 0.0.263 → 0.0.265
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.
- package/.cursor/skills/ui-component-helper/README.md +86 -86
- package/.cursor/skills/ui-component-helper/SKILL.md +115 -115
- package/LICENSE +53 -53
- package/README.md +156 -156
- package/dist/components/table/index.d.ts +60 -0
- package/dist/components/table/src/interface.d.ts +42 -0
- package/dist/components/table/src/table.vue.d.ts +55 -1
- package/dist/simcode-ui.es.js +4720 -4688
- package/dist/simcode-ui.umd.js +2 -2
- package/dist/stats.html +1 -1
- package/dist/ui.css +1 -1
- package/docs/components/autocomplete.md +89 -89
- package/docs/components/barcode.md +101 -101
- package/docs/components/button-select.md +24 -24
- package/docs/components/button.md +117 -117
- package/docs/components/buttons.md +119 -119
- package/docs/components/card-list.md +38 -38
- package/docs/components/cascader-select.md +114 -114
- package/docs/components/checkbox.md +114 -114
- package/docs/components/code-mirror.md +85 -85
- package/docs/components/collapse.md +26 -26
- package/docs/components/comp.md +71 -71
- package/docs/components/count-up.md +24 -24
- package/docs/components/count.md +24 -24
- package/docs/components/data-panel.md +24 -24
- package/docs/components/date.md +76 -76
- package/docs/components/dialog-full.md +112 -112
- package/docs/components/dialog.md +127 -127
- package/docs/components/divider.md +24 -24
- package/docs/components/drawer.md +127 -127
- package/docs/components/dynamic-layer.md +118 -118
- package/docs/components/echarts.md +72 -72
- package/docs/components/editor.md +24 -24
- package/docs/components/form.md +87 -87
- package/docs/components/guid.md +39 -39
- package/docs/components/hpanel.md +24 -24
- package/docs/components/icon.md +56 -56
- package/docs/components/input-button.md +24 -24
- package/docs/components/input-code.md +24 -24
- package/docs/components/input-color.md +114 -114
- package/docs/components/input-layer.md +56 -56
- package/docs/components/input-rows.md +370 -370
- package/docs/components/input-tag.md +50 -50
- package/docs/components/input.md +129 -129
- package/docs/components/layer-form.md +61 -61
- package/docs/components/layer.md +127 -127
- package/docs/components/layout.md +132 -132
- package/docs/components/map.md +24 -24
- package/docs/components/menu.md +121 -121
- package/docs/components/meta/button.ts +212 -212
- package/docs/components/meta/buttons.ts +76 -76
- package/docs/components/meta/card-list.ts +210 -210
- package/docs/components/meta/code-mirror.ts +108 -108
- package/docs/components/meta/comp.ts +236 -236
- package/docs/components/meta/date.ts +267 -267
- package/docs/components/meta/echarts.ts +64 -64
- package/docs/components/meta/form-item.ts +62 -50
- package/docs/components/meta/form.ts +181 -181
- package/docs/components/meta/input-button.ts +175 -175
- package/docs/components/meta/input-cards.ts +112 -112
- package/docs/components/meta/input-code.ts +161 -161
- package/docs/components/meta/input-color.ts +243 -243
- package/docs/components/meta/input-rows.ts +119 -119
- package/docs/components/meta/layer-form.ts +74 -74
- package/docs/components/meta/map.ts +68 -68
- package/docs/components/meta/panel.ts +152 -152
- package/docs/components/meta/radio.ts +55 -55
- package/docs/components/meta/select.ts +279 -279
- package/docs/components/meta/slider.ts +270 -270
- package/docs/components/meta/table-panel.ts +326 -326
- package/docs/components/meta/table.ts +427 -409
- package/docs/components/meta/tabs.ts +146 -146
- package/docs/components/meta/title.ts +91 -91
- package/docs/components/meta/tree-select.ts +199 -199
- package/docs/components/meta/tree.ts +225 -219
- package/docs/components/meta/vpanel.ts +19 -19
- package/docs/components/meta/workflow-viewer.ts +55 -55
- package/docs/components/number.md +124 -124
- package/docs/components/page.md +102 -102
- package/docs/components/panel.md +37 -37
- package/docs/components/radio.md +87 -87
- package/docs/components/rate.md +71 -71
- package/docs/components/select.md +133 -133
- package/docs/components/slider-captcha.md +41 -41
- package/docs/components/slider.md +101 -101
- package/docs/components/switch.md +90 -90
- package/docs/components/table-panel.md +312 -312
- package/docs/components/table.md +495 -450
- package/docs/components/tabs.md +26 -26
- package/docs/components/title.md +24 -24
- package/docs/components/tree.md +222 -222
- package/docs/components/upload.md +117 -117
- package/docs/components/workflow-viewer.md +21 -21
- package/docs/components/workflow.md +21 -21
- package/docs/examples/autocomplete/advanced.vue +35 -35
- package/docs/examples/autocomplete/basic.vue +32 -32
- package/docs/examples/autocomplete/clearable.vue +33 -33
- package/docs/examples/autocomplete/custom-template.vue +49 -49
- package/docs/examples/autocomplete/disabled.vue +33 -33
- package/docs/examples/autocomplete/icon.vue +37 -37
- package/docs/examples/barcode/all-types.vue +380 -380
- package/docs/examples/barcode/basic.vue +14 -14
- package/docs/examples/barcode/props-appearance.vue +243 -243
- package/docs/examples/barcode/props-geometry.vue +143 -143
- package/docs/examples/barcode/props-logic.vue +216 -216
- package/docs/examples/barcode/props-symbology.vue +199 -199
- package/docs/examples/barcode/props-text.vue +268 -268
- package/docs/examples/button/basic.vue +7 -7
- package/docs/examples/button/disabled.vue +42 -42
- package/docs/examples/button/loading.vue +6 -6
- package/docs/examples/button/shape.vue +7 -7
- package/docs/examples/button/size.vue +14 -14
- package/docs/examples/button/status.vue +34 -34
- package/docs/examples/button/type.vue +10 -10
- package/docs/examples/button-select/basic.vue +19 -19
- package/docs/examples/buttons/basic.vue +62 -62
- package/docs/examples/buttons/disabled.vue +36 -36
- package/docs/examples/buttons/dropdown.vue +63 -63
- package/docs/examples/buttons/group.vue +52 -52
- package/docs/examples/buttons/link.vue +47 -47
- package/docs/examples/buttons/popup.vue +39 -39
- package/docs/examples/buttons/size.vue +45 -45
- package/docs/examples/card-list/basic.vue +70 -70
- package/docs/examples/card-list/selection-pagination.vue +69 -69
- package/docs/examples/cascader-select/basic.vue +28 -28
- package/docs/examples/cascader-select/clearable.vue +34 -34
- package/docs/examples/cascader-select/disabled.vue +43 -43
- package/docs/examples/cascader-select/filterable.vue +37 -37
- package/docs/examples/cascader-select/methods.vue +84 -84
- package/docs/examples/cascader-select/multiple.vue +38 -38
- package/docs/examples/cascader-select/slot.vue +45 -45
- package/docs/examples/checkbox/basic.vue +18 -18
- package/docs/examples/checkbox/button.vue +19 -19
- package/docs/examples/checkbox/color.vue +25 -25
- package/docs/examples/checkbox/disabled.vue +17 -17
- package/docs/examples/checkbox/min-max.vue +20 -20
- package/docs/examples/checkbox/mixed.vue +56 -56
- package/docs/examples/checkbox/size.vue +28 -28
- package/docs/examples/code-mirror/basic.vue +11 -11
- package/docs/examples/code-mirror/events.vue +42 -42
- package/docs/examples/code-mirror/height.vue +25 -25
- package/docs/examples/code-mirror/mode.vue +33 -33
- package/docs/examples/code-mirror/readonly.vue +14 -14
- package/docs/examples/collapse/basic.vue +82 -82
- package/docs/examples/comp/basic.vue +7 -7
- package/docs/examples/comp/collapse.vue +38 -38
- package/docs/examples/comp/tabs.vue +38 -38
- package/docs/examples/count/basic.vue +101 -101
- package/docs/examples/count-up/basic.vue +89 -89
- package/docs/examples/data-panel/basic.vue +110 -110
- package/docs/examples/date/basic.vue +73 -73
- package/docs/examples/date/default-value.vue +59 -59
- package/docs/examples/date/format.vue +75 -75
- package/docs/examples/date/range.vue +66 -66
- package/docs/examples/date/types.vue +79 -79
- package/docs/examples/decorated-title/basic.vue +31 -31
- package/docs/examples/dialog/basic.vue +36 -36
- package/docs/examples/dialog/custom-buttons.vue +44 -44
- package/docs/examples/dialog/fullscreen.vue +23 -23
- package/docs/examples/dialog/no-mask.vue +17 -17
- package/docs/examples/dialog/size.vue +44 -44
- package/docs/examples/dialog/steps.vue +57 -57
- package/docs/examples/dialog-full/basic.vue +29 -29
- package/docs/examples/dialog-full/custom-buttons.vue +45 -45
- package/docs/examples/dialog-full/no-buttons.vue +18 -18
- package/docs/examples/dialog-full/no-header.vue +27 -27
- package/docs/examples/dialog-full/steps.vue +71 -71
- package/docs/examples/divider/basic.vue +52 -52
- package/docs/examples/drawer/basic.vue +35 -35
- package/docs/examples/drawer/custom-buttons.vue +34 -34
- package/docs/examples/drawer/direction.vue +47 -47
- package/docs/examples/drawer/mask.vue +36 -36
- package/docs/examples/drawer/no-buttons.vue +20 -20
- package/docs/examples/drawer/size.vue +28 -28
- package/docs/examples/dynamic-layer/basic.vue +33 -33
- package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
- package/docs/examples/dynamic-layer/form.vue +73 -73
- package/docs/examples/dynamic-layer/steps.vue +52 -52
- package/docs/examples/dynamic-layer/types.vue +40 -40
- package/docs/examples/echarts/basic.vue +31 -31
- package/docs/examples/echarts/dynamic.vue +43 -43
- package/docs/examples/echarts/line.vue +46 -46
- package/docs/examples/echarts/pie.vue +44 -44
- package/docs/examples/editor/basic.vue +15 -15
- package/docs/examples/form/basic.vue +688 -688
- package/docs/examples/form/init.vue +76 -76
- package/docs/examples/form/master-detail.vue +203 -203
- package/docs/examples/form/rule-format.vue +179 -179
- package/docs/examples/form/view-table.vue +378 -378
- package/docs/examples/guid/basic.vue +10 -10
- package/docs/examples/guid/size.vue +13 -13
- package/docs/examples/hpanel/basic.vue +79 -79
- package/docs/examples/icon/basic.vue +9 -9
- package/docs/examples/icon/rotate-flip.vue +9 -9
- package/docs/examples/icon/size.vue +7 -7
- package/docs/examples/input/basic.vue +10 -10
- package/docs/examples/input/clearable.vue +12 -12
- package/docs/examples/input/disabled.vue +6 -6
- package/docs/examples/input/icon.vue +23 -23
- package/docs/examples/input/password.vue +18 -18
- package/docs/examples/input/size.vue +13 -13
- package/docs/examples/input/textarea.vue +25 -25
- package/docs/examples/input/word-limit.vue +28 -28
- package/docs/examples/input-button/basic.vue +33 -33
- package/docs/examples/input-cards/basic.vue +79 -79
- package/docs/examples/input-code/basic.vue +29 -29
- package/docs/examples/input-color/basic.vue +10 -10
- package/docs/examples/input-color/disabled.vue +13 -13
- package/docs/examples/input-color/format.vue +17 -17
- package/docs/examples/input-color/no-alpha.vue +13 -13
- package/docs/examples/input-color/only-button.vue +15 -15
- package/docs/examples/input-color/predefine.vue +31 -31
- package/docs/examples/input-color/size.vue +15 -15
- package/docs/examples/input-layer/basic.vue +85 -85
- package/docs/examples/input-layer/render-vnode-page.vue +160 -160
- package/docs/examples/input-layer/render-vnode.vue +127 -127
- package/docs/examples/input-rows/basic.vue +73 -73
- package/docs/examples/input-rows/drag.vue +48 -48
- package/docs/examples/input-rows/layer-form.vue +85 -85
- package/docs/examples/input-rows/nested.vue +91 -91
- package/docs/examples/input-tag/basic.vue +27 -27
- package/docs/examples/input-tag/colors.vue +23 -23
- package/docs/examples/input-tag/readonly.vue +17 -17
- package/docs/examples/layer/basic.vue +43 -43
- package/docs/examples/layer/custom-buttons.vue +61 -61
- package/docs/examples/layer/drawer.vue +37 -37
- package/docs/examples/layer/full.vue +38 -38
- package/docs/examples/layer/modal.vue +34 -34
- package/docs/examples/layer/steps.vue +46 -46
- package/docs/examples/layer-form/basic.vue +76 -76
- package/docs/examples/layer-form/config.vue +82 -82
- package/docs/examples/layer-form/size.vue +72 -72
- package/docs/examples/layout/basic.vue +36 -36
- package/docs/examples/layout/custom-size.vue +50 -50
- package/docs/examples/layout/disable-move.vue +37 -37
- package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
- package/docs/examples/layout/min-size.vue +73 -73
- package/docs/examples/layout/percent-size.vue +80 -80
- package/docs/examples/layout/simple.vue +22 -22
- package/docs/examples/layout/top-side.vue +34 -34
- package/docs/examples/map/basic.vue +22 -22
- package/docs/examples/menu/basic.vue +58 -58
- package/docs/examples/menu/collapsed.vue +49 -49
- package/docs/examples/menu/horizontal.vue +44 -44
- package/docs/examples/menu/selection-test.vue +104 -104
- package/docs/examples/menu/theme.vue +46 -46
- package/docs/examples/menu/vertical.vue +46 -46
- package/docs/examples/number/advanced.vue +143 -143
- package/docs/examples/number/basic.vue +63 -63
- package/docs/examples/number/disabled.vue +49 -49
- package/docs/examples/number/size.vue +42 -42
- package/docs/examples/number/slots.vue +123 -123
- package/docs/examples/number/step-strictly.vue +41 -41
- package/docs/examples/number/step.vue +47 -47
- package/docs/examples/page/basic.vue +41 -41
- package/docs/examples/page/code-table-model.vue +428 -428
- package/docs/examples/page/dept-user-management.vue +211 -211
- package/docs/examples/page/init.vue +87 -87
- package/docs/examples/page/log.vue +453 -453
- package/docs/examples/page/user-management.vue +313 -313
- package/docs/examples/panel/tool-buttons.vue +18 -18
- package/docs/examples/radio/basic.vue +17 -17
- package/docs/examples/radio/button.vue +17 -17
- package/docs/examples/radio/color.vue +18 -18
- package/docs/examples/radio/disabled.vue +17 -17
- package/docs/examples/radio/size.vue +29 -29
- package/docs/examples/rate/basic.vue +24 -24
- package/docs/examples/rate/half.vue +24 -24
- package/docs/examples/rate/readonly.vue +11 -11
- package/docs/examples/rate/text.vue +37 -37
- package/docs/examples/select/basic.vue +16 -16
- package/docs/examples/select/clearable.vue +22 -22
- package/docs/examples/select/disabled.vue +31 -31
- package/docs/examples/select/filterable.vue +24 -24
- package/docs/examples/select/group.vue +23 -23
- package/docs/examples/select/icon.vue +16 -16
- package/docs/examples/select/multiple.vue +18 -18
- package/docs/examples/select/size.vue +39 -39
- package/docs/examples/slider/basic.vue +42 -42
- package/docs/examples/slider/disabled.vue +17 -17
- package/docs/examples/slider/marks.vue +30 -30
- package/docs/examples/slider/size.vue +37 -37
- package/docs/examples/slider/tooltip.vue +36 -36
- package/docs/examples/slider/vertical.vue +26 -26
- package/docs/examples/slider-captcha/basic.vue +44 -44
- package/docs/examples/slider-captcha/custom.vue +48 -48
- package/docs/examples/switch/basic.vue +16 -16
- package/docs/examples/switch/disabled.vue +13 -13
- package/docs/examples/switch/loading.vue +13 -13
- package/docs/examples/switch/size.vue +15 -15
- package/docs/examples/switch/text.vue +13 -13
- package/docs/examples/table/action-filter.vue +126 -126
- package/docs/examples/table/actions.vue +116 -116
- package/docs/examples/table/add-row.vue +103 -103
- package/docs/examples/table/basic.vue +168 -168
- package/docs/examples/table/checkbox-layout.vue +68 -68
- package/docs/examples/table/column-filter.vue +96 -96
- package/docs/examples/table/custom-layout.vue +115 -115
- package/docs/examples/table/custom-merge-cell.vue +206 -0
- package/docs/examples/table/dynamic-type.vue +73 -73
- package/docs/examples/table/editable.vue +262 -262
- package/docs/examples/table/field-selection.vue +87 -87
- package/docs/examples/table/frozen-column.vue +140 -140
- package/docs/examples/table/height-mode.vue +99 -99
- package/docs/examples/table/icon.vue +85 -85
- package/docs/examples/table/layer-form.vue +133 -133
- package/docs/examples/table/link.vue +66 -66
- package/docs/examples/table/merge-cell.vue +78 -0
- package/docs/examples/table/multiple-disabled.vue +112 -112
- package/docs/examples/table/multiple.vue +188 -188
- package/docs/examples/table/pagination.vue +151 -151
- package/docs/examples/table/row-drag.vue +67 -67
- package/docs/examples/table/row-fixed.vue +61 -0
- package/docs/examples/table/single-selection.vue +64 -64
- package/docs/examples/table/sub-table-lazy.vue +97 -97
- package/docs/examples/table/sub-table.vue +103 -103
- package/docs/examples/table/tag.vue +43 -43
- package/docs/examples/table/tree-column.vue +119 -119
- package/docs/examples/table/tree-data.vue +141 -141
- package/docs/examples/table/tree-default-expand-all.vue +60 -60
- package/docs/examples/table/tree-lazy.vue +80 -80
- package/docs/examples/table/tree-set-selection.vue +75 -75
- package/docs/examples/table-panel/basic.vue +229 -229
- package/docs/examples/table-panel/batch-operations.vue +286 -286
- package/docs/examples/table-panel/button-visibility.vue +88 -88
- package/docs/examples/table-panel/card.vue +101 -101
- package/docs/examples/table-panel/column-filter.vue +116 -116
- package/docs/examples/table-panel/filter.vue +219 -219
- package/docs/examples/table-panel/get-selection.vue +111 -111
- package/docs/examples/table-panel/mask.vue +151 -151
- package/docs/examples/table-panel/model-value.vue +87 -87
- package/docs/examples/table-panel/multiple-selection.vue +243 -243
- package/docs/examples/table-panel/pagination.vue +133 -133
- package/docs/examples/table-panel/search-list.vue +207 -207
- package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
- package/docs/examples/table-panel/tree-parent-key.vue +67 -67
- package/docs/examples/tabs/basic.vue +98 -98
- package/docs/examples/time/base.vue +67 -67
- package/docs/examples/title/basic.vue +87 -87
- package/docs/examples/tree/accordion.vue +46 -46
- package/docs/examples/tree/basic.vue +50 -50
- package/docs/examples/tree/buttons.vue +53 -53
- package/docs/examples/tree/check-strictly.vue +53 -53
- package/docs/examples/tree/checkable.vue +52 -52
- package/docs/examples/tree/custom-keys.vue +39 -39
- package/docs/examples/tree/default-expanded.vue +52 -52
- package/docs/examples/tree/draggable.vue +29 -29
- package/docs/examples/tree/expand-on-click.vue +39 -39
- package/docs/examples/tree/flat-data.vue +20 -20
- package/docs/examples/tree/icon.vue +40 -40
- package/docs/examples/tree/load-data.vue +37 -37
- package/docs/examples/tree/methods.vue +74 -74
- package/docs/examples/tree/theme.vue +33 -33
- package/docs/examples/tree-select/basic.vue +47 -47
- package/docs/examples/upload/accept.vue +31 -31
- package/docs/examples/upload/basic.vue +12 -12
- package/docs/examples/upload/drag.vue +11 -11
- package/docs/examples/upload/image.vue +17 -17
- package/docs/examples/upload/limit.vue +20 -20
- package/docs/examples/upload/multiple.vue +17 -17
- package/docs/examples/upload/readonly.vue +17 -17
- package/docs/examples/utils/cipher.vue +160 -160
- package/docs/examples/utils/common.vue +153 -153
- package/docs/examples/utils/date.vue +56 -56
- package/docs/examples/utils/dom.vue +52 -52
- package/docs/examples/utils/is.vue +70 -70
- package/docs/examples/workflow/basic.vue +265 -265
- package/docs/examples/workflow-viewer/basic.vue +248 -248
- package/package.json +26 -26
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
|
+
感谢所有为这个项目做出贡献的开发者!
|
|
@@ -4,6 +4,10 @@ declare const JTable: {
|
|
|
4
4
|
type: StringConstructor;
|
|
5
5
|
default: string;
|
|
6
6
|
};
|
|
7
|
+
label: {
|
|
8
|
+
type: StringConstructor;
|
|
9
|
+
default: string;
|
|
10
|
+
};
|
|
7
11
|
modelValue: {
|
|
8
12
|
type: import('vue').PropType<Record<string, any>[]>;
|
|
9
13
|
default: () => never[];
|
|
@@ -116,6 +120,14 @@ declare const JTable: {
|
|
|
116
120
|
type: (StringConstructor | NumberConstructor)[];
|
|
117
121
|
default: undefined;
|
|
118
122
|
};
|
|
123
|
+
isRowFixed: {
|
|
124
|
+
type: BooleanConstructor;
|
|
125
|
+
default: boolean;
|
|
126
|
+
};
|
|
127
|
+
rowNum: {
|
|
128
|
+
type: NumberConstructor;
|
|
129
|
+
default: number;
|
|
130
|
+
};
|
|
119
131
|
highlightMode: {
|
|
120
132
|
type: import('vue').PropType<"cross" | "row" | "column" | "cell">;
|
|
121
133
|
default: string;
|
|
@@ -144,6 +156,10 @@ declare const JTable: {
|
|
|
144
156
|
type: import('vue').PropType<(record: Record<string, any>) => Promise<any[]>>;
|
|
145
157
|
default: null;
|
|
146
158
|
};
|
|
159
|
+
customMergeCell: {
|
|
160
|
+
type: import('vue').PropType<import('.').CustomMergeCellOption>;
|
|
161
|
+
default: null;
|
|
162
|
+
};
|
|
147
163
|
}>> & Readonly<{
|
|
148
164
|
"onUpdate:modelValue"?: ((value: Record<string, any>[]) => any) | undefined;
|
|
149
165
|
onChange?: ((data: {
|
|
@@ -202,8 +218,10 @@ declare const JTable: {
|
|
|
202
218
|
page: number;
|
|
203
219
|
}) => any;
|
|
204
220
|
}, import('vue').PublicProps, {
|
|
221
|
+
label: string;
|
|
205
222
|
id: string;
|
|
206
223
|
modelValue: Record<string, any>[];
|
|
224
|
+
rowNum: number;
|
|
207
225
|
isPage: boolean;
|
|
208
226
|
columns: import('.').ColumnSchemaConfig[];
|
|
209
227
|
columnFilter: string[];
|
|
@@ -238,6 +256,7 @@ declare const JTable: {
|
|
|
238
256
|
isAnimationAppear: boolean;
|
|
239
257
|
heightMode: "auto" | "full";
|
|
240
258
|
maxHeight: string | number;
|
|
259
|
+
isRowFixed: boolean;
|
|
241
260
|
highlightMode: "row" | "cross" | "column" | "cell";
|
|
242
261
|
editConfig: import('..').EditConfigType;
|
|
243
262
|
emptyTipText: string;
|
|
@@ -245,6 +264,7 @@ declare const JTable: {
|
|
|
245
264
|
isSubShowNumber: boolean;
|
|
246
265
|
subActions: import('..').ButtonCompType[];
|
|
247
266
|
loadChildren: (record: Record<string, any>) => Promise<any[]>;
|
|
267
|
+
customMergeCell: import('.').CustomMergeCellOption;
|
|
248
268
|
}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
|
|
249
269
|
tableContainer: HTMLDivElement;
|
|
250
270
|
}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
@@ -259,6 +279,10 @@ declare const JTable: {
|
|
|
259
279
|
type: StringConstructor;
|
|
260
280
|
default: string;
|
|
261
281
|
};
|
|
282
|
+
label: {
|
|
283
|
+
type: StringConstructor;
|
|
284
|
+
default: string;
|
|
285
|
+
};
|
|
262
286
|
modelValue: {
|
|
263
287
|
type: import('vue').PropType<Record<string, any>[]>;
|
|
264
288
|
default: () => never[];
|
|
@@ -371,6 +395,14 @@ declare const JTable: {
|
|
|
371
395
|
type: (StringConstructor | NumberConstructor)[];
|
|
372
396
|
default: undefined;
|
|
373
397
|
};
|
|
398
|
+
isRowFixed: {
|
|
399
|
+
type: BooleanConstructor;
|
|
400
|
+
default: boolean;
|
|
401
|
+
};
|
|
402
|
+
rowNum: {
|
|
403
|
+
type: NumberConstructor;
|
|
404
|
+
default: number;
|
|
405
|
+
};
|
|
374
406
|
highlightMode: {
|
|
375
407
|
type: import('vue').PropType<"cross" | "row" | "column" | "cell">;
|
|
376
408
|
default: string;
|
|
@@ -399,6 +431,10 @@ declare const JTable: {
|
|
|
399
431
|
type: import('vue').PropType<(record: Record<string, any>) => Promise<any[]>>;
|
|
400
432
|
default: null;
|
|
401
433
|
};
|
|
434
|
+
customMergeCell: {
|
|
435
|
+
type: import('vue').PropType<import('.').CustomMergeCellOption>;
|
|
436
|
+
default: null;
|
|
437
|
+
};
|
|
402
438
|
}>> & Readonly<{
|
|
403
439
|
"onUpdate:modelValue"?: ((value: Record<string, any>[]) => any) | undefined;
|
|
404
440
|
onChange?: ((data: {
|
|
@@ -432,8 +468,10 @@ declare const JTable: {
|
|
|
432
468
|
setSelection: (records: any[]) => void;
|
|
433
469
|
renderTable: () => void;
|
|
434
470
|
}, {}, {}, {}, {
|
|
471
|
+
label: string;
|
|
435
472
|
id: string;
|
|
436
473
|
modelValue: Record<string, any>[];
|
|
474
|
+
rowNum: number;
|
|
437
475
|
isPage: boolean;
|
|
438
476
|
columns: import('.').ColumnSchemaConfig[];
|
|
439
477
|
columnFilter: string[];
|
|
@@ -468,6 +506,7 @@ declare const JTable: {
|
|
|
468
506
|
isAnimationAppear: boolean;
|
|
469
507
|
heightMode: "auto" | "full";
|
|
470
508
|
maxHeight: string | number;
|
|
509
|
+
isRowFixed: boolean;
|
|
471
510
|
highlightMode: "row" | "cross" | "column" | "cell";
|
|
472
511
|
editConfig: import('..').EditConfigType;
|
|
473
512
|
emptyTipText: string;
|
|
@@ -475,6 +514,7 @@ declare const JTable: {
|
|
|
475
514
|
isSubShowNumber: boolean;
|
|
476
515
|
subActions: import('..').ButtonCompType[];
|
|
477
516
|
loadChildren: (record: Record<string, any>) => Promise<any[]>;
|
|
517
|
+
customMergeCell: import('.').CustomMergeCellOption;
|
|
478
518
|
}>;
|
|
479
519
|
__isFragment?: never;
|
|
480
520
|
__isTeleport?: never;
|
|
@@ -484,6 +524,10 @@ declare const JTable: {
|
|
|
484
524
|
type: StringConstructor;
|
|
485
525
|
default: string;
|
|
486
526
|
};
|
|
527
|
+
label: {
|
|
528
|
+
type: StringConstructor;
|
|
529
|
+
default: string;
|
|
530
|
+
};
|
|
487
531
|
modelValue: {
|
|
488
532
|
type: import('vue').PropType<Record<string, any>[]>;
|
|
489
533
|
default: () => never[];
|
|
@@ -596,6 +640,14 @@ declare const JTable: {
|
|
|
596
640
|
type: (StringConstructor | NumberConstructor)[];
|
|
597
641
|
default: undefined;
|
|
598
642
|
};
|
|
643
|
+
isRowFixed: {
|
|
644
|
+
type: BooleanConstructor;
|
|
645
|
+
default: boolean;
|
|
646
|
+
};
|
|
647
|
+
rowNum: {
|
|
648
|
+
type: NumberConstructor;
|
|
649
|
+
default: number;
|
|
650
|
+
};
|
|
599
651
|
highlightMode: {
|
|
600
652
|
type: import('vue').PropType<"cross" | "row" | "column" | "cell">;
|
|
601
653
|
default: string;
|
|
@@ -624,6 +676,10 @@ declare const JTable: {
|
|
|
624
676
|
type: import('vue').PropType<(record: Record<string, any>) => Promise<any[]>>;
|
|
625
677
|
default: null;
|
|
626
678
|
};
|
|
679
|
+
customMergeCell: {
|
|
680
|
+
type: import('vue').PropType<import('.').CustomMergeCellOption>;
|
|
681
|
+
default: null;
|
|
682
|
+
};
|
|
627
683
|
}>> & Readonly<{
|
|
628
684
|
"onUpdate:modelValue"?: ((value: Record<string, any>[]) => any) | undefined;
|
|
629
685
|
onChange?: ((data: {
|
|
@@ -682,8 +738,10 @@ declare const JTable: {
|
|
|
682
738
|
page: number;
|
|
683
739
|
}) => any;
|
|
684
740
|
}, string, {
|
|
741
|
+
label: string;
|
|
685
742
|
id: string;
|
|
686
743
|
modelValue: Record<string, any>[];
|
|
744
|
+
rowNum: number;
|
|
687
745
|
isPage: boolean;
|
|
688
746
|
columns: import('.').ColumnSchemaConfig[];
|
|
689
747
|
columnFilter: string[];
|
|
@@ -718,6 +776,7 @@ declare const JTable: {
|
|
|
718
776
|
isAnimationAppear: boolean;
|
|
719
777
|
heightMode: "auto" | "full";
|
|
720
778
|
maxHeight: string | number;
|
|
779
|
+
isRowFixed: boolean;
|
|
721
780
|
highlightMode: "row" | "cross" | "column" | "cell";
|
|
722
781
|
editConfig: import('..').EditConfigType;
|
|
723
782
|
emptyTipText: string;
|
|
@@ -725,6 +784,7 @@ declare const JTable: {
|
|
|
725
784
|
isSubShowNumber: boolean;
|
|
726
785
|
subActions: import('..').ButtonCompType[];
|
|
727
786
|
loadChildren: (record: Record<string, any>) => Promise<any[]>;
|
|
787
|
+
customMergeCell: import('.').CustomMergeCellOption;
|
|
728
788
|
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
|
|
729
789
|
install: (app: import('vue').App) => void;
|
|
730
790
|
};
|
|
@@ -1,4 +1,42 @@
|
|
|
1
1
|
import { BaseSchemaConfig, BaseCompConfig } from '../../comp/src/interface';
|
|
2
|
+
/**
|
|
3
|
+
* @zh 合并单元格配置类型
|
|
4
|
+
*/
|
|
5
|
+
export type MergeCellOption = boolean | ((v1: unknown, v2: unknown, info: {
|
|
6
|
+
source: {
|
|
7
|
+
col: number;
|
|
8
|
+
row: number;
|
|
9
|
+
};
|
|
10
|
+
target: {
|
|
11
|
+
col: number;
|
|
12
|
+
row: number;
|
|
13
|
+
};
|
|
14
|
+
table: any;
|
|
15
|
+
}) => boolean);
|
|
16
|
+
/**
|
|
17
|
+
* @zh 自定义合并单元格规则
|
|
18
|
+
*/
|
|
19
|
+
export interface CustomMergeCellRule {
|
|
20
|
+
/** 合并单元格内的文字 */
|
|
21
|
+
text?: string;
|
|
22
|
+
/** 合并的范围 */
|
|
23
|
+
range: {
|
|
24
|
+
start: {
|
|
25
|
+
col: number;
|
|
26
|
+
row: number;
|
|
27
|
+
};
|
|
28
|
+
end: {
|
|
29
|
+
col: number;
|
|
30
|
+
row: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/** 合并单元格的样式 */
|
|
34
|
+
style?: Record<string, any>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @zh 自定义合并单元格配置类型
|
|
38
|
+
*/
|
|
39
|
+
export type CustomMergeCellOption = CustomMergeCellRule[] | ((col: number, row: number, table: any) => CustomMergeCellRule | undefined);
|
|
2
40
|
export interface TableColumnConfig {
|
|
3
41
|
/**
|
|
4
42
|
* @zh 列的宽度
|
|
@@ -52,6 +90,10 @@ export interface TableColumnConfig {
|
|
|
52
90
|
* @zh 冻结列 left 左侧冻结 right 右侧冻结
|
|
53
91
|
*/
|
|
54
92
|
frozen?: 'left' | 'right';
|
|
93
|
+
/**
|
|
94
|
+
* @zh 合并单元格配置,为 true 时自动合并相邻相同值的单元格,也可传入自定义合并函数
|
|
95
|
+
*/
|
|
96
|
+
mergeCell?: MergeCellOption;
|
|
55
97
|
}
|
|
56
98
|
export type TableColumnCompConfig = TableColumnConfig & BaseCompConfig;
|
|
57
99
|
export interface TableColumnFilter {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnSchemaConfig } from './interface';
|
|
1
|
+
import { ColumnSchemaConfig, CustomMergeCellOption } from './interface';
|
|
2
2
|
import { ButtonCompType } from '../../buttons/src/interface';
|
|
3
3
|
import { EditConfigType } from '../../input-rows/src/interface';
|
|
4
4
|
import { PropType } from 'vue';
|
|
@@ -7,6 +7,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
7
7
|
type: StringConstructor;
|
|
8
8
|
default: string;
|
|
9
9
|
};
|
|
10
|
+
label: {
|
|
11
|
+
type: StringConstructor;
|
|
12
|
+
default: string;
|
|
13
|
+
};
|
|
10
14
|
/**
|
|
11
15
|
* @zh 输入值【作为表单的编辑表格使用】
|
|
12
16
|
* @vModel
|
|
@@ -198,6 +202,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
198
202
|
type: (StringConstructor | NumberConstructor)[];
|
|
199
203
|
default: undefined;
|
|
200
204
|
};
|
|
205
|
+
/**
|
|
206
|
+
* @zh 是否固定行数
|
|
207
|
+
*/
|
|
208
|
+
isRowFixed: {
|
|
209
|
+
type: BooleanConstructor;
|
|
210
|
+
default: boolean;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* @zh 固定行数,仅在 isRowFixed 为 true 时生效
|
|
214
|
+
*/
|
|
215
|
+
rowNum: {
|
|
216
|
+
type: NumberConstructor;
|
|
217
|
+
default: number;
|
|
218
|
+
};
|
|
201
219
|
/**
|
|
202
220
|
* @zh 高亮模式 cross 十字 row 行 column 列 cell 单元格
|
|
203
221
|
*/
|
|
@@ -247,6 +265,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
247
265
|
type: PropType<(record: Record<string, any>) => Promise<any[]>>;
|
|
248
266
|
default: null;
|
|
249
267
|
};
|
|
268
|
+
/**
|
|
269
|
+
* @zh 自定义合并单元格配置,支持回调函数或合并规则数组
|
|
270
|
+
*/
|
|
271
|
+
customMergeCell: {
|
|
272
|
+
type: PropType<CustomMergeCellOption>;
|
|
273
|
+
default: null;
|
|
274
|
+
};
|
|
250
275
|
}>, {
|
|
251
276
|
getInstance: () => any;
|
|
252
277
|
setRecords: (records: Record<string, any>[]) => void;
|
|
@@ -284,6 +309,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
284
309
|
type: StringConstructor;
|
|
285
310
|
default: string;
|
|
286
311
|
};
|
|
312
|
+
label: {
|
|
313
|
+
type: StringConstructor;
|
|
314
|
+
default: string;
|
|
315
|
+
};
|
|
287
316
|
/**
|
|
288
317
|
* @zh 输入值【作为表单的编辑表格使用】
|
|
289
318
|
* @vModel
|
|
@@ -475,6 +504,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
475
504
|
type: (StringConstructor | NumberConstructor)[];
|
|
476
505
|
default: undefined;
|
|
477
506
|
};
|
|
507
|
+
/**
|
|
508
|
+
* @zh 是否固定行数
|
|
509
|
+
*/
|
|
510
|
+
isRowFixed: {
|
|
511
|
+
type: BooleanConstructor;
|
|
512
|
+
default: boolean;
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* @zh 固定行数,仅在 isRowFixed 为 true 时生效
|
|
516
|
+
*/
|
|
517
|
+
rowNum: {
|
|
518
|
+
type: NumberConstructor;
|
|
519
|
+
default: number;
|
|
520
|
+
};
|
|
478
521
|
/**
|
|
479
522
|
* @zh 高亮模式 cross 十字 row 行 column 列 cell 单元格
|
|
480
523
|
*/
|
|
@@ -524,6 +567,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
524
567
|
type: PropType<(record: Record<string, any>) => Promise<any[]>>;
|
|
525
568
|
default: null;
|
|
526
569
|
};
|
|
570
|
+
/**
|
|
571
|
+
* @zh 自定义合并单元格配置,支持回调函数或合并规则数组
|
|
572
|
+
*/
|
|
573
|
+
customMergeCell: {
|
|
574
|
+
type: PropType<CustomMergeCellOption>;
|
|
575
|
+
default: null;
|
|
576
|
+
};
|
|
527
577
|
}>> & Readonly<{
|
|
528
578
|
"onUpdate:modelValue"?: ((value: Record<string, any>[]) => any) | undefined;
|
|
529
579
|
onChange?: ((data: {
|
|
@@ -550,8 +600,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
550
600
|
page: number;
|
|
551
601
|
}) => any) | undefined;
|
|
552
602
|
}>, {
|
|
603
|
+
label: string;
|
|
553
604
|
id: string;
|
|
554
605
|
modelValue: Record<string, any>[];
|
|
606
|
+
rowNum: number;
|
|
555
607
|
isPage: boolean;
|
|
556
608
|
columns: ColumnSchemaConfig[];
|
|
557
609
|
columnFilter: string[];
|
|
@@ -586,6 +638,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
586
638
|
isAnimationAppear: boolean;
|
|
587
639
|
heightMode: "auto" | "full";
|
|
588
640
|
maxHeight: string | number;
|
|
641
|
+
isRowFixed: boolean;
|
|
589
642
|
highlightMode: "row" | "cross" | "column" | "cell";
|
|
590
643
|
editConfig: EditConfigType;
|
|
591
644
|
emptyTipText: string;
|
|
@@ -593,6 +646,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
593
646
|
isSubShowNumber: boolean;
|
|
594
647
|
subActions: ButtonCompType[];
|
|
595
648
|
loadChildren: (record: Record<string, any>) => Promise<any[]>;
|
|
649
|
+
customMergeCell: CustomMergeCellOption;
|
|
596
650
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
597
651
|
tableContainer: HTMLDivElement;
|
|
598
652
|
}, HTMLDivElement>;
|