@a2simcode/ui 0.0.54 → 0.0.56
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 +43 -43
- package/.cursor/skills/ui-component-helper/SKILL.md +81 -81
- package/LICENSE +53 -53
- package/README.md +156 -156
- package/dist/components/index.d.ts +2 -1
- package/dist/components/input-cards/index.d.ts +189 -0
- package/dist/components/input-cards/src/input-cards.vue.d.ts +142 -0
- package/dist/components/input-cards/src/interface.d.ts +29 -0
- package/dist/components/table/src/interface.d.ts +4 -0
- package/dist/simcode-ui.es.js +3524 -3305
- 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/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 +27 -27
- 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-cards.md +27 -0
- 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/buttons.ts +56 -56
- package/docs/components/meta/comp.ts +224 -224
- package/docs/components/meta/dynamic-layer.ts +99 -99
- package/docs/components/meta/echarts.ts +64 -64
- package/docs/components/meta/form-item.ts +50 -50
- package/docs/components/meta/form.ts +160 -160
- package/docs/components/meta/guid.ts +42 -42
- package/docs/components/meta/input-cards.ts +112 -0
- package/docs/components/meta/input-color.ts +243 -243
- package/docs/components/meta/input-rows.ts +113 -113
- package/docs/components/meta/layer-form.ts +56 -56
- package/docs/components/meta/map.ts +68 -68
- package/docs/components/meta/number.ts +296 -296
- package/docs/components/meta/page.ts +67 -67
- package/docs/components/meta/panel.ts +83 -83
- package/docs/components/meta/radio.ts +55 -55
- package/docs/components/meta/slider.ts +270 -270
- package/docs/components/meta/table-panel.ts +154 -154
- package/docs/components/meta/table.ts +328 -328
- package/docs/components/meta/tabs.ts +136 -136
- package/docs/components/meta/tree-select.ts +199 -112
- package/docs/components/meta/workflow-viewer.ts +55 -55
- package/docs/components/meta/workflow.ts +113 -113
- package/docs/components/number.md +124 -124
- package/docs/components/page.md +42 -42
- 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 +199 -199
- package/docs/components/table.md +202 -202
- 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 +9 -9
- 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 +54 -54
- package/docs/examples/count-up/basic.vue +89 -89
- package/docs/examples/data-panel/basic.vue +110 -110
- 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 +242 -242
- 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 +82 -0
- 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 +69 -69
- 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/init.vue +87 -87
- 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 +32 -32
- 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/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/editable.vue +261 -261
- 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/multiple.vue +178 -178
- package/docs/examples/table/pagination.vue +151 -151
- package/docs/examples/table/single-selection.vue +64 -64
- package/docs/examples/table/tree-column.vue +119 -119
- package/docs/examples/table/tree-data.vue +141 -141
- package/docs/examples/table-panel/basic.vue +228 -228
- package/docs/examples/table-panel/batch-operations.vue +285 -285
- package/docs/examples/table-panel/filter.vue +209 -209
- package/docs/examples/table-panel/multiple-selection.vue +243 -243
- package/docs/examples/table-panel/pagination.vue +133 -133
- package/docs/examples/tabs/basic.vue +98 -98
- package/docs/examples/title/basic.vue +80 -80
- 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/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
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
# Drawer 抽屉
|
|
2
|
-
|
|
3
|
-
抽屉组件,从屏幕边缘滑出的浮层面板。
|
|
4
|
-
|
|
5
|
-
## 基础用法
|
|
6
|
-
|
|
7
|
-
最简单的用法。
|
|
8
|
-
|
|
9
|
-
<Demo :source-code="drawerBasicCode">
|
|
10
|
-
<template #source>
|
|
11
|
-
<drawer-basic />
|
|
12
|
-
</template>
|
|
13
|
-
<template #description>
|
|
14
|
-
基础的抽屉,默认从右侧滑出。使用 `v-model:visible` 控制显示隐藏。
|
|
15
|
-
</template>
|
|
16
|
-
</Demo>
|
|
17
|
-
|
|
18
|
-
## 打开方向
|
|
19
|
-
|
|
20
|
-
抽屉可以从四个方向打开。
|
|
21
|
-
|
|
22
|
-
<Demo :source-code="drawerDirectionCode">
|
|
23
|
-
<template #source>
|
|
24
|
-
<drawer-direction />
|
|
25
|
-
</template>
|
|
26
|
-
<template #description>
|
|
27
|
-
通过 `direction` 属性可以设置抽屉的打开方向,支持 `rtl`(右到左)、`ltr`(左到右)、`ttb`(上到下)、`btt`(下到上)。
|
|
28
|
-
</template>
|
|
29
|
-
</Demo>
|
|
30
|
-
|
|
31
|
-
## 不同尺寸
|
|
32
|
-
|
|
33
|
-
通过 `width` 和 `height` 属性可以设置抽屉的尺寸。
|
|
34
|
-
|
|
35
|
-
<Demo :source-code="drawerSizeCode">
|
|
36
|
-
<template #source>
|
|
37
|
-
<drawer-size />
|
|
38
|
-
</template>
|
|
39
|
-
<template #description>
|
|
40
|
-
支持自定义抽屉的尺寸。左右打开时使用 `width` 属性(单位:像素),上下打开时使用 `height` 属性(单位:像素)。
|
|
41
|
-
</template>
|
|
42
|
-
</Demo>
|
|
43
|
-
|
|
44
|
-
## 自定义按钮
|
|
45
|
-
|
|
46
|
-
通过 `buttons` 属性可以自定义底部按钮。
|
|
47
|
-
|
|
48
|
-
<Demo :source-code="drawerCustomButtonsCode">
|
|
49
|
-
<template #source>
|
|
50
|
-
<drawer-custom-buttons />
|
|
51
|
-
</template>
|
|
52
|
-
<template #description>
|
|
53
|
-
使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。
|
|
54
|
-
</template>
|
|
55
|
-
</Demo>
|
|
56
|
-
|
|
57
|
-
## 无底部按钮
|
|
58
|
-
|
|
59
|
-
设置 `hasBtns` 为 `false` 可以隐藏底部按钮。
|
|
60
|
-
|
|
61
|
-
<Demo :source-code="drawerNoButtonsCode">
|
|
62
|
-
<template #source>
|
|
63
|
-
<drawer-no-buttons />
|
|
64
|
-
</template>
|
|
65
|
-
<template #description>
|
|
66
|
-
适用于只展示信息,不需要操作按钮的场景。
|
|
67
|
-
</template>
|
|
68
|
-
</Demo>
|
|
69
|
-
|
|
70
|
-
## 遮罩层配置
|
|
71
|
-
|
|
72
|
-
可以配置遮罩层的显示。
|
|
73
|
-
|
|
74
|
-
<Demo :source-code="drawerMaskCode">
|
|
75
|
-
<template #source>
|
|
76
|
-
<drawer-mask />
|
|
77
|
-
</template>
|
|
78
|
-
<template #description>
|
|
79
|
-
设置 `mask` 为 `false` 可以取消遮罩层。
|
|
80
|
-
</template>
|
|
81
|
-
</Demo>
|
|
82
|
-
|
|
83
|
-
## API
|
|
84
|
-
|
|
85
|
-
### 属性
|
|
86
|
-
|
|
87
|
-
<ApiTable :data="drawerApi" componentName="drawer" />
|
|
88
|
-
|
|
89
|
-
### 事件
|
|
90
|
-
|
|
91
|
-
| 事件名 | 说明 | 回调参数 |
|
|
92
|
-
| ----------------- | ---------------------------- | ------------------------------------------------ |
|
|
93
|
-
| update:visible | 抽屉显示状态变化时触发 | `(visible: boolean)` |
|
|
94
|
-
| update:stepActive | 步骤变化时触发 | `(stepActive: number)` |
|
|
95
|
-
| cancel | 点击取消按钮或关闭按钮时触发 | - |
|
|
96
|
-
| ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
|
|
97
|
-
| closed | 抽屉关闭动画结束后触发 | - |
|
|
98
|
-
|
|
99
|
-
### 插槽
|
|
100
|
-
|
|
101
|
-
| 插槽名 | 说明 |
|
|
102
|
-
| ------- | ------------ |
|
|
103
|
-
| default | 抽屉内容区域 |
|
|
104
|
-
|
|
105
|
-
### 方法
|
|
106
|
-
|
|
107
|
-
| 方法名 | 说明 | 参数 |
|
|
108
|
-
| ----------- | ------------ | ----------------- |
|
|
109
|
-
| showLoading | 显示加载状态 | `(text?: string)` |
|
|
110
|
-
| hideLoading | 隐藏加载状态 | - |
|
|
111
|
-
|
|
112
|
-
<script setup>
|
|
113
|
-
import DrawerBasic from '../examples/drawer/basic.vue'
|
|
114
|
-
import DrawerDirection from '../examples/drawer/direction.vue'
|
|
115
|
-
import DrawerSize from '../examples/drawer/size.vue'
|
|
116
|
-
import DrawerCustomButtons from '../examples/drawer/custom-buttons.vue'
|
|
117
|
-
import DrawerNoButtons from '../examples/drawer/no-buttons.vue'
|
|
118
|
-
import DrawerMask from '../examples/drawer/mask.vue'
|
|
119
|
-
import drawerApi from './meta/drawer'
|
|
120
|
-
|
|
121
|
-
import drawerBasicCode from '../examples/drawer/basic.vue?raw'
|
|
122
|
-
import drawerDirectionCode from '../examples/drawer/direction.vue?raw'
|
|
123
|
-
import drawerSizeCode from '../examples/drawer/size.vue?raw'
|
|
124
|
-
import drawerCustomButtonsCode from '../examples/drawer/custom-buttons.vue?raw'
|
|
125
|
-
import drawerNoButtonsCode from '../examples/drawer/no-buttons.vue?raw'
|
|
126
|
-
import drawerMaskCode from '../examples/drawer/mask.vue?raw'
|
|
127
|
-
</script>
|
|
1
|
+
# Drawer 抽屉
|
|
2
|
+
|
|
3
|
+
抽屉组件,从屏幕边缘滑出的浮层面板。
|
|
4
|
+
|
|
5
|
+
## 基础用法
|
|
6
|
+
|
|
7
|
+
最简单的用法。
|
|
8
|
+
|
|
9
|
+
<Demo :source-code="drawerBasicCode">
|
|
10
|
+
<template #source>
|
|
11
|
+
<drawer-basic />
|
|
12
|
+
</template>
|
|
13
|
+
<template #description>
|
|
14
|
+
基础的抽屉,默认从右侧滑出。使用 `v-model:visible` 控制显示隐藏。
|
|
15
|
+
</template>
|
|
16
|
+
</Demo>
|
|
17
|
+
|
|
18
|
+
## 打开方向
|
|
19
|
+
|
|
20
|
+
抽屉可以从四个方向打开。
|
|
21
|
+
|
|
22
|
+
<Demo :source-code="drawerDirectionCode">
|
|
23
|
+
<template #source>
|
|
24
|
+
<drawer-direction />
|
|
25
|
+
</template>
|
|
26
|
+
<template #description>
|
|
27
|
+
通过 `direction` 属性可以设置抽屉的打开方向,支持 `rtl`(右到左)、`ltr`(左到右)、`ttb`(上到下)、`btt`(下到上)。
|
|
28
|
+
</template>
|
|
29
|
+
</Demo>
|
|
30
|
+
|
|
31
|
+
## 不同尺寸
|
|
32
|
+
|
|
33
|
+
通过 `width` 和 `height` 属性可以设置抽屉的尺寸。
|
|
34
|
+
|
|
35
|
+
<Demo :source-code="drawerSizeCode">
|
|
36
|
+
<template #source>
|
|
37
|
+
<drawer-size />
|
|
38
|
+
</template>
|
|
39
|
+
<template #description>
|
|
40
|
+
支持自定义抽屉的尺寸。左右打开时使用 `width` 属性(单位:像素),上下打开时使用 `height` 属性(单位:像素)。
|
|
41
|
+
</template>
|
|
42
|
+
</Demo>
|
|
43
|
+
|
|
44
|
+
## 自定义按钮
|
|
45
|
+
|
|
46
|
+
通过 `buttons` 属性可以自定义底部按钮。
|
|
47
|
+
|
|
48
|
+
<Demo :source-code="drawerCustomButtonsCode">
|
|
49
|
+
<template #source>
|
|
50
|
+
<drawer-custom-buttons />
|
|
51
|
+
</template>
|
|
52
|
+
<template #description>
|
|
53
|
+
使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。
|
|
54
|
+
</template>
|
|
55
|
+
</Demo>
|
|
56
|
+
|
|
57
|
+
## 无底部按钮
|
|
58
|
+
|
|
59
|
+
设置 `hasBtns` 为 `false` 可以隐藏底部按钮。
|
|
60
|
+
|
|
61
|
+
<Demo :source-code="drawerNoButtonsCode">
|
|
62
|
+
<template #source>
|
|
63
|
+
<drawer-no-buttons />
|
|
64
|
+
</template>
|
|
65
|
+
<template #description>
|
|
66
|
+
适用于只展示信息,不需要操作按钮的场景。
|
|
67
|
+
</template>
|
|
68
|
+
</Demo>
|
|
69
|
+
|
|
70
|
+
## 遮罩层配置
|
|
71
|
+
|
|
72
|
+
可以配置遮罩层的显示。
|
|
73
|
+
|
|
74
|
+
<Demo :source-code="drawerMaskCode">
|
|
75
|
+
<template #source>
|
|
76
|
+
<drawer-mask />
|
|
77
|
+
</template>
|
|
78
|
+
<template #description>
|
|
79
|
+
设置 `mask` 为 `false` 可以取消遮罩层。
|
|
80
|
+
</template>
|
|
81
|
+
</Demo>
|
|
82
|
+
|
|
83
|
+
## API
|
|
84
|
+
|
|
85
|
+
### 属性
|
|
86
|
+
|
|
87
|
+
<ApiTable :data="drawerApi" componentName="drawer" />
|
|
88
|
+
|
|
89
|
+
### 事件
|
|
90
|
+
|
|
91
|
+
| 事件名 | 说明 | 回调参数 |
|
|
92
|
+
| ----------------- | ---------------------------- | ------------------------------------------------ |
|
|
93
|
+
| update:visible | 抽屉显示状态变化时触发 | `(visible: boolean)` |
|
|
94
|
+
| update:stepActive | 步骤变化时触发 | `(stepActive: number)` |
|
|
95
|
+
| cancel | 点击取消按钮或关闭按钮时触发 | - |
|
|
96
|
+
| ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
|
|
97
|
+
| closed | 抽屉关闭动画结束后触发 | - |
|
|
98
|
+
|
|
99
|
+
### 插槽
|
|
100
|
+
|
|
101
|
+
| 插槽名 | 说明 |
|
|
102
|
+
| ------- | ------------ |
|
|
103
|
+
| default | 抽屉内容区域 |
|
|
104
|
+
|
|
105
|
+
### 方法
|
|
106
|
+
|
|
107
|
+
| 方法名 | 说明 | 参数 |
|
|
108
|
+
| ----------- | ------------ | ----------------- |
|
|
109
|
+
| showLoading | 显示加载状态 | `(text?: string)` |
|
|
110
|
+
| hideLoading | 隐藏加载状态 | - |
|
|
111
|
+
|
|
112
|
+
<script setup>
|
|
113
|
+
import DrawerBasic from '../examples/drawer/basic.vue'
|
|
114
|
+
import DrawerDirection from '../examples/drawer/direction.vue'
|
|
115
|
+
import DrawerSize from '../examples/drawer/size.vue'
|
|
116
|
+
import DrawerCustomButtons from '../examples/drawer/custom-buttons.vue'
|
|
117
|
+
import DrawerNoButtons from '../examples/drawer/no-buttons.vue'
|
|
118
|
+
import DrawerMask from '../examples/drawer/mask.vue'
|
|
119
|
+
import drawerApi from './meta/drawer'
|
|
120
|
+
|
|
121
|
+
import drawerBasicCode from '../examples/drawer/basic.vue?raw'
|
|
122
|
+
import drawerDirectionCode from '../examples/drawer/direction.vue?raw'
|
|
123
|
+
import drawerSizeCode from '../examples/drawer/size.vue?raw'
|
|
124
|
+
import drawerCustomButtonsCode from '../examples/drawer/custom-buttons.vue?raw'
|
|
125
|
+
import drawerNoButtonsCode from '../examples/drawer/no-buttons.vue?raw'
|
|
126
|
+
import drawerMaskCode from '../examples/drawer/mask.vue?raw'
|
|
127
|
+
</script>
|
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
# DynamicLayer 动态层
|
|
2
|
-
|
|
3
|
-
动态加载组件的弹层,基于 Layer 组件封装,支持动态渲染任意组件并提供统一的弹层交互。
|
|
4
|
-
|
|
5
|
-
## 基础用法
|
|
6
|
-
|
|
7
|
-
通过 `open` 方法打开弹层,动态加载指定组件。
|
|
8
|
-
|
|
9
|
-
<Demo :source-code="dynamicLayerBasicCode">
|
|
10
|
-
<template #source>
|
|
11
|
-
<dynamic-layer-basic />
|
|
12
|
-
</template>
|
|
13
|
-
<template #description>
|
|
14
|
-
使用 `ref` 调用 `open` 方法打开弹层,通过 `name` 属性指定要加载的组件。
|
|
15
|
-
</template>
|
|
16
|
-
</Demo>
|
|
17
|
-
|
|
18
|
-
## 表单场景
|
|
19
|
-
|
|
20
|
-
适用于动态表单的场景,组件内可以定义 `open` 和 `ok` 方法与弹层交互。
|
|
21
|
-
|
|
22
|
-
<Demo :source-code="dynamicLayerFormCode">
|
|
23
|
-
<template #source>
|
|
24
|
-
<dynamic-layer-form />
|
|
25
|
-
</template>
|
|
26
|
-
<template #description>
|
|
27
|
-
动态组件可以通过 `expose` 暴露 `open` 和 `ok` 方法。`open` 方法接收传入的参数,`ok` 方法在点击确定时调用,返回 `true` 时弹层关闭。
|
|
28
|
-
</template>
|
|
29
|
-
</Demo>
|
|
30
|
-
|
|
31
|
-
## 不同类型
|
|
32
|
-
|
|
33
|
-
支持 modal、drawer、full 三种弹层类型。
|
|
34
|
-
|
|
35
|
-
<Demo :source-code="dynamicLayerTypesCode">
|
|
36
|
-
<template #source>
|
|
37
|
-
<dynamic-layer-types />
|
|
38
|
-
</template>
|
|
39
|
-
<template #description>
|
|
40
|
-
通过 `type` 参数指定弹层类型,支持弹窗(modal)、抽屉(drawer)、全屏(full)三种形式。
|
|
41
|
-
</template>
|
|
42
|
-
</Demo>
|
|
43
|
-
|
|
44
|
-
## 自定义按钮
|
|
45
|
-
|
|
46
|
-
组件内可以通过 `getConfig` 方法返回自定义按钮配置。
|
|
47
|
-
|
|
48
|
-
<Demo :source-code="dynamicLayerCustomButtonsCode">
|
|
49
|
-
<template #source>
|
|
50
|
-
<dynamic-layer-custom-buttons />
|
|
51
|
-
</template>
|
|
52
|
-
<template #description>
|
|
53
|
-
动态组件通过 `getConfig` 方法返回 `buttons` 数组,可以添加自定义按钮。设置 `hasSaveBtn` 为 `false` 可隐藏默认保存按钮。
|
|
54
|
-
</template>
|
|
55
|
-
</Demo>
|
|
56
|
-
|
|
57
|
-
## 步骤弹窗
|
|
58
|
-
|
|
59
|
-
支持步骤条模式的弹层。
|
|
60
|
-
|
|
61
|
-
<Demo :source-code="dynamicLayerStepsCode">
|
|
62
|
-
<template #source>
|
|
63
|
-
<dynamic-layer-steps />
|
|
64
|
-
</template>
|
|
65
|
-
<template #description>
|
|
66
|
-
动态组件通过 `getConfig` 返回 `isStep` 和 `steps` 配置步骤条,通过 `validateSteps` 方法进行步骤校验。
|
|
67
|
-
</template>
|
|
68
|
-
</Demo>
|
|
69
|
-
|
|
70
|
-
## API
|
|
71
|
-
|
|
72
|
-
### 方法
|
|
73
|
-
|
|
74
|
-
| 方法名 | 说明 | 参数 |
|
|
75
|
-
| ------ | -------- | -------------------------------- |
|
|
76
|
-
| open | 打开弹层 | `(data: LayerParamType) => void` |
|
|
77
|
-
|
|
78
|
-
### LayerParamType 参数
|
|
79
|
-
|
|
80
|
-
<ApiTable :data="dynamicLayerApi" componentName="dynamic-layer" />
|
|
81
|
-
|
|
82
|
-
### 动态组件约定
|
|
83
|
-
|
|
84
|
-
动态加载的组件可以通过 `expose` 暴露以下方法与弹层交互:
|
|
85
|
-
|
|
86
|
-
| 方法名 | 说明 | 参数 | 返回值 |
|
|
87
|
-
| ------------- | ------------------ | ------------------------------------------------ | --------------------------------------------------------- |
|
|
88
|
-
| open | 弹层打开时调用 | `(param: any, layerRef: any, afterOk: Function)` | `Promise<{ buttons?: any[] }>` |
|
|
89
|
-
| ok | 点击确定按钮时调用 | - | `Promise<boolean \| any>` |
|
|
90
|
-
| closed | 弹层关闭后调用 | - | `void` |
|
|
91
|
-
| beforeClose | 弹层关闭前调用 | - | `boolean \| Promise<boolean>` |
|
|
92
|
-
| getConfig | 获取弹层配置 | - | `{ isStep?: boolean, steps?: string[], buttons?: any[] }` |
|
|
93
|
-
| validateSteps | 步骤校验 | `(stepActive: number)` | `Promise<boolean>` |
|
|
94
|
-
|
|
95
|
-
### 回调函数
|
|
96
|
-
|
|
97
|
-
可以通过 `open` 方法的参数传入以下回调函数:
|
|
98
|
-
|
|
99
|
-
| 回调名 | 说明 | 参数 |
|
|
100
|
-
| ----------- | ---------- | --------------------- |
|
|
101
|
-
| afterOk | 确定后回调 | `(data: any) => void` |
|
|
102
|
-
| afterClose | 关闭后回调 | `() => void` |
|
|
103
|
-
| afterCancel | 取消后回调 | `() => void` |
|
|
104
|
-
|
|
105
|
-
<script setup>
|
|
106
|
-
import DynamicLayerBasic from '../examples/dynamic-layer/basic.vue'
|
|
107
|
-
import DynamicLayerForm from '../examples/dynamic-layer/form.vue'
|
|
108
|
-
import DynamicLayerTypes from '../examples/dynamic-layer/types.vue'
|
|
109
|
-
import DynamicLayerCustomButtons from '../examples/dynamic-layer/custom-buttons.vue'
|
|
110
|
-
import DynamicLayerSteps from '../examples/dynamic-layer/steps.vue'
|
|
111
|
-
import dynamicLayerApi from './meta/dynamic-layer'
|
|
112
|
-
|
|
113
|
-
import dynamicLayerBasicCode from '../examples/dynamic-layer/basic.vue?raw'
|
|
114
|
-
import dynamicLayerFormCode from '../examples/dynamic-layer/form.vue?raw'
|
|
115
|
-
import dynamicLayerTypesCode from '../examples/dynamic-layer/types.vue?raw'
|
|
116
|
-
import dynamicLayerCustomButtonsCode from '../examples/dynamic-layer/custom-buttons.vue?raw'
|
|
117
|
-
import dynamicLayerStepsCode from '../examples/dynamic-layer/steps.vue?raw'
|
|
118
|
-
</script>
|
|
1
|
+
# DynamicLayer 动态层
|
|
2
|
+
|
|
3
|
+
动态加载组件的弹层,基于 Layer 组件封装,支持动态渲染任意组件并提供统一的弹层交互。
|
|
4
|
+
|
|
5
|
+
## 基础用法
|
|
6
|
+
|
|
7
|
+
通过 `open` 方法打开弹层,动态加载指定组件。
|
|
8
|
+
|
|
9
|
+
<Demo :source-code="dynamicLayerBasicCode">
|
|
10
|
+
<template #source>
|
|
11
|
+
<dynamic-layer-basic />
|
|
12
|
+
</template>
|
|
13
|
+
<template #description>
|
|
14
|
+
使用 `ref` 调用 `open` 方法打开弹层,通过 `name` 属性指定要加载的组件。
|
|
15
|
+
</template>
|
|
16
|
+
</Demo>
|
|
17
|
+
|
|
18
|
+
## 表单场景
|
|
19
|
+
|
|
20
|
+
适用于动态表单的场景,组件内可以定义 `open` 和 `ok` 方法与弹层交互。
|
|
21
|
+
|
|
22
|
+
<Demo :source-code="dynamicLayerFormCode">
|
|
23
|
+
<template #source>
|
|
24
|
+
<dynamic-layer-form />
|
|
25
|
+
</template>
|
|
26
|
+
<template #description>
|
|
27
|
+
动态组件可以通过 `expose` 暴露 `open` 和 `ok` 方法。`open` 方法接收传入的参数,`ok` 方法在点击确定时调用,返回 `true` 时弹层关闭。
|
|
28
|
+
</template>
|
|
29
|
+
</Demo>
|
|
30
|
+
|
|
31
|
+
## 不同类型
|
|
32
|
+
|
|
33
|
+
支持 modal、drawer、full 三种弹层类型。
|
|
34
|
+
|
|
35
|
+
<Demo :source-code="dynamicLayerTypesCode">
|
|
36
|
+
<template #source>
|
|
37
|
+
<dynamic-layer-types />
|
|
38
|
+
</template>
|
|
39
|
+
<template #description>
|
|
40
|
+
通过 `type` 参数指定弹层类型,支持弹窗(modal)、抽屉(drawer)、全屏(full)三种形式。
|
|
41
|
+
</template>
|
|
42
|
+
</Demo>
|
|
43
|
+
|
|
44
|
+
## 自定义按钮
|
|
45
|
+
|
|
46
|
+
组件内可以通过 `getConfig` 方法返回自定义按钮配置。
|
|
47
|
+
|
|
48
|
+
<Demo :source-code="dynamicLayerCustomButtonsCode">
|
|
49
|
+
<template #source>
|
|
50
|
+
<dynamic-layer-custom-buttons />
|
|
51
|
+
</template>
|
|
52
|
+
<template #description>
|
|
53
|
+
动态组件通过 `getConfig` 方法返回 `buttons` 数组,可以添加自定义按钮。设置 `hasSaveBtn` 为 `false` 可隐藏默认保存按钮。
|
|
54
|
+
</template>
|
|
55
|
+
</Demo>
|
|
56
|
+
|
|
57
|
+
## 步骤弹窗
|
|
58
|
+
|
|
59
|
+
支持步骤条模式的弹层。
|
|
60
|
+
|
|
61
|
+
<Demo :source-code="dynamicLayerStepsCode">
|
|
62
|
+
<template #source>
|
|
63
|
+
<dynamic-layer-steps />
|
|
64
|
+
</template>
|
|
65
|
+
<template #description>
|
|
66
|
+
动态组件通过 `getConfig` 返回 `isStep` 和 `steps` 配置步骤条,通过 `validateSteps` 方法进行步骤校验。
|
|
67
|
+
</template>
|
|
68
|
+
</Demo>
|
|
69
|
+
|
|
70
|
+
## API
|
|
71
|
+
|
|
72
|
+
### 方法
|
|
73
|
+
|
|
74
|
+
| 方法名 | 说明 | 参数 |
|
|
75
|
+
| ------ | -------- | -------------------------------- |
|
|
76
|
+
| open | 打开弹层 | `(data: LayerParamType) => void` |
|
|
77
|
+
|
|
78
|
+
### LayerParamType 参数
|
|
79
|
+
|
|
80
|
+
<ApiTable :data="dynamicLayerApi" componentName="dynamic-layer" />
|
|
81
|
+
|
|
82
|
+
### 动态组件约定
|
|
83
|
+
|
|
84
|
+
动态加载的组件可以通过 `expose` 暴露以下方法与弹层交互:
|
|
85
|
+
|
|
86
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
87
|
+
| ------------- | ------------------ | ------------------------------------------------ | --------------------------------------------------------- |
|
|
88
|
+
| open | 弹层打开时调用 | `(param: any, layerRef: any, afterOk: Function)` | `Promise<{ buttons?: any[] }>` |
|
|
89
|
+
| ok | 点击确定按钮时调用 | - | `Promise<boolean \| any>` |
|
|
90
|
+
| closed | 弹层关闭后调用 | - | `void` |
|
|
91
|
+
| beforeClose | 弹层关闭前调用 | - | `boolean \| Promise<boolean>` |
|
|
92
|
+
| getConfig | 获取弹层配置 | - | `{ isStep?: boolean, steps?: string[], buttons?: any[] }` |
|
|
93
|
+
| validateSteps | 步骤校验 | `(stepActive: number)` | `Promise<boolean>` |
|
|
94
|
+
|
|
95
|
+
### 回调函数
|
|
96
|
+
|
|
97
|
+
可以通过 `open` 方法的参数传入以下回调函数:
|
|
98
|
+
|
|
99
|
+
| 回调名 | 说明 | 参数 |
|
|
100
|
+
| ----------- | ---------- | --------------------- |
|
|
101
|
+
| afterOk | 确定后回调 | `(data: any) => void` |
|
|
102
|
+
| afterClose | 关闭后回调 | `() => void` |
|
|
103
|
+
| afterCancel | 取消后回调 | `() => void` |
|
|
104
|
+
|
|
105
|
+
<script setup>
|
|
106
|
+
import DynamicLayerBasic from '../examples/dynamic-layer/basic.vue'
|
|
107
|
+
import DynamicLayerForm from '../examples/dynamic-layer/form.vue'
|
|
108
|
+
import DynamicLayerTypes from '../examples/dynamic-layer/types.vue'
|
|
109
|
+
import DynamicLayerCustomButtons from '../examples/dynamic-layer/custom-buttons.vue'
|
|
110
|
+
import DynamicLayerSteps from '../examples/dynamic-layer/steps.vue'
|
|
111
|
+
import dynamicLayerApi from './meta/dynamic-layer'
|
|
112
|
+
|
|
113
|
+
import dynamicLayerBasicCode from '../examples/dynamic-layer/basic.vue?raw'
|
|
114
|
+
import dynamicLayerFormCode from '../examples/dynamic-layer/form.vue?raw'
|
|
115
|
+
import dynamicLayerTypesCode from '../examples/dynamic-layer/types.vue?raw'
|
|
116
|
+
import dynamicLayerCustomButtonsCode from '../examples/dynamic-layer/custom-buttons.vue?raw'
|
|
117
|
+
import dynamicLayerStepsCode from '../examples/dynamic-layer/steps.vue?raw'
|
|
118
|
+
</script>
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
# Echarts 图表
|
|
2
|
-
|
|
3
|
-
基于 ECharts 的 Vue 3 图表组件封装。
|
|
4
|
-
|
|
5
|
-
## 基础用法
|
|
6
|
-
|
|
7
|
-
通过 `option` 属性传入 ECharts 配置。
|
|
8
|
-
|
|
9
|
-
<Demo :source-code="echartsBasicCode">
|
|
10
|
-
<template #source>
|
|
11
|
-
<echarts-basic />
|
|
12
|
-
</template>
|
|
13
|
-
<template #description>
|
|
14
|
-
最基础的柱状图示例,通过点击事件可以获取图表数据。
|
|
15
|
-
</template>
|
|
16
|
-
</Demo>
|
|
17
|
-
|
|
18
|
-
## 折线图
|
|
19
|
-
|
|
20
|
-
使用折线图展示趋势数据。
|
|
21
|
-
|
|
22
|
-
<Demo :source-code="echartsLineCode">
|
|
23
|
-
<template #source>
|
|
24
|
-
<echarts-line />
|
|
25
|
-
</template>
|
|
26
|
-
<template #description>
|
|
27
|
-
多系列折线图,适合展示趋势对比。
|
|
28
|
-
</template>
|
|
29
|
-
</Demo>
|
|
30
|
-
|
|
31
|
-
## 饼图
|
|
32
|
-
|
|
33
|
-
使用饼图展示占比数据。
|
|
34
|
-
|
|
35
|
-
<Demo :source-code="echartsPieCode">
|
|
36
|
-
<template #source>
|
|
37
|
-
<echarts-pie />
|
|
38
|
-
</template>
|
|
39
|
-
<template #description>
|
|
40
|
-
饼图适合展示各部分在整体中的占比。
|
|
41
|
-
</template>
|
|
42
|
-
</Demo>
|
|
43
|
-
|
|
44
|
-
## 动态数据
|
|
45
|
-
|
|
46
|
-
图表数据可以动态更新。
|
|
47
|
-
|
|
48
|
-
<Demo :source-code="echartsDynamicCode">
|
|
49
|
-
<template #source>
|
|
50
|
-
<echarts-dynamic />
|
|
51
|
-
</template>
|
|
52
|
-
<template #description>
|
|
53
|
-
通过修改 `option` 数据,图表会自动更新。
|
|
54
|
-
</template>
|
|
55
|
-
</Demo>
|
|
56
|
-
|
|
57
|
-
## API
|
|
58
|
-
|
|
59
|
-
<ApiTable :data="echartsApi" componentName="echarts" />
|
|
60
|
-
|
|
61
|
-
<script setup>
|
|
62
|
-
import EchartsBasic from '../examples/echarts/basic.vue'
|
|
63
|
-
import EchartsLine from '../examples/echarts/line.vue'
|
|
64
|
-
import EchartsPie from '../examples/echarts/pie.vue'
|
|
65
|
-
import EchartsDynamic from '../examples/echarts/dynamic.vue'
|
|
66
|
-
import echartsApi from './meta/echarts'
|
|
67
|
-
|
|
68
|
-
import echartsBasicCode from '../examples/echarts/basic.vue?raw'
|
|
69
|
-
import echartsLineCode from '../examples/echarts/line.vue?raw'
|
|
70
|
-
import echartsPieCode from '../examples/echarts/pie.vue?raw'
|
|
71
|
-
import echartsDynamicCode from '../examples/echarts/dynamic.vue?raw'
|
|
72
|
-
</script>
|
|
1
|
+
# Echarts 图表
|
|
2
|
+
|
|
3
|
+
基于 ECharts 的 Vue 3 图表组件封装。
|
|
4
|
+
|
|
5
|
+
## 基础用法
|
|
6
|
+
|
|
7
|
+
通过 `option` 属性传入 ECharts 配置。
|
|
8
|
+
|
|
9
|
+
<Demo :source-code="echartsBasicCode">
|
|
10
|
+
<template #source>
|
|
11
|
+
<echarts-basic />
|
|
12
|
+
</template>
|
|
13
|
+
<template #description>
|
|
14
|
+
最基础的柱状图示例,通过点击事件可以获取图表数据。
|
|
15
|
+
</template>
|
|
16
|
+
</Demo>
|
|
17
|
+
|
|
18
|
+
## 折线图
|
|
19
|
+
|
|
20
|
+
使用折线图展示趋势数据。
|
|
21
|
+
|
|
22
|
+
<Demo :source-code="echartsLineCode">
|
|
23
|
+
<template #source>
|
|
24
|
+
<echarts-line />
|
|
25
|
+
</template>
|
|
26
|
+
<template #description>
|
|
27
|
+
多系列折线图,适合展示趋势对比。
|
|
28
|
+
</template>
|
|
29
|
+
</Demo>
|
|
30
|
+
|
|
31
|
+
## 饼图
|
|
32
|
+
|
|
33
|
+
使用饼图展示占比数据。
|
|
34
|
+
|
|
35
|
+
<Demo :source-code="echartsPieCode">
|
|
36
|
+
<template #source>
|
|
37
|
+
<echarts-pie />
|
|
38
|
+
</template>
|
|
39
|
+
<template #description>
|
|
40
|
+
饼图适合展示各部分在整体中的占比。
|
|
41
|
+
</template>
|
|
42
|
+
</Demo>
|
|
43
|
+
|
|
44
|
+
## 动态数据
|
|
45
|
+
|
|
46
|
+
图表数据可以动态更新。
|
|
47
|
+
|
|
48
|
+
<Demo :source-code="echartsDynamicCode">
|
|
49
|
+
<template #source>
|
|
50
|
+
<echarts-dynamic />
|
|
51
|
+
</template>
|
|
52
|
+
<template #description>
|
|
53
|
+
通过修改 `option` 数据,图表会自动更新。
|
|
54
|
+
</template>
|
|
55
|
+
</Demo>
|
|
56
|
+
|
|
57
|
+
## API
|
|
58
|
+
|
|
59
|
+
<ApiTable :data="echartsApi" componentName="echarts" />
|
|
60
|
+
|
|
61
|
+
<script setup>
|
|
62
|
+
import EchartsBasic from '../examples/echarts/basic.vue'
|
|
63
|
+
import EchartsLine from '../examples/echarts/line.vue'
|
|
64
|
+
import EchartsPie from '../examples/echarts/pie.vue'
|
|
65
|
+
import EchartsDynamic from '../examples/echarts/dynamic.vue'
|
|
66
|
+
import echartsApi from './meta/echarts'
|
|
67
|
+
|
|
68
|
+
import echartsBasicCode from '../examples/echarts/basic.vue?raw'
|
|
69
|
+
import echartsLineCode from '../examples/echarts/line.vue?raw'
|
|
70
|
+
import echartsPieCode from '../examples/echarts/pie.vue?raw'
|
|
71
|
+
import echartsDynamicCode from '../examples/echarts/dynamic.vue?raw'
|
|
72
|
+
</script>
|