Files
cdTestPlant3/chengduTestPlant/src/components/ma-form/formItem/form-component.vue
2023-06-15 20:13:46 +08:00

39 lines
1.2 KiB
Vue

<template>
<ma-form-item
v-if="typeof props.component.display == 'undefined' || props.component.display === true"
:component="props.component"
:custom-field="props.customField"
>
<slot :name="`form-${props.component.dataIndex}`" v-bind="props.component">
<component :is="props.component.dataIndex" :component="props.component" :customField="props.customField" />
</slot>
</ma-form-item>
</template>
<script setup>
import { onMounted, getCurrentInstance, watch } from "vue"
import { get, set } from "lodash"
import MaFormItem from "./form-item.vue"
import { maEvent } from "../js/formItemMixin.js"
const props = defineProps({
component: Object,
customField: { type: String, default: undefined }
})
const app = getCurrentInstance().appContext.app
if (
props.component.formType === "component" &&
props.component.component &&
!app._context.components[props.component.dataIndex]
) {
app.component(props.component.dataIndex, props.component.component)
}
maEvent.handleCommonEvent(props.component, "onCreated")
onMounted(() => {
maEvent.handleCommonEvent(props.component, "onMounted")
})
</script>