AIoT前端公共UI

ComplexFormDemo.vue 2.8KB

    <!-- * @Author: Devin * @Date: 2023-02-07 14:24:35 * @LastEditors: Devin * @LastEditTime: 2023-02-17 16:47:02 * @Description: card-demo --> <template> <div class="complex-form-demo"> <el-row :gutter="20"> <el-col :span="12"> <!-- <common-complex-form :complex-forms="complexForms" ></common-complex-form> --> </el-col> <el-col :span="12"> <common-complex-form :complex-forms="complexForms" :form-values="formValues" > <template #slotName> <el-input v-model="formValues.slotName"></el-input> </template> <template #slotAge> <el-input v-model="formValues.slotAge"></el-input> </template> </common-complex-form> </el-col> </el-row> </div> </template> <script setup lang="ts"> import { ref, shallowRef } from 'vue'; import DemoComponent from './form-config/DemoComponent.vue'; const dom = shallowRef({ demo: DemoComponent }); // 复杂表单 const complexForms = ref<any>([ { label: '名称', name: 'name', type: 'input', attrs: { placeholder: '请输入名称' } }, { label: '标识符', name: 'log', type: 'input', attrs: { placeholder: '请输入标识符' } }, { label: '数据类型', name: 'dataType', type: 'select', attrs: { placeholder: '请选择数据类型', clearable: true, options: [ { label: '文本', value: 'text' }, { label: '数字', value: 'number' }, { label: '日期', value: 'date' }, { label: '枚举', value: 'enum' } ] }, childForms: { text: [{ label: '读写类型', name: 'type', type: 'radio' }], number: [ { label: '精度', name: 'jingdu', type: 'input' }, { label: '单位', name: 'unit', type: 'select' }, { label: '读写类型', name: 'type', type: 'radio' } ], date: [ { label: '时间格式', name: 'dateformate', type: 'input' }, { label: '读写类型', name: 'type', type: 'radio' } ], enum: [{ label: '读写类型', name: 'type', type: 'radio-group' }] } }, { label: '数据长度', name: 'data', type: 'input', attrs: { placeholder: '请输入数据长度' } }, { label: 'commont测试', name: 'data', type: 'component', componentId: dom.value.demo }, { label: 'slot', name: 'slotName', type: 'slot', slotName: 'slotName' }, { label: 'slot', name: 'slotAge', type: 'slot', slotName: 'slotAge' } ]); const formValues = ref<any>({ name: '', log: '', dataType: '', type: '', jingdu: '', unit: '', dateformate: '', data: '' }); </script> <style scoped lang="scss"> .complex-form-demo { padding: 20px; background: #fff; } </style>