yanzhen-design-vue
Version:
68 lines (67 loc) • 2.84 kB
JavaScript
import { defineComponent, openBlock, createElementBlock, Fragment, createVNode, unref, withCtx, renderList, createBlock, mergeProps, isRef, normalizeProps } from "vue";
import { PageProvider } from "@yanzhen-lowcode/core";
import { YzForm } from "../../form/index.mjs";
import { YzRow } from "../../row/index.mjs";
import "./form-provider-item.vue.mjs";
import { useFormProvider } from "./use-form-provider.mjs";
import { formProviderName, formProviderProps, formProviderEmits, formProviderOptions } from "./form-provider.mjs";
import _sfc_main$1 from "./form-provider-item.vue2.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
...{ name: formProviderName },
__name: "form-provider",
props: formProviderProps,
emits: formProviderEmits,
setup(__props, { emit: __emit }) {
const { ns } = formProviderOptions;
const props = __props;
const emits = __emit;
const {
ctx: { pageProviderProps, schemaRef, modelRef, rulesRef, formSchema, rowSchema, bodySchema },
templates: { DefinePageProviderItem, ReusablePageProviderItem }
} = useFormProvider(props, emits);
return (_ctx, _cache) => {
return openBlock(), createElementBlock(Fragment, null, [
createVNode(unref(DefinePageProviderItem), null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(bodySchema), (schema) => {
return openBlock(), createBlock(_sfc_main$1, {
key: schema.key,
schema
}, null, 8, ["schema"]);
}), 128))
]),
_: 1
}),
createVNode(unref(PageProvider), mergeProps({
value: unref(modelRef),
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(modelRef) ? modelRef.value = $event : null),
schema: unref(schemaRef)
}, unref(pageProviderProps)), {
body: withCtx(() => [
createVNode(unref(YzForm), mergeProps({
ref: unref(formSchema).ref,
model: unref(modelRef),
rules: unref(rulesRef)
}, unref(formSchema).props, {
class: [unref(ns).b()]
}), {
default: withCtx(() => [
unref(rowSchema) ? (openBlock(), createBlock(unref(YzRow), normalizeProps(mergeProps({ key: 0 }, unref(rowSchema).props)), {
default: withCtx(() => [
createVNode(unref(ReusablePageProviderItem))
]),
_: 1
}, 16)) : (openBlock(), createBlock(unref(ReusablePageProviderItem), { key: 1 }))
]),
_: 1
}, 16, ["model", "rules", "class"])
]),
_: 1
}, 16, ["value", "schema"])
], 64);
};
}
});
export {
_sfc_main as default
};