tea-material-pro-table
Version:
Tea ProTable
39 lines (38 loc) • 1.75 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
exports.useColumns = void 0;
var react_1 = require("react");
var lodash_pick_1 = __importDefault(require("lodash.pick"));
/** 生成表格 columns 和 搜索表单 fields */
function useColumns(columns) {
var _a = react_1.useMemo(function () {
/** pick/omit some keys */
var tableDefaultKeys = ['key', 'header', 'render', 'width', 'align', 'fixed'];
/** fields 适配下
* name 默认不传为 key
* title 默认不传为 header string 或者 key
* type 默认不传为 string
*/
var fields = columns
.map(function (column) { return (__assign(__assign({}, column), { name: column.name || column.key, title: column.title ||
(column.header && typeof column.header === 'string' ? column.header : column.key), type: column.type || 'string', align: column.formAlign })); })
.filter(function (column) { return !column.hideForm; });
return [columns.map(function (column) { return lodash_pick_1["default"](column, tableDefaultKeys); }), fields];
}, [columns]), tableColumns = _a[0], fields = _a[1];
return [tableColumns, fields];
}
exports.useColumns = useColumns;