@beisen/ethos
Version:
beisencloud pc react components
257 lines (220 loc) • 8.55 kB
JavaScript
'use strict';
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
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 _reactDom = require('react-dom');
var _toolTip = require('../tool-tip');
var _toolTip2 = _interopRequireDefault(_toolTip);
require('./checkbox.scss');
var _CheckboxItem = require('./CheckboxItem.js');
var _CheckboxItem2 = _interopRequireDefault(_CheckboxItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// import dataAnalysis from './helper/analysis';
//var React = require("react");
var CheckboxList = function (_Component) {
(0, _inherits3.default)(CheckboxList, _Component);
function CheckboxList(props) {
(0, _classCallCheck3.default)(this, CheckboxList);
var _this = (0, _possibleConstructorReturn3.default)(this, (CheckboxList.__proto__ || (0, _getPrototypeOf2.default)(CheckboxList)).call(this, props));
var defaults = {
checkboxItems: [{
bsStyle: true,
isChecked: false
}]
};
_this.state = (0, _extends3.default)({}, defaults, props);
_this.handleClick = _this.handleClick.bind(_this);
_this.handleHover = _this.handleHover.bind(_this);
_this.handleMouseOut = _this.handleMouseOut.bind(_this);
_this.picClick = _this.picClick.bind(_this);
return _this;
}
//处理点击事件 改变当前点击checkbox的isChecked值
(0, _createClass3.default)(CheckboxList, [{
key: 'handleClick',
value: function handleClick(value, text, event, item) {
if (this.props.disabled) return false;
var checkboxItems = this.state.checkboxItems;
checkboxItems.forEach(function (elem, index) {
if (elem.value == value && elem.bsStyle == true) {
elem.isChecked = !elem.isChecked;
}
});
// this.userClickUxPmsLog(event)
this.setState({ checkboxItems: checkboxItems });
var data = checkboxItems.filter(function (item) {
return item.isChecked;
});
this.props.onClick(event.target, data);
}
}, {
key: 'picClick',
value: function picClick(value) {
var checkboxItems = this.state.checkboxItems;
var data = checkboxItems.filter(function (item) {
return item.value == value;
});
this.props.picClick(data[0]);
}
// userClickUxPmsLog(e){
// var className = e.target.getAttribute('class');
// if(className == 'check-title'){
// dataAnalysis._up('[CheckBoxList-text]',this.props.cmp_id);
// }else if(className.indexOf('table-item-check') > -1){
// dataAnalysis._up('[CheckBoxList-icon]',this.props.cmp_id);
// }
// }
}, {
key: 'handleHover',
value: function handleHover(event) {
var hoverName = event.target.className;
if (hoverName.indexOf('pc-sys-Checkbox-hover-svg') == -1) {
event.target.className = hoverName.replace(/nomal/, 'hover');
}
}
}, {
key: 'handleMouseOut',
value: function handleMouseOut(event) {
var hoverName = event.target.className;
if (hoverName.indexOf('pc-sys-Checkbox-hover-svg') !== -1) {
event.target.className = hoverName.replace(/hover/, 'nomal');
}
}
}, {
key: 'shouldComponentUpdate',
value: function shouldComponentUpdate(nextProps) {
return this.props.hasRender ? true : false;
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
if (nextProps.checkboxItems != this.props.checkboxItems) {
this.state.checkboxItems = nextProps.checkboxItems;
this.setState(this.state);
}
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var checkboxItems = this.state.checkboxItems;
var _props = this.props,
name = _props.name,
hidden = _props.hidden,
disabled = _props.disabled,
required = _props.required,
errorStatus = _props.errorStatus,
helpMsg = _props.helpMsg,
sideTip = _props.sideTip,
hiddenTip = _props.hiddenTip,
lablePos = _props.lablePos,
lableTxt = _props.lableTxt,
hasNoTitle = _props.hasNoTitle;
var errorMsg = '请填写正确信息',
errorContent = void 0,
checkboxList = void 0;
if (this.props.errorStatus) {
errorMsg = this.props.errorMsg.length > 0 ? this.props.errorMsg : errorMsg;
errorContent = _react2.default.createElement(
'span',
{ className: 'form-item__explain' },
errorMsg
);
}
var lableStyle = void 0,
textStyle = void 0;
if (lablePos) {
lableStyle = lableTxt ? { float: 'left', textAlign: 'left' } : { float: 'left', textAlign: 'right' };
textStyle = { paddingTop: '6px' };
} else {
lableStyle = {};
textStyle = {};
}
//win10的ie下取消转动的动画
var isWin10 = navigator.userAgent.indexOf('Windows NT 10.0') > -1 && !!window.ActiveXObject || 'ActiveXObject' in window;
if (hidden) {
return _react2.default.createElement(
'div',
{ className: 'field checkboxlist' },
' '
);
} else {
return _react2.default.createElement(
'div',
{ className: 'form-item checkboxlist ' + (helpMsg ? 'form-item__help' : '') },
hasNoTitle ? _react2.default.createElement('div', null) : _react2.default.createElement(
'div',
{ className: 'form-item__title', style: lableStyle },
required && !disabled ? _react2.default.createElement(
'a',
{ className: 'form-item__required' },
_react2.default.createElement('i', { className: 'u-icon pc-sys-cus-bitian-svg' })
) : '',
_react2.default.createElement(
_toolTip2.default,
{ title: name, side: sideTip, hidden: hiddenTip },
_react2.default.createElement(
'label',
{ htmlFor: '', className: 'form-item__text', style: textStyle },
name,
lablePos ? _react2.default.createElement('div', { className: 'fade-out' }) : ''
)
),
helpMsg ? _react2.default.createElement(
_toolTip2.default,
{ title: helpMsg, side: sideTip, hidden: hiddenTip },
_react2.default.createElement('i', { className: 'u-icon sys-icon-cus-bangzhu' })
) : ''
),
_react2.default.createElement(
'div',
{ className: 'form-item__control ' + (errorStatus ? 'form-item__control_has-error' : '') },
_react2.default.createElement(
'div',
{ style: { marginLeft: '5px' } },
checkboxItems.map(function (item, index) {
var isChecked = void 0;
if (disabled || item.itemReadonly) {
isChecked = item.isChecked ? isWin10 ? 'table-item-check pc-sys-Checkbox-active-disabled-svg' : 'table-item-check table-item-check-go pc-sys-Checkbox-active-disabled-svg' : isWin10 ? 'table-item-check pc-sys-Checkbox-disabled-svg' : 'table-item-check table-item-check-back pc-sys-Checkbox-disabled-svg';
} else {
isChecked = item.isChecked ? isWin10 ? 'table-item-check pc-sys-Checkbox-active-svg' : 'table-item-check table-item-check-go pc-sys-Checkbox-active-svg' : isWin10 ? 'table-item-check pc-sys-Checkbox-nomal-svg' : 'table-item-check table-item-check-back pc-sys-Checkbox-nomal-svg';
}
return _react2.default.createElement(_CheckboxItem2.default, {
key: index,
item: item,
isChecked: isChecked,
readOnly: disabled,
text: item.text,
hasPic: item.hasPic,
bsStyle: item.bsStyle,
itemReadonly: item.itemReadonly,
toolTipMsg: item.toolTipMsg,
value: item.value,
handleClick: _this2.handleClick,
handleHover: _this2.handleHover,
handleMouseOut: _this2.handleMouseOut,
picClick: _this2.picClick,
iconStyle: item.iconStyle
});
})
),
errorContent
)
);
}
}
}]);
return CheckboxList;
}(_react.Component);
module.exports = CheckboxList;