@lvxiaowu/antd4
Version:
antd4-components
104 lines (88 loc) • 4.38 kB
JavaScript
var _excluded = ["draggable"],
_excluded2 = ["editable", "rowKey", "width", "columnKey", "rules", "rowIndex", "record", "keepEditing"];
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(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 _objectWithoutPropertiesLoose(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; }
import React from "react";
import { useContext } from 'react';
import { SortableContainer, SortableElement, SortableHandle } from 'react-sortable-hoc';
import EditableCell from './EditableCell';
import { TableContext, EditableCellContext, editorNameJoin } from './Context';
import { MenuOutlined } from '@ant-design/icons';
/**
* 拖拽排序
*/
var SortableItem = SortableElement(function (props) {
return /*#__PURE__*/React.createElement("tr", props);
});
var SortableList = SortableContainer(function (props) {
return /*#__PURE__*/React.createElement("tbody", props);
});
export function CustomRow(_ref) {
var draggable = _ref.draggable,
rest = _objectWithoutProperties(_ref, _excluded);
if (draggable) {
return /*#__PURE__*/React.createElement(SortableItem, rest);
}
return /*#__PURE__*/React.createElement("tr", rest);
}
export function CustomCell(_ref2) {
var editable = _ref2.editable,
rowKey = _ref2.rowKey,
width = _ref2.width,
columnKey = _ref2.columnKey,
rules = _ref2.rules,
rowIndex = _ref2.rowIndex,
record = _ref2.record,
keepEditing = _ref2.keepEditing,
rest = _objectWithoutProperties(_ref2, _excluded2);
if (editable) {
if (columnKey) {
if (columnKey.includes(editorNameJoin)) {
console.error("columns\u4E2D\u7684key\u6216dataIndex\u5B57\u6BB5\u4E2D\u4E0D\u80FD\u5305\u542B: '".concat(editorNameJoin, "' "));
}
var editableCell; // rowKey和columnKey来确定一个单元格
var name = "".concat(record[rowKey]).concat(editorNameJoin).concat(columnKey);
if (typeof editable === 'function') {
editableCell = editable(record, rowIndex);
} else {
editableCell = /*#__PURE__*/React.createElement(EditableCell, null);
}
if (editableCell === true) {
editableCell = /*#__PURE__*/React.createElement(EditableCell, null);
}
return /*#__PURE__*/React.createElement("td", rest, /*#__PURE__*/React.createElement(EditableCellContext.Provider, {
value: {
defaultValue: record[columnKey],
rules: rules,
name: name,
width: width,
keepEditing: keepEditing
}
}, editableCell));
} else {
console.error('编辑表格columns每一项必须设置唯一的字符串key或dataIndex,表示编辑哪一个字段');
}
}
return /*#__PURE__*/React.createElement("td", rest);
}
export function CustomWrap(wrapProps) {
var _useContext = useContext(TableContext),
draggable = _useContext.draggable,
onSortEnd = _useContext.onSortEnd;
if (draggable) {
return /*#__PURE__*/React.createElement(SortableList, _extends({
axis: "y",
distance: 10,
helperClass: "sd-table-row-dragging",
onSortEnd: onSortEnd
}, draggable, wrapProps));
}
return /*#__PURE__*/React.createElement("tbody", wrapProps);
}
export var CustomDragHandle = SortableHandle(function (_ref3) {
var children = _ref3.children;
return children || /*#__PURE__*/React.createElement(MenuOutlined, {
className: "sd-table-drag-handle"
});
});