触达云屏,基础表格组件:

介绍:


 

  • 支持数据滚动展示
  • 支持排名显示
  • 支持样式配置
  • 支持显示进度条列,标签列,图片列 等等
  • 支持自定义单元格内容格式
  • 支持数据驱动单元格、行背景变色
  • 支持数据驱动单元格、行字体变色
1. 添加组件
2. 配置表格列

表格列配置,支持表单方式添加、支持代码方式配置。
V3.7.0 开始,支持配置数据后,自动生成表格列,如果不需要自动,可以关闭自动生成(表格列设置中关闭)。

以下为表格列的代码模式下的示例:

[
    {
        "label": "地区",
        "prop": "city",
        "width": "90",
        "sort": 0,
        "textAlign": "right",
        "hide": false,
        "type": "tag",
        "_ext": {
            "status": "success",
            "effect": "linght"
        },
        "$cellEdit": false,
        "$index": 0
    },
    {
        "label": "手游",
        "prop": "mg",
        "sort": 10,
        "textAlign": "center",
        "hide": false,
        "type": "progress",
        "_ext": {
            "strokeWidth": 12,
            "colors": [
                {
                    "color": "#f56c6c",
                    "percentage": 1
                },
                {
                    "color": "#e6a23c",
                    "percentage": 20
                },
                {
                    "color": "#5cb87a",
                    "percentage": 40
                },
                {
                    "color": "#1989fa",
                    "percentage": 60
                },
                {
                    "color": "#6f7ad3",
                    "percentage": 100
                }
            ]
        },
        "width": "",
        "$cellEdit": false,
        "$index": 1
    },
    {
        "label": "端游",
        "prop": "cg",
        "width": "80",
        "sort": 20,
        "textAlign": "left",
        "hide": false,
        "$cellEdit": false,
        "$index": 2
    }
]
3. 配置数据

切换到数据配置,配置数据来源,关于不同数据类型的区别,请参考文档:组件通用配置说明

默认开启 自动根据数据列 生成表格列,如果不需要自动生成,可以关闭自动生成。

使用数据转换函数自定义转换数据格式时,数据格式如下:
数据中的列名和表格列配置中的列名保持一致
单元格内容支持HTML富文本,可以灵活的实现个性化样式;

[
    {
        "city": "深圳",
        "mg": 50,
        "cg": 4116
    },
    {
        "city": "上海",
        "mg": 10,
        "cg": 5495
    },
    {
        "city": "广州",
        "mg": 60,
        "cg": 4572
    }
]

参考【组件配置说明】

4. 配置表格样式

(配置项持续增加,以设计器内实际为准)

配置项子项示例值说明
开启滚动开启后,表格数据自动滚动
滚动时间滚动间隔时长,单位毫秒,如设置为2000,表示间隔2秒滚动一次
滚动行数设置一次滚动几行,一般设置为1 ,逐行滚动。如不设置,则按照表格设置中的显示行数滚动
追加模式开启追加模式后,加载到的新数据会以追加的方式添加到表格中。表格中设置的显示行数作为最大行数,自动清除旧数据。
显示提示框开启后,鼠标移动到表格列中显示提示窗口
开启排名开启后显示排名列
排名设置排名列名排名列的表头显示内容
排名列宽
排名形状目前支持圆形和方形,可以在数据转换函数中扩展数据列,实现个性化样式设置
字体大小
字体名称
字体加粗
字体颜色
开启显隐开启后,显示表格列显隐的操作按钮,点击可以选择要显示或隐藏的列
全部数据开启后,显示全部数据的操作按钮,点击可以查看数据
表头设置显示开启后显示表头
背景颜色表头的背景颜色
字体大小
字体名称
字体加粗
字体颜色
表格设置显示行数
字体大小
字体名称
字体加粗
字体颜色
奇行颜色
偶行颜色
无数据提示无数据时的提示语
表格列设置自动生成默认开启,开启后选择数据集后,自动根据数据产生数据列,建议在首次生成后,关闭自动生成
表格列配置表格列的字体、宽度等配置,通过编辑表格列表单中配置。个性化样式通过代码模式配置,参考后面的说明。

表单方式添加/编辑表格列:
 

5. 配置事件
* 点击事件

