mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-04 09:15:16 +00:00
106 lines
3.1 KiB
JavaScript
106 lines
3.1 KiB
JavaScript
import React from 'react';
|
||
import PropTypes from 'prop-types';
|
||
|
||
/**
|
||
* Table.Column
|
||
* @order 0
|
||
**/
|
||
export default class Column extends React.Component {
|
||
static propTypes = {
|
||
/**
|
||
* 指定列对应的字段,支持`a.b`形式的快速取值
|
||
*/
|
||
dataIndex: PropTypes.string,
|
||
/**
|
||
* 行渲染的逻辑
|
||
* value, rowIndex, record, context四个属性只可读不可被更改
|
||
* Function(value, index, record) => Element
|
||
*/
|
||
cell: PropTypes.oneOfType([
|
||
PropTypes.element,
|
||
PropTypes.node,
|
||
PropTypes.func,
|
||
]),
|
||
/**
|
||
* 表头显示的内容
|
||
*/
|
||
title: PropTypes.oneOfType([
|
||
PropTypes.element,
|
||
PropTypes.node,
|
||
PropTypes.func,
|
||
]),
|
||
/**
|
||
* 写到 header 单元格上的title属性
|
||
*/
|
||
htmlTitle: PropTypes.string,
|
||
/**
|
||
* 是否支持排序
|
||
*/
|
||
sortable: PropTypes.bool,
|
||
/**
|
||
* 列宽,注意在锁列的情况下一定需要配置宽度
|
||
*/
|
||
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
||
/**
|
||
* 单元格的对齐方式
|
||
*/
|
||
align: PropTypes.oneOf(['left', 'center', 'right']),
|
||
/**
|
||
* 单元格标题的对齐方式, 不配置默认读取align值
|
||
*/
|
||
alignHeader: PropTypes.oneOf(['left', 'center', 'right']),
|
||
/**
|
||
* 生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]`
|
||
*/
|
||
filters: PropTypes.arrayOf(
|
||
PropTypes.shape({
|
||
label: PropTypes.string,
|
||
value: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
|
||
})
|
||
),
|
||
/**
|
||
* 过滤的模式是单选还是多选
|
||
*/
|
||
filterMode: PropTypes.oneOf(['single', 'multiple']),
|
||
/**
|
||
* filter 模式下传递给 Menu 菜单的属性, 默认继承 `Menu` 组件的API
|
||
* @property {Boolean} subMenuSelectable 默认为`false` subMenu是否可选择
|
||
* @property {Boolean} isSelectIconRight 默认为`false` 是否将选中图标居右。注意:SubMenu 上的选中图标一直居左,不受此API控制
|
||
*/
|
||
filterMenuProps: PropTypes.object,
|
||
filterProps: PropTypes.object,
|
||
/**
|
||
* 是否支持锁列,可选值为`left`,`right`, `true`
|
||
*/
|
||
lock: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
||
/**
|
||
* 是否支持列宽调整, 当该值设为true,table的布局方式会修改为fixed.
|
||
*/
|
||
resizable: PropTypes.bool,
|
||
/**
|
||
* header cell 横跨的格数,设置为0表示不出现此 th
|
||
*/
|
||
colSpan: PropTypes.number,
|
||
};
|
||
|
||
static contextTypes = {
|
||
parent: PropTypes.any,
|
||
};
|
||
|
||
static defaultProps = {
|
||
cell: value => value,
|
||
filterMode: 'multiple',
|
||
filterMenuProps: {
|
||
subMenuSelectable: false,
|
||
},
|
||
filterProps: {},
|
||
resizable: false,
|
||
};
|
||
|
||
static _typeMark = 'column';
|
||
|
||
render() {
|
||
return null;
|
||
}
|
||
}
|