UNPKG

@lvxiaowu/antd4

Version:

antd4-components

104 lines (88 loc) 4.38 kB
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" }); });