具体属性方法参考官方网站:http://element-cn.eleme.io/#/zh-CN/component/installation

<template>
<div class="table_box">
<div class="btn" style="text-align: left;">
<el-button type="primary" @click="addItem">新增</el-button>
</div>
<el-table :data="list" border :summary-method="getSummaries" show-summary style="width: 100%;" stripe height="260">
<el-table-column label="序号" width="80px" align='center'>
<template slot-scope="scope">
<span>{{ scope.$index +1 }}</span>
</template>
</el-table-column>
<el-table-column label="最喜欢吃" align='center'>
<template slot-scope="scope">
<span v-if="!scope.row.isEgdit">{{['橙子','橘子','榴莲'][scope.row.fruitSort-1]}}</span>
<el-select placeholder="请选择" v-if="scope.row.isEgdit" v-model="scope.row.fruitSort">
<el-option v-for="(item, index) in ['橙子','橘子','榴莲']" :key="index+1" :label="item" :value="index+1">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="firstNum" label="第一周吃的数量" align='center'>
<template slot-scope="scope">
<span v-if="!scope.row.isEgdit">{{scope.row.firstNum}}</span>
<el-input v-if="scope.row.isEgdit" v-model="scope.row.firstNum"></el-input>
</template>
</el-table-column>
<el-table-column prop="secondNum" label="第二周吃的数量" align='center'>
<template slot-scope="scope">
<span v-if="!scope.row.isEgdit">{{scope.row.secondNum}}</span>
<el-input v-if="scope.row.isEgdit" v-model="scope.row.secondNum"></el-input>
</template>
</el-table-column>
<el-table-column prop="thirdNum" label="第三周吃的数量" align='center'>
<template slot-scope="scope">
<span v-if="!scope.row.isEgdit">{{scope.row.thirdNum}}</span>
<el-input v-if="scope.row.isEgdit" v-model="scope.row.thirdNum"></el-input>
</template>
</el-table-column>
<el-table-column prop="fourthNum" label="第四周吃的数量" align='center'>
<template slot-scope="scope">
<span v-if="!scope.row.isEgdit">{{scope.row.fourthNum}}</span>
<el-input v-if="scope.row.isEgdit" v-model="scope.row.fourthNum"></el-input>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align='center'>
<template slot-scope="scope">
<el-button v-if="!scope.row.isEgdit" type="primary" size="small" @click='edit(scope.$index,scope.row)' icon="el-icon-edit" circle></el-button>
<el-button v-if="scope.row.isEgdit" type="success" size="small" @click='editSuccess(scope.$index,scope.row)' icon="el-icon-check" circle></el-button>
<el-button @click.native.prevent="deleteItem(scope.$index, list)" type="danger" size="small" icon="el-icon-delete" circle></el-button>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 30px;">
<el-button type="primary" @click="goNextPage">跳转页面</el-button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
list: [{
id: 1,
fruitSort: 1,
firstNum: 10,
secondNum: 3,
thirdNum: 4,
fourthNum: 6,
}, {
id: 2,
fruitSort: 2,
firstNum: 7,
secondNum: 6,
thirdNum: 8,
fourthNum: 2,
}, {
id: 3,
fruitSort: 3,
firstNum: 5,
secondNum: 6,
thirdNum: 8,
fourthNum: 9,
}, {
id: 4,
fruitSort: 3,
firstNum: 10,
secondNum: 3,
thirdNum: 4,
fourthNum: 6,
}],
}
},
methods: {
//合计 表格每一列需要带上prop
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总数量';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += '(个)';
} else {
sums[index] = '';
}
}); return sums;
},
//新增数据
addItem() {
let item = {
id: null,
fruitSort: null,
firstNum: null,
secondNum: null,
thirdNum: null,
fourthNum: null,
isEgdit: true
}
this.list.push(item)
},
//删除数据
deleteItem(index, list) {
list.splice(index, 1);
},
//编辑数据
edit(index, row) {
this.$set(row, 'isEgdit', true)
},
//编辑成功
editSuccess(index, row) {
this.$set(row, 'isEgdit', false)
},
//跳转下一页面
goNextPage() {
this.$router.push({ name: 'echartTest' })
}
} } </script>

vue+element ui项目总结点(六)table编辑当前行、删除当前行、新增、合计操作的更多相关文章

  1. vue+element ui项目总结点(二)table合计栏目,按照起始年份--截止年份 插入数据并向后追加数据以最后一条年份+1

    1.oninput 事件在用户输入时触发; <template> <div class="test_box"> <p>hell,你好</p ...

  2. vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式

    不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...

  3. vue+element ui项目总结点(三)富文本编辑器 vue-wangeditor

    1.参考 https://www.npmjs.com/package/vue-wangeditor 使用该富文本编辑器 <template> <div class="egi ...

  4. vue+element ui项目总结点(四)零散细节概念巩固如vue父组件调用子组件的方法、拷贝数据、数组置空问题 等

    vue config下面的index.js配置host: '0.0.0.0',共享ip (假设你的电脑启动了这个服务我电脑一样可以启动)-------------------------------- ...

  5. vue+element ui项目总结点(五)Carousel 走马灯组件、Collapse 折叠面板、Tree 树形控件

    <template> <div class="ele_test_box"> <!-- 常用效果 Popover 弹出框组件 具体属性查看官方文档--& ...

  6. Vue + Element UI项目初始化

    1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...

  7. vue+element ui 的tab 动态增减,切换时提示用户是否切换

    前言:工作中用到 vue+element ui 的前端框架,动态添加 Tab,删除 Tab,切换 Tab 时提示用户是否切换等,发现 element ui  有一个 bug,这里记录一下如何实现.转载 ...

  8. Vue+element ui table 导出到excel

    需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...

  9. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...

随机推荐

  1. py-day2-sys模块、os模块、运算符、列表、字典

    一.sys 模块 import sys print (sys.path)#打印环境变量 print(sys.aegv) #打印脚本的名字相对路径 print(sys.aegv)1 2 3 4 prin ...

  2. DataWindow.NET 控件 实现点击列头排序

    1.定义字段                         Boolean ib_SetSort = true;                string is_SortType = " ...

  3. java中关键字volatile的误解和使用

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  4. Centos Mininal最小安装

    第一步.下载Minimal镜像,http://mirrors.163.com/centos/7/isos/x86_64/ 第二步.安装VMWare,在VMWare上新建一个Centos虚拟机,可以在建 ...

  5. IE8 以上版本兼容

    在html的内如下写法 其中最后一行是永远以最新的IE版本模式来显示网页的. 另外加上Emulate模式 Emulate模式后则更重视 (细心的人会注意到,用IE9去访问带有x-ua-compatib ...

  6. PorterDuffXfermode 图像混合技术在漫画APP中的应用

    此文已由作者游葳授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 写在开头 随着应用开发的深入,视觉同学在完成了页面的基本设计后,再也按耐不住心中的寂寞,开始对各种细节不满意, ...

  7. Math对象产生随机数一个小应用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. css 3d旋转

  9. WPF 设置 Label.MouseDoubleClickEvent

    facLabel.AddHandler(Label.MouseDoubleClickEvent, new MouseButtonEventHandler((o, a) => { facLabel ...

  10. mysql 安装和修改编码(utf8mb4)

    安装mysql(linux 我的环境centos 7) 安装MySQL官方的Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-com ...