vue框架iview中Table动态表头可编辑内容的jsx写法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue框架iview中Table动态表头可编辑内容的jsx写法相关的知识,希望对你有一定的参考价值。

参考技术A 有时候会出现以下需求,类似这样

其中不确定有几个分组,可能是A,B两个, 也可能是 A, B, C,D四个,因为是后台配置出来的(且分组下面的展示都一样:如这里的 A1,A2,A3,A4)
在分组数量不确定的时候,如是后台配增或减了分组之后,前端也要相对应的在页面进行修改。而且每新增一个组,对应组下面的A1,A2,A3,A4都得重新写一次,还要保证表格内容是可编辑的。这个时候表格需要动态处理表头信息。如果用官方提供的写法,整个页面会变得超长,且大部分都是重复的,所以这里我使用JSX试了一下,发现效果还不错,下面是实现过程
因为是模拟的,所以一些demo中写死但可以异步加载数据的地方会备注

那么我们要做的第一步就是要先初始化表头信息。从而保证数据的正确性

在表头处理完成后就可以去请求数据了,这里也模拟了一下,最终效果如下

iview+vue 使用中遇到的问题(表格selectradio)

1、iview+vue中,对表头的动态设置:

  iview表头若是需要动态设置,可以有两个方法,第一种:

 children: [
            {
              title: 2017年,
              align: center,
              key: firstYear,
              renderHeader: (h, index) => {
                return h(div, {
                  domProps: {
                    innerHTML: this.data5.lastYear + 
                  }
                });
              }
            },
            {

  

  利用renderheader属性来设置表头。iview中的table自定义列头显示内容,使用 Vue 的 Render 函数。传入两个参数,第一个是 h,第二个为对象,包含 column 和 index,分别为当前列数据和当前列索引。还有一种方式是在直接调用title更改:

 

this.columns4[2].children[0].title = this.timeYear.lastYear;

  但是这种方式可能会引起Vue的update无限循环警告。建议使用第一种方法。

2、iview+vue中,表单验证select出错:

  可能在使用iview表单的select时,发现代码没有书写错误,但是验证功能出现问题,这是因为iview默认类型与最终select的需要验证的结果类型不一致。

3、iview+vue中,radio选择问题:

  在iview的单选radio中,绑定选中状态lable = “0”与获取选中状态status = 0 是不匹配的,应为“0”。

结论:在iview使用过程中,要注意默认类型问题,很容易出现接收类型与默认类型不一致的情况而导致出现错误。对与表格自定义列的问题,render自定义列内容,renderheader自定义列头。

 


以上是关于vue框架iview中Table动态表头可编辑内容的jsx写法的主要内容,如果未能解决你的问题,请参考以下文章

iView中表格(Table)自定义表头添加模糊搜索框

element-UI table动态增加列,动态增加行,动态合并行。选择编辑表头行数据

怎样让iview的table表格,多选默认全选中

iview的table组件中加入超链接组件,可编辑组件,选择组件,日期组件

vue element-ui动态渲染多级table表头

iview+vue 使用中遇到的问题(表格selectradio)