@schema-render/search-table-react
Version:
Conditional search table component.
137 lines (136 loc) • 5.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, /**
* 1、过滤未展示的列
* 2、添加序号列、操作列
*/ "default", {
enumerable: true,
get: function() {
return useFinalColumns;
}
});
var _corereact = require("@schema-render/core-react");
var _react = require("react");
var _constants = require("../../constants");
var _actions = require("./helpers/actions");
function _array_like_to_array(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
return arr2;
}
function _array_without_holes(arr) {
if (Array.isArray(arr)) return _array_like_to_array(arr);
}
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _iterable_to_array(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _non_iterable_spread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function _to_consumable_array(arr) {
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
}
function _unsupported_iterable_to_array(o, minLen) {
if (!o) return;
if (typeof o === "string") return _array_like_to_array(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(n);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
}
function useFinalColumns(param) {
var table = param.table, sortColumns = param.sortColumns, locale = param.locale;
var _table_showRowNumber = table.// 是否展示行号
showRowNumber, showRowNumber = _table_showRowNumber === void 0 ? false : _table_showRowNumber, _table_rowNumberColumnData = table.// 序号栏 Antd 配置数据,如宽度,类名等
rowNumberColumnData, rowNumberColumnData = _table_rowNumberColumnData === void 0 ? {} : _table_rowNumberColumnData, // 操作栏渲染函数
actionItems = table.actionItems, _table_actionItemsCount = table.// 操作栏按钮计数,超过此个数以“更多”交互展示
actionItemsCount, actionItemsCount = _table_actionItemsCount === void 0 ? 2 : _table_actionItemsCount, _table_actionItemsColumnData = table.// 操作栏 Antd 配置数据,如宽度,类名等
actionItemsColumnData, actionItemsColumnData = _table_actionItemsColumnData === void 0 ? {} : _table_actionItemsColumnData, // 操作栏下拉菜单配置
actionItemsDropdownProps = table.actionItemsDropdownProps;
/**
* 操作栏渲染
*/ var actionsRender = (0, _corereact.useMemoizedFn)(function(_text, record, index) {
return (0, _actions.createActions)({
record: record,
index: index,
actionItems: actionItems,
actionItemsCount: actionItemsCount,
actionItemsDropdownProps: actionItemsDropdownProps,
locale: locale
});
});
/**
* 可显示的列处理
*/ var displayedColumns = (0, _react.useMemo)(// 过滤隐藏列
function() {
return sortColumns.filter(function(item) {
return !item.hidden;
});
}, [
sortColumns
]);
var finalColumns = (0, _react.useMemo)(function() {
var columns = _to_consumable_array(displayedColumns);
// 添加序号栏
if (showRowNumber) {
columns.unshift(_object_spread({
title: locale.SearchTable.serialColumnName,
align: 'center',
width: 70,
fixed: 'left',
render: function(_t, _r, index) {
return index + 1;
},
key: _constants.EColumnsKeys.rowNumber
}, rowNumberColumnData));
}
// 添加操作栏
if (actionItems) {
columns.push(_object_spread({
title: locale.SearchTable.actionColumnName,
align: 'center',
fixed: 'right',
width: 134,
render: actionsRender,
key: _constants.EColumnsKeys.actions
}, actionItemsColumnData));
}
return columns;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
displayedColumns
]);
return {
finalColumns: finalColumns
};
}