UNPKG

@schema-render/search-table-react

Version:
172 lines (171 loc) 6.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "processRawColumns", { enumerable: true, get: function() { return processRawColumns; } }); var _corereact = require("@schema-render/core-react"); var _common = require("../../../utils/common"); var _sort = require("./sort"); 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 _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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = _object_without_properties_loose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for(i = 0; i < sourceSymbolKeys.length; i++){ key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for(i = 0; i < sourceKeys.length; i++){ key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var get = _corereact.utils.get, isArray = _corereact.utils.isArray, isString = _corereact.utils.isString, isFunction = _corereact.utils.isFunction; function processRawColumns(rawColumns, table, finalValueTypeProcessors) { return rawColumns.map(function(_param) { var title = _param.title, dataIndex = _param.dataIndex, children = _param.children, valueType = _param.valueType, restItem = _object_without_properties(_param, [ "title", "dataIndex", "children", "valueType" ]); // 遍历子节点 if (isArray(children)) { children = processRawColumns(children, table, finalValueTypeProcessors); } var strDataIndex = isArray(dataIndex) ? dataIndex.join('.') : dataIndex; var arrDataIndex = isArray(dataIndex) ? dataIndex : [ dataIndex ]; var isSortAll = table.sortMode === 'local-all' || table.sortMode === 'service-all'; var hasSorter = !!restItem.sorter || !!restItem.sortType || isSortAll; // 排序字段 var sorter = false; // 父级节点不增加排序操作 if (!children) { if (restItem.sorter) { // 优先使用自定义排序 sorter = restItem.sorter; } else if (isSortAll || restItem.sortType) { // 本地排序或服务端排序 sorter = table.sortMode === 'service-all' ? true : function(a, b, sortOrder) { return (0, _sort.localSorter)(a, b, { arrDataIndex: arrDataIndex, sortOrder: sortOrder, sortType: restItem.sortType, sortDataExtractor: restItem.sortDataExtractor, sortStringValueTransform: table.sortStringValueTransform }); }; } } // 内部渲染函数 var render = function(_val, record, index) { var value = get(record, arrDataIndex); var innerValueType = ''; var innerValueTypeOptions = undefined; if (valueType) { if (isFunction(valueType)) { var _valueType = valueType(record, index), type = _valueType.type, options = _object_without_properties(_valueType, [ "type" ]); innerValueType = type; innerValueTypeOptions = options; } else { innerValueType = valueType; } } var valueTypeProcessor = finalValueTypeProcessors[innerValueType]; if (valueTypeProcessor) { return valueTypeProcessor({ value: value, record: record, options: innerValueTypeOptions || {}, index: index }); } return (0, _common.isEmpty)(value) ? '-' : value; }; return _object_spread_props(_object_spread({ align: 'center', key: strDataIndex, width: isString(title) ? title.length * 16 + (hasSorter ? 50 : 30) : undefined, render: render }, restItem), { title: title, dataIndex: dataIndex, children: children, sorter: sorter }); }); }