后端项目地址:https://gitee.com/wlovet/table-server

前端项目地址:  https://gitee.com/wlovet/table-project

一、Render函数之Table加入IVIEW组件与表格修改

render函数可以在表格中除了可以加入html组件还有iview组件,使用方法是在定义列的时候使用元素构造对象h渲染新元素

 render:(h,params)=>{
return h('div',{
  props:{
  },
style:{
}
},params.row)
}

支持修改则在表格列中加入

 {
title: '操作',
key: 'action',
width: 200,
render: (h, params) => {
return h('div', [
h('Button', {
props: {
type: params.row.$isEdit ? 'warning' : 'info',
size: 'small',
icon: ''
},
style: {
marginRight: '5px',
},
on: {
click: () => {
if (params.row.$isEdit) {
this.handleSave(params.row);
} else {
this.handleEdit(params.row);
}
}
}
},params.row.$isEdit? '保存':'修改'),
h('Poptip', {
props: {
confirm: true,
title: '是否要删除此字段?',
transfer: true
},
on: {
'on-ok': () => {
//删除逻辑
}
},
}, [
h('Button', {
props: {
type: 'error',
size: 'small'
},
style: {
marginRight: '5px'
},
}, '删除')
]),
])
}
}

在methods属性中加入两个方法handleEdit、handleSave

 //点击了修改按钮
handleEdit(row) {
this.$set(row, "$isEdit", true);
},
//点击了保存按钮
handleSave(row) {
this.$set(row, "$isEdit", false);
}

二、Render函数之Table单元格加入EChart图表

在单元格加入Echarts,首先导入加入echars包

 //使用npm或cnpm下载echarts
cnpm install echarts -D
//在src/main.js文件中引入
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

其次,在定义表格的列时

 {
title: '比例图',
align: 'center',
render: (h, params) => {
return h('div', [
h('canvas', {
style: {
height: '300px',
margin: '0',
padding: '0'
},
on: {},
attrs: {
//给单元格设置ID和类型
id: params.row.pictureType
}
})
])
}
}

再次,在updated函数中使用echarts进行绘制。此处不在mounted方法里使用,因为绘制echarts表格是第二次渲染节点

 updated() {
let self = this
self.pictureData.forEach((value, index) => {
self.paintChart(index, value)
})
}

最后在methods中加入方法paintChart

 //绘制图表
paintChart(i, params) {
if (params.pictureType === '柱形图') {
let chart = this.$echarts.init(document.getElementById(params.pictureType));
  let option = {
color: ['#3398DB'],
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
top: '4%',
left: '1%',
right: '1%',
bottom: '1%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '直接访问',
type: 'bar',
barWidth: '60%',
data: [10, 52, 200, 334, 390, 330, 220]
}
]
};
chart.setOption(option)
}
}
}

IVIEW组件的render方法在Table组件中的使用的更多相关文章

  1. vue.js组件之间通讯--父组件调用子组件的一些方法,子组件暴露一些方法,让父组件调用

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. React.js 小书 Lesson7 - 组件的 render 方法

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson7 转载请注明出处,保留原文链接和作者信息. React.js 中一切皆组件,用 React. ...

  3. 组件的 render 方法

    React.js 中一切皆组件,用 React.js 写的其实就是 React.js 组件.我们在编写 React.js 组件的时候,一般都需要继承 React.js 的 Component(还有别的 ...

  4. iview使用之怎样通过render函数在table组件表头添加图标及判断多个状态

    在实际项目开发中,我们经常会用到各种各样的表格,比如在表格中填加下拉菜单,按钮,图标及可以根据状态显示对应文字等等,因为这段时间一直在做后台管理系统,所以表格用的就比较多,当然UI组件库我用的是ivi ...

  5. 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。

    前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...

  6. react 实现在调父render时,子组件会重新更新

    通过给子组件添加不同的key即可,这样在每次父组件执行render方法的时候,发现key不相同,则会重新加载子组件: class Par entend React.PureComponent{ ren ...

  7. React高阶组件 和 Render Props

    高阶组件 本质 本质是函数,将组件作为接收参数,返回一个新的组件.HOC本身不是React API,是一种基于React组合的特而形成的设计模式. 解决的问题(作用) 一句话概括:功能的复用,减少代码 ...

  8. vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法

    (vue.js)vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法”问题疑问,本网通过在网上对“ (vue.js)vue ...

  9. wepy中组件之间通信方法

    events events是WePY组件事件处理函数对象,存放响应组件之间通过broadcast.emit.$invoke所传递的事件的函数. $broadcast —— 父往子传 $broadcas ...

随机推荐

  1. SpringBoot事务隔离等级和传播行为

    一.开启事物管理 //import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBoo ...

  2. Scala学习二十——Actor

    一.本章要点 每个actor都要扩展Actor类并提供act方法 要往actor发送消息,可以用actor!message 消息发送是异步的:”发完就忘“ 要接受消息,actor可以调用receive ...

  3. C# Redis分布式锁的应用 - 叶子栈 - SegmentFault 思否

    原文:C# Redis分布式锁的应用 - 叶子栈 - SegmentFault 思否 叶子 1 微信扫一扫 新浪微博 Twitter Facebook C# Redis分布式锁的应用 c#redis分 ...

  4. SpringBoot-JPA入门

    SpringBoot-JPA入门 JPA就是Spring集成了hibernate感觉. 注解,方法仓库(顾名思义的方法,封装好了,还有自定义的方法). 案例: spring: datasource: ...

  5. Vue.prototype详解

    参考地址:Vue.prototype详解 如果需要设置 全局变量,在main.js中,Vue实例化的代码里添加. 不想污染全局作用域.这种情况下,你可以通过在 原型 上定义它们使其在每个Vue实例中可 ...

  6. 关于iReport5.6.0无法正常启动或者闪退或者JDK8不兼容的解决方案

    参考网址: https://blog.csdn.net/erlian1992/article/details/76359191?locationNum=6&fps=1 说白了 ,即 jaspe ...

  7. LaTeX中Python代码的语法高亮

    LaTeX中Python代码的语法高亮 本文中,"{}"中的字母为LaTeX或Python的包名,只有"Pygments"是Python的包,其他都是LaTeX ...

  8. 行级安全(Row

    通过授予和拒绝(Grant/Deny)命令控制用户的权限,只能控制用户对数据库对象的访问权限,这意味着,用户访问的粒度是对象整体,可以是一个数据表,或视图等,用户要么能够访问数据库对象,要么没有权限访 ...

  9. 用例图,ER图,架构图

    用例图 ER图 架构图 注:附上小组画图文档链接  提取码:t7ij v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VM ...

  10. android提升

    https://blog.csdn.net/lou_liang/article/details/82856531