@a2simcode/ui 0.0.177 → 0.0.179
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/dialog-full/index.d.ts +15 -0
- package/dist/components/dialog-full/src/index.vue.d.ts +17 -0
- package/dist/components/layer/src/layer.vue.d.ts +2 -2
- package/dist/simcode-ui.es.js +29 -7
- 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/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 +72 -72
- 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 +26 -26
- 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/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/dialog-full.ts +6 -0
- package/docs/components/meta/echarts.ts +64 -64
- package/docs/components/meta/form-item.ts +50 -50
- package/docs/components/meta/form.ts +181 -181
- package/docs/components/meta/input-button.ts +165 -165
- package/docs/components/meta/input-cards.ts +112 -112
- package/docs/components/meta/input-code.ts +151 -151
- package/docs/components/meta/input-color.ts +243 -243
- package/docs/components/meta/input-layer.ts +366 -366
- package/docs/components/meta/input-rows.ts +119 -119
- package/docs/components/meta/layer-form.ts +56 -56
- package/docs/components/meta/layer.ts +1 -1
- package/docs/components/meta/map.ts +68 -68
- package/docs/components/meta/panel.ts +152 -152
- package/docs/components/meta/slider.ts +270 -270
- package/docs/components/meta/table-panel.ts +232 -232
- package/docs/components/meta/table.ts +391 -391
- 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 +219 -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 +236 -236
- package/docs/components/table.md +391 -391
- package/docs/components/tabs.md +26 -26
- package/docs/components/title.md +24 -24
- package/docs/components/tree.md +207 -207
- 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/danger-ghost.vue +17 -17
- package/docs/examples/button/disabled.vue +10 -10
- 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/type.vue +10 -10
- package/docs/examples/button-select/basic.vue +19 -19
- package/docs/examples/buttons/basic.vue +45 -45
- 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/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 +665 -665
- 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/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-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 +86 -86
- 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/custom-layout.vue +115 -115
- 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/link.vue +66 -66
- package/docs/examples/table/multiple.vue +188 -188
- package/docs/examples/table/pagination.vue +151 -151
- 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 +285 -285
- package/docs/examples/table-panel/button-visibility.vue +88 -88
- package/docs/examples/table-panel/filter.vue +219 -219
- package/docs/examples/table-panel/get-selection.vue +111 -111
- package/docs/examples/table-panel/multiple-selection.vue +243 -243
- package/docs/examples/table-panel/pagination.vue +133 -133
- 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/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 +23 -23
package/README.md
CHANGED
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
# SimCode UI
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
<h1>SimCode UI</h1>
|
|
5
|
-
<p>基于 Vue 3 + TypeScript 的现代化 UI 组件库</p>
|
|
6
|
-
</div>
|
|
7
|
-
|
|
8
|
-
## ✨ 特性
|
|
9
|
-
|
|
10
|
-
- 🚀 **现代化技术栈**: 基于 Vue 3 + TypeScript + Vite
|
|
11
|
-
- 📦 **开箱即用**: 提供完善的类型定义和文档
|
|
12
|
-
- 🎨 **精美设计**: 现代化的设计风格
|
|
13
|
-
- 🔧 **易于定制**: 支持主题定制
|
|
14
|
-
- ⚡️ **按需加载**: 支持 Tree Shaking
|
|
15
|
-
- 🧪 **完善测试**: 单元测试覆盖
|
|
16
|
-
|
|
17
|
-
## 📦 安装
|
|
18
|
-
|
|
19
|
-
使用 pnpm:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
pnpm add @a2simcode/ui
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
使用 npm:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npm install @a2simcode/ui
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
使用 yarn:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
yarn add @a2simcode/ui
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### 安装 Peer Dependencies
|
|
38
|
-
|
|
39
|
-
`@a2simcode/ui` 使用 peer dependencies 来避免重复打包依赖。**必须安装**以下依赖:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
pnpm add vue element-plus
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
根据你使用的组件,可能还需要安装以下**可选依赖**:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
# 如果使用表格组件
|
|
49
|
-
pnpm add @visactor/vtable @visactor/vtable-editors
|
|
50
|
-
|
|
51
|
-
# 如果使用图表组件
|
|
52
|
-
pnpm add echarts
|
|
53
|
-
|
|
54
|
-
# 如果使用代码编辑器组件
|
|
55
|
-
pnpm add codemirror @codemirror/autocomplete @codemirror/commands @codemirror/lang-javascript @codemirror/lang-json @codemirror/lang-sql @codemirror/lang-python @codemirror/lang-java @codemirror/lang-css @codemirror/lang-html @codemirror/lang-xml @codemirror/lang-markdown @codemirror/language @codemirror/state @codemirror/view
|
|
56
|
-
|
|
57
|
-
# 如果使用其他功能组件
|
|
58
|
-
pnpm add @iconify/vue @vueuse/core dayjs async-validator crypto-js sortablejs sql-formatter countup.js @bwip-js/browser @wangeditor/editor diagram-js diagram-js-direct-editing min-dom inherits tiny-svg min-dash
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
> **注意**: 由于 `@a2simcode/ui` 输出的是预打包的单文件,使用方的打包器可能无法自动识别 peer dependencies。请确保在使用相关组件前,已安装对应的 peer dependencies。
|
|
62
|
-
|
|
63
|
-
## 🔨 快速开始
|
|
64
|
-
|
|
65
|
-
### 完整引入
|
|
66
|
-
|
|
67
|
-
```typescript
|
|
68
|
-
import { createApp } from 'vue'
|
|
69
|
-
import App from './App.vue'
|
|
70
|
-
import SimCodeUI from '@a2simcode/ui'
|
|
71
|
-
import '@a2simcode/ui/dist/style.css'
|
|
72
|
-
|
|
73
|
-
const app = createApp(App)
|
|
74
|
-
app.use(SimCodeUI)
|
|
75
|
-
app.mount('#app')
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 按需引入
|
|
79
|
-
|
|
80
|
-
```vue
|
|
81
|
-
<template>
|
|
82
|
-
<j-button type="primary">按钮</j-button>
|
|
83
|
-
</template>
|
|
84
|
-
|
|
85
|
-
<script setup lang="ts">
|
|
86
|
-
import { JButton } from '@a2simcode/ui'
|
|
87
|
-
import '@a2simcode/ui/dist/style.css'
|
|
88
|
-
</script>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## 🎯 组件列表
|
|
92
|
-
|
|
93
|
-
- ✅ Button 按钮
|
|
94
|
-
- ✅ Input 输入框
|
|
95
|
-
- ✅ Radio 单选框
|
|
96
|
-
- 🚧 更多组件开发中...
|
|
97
|
-
|
|
98
|
-
## 💻 本地开发
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# 进入项目目录
|
|
102
|
-
cd simcode-ui
|
|
103
|
-
|
|
104
|
-
# 安装依赖
|
|
105
|
-
pnpm install
|
|
106
|
-
|
|
107
|
-
# 启动开发服务器
|
|
108
|
-
pnpm dev
|
|
109
|
-
|
|
110
|
-
# 构建组件库
|
|
111
|
-
pnpm build
|
|
112
|
-
|
|
113
|
-
# 运行测试
|
|
114
|
-
pnpm test
|
|
115
|
-
|
|
116
|
-
# 启动文档站点
|
|
117
|
-
pnpm docs:dev
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## 📁 项目结构
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
simcode-ui/
|
|
124
|
-
├── packages/ # 组件源码
|
|
125
|
-
│ ├── components/ # 组件
|
|
126
|
-
│ │ ├── button/ # 按钮组件
|
|
127
|
-
│ │ ├── input/ # 输入框组件
|
|
128
|
-
│ │ └── index.ts # 组件入口
|
|
129
|
-
│ └── theme/ # 主题样式
|
|
130
|
-
│ └── src/ # 样式源码 (Less)
|
|
131
|
-
├── examples/ # 组件预览
|
|
132
|
-
│ ├── App.vue # 预览应用
|
|
133
|
-
│ └── main.ts # 入口文件
|
|
134
|
-
├── docs/ # 文档
|
|
135
|
-
│ ├── .vitepress/ # VitePress 配置
|
|
136
|
-
│ ├── guide/ # 指南
|
|
137
|
-
│ └── components/ # 组件文档
|
|
138
|
-
├── __tests__/ # 测试文件
|
|
139
|
-
├── vite.config.ts # Vite 配置
|
|
140
|
-
├── vitest.config.ts # Vitest 配置
|
|
141
|
-
└── package.json # 项目配置
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## 🤝 贡献
|
|
145
|
-
|
|
146
|
-
欢迎提交 Issue 和 Pull Request!
|
|
147
|
-
|
|
148
|
-
## 📄 版权声明
|
|
149
|
-
|
|
150
|
-
Copyright © 2024 苏州极简搭信息技术有限公司. All rights reserved.
|
|
151
|
-
|
|
152
|
-
本软件及其相关文档为专有软件,受版权法保护。未经版权所有者明确书面许可,不得以任何形式或方式(电子、机械、复印、录制或其他方式)复制、分发、传播或使用本软件的任何部分。
|
|
153
|
-
|
|
154
|
-
## 🙏 致谢
|
|
155
|
-
|
|
156
|
-
感谢所有为这个项目做出贡献的开发者!
|
|
1
|
+
# SimCode UI
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
<h1>SimCode UI</h1>
|
|
5
|
+
<p>基于 Vue 3 + TypeScript 的现代化 UI 组件库</p>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
## ✨ 特性
|
|
9
|
+
|
|
10
|
+
- 🚀 **现代化技术栈**: 基于 Vue 3 + TypeScript + Vite
|
|
11
|
+
- 📦 **开箱即用**: 提供完善的类型定义和文档
|
|
12
|
+
- 🎨 **精美设计**: 现代化的设计风格
|
|
13
|
+
- 🔧 **易于定制**: 支持主题定制
|
|
14
|
+
- ⚡️ **按需加载**: 支持 Tree Shaking
|
|
15
|
+
- 🧪 **完善测试**: 单元测试覆盖
|
|
16
|
+
|
|
17
|
+
## 📦 安装
|
|
18
|
+
|
|
19
|
+
使用 pnpm:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm add @a2simcode/ui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
使用 npm:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @a2simcode/ui
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
使用 yarn:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
yarn add @a2simcode/ui
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 安装 Peer Dependencies
|
|
38
|
+
|
|
39
|
+
`@a2simcode/ui` 使用 peer dependencies 来避免重复打包依赖。**必须安装**以下依赖:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pnpm add vue element-plus
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
根据你使用的组件,可能还需要安装以下**可选依赖**:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# 如果使用表格组件
|
|
49
|
+
pnpm add @visactor/vtable @visactor/vtable-editors
|
|
50
|
+
|
|
51
|
+
# 如果使用图表组件
|
|
52
|
+
pnpm add echarts
|
|
53
|
+
|
|
54
|
+
# 如果使用代码编辑器组件
|
|
55
|
+
pnpm add codemirror @codemirror/autocomplete @codemirror/commands @codemirror/lang-javascript @codemirror/lang-json @codemirror/lang-sql @codemirror/lang-python @codemirror/lang-java @codemirror/lang-css @codemirror/lang-html @codemirror/lang-xml @codemirror/lang-markdown @codemirror/language @codemirror/state @codemirror/view
|
|
56
|
+
|
|
57
|
+
# 如果使用其他功能组件
|
|
58
|
+
pnpm add @iconify/vue @vueuse/core dayjs async-validator crypto-js sortablejs sql-formatter countup.js @bwip-js/browser @wangeditor/editor diagram-js diagram-js-direct-editing min-dom inherits tiny-svg min-dash
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
> **注意**: 由于 `@a2simcode/ui` 输出的是预打包的单文件,使用方的打包器可能无法自动识别 peer dependencies。请确保在使用相关组件前,已安装对应的 peer dependencies。
|
|
62
|
+
|
|
63
|
+
## 🔨 快速开始
|
|
64
|
+
|
|
65
|
+
### 完整引入
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { createApp } from 'vue'
|
|
69
|
+
import App from './App.vue'
|
|
70
|
+
import SimCodeUI from '@a2simcode/ui'
|
|
71
|
+
import '@a2simcode/ui/dist/style.css'
|
|
72
|
+
|
|
73
|
+
const app = createApp(App)
|
|
74
|
+
app.use(SimCodeUI)
|
|
75
|
+
app.mount('#app')
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 按需引入
|
|
79
|
+
|
|
80
|
+
```vue
|
|
81
|
+
<template>
|
|
82
|
+
<j-button type="primary">按钮</j-button>
|
|
83
|
+
</template>
|
|
84
|
+
|
|
85
|
+
<script setup lang="ts">
|
|
86
|
+
import { JButton } from '@a2simcode/ui'
|
|
87
|
+
import '@a2simcode/ui/dist/style.css'
|
|
88
|
+
</script>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 🎯 组件列表
|
|
92
|
+
|
|
93
|
+
- ✅ Button 按钮
|
|
94
|
+
- ✅ Input 输入框
|
|
95
|
+
- ✅ Radio 单选框
|
|
96
|
+
- 🚧 更多组件开发中...
|
|
97
|
+
|
|
98
|
+
## 💻 本地开发
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# 进入项目目录
|
|
102
|
+
cd simcode-ui
|
|
103
|
+
|
|
104
|
+
# 安装依赖
|
|
105
|
+
pnpm install
|
|
106
|
+
|
|
107
|
+
# 启动开发服务器
|
|
108
|
+
pnpm dev
|
|
109
|
+
|
|
110
|
+
# 构建组件库
|
|
111
|
+
pnpm build
|
|
112
|
+
|
|
113
|
+
# 运行测试
|
|
114
|
+
pnpm test
|
|
115
|
+
|
|
116
|
+
# 启动文档站点
|
|
117
|
+
pnpm docs:dev
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 📁 项目结构
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
simcode-ui/
|
|
124
|
+
├── packages/ # 组件源码
|
|
125
|
+
│ ├── components/ # 组件
|
|
126
|
+
│ │ ├── button/ # 按钮组件
|
|
127
|
+
│ │ ├── input/ # 输入框组件
|
|
128
|
+
│ │ └── index.ts # 组件入口
|
|
129
|
+
│ └── theme/ # 主题样式
|
|
130
|
+
│ └── src/ # 样式源码 (Less)
|
|
131
|
+
├── examples/ # 组件预览
|
|
132
|
+
│ ├── App.vue # 预览应用
|
|
133
|
+
│ └── main.ts # 入口文件
|
|
134
|
+
├── docs/ # 文档
|
|
135
|
+
│ ├── .vitepress/ # VitePress 配置
|
|
136
|
+
│ ├── guide/ # 指南
|
|
137
|
+
│ └── components/ # 组件文档
|
|
138
|
+
├── __tests__/ # 测试文件
|
|
139
|
+
├── vite.config.ts # Vite 配置
|
|
140
|
+
├── vitest.config.ts # Vitest 配置
|
|
141
|
+
└── package.json # 项目配置
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 🤝 贡献
|
|
145
|
+
|
|
146
|
+
欢迎提交 Issue 和 Pull Request!
|
|
147
|
+
|
|
148
|
+
## 📄 版权声明
|
|
149
|
+
|
|
150
|
+
Copyright © 2024 苏州极简搭信息技术有限公司. All rights reserved.
|
|
151
|
+
|
|
152
|
+
本软件及其相关文档为专有软件,受版权法保护。未经版权所有者明确书面许可,不得以任何形式或方式(电子、机械、复印、录制或其他方式)复制、分发、传播或使用本软件的任何部分。
|
|
153
|
+
|
|
154
|
+
## 🙏 致谢
|
|
155
|
+
|
|
156
|
+
感谢所有为这个项目做出贡献的开发者!
|
|
@@ -19,6 +19,10 @@ export declare const JDialogFull: {
|
|
|
19
19
|
type: BooleanConstructor;
|
|
20
20
|
default: boolean;
|
|
21
21
|
};
|
|
22
|
+
hasHeader: {
|
|
23
|
+
type: BooleanConstructor;
|
|
24
|
+
default: boolean;
|
|
25
|
+
};
|
|
22
26
|
btnText: {
|
|
23
27
|
type: StringConstructor;
|
|
24
28
|
default: string;
|
|
@@ -94,6 +98,7 @@ export declare const JDialogFull: {
|
|
|
94
98
|
btnText: string;
|
|
95
99
|
destroyOnClose: boolean;
|
|
96
100
|
hasSaveBtn: boolean;
|
|
101
|
+
hasHeader: boolean;
|
|
97
102
|
visible: boolean;
|
|
98
103
|
subtitle: Function;
|
|
99
104
|
showCloseBtn: boolean;
|
|
@@ -125,6 +130,10 @@ export declare const JDialogFull: {
|
|
|
125
130
|
type: BooleanConstructor;
|
|
126
131
|
default: boolean;
|
|
127
132
|
};
|
|
133
|
+
hasHeader: {
|
|
134
|
+
type: BooleanConstructor;
|
|
135
|
+
default: boolean;
|
|
136
|
+
};
|
|
128
137
|
btnText: {
|
|
129
138
|
type: StringConstructor;
|
|
130
139
|
default: string;
|
|
@@ -194,6 +203,7 @@ export declare const JDialogFull: {
|
|
|
194
203
|
btnText: string;
|
|
195
204
|
destroyOnClose: boolean;
|
|
196
205
|
hasSaveBtn: boolean;
|
|
206
|
+
hasHeader: boolean;
|
|
197
207
|
visible: boolean;
|
|
198
208
|
subtitle: Function;
|
|
199
209
|
showCloseBtn: boolean;
|
|
@@ -222,6 +232,10 @@ export declare const JDialogFull: {
|
|
|
222
232
|
type: BooleanConstructor;
|
|
223
233
|
default: boolean;
|
|
224
234
|
};
|
|
235
|
+
hasHeader: {
|
|
236
|
+
type: BooleanConstructor;
|
|
237
|
+
default: boolean;
|
|
238
|
+
};
|
|
225
239
|
btnText: {
|
|
226
240
|
type: StringConstructor;
|
|
227
241
|
default: string;
|
|
@@ -297,6 +311,7 @@ export declare const JDialogFull: {
|
|
|
297
311
|
btnText: string;
|
|
298
312
|
destroyOnClose: boolean;
|
|
299
313
|
hasSaveBtn: boolean;
|
|
314
|
+
hasHeader: boolean;
|
|
300
315
|
visible: boolean;
|
|
301
316
|
subtitle: Function;
|
|
302
317
|
showCloseBtn: boolean;
|
|
@@ -48,6 +48,14 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
48
48
|
type: BooleanConstructor;
|
|
49
49
|
default: boolean;
|
|
50
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* @zh 是否有头部
|
|
53
|
+
* @defaultValue true
|
|
54
|
+
*/
|
|
55
|
+
hasHeader: {
|
|
56
|
+
type: BooleanConstructor;
|
|
57
|
+
default: boolean;
|
|
58
|
+
};
|
|
51
59
|
/**
|
|
52
60
|
* @zh 确定按钮文字
|
|
53
61
|
*/
|
|
@@ -176,6 +184,14 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
176
184
|
type: BooleanConstructor;
|
|
177
185
|
default: boolean;
|
|
178
186
|
};
|
|
187
|
+
/**
|
|
188
|
+
* @zh 是否有头部
|
|
189
|
+
* @defaultValue true
|
|
190
|
+
*/
|
|
191
|
+
hasHeader: {
|
|
192
|
+
type: BooleanConstructor;
|
|
193
|
+
default: boolean;
|
|
194
|
+
};
|
|
179
195
|
/**
|
|
180
196
|
* @zh 确定按钮文字
|
|
181
197
|
*/
|
|
@@ -273,6 +289,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
273
289
|
btnText: string;
|
|
274
290
|
destroyOnClose: boolean;
|
|
275
291
|
hasSaveBtn: boolean;
|
|
292
|
+
hasHeader: boolean;
|
|
276
293
|
visible: boolean;
|
|
277
294
|
subtitle: Function;
|
|
278
295
|
showCloseBtn: boolean;
|
|
@@ -60,7 +60,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
60
60
|
default: () => never[];
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
63
|
-
* @zh
|
|
63
|
+
* @zh 是否有头部
|
|
64
64
|
* @defaultValue true
|
|
65
65
|
*/
|
|
66
66
|
hasHeader: {
|
|
@@ -175,7 +175,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
175
175
|
default: () => never[];
|
|
176
176
|
};
|
|
177
177
|
/**
|
|
178
|
-
* @zh
|
|
178
|
+
* @zh 是否有头部
|
|
179
179
|
* @defaultValue true
|
|
180
180
|
*/
|
|
181
181
|
hasHeader: {
|
package/dist/simcode-ui.es.js
CHANGED
|
@@ -1799,12 +1799,20 @@ var Ah = xe(Pc), Mh = /* @__PURE__ */ pe({
|
|
|
1799
1799
|
const l = $("j-button"), c = $("el-space"), s = $("el-dropdown");
|
|
1800
1800
|
return k(), V(c, { size: e.isLink ? 0 : 8 }, {
|
|
1801
1801
|
default: J(() => [(k(!0), L(Se, null, Oe(n.value, (d, f) => (k(), L("div", Ve({ key: f }, { ref_for: !0 }, i.$attrs), [(k(!0), L(Se, null, Oe(d, (u, h) => (k(), L(Se, { key: h }, [u.children?.length && u.children?.length > 0 ? (k(), V(s, { key: 0 }, {
|
|
1802
|
-
dropdown: J(() => [q(c, {
|
|
1802
|
+
dropdown: J(() => [q(c, {
|
|
1803
|
+
direction: "vertical",
|
|
1804
|
+
fill: !0
|
|
1805
|
+
}, {
|
|
1803
1806
|
default: J(() => [(k(!0), L(Se, null, Oe(u.children || [], (p) => (k(), V(l, Ve({ key: p.id }, { ref_for: !0 }, p.config, {
|
|
1807
|
+
block: "",
|
|
1804
1808
|
type: "text",
|
|
1805
1809
|
label: p.label,
|
|
1806
1810
|
size: e.size,
|
|
1807
|
-
onClick: $t((g) => o(p), ["stop"])
|
|
1811
|
+
onClick: $t((g) => o(p), ["stop"]),
|
|
1812
|
+
style: {
|
|
1813
|
+
"text-align": "left",
|
|
1814
|
+
"justify-content": "flex-start"
|
|
1815
|
+
}
|
|
1808
1816
|
}), null, 16, [
|
|
1809
1817
|
"label",
|
|
1810
1818
|
"size",
|
|
@@ -7227,7 +7235,10 @@ var Dp = { class: "j-table-footer" }, $p = {
|
|
|
7227
7235
|
]);
|
|
7228
7236
|
};
|
|
7229
7237
|
}
|
|
7230
|
-
}), Xp = qp, Zp = xe(Xp), Qp = ["element-loading-text"], eg = {
|
|
7238
|
+
}), Xp = qp, Zp = xe(Xp), Qp = ["element-loading-text"], eg = {
|
|
7239
|
+
key: 0,
|
|
7240
|
+
class: "j-dialog-full-header"
|
|
7241
|
+
}, tg = { class: "j-dialog-full-header-left" }, ng = ["src"], ag = { class: "j-dialog-full-title-text" }, og = { style: {
|
|
7231
7242
|
height: "28px",
|
|
7232
7243
|
"line-height": "32px",
|
|
7233
7244
|
"margin-left": "8px"
|
|
@@ -7252,6 +7263,10 @@ var Dp = { class: "j-table-footer" }, $p = {
|
|
|
7252
7263
|
type: Boolean,
|
|
7253
7264
|
default: !0
|
|
7254
7265
|
},
|
|
7266
|
+
hasHeader: {
|
|
7267
|
+
type: Boolean,
|
|
7268
|
+
default: !0
|
|
7269
|
+
},
|
|
7255
7270
|
btnText: {
|
|
7256
7271
|
type: String,
|
|
7257
7272
|
default: "保存"
|
|
@@ -7372,7 +7387,7 @@ var Dp = { class: "j-table-footer" }, $p = {
|
|
|
7372
7387
|
default: J(() => [zn((k(), L("div", {
|
|
7373
7388
|
class: "j-block j-dialog-full-window",
|
|
7374
7389
|
"element-loading-text": U(r)(s.value)
|
|
7375
|
-
}, [
|
|
7390
|
+
}, [e.hasHeader ? (k(), L("div", eg, [
|
|
7376
7391
|
B("div", tg, [
|
|
7377
7392
|
U(i) ? (k(), L("img", {
|
|
7378
7393
|
key: 0,
|
|
@@ -7453,7 +7468,14 @@ var Dp = { class: "j-table-footer" }, $p = {
|
|
|
7453
7468
|
]),
|
|
7454
7469
|
_: 1
|
|
7455
7470
|
})])
|
|
7456
|
-
])
|
|
7471
|
+
])) : e.showCloseBtn ? (k(), V(j, {
|
|
7472
|
+
key: 1,
|
|
7473
|
+
type: "primary",
|
|
7474
|
+
icon: "mdi:close",
|
|
7475
|
+
shape: "circle",
|
|
7476
|
+
onClick: b,
|
|
7477
|
+
class: "j-fixed-close"
|
|
7478
|
+
})) : ee("", !0), B("div", rg, [Ge(A.$slots, "default")])], 8, Qp)), [[se, c.value]])]),
|
|
7457
7479
|
_: 3
|
|
7458
7480
|
}, 8, ["modelValue", "destroy-on-close"]);
|
|
7459
7481
|
};
|
|
@@ -8853,7 +8875,7 @@ var Dp = { class: "j-table-footer" }, $p = {
|
|
|
8853
8875
|
const n = e.__vccOpts || e;
|
|
8854
8876
|
for (const [a, o] of t) n[a] = o;
|
|
8855
8877
|
return n;
|
|
8856
|
-
}, Qg = /* @__PURE__ */ zc(Zg, [["__scopeId", "data-v-
|
|
8878
|
+
}, Qg = /* @__PURE__ */ zc(Zg, [["__scopeId", "data-v-69ad659b"]]), ev = xe(Qg), tv = ["innerHTML"], nv = {
|
|
8857
8879
|
key: 1,
|
|
8858
8880
|
class: "j-barcode-error"
|
|
8859
8881
|
}, av = /* @__PURE__ */ pe({
|
|
@@ -14526,7 +14548,7 @@ var $c = ({ data: e, actions: t, utils: n, inputParams: a, notRunActions: o }) =
|
|
|
14526
14548
|
style: le(l.value)
|
|
14527
14549
|
}, null, 4)]));
|
|
14528
14550
|
}
|
|
14529
|
-
}), r0 = /* @__PURE__ */ zc(i0, [["__scopeId", "data-v-
|
|
14551
|
+
}), r0 = /* @__PURE__ */ zc(i0, [["__scopeId", "data-v-d513e01b"]]), l0 = xe(r0), s0 = {
|
|
14530
14552
|
key: 0,
|
|
14531
14553
|
class: "j-map-loading"
|
|
14532
14554
|
}, c0 = /* @__PURE__ */ pe({
|