Files
2026-01-16 02:20:32 +00:00

156 lines
5.7 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.columnRender = columnRender;
exports.renderColumnsTitle = exports.defaultOnFilter = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _proUtils = require("@ant-design/pro-utils");
var _get = _interopRequireDefault(require("rc-util/lib/utils/get"));
var _react = _interopRequireDefault(require("react"));
var _ = require(".");
var _cellRenderToFromItem = _interopRequireDefault(require("./cellRenderToFromItem"));
var _jsxRuntime = require("react/jsx-runtime");
/** 转化列的定义 */
/**
* 增加了 icon 的功能 render title
*
* @param item
*/
var renderColumnsTitle = exports.renderColumnsTitle = function renderColumnsTitle(item) {
var _item$ellipsis;
var title = item.title;
var ellipsis = typeof (item === null || item === void 0 ? void 0 : item.ellipsis) === 'boolean' ? item === null || item === void 0 ? void 0 : item.ellipsis : item === null || item === void 0 || (_item$ellipsis = item.ellipsis) === null || _item$ellipsis === void 0 ? void 0 : _item$ellipsis.showTitle;
if (title && typeof title === 'function') {
return title(item, 'table', /*#__PURE__*/(0, _jsxRuntime.jsx)(_proUtils.LabelIconTip, {
label: null,
tooltip: item.tooltip || item.tip
}));
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_proUtils.LabelIconTip, {
label: title,
tooltip: item.tooltip || item.tip,
ellipsis: ellipsis
});
};
/** 判断是否为不可编辑的单元格 */
function isNotEditableCell(text, rowData, index, editable) {
if (typeof editable === 'boolean') {
return editable === false;
}
return (editable === null || editable === void 0 ? void 0 : editable(text, rowData, index)) === false;
}
/**
* 默认的 filter 方法
*
* @param value
* @param record
* @param dataIndex
* @returns
*/
var defaultOnFilter = exports.defaultOnFilter = function defaultOnFilter(value, record, dataIndex) {
var recordElement = Array.isArray(dataIndex) ? (0, _get.default)(record, dataIndex) : record[dataIndex];
var itemValue = String(recordElement);
return String(itemValue) === String(value);
};
/**
* 这个组件负责单元格的具体渲染
*
* @param param0
*/
function columnRender(_ref) {
var columnProps = _ref.columnProps,
text = _ref.text,
rowData = _ref.rowData,
index = _ref.index,
columnEmptyText = _ref.columnEmptyText,
counter = _ref.counter,
type = _ref.type,
subName = _ref.subName,
marginSM = _ref.marginSM,
editableUtils = _ref.editableUtils;
var action = counter.action,
prefixName = counter.prefixName;
var _editableUtils$isEdit = editableUtils.isEditable((0, _objectSpread2.default)((0, _objectSpread2.default)({}, rowData), {}, {
index: index
})),
isEditable = _editableUtils$isEdit.isEditable,
recordKey = _editableUtils$isEdit.recordKey;
var _columnProps$renderTe = columnProps.renderText,
renderText = _columnProps$renderTe === void 0 ? function (val) {
return val;
} : _columnProps$renderTe;
var renderTextStr = renderText(text, rowData, index, action);
var mode = isEditable && !isNotEditableCell(text, rowData, index, columnProps === null || columnProps === void 0 ? void 0 : columnProps.editable) ? 'edit' : 'read';
var textDom = (0, _cellRenderToFromItem.default)({
text: renderTextStr,
valueType: columnProps.valueType || 'text',
index: index,
rowData: rowData,
subName: subName,
columnProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, columnProps), {}, {
// 为了兼容性,原来写了个错别字
// @ts-ignore
entry: rowData,
entity: rowData
}),
counter: counter,
columnEmptyText: columnEmptyText,
type: type,
recordKey: recordKey,
mode: mode,
prefixName: prefixName,
editableUtils: editableUtils
});
var dom = mode === 'edit' ? textDom : (0, _proUtils.genCopyable)(textDom, columnProps, renderTextStr);
/** 如果是编辑模式,并且 renderFormItem 存在直接走 renderFormItem */
if (mode === 'edit') {
if (columnProps.valueType === 'option') {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
style: {
display: 'flex',
alignItems: 'center',
gap: marginSM,
justifyContent: columnProps.align === 'center' ? 'center' : 'flex-start'
},
children: editableUtils.actionRender((0, _objectSpread2.default)((0, _objectSpread2.default)({}, rowData), {}, {
index: columnProps.index || index
}))
});
}
return dom;
}
if (!columnProps.render) {
var isReactRenderNode = /*#__PURE__*/_react.default.isValidElement(dom) || ['string', 'number'].includes((0, _typeof2.default)(dom));
return !(0, _proUtils.isNil)(dom) && isReactRenderNode ? dom : null;
}
var renderDom = columnProps.render(dom, rowData, index, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, action), editableUtils), (0, _objectSpread2.default)((0, _objectSpread2.default)({}, columnProps), {}, {
isEditable: isEditable,
type: 'table'
}));
// 如果是合并单元格的,直接返回对象
if ((0, _.isMergeCell)(renderDom)) {
return renderDom;
}
if (renderDom && columnProps.valueType === 'option' && Array.isArray(renderDom)) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
style: {
display: 'flex',
alignItems: 'center',
justifyContent: 'flex-start',
gap: 8
},
children: renderDom
});
}
return renderDom;
}