UNPKG

dareway-rui

Version:

236 lines (208 loc) 9.94 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _propTypes = _interopRequireDefault(require('prop-types')); var _EditInput = _interopRequireDefault(require('./EditInput')); var _ReadonlyInput = _interopRequireDefault(require('./ReadonlyInput')); var BodyCell = /*#__PURE__*/ (function(_React$PureComponent) { (0, _inherits2.default)(BodyCell, _React$PureComponent); function BodyCell(props) { var _this; (0, _classCallCheck2.default)(this, BodyCell); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(BodyCell).call(this, props) ); //state放在这里,点击外部从readonly变成editing状态时,改变日历弹出状态 // focus跳转的时候 不弹出日历 (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'updateGridCurrentRowNum', function() { var _this$props = _this.props, updateCurrentRowNum = _this$props.updateCurrentRowNum, rowNumber = _this$props.rowNumber; updateCurrentRowNum(rowNumber); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handlePureReadonlyTdClick', function(event) { _this.updateGridCurrentRowNum(); var setCurrentEditColName = _this.props.setCurrentEditColName; setCurrentEditColName(null); event.stopPropagation(); event.preventDefault(); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleToggleReadonlyTdClick', function(event) { _this.updateGridCurrentRowNum(); //不能冒泡,最外层有退出所有编辑状态的操作 event.stopPropagation(); event.preventDefault(); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleToggleReadonlyInputClick', function(event) { //设置当前行当前列为可编辑列 _this.updateGridCurrentRowNum(); var _this$props2 = _this.props, setCurrentEditColName = _this$props2.setCurrentEditColName, name = _this$props2.name; setCurrentEditColName(name); _this.setState({ defaultCalendarOpenState: true }); event.stopPropagation(); event.preventDefault(); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleWhenEditInputDestory', function() { _this.setState({ defaultCalendarOpenState: false }); } ); _this.state = { defaultCalendarOpenState: false }; return _this; } (0, _createClass2.default)(BodyCell, [ { key: 'render', value: function render() { var _this$props3 = this.props, name = _this$props3.name, value = _this$props3.value, rowNumber = _this$props3.rowNumber, mask = _this$props3.mask, sourceMask = _this$props3.sourceMask, readonly = _this$props3.readonly, hidden = _this$props3.hidden, isEdit = _this$props3.isEdit, handleCellKeyDown = _this$props3.handleCellKeyDown, onBlur = _this$props3.onBlur, width = _this$props3.width, bodyAlign = _this$props3.bodyAlign, bodyBold = _this$props3.bodyBold, bodyFontColor = _this$props3.bodyFontColor, bodyOblique = _this$props3.bodyOblique, bodyStyleFilter = _this$props3.bodyStyleFilter, setCurrentEditColName = _this$props3.setCurrentEditColName, syncCellValue = _this$props3.syncCellValue; var defaultCalendarOpenState = this.state.defaultCalendarOpenState; if (hidden) { return null; } if (readonly) { return _react.default.createElement( 'td', { name: name, onClick: this.handlePureReadonlyTdClick }, _react.default.createElement(_ReadonlyInput.default, { name: name, width: width, value: value, mask: mask, bodyAlign: bodyAlign, bodyBold: bodyBold, bodyFontColor: bodyFontColor, bodyOblique: bodyOblique }) ); } return _react.default.createElement( 'td', { name: name, onClick: this.handleToggleReadonlyTdClick }, isEdit ? _react.default.createElement(_EditInput.default, { name: name, value: value, onKeyDown: handleCellKeyDown, onBlur: onBlur, mask: mask, sourceMask: sourceMask, rowNum: rowNumber, setCurrentEditColName: setCurrentEditColName, syncCellValue: syncCellValue, bodyAlign: bodyAlign, bodyBold: bodyBold, bodyFontColor: bodyFontColor, bodyOblique: bodyOblique, bodyStyleFilter: bodyStyleFilter, width: width, defaultCalendarOpen: defaultCalendarOpenState, handleWhenDestory: this.handleWhenEditInputDestory }) : _react.default.createElement(_ReadonlyInput.default, { name: name, value: value, mask: mask, width: width, onClick: this.handleToggleReadonlyInputClick, bodyAlign: bodyAlign, bodyBold: bodyBold, bodyFontColor: bodyFontColor, bodyOblique: bodyOblique, bodyStyleFilter: bodyStyleFilter }) ); } } ]); return BodyCell; })(_react.default.PureComponent); exports.default = BodyCell; (0, _defineProperty2.default)(BodyCell, 'propTypes', { name: _propTypes.default.string, value: _propTypes.default.object, rowNumber: _propTypes.default.number, //DateColumn mask: _propTypes.default.string, sourceMask: _propTypes.default.string, // 只读、必填、隐藏 readonly: _propTypes.default.bool, required: _propTypes.default.bool, hidden: _propTypes.default.bool, // body ui width: _propTypes.default.number, bodyAlign: _propTypes.default.string, bodyBold: _propTypes.default.bool, bodyFontColor: _propTypes.default.string, bodyOblique: _propTypes.default.bool, bodyStyleFilter: _propTypes.default.func, // onBlur, onBlur: _propTypes.default.func, // updateCurrentRowNum handleCellKeyDown: _propTypes.default.func, updateCurrentRowNum: _propTypes.default.func, syncCellValue: _propTypes.default.func, setCurrentEditColName: _propTypes.default.func }); //@ sourceMappingURL=BodyCell.js.map