步步向前之Element-UI
Table
固定表头
只要在
el-table元素中定义了height属性,即可实现固定表头的表格,而不需要额外的代码。
例如:
<el-table
:data="tableData3"
height="250"
border
style="width: 100%">
...
</el-table>
这里文档只给了一种固定高度250px的解决方案,实际应用大多数是需要自适应占满父元素,超出滚动固定表头的。
值得一提的是,height可以动态绑定,我的解决方案是给表格包一个父元素,并绑定一个值100%给height。
height:Table的高度,默认为自动高度。如果height为number类型,单位px;如果height为string类型,则这个高度会设置为Table的style.height的值,Table的高度会受控于外部样式。
点击事件
点击事件刚开始在这里陷入深坑了,拿行的点击事件来讲:row-dblclick: 表格的某一行双击事件。首先是dblclick而不是dbclick!(不知为什么我vscode提示row-dbclick,醉了),其次调用加@,然后默认参数通常用到最多的是row,不用在括号里写明,在方法里直接声明就可以用了;row-click同理。
例如:
<el-table ref="tabFavourite"
style="width: 100%" :height="tabHeight"
border
@row-dblclick="goTimeseries"
@row-click="toggle">
</el-table>
...
<script>
export default {
...
methods: {
toggle ({ fromName, symbol }) {
this.fromName = fromName;
this.symbol = symbol;
this.$refs.tabFavourite.setCurrentRow();
// (`fromName`,`symbol`是row的键)
},
goTimeseries (row) {
console.log(...row)
},
}
}
</script>
配合vue过滤器
主要使用自定义列,参数为 { row, column, $index }
<el-table-column
prop="platform.rise"
label="24小时涨幅"
sortable
align="center">
<template slot-scope="scope"><span v-color="scope.row.platform.rise">{{ scope.row.platform.rise | percent(2) | sign(scope.row.platform.change) | nvl('--')}}</span></template>
</el-table-column>
//scope.row是当前列的值,prop其实可以不写
自定义表头
文档解释比较简单:
| render-header | 列标题 Label 区域渲染使用的 Function | Function(h, { column, $index }) | — | — |
|---|
实现效果:
鼠标移上去会有提示文字弹出,这里用el-tooltips。
无效方案:
renderHeader (h, { column, $index }) {
return h('el-tooltip', {
props: {
effect: 'light',
content: '根据交易所24小时成交量占比和实时价格加权计算得到',
}
},[
h('span', column.label),
h('i', {
class: 'icon-tips',
}
})
]);渲染结果是一个
span包含了label文字,同时有名为el-tooltip的class,并无小图标,后边中括号结构里只能有一个(有待考证)。可行方案:
renderHeader (h, { column, $index }) {
return [
h('span', column.label),
h(
'el-tooltip',
{
props: {
effect: 'light',
content: (function () {
let label = column.label;
switch (label) {
case '加权最新价':
return '根据交易所24小时成交量占比和实时价格加权计算得到';
break;
case '偏移价':
return '交易所该币对当前最新价-加权价';
break;
}
})(),
}
},
[
h('i', {
class: 'icon-tips'
})
]
),
h('span', {
class: {
'el-icon-question': true
}
})
];
},事实证明返回的这个数组,可以作为表头内真正的标签元素多个累加,最后一个
span是我追加的,其实是多余的,参考ElementUI的Table组件中的renderHeader方法研究,作者研究很透彻,最后把span替换成p也能正常渲染,这是我最后一步尝试的,说明数组内的渲染机制,而h或createElement渲染函数第三个数组参数大于一个的结构均不能被渲染上,而且本标签无论如何都被渲染为span,郁闷。
先这么使用吧,算是满足需求了
vue关于createElement函数,
domProps了解下,简单的结构可以用这个实现
可行方案二:使用
jsx,直接return (HTML结构)
步步向前之Element-UI的更多相关文章
- 使用element ui 日期选择器获取值后的格式问题
一般情况下,我们需要给后台的时间格式是: "yyyy-MM-dd" 但是使用Element ui日期选择器获取的值是这样的: Fri Sep :: GMT+ (中国标准时间) 在官 ...
- element ui 1.4 升级到 2.0.11
公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...
- [坑况]饿了么你是这样的前端——vue+element ui 【this dependency was not found:'element-ui/lib/theme-chalk/index.css'】
element ui 坑况:今日pull代码,潇洒npm run dev ,被告知:this dependency was not found:'element-ui/lib/theme-chalk/ ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- Element UI——本地引入iconfont不显示
前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...
- Html | Vue | Element UI——引入使用
前言 做个项目,需要一个效果刚好Element UI有,就想配合Vue和Element UI,放在tp5.1下使用,但是引入在线的地址各种报错,本地引入就完美的解决了问题! 代码 __STATIC_J ...
- 分享一个自搭的框架,使用Spring boot+Vue+Element UI
废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...
- 上传图片组件封装 element ui
// element ui 文档地址: http://element.eleme.io/#/zh-CN <template> <div> <div class=" ...
- vue项目使用element ui的Checkbox
最近使用到element ui的下拉多选框Checkbox Checkbox用法可参考与于 http://element.eleme.io/#/zh-CN/component/checkbox Che ...
- vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...
随机推荐
- MySQL总结(5)
视图 SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.cust_id=orders.cus ...
- homestead安装swoole扩展
配置好ubuntu的国内镜像源并更新 查看php版本,并安装对应php版本的dev sudo apt install php7.2-dev 配置pecl sudo pecl channel-updat ...
- python3 enum模块的应用
python枚举模块的学习 ps:小编刚开始学习没多久,部分资源来源于其他网友,如有出错,麻烦联系修改哈,互帮互助,共同进步 一.枚举与字典类型 字典类型的缺点:1.值可变 2.没有防止相同标签的功能 ...
- Javaweb实训-宠物医院-社区宠物医院的页面样式
/* CSS Document */ /* 对于CSS来说 每一个元素默认的margin和padding就是0px.但是不同的浏览器会有一个默认的浏览器样式修改默认的marg ...
- Largest Beautiful Number CodeForces - 946E (贪心)
大意: 定义一个好数为位数为偶数, 且各位数字重排后可以为回文, 对于每个询问, 求小于$x$的最大好数. 假设$x$有$n$位, 若$n$为奇数, 答案显然为$n-1$个9. 若为偶数, 我们想让答 ...
- 下载MySQL的rpm包安装MySQL
cd /usr/local/src wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.27-1.el ...
- ORA-00979: 不是 GROUP BY 表达式
在oracle数据库中,sql语句中group by子句报错,原因是select 存在列字段,而group by中不存在.
- 已知两个int变量a、b,定义4个方法分别对变量a、b进行加减乘除运算,并测试结果。
package com.fs.test; public class Test { public void aMethod(int a, int b) { int add = a + b;//*表示加法 ...
- JS递归及二叉搜索树的移除节点
1递归含义:在某时某刻某个条件下调用包含自己的函数 2:注意点:⑴递归过程中一定要加限制条件,要不然会陷入死循环: 死循环eg: function f(someP){ f(somP); } f(4); ...
- Celery多队列配置
Celery多队列配置 Celery官方文档 项目结构 /proj -__init__ -app.py #实例化celery对象 -celeryconfig.py #celery的配置文件 -task ...