UNPKG

yanzhen-design-vue

Version:

40 lines (39 loc) 888 B
import { mergeProps } from "vue"; import { isEmptyObject, isObject, isArray } from "@yanzhen-libs/utils"; import { isFunction } from "lodash-es"; function handleSchema(schema) { let { grid = false, use = false, row, body, readOnly, type } = schema ?? {}; if (!grid) { switch (true) { case (typeof row === "boolean" && row): case !isEmptyObject(row): grid = true; break; } } if (!use) { switch (true) { case type === "form": use = true; break; } } const rowOption = row && isObject(row) ? row : {}; const rowProps = mergeProps( { gutter: [8, 8] }, rowOption ); return { ...schema, readOnly: typeof readOnly === "boolean" ? readOnly : false, grid, row: rowProps, use, body: isArray(body) ? body : isFunction(body) ? body : [body] }; } export { handleSchema };