ant design vue中表格指定格式渲染方式


Posted in Javascript onOctober 28, 2020

注意点:定义的columns一定要写在data中,否则在加载过程中由于渲染顺序会导致其中的渲染函数无法识别

渲染方法1:

指定渲染函数:

const columns = [
   {
    title: '排名',
    dataIndex: 'key',
    customRender: renderContent // 渲染函数的规则
   }, {
    title: '搜索关键词',
    dataIndex: 'keyword',
    customRender: (text, row, index) => {
      if (index < 4) { // 前4行数据以a标签的形式被渲染
       return <a href="javascript:;" rel="external nofollow" rel="external nofollow" >{text}</a>
      }
      return { // 否则以独占4列的文本形式被渲染
       children: text,
       attrs: {
        colSpan: 4
       }
      }
    }
   }
]
const renderContent = (value, row, index) => {
 const obj = {
  children: value,
  attrs: {}
 }
 return obj
}

渲染方法2:

直接调用对应插槽模板:

<a-table :columns="columns" :dataSource="data" :pagination='pagination'>
  <template slot="operation">
    <a-select placeholder="选择操作" style="width: 100%" @change="listHandleChange">
     <a-select-option value="1">项目进度</a-select-option>
     <a-select-option value="2">质量管控</a-select-option>
     <a-select-option value="3">运维监控</a-select-option>
    </a-select>
  </template>
  <template slot='progress' slot-scope="text,record">
     <span>{{text}}</span>
     <span v-if='record.progressstatus'><a-icon class='arrow-up' type="arrow-up" />    </span>
     <span v-if='!record.progressstatus'><a-icon class='arrow-down' type="arrow-down" /></span>
  </template>
</a-table>
 
const columns = [
   {
    title: '编号',
    dataIndex: 'number',
    customRender: renderContent
   }, {
    title: '项目名称',
    dataIndex: 'name',
    customRender: (text, row, index) => {
     return {
      children: <a href="javascript:;" rel="external nofollow" rel="external nofollow" >{text}</a>,
      attrs: {}
     }
    } 
   }, {
    title: '项目进度',
    dataIndex: 'progress',
    scopedSlots: { customRender: 'progress' } // 模板中对应的slot-scope可以用来传递参数,其中第一个参数是当前字段对应的值progress,第二个参数是当前字段对应的所有值对象,即整个data[n]
   }, {
    title: '操作',
    dataIndex: 'operate',
    scopedSlots: { customRender: 'operation' } // 直接对应插槽名为operation的模板
   }
]
 
const data = [
  {
  key: 6,
  number: 6,
  name: '雅典娜',
  progress: '88%',
  progressstatus: 1
 }
]

补充知识:Ant design vue框架,table控件中customRow用法的一个坑

今天在写代码时,用到Ant design框架中的<a-table>控件,其中的一个需求是:点击table中的一行,需要执行一些操作。因为没有默认的行点击事件,需要用到customRow来进行自定义。

这个方法,在官方的文档中,有使用说明,如下:

<Table
 customRow={(record) => {
  return {
   props: {
    xxx... //属性
   },
   on: { // 事件
    click: (event) => {},    // 点击行
    dblclick: (event) => {},
    contextmenu: (event) => {},
    mouseenter: (event) => {}, // 鼠标移入行
    mouseleave: (event) => {}
   },

  };
 )}
 customHeaderRow={(column) => {
  return {
   on: {
    click: () => {},    // 点击表头行
   }
  };
 )}
/>

官方的这个写法,应该是属于lamada的语法,今天我在使用时,也是使用这种写法。

如下:

methods:{
 getDetailList(id){
  //执行具体的操作
  },
 rowClick: (record, index) => ({
    // 事件
    on: {
     click: event => {
      // 点击该行时要做的事情
      console.log('record', record)
      console.log('index', index)
      console.log('event', event)
      this.getDetailList(record.id) //这一行会报错,报未定义
     }
    }
   })
  }

在执行时,会报错,如下:

[Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘getDetailList' of undefined”。

不使用lamada表达式,则不会出现这样的问题,修改后的rowClick方法如下:

rowClick(record, index) {
   return {
    on: {
     click: () => {
      console.log(record, index)
      this.getDetailList(record.matbillid)
     }
    }
   }
  },

可正常执行,并能正确调用getDetailList方法

以上这篇ant design vue中表格指定格式渲染方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
prototype class详解
Sep 07 Javascript
javascript脚本调试方法小结
Nov 24 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
js对象与打印对象分析比较
Apr 23 Javascript
JS实现1000以内被3或5整除的数字之和
Feb 18 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
Dec 26 Javascript
解决vue.js this.$router.push无效的问题
Sep 03 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 28 #Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 #Javascript
微信小程序picker组件两列关联使用方式
Oct 27 #Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 #Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 #Javascript
Antd表格滚动 宽度自适应 不换行的实例
Oct 27 #Javascript
解决Antd Table组件表头不对齐的问题
Oct 27 #Javascript
You might like
PHP的autoload机制的实现解析
2012/09/15 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP查询网站的PR值
2013/10/30 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python3读取zip文件信息的方法
2015/05/22 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
Python logging设置和logger解析
2019/08/28 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
python+OpenCV实现图像拼接
2020/03/05 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
一套SQL笔试题
2016/08/14 面试题
中专生自我鉴定书范文
2013/12/28 职场文书
淘宝活动策划方案
2014/02/06 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
升国旗演讲稿
2014/09/05 职场文书
团员个人年度总结
2015/02/26 职场文书
创业计划书之冷饮店
2019/09/27 职场文书