vue+element ui 的表格列使用组件
前言:工作中用到 vue+element ui 的前端框架,有这个场景:很多表格的列有许多一样的,所以考虑将列封装为组件。转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9530781.html
网站地址:我的个人vue+element ui demo网站
github地址:yuleGH github

代码如下:
这里有两种方式让表格使用组件
<el-table :data="tableData" style="width: 100%">
<!--下拉框列的组件-->
<my-select-column :select-options="selectOptions" key-field="selectOption"></my-select-column>
<!--输入框的组件-->
<el-table-column label="备注" width="180">
<template slot-scope="scope">
<my-input :key-field.sync="scope.row.remark"></my-input>
</template>
</el-table-column>
</el-table>
js
<!--主 js-->
<script type="text/javascript">
window.onload = function(){
new Vue({
el: "#app",
data: {
printStr: "", selectOptions : [
{value : "1", label : "选择一"},
{value : "2", label : "选择二"},
{value : "3", label : "选择三"},
], tableData: [{
date: '2000-10-27',
name: '余小乐',
address: '北京',
isRich: false,
remark : "我是备注",
selectOption : "2",
sex : "0"
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄',
isRich: true,
remark : "",
selectOption : "",
sex : "1"
}, {
date: '2016-05-01',
name: '小花',
address: '重庆市璧山区',
isRich: true,
remark : "",
selectOption : "",
sex : "0"
}, {
date: '1998-05-03',
name: '二哈',
address: '成都',
isRich: false,
remark : "",
selectOption : "",
sex : "1"
}]
},
components : {
'my-select-column' : myComponents.mySelectColumn,
'my-input' : window.myComponents.myInput
},
methods: {
handleEdit(index, row) {
this.printStr = "点击编辑;index=" + index + ";row=" + JSON.stringify(row);
},
handleDelete(index, row) {
this.printStr = "点击删除;index=" + index + ";row=" + JSON.stringify(row);
},
getTabelData(){
this.printStr = "表格数据:" + JSON.stringify(this.tableData);
}
}
});
};
</script>
下拉框列的组件
<!--表格列组件-->
<div id="mySelectColumn">
<el-table-column label="选择栏" width="200">
<template slot-scope="scope">
<el-select clearable placeholder="请选择" v-model="scope.row[keyField]">
<el-option
v-for="item in selectOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
</el-table-column>
</div>
<script type="text/javascript">
var getSelectColumn = function () {
var component = {
template: document.querySelector("#mySelectColumn").innerHTML,
data: function () {
return {}
},
// 声明 props
props: {
selectOptions: {
type: Array,
required: true
},
keyField : {
type : String,
required: true
}
},
watch: {},
methods: {}
}; return component;
}; window.myComponents = {
mySelectColumn: getSelectColumn()
};
</script>
输入框的组件
<!--输入框组件-->
<div id="myInput">
<el-input v-model="curKeyField" placeholder="请输入备注"></el-input>
</div>
<script type="text/javascript">
var getInputComponent = function () {
var component = {
template: document.querySelector("#myInput").innerHTML,
data: function () {
return {
curKeyField : this.keyField
}
},
// 声明 props
props: {
keyField : {
type : String,
required: true
}
},
watch: {
keyField : function(newVal, oldVal){
this.curKeyField = newVal;
},
curKeyField : function(newVal, oldVal){
this.$emit("update:keyField", newVal);
}
},
methods: {}
}; return component;
}; window.myComponents.myInput = getInputComponent();
</script>
完。整体代码见 GitHub。
表格头使用自定义:https://www.jb51.net/article/137320.htm
转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9530781.html
vue+element ui 的表格列使用组件的更多相关文章
- element ui的表格列设置fixed后做动态表格出现表格错乱
最近使用element-UI时,使用table做动态表格,当操作列使用fixed时,动态切换表格列设置设置时就会出现错乱,情况如下: 解决方法: 把el-table-column上的key设成一个随机 ...
- Vue+element UI实现表格数据导出Excel组件
介绍 这是一个可以将页面中的表格数据导出为Excel文件的功能组件,该组件一般与表格一起使用,将表格数据传给组件,然后通过点击组件按钮可将表格中的数据导出成Excel文件. 使用方法 由于封装该组件内 ...
- Vue+element UI实现“回到顶部”按钮组件
介绍 这是一个可以快速回到页面顶部的组件,当用户浏览到页面底部的时候,通过点击按钮,可快速回到页面顶部. 使用方法 由于该组件是基于element-UI进行二次封装的,所以在使用该组件时请务必安装el ...
- vue element UI el-table 表格调整行高的处理方法
这是我在工作项目中遇到的问题,我想将标记处下方的表格高度调低一点,也就是想实现下面的这个效果: 代码调整如下: 说明: 缩小:行高到一定程度之后便不能缩小. 好像最小35px.各位可以试一下. 升高: ...
- vue + element ui table表格二次封装 常用功能
因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...
- vue + element ui 表格自定义表头,提供线上demo
前言:工作中用到 vue+element ui 的前端框架,需要使用自定义表头,需要使用 re.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9710826.h ...
- vue + element ui 实现实现动态渲染表格
前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...
- vue+element ui 的上传文件使用组件
前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...
- vue+element ui中select组件选择失效问题原因与解决方法
codejing 2020-07-10 09:13:31 652 收藏 分类专栏: Web Vue Element UI 版权 .当表单form赋完值后,如果后续又对form中某一属性值进行操作如 ...
随机推荐
- 《Python绝技:运用Python成为顶级黑客》 用Python实现免杀
1.免杀的过程: 使用Metasploit生成C语言风格的一些shellcode作为载荷,这里使用Windows bindshell,功能为选定一个TCP端口与cmd.exe进程绑定在一起,方便攻击者 ...
- 一个Unix内核级别漏洞(一)
翻译原创稿件,prison整理翻译,首发ichunqiu,原地址:http://lsd-pl.net/kernelvuln.pdf 这是一篇关于Unix内核级别漏洞的paper,由某团队发布在一次黑客 ...
- express form/ajax 后端获取前端数据
-------------------2017/12/02补充:缺了一个重要条件... var bodyParser = require('body-parser');var app = expres ...
- php文件每隔几秒执行一次
说实话,linux 下面的crontab 任务完全可以实现所有的定时任务脚本,但是有些脚本只需要在一段时间内执行,过了这段时间之后,就不再执行定时脚本了.在使用crontab的时候,就需要人为的关闭掉 ...
- xp——极限编程的几个方法
最近阅读<Head First Java>一书时,看到极限编程(XP)的概念,觉得很有趣,摘抄下来以备后期继续学习. 极限编程(XP)是一种新型的软件开发方法论.他的构想是结合了许多种&q ...
- sublime text 内调试Javascript代码
转自:sublime内调试Javascript代码 之前用webstorm, 可以直接调试js, 在浏览器中也可以调试js,最近换了sublime text, 在想它是否支持调试js代码,于是找到了这 ...
- java程序连接hive数据库遇到的问题
今天,打算学习一下用hadoop做后台,搭建一个网站,首先第一步便是在本机的eclipse中连接到虚拟机上的hive中,原本以为很简单,但是过程很是艰难.特意做总结 首先hive的版本问题就是一个很大 ...
- UR5 改造
背景 项目要求 UR5 安装在移动平台上,需要做以下改造: 供电:由 220V 市电改为直流电源(锂电池)直接供电: 控制:由示教器控制改为上位机远程控制 线路改造 1. UR5 电气图(来自UR5服 ...
- Vue-Router路由Vue-CLI脚手架和模块化开发 之 使用props替代路由对象的方式获取参数
在上一章博文中使用路由对象$route获取参数时,组件和路由对象耦合,在这篇博文中就可以使用props来进行解耦: 1.在组件中使用props选项定义数据,接收参数: 2.在路由中,使用props选项 ...
- Java之集合(十一)IdentityHashMap
转载请注明源出处:http://www.cnblogs.com/lighten/p/7381905.html 1.前言 查看JDK源码总是能发现一些新东西,IdentityHashMap也是Map的一 ...