vue+element ui项目总结点(六)table编辑当前行、删除当前行、新增、合计操作
具体属性方法参考官方网站: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编辑当前行、删除当前行、新增、合计操作的更多相关文章
- vue+element ui项目总结点(二)table合计栏目,按照起始年份--截止年份 插入数据并向后追加数据以最后一条年份+1
1.oninput 事件在用户输入时触发; <template> <div class="test_box"> <p>hell,你好</p ...
- vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...
- vue+element ui项目总结点(三)富文本编辑器 vue-wangeditor
1.参考 https://www.npmjs.com/package/vue-wangeditor 使用该富文本编辑器 <template> <div class="egi ...
- vue+element ui项目总结点(四)零散细节概念巩固如vue父组件调用子组件的方法、拷贝数据、数组置空问题 等
vue config下面的index.js配置host: '0.0.0.0',共享ip (假设你的电脑启动了这个服务我电脑一样可以启动)-------------------------------- ...
- vue+element ui项目总结点(五)Carousel 走马灯组件、Collapse 折叠面板、Tree 树形控件
<template> <div class="ele_test_box"> <!-- 常用效果 Popover 弹出框组件 具体属性查看官方文档--& ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- vue+element ui 的tab 动态增减,切换时提示用户是否切换
前言:工作中用到 vue+element ui 的前端框架,动态添加 Tab,删除 Tab,切换 Tab 时提示用户是否切换等,发现 element ui 有一个 bug,这里记录一下如何实现.转载 ...
- Vue+element ui table 导出到excel
需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...
- 基于 vue+element ui 的cdn网站(多页面,都是各种demo)
前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...
随机推荐
- Ubuntu下使用gcc编译c文件,未识别cos,sin
Ubuntu下使用gcc编译c文件,虽然我调用了math.h的头文件,但是未识别cos,sin 报错:( fft.c ) /tmp/ccwXjD8C.o: In function `fft': fft ...
- PHP参数类型
class User{ public $name; public $password; function __construct($name,$password){ ...
- Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'p' is being used without being initialized. 运行时检查失败 变量p没有初 ...
- 1.6-1.10 使用Sqoop导入数据到HDFS及一些设置
一.导数据 1.import和export Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具.这两个工具非常强大, 提供了很多 ...
- 精通BitmapData
一.构造方法: var bmd:BitmapData=new BitmapData(200,100,true,0xffff0000); 参数说明: 1.宽 2.高 3.是否使用32位填充位图(包括al ...
- c# 调用 webservices (转载)
.net 调用webservice 总结 最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice . 我们都知道,调用webserivice 最简单 ...
- 线性SVM与Softmax分类器
1 引入 上一篇介绍了图像分类问题.图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像.我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想是通 ...
- OpenCV第一课
1.OpenCV下载地址:http://opencv.org/downloads.html 因为本人电脑装的是vs2010,所以下载的是opencv-2.4.11.exe(vc10.vc11.vc12 ...
- Spring Cloud:使用Ribbon实现负载均衡详解(下)
在上一篇文章(Spring Cloud:使用Ribbon实现负载均衡详解(上))中,我对 Ribbon 做了一个介绍,Ribbon 可以实现直接通过服务名称对服务进行访问.这一篇文章我详细分析一下如何 ...
- Redis - Windows平台下怎么切换db并且清理数据
Redis 本身支持16个数据库(0~15),通过 数据库id 设置,默认为0.在Windows平台下可以通过启动redis-cli.exe来进入客户端,客户端默认连接数据库0,在客户端里可以输入各种 ...