feat: add `confirmDisabled` for `Dialog` (#4959)
							parent
							
								
									f85badf482
								
							
						
					
					
						commit
						dedba18553
					
				|  | @ -93,13 +93,14 @@ const [Modal, modalApi] = useVbenModal({ | |||
| | modal | 显示遮罩 | `boolean` | `true` | | ||||
| | header | 显示header | `boolean` | `true` | | ||||
| | footer | 显示footer | `boolean\|slot` | `true` | | ||||
| | confirmDisabled | 禁用确认按钮 | `boolean` | `false` | | ||||
| | confirmLoading | 确认按钮loading状态 | `boolean` | `false` | | ||||
| | closeOnClickModal | 点击遮罩关闭弹窗 | `boolean` | `true` | | ||||
| | closeOnPressEscape | esc 关闭弹窗 | `boolean` | `true` | | ||||
| | confirmText | 确认按钮文本 | `string\|slot` | `确认` | | ||||
| | cancelText | 取消按钮文本 | `string\|slot` | `取消` | | ||||
| | showCancelButton | 显示取消按钮 | `boolean` | `true` | | ||||
| | showConfirmButton | 显示确认按钮文本 | `boolean` | `true` | | ||||
| | showConfirmButton | 显示确认按钮 | `boolean` | `true` | | ||||
| | class | modal的class,宽度通过这个配置 | `string` | - | | ||||
| | contentClass | modal内容区域的class | `string` | - | | ||||
| | footerClass | modal底部区域的class | `string` | - | | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ export class ModalApi { | |||
|       class: '', | ||||
|       closeOnClickModal: true, | ||||
|       closeOnPressEscape: true, | ||||
|       confirmDisabled: false, | ||||
|       confirmLoading: false, | ||||
|       contentClass: '', | ||||
|       draggable: false, | ||||
|  |  | |||
|  | @ -35,6 +35,10 @@ export interface ModalProps { | |||
|    * @default true | ||||
|    */ | ||||
|   closeOnPressEscape?: boolean; | ||||
|   /** | ||||
|    * 禁用确认按钮 | ||||
|    */ | ||||
|   confirmDisabled?: boolean; | ||||
|   /** | ||||
|    * 确定按钮 loading | ||||
|    * @default false | ||||
|  |  | |||
|  | @ -59,6 +59,7 @@ const { | |||
|   closable, | ||||
|   closeOnClickModal, | ||||
|   closeOnPressEscape, | ||||
|   confirmDisabled, | ||||
|   confirmLoading, | ||||
|   confirmText, | ||||
|   contentClass, | ||||
|  | @ -285,6 +286,7 @@ function handleFocusOutside(e: Event) { | |||
|           <component | ||||
|             :is="components.PrimaryButton || VbenButton" | ||||
|             v-if="showConfirmButton" | ||||
|             :disabled="confirmDisabled" | ||||
|             :loading="confirmLoading" | ||||
|             @click="() => modalApi?.onConfirm()" | ||||
|           > | ||||
|  |  | |||
|  | @ -22,10 +22,10 @@ const [Modal, modalApi] = useVbenModal({ | |||
| }); | ||||
| 
 | ||||
| function handleUpdate(len: number) { | ||||
|   modalApi.setState({ loading: true }); | ||||
|   modalApi.setState({ confirmDisabled: true, loading: true }); | ||||
|   setTimeout(() => { | ||||
|     list.value = Array.from({ length: len }, (_v, k) => k + 1); | ||||
|     modalApi.setState({ loading: false }); | ||||
|     modalApi.setState({ confirmDisabled: false, loading: false }); | ||||
|   }, 2000); | ||||
| } | ||||
| </script> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Netfan
						Netfan