UNPKG

tea-material-pro-table

Version:

Tea ProTable

39 lines (38 loc) 1.75 kB
"use strict"; 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;