el-plus 0.0.113 → 0.0.115
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/CHANGELOG.md +24 -0
- package/README.md +85 -85
- package/dist/index.css +1 -1
- package/dist/index.full.js +15 -5
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +15 -6
- package/docs/CHANGELOG.md +5 -5
- package/docs/api-examples.md +49 -49
- package/docs/components/attachment.md +118 -111
- package/docs/components/buttons.md +179 -179
- package/docs/components/custom-column.md +70 -70
- package/docs/components/date-picker-range.md +61 -61
- package/docs/components/dialog.md +104 -104
- package/docs/components/footer-info.md +101 -101
- package/docs/components/form.md +211 -211
- package/docs/components/header.md +117 -117
- package/docs/components/input.md +111 -111
- package/docs/components/link.md +63 -63
- package/docs/components/search-list-page.md +91 -91
- package/docs/components/select.md +249 -249
- package/docs/components/table.md +145 -145
- package/docs/components/title.md +70 -70
- package/docs/components/use-choose-dialog.md +114 -114
- package/docs/components/use-confirm-dialog.md +86 -86
- package/docs/components/use-form-dialog.md +85 -85
- package/docs/guide/markdown-examples.md +85 -85
- package/docs/hooks/use-navigation.md +131 -131
- package/docs/hooks/use-utils.md +162 -162
- package/docs/index.md +25 -25
- package/docs/overview.md +99 -99
- package/docs/pages/detail.md +66 -66
- package/docs/pages/list.md +74 -74
- package/docs/pages/router.md +151 -151
- package/es/components/attachment/index.d.ts +12 -2
- package/es/components/attachment/index.mjs +1 -1
- package/es/components/attachment/index.mjs.map +1 -1
- package/es/components/attachment/src/attachment.d.ts +6 -0
- package/es/components/attachment/src/attachment.mjs +7 -1
- package/es/components/attachment/src/attachment.mjs.map +1 -1
- package/es/components/attachment/src/attachment.vue.d.ts +5 -1
- package/es/components/attachment/src/attachment.vue2.mjs +7 -4
- package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
- package/es/components/attachment/src/use-attachment.mjs.map +1 -1
- package/es/components/buttons/index.mjs.map +1 -1
- package/es/components/buttons/src/buttons-vue.mjs.map +1 -1
- package/es/components/buttons/src/buttons.mjs.map +1 -1
- package/es/components/custom-column/index.mjs.map +1 -1
- package/es/components/custom-column/src/custom-column.mjs.map +1 -1
- package/es/components/custom-column/src/custom-column.vue2.mjs.map +1 -1
- package/es/components/date-picker-range/index.mjs.map +1 -1
- package/es/components/date-picker-range/src/date-picker-range.mjs.map +1 -1
- package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
- package/es/components/footer-info/index.mjs.map +1 -1
- package/es/components/footer-info/src/footer-info.mjs.map +1 -1
- package/es/components/footer-info/src/footer-info.vue2.mjs.map +1 -1
- package/es/components/form/index.mjs.map +1 -1
- package/es/components/form/src/form-item-vue.mjs.map +1 -1
- package/es/components/form/src/form-item.mjs.map +1 -1
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/form.vue2.mjs.map +1 -1
- package/es/components/form/src/hooks/use-form-item.mjs.map +1 -1
- package/es/components/form/src/hooks/use-form.mjs.map +1 -1
- package/es/components/header/index.mjs.map +1 -1
- package/es/components/header/src/header.mjs.map +1 -1
- package/es/components/header/src/header.vue2.mjs.map +1 -1
- package/es/components/header/src/use-header.mjs.map +1 -1
- package/es/components/index.mjs +1 -1
- package/es/components/input/index.mjs.map +1 -1
- package/es/components/input/src/input.mjs.map +1 -1
- package/es/components/input/src/input.vue2.mjs.map +1 -1
- package/es/components/link/index.mjs.map +1 -1
- package/es/components/link/src/link.mjs.map +1 -1
- package/es/components/link/src/link.vue2.mjs.map +1 -1
- package/es/components/search-list-page/index.mjs.map +1 -1
- package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
- package/es/components/search-list-page/src/search-list-page.vue2.mjs.map +1 -1
- package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
- package/es/components/select/index.mjs.map +1 -1
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select.vue2.mjs.map +1 -1
- package/es/components/select/src/use-select.mjs.map +1 -1
- package/es/components/table/index.mjs.map +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.vue2.mjs.map +1 -1
- package/es/components/table/src/use-table.mjs.map +1 -1
- package/es/components/title/index.mjs.map +1 -1
- package/es/components/title/src/title.mjs.map +1 -1
- package/es/components/title/src/title.vue2.mjs.map +1 -1
- package/es/components/title/src/use-title.mjs.map +1 -1
- package/es/components/uni-vue/index.mjs.map +1 -1
- package/es/components/uni-vue/src/uni-vue.mjs.map +1 -1
- package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
- package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
- package/es/components.mjs.map +1 -1
- package/es/directives/permission/index.mjs.map +1 -1
- package/es/directives/repeat-click/index.mjs.map +1 -1
- package/es/hooks/dialog/use-choose-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-confirm-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
- package/es/hooks/use-locale.mjs.map +1 -1
- package/es/hooks/use-navigation.mjs.map +1 -1
- package/es/hooks/use-request.mjs.map +1 -1
- package/es/hooks/use-template-promise.mjs.map +1 -1
- package/es/hooks/use-utils.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/es/locale/lang/en.mjs.map +1 -1
- package/es/locale/lang/zh-cn.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/es/plugins/globalProperties.mjs.map +1 -1
- package/es/types/global.d.ts +30 -30
- package/es/types/index.d.ts +2 -2
- package/es/types/utils.d.ts +19 -19
- package/es/utils/bem.mjs.map +1 -1
- package/es/utils/cookie.mjs.map +1 -1
- package/es/utils/dom.mjs.map +1 -1
- package/es/utils/env.mjs.map +1 -1
- package/es/utils/file.mjs.map +1 -1
- package/es/utils/http/core/modules/interceptor.mjs.map +1 -1
- package/es/utils/http/core/modules/loading.mjs.map +1 -1
- package/es/utils/http/core/preset-interceptors.mjs.map +1 -1
- package/es/utils/http/core/request-client.mjs.map +1 -1
- package/es/utils/http/index.mjs.map +1 -1
- package/es/utils/mitt.mjs.map +1 -1
- package/es/utils/navigation.mjs.map +1 -1
- package/es/utils/props.mjs.map +1 -1
- package/es/utils/time.mjs.map +1 -1
- package/es/utils/utils.mjs.map +1 -1
- package/es/utils/with-install.mjs.map +1 -1
- package/global.d.ts +21 -21
- package/lib/components/attachment/index.d.ts +12 -2
- package/lib/components/attachment/index.js +1 -0
- package/lib/components/attachment/index.js.map +1 -1
- package/lib/components/attachment/src/attachment.d.ts +6 -0
- package/lib/components/attachment/src/attachment.js +7 -0
- package/lib/components/attachment/src/attachment.js.map +1 -1
- package/lib/components/attachment/src/attachment.vue.d.ts +5 -1
- package/lib/components/attachment/src/attachment.vue2.js +6 -3
- package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
- package/lib/components/attachment/src/use-attachment.js.map +1 -1
- package/lib/components/buttons/index.js.map +1 -1
- package/lib/components/buttons/src/buttons-vue.js.map +1 -1
- package/lib/components/buttons/src/buttons.js.map +1 -1
- package/lib/components/custom-column/index.js.map +1 -1
- package/lib/components/custom-column/src/custom-column.js.map +1 -1
- package/lib/components/custom-column/src/custom-column.vue2.js.map +1 -1
- package/lib/components/date-picker-range/index.js.map +1 -1
- package/lib/components/date-picker-range/src/date-picker-range.js.map +1 -1
- package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
- package/lib/components/footer-info/index.js.map +1 -1
- package/lib/components/footer-info/src/footer-info.js.map +1 -1
- package/lib/components/footer-info/src/footer-info.vue2.js.map +1 -1
- package/lib/components/form/index.js.map +1 -1
- package/lib/components/form/src/form-item-vue.js.map +1 -1
- package/lib/components/form/src/form-item.js.map +1 -1
- package/lib/components/form/src/form.js.map +1 -1
- package/lib/components/form/src/form.vue2.js.map +1 -1
- package/lib/components/form/src/hooks/use-form-item.js.map +1 -1
- package/lib/components/form/src/hooks/use-form.js.map +1 -1
- package/lib/components/header/index.js.map +1 -1
- package/lib/components/header/src/header.js.map +1 -1
- package/lib/components/header/src/header.vue2.js.map +1 -1
- package/lib/components/header/src/use-header.js.map +1 -1
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/index.js.map +1 -1
- package/lib/components/input/src/input.js.map +1 -1
- package/lib/components/input/src/input.vue2.js.map +1 -1
- package/lib/components/link/index.js.map +1 -1
- package/lib/components/link/src/link.js.map +1 -1
- package/lib/components/link/src/link.vue2.js.map +1 -1
- package/lib/components/search-list-page/index.js.map +1 -1
- package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
- package/lib/components/search-list-page/src/search-list-page.vue2.js.map +1 -1
- package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
- package/lib/components/select/index.js.map +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select.vue2.js.map +1 -1
- package/lib/components/select/src/use-select.js.map +1 -1
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.vue2.js.map +1 -1
- package/lib/components/table/src/use-table.js.map +1 -1
- package/lib/components/title/index.js.map +1 -1
- package/lib/components/title/src/title.js.map +1 -1
- package/lib/components/title/src/title.vue2.js.map +1 -1
- package/lib/components/title/src/use-title.js.map +1 -1
- package/lib/components/uni-vue/index.js.map +1 -1
- package/lib/components/uni-vue/src/uni-vue.js.map +1 -1
- package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
- package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
- package/lib/components.js.map +1 -1
- package/lib/directives/permission/index.js.map +1 -1
- package/lib/directives/repeat-click/index.js.map +1 -1
- package/lib/hooks/dialog/use-choose-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-confirm-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
- package/lib/hooks/use-locale.js.map +1 -1
- package/lib/hooks/use-navigation.js.map +1 -1
- package/lib/hooks/use-request.js.map +1 -1
- package/lib/hooks/use-template-promise.js.map +1 -1
- package/lib/hooks/use-utils.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/locale/lang/en.js.map +1 -1
- package/lib/locale/lang/zh-cn.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/plugins/globalProperties.js.map +1 -1
- package/lib/types/global.d.ts +30 -30
- package/lib/types/index.d.ts +2 -2
- package/lib/types/utils.d.ts +19 -19
- package/lib/utils/bem.js.map +1 -1
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/env.js.map +1 -1
- package/lib/utils/file.js.map +1 -1
- package/lib/utils/http/core/modules/interceptor.js.map +1 -1
- package/lib/utils/http/core/modules/loading.js.map +1 -1
- package/lib/utils/http/core/preset-interceptors.js.map +1 -1
- package/lib/utils/http/core/request-client.js.map +1 -1
- package/lib/utils/http/index.js.map +1 -1
- package/lib/utils/mitt.js.map +1 -1
- package/lib/utils/navigation.js.map +1 -1
- package/lib/utils/props.js.map +1 -1
- package/lib/utils/time.js.map +1 -1
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils/with-install.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/base.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/attachment.scss +39 -39
- package/theme-chalk/src/base.scss +2 -2
- package/theme-chalk/src/buttons.scss +22 -22
- package/theme-chalk/src/common/common.scss +7 -4
- package/theme-chalk/src/common/transition.scss +9 -9
- package/theme-chalk/src/custom-column.scss +55 -55
- package/theme-chalk/src/dialog.scss +62 -62
- package/theme-chalk/src/footer-info.scss +18 -18
- package/theme-chalk/src/form.scss +80 -72
- package/theme-chalk/src/header.scss +19 -19
- package/theme-chalk/src/index.scss +15 -15
- package/theme-chalk/src/link.scss +5 -5
- package/theme-chalk/src/mixins/config.scss +3 -3
- package/theme-chalk/src/mixins/mixins.scss +37 -37
- package/theme-chalk/src/search-list-page.scss +22 -22
- package/theme-chalk/src/select.scss +10 -10
- package/theme-chalk/src/table.scss +91 -91
- package/theme-chalk/src/tabs.scss +55 -55
- package/theme-chalk/src/title.scss +52 -52
- package/theme-chalk/src/uni-vue.scss +10 -10
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
# useConfirmDialog 确认对话框
|
|
2
|
-
|
|
3
|
-
基于 useFormDialog 实现的确认对话框,内置 textarea 输入框,适用于审批意见、备注填写等场景。
|
|
4
|
-
|
|
5
|
-
## 基本用法
|
|
6
|
-
|
|
7
|
-
```vue
|
|
8
|
-
<template>
|
|
9
|
-
<el-button @click="handleConfirm">审批</el-button>
|
|
10
|
-
</template>
|
|
11
|
-
|
|
12
|
-
<script setup lang="tsx">
|
|
13
|
-
import { useConfirmDialog } from 'el-plus'
|
|
14
|
-
|
|
15
|
-
const ConfirmDialog = useConfirmDialog({
|
|
16
|
-
title: '审批确认',
|
|
17
|
-
placeholder: '请输入审批意见',
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
const handleConfirm = async () => {
|
|
21
|
-
try {
|
|
22
|
-
const result = await ConfirmDialog.open()
|
|
23
|
-
console.log '确认,意见:', result.value)
|
|
24
|
-
} catch (e) {
|
|
25
|
-
console.log('取消')
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
</script>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Options
|
|
32
|
-
|
|
33
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
34
|
-
|------|------|------|--------|
|
|
35
|
-
| title | 对话框标题 | `string` | - |
|
|
36
|
-
| width | 对话框宽度 | `string` | `'50%'` |
|
|
37
|
-
| dialogProps | 对话框属性,继承自 useDialog | `DialogOptions` | - |
|
|
38
|
-
| rows | textarea 行数 | `number` | `5` |
|
|
39
|
-
| maxlength | 最大输入长度 | `number` | `500` |
|
|
40
|
-
| minlength | 最小输入长度 | `number` | - |
|
|
41
|
-
| showWordLimit | 显示字数统计 | `boolean` | `true` |
|
|
42
|
-
| placeholder | 输入框占位符 | `string` | - |
|
|
43
|
-
| rules | 表单验证规则 | `FormItemProps['rules']` | - |
|
|
44
|
-
| required | 是否必填 | `boolean` | `true` |
|
|
45
|
-
|
|
46
|
-
## 自定义验证
|
|
47
|
-
|
|
48
|
-
```tsx
|
|
49
|
-
const ConfirmDialog = useConfirmDialog({
|
|
50
|
-
title: '驳回原因',
|
|
51
|
-
required: true,
|
|
52
|
-
rules: [
|
|
53
|
-
{ required: true, message: '请输入驳回原因', trigger: 'blur' },
|
|
54
|
-
{ min: 10, message: '驳回原因不能少于10个字', trigger: 'blur' },
|
|
55
|
-
],
|
|
56
|
-
placeholder: '请输入驳回原因(不少于10个字)',
|
|
57
|
-
})
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## 非必填确认
|
|
61
|
-
|
|
62
|
-
```tsx
|
|
63
|
-
const ConfirmDialog = useConfirmDialog({
|
|
64
|
-
title: '备注',
|
|
65
|
-
required: false, // 非必填
|
|
66
|
-
placeholder: '请输入备注(选填)',
|
|
67
|
-
})
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## 返回值
|
|
71
|
-
|
|
72
|
-
确认时返回表单数据对象:
|
|
73
|
-
|
|
74
|
-
```ts
|
|
75
|
-
{
|
|
76
|
-
value: string // textarea 输入的内容
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## 方法
|
|
81
|
-
|
|
82
|
-
| 方法 | 说明 | 类型 |
|
|
83
|
-
|------|------|------|
|
|
84
|
-
| open | 打开对话框并返回 Promise | `() => Promise<{ value: string }>` |
|
|
85
|
-
| open | 打开对话框 | `() => void` |
|
|
86
|
-
| close | 关闭对话框 | `() => void` |
|
|
1
|
+
# useConfirmDialog 确认对话框
|
|
2
|
+
|
|
3
|
+
基于 useFormDialog 实现的确认对话框,内置 textarea 输入框,适用于审批意见、备注填写等场景。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<el-button @click="handleConfirm">审批</el-button>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script setup lang="tsx">
|
|
13
|
+
import { useConfirmDialog } from 'el-plus'
|
|
14
|
+
|
|
15
|
+
const ConfirmDialog = useConfirmDialog({
|
|
16
|
+
title: '审批确认',
|
|
17
|
+
placeholder: '请输入审批意见',
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
const handleConfirm = async () => {
|
|
21
|
+
try {
|
|
22
|
+
const result = await ConfirmDialog.open()
|
|
23
|
+
console.log '确认,意见:', result.value)
|
|
24
|
+
} catch (e) {
|
|
25
|
+
console.log('取消')
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Options
|
|
32
|
+
|
|
33
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
34
|
+
|------|------|------|--------|
|
|
35
|
+
| title | 对话框标题 | `string` | - |
|
|
36
|
+
| width | 对话框宽度 | `string` | `'50%'` |
|
|
37
|
+
| dialogProps | 对话框属性,继承自 useDialog | `DialogOptions` | - |
|
|
38
|
+
| rows | textarea 行数 | `number` | `5` |
|
|
39
|
+
| maxlength | 最大输入长度 | `number` | `500` |
|
|
40
|
+
| minlength | 最小输入长度 | `number` | - |
|
|
41
|
+
| showWordLimit | 显示字数统计 | `boolean` | `true` |
|
|
42
|
+
| placeholder | 输入框占位符 | `string` | - |
|
|
43
|
+
| rules | 表单验证规则 | `FormItemProps['rules']` | - |
|
|
44
|
+
| required | 是否必填 | `boolean` | `true` |
|
|
45
|
+
|
|
46
|
+
## 自定义验证
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
const ConfirmDialog = useConfirmDialog({
|
|
50
|
+
title: '驳回原因',
|
|
51
|
+
required: true,
|
|
52
|
+
rules: [
|
|
53
|
+
{ required: true, message: '请输入驳回原因', trigger: 'blur' },
|
|
54
|
+
{ min: 10, message: '驳回原因不能少于10个字', trigger: 'blur' },
|
|
55
|
+
],
|
|
56
|
+
placeholder: '请输入驳回原因(不少于10个字)',
|
|
57
|
+
})
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 非必填确认
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
const ConfirmDialog = useConfirmDialog({
|
|
64
|
+
title: '备注',
|
|
65
|
+
required: false, // 非必填
|
|
66
|
+
placeholder: '请输入备注(选填)',
|
|
67
|
+
})
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 返回值
|
|
71
|
+
|
|
72
|
+
确认时返回表单数据对象:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
{
|
|
76
|
+
value: string // textarea 输入的内容
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 方法
|
|
81
|
+
|
|
82
|
+
| 方法 | 说明 | 类型 |
|
|
83
|
+
|------|------|------|
|
|
84
|
+
| open | 打开对话框并返回 Promise | `() => Promise<{ value: string }>` |
|
|
85
|
+
| open | 打开对话框 | `() => void` |
|
|
86
|
+
| close | 关闭对话框 | `() => void` |
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
# useFormDialog 表单对话框
|
|
2
|
-
|
|
3
|
-
基于 useDialog 实现的表单对话框,集成 EpForm 组件,支持表单验证。
|
|
4
|
-
|
|
5
|
-
## 基本用法
|
|
6
|
-
|
|
7
|
-
```vue
|
|
8
|
-
<template>
|
|
9
|
-
<el-button @click="openDialog">打开表单对话框</el-button>
|
|
10
|
-
</template>
|
|
11
|
-
|
|
12
|
-
<script setup lang="tsx">
|
|
13
|
-
import { useFormDialog } from 'el-plus'
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const FormDialog = useFormDialog({
|
|
17
|
-
title: '用户信息',
|
|
18
|
-
formItemList:[
|
|
19
|
-
{ prop: 'name', label: '姓名', required: true },
|
|
20
|
-
{ prop: 'age', label: '年龄' },
|
|
21
|
-
],
|
|
22
|
-
dialogProps: {
|
|
23
|
-
destroyOnClose: true, // 关闭时销毁对话框内容
|
|
24
|
-
},
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
const openDialog = async () => {
|
|
28
|
-
try {
|
|
29
|
-
const formData = await FormDialog.open()
|
|
30
|
-
console.log('表单数据', formData)
|
|
31
|
-
} catch (e) {
|
|
32
|
-
console.log('取消')
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
</script>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Options
|
|
39
|
-
|
|
40
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
41
|
-
|------|------|------|--------|
|
|
42
|
-
| title | 对话框标题 | `string` | - |
|
|
43
|
-
| width | 对话框宽度 | `string` | `'80%'` |
|
|
44
|
-
| dialogProps | 对话框属性,继承自 useDialog | `DialogOptions` | - |
|
|
45
|
-
| formData | 表单数据对象 | `object` | - |
|
|
46
|
-
| formItemList | 表单项配置,参考 [EpForm](./form.md) | `FormItemProps[]` | - |
|
|
47
|
-
| onBeforeConfirm | 确认前回调,可用于额外处理 | `(formData, resolve) => Promise<void>` | - |
|
|
48
|
-
| onBeforeCancel | 取消前回调 | `(formData, resolve) => Promise<void>` | - |
|
|
49
|
-
|
|
50
|
-
## 自定义表单数据
|
|
51
|
-
|
|
52
|
-
```tsx
|
|
53
|
-
const formData = reactive({
|
|
54
|
-
name: '',
|
|
55
|
-
age: '',
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const FormDialog = useFormDialog({
|
|
59
|
-
title: '编辑用户',
|
|
60
|
-
formData, // 传入外部表单数据
|
|
61
|
-
formItemList,
|
|
62
|
-
})
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## 确认前处理
|
|
66
|
-
|
|
67
|
-
```tsx
|
|
68
|
-
const FormDialog = useFormDialog({
|
|
69
|
-
title: '提交表单',
|
|
70
|
-
formItemList,
|
|
71
|
-
onBeforeConfirm: async (formData, resolve) => {
|
|
72
|
-
// 可以在此处进行额外的异步操作
|
|
73
|
-
await api.submit(formData)
|
|
74
|
-
resolve(formData)
|
|
75
|
-
},
|
|
76
|
-
})
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## 方法
|
|
80
|
-
|
|
81
|
-
| 方法 | 说明 | 类型 |
|
|
82
|
-
|------|------|------|
|
|
83
|
-
| open | 打开对话框并返回 Promise | `() => Promise<FormData>` |
|
|
84
|
-
| open | 打开对话框 | `() => void` |
|
|
85
|
-
| close | 关闭对话框 | `() => void` |
|
|
1
|
+
# useFormDialog 表单对话框
|
|
2
|
+
|
|
3
|
+
基于 useDialog 实现的表单对话框,集成 EpForm 组件,支持表单验证。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
```vue
|
|
8
|
+
<template>
|
|
9
|
+
<el-button @click="openDialog">打开表单对话框</el-button>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script setup lang="tsx">
|
|
13
|
+
import { useFormDialog } from 'el-plus'
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
const FormDialog = useFormDialog({
|
|
17
|
+
title: '用户信息',
|
|
18
|
+
formItemList:[
|
|
19
|
+
{ prop: 'name', label: '姓名', required: true },
|
|
20
|
+
{ prop: 'age', label: '年龄' },
|
|
21
|
+
],
|
|
22
|
+
dialogProps: {
|
|
23
|
+
destroyOnClose: true, // 关闭时销毁对话框内容
|
|
24
|
+
},
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
const openDialog = async () => {
|
|
28
|
+
try {
|
|
29
|
+
const formData = await FormDialog.open()
|
|
30
|
+
console.log('表单数据', formData)
|
|
31
|
+
} catch (e) {
|
|
32
|
+
console.log('取消')
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
</script>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Options
|
|
39
|
+
|
|
40
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
41
|
+
|------|------|------|--------|
|
|
42
|
+
| title | 对话框标题 | `string` | - |
|
|
43
|
+
| width | 对话框宽度 | `string` | `'80%'` |
|
|
44
|
+
| dialogProps | 对话框属性,继承自 useDialog | `DialogOptions` | - |
|
|
45
|
+
| formData | 表单数据对象 | `object` | - |
|
|
46
|
+
| formItemList | 表单项配置,参考 [EpForm](./form.md) | `FormItemProps[]` | - |
|
|
47
|
+
| onBeforeConfirm | 确认前回调,可用于额外处理 | `(formData, resolve) => Promise<void>` | - |
|
|
48
|
+
| onBeforeCancel | 取消前回调 | `(formData, resolve) => Promise<void>` | - |
|
|
49
|
+
|
|
50
|
+
## 自定义表单数据
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
const formData = reactive({
|
|
54
|
+
name: '',
|
|
55
|
+
age: '',
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
const FormDialog = useFormDialog({
|
|
59
|
+
title: '编辑用户',
|
|
60
|
+
formData, // 传入外部表单数据
|
|
61
|
+
formItemList,
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 确认前处理
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
const FormDialog = useFormDialog({
|
|
69
|
+
title: '提交表单',
|
|
70
|
+
formItemList,
|
|
71
|
+
onBeforeConfirm: async (formData, resolve) => {
|
|
72
|
+
// 可以在此处进行额外的异步操作
|
|
73
|
+
await api.submit(formData)
|
|
74
|
+
resolve(formData)
|
|
75
|
+
},
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 方法
|
|
80
|
+
|
|
81
|
+
| 方法 | 说明 | 类型 |
|
|
82
|
+
|------|------|------|
|
|
83
|
+
| open | 打开对话框并返回 Promise | `() => Promise<FormData>` |
|
|
84
|
+
| open | 打开对话框 | `() => void` |
|
|
85
|
+
| close | 关闭对话框 | `() => void` |
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
# Markdown Extension Examples
|
|
2
|
-
|
|
3
|
-
This page demonstrates some of the built-in markdown extensions provided by VitePress.
|
|
4
|
-
|
|
5
|
-
## Syntax Highlighting
|
|
6
|
-
|
|
7
|
-
VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
|
|
8
|
-
|
|
9
|
-
**Input**
|
|
10
|
-
|
|
11
|
-
````md
|
|
12
|
-
```js{4}
|
|
13
|
-
export default {
|
|
14
|
-
data () {
|
|
15
|
-
return {
|
|
16
|
-
msg: 'Highlighted!'
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
````
|
|
22
|
-
|
|
23
|
-
**Output**
|
|
24
|
-
|
|
25
|
-
```js{4}
|
|
26
|
-
export default {
|
|
27
|
-
data () {
|
|
28
|
-
return {
|
|
29
|
-
msg: 'Highlighted!'
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Custom Containers
|
|
36
|
-
|
|
37
|
-
**Input**
|
|
38
|
-
|
|
39
|
-
```md
|
|
40
|
-
::: info
|
|
41
|
-
This is an info box.
|
|
42
|
-
:::
|
|
43
|
-
|
|
44
|
-
::: tip
|
|
45
|
-
This is a tip.
|
|
46
|
-
:::
|
|
47
|
-
|
|
48
|
-
::: warning
|
|
49
|
-
This is a warning.
|
|
50
|
-
:::
|
|
51
|
-
|
|
52
|
-
::: danger
|
|
53
|
-
This is a dangerous warning.
|
|
54
|
-
:::
|
|
55
|
-
|
|
56
|
-
::: details
|
|
57
|
-
This is a details block.
|
|
58
|
-
:::
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**Output**
|
|
62
|
-
|
|
63
|
-
::: info
|
|
64
|
-
This is an info box.
|
|
65
|
-
:::
|
|
66
|
-
|
|
67
|
-
::: tip
|
|
68
|
-
This is a tip.
|
|
69
|
-
:::
|
|
70
|
-
|
|
71
|
-
::: warning
|
|
72
|
-
This is a warning.
|
|
73
|
-
:::
|
|
74
|
-
|
|
75
|
-
::: danger
|
|
76
|
-
This is a dangerous warning.
|
|
77
|
-
:::
|
|
78
|
-
|
|
79
|
-
::: details
|
|
80
|
-
This is a details block.
|
|
81
|
-
:::
|
|
82
|
-
|
|
83
|
-
## More
|
|
84
|
-
|
|
85
|
-
Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
|
|
1
|
+
# Markdown Extension Examples
|
|
2
|
+
|
|
3
|
+
This page demonstrates some of the built-in markdown extensions provided by VitePress.
|
|
4
|
+
|
|
5
|
+
## Syntax Highlighting
|
|
6
|
+
|
|
7
|
+
VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
|
|
8
|
+
|
|
9
|
+
**Input**
|
|
10
|
+
|
|
11
|
+
````md
|
|
12
|
+
```js{4}
|
|
13
|
+
export default {
|
|
14
|
+
data () {
|
|
15
|
+
return {
|
|
16
|
+
msg: 'Highlighted!'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
````
|
|
22
|
+
|
|
23
|
+
**Output**
|
|
24
|
+
|
|
25
|
+
```js{4}
|
|
26
|
+
export default {
|
|
27
|
+
data () {
|
|
28
|
+
return {
|
|
29
|
+
msg: 'Highlighted!'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Custom Containers
|
|
36
|
+
|
|
37
|
+
**Input**
|
|
38
|
+
|
|
39
|
+
```md
|
|
40
|
+
::: info
|
|
41
|
+
This is an info box.
|
|
42
|
+
:::
|
|
43
|
+
|
|
44
|
+
::: tip
|
|
45
|
+
This is a tip.
|
|
46
|
+
:::
|
|
47
|
+
|
|
48
|
+
::: warning
|
|
49
|
+
This is a warning.
|
|
50
|
+
:::
|
|
51
|
+
|
|
52
|
+
::: danger
|
|
53
|
+
This is a dangerous warning.
|
|
54
|
+
:::
|
|
55
|
+
|
|
56
|
+
::: details
|
|
57
|
+
This is a details block.
|
|
58
|
+
:::
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Output**
|
|
62
|
+
|
|
63
|
+
::: info
|
|
64
|
+
This is an info box.
|
|
65
|
+
:::
|
|
66
|
+
|
|
67
|
+
::: tip
|
|
68
|
+
This is a tip.
|
|
69
|
+
:::
|
|
70
|
+
|
|
71
|
+
::: warning
|
|
72
|
+
This is a warning.
|
|
73
|
+
:::
|
|
74
|
+
|
|
75
|
+
::: danger
|
|
76
|
+
This is a dangerous warning.
|
|
77
|
+
:::
|
|
78
|
+
|
|
79
|
+
::: details
|
|
80
|
+
This is a details block.
|
|
81
|
+
:::
|
|
82
|
+
|
|
83
|
+
## More
|
|
84
|
+
|
|
85
|
+
Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
|