AIoT前端公共UI

CommonComplexForm.vue 1.7KB

    <!-- * @Author: Devin * @Date: 2023-02-17 15:37:24 * @LastEditors: Devin * @LastEditTime: 2023-02-22 14:51:51 * @Description: 复杂表单: 1. 支持slot组件嵌入; 2. 支持动态组件插入; 3. 支持表单元素联动; --> <template> <el-form label-width="auto" :inline="true"> <el-row :gutter="20"> <template v-for="(formItem, index) in complexForms" :key="index"> <template v-if="formItem?.['childForms']"> <el-col :span="formItem?.['span'] || 12"> <common-complex-form-item :form-item="formItem" ></common-complex-form-item> </el-col> <template v-if="formItem?.['value']"> <el-col v-for="(child, childIdx) in formItem?.['childForms']?.[ formItem?.['value'] ]" :key="childIdx" :span="child?.['span'] || 12" > <common-complex-form-item :form-item="child" ></common-complex-form-item> </el-col> </template> </template> <template v-else> <el-col :span="formItem?.['span'] || 12"> <common-complex-form-item :form-item="formItem" ></common-complex-form-item> </el-col> </template> </template> </el-row> </el-form> </template> <script setup lang="ts"> import { defineProps } from 'vue'; import CommonComplexFormItem from './CommonComplexFormItem.vue'; defineProps({ complexForms: { type: Array<any>, default: () => [] } }); </script> <script lang="ts"> export default { name: 'CommonComplexForm' }; </script> <style scoped lang="scss"></style>