您的位置:首页 > Web前端 > Vue.js

vue+element创建动态的form表单及动态生成表格的行和列

2019-05-21 07:07 5710 查看

  动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言.

  最后我使用了笨方法,针对各个表单写好通用的组件,然后根据type用v-if来渲染对应的表单,数据,事件什么的都可以动态的传进去,比较好用

<el-form size="mini" class="lj-form lj-form-s1">
<div v-for="(item,i) in table.customerList" :key="i">
<!-- 0单行文本 -->
<el-form-item
:label="item.field_title + ': '"
v-if="item.field_type == '0' && item.is_show == '1'"
>
<el-input v-model="item.value" :placeholder="item.placeholder"></el-input>
</el-form-item>
<!-- 3下拉菜单 -->
<el-form-item
:label="item.field_title + ': '"
v-if="item.field_type == '3' && item.is_show == '1'"
>
<el-select v-model="item.value" :placeholder="item.placeholder">
<span v-for="(item1,i) in item.field_value" :key="i">
<el-option :label="item1" :value="item1"></el-option>
</span>
</el-select>
</el-form-item>
</div>
</el-form>

  动态生成表格的行和列,主要是要求后端返回的数据格式,根据数据来动态渲染

  注意点:这里两个数组 :    表格字段数据: titleData: [],   表格详细数据: tables: [], 数据通过字段来查找/渲染成表格的

<template>
<div class="boxShadow">
<div style="margin-top: 20px">
<el-table
:data="tables"
ref="multipleTable"
tooltip-effect="dark"
style="width: 100%"
@selection-change='selectArInfo'>
<el-table-column type="selection" width="45px"></el-table-column>
<el-table-column label="序号" width="62px" type="index">
</el-table-column>
<template v-for='(col) in titleData'>
<el-table-column
sortable
:show-overflow-tooltip="true"
:prop="col.dataItem"
:label="col.dataName"
:key="col.dataItem"
width="124px">
</el-table-column>
</template>
<el-table-column label="操作" width="80" align="center">
<template slot-scope="scope">
<el-button size="mini" class="del-com" @click="delTabColOne()" ><i class="iconfont icon-shanchu"></i></el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>

data () {
return {
tables: [{
xiaoxue: '福兰',
chuzhong: '加芳',
gaozhong: '蒲庙',
daxue: '西安',
yanjiusheng: '西安',
shangban: '北京'
}, {
xiaoxue: '南坊',
chuzhong: '礼泉',
gaozhong: '礼泉',
daxue: '西安',
yanjiusheng: '西安',
shangban: '南坊'
}, ],
titleData: [{
dataItem: 'xiaoxue',
dataName: '小学'
}, {
dataItem: 'chuzhong',
dataName: '初中'
}, {
dataItem: 'gaozhong',
dataName: '高中'
}, {
dataItem: 'daxue',
dataName: '大学'
}, {
dataItem: 'yanjiusheng',
dataName: '研究生'
}, {
dataItem: 'shangban',
dataName: '上班'
}]
}

总结

以上所述是小编给大家介绍的vue+element创建动态的form表单及动态生成表格的行和列,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: