@cainiaofe/cn-ui-layout
Version:
- 安装 cone-cli | [Cone-CLI 使用指引](https://alidocs.dingtalk.com/i/nodes/xdqZp24KneBJzvGM6XezJvyb7RA0Nr1E) - `tnpm i -g @alife/cone-cli@latest` - 安装依赖包 - `cone install` - 启动研发 - `cone start`
88 lines (87 loc) • 3.12 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireDefault(require("react"));
require("./index.scss");
var _window$CNUI;
var CnTooltip = (_window$CNUI = window.CNUI) === null || _window$CNUI === void 0 ? void 0 : _window$CNUI.CnTooltip;
/**
* 自由布局中选择有几列的setter
* @param props
* @constructor
*/
var ColumnSelectSetter = exports["default"] = /*#__PURE__*/function (_React$Component) {
function ColumnSelectSetter(props) {
var _this;
_this = _React$Component.call(this, props) || this;
_this.originValue = void 0;
_this.select = function (index) {
var onChange = _this.props.onChange;
if (typeof index === 'number') {
_this.originValue = index;
onChange === null || onChange === void 0 ? void 0 : onChange(index);
}
};
_this.mouseenter = function (index) {
var onChange = _this.props.onChange;
_this.setState({
column: index
});
onChange === null || onChange === void 0 ? void 0 : onChange(index);
};
_this.mouseleave = function () {
var onChange = _this.props.onChange;
if (typeof _this.originValue === 'number') {
onChange === null || onChange === void 0 ? void 0 : onChange(_this.originValue);
}
};
var realValue = Number(_this.props.value);
_this.state = {
column: realValue
};
_this.originValue = realValue;
return _this;
}
(0, _inheritsLoose2["default"])(ColumnSelectSetter, _React$Component);
ColumnSelectSetter.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
if (Number(nextProps.value) !== prevState.column) {
return {
column: Number(nextProps.value)
};
}
return null; // 不需要更新 state
};
var _proto = ColumnSelectSetter.prototype;
_proto.render = function render() {
var _this2 = this;
var column = this.state.column;
return /*#__PURE__*/_react["default"].createElement("div", {
onMouseLeave: this.mouseleave,
className: "cn-column-select-setter"
}, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(function (item, index) {
var style = {};
if (column > index) {
style.backgroundColor = '#005be5';
}
var dom = /*#__PURE__*/_react["default"].createElement("div", {
onMouseEnter: _this2.mouseenter.bind(_this2, index + 1),
onClick: _this2.select.bind(_this2, index + 1),
className: "cn-column-select-setter-item",
style: style
});
if (CnTooltip) {
return /*#__PURE__*/_react["default"].createElement(CnTooltip, {
trigger: dom
}, index + 1);
} else {
return dom;
}
}));
};
return ColumnSelectSetter;
}(_react["default"].Component);
ColumnSelectSetter.displayName = 'ColumnSelectSetter';
module.exports = exports.default;
module.exports.default = exports.default;