UNPKG

@antdp/edit-table

Version:

基于antd封装的组件

117 lines (116 loc) 4.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.EditableCellItem = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _antd = require("antd"); var _rcFieldForm = _interopRequireDefault(require("rc-field-form")); var _utils = require("./utils"); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["editing", "dataIndex", "title", "record", "index", "inputNode", "rules", "children", "itemAttr", "type", "attr", "tip", "tipAttr", "multiple", "rowKey", "isList", "listAttr"], _excluded2 = ["name", "rules", "preName", "itemValue", "children", "tipAttr", "tip"]; var EditableCell = function EditableCell(_ref) { var editing = _ref.editing, dataIndex = _ref.dataIndex, title = _ref.title, record = _ref.record, index = _ref.index, inputNode = _ref.inputNode, rules = _ref.rules, children = _ref.children, itemAttr = _ref.itemAttr, type = _ref.type, attr = _ref.attr, tip = _ref.tip, tipAttr = _ref.tipAttr, multiple = _ref.multiple, rowKey = _ref.rowKey, isList = _ref.isList, listAttr = _ref.listAttr, restProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var renders = (0, _utils.getItem)({ attr: attr, type: type, inputNode: inputNode }); var _render = function _render() { // 使用 List 时 isList===true && inputNode 是方法 if (isList && typeof inputNode === 'function') { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_rcFieldForm["default"].List, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, listAttr), {}, { name: dataIndex, children: function children(fields, operation, meta) { return inputNode(fields.map(function (field) { return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, field), {}, { fieldKey: field.key }); }), operation, meta); } })); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableCellItem, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, itemAttr), {}, { name: dataIndex, rules: rules, preName: record[rowKey], itemValue: record, children: renders, tipAttr: tipAttr, tip: tip })); }; return /*#__PURE__*/(0, _jsxRuntime.jsx)("td", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, restProps), {}, { children: editing ? _render() : children })); }; var EditableCellItem = exports.EditableCellItem = function EditableCellItem(props) { var name = props.name, rules = props.rules, _props$preName = props.preName, preName = _props$preName === void 0 ? '' : _props$preName, itemValue = props.itemValue, _children = props.children, _props$tipAttr = props.tipAttr, tipAttr = _props$tipAttr === void 0 ? {} : _props$tipAttr, tip = props.tip, rest = (0, _objectWithoutProperties2["default"])(props, _excluded2); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_rcFieldForm["default"].Field, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, rest), {}, { name: name, rules: rules, children: function children(control, meta, form) { var mergedName = (0, _utils.toArray)(name).length && meta ? meta.name : []; var fieldId = (0, _utils.getFieldId)(mergedName, preName); var onChange = function onChange(event) { var value = event; if (event && event.target) { value = event.target.value; } control.onChange(value); }; var childNode = typeof _children === 'function' ? _children((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, control), {}, { id: fieldId }), meta, form, { record: itemValue }) : /*#__PURE__*/_react["default"].isValidElement(_children) ? /*#__PURE__*/_react["default"].cloneElement(_children, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, control), {}, { onChange: onChange, id: fieldId })) : _children; var errs = meta.errors.map(function (err) { return err; }).join(','); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tooltip, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({ color: "#fff", overlayInnerStyle: { color: 'red' } }, tipAttr), {}, { title: tip ? tip(errs) : errs, open: !!meta.errors.length, children: childNode })); } })); }; var _default = exports["default"] = EditableCell;