choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
148 lines (124 loc) • 4.67 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _inherits from "@babel/runtime/helpers/inherits";
import _createSuper from "@babel/runtime/helpers/createSuper";
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
import React, { Component } from 'react';
import Checkbox from '../checkbox';
import InputNumber from '../input-number';
import { getColumnKey } from './util';
var sortInputStyle = {
width: '60px'
};
var sortInputWrapStyle = _objectSpread(_objectSpread({}, sortInputStyle), {}, {
display: 'inline-block'
});
var sortInputWrapStyleCenter = _objectSpread(_objectSpread({}, sortInputWrapStyle), {}, {
textAlign: 'center'
});
var ColumnFilterMenuItem = /*#__PURE__*/function (_Component) {
_inherits(ColumnFilterMenuItem, _Component);
var _super = _createSuper(ColumnFilterMenuItem);
function ColumnFilterMenuItem(props) {
var _this;
_classCallCheck(this, ColumnFilterMenuItem);
_this = _super.call(this, props); // 修改是否 lock (fixedLeft)
_this.handleFixedLeftChange = function (e) {
var customColumn = _this.state.customColumn;
var fixedLeft = e.target.checked ? 1 : 0;
_this.setState({
customColumn: _objectSpread(_objectSpread({}, customColumn), {}, {
fixedLeft: fixedLeft,
fixedRight: fixedLeft === 1 ? 0 : customColumn.fixedRight
})
});
}; // 修改是否隐藏
_this.handleHiddenChange = function (e) {
var customColumn = _this.state.customColumn;
var hidden = e.target.checked ? 0 : 1;
_this.setState({
customColumn: _objectSpread(_objectSpread({}, customColumn), {}, {
hidden: hidden
})
});
}; // 修改排序
_this.handleOrderSeqChange = function (value) {
var customColumn = _this.state.customColumn;
_this.setState({
customColumn: _objectSpread(_objectSpread({}, customColumn), {}, {
orderSeq: value
})
});
}; // 获取校验的数据
_this.getValidateCustomColumn = function () {
var customColumn = _this.state.customColumn;
return Promise.resolve(customColumn);
};
var customColumn = props.customColumn || {
hidden: 0,
fixedLeft: 0,
fixedRight: 0,
orderSeq: props.index,
fieldKey: getColumnKey(props.column, props.index)
};
_this.state = {
customColumn: customColumn,
prevCustomColumn: customColumn
};
return _this;
}
_createClass(ColumnFilterMenuItem, [{
key: "render",
value: function render() {
var _this$props = this.props,
column = _this$props.column,
checkboxPrefixCls = _this$props.checkboxPrefixCls,
inputNumberProps = _this$props.inputNumberProps;
var customColumn = this.state.customColumn;
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
style: sortInputWrapStyleCenter
}, /*#__PURE__*/React.createElement(Checkbox, {
prefixCls: checkboxPrefixCls,
style: sortInputStyle,
checked: customColumn.hidden !== 1,
onChange: this.handleHiddenChange
})), /*#__PURE__*/React.createElement("div", {
className: "dropdown-menu-text"
}, column.title), /*#__PURE__*/React.createElement("div", {
style: sortInputWrapStyleCenter
}, /*#__PURE__*/React.createElement(Checkbox, {
prefixCls: checkboxPrefixCls,
name: "fixedLeft",
checked: customColumn.fixedLeft === 1,
onChange: this.handleFixedLeftChange
})), /*#__PURE__*/React.createElement("div", {
style: sortInputWrapStyle
}, /*#__PURE__*/React.createElement(InputNumber, _extends({}, inputNumberProps, {
name: "orderSeq",
style: sortInputStyle,
min: 0,
step: 1,
precision: 0,
value: customColumn.orderSeq,
onChange: this.handleOrderSeqChange
}))));
}
}], [{
key: "getDerivedStateFromProps",
value: function getDerivedStateFromProps(nextProps, prevState) {
var customColumn = nextProps.customColumn;
var prevCustomColumn = prevState.prevCustomColumn;
if (customColumn && prevCustomColumn !== customColumn) {
return {
customColumn: customColumn,
prevCustomColumn: customColumn
};
}
return null;
}
}]);
return ColumnFilterMenuItem;
}(Component);
export default ColumnFilterMenuItem;
//# sourceMappingURL=ColumnFilterMenuItem.js.map