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 ...
随机推荐
- NLP | 自然语言处理 - 语言模型(Language Modeling)
转:http://blog.csdn.net/lanxu_yy/article/details/29918015 为什么需要语言模型? 想象“语音识别”这样的场景,机器通过一定的算法将语音转换为文字, ...
- python zlib字符串压缩
在做网络程序时,可以对字符串进行压缩来节省带宽 项目中用到 {"compress": <压缩标记>, "result":[[设备类型.设备ID, 设 ...
- 【eclipse插件开发实战】Eclipse插件开发1——eclipse内核结构、扩展点机制
Eclipse插件开发实战1--eclipse内核结构.扩展点机制 一.前言 本系列总体介绍eclipse插件开发基本理论.插件项目结构及开发步骤,最后再给出两个插件开发实例. 总体安排结构如下: 1 ...
- EasyUI 启用行内编辑
创建数据网格(DataGrid) $(function(){ $('#tt').datagrid({ title:'Editable DataGrid', iconCls:'icon-edit', w ...
- 接口开发之PHP创建XML文件
用PHP的DOM控件来创建输出 输出的格式为XML 接口开发的相关文件及说明 <?php header("Content-type: text/xml");//头文件非常重要 ...
- shader实例(八)渲染路径RenderingPath
Unity的摄像机上支持3种RenderingPath,分别是VertexLit,Forward和Dferred Lighting,而shader中的LightMode标签Vertex,Forward ...
- Eclipse-Hadoop-Plugin编译
1 JDK配置 1.1 安装JDK 具体可以百度,网上教程很多,有JAVA开发环境的都是已经安装的. 1.2 配置环境变量 设置JAVA_HOME.CLASSPATH.PATH等.具体可以百度,有JA ...
- Java 执行linux命令(转)
转自 http://blog.csdn.net/a19881029/article/details/8063758 java程序中要执行linux命令主要依赖2个类:Process和Runtime 首 ...
- elasticsearch 备份和恢复
curl : http://keenwon.com/1393.html During snapshot initialization, information about all previous ...
- Java | 基础归纳 | 随机数应用
Java中一般有两种随机数,一个是Math中random()方法,一个是Random类. Math.random();//返回0~1的中随机数值 Random random = new Random( ...