UNPKG

mt-flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS

93 lines (92 loc) 2.85 kB
import * as z from "zod"; import { commonListInputSchema } from "./_common"; //对应后端的ResFormField表 export const ResFormFieldSchema = z.object({ id: z.string(), type: z.string().optional(), name: z.string(), label: z.string().optional(), placeHolder: z.string().optional(), defaultValue: z.string().optional(), icon: z.string().optional(), cn: z.string().optional(), sortNum: z.number().optional(), editable: z.boolean().optional(), bindTo: z.string().optional(), meta: z.any().optional(), editMode: z.string().optional(), required: z.boolean().optional(), min: z.number().optional(), max: z.number().optional(), }); //对应后端的ResFormF表 export const ResFormSchema = z.object({ id: z.number(), //这个字段在前端应该用不上。 resViewID: z.number().optional(), title: z.string(), res: z.string(), //表单的用途,res 表示 跟resView 挂钩的表单,standalone 表示独立用途的表单。 formType: z.string().optional(), description: z.string().optional(), //如果表单FormType为res,则使用这个字段区分用途,例如,创建、编辑、查询对话框等。 action: z.string(), cn: z.string().optional(), icon: z.string().optional(), attrs: z.any(), fields: z.array(ResFormFieldSchema), }); export const ResActionSchema = z.object({ id: z.number(), name: z.string(), actionKind: z.string(), title: z.string().optional(), viewType: z.string(), cn: z.string().optional(), enabled: z.boolean(), attrs: z.any().optional(), }); export const resViewSchema = z.lazy(() => { return z.object({ id: z.number(), pid: z.number(), name: z.string(), res: z.string().optional(), subViews: z.array(resViewSchema), parentIdField: z.string().optional(), viewType: z.string().optional(), title: z.string().optional(), sortNum: z.number().optional(), description: z.string().optional(), forms: z.array(ResFormSchema), formId: z.number(), actions: z.array(z.any()).optional() }); }); export const resListSchema = commonListInputSchema.extend({ res: z.string(), params: z.any() }); export const resByIdSchema = commonListInputSchema.extend({ res: z.string(), params: z.object({ id: z.string().or(z.number()) }) }); export const resUpdateSchema = commonListInputSchema.extend({ res: z.string(), params: z.any() }); export const resCreateSchema = commonListInputSchema.extend({ res: z.string(), params: z.any() }); export const resDeleteSchema = z.object({ res: z.string(), params: z.object({ id: z.string().or(z.number()) }) }); export const resGetFormSchema = z.object({ res: z.string(), });