@beisen/ethos
Version:
beisencloud pc react components
166 lines (132 loc) • 6.33 kB
JavaScript
'use strict';
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _toolTip = require('../tool-tip');
var _toolTip2 = _interopRequireDefault(_toolTip);
var _commonFunc = require('../common-func');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var CheckboxItem = function (_Component) {
(0, _inherits3.default)(CheckboxItem, _Component);
function CheckboxItem(props) {
(0, _classCallCheck3.default)(this, CheckboxItem);
var _this = (0, _possibleConstructorReturn3.default)(this, (CheckboxItem.__proto__ || (0, _getPrototypeOf2.default)(CheckboxItem)).call(this, props));
_this._onChange = function (event) {
event.stopPropagation();
var node = event.target;
var _id = parseInt(node.getAttribute('data-id'));
var _this$props = _this.props,
totalCount = _this$props.totalCount,
resultsData = _this$props.resultsData;
var hasCount = resultsData.length;
if (hasCount == totalCount && _this._totalDeal(_id) === undefined) return;
var _name = node.getAttribute('data-name');
if (!_this.props.isChecked) {
_this.props.setResultsData({
id: _id,
isForeign: _this.props.isForeign,
province: _this.props.province,
area: _this.props.area,
name: _name,
pIndex: _this.props.pIndex
});
} else {
_this.props.clearRSDataFromList(_id, _this.props.pIndex);
}
_this.setState({ animation: "checkToDft 0.2s cubic-bezier(0.25, 0.1, 0.25, 1) forwards" });
};
_this._totalDeal = function (_id) {
var resultsData = _this.props.resultsData;
var _isExist = resultsData.find(function (val, index, arr) {
return val.id == _id;
});
return _isExist;
};
_this._goNextLevel = function (event) {
if (!_this.props.isMore) return;
_this.props.goNextLevel(_this.props.name, parseInt(_this.props.id), _this.props.pIndex, _this.props.isChecked);
if (!_this.props.hiddenTip) {
_this.props.clearToolTipDom();
}
};
_this.state = {
animation: "none"
};
return _this;
}
// checkbox onchange handler
// totalCount 处理逻辑
// 子级跳转
(0, _createClass3.default)(CheckboxItem, [{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.setState({ animation: "none" });
}
}, {
key: 'render',
value: function render() {
var _props = this.props,
name = _props.name,
id = _props.id,
isChecked = _props.isChecked,
index = _props.index,
isMore = _props.isMore,
options = _props.options,
hiddenTip = _props.hiddenTip,
sideTip = _props.sideTip,
disabled = _props.disabled;
var _isMoreClass = isMore ? 'pc-sys-arrowright-active-svg' : '';
var _name = (0, _commonFunc.decode)(name);
return _react2.default.createElement(
'span',
{ className: 'u-checkbox' },
_react2.default.createElement('input', { type: 'checkbox',
id: 'checkbox' + index,
'data-id': id,
'data-name': name,
name: options,
checked: isChecked,
defaultChecked: isChecked,
disabled: disabled,
onChange: this._onChange
}),
_react2.default.createElement(
'label',
{ htmlFor: 'checkbox' + index, className: 'u-checkbox__label' },
_react2.default.createElement(
'span',
{ className: 'u-checkbox__icon' },
_react2.default.createElement('i', { className: 'u-icon pc-sys-Checkbox-nomal-svg', style: { animation: this.state.animation } }),
_react2.default.createElement('i', { className: 'u-icon pc-sys-Checkbox-active-svg', style: { 'backgroundSize': (0, _commonFunc.judgeBrowser)().isIe || (0, _commonFunc.judgeBrowser)().isEdge ? 'inherit' : '100%' } }),
_react2.default.createElement('i', { className: 'u-icon pc-sys-Checkbox-active-disabled-svg' })
)
),
_react2.default.createElement(
'span',
{ className: 'area-select__label', onClick: this._goNextLevel },
_react2.default.createElement(
_toolTip2.default,
{ title: name, hidden: hiddenTip, side: sideTip },
_react2.default.createElement(
'span',
{ className: "area-select__text" + (isMore ? '' : ' area-select__text_is-nomore') },
_name
)
),
_react2.default.createElement('i', { className: 'u-icon ' + _isMoreClass })
)
);
}
}]);
return CheckboxItem;
}(_react.Component);
module.exports = CheckboxItem;