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 相关文章推荐
js获取变量
Aug 24 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
Jul 10 Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
javaScript基础详解
Jan 19 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
详解.vue文件解析的实现
Jun 11 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 SPL标准库中的常用函数介绍
2015/05/11 PHP
php实现websocket实时消息推送
2018/03/30 PHP
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
详解jQuery事件
2017/01/13 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
python实现端口转发器的方法
2015/03/13 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Apache如何部署django项目
2017/05/21 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
python中可以声明变量类型吗
2020/06/18 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
Django自带的用户验证系统实现
2020/12/18 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
自主招生自荐书
2013/11/29 职场文书
九年级历史教学反思
2014/01/27 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
委托书范本
2014/04/02 职场文书
银行授权委托书样本
2014/10/13 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS