|
@@ -1,5 +1,11 @@
|
|
|
<template>
|
|
|
- <Form v-bind="{ ...$attrs, ...$props }" :class="getFormClass" ref="formElRef" :model="formModel">
|
|
|
+ <Form
|
|
|
+ v-bind="{ ...$attrs, ...$props }"
|
|
|
+ :class="getFormClass"
|
|
|
+ ref="formElRef"
|
|
|
+ :model="formModel"
|
|
|
+ @keypress.enter="handleEnterPress"
|
|
|
+ >
|
|
|
<Row :style="getRowWrapStyle">
|
|
|
<slot name="formHeader"></slot>
|
|
|
<template v-for="schema in getSchema" :key="schema.field">
|
|
@@ -81,11 +87,9 @@
|
|
|
const { prefixCls } = useDesign('basic-form');
|
|
|
|
|
|
// Get the basic configuration of the form
|
|
|
- const getProps = computed(
|
|
|
- (): FormProps => {
|
|
|
- return { ...props, ...unref(propsRef) } as FormProps;
|
|
|
- }
|
|
|
- );
|
|
|
+ const getProps = computed((): FormProps => {
|
|
|
+ return { ...props, ...unref(propsRef) } as FormProps;
|
|
|
+ });
|
|
|
|
|
|
const getFormClass = computed(() => {
|
|
|
return [
|
|
@@ -97,12 +101,10 @@
|
|
|
});
|
|
|
|
|
|
// Get uniform row style
|
|
|
- const getRowWrapStyle = computed(
|
|
|
- (): CSSProperties => {
|
|
|
- const { baseRowStyle = {} } = unref(getProps);
|
|
|
- return baseRowStyle;
|
|
|
- }
|
|
|
- );
|
|
|
+ const getRowWrapStyle = computed((): CSSProperties => {
|
|
|
+ const { baseRowStyle = {} } = unref(getProps);
|
|
|
+ return baseRowStyle;
|
|
|
+ });
|
|
|
|
|
|
const getSchema = computed((): FormSchema[] => {
|
|
|
const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any);
|
|
@@ -213,6 +215,17 @@
|
|
|
formModel[key] = value;
|
|
|
}
|
|
|
|
|
|
+ function handleEnterPress(e: KeyboardEvent) {
|
|
|
+ const { autoSubmitOnEnter } = unref(getProps);
|
|
|
+ if (!autoSubmitOnEnter) return;
|
|
|
+ if (e.key === 'Enter' && e.target && e.target instanceof HTMLElement) {
|
|
|
+ const target: HTMLElement = e.target as HTMLElement;
|
|
|
+ if (target && target.tagName && target.tagName.toUpperCase() == 'INPUT') {
|
|
|
+ handleSubmit();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
const formActionType: Partial<FormActionType> = {
|
|
|
getFieldsValue,
|
|
|
setFieldsValue,
|
|
@@ -236,6 +249,7 @@
|
|
|
|
|
|
return {
|
|
|
handleToggleAdvanced,
|
|
|
+ handleEnterPress,
|
|
|
formModel,
|
|
|
defaultValueRef,
|
|
|
advanceState,
|