yanzhen-design-vue
Version:
40 lines (39 loc) • 888 B
JavaScript
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
};