最近项目需要使用一个动态表格,使之拥有增加删除以及大表单的保存功能,界面框架定的是element-ui,仔细找了找,并没有现成的动态表格可以使用,没办法,只能开启改装之路。我的思路是这样的,就是在拿到后台数据时,在末尾在加上一个标记空数组,使之成为增加框,就可以了。这样就需要一个初始化的标记空数组,在没有数据的时候也会出现增加框。通过v-if以及v-else就可以实现基本的判断,具体代码如下

<el-table-column :formatter="row => row.xxx" label="xxx" width="300">
        <template slot-scope="scope" >
          <input size="mini" type="number" v-if="scope.row.add" v-model="scope.row.xxx"></input>
          <div v-else>{{scope.row.xxx}}</div>
        </template>
</el-table-column>

然后在拿数据的时候加个判断,如果有数据就接受数据,并在数据最后加上一样的空数组,但是还要加个add属性,如下:

const initData = {
  add: true,
  xxx: 'xxx'
}

删除功能的话,相对简单,表格会有自带的通过传入Index进行删除,具体看element-ui的表格文档,自己也可以用一些处理工具如:lodash等进行处理,在删除请求成功时进行调用就可以了。

GitHub 加速计划 / eleme / element
15
2
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:2 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