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.
Files changed (255) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +85 -85
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +15 -5
  5. package/dist/index.full.min.js +4 -4
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +4 -4
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +15 -6
  10. package/docs/CHANGELOG.md +5 -5
  11. package/docs/api-examples.md +49 -49
  12. package/docs/components/attachment.md +118 -111
  13. package/docs/components/buttons.md +179 -179
  14. package/docs/components/custom-column.md +70 -70
  15. package/docs/components/date-picker-range.md +61 -61
  16. package/docs/components/dialog.md +104 -104
  17. package/docs/components/footer-info.md +101 -101
  18. package/docs/components/form.md +211 -211
  19. package/docs/components/header.md +117 -117
  20. package/docs/components/input.md +111 -111
  21. package/docs/components/link.md +63 -63
  22. package/docs/components/search-list-page.md +91 -91
  23. package/docs/components/select.md +249 -249
  24. package/docs/components/table.md +145 -145
  25. package/docs/components/title.md +70 -70
  26. package/docs/components/use-choose-dialog.md +114 -114
  27. package/docs/components/use-confirm-dialog.md +86 -86
  28. package/docs/components/use-form-dialog.md +85 -85
  29. package/docs/guide/markdown-examples.md +85 -85
  30. package/docs/hooks/use-navigation.md +131 -131
  31. package/docs/hooks/use-utils.md +162 -162
  32. package/docs/index.md +25 -25
  33. package/docs/overview.md +99 -99
  34. package/docs/pages/detail.md +66 -66
  35. package/docs/pages/list.md +74 -74
  36. package/docs/pages/router.md +151 -151
  37. package/es/components/attachment/index.d.ts +12 -2
  38. package/es/components/attachment/index.mjs +1 -1
  39. package/es/components/attachment/index.mjs.map +1 -1
  40. package/es/components/attachment/src/attachment.d.ts +6 -0
  41. package/es/components/attachment/src/attachment.mjs +7 -1
  42. package/es/components/attachment/src/attachment.mjs.map +1 -1
  43. package/es/components/attachment/src/attachment.vue.d.ts +5 -1
  44. package/es/components/attachment/src/attachment.vue2.mjs +7 -4
  45. package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
  46. package/es/components/attachment/src/use-attachment.mjs.map +1 -1
  47. package/es/components/buttons/index.mjs.map +1 -1
  48. package/es/components/buttons/src/buttons-vue.mjs.map +1 -1
  49. package/es/components/buttons/src/buttons.mjs.map +1 -1
  50. package/es/components/custom-column/index.mjs.map +1 -1
  51. package/es/components/custom-column/src/custom-column.mjs.map +1 -1
  52. package/es/components/custom-column/src/custom-column.vue2.mjs.map +1 -1
  53. package/es/components/date-picker-range/index.mjs.map +1 -1
  54. package/es/components/date-picker-range/src/date-picker-range.mjs.map +1 -1
  55. package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
  56. package/es/components/footer-info/index.mjs.map +1 -1
  57. package/es/components/footer-info/src/footer-info.mjs.map +1 -1
  58. package/es/components/footer-info/src/footer-info.vue2.mjs.map +1 -1
  59. package/es/components/form/index.mjs.map +1 -1
  60. package/es/components/form/src/form-item-vue.mjs.map +1 -1
  61. package/es/components/form/src/form-item.mjs.map +1 -1
  62. package/es/components/form/src/form.mjs.map +1 -1
  63. package/es/components/form/src/form.vue2.mjs.map +1 -1
  64. package/es/components/form/src/hooks/use-form-item.mjs.map +1 -1
  65. package/es/components/form/src/hooks/use-form.mjs.map +1 -1
  66. package/es/components/header/index.mjs.map +1 -1
  67. package/es/components/header/src/header.mjs.map +1 -1
  68. package/es/components/header/src/header.vue2.mjs.map +1 -1
  69. package/es/components/header/src/use-header.mjs.map +1 -1
  70. package/es/components/index.mjs +1 -1
  71. package/es/components/input/index.mjs.map +1 -1
  72. package/es/components/input/src/input.mjs.map +1 -1
  73. package/es/components/input/src/input.vue2.mjs.map +1 -1
  74. package/es/components/link/index.mjs.map +1 -1
  75. package/es/components/link/src/link.mjs.map +1 -1
  76. package/es/components/link/src/link.vue2.mjs.map +1 -1
  77. package/es/components/search-list-page/index.mjs.map +1 -1
  78. package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
  79. package/es/components/search-list-page/src/search-list-page.vue2.mjs.map +1 -1
  80. package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
  81. package/es/components/select/index.mjs.map +1 -1
  82. package/es/components/select/src/select.mjs.map +1 -1
  83. package/es/components/select/src/select.vue2.mjs.map +1 -1
  84. package/es/components/select/src/use-select.mjs.map +1 -1
  85. package/es/components/table/index.mjs.map +1 -1
  86. package/es/components/table/src/table.mjs.map +1 -1
  87. package/es/components/table/src/table.vue2.mjs.map +1 -1
  88. package/es/components/table/src/use-table.mjs.map +1 -1
  89. package/es/components/title/index.mjs.map +1 -1
  90. package/es/components/title/src/title.mjs.map +1 -1
  91. package/es/components/title/src/title.vue2.mjs.map +1 -1
  92. package/es/components/title/src/use-title.mjs.map +1 -1
  93. package/es/components/uni-vue/index.mjs.map +1 -1
  94. package/es/components/uni-vue/src/uni-vue.mjs.map +1 -1
  95. package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
  96. package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
  97. package/es/components.mjs.map +1 -1
  98. package/es/directives/permission/index.mjs.map +1 -1
  99. package/es/directives/repeat-click/index.mjs.map +1 -1
  100. package/es/hooks/dialog/use-choose-dialog.mjs.map +1 -1
  101. package/es/hooks/dialog/use-confirm-dialog.mjs.map +1 -1
  102. package/es/hooks/dialog/use-dialog.mjs.map +1 -1
  103. package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
  104. package/es/hooks/use-locale.mjs.map +1 -1
  105. package/es/hooks/use-navigation.mjs.map +1 -1
  106. package/es/hooks/use-request.mjs.map +1 -1
  107. package/es/hooks/use-template-promise.mjs.map +1 -1
  108. package/es/hooks/use-utils.mjs.map +1 -1
  109. package/es/index.mjs +1 -1
  110. package/es/index.mjs.map +1 -1
  111. package/es/locale/lang/en.mjs.map +1 -1
  112. package/es/locale/lang/zh-cn.mjs.map +1 -1
  113. package/es/package.json.mjs +1 -1
  114. package/es/plugins/globalProperties.mjs.map +1 -1
  115. package/es/types/global.d.ts +30 -30
  116. package/es/types/index.d.ts +2 -2
  117. package/es/types/utils.d.ts +19 -19
  118. package/es/utils/bem.mjs.map +1 -1
  119. package/es/utils/cookie.mjs.map +1 -1
  120. package/es/utils/dom.mjs.map +1 -1
  121. package/es/utils/env.mjs.map +1 -1
  122. package/es/utils/file.mjs.map +1 -1
  123. package/es/utils/http/core/modules/interceptor.mjs.map +1 -1
  124. package/es/utils/http/core/modules/loading.mjs.map +1 -1
  125. package/es/utils/http/core/preset-interceptors.mjs.map +1 -1
  126. package/es/utils/http/core/request-client.mjs.map +1 -1
  127. package/es/utils/http/index.mjs.map +1 -1
  128. package/es/utils/mitt.mjs.map +1 -1
  129. package/es/utils/navigation.mjs.map +1 -1
  130. package/es/utils/props.mjs.map +1 -1
  131. package/es/utils/time.mjs.map +1 -1
  132. package/es/utils/utils.mjs.map +1 -1
  133. package/es/utils/with-install.mjs.map +1 -1
  134. package/global.d.ts +21 -21
  135. package/lib/components/attachment/index.d.ts +12 -2
  136. package/lib/components/attachment/index.js +1 -0
  137. package/lib/components/attachment/index.js.map +1 -1
  138. package/lib/components/attachment/src/attachment.d.ts +6 -0
  139. package/lib/components/attachment/src/attachment.js +7 -0
  140. package/lib/components/attachment/src/attachment.js.map +1 -1
  141. package/lib/components/attachment/src/attachment.vue.d.ts +5 -1
  142. package/lib/components/attachment/src/attachment.vue2.js +6 -3
  143. package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
  144. package/lib/components/attachment/src/use-attachment.js.map +1 -1
  145. package/lib/components/buttons/index.js.map +1 -1
  146. package/lib/components/buttons/src/buttons-vue.js.map +1 -1
  147. package/lib/components/buttons/src/buttons.js.map +1 -1
  148. package/lib/components/custom-column/index.js.map +1 -1
  149. package/lib/components/custom-column/src/custom-column.js.map +1 -1
  150. package/lib/components/custom-column/src/custom-column.vue2.js.map +1 -1
  151. package/lib/components/date-picker-range/index.js.map +1 -1
  152. package/lib/components/date-picker-range/src/date-picker-range.js.map +1 -1
  153. package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
  154. package/lib/components/footer-info/index.js.map +1 -1
  155. package/lib/components/footer-info/src/footer-info.js.map +1 -1
  156. package/lib/components/footer-info/src/footer-info.vue2.js.map +1 -1
  157. package/lib/components/form/index.js.map +1 -1
  158. package/lib/components/form/src/form-item-vue.js.map +1 -1
  159. package/lib/components/form/src/form-item.js.map +1 -1
  160. package/lib/components/form/src/form.js.map +1 -1
  161. package/lib/components/form/src/form.vue2.js.map +1 -1
  162. package/lib/components/form/src/hooks/use-form-item.js.map +1 -1
  163. package/lib/components/form/src/hooks/use-form.js.map +1 -1
  164. package/lib/components/header/index.js.map +1 -1
  165. package/lib/components/header/src/header.js.map +1 -1
  166. package/lib/components/header/src/header.vue2.js.map +1 -1
  167. package/lib/components/header/src/use-header.js.map +1 -1
  168. package/lib/components/index.js +1 -0
  169. package/lib/components/index.js.map +1 -1
  170. package/lib/components/input/index.js.map +1 -1
  171. package/lib/components/input/src/input.js.map +1 -1
  172. package/lib/components/input/src/input.vue2.js.map +1 -1
  173. package/lib/components/link/index.js.map +1 -1
  174. package/lib/components/link/src/link.js.map +1 -1
  175. package/lib/components/link/src/link.vue2.js.map +1 -1
  176. package/lib/components/search-list-page/index.js.map +1 -1
  177. package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
  178. package/lib/components/search-list-page/src/search-list-page.vue2.js.map +1 -1
  179. package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
  180. package/lib/components/select/index.js.map +1 -1
  181. package/lib/components/select/src/select.js.map +1 -1
  182. package/lib/components/select/src/select.vue2.js.map +1 -1
  183. package/lib/components/select/src/use-select.js.map +1 -1
  184. package/lib/components/table/index.js.map +1 -1
  185. package/lib/components/table/src/table.js.map +1 -1
  186. package/lib/components/table/src/table.vue2.js.map +1 -1
  187. package/lib/components/table/src/use-table.js.map +1 -1
  188. package/lib/components/title/index.js.map +1 -1
  189. package/lib/components/title/src/title.js.map +1 -1
  190. package/lib/components/title/src/title.vue2.js.map +1 -1
  191. package/lib/components/title/src/use-title.js.map +1 -1
  192. package/lib/components/uni-vue/index.js.map +1 -1
  193. package/lib/components/uni-vue/src/uni-vue.js.map +1 -1
  194. package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
  195. package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
  196. package/lib/components.js.map +1 -1
  197. package/lib/directives/permission/index.js.map +1 -1
  198. package/lib/directives/repeat-click/index.js.map +1 -1
  199. package/lib/hooks/dialog/use-choose-dialog.js.map +1 -1
  200. package/lib/hooks/dialog/use-confirm-dialog.js.map +1 -1
  201. package/lib/hooks/dialog/use-dialog.js.map +1 -1
  202. package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
  203. package/lib/hooks/use-locale.js.map +1 -1
  204. package/lib/hooks/use-navigation.js.map +1 -1
  205. package/lib/hooks/use-request.js.map +1 -1
  206. package/lib/hooks/use-template-promise.js.map +1 -1
  207. package/lib/hooks/use-utils.js.map +1 -1
  208. package/lib/index.js +1 -0
  209. package/lib/index.js.map +1 -1
  210. package/lib/locale/lang/en.js.map +1 -1
  211. package/lib/locale/lang/zh-cn.js.map +1 -1
  212. package/lib/package.json.js +1 -1
  213. package/lib/plugins/globalProperties.js.map +1 -1
  214. package/lib/types/global.d.ts +30 -30
  215. package/lib/types/index.d.ts +2 -2
  216. package/lib/types/utils.d.ts +19 -19
  217. package/lib/utils/bem.js.map +1 -1
  218. package/lib/utils/cookie.js.map +1 -1
  219. package/lib/utils/dom.js.map +1 -1
  220. package/lib/utils/env.js.map +1 -1
  221. package/lib/utils/file.js.map +1 -1
  222. package/lib/utils/http/core/modules/interceptor.js.map +1 -1
  223. package/lib/utils/http/core/modules/loading.js.map +1 -1
  224. package/lib/utils/http/core/preset-interceptors.js.map +1 -1
  225. package/lib/utils/http/core/request-client.js.map +1 -1
  226. package/lib/utils/http/index.js.map +1 -1
  227. package/lib/utils/mitt.js.map +1 -1
  228. package/lib/utils/navigation.js.map +1 -1
  229. package/lib/utils/props.js.map +1 -1
  230. package/lib/utils/time.js.map +1 -1
  231. package/lib/utils/utils.js.map +1 -1
  232. package/lib/utils/with-install.js.map +1 -1
  233. package/package.json +1 -1
  234. package/theme-chalk/base.css +1 -1
  235. package/theme-chalk/index.css +1 -1
  236. package/theme-chalk/src/attachment.scss +39 -39
  237. package/theme-chalk/src/base.scss +2 -2
  238. package/theme-chalk/src/buttons.scss +22 -22
  239. package/theme-chalk/src/common/common.scss +7 -4
  240. package/theme-chalk/src/common/transition.scss +9 -9
  241. package/theme-chalk/src/custom-column.scss +55 -55
  242. package/theme-chalk/src/dialog.scss +62 -62
  243. package/theme-chalk/src/footer-info.scss +18 -18
  244. package/theme-chalk/src/form.scss +80 -72
  245. package/theme-chalk/src/header.scss +19 -19
  246. package/theme-chalk/src/index.scss +15 -15
  247. package/theme-chalk/src/link.scss +5 -5
  248. package/theme-chalk/src/mixins/config.scss +3 -3
  249. package/theme-chalk/src/mixins/mixins.scss +37 -37
  250. package/theme-chalk/src/search-list-page.scss +22 -22
  251. package/theme-chalk/src/select.scss +10 -10
  252. package/theme-chalk/src/table.scss +91 -91
  253. package/theme-chalk/src/tabs.scss +55 -55
  254. package/theme-chalk/src/title.scss +52 -52
  255. 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).