|
@@ -1,9 +1,11 @@
|
|
|
import React, { Component, Fragment } from 'react';
|
|
import React, { Component, Fragment } from 'react';
|
|
|
|
|
+import { injectIntl, FormattedMessage } from 'react-intl';
|
|
|
import { Form, Input, Upload, Select, Button } from 'antd';
|
|
import { Form, Input, Upload, Select, Button } from 'antd';
|
|
|
import { connect } from 'dva';
|
|
import { connect } from 'dva';
|
|
|
import styles from './BaseView.less';
|
|
import styles from './BaseView.less';
|
|
|
import GeographicView from './GeographicView';
|
|
import GeographicView from './GeographicView';
|
|
|
import PhoneView from './PhoneView';
|
|
import PhoneView from './PhoneView';
|
|
|
|
|
+// import { getTimeDistance } from '../../../utils/utils';
|
|
|
|
|
|
|
|
const FormItem = Form.Item;
|
|
const FormItem = Form.Item;
|
|
|
const { Option } = Select;
|
|
const { Option } = Select;
|
|
@@ -11,13 +13,15 @@ const { Option } = Select;
|
|
|
// 头像组件 方便以后独立,增加裁剪之类的功能
|
|
// 头像组件 方便以后独立,增加裁剪之类的功能
|
|
|
const AvatarView = ({ avatar }) => (
|
|
const AvatarView = ({ avatar }) => (
|
|
|
<Fragment>
|
|
<Fragment>
|
|
|
- <div className={styles.avatar_title}>头像</div>
|
|
|
|
|
|
|
+ <div className={styles.avatar_title}>Avatar</div>
|
|
|
<div className={styles.avatar}>
|
|
<div className={styles.avatar}>
|
|
|
<img src={avatar} alt="avatar" />
|
|
<img src={avatar} alt="avatar" />
|
|
|
</div>
|
|
</div>
|
|
|
<Upload fileList={[]}>
|
|
<Upload fileList={[]}>
|
|
|
<div className={styles.button_view}>
|
|
<div className={styles.button_view}>
|
|
|
- <Button icon="upload">更换头像</Button>
|
|
|
|
|
|
|
+ <Button icon="upload">
|
|
|
|
|
+ <FormattedMessage id="app.settings.basic.avatar" defaultMessage="Change avatar" />
|
|
|
|
|
+ </Button>
|
|
|
</div>
|
|
</div>
|
|
|
</Upload>
|
|
</Upload>
|
|
|
</Fragment>
|
|
</Fragment>
|
|
@@ -49,7 +53,29 @@ const validatorPhone = (rule, value, callback) => {
|
|
|
currentUser: user.currentUser,
|
|
currentUser: user.currentUser,
|
|
|
}))
|
|
}))
|
|
|
@Form.create()
|
|
@Form.create()
|
|
|
-export default class BaseView extends Component {
|
|
|
|
|
|
|
+class BaseView extends Component {
|
|
|
|
|
+ constructor(props) {
|
|
|
|
|
+ super(props);
|
|
|
|
|
+ const { intl } = props;
|
|
|
|
|
+ this.formLabelData = {
|
|
|
|
|
+ email: intl.formatMessage({ id: 'app.settings.basic.email' }, {}),
|
|
|
|
|
+ emailMessage: intl.formatMessage({ id: 'app.settings.basic.email-message' }, {}),
|
|
|
|
|
+ nickname: intl.formatMessage({ id: 'app.settings.basic.nickname' }, {}),
|
|
|
|
|
+ nicknameMessage: intl.formatMessage({ id: 'app.settings.basic.nickname-message' }, {}),
|
|
|
|
|
+ profile: intl.formatMessage({ id: 'app.settings.basic.profile' }, {}),
|
|
|
|
|
+ profileMessage: intl.formatMessage({ id: 'app.settings.basic.profile-message' }, {}),
|
|
|
|
|
+ profilePlaceholder: intl.formatMessage({ id: 'app.settings.basic.profile-placeholder' }, {}),
|
|
|
|
|
+ country: intl.formatMessage({ id: 'app.settings.basic.country' }, {}),
|
|
|
|
|
+ countryMessage: intl.formatMessage({ id: 'app.settings.basic.country-message' }, {}),
|
|
|
|
|
+ geographic: intl.formatMessage({ id: 'app.settings.basic.geographic' }, {}),
|
|
|
|
|
+ geographicMessage: intl.formatMessage({ id: 'app.settings.basic.geographic-message' }, {}),
|
|
|
|
|
+ address: intl.formatMessage({ id: 'app.settings.basic.address' }, {}),
|
|
|
|
|
+ addressMessage: intl.formatMessage({ id: 'app.settings.basic.address-message' }, {}),
|
|
|
|
|
+ phone: intl.formatMessage({ id: 'app.settings.basic.phone' }, {}),
|
|
|
|
|
+ phoneMessage: intl.formatMessage({ id: 'app.settings.basic.phone-message' }, {}),
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
componentDidMount() {
|
|
componentDidMount() {
|
|
|
this.setBaseInfo();
|
|
this.setBaseInfo();
|
|
|
}
|
|
}
|
|
@@ -84,36 +110,36 @@ export default class BaseView extends Component {
|
|
|
<div className={styles.baseView} ref={this.getViewDom}>
|
|
<div className={styles.baseView} ref={this.getViewDom}>
|
|
|
<div className={styles.left}>
|
|
<div className={styles.left}>
|
|
|
<Form layout="vertical" onSubmit={this.handleSubmit} hideRequiredMark>
|
|
<Form layout="vertical" onSubmit={this.handleSubmit} hideRequiredMark>
|
|
|
- <FormItem label="邮箱">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.email}>
|
|
|
{getFieldDecorator('email', {
|
|
{getFieldDecorator('email', {
|
|
|
- rules: [{ required: true, message: 'Please input your email!' }],
|
|
|
|
|
|
|
+ rules: [{ required: true, message: this.formLabelData.emailMessage }],
|
|
|
})(<Input />)}
|
|
})(<Input />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="昵称">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.nickname}>
|
|
|
{getFieldDecorator('name', {
|
|
{getFieldDecorator('name', {
|
|
|
- rules: [{ required: true, message: 'Please input your nick name!' }],
|
|
|
|
|
|
|
+ rules: [{ required: true, message: this.formLabelData.nicknameMessage }],
|
|
|
})(<Input />)}
|
|
})(<Input />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="个人简介">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.profile}>
|
|
|
{getFieldDecorator('profile', {
|
|
{getFieldDecorator('profile', {
|
|
|
- rules: [{ required: true, message: 'Please input personal profile!' }],
|
|
|
|
|
- })(<Input.TextArea placeholder="简单的介绍下自己" rows={4} />)}
|
|
|
|
|
|
|
+ rules: [{ required: true, message: this.formLabelData.profileMessage }],
|
|
|
|
|
+ })(<Input.TextArea placeholder={this.formLabelData.profilePlaceholder} rows={4} />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="国家/地区">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.country}>
|
|
|
{getFieldDecorator('country', {
|
|
{getFieldDecorator('country', {
|
|
|
- rules: [{ required: true, message: 'Please input your country!' }],
|
|
|
|
|
|
|
+ rules: [{ required: true, message: this.formLabelData.countryMessage }],
|
|
|
})(
|
|
})(
|
|
|
<Select style={{ maxWidth: 220 }}>
|
|
<Select style={{ maxWidth: 220 }}>
|
|
|
<Option value="China">中国</Option>
|
|
<Option value="China">中国</Option>
|
|
|
</Select>
|
|
</Select>
|
|
|
)}
|
|
)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="所在省市">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.geographic}>
|
|
|
{getFieldDecorator('geographic', {
|
|
{getFieldDecorator('geographic', {
|
|
|
rules: [
|
|
rules: [
|
|
|
{
|
|
{
|
|
|
required: true,
|
|
required: true,
|
|
|
- message: 'Please input your geographic info!',
|
|
|
|
|
|
|
+ message: this.formLabelData.geographicMessage,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
validator: validatorGeographic,
|
|
validator: validatorGeographic,
|
|
@@ -121,20 +147,25 @@ export default class BaseView extends Component {
|
|
|
],
|
|
],
|
|
|
})(<GeographicView />)}
|
|
})(<GeographicView />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="街道地址">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.address}>
|
|
|
{getFieldDecorator('address', {
|
|
{getFieldDecorator('address', {
|
|
|
- rules: [{ required: true, message: 'Please input your address!' }],
|
|
|
|
|
|
|
+ rules: [{ required: true, message: this.formLabelData.addressMessage }],
|
|
|
})(<Input />)}
|
|
})(<Input />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <FormItem label="联系电话">
|
|
|
|
|
|
|
+ <FormItem label={this.formLabelData.phone}>
|
|
|
{getFieldDecorator('phone', {
|
|
{getFieldDecorator('phone', {
|
|
|
rules: [
|
|
rules: [
|
|
|
- { required: true, message: 'Please input your phone!' },
|
|
|
|
|
|
|
+ { required: true, message: this.formLabelData.phoneMessage },
|
|
|
{ validator: validatorPhone },
|
|
{ validator: validatorPhone },
|
|
|
],
|
|
],
|
|
|
})(<PhoneView />)}
|
|
})(<PhoneView />)}
|
|
|
</FormItem>
|
|
</FormItem>
|
|
|
- <Button type="primary">更新信息</Button>
|
|
|
|
|
|
|
+ <Button type="primary">
|
|
|
|
|
+ <FormattedMessage
|
|
|
|
|
+ id="app.settings.basic.update"
|
|
|
|
|
+ defaultMessage="Update Information"
|
|
|
|
|
+ />
|
|
|
|
|
+ </Button>
|
|
|
</Form>
|
|
</Form>
|
|
|
</div>
|
|
</div>
|
|
|
<div className={styles.right}>
|
|
<div className={styles.right}>
|
|
@@ -144,3 +175,4 @@ export default class BaseView extends Component {
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+export default injectIntl(BaseView);
|