1、需求
页面样式

前后端传递的数据格式

2、描述
页面需要在该区域显示当前所有的化学成分,同时前后端传递的数据格式要求是object。
很无脑费力的一种方法是有N种化学元素,页面绘制N个元素、N*2个input框,然年后data中对应变量的Composition属性中定义N个max、N个min。有这种做法的人可以考虑把脑子扔掉了。且不说绘制及绑定有多麻烦,后期拓展也是问题。
第二种,循环遍历化学元素表,动态生成页面。在v-mode绑定属性值时进行动态拼接。例如下面的addMarkInfoForm.Composition[item.type + 'min']。这就提供给我们一个新思路,v-model的值是可以动态绑定的。
<ul class="compositionList clearfix">
<li v-for="item in tempChemicalElementList" :key="item.key" class="addmaterialInput">
<span>{{ item.value }}:</span>
<el-input type="number"
v-model="addMarkInfoForm.Composition[item.type + 'min']" placeholder="min" />~
<el-input type="number"
v-model="addMarkInfoForm.Composition[item.type + 'max']" placeholder="max" />
</li>
</ul>
同样,在可编辑动态表格(动态表头,可编辑)中,也可以使用v-model绑定动态列的prop
<el-table :data="tableData" fit style="width: 100%;">
<el-table-column label="序号" align="center" width="60">
<template slot-scope="{ $index }">
{{ $index + 1 }}
</template>
</el-table-column>
<el-table-column
v-for="item in tableLabel"
:key="item.prop"
:label="item.label"
align="center"
>
<template slot-scope="{ row }">
<el-input v-model="row[item.prop]" placeholder="请输入" clearable></el-input>
</template>
</el-table-column>
<el-table-column label="检测结果" width="90" align="center">
<template slot-scope="{ row, $index}">
<el-button
size="mini"
type="danger"
@click="handleDelete(row,$index)"
icon="el-icon-delete"
title="删除"
>
</el-button>
</template>
</el-table-column>
</el-table>