|
|
|
@ -1,5 +1,4 @@
|
|
|
|
<script setup lang="ts">
|
|
|
|
<script setup lang="ts">
|
|
|
|
import type { GenericObject } from 'vee-validate';
|
|
|
|
|
|
|
|
import type { ZodTypeAny } from 'zod';
|
|
|
|
import type { ZodTypeAny } from 'zod';
|
|
|
|
|
|
|
|
|
|
|
|
import type { FormRenderProps, FormSchema, FormShape } from '../types';
|
|
|
|
import type { FormRenderProps, FormSchema, FormShape } from '../types';
|
|
|
|
@ -7,7 +6,9 @@ import type { FormRenderProps, FormSchema, FormShape } from '../types';
|
|
|
|
import { computed } from 'vue';
|
|
|
|
import { computed } from 'vue';
|
|
|
|
|
|
|
|
|
|
|
|
import { Form } from '@vben-core/shadcn-ui';
|
|
|
|
import { Form } from '@vben-core/shadcn-ui';
|
|
|
|
import { cn, isString, merge } from '@vben-core/shared/utils';
|
|
|
|
import { cn, isString } from '@vben-core/shared/utils';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { type GenericObject } from 'vee-validate';
|
|
|
|
|
|
|
|
|
|
|
|
import { provideFormRenderProps } from './context';
|
|
|
|
import { provideFormRenderProps } from './context';
|
|
|
|
import { useExpandable } from './expandable';
|
|
|
|
import { useExpandable } from './expandable';
|
|
|
|
@ -70,7 +71,8 @@ const formCollapsed = computed(() => {
|
|
|
|
return props.collapsed && isCalculated.value;
|
|
|
|
return props.collapsed && isCalculated.value;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const computedSchema = computed((): FormSchema[] => {
|
|
|
|
const computedSchema = computed(
|
|
|
|
|
|
|
|
(): ({ commonComponentProps: Record<string, any> } & FormSchema)[] => {
|
|
|
|
const {
|
|
|
|
const {
|
|
|
|
componentProps = {},
|
|
|
|
componentProps = {},
|
|
|
|
controlClass = '',
|
|
|
|
controlClass = '',
|
|
|
|
@ -83,7 +85,7 @@ const computedSchema = computed((): FormSchema[] => {
|
|
|
|
labelWidth = 100,
|
|
|
|
labelWidth = 100,
|
|
|
|
wrapperClass = '',
|
|
|
|
wrapperClass = '',
|
|
|
|
} = props.commonConfig;
|
|
|
|
} = props.commonConfig;
|
|
|
|
return (props.schema || []).map((schema, index): FormSchema => {
|
|
|
|
return (props.schema || []).map((schema, index) => {
|
|
|
|
const keepIndex = keepFormItemIndex.value;
|
|
|
|
const keepIndex = keepFormItemIndex.value;
|
|
|
|
|
|
|
|
|
|
|
|
const hidden =
|
|
|
|
const hidden =
|
|
|
|
@ -99,7 +101,8 @@ const computedSchema = computed((): FormSchema[] => {
|
|
|
|
labelWidth,
|
|
|
|
labelWidth,
|
|
|
|
wrapperClass,
|
|
|
|
wrapperClass,
|
|
|
|
...schema,
|
|
|
|
...schema,
|
|
|
|
componentProps: merge({}, schema.componentProps, componentProps),
|
|
|
|
commonComponentProps: componentProps,
|
|
|
|
|
|
|
|
componentProps: schema.componentProps,
|
|
|
|
controlClass: cn(controlClass, schema.controlClass),
|
|
|
|
controlClass: cn(controlClass, schema.controlClass),
|
|
|
|
formFieldProps: {
|
|
|
|
formFieldProps: {
|
|
|
|
...formFieldProps,
|
|
|
|
...formFieldProps,
|
|
|
|
@ -114,7 +117,8 @@ const computedSchema = computed((): FormSchema[] => {
|
|
|
|
labelClass: cn(labelClass, schema.labelClass),
|
|
|
|
labelClass: cn(labelClass, schema.labelClass),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
);
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
|