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 相关文章推荐
javascript 最常用的10个自定义函数[推荐]
Dec 26 Javascript
编写可维护面向对象的JavaScript代码[翻译]
Feb 12 Javascript
js两行代码按指定格式输出日期时间
Oct 21 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
JavaScript九九乘法口诀表的简单实现
Oct 04 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
vue使用drag与drop实现拖拽的示例代码
Sep 07 Javascript
实例分析vue循环列表动态数据的处理方法
Sep 28 Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 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
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
AngularJS快速入门
2015/04/02 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
python中取绝对值简单方法总结
2020/07/24 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
医院护士的求职信范文
2013/12/26 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
分居协议书范本
2014/11/03 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
初中毕业生感言
2015/07/31 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
MySQL里面的子查询的基本使用
2021/08/02 MySQL
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
python通过新建环境安装tfx的问题
2022/05/20 Python