表格行点击事件,点击后可以实现弹窗、跳转、联动其他图表等操作。

({row,rowIndex,cell,cellIndex}, items, visual) => {
  if(cell.prop === 'op1'){
    //新窗口打开历史记录
    visual.openAppWindow({"url":"http://doc.hezyun.cn?_id=" + row.id});
  }else if(cell.prop === 'op2'){
    //弹窗打开报警记录
    visual.openAppDialog({"url":"http://doc.hezyun.cn?_id=" + row.id,"fullscreen":true});
  }
}

参数说明:

data = {
    row:{   //行数据对象,包含当前行所有列的值,可以自由获取需要的属性值
    },
    rowIndex:0, //行索引
    cell:{  //单元格对象
        "label": "手游", //列标题
        "prop": "mg", //列字段名
        "type": "progress", //类型
        "$index": 1 //单元格索引
    },
    cellIndex:1
}
visual = 当前组件对象
* 提示格式化

鼠标移动到单元格上时的提示内容,默认为单元格内容。

(rowdata,column) =>{
    return "提示内容:" + rowdata[column.prop];
}

参数说明:

//行数据对象,包含当前行所有列的值,可以自由获取需要的属性值
rowdata= {
}

//列字段信息,根据不同的列可以返回不同的提示内容
column= {
    $index: 0
    label: "地区"
    prop: "city"
    width: ""
}

6.个性化设置:
1. 指定数据行 排名编号背景颜色

数据行中 增加 indexColor 属性,配置指定颜色
 


数据为数据集、即时推送 等动态数据时,可以通过数据转换函数 增加属性配置。

{
        "city": "深圳",
        "mg": 17968,
        "cg": 4116,
        "indexColor": "red"
 }

下面是一个将所有数据行的排名背景色设置为透明的(数据转换函数)示例:

(resdata,visual)=>{
  //resdata 说明: 静态数据时为原数据; 数据集 时为完整的响应结果,通过resdata.data 获取数据
  //visual 说明:当前组件对象
  //编写自定义数据转换逻辑
    let data = visual.$preData || [];//获取内置转换处理后的表格数据
    data.forEach((item,index)=>{
        item.indexColor = "rgba(0,0,0,0)";//设置所有数据行的排名背景色为透明色
    });
  //返回图表所需的数据
  return data
}

2. 设置列显示为 标签

如下图,产品名称 这一列,显示为标签,并使用背景色区分。
 


在表格列设置中,设置显示类型 type=tag ,同时增加 _ext 配置,设置标签样式

{
        "label": "产品名称",
        "prop": "city",
        "type": "tag",
        "_ext": {
            "status": "success",
            "effect": "dark",
            "colors": [
                {
                    "color": "rgba(255, 120, 0, 0.5)",
                    "value": "产品1"
                },
                {
                    "color": "rgba(255, 215, 0, 0.5)",
                    "value": "产品2"
                },
                {
                    "color": "rgba(30, 144, 255, 0.5)",
                    "value": "产品3"
                }
            ]
        }
    }
名称说明
status可选: success/info/warning/danger
effect主题,可选:dark / light / plain
size大小,可选:medium、small、mini
color指定背景颜色
colors指定背景颜色,支持根据单元格内容动态显示颜色。当前列的数据为数字时,按照数值范围匹配颜色(>=指定值);当前列的数据为字符串时,按照字符串匹配颜色。
3. 设置列显示为 进度条

如下图,进度 这一列,显示为进度条。
 


在表格列设置中,设置显示类型 type=progress,同时增加 _ext 配置,设置标签样式

{
        "label": "进度",
        "prop": "mg",
        "type": "progress",
        "_ext": {
            "strokeWidth": 12,
            "colors": [
                {
                    "color": "#f56c6c",
                    "percentage": 1
                },
                {
                    "color": "#e6a23c",
                    "percentage": 20
                },
                {
                    "color": "#5cb87a",
                    "percentage": 40
                },
                {
                    "color": "#1989fa",
                    "percentage": 60
                },
                {
                    "color": "#6f7ad3",
                    "percentage": 100
                }
            ]
        },
        "width": "",
        "$cellEdit": false,
        "$index": 1
    }
