| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import type {
- VbenFormSchema as FormSchema,
- VbenFormProps,
- } from '@vben/common-ui';
- import type { ComponentType } from './component';
- import { setupVbenForm, useVbenForm as useForm, z } from '@vben/common-ui';
- import { $t } from '@vben/locales';
- setupVbenForm<ComponentType>({
- config: {
- // ant design vue组件库默认都是 v-model:value
- baseModelPropName: 'value',
- // 一些组件是 v-model:checked 或者 v-model:fileList
- modelPropNameMap: {
- Checkbox: 'checked',
- Radio: 'checked',
- Switch: 'checked',
- Upload: 'fileList',
- },
- },
- defineRules: {
- // 输入项目必填国际化适配
- required: (value, _params, ctx) => {
- if (value === undefined || value === null || value.length === 0) {
- return $t('formRules.required', [ctx.label]);
- }
- return true;
- },
- // 选择项目必填国际化适配
- selectRequired: (value, _params, ctx) => {
- if (value === undefined || value === null) {
- return $t('formRules.selectRequired', [ctx.label]);
- }
- return true;
- },
- },
- });
- const useVbenForm = useForm<ComponentType>;
- export { useVbenForm, z };
- export type VbenFormSchema = FormSchema<ComponentType>;
- export type { VbenFormProps };
|