UNPKG

ssc-refer

Version:
145 lines (113 loc) 4.41 kB
'use strict'; exports.__esModule = true; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactBootstrap = require('react-bootstrap'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var VoucherMoreConditions = function (_Component) { (0, _inherits3['default'])(VoucherMoreConditions, _Component); function VoucherMoreConditions(props) { (0, _classCallCheck3['default'])(this, VoucherMoreConditions); var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.call(this, props)); _this.state = { formData: (0, _extends3['default'])({}, _this.props.defaultData), fieldsValidationState: {} }; return _this; } VoucherMoreConditions.prototype.handleChange = function handleChange(fieldId, event, validationState) { var _fieldsValidationStat; var target = event.target; var value = target.type === 'checkbox' ? target.checked : target.value; // const name = target.name; var newState = { formData: this.state.formData }; newState.formData[fieldId] = value; this.setState(newState); // undefined/null都不代表失败 this.setState(update(this.state, { fieldsValidationState: (_fieldsValidationStat = {}, _fieldsValidationStat[fieldId] = { $set: !(validationState === false) }, _fieldsValidationStat) })); if (this.props.onChange) { this.props.onChange(fieldId, value, { event: event }); } }; VoucherMoreConditions.prototype.handleSubmit = function handleSubmit(event) { if (this.props.onSubmit) { this.props.onSubmit(event, this.state.formData); } }; VoucherMoreConditions.prototype.handleReset = function handleReset(event) { if (this.props.onReset) { this.props.onReset(event); } }; VoucherMoreConditions.prototype.calcAllFieldsValidationState = function calcAllFieldsValidationState(fieldsValidationState) { var result = true; var fieldId = void 0; for (fieldId in fieldsValidationState) { if (fieldsValidationState.hasOwnProperty(fieldId)) { result = fieldsValidationState[fieldId] && result; } } return result; }; VoucherMoreConditions.prototype.render = function render() { var _props = this.props, fieldsModel = _props.fieldsModel, className = _props.className; return _react2['default'].createElement( 'form', { horizontal: true, className: (0, _classnames2['default'])(className) }, _react2['default'].createElement( _reactBootstrap.FormGroup, null, _react2['default'].createElement( _reactBootstrap.Col, { sm: 12, className: 'text-center' }, _react2['default'].createElement( _reactBootstrap.Button, { bsStyle: 'info', onClick: this.handleReset.bind(this), type: 'reset' }, '\u53D6\u6D88' ), _react2['default'].createElement( _reactBootstrap.Button, { bsStyle: 'info', onClick: this.handleSubmit.bind(this), type: 'submit', disabled: !this.calcAllFieldsValidationState(this.state.fieldsValidationState) }, '\u5B8C\u6210' ) ) ) ); }; return VoucherMoreConditions; }(_react.Component); // 表单(form)控件(control/widget) /** * Created by Tiger on 17/3/14. */ VoucherMoreConditions.propTypes = { fieldsModel: _react.PropTypes.array.isRequired, defaultData: _react.PropTypes.object, onChange: _react.PropTypes.func, onSubmit: _react.PropTypes.func, onReset: _react.PropTypes.func }; exports['default'] = VoucherMoreConditions; module.exports = exports['default'];