Table

固定表头

只要在el-table元素中定义了height属性,即可实现固定表头的表格,而不需要额外的代码。
例如:

<el-table
:data="tableData3"
height="250"
border
style="width: 100%">
...
</el-table>

这里文档只给了一种固定高度250px的解决方案,实际应用大多数是需要自适应占满父元素,超出滚动固定表头的。
值得一提的是,height可以动态绑定,我的解决方案是给表格包一个父元素,并绑定一个值100%height

height:Table 的高度,默认为自动高度。如果 heightnumber 类型,单位 px;如果 heightstring 类型,则这个高度会设置为 Tablestyle.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-tooltipclass,并无小图标,后边中括号结构里只能有一个(有待考证)。

  • 可行方案:

       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也能正常渲染,这是我最后一步尝试的,说明数组内的渲染机制,而hcreateElement渲染函数第三个数组参数大于一个的结构均不能被渲染上,而且本标签无论如何都被渲染为span,郁闷。
    先这么使用吧,算是满足需求了

vue关于createElement函数domProps了解下,简单的结构可以用这个实现

  • 可行方案二:使用jsx,直接return (HTML结构)

步步向前之Element-UI的更多相关文章

  1. 使用element ui 日期选择器获取值后的格式问题

    一般情况下,我们需要给后台的时间格式是: "yyyy-MM-dd" 但是使用Element ui日期选择器获取的值是这样的: Fri Sep :: GMT+ (中国标准时间) 在官 ...

  2. element ui 1.4 升级到 2.0.11

    公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...

  3. [坑况]饿了么你是这样的前端——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/ ...

  4. Vue + Element UI项目初始化

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

  5. Element UI——本地引入iconfont不显示

    前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...

  6. Html | Vue | Element UI——引入使用

    前言 做个项目,需要一个效果刚好Element UI有,就想配合Vue和Element UI,放在tp5.1下使用,但是引入在线的地址各种报错,本地引入就完美的解决了问题! 代码 __STATIC_J ...

  7. 分享一个自搭的框架,使用Spring boot+Vue+Element UI

    废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...

  8. 上传图片组件封装 element ui

    // element ui 文档地址: http://element.eleme.io/#/zh-CN <template> <div> <div class=" ...

  9. vue项目使用element ui的Checkbox

    最近使用到element ui的下拉多选框Checkbox Checkbox用法可参考与于 http://element.eleme.io/#/zh-CN/component/checkbox Che ...

  10. vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用

    其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...

随机推荐

  1. Python 入门之 内置模块 -- datetime模块

    Python 入门之 内置模块 -- datetime模块 1.datetime模块 from datetime import datetime (1)datetime.now() 获取当前时间和日期 ...

  2. Codeforce1196_D_F

    D RGB Substring 题意 给定一个只含RGB三种字符的字符串,问最少修改多少个字符,能使得修改后的字符串存在一个长度为\(k\)的子串是...RGBRGB...这个循环字符串的子串. 分析 ...

  3. 剑指offer 剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m]可能 ...

  4. RGB颜色值转换成十六进制

    function transferRgbToStr(color) { if (typeof color !== 'string' && !(color instanceof Strin ...

  5. js 元素offset,client , scroll 三大系列总结

    1,element.offsetWidth : 包括 padding 和 边框 2,element.clientWidth : 包括 padding ,不包含边框 , 内容超出会溢出盒子的时候,就用s ...

  6. Xcode中常用的快捷键(原文链接http://www.cocoachina.com/ios/20141224/10752.html)

    Xcode导航快捷键 1.工程导航器:Command+1 快速浏览代码.图片以及用户界面文件. 2.显示/隐藏导航器面板:Command+0 当你在对屏幕进行截图的时候可能会想要隐藏起与你感兴趣内容的 ...

  7. ipcclean - 从退出的PostgreSQL服务器中删除共享内存和信号灯

    SYNOPSIS ipcclean DESCRIPTION 描述 ipcclean 删除当前用户拥有的所有共享内存段和信号灯集. 它的目地是在 PostgreSQL 服务器 (postmaster(1 ...

  8. SpringBoot封装自己的Starter

    https://juejin.im/post/5cb880c2f265da03981fc031 一.说明 我们在使用SpringBoot的时候常常要引入一些Starter,例如spring-boot- ...

  9. (转) Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化

    硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter tab ...

  10. mysql 的主从

    MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...