名称说明
strokeWidth进度条宽度:默认 6
color进度条颜色:指定单一颜色
colors进度条颜色:对象数组,指定不同百分比颜色,示例:color设置为 red , percentage 设置为20 ,表示<20 颜色为red
textInside百分比文本显示到进度条内部 ,true/false,默认false
showText是否显示百分比文本,true/false,默认true

自定义进度条样式:
使用富文本,编写 css class 。
通过ID(item+组件id )+ 要设置的子class

示例:设置指定表格中,进度条百分比文本的字体颜色

<style>
#itemd28ae9bd-1c43-489d-988c-45b9817d5927 .el-progress .el-progress__text{
color:#fff
}
</style>
4. 动态设置单元格/表格行背景色

如下图,已生产 这一列,不同数值 显示不同的背景色 进行区分。
 


在表格列设置中,设置列的 bgColors 配置

{
        "label": "已生产",
        "prop": "ysc",
        "width": "80",
        "sort": 20,
        "textAlign": "right",
        "hide": false,
        "bgColors": [
            {
                "color": "rgba(255, 120, 0, 0.5)",
                "value": 7000
            },
            {
                "color": "rgba(255, 215, 0, 0.5)",
                "value": 8000
            },
            {
                "color": "rgba(30, 144, 255, 0.5)",
                "value": 9000
            },
            {
                "color": "rgba(48, 247, 48, 0.5)",
                "value": 12000
            }
        ],
        "$cellEdit": false,
        "$index": 2
    }

需要以其他列数值驱动当前列颜色时,在列配置中,bgColors 参考以下配置:

{
	"label": "已生产",
	"prop": "ysc",
	"width": "80",
	"sort": 20,
	"textAlign": "right",
	"hide": false,
	"bgColors": {
		"prop": "ysc",
		"t": "r",
		"colors": [{
				"color": "rgba(255, 120, 0, 0.5)",
				"value": 7000
			},
			{
				"color": "rgba(255, 215, 0, 0.5)",
				"value": 8000
			},
			{
				"color": "rgba(30, 144, 255, 0.5)",
				"value": 9000
			},
			{
				"color": "rgba(48, 247, 48, 0.5)",
				"value": 12000
			}
		]
	},
	"$cellEdit": false,
	"$index": 2
}
名称说明
prop不配置,默认按当前列的数值驱动颜色变化,可以配置其他指定列的数据值来驱动当前列单元格颜色
tt 不设置,或设置为c ,驱动单元格背景变色;t 设置为 r ,可以驱动行背景色变色
colors指定多组数值和颜色,支持根据单元格内容动态显示颜色。指定列的数据为数字时,按照数值范围匹配颜色(>=指定值);当前列的数据为字符串时,按照字符串匹配颜色。
5. 动态设置单元格字体颜色

如下图,已生产 这一列,不同数值显示不同的颜色区分。
 


在表格列设置中,设置列的 fontColors 配置
单元格字体颜色和 单元格背景颜色,支持同时设置。

{
        "label": "已生产",
        "prop": "ysc",
        "width": "80",
        "sort": 20,
        "textAlign": "right",
        "hide": false,
        "fontColors": [
            {
                "color": "rgba(255, 120, 0, 0.5)",
                "value": 1
            },
            {
                "color": "rgba(255, 215, 0, 0.5)",
                "value": 50
            },
            {
                "color": "rgba(30, 144, 255, 0.5)",
                "value": 80
            },
            {
                "color": "rgba(48, 247, 48, 0.5)",
                "value": 100
            }
        ],
        "$cellEdit": false,
        "$index": 2
    }

需要驱动整行字体的颜色、以其他列的数值驱动当前列字体颜色时,fontColors 参考 bgColors 的配置说明。

名称说明
prop不配置,默认按当前列的数值驱动颜色变化,可以配置其他指定列的数据值来驱动当前列字体颜色
tt 不设置,或设置为c ,驱动单元格字体变色;t 设置为 r ,可以驱动行字体变色
colors指定多组数值和颜色,支持根据单元格内容动态显示颜色。指定列的数据为数字时,按照数值范围匹配颜色(>=指定值);当前列的数据为字符串时,按照字符串匹配颜色。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