'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _index = require('../index'); var _styles = require('./styles'); var _BaseMixin = require('../../_util/BaseMixin'); var _BaseMixin2 = _interopRequireDefault(_BaseMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Email = { props: { form: Object }, methods: { checkSpecial: function checkSpecial(rule, value, callback) { setTimeout(function () { if (value === 'yiminghe@gmail.com') { callback('can not be!'); } else { callback(); } }, 1000); } }, render: function render() { var h = arguments[0]; var _form = this.form, getFieldProps = _form.getFieldProps, getFieldError = _form.getFieldError, isFieldValidating = _form.isFieldValidating; var errors = getFieldError('email'); return h( 'div', { style: _styles.regionStyle }, [h('div', ['email validate onBlur']), h('div', [h('input', getFieldProps('email', { initialValue: '', validateFirst: true, rules: [{ required: true }, { type: 'email', message: '错误的 email 格式' }, this.checkSpecial], validateTrigger: 'blur' }))]), h( 'div', { style: _styles.errorStyle }, [errors ? errors.join(',') : null] ), h( 'div', { style: _styles.errorStyle }, [isFieldValidating('email') ? 'validating' : null] )] ); } }; /* eslint react/no-multi-comp:0, no-console:0 */ var Form = { mixins: [_BaseMixin2['default']], props: { form: Object }, data: function data() { return { loading: true }; }, mounted: function mounted() { var _this = this; setTimeout(function () { _this.setState({ loading: false }, function () { setTimeout(function () { _this.form.setFieldsInitialValue({ email: 'xx@gmail.com' }); }, 1000); }); }, 1000); }, methods: { onSubmit: function onSubmit(e) { var _this2 = this; e.preventDefault(); this.form.submit(function (callback) { setTimeout(function () { _this2.form.validateFields(function (error, values) { if (!error) { console.log('ok', values); } else { console.log('error', error, values); } callback(); }); }, 1000); }); }, reset: function reset(e) { e.preventDefault(); this.form.resetFields(); } }, render: function render() { var h = arguments[0]; if (this.loading) { return h('b', ['loading']); } var form = this.form; var disabled = form.isFieldsValidating() || form.isSubmitting(); return h( 'div', { style: { margin: 20 } }, [h('h2', ['async init field']), h( 'form', { on: { 'submit': this.onSubmit } }, [h(Email, { attrs: { form: form } }), h( 'div', { style: _styles.regionStyle }, [h( 'button', { attrs: { disabled: disabled, type: 'submit' } }, ['submit'] ), '\xA0', disabled ? h( 'span', { style: { color: 'red' } }, ['disabled'] ) : null, '\xA0', h( 'button', { attrs: { disabled: disabled }, on: { 'click': this.reset } }, ['reset'] )] )] )] ); } }; exports['default'] = (0, _index.createForm)()(Form);