|
@@ -4,7 +4,7 @@
|
|
|
v-if="isShow"
|
|
v-if="isShow"
|
|
|
:class="[
|
|
:class="[
|
|
|
'dynamic-form-item-wrapper',
|
|
'dynamic-form-item-wrapper',
|
|
|
- finalOptions?.nestObjectMargin !== false && item.nestObjectMargin !== false ? 'nest-with-margin' : '',
|
|
|
|
|
|
|
+ nestObjectMargin !== false && item.nestObjectMargin !== false ? 'nest-with-margin' : '',
|
|
|
]"
|
|
]"
|
|
|
:data-dynamic-form-item="item.name"
|
|
:data-dynamic-form-item="item.name"
|
|
|
:data-dynamic-form-item-type="item.type"
|
|
:data-dynamic-form-item-type="item.type"
|
|
@@ -18,7 +18,7 @@
|
|
|
v-if="item.type === 'object'"
|
|
v-if="item.type === 'object'"
|
|
|
:model="model"
|
|
:model="model"
|
|
|
:modelWithDefault="finalModel"
|
|
:modelWithDefault="finalModel"
|
|
|
- :suppressEmptyError="editmode || finalOptions?.suppressEmptyError || item.suppressEmptyError"
|
|
|
|
|
|
|
+ :suppressEmptyError="editmode || suppressEmptyError || item.suppressEmptyError"
|
|
|
:name="name"
|
|
:name="name"
|
|
|
checkType="object"
|
|
checkType="object"
|
|
|
>
|
|
>
|
|
@@ -53,9 +53,11 @@
|
|
|
@update:model="(v: unknown) => (model as IDynamicFormObject)[child.name] = v"
|
|
@update:model="(v: unknown) => (model as IDynamicFormObject)[child.name] = v"
|
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemContainer>
|
|
</DynamicFormItemContainer>
|
|
|
</DynamicFormCheckEmpty>
|
|
</DynamicFormCheckEmpty>
|
|
|
<!--对象组-->
|
|
<!--对象组-->
|
|
@@ -63,7 +65,7 @@
|
|
|
v-else-if="item.type === 'object-group'"
|
|
v-else-if="item.type === 'object-group'"
|
|
|
:model="model"
|
|
:model="model"
|
|
|
:modelWithDefault="finalModel"
|
|
:modelWithDefault="finalModel"
|
|
|
- :suppressEmptyError="editmode || finalOptions?.suppressEmptyError || item.suppressEmptyError"
|
|
|
|
|
|
|
+ :suppressEmptyError="editmode || suppressEmptyError || item.suppressEmptyError"
|
|
|
:name="name"
|
|
:name="name"
|
|
|
checkType="object"
|
|
checkType="object"
|
|
|
>
|
|
>
|
|
@@ -86,9 +88,11 @@
|
|
|
@update:model="(v: unknown) => (model as IDynamicFormObject)[child.name] = v"
|
|
@update:model="(v: unknown) => (model as IDynamicFormObject)[child.name] = v"
|
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemContainer>
|
|
</DynamicFormItemContainer>
|
|
|
</Row>
|
|
</Row>
|
|
|
</FormGroup>
|
|
</FormGroup>
|
|
@@ -113,9 +117,11 @@
|
|
|
@update:model="(v: unknown) => (parentModel as IDynamicFormObject)[child.name] = v"
|
|
@update:model="(v: unknown) => (parentModel as IDynamicFormObject)[child.name] = v"
|
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemContainer>
|
|
</DynamicFormItemContainer>
|
|
|
</Row>
|
|
</Row>
|
|
|
</FormGroup>
|
|
</FormGroup>
|
|
@@ -149,9 +155,11 @@
|
|
|
@update:model="(v: unknown) => (parentModel as IDynamicFormObject)[child.name] = v"
|
|
@update:model="(v: unknown) => (parentModel as IDynamicFormObject)[child.name] = v"
|
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemContainer>
|
|
</DynamicFormItemContainer>
|
|
|
</Row>
|
|
</Row>
|
|
|
</template>
|
|
</template>
|
|
@@ -161,7 +169,7 @@
|
|
|
v-else-if="item.type === 'array-single'"
|
|
v-else-if="item.type === 'array-single'"
|
|
|
:model="model"
|
|
:model="model"
|
|
|
:modelWithDefault="finalModel"
|
|
:modelWithDefault="finalModel"
|
|
|
- :suppressEmptyError="editmode || finalOptions?.suppressEmptyError || item.suppressEmptyError"
|
|
|
|
|
|
|
+ :suppressEmptyError="editmode || suppressEmptyError || item.suppressEmptyError"
|
|
|
:name="name"
|
|
:name="name"
|
|
|
checkType="array"
|
|
checkType="array"
|
|
|
>
|
|
>
|
|
@@ -187,6 +195,7 @@
|
|
|
:deleteCallback="item.deleteChildrenCallback"
|
|
:deleteCallback="item.deleteChildrenCallback"
|
|
|
v-bind="(item.additionalProps as IDynamicFormObject)"
|
|
v-bind="(item.additionalProps as IDynamicFormObject)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #addButton="props">
|
|
<template #addButton="props">
|
|
|
<slot name="arrayButtonAdd" :onClick="props.onClick" />
|
|
<slot name="arrayButtonAdd" :onClick="props.onClick" />
|
|
|
</template>
|
|
</template>
|
|
@@ -197,6 +206,7 @@
|
|
|
:onDownClick="props.onDownClick"
|
|
:onDownClick="props.onDownClick"
|
|
|
/>
|
|
/>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
<template #child="{ item, pitem, kname, model: child, onUpdateValue, isFirst, isLast }">
|
|
<template #child="{ item, pitem, kname, model: child, onUpdateValue, isFirst, isLast }">
|
|
|
<DynamicFormItemContainer
|
|
<DynamicFormItemContainer
|
|
|
:item="item"
|
|
:item="item"
|
|
@@ -221,7 +231,7 @@
|
|
|
v-else-if="item.type === 'array-object'"
|
|
v-else-if="item.type === 'array-object'"
|
|
|
:model="model"
|
|
:model="model"
|
|
|
:modelWithDefault="finalModel"
|
|
:modelWithDefault="finalModel"
|
|
|
- :suppressEmptyError="editmode || finalOptions?.suppressEmptyError || item.suppressEmptyError"
|
|
|
|
|
|
|
+ :suppressEmptyError="editmode || suppressEmptyError || item.suppressEmptyError"
|
|
|
:name="name"
|
|
:name="name"
|
|
|
checkType="array"
|
|
checkType="array"
|
|
|
>
|
|
>
|
|
@@ -249,6 +259,7 @@
|
|
|
:deleteCallback="item.deleteChildrenCallback"
|
|
:deleteCallback="item.deleteChildrenCallback"
|
|
|
v-bind="(item.additionalProps as IDynamicFormObject)"
|
|
v-bind="(item.additionalProps as IDynamicFormObject)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #addButton="props">
|
|
<template #addButton="props">
|
|
|
<slot name="arrayButtonAdd" :onClick="props.onClick" />
|
|
<slot name="arrayButtonAdd" :onClick="props.onClick" />
|
|
|
</template>
|
|
</template>
|
|
@@ -259,6 +270,7 @@
|
|
|
:onDownClick="props.onDownClick"
|
|
:onDownClick="props.onDownClick"
|
|
|
/>
|
|
/>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
<template #child="{ item, pitem, kname, model: child, onUpdateValue, isFirst, isLast }">
|
|
<template #child="{ item, pitem, kname, model: child, onUpdateValue, isFirst, isLast }">
|
|
|
<DynamicFormItemContainer
|
|
<DynamicFormItemContainer
|
|
|
:item="item"
|
|
:item="item"
|
|
@@ -273,9 +285,11 @@
|
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
:disabled="disabled || evaluateCallback(item.disabled)"
|
|
|
@update:model="(v: unknown) => onUpdateValue(v)"
|
|
@update:model="(v: unknown) => onUpdateValue(v)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemContainer>
|
|
</DynamicFormItemContainer>
|
|
|
</template>
|
|
</template>
|
|
|
</FormArrayGroup>
|
|
</FormArrayGroup>
|
|
@@ -283,7 +297,7 @@
|
|
|
</DynamicFormItemNormal>
|
|
</DynamicFormItemNormal>
|
|
|
</DynamicFormCheckEmpty>
|
|
</DynamicFormCheckEmpty>
|
|
|
<!--正常条目-->
|
|
<!--正常条目-->
|
|
|
- <DynamicFormItemNormal
|
|
|
|
|
|
|
+ <DynamicFormItemNormal
|
|
|
v-else
|
|
v-else
|
|
|
:item="item"
|
|
:item="item"
|
|
|
:parent="parent"
|
|
:parent="parent"
|
|
@@ -296,9 +310,11 @@
|
|
|
:isLast="isLast"
|
|
:isLast="isLast"
|
|
|
@update:model="(v: unknown) => $emit('update:model', v)"
|
|
@update:model="(v: unknown) => $emit('update:model', v)"
|
|
|
>
|
|
>
|
|
|
|
|
+ <!-- #ifndef MP -->
|
|
|
<template #formCeil="values">
|
|
<template #formCeil="values">
|
|
|
<slot name="formCeil" :data="values.data" />
|
|
<slot name="formCeil" :data="values.data" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <!-- #endif -->
|
|
|
</DynamicFormItemNormal>
|
|
</DynamicFormItemNormal>
|
|
|
</Col>
|
|
</Col>
|
|
|
</template>
|
|
</template>
|
|
@@ -356,11 +372,12 @@ defineSlots<{
|
|
|
}>()
|
|
}>()
|
|
|
|
|
|
|
|
const propsP = toRefs(props);
|
|
const propsP = toRefs(props);
|
|
|
-const finalOptions = inject<Ref<IDynamicFormOptions>>('finalOptions');
|
|
|
|
|
|
|
+const formRules = inject<Ref<Rules>>('formRules');
|
|
|
|
|
+const nestObjectMargin = inject<Ref<boolean>>('nestObjectMargin');
|
|
|
|
|
+const suppressEmptyError = inject<Ref<boolean>>('suppressEmptyError');
|
|
|
const globalParams = inject<Ref<IDynamicFormObject>>('globalParams');
|
|
const globalParams = inject<Ref<IDynamicFormObject>>('globalParams');
|
|
|
const formRef = inject<IDynamicFormRef>('formRef');
|
|
const formRef = inject<IDynamicFormRef>('formRef');
|
|
|
const editmode = inject('editmode', false);
|
|
const editmode = inject('editmode', false);
|
|
|
-const formName = inject('formName', '')
|
|
|
|
|
|
|
|
|
|
//判断是否显示当前条目
|
|
//判断是否显示当前条目
|
|
|
const isShow = computed(() => props.item.show === undefined || evaluateCallback(props.item.show));
|
|
const isShow = computed(() => props.item.show === undefined || evaluateCallback(props.item.show));
|
|
@@ -389,16 +406,13 @@ function evaluateCallback<T>(val: T|IDynamicFormItemCallback<T>) {
|
|
|
item: propsP.item.value,
|
|
item: propsP.item.value,
|
|
|
form: formRef!,
|
|
form: formRef!,
|
|
|
formGlobalParams: globalParams?.value || {},
|
|
formGlobalParams: globalParams?.value || {},
|
|
|
- formRules: (finalOptions?.value.formRules ?? {}) as Record<string, Rules>,
|
|
|
|
|
|
|
+ formRules: formRules?.value ?? {} as Record<string, Rules>,
|
|
|
isFirst: propsP.isFirst.value,
|
|
isFirst: propsP.isFirst.value,
|
|
|
isLast: propsP.isLast.value,
|
|
isLast: propsP.isLast.value,
|
|
|
}
|
|
}
|
|
|
);
|
|
);
|
|
|
return val as T;
|
|
return val as T;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-provide<IEvaluateCallback>('evaluateCallback', evaluateCallback);
|
|
|
|
|
-
|
|
|
|
|
defineOptions({
|
|
defineOptions({
|
|
|
name: 'DynamicFormItemContainer',
|
|
name: 'DynamicFormItemContainer',
|
|
|
options: {
|
|
options: {
|