|
@@ -45,7 +45,7 @@ export class BindPhone extends Component {
|
|
|
if (!props.show || this.props.show) return {};
|
|
|
const data = Object.assign({}, props.data);
|
|
|
if (!data.area) data.area = MobileArea[0].value;
|
|
|
- return { step: props.data.mobile ? 0 : 1, data };
|
|
|
+ return { step: props.data.mobile ? 0 : 1, data, validError: '', empty: {} };
|
|
|
}
|
|
|
|
|
|
componentWillReceiveProps(nextProps) {
|
|
@@ -53,7 +53,7 @@ export class BindPhone extends Component {
|
|
|
}
|
|
|
|
|
|
onNext() {
|
|
|
- this.setState({ step: 1 });
|
|
|
+ this.setState({ step: 1, validError: '', mobileError: '', empty: {} });
|
|
|
}
|
|
|
|
|
|
changeData(field, value) {
|
|
@@ -61,18 +61,17 @@ export class BindPhone extends Component {
|
|
|
data = data || {};
|
|
|
empty = empty || {};
|
|
|
data[field] = value;
|
|
|
- empty[field] = !value;
|
|
|
+ if (value) empty[field] = !value;
|
|
|
this.setState({ data, empty, mobileError: null });
|
|
|
}
|
|
|
|
|
|
validMobile() {
|
|
|
const { data } = this.state;
|
|
|
const { area, mobile } = data;
|
|
|
- const { info } = this.props.user;
|
|
|
if (!area || !mobile) return;
|
|
|
this.validNumber += 1;
|
|
|
const number = this.validNumber;
|
|
|
- if (mobile === info.mobile) {
|
|
|
+ if (mobile === this.props.data.mobile) {
|
|
|
this.setState({ mobileError: '' });
|
|
|
return;
|
|
|
}
|
|
@@ -93,7 +92,11 @@ export class BindPhone extends Component {
|
|
|
sendValid() {
|
|
|
const { data, mobileError } = this.state;
|
|
|
const { area, mobile } = data;
|
|
|
- if (!area || !mobile || mobileError) return Promise.reject();
|
|
|
+ if (mobileError) return Promise.reject();
|
|
|
+ if (!area || !mobile) {
|
|
|
+ this.setState({ empty: { area: !data.area, mobile: !data.mobile } });
|
|
|
+ return Promise.reject();
|
|
|
+ }
|
|
|
return Common.sendSms(area, mobile)
|
|
|
.then(result => {
|
|
|
if (result) {
|
|
@@ -111,9 +114,13 @@ export class BindPhone extends Component {
|
|
|
|
|
|
submit() {
|
|
|
const { data, validError, mobileError } = this.state;
|
|
|
- if (!data.mobile || !data.area || validError || mobileError) return;
|
|
|
- const { area, mobile } = data;
|
|
|
- My.bindMobile(area, mobile)
|
|
|
+ if (validError || mobileError) return;
|
|
|
+ const { area, mobile, mobileVerifyCode } = data;
|
|
|
+ if (!area || !mobile || !mobileVerifyCode) {
|
|
|
+ this.setState({ empty: { area: !data.area, mobile: !data.mobile, mobileVerifyCode: !mobileVerifyCode } });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ My.bindMobile(area, mobile, mobileVerifyCode)
|
|
|
.then(() => {
|
|
|
asyncSMessage('操作成功');
|
|
|
this.setState({ step: 0, validError: '', mobileError: '' });
|
|
@@ -142,7 +149,7 @@ export class BindPhone extends Component {
|
|
|
renderStep0() {
|
|
|
const { data } = this.state;
|
|
|
return (
|
|
|
- <div className="step-0-layout">
|
|
|
+ <div className="step-0-layout t-2">
|
|
|
已绑定手机 {data.mobile}
|
|
|
<a onClick={() => this.onNext()}>修改</a>
|
|
|
</div>
|
|
@@ -223,7 +230,7 @@ export class BindEmail extends Component {
|
|
|
}
|
|
|
|
|
|
onNext() {
|
|
|
- this.setState({ step: 1 });
|
|
|
+ this.setState({ step: 1, error: '', empty: {} });
|
|
|
}
|
|
|
|
|
|
changeData(field, value) {
|
|
@@ -231,18 +238,17 @@ export class BindEmail extends Component {
|
|
|
data = data || {};
|
|
|
empty = empty || {};
|
|
|
data[field] = value;
|
|
|
- empty[field] = !value;
|
|
|
+ if (value) empty[field] = !value;
|
|
|
this.setState({ data, empty, error: null });
|
|
|
}
|
|
|
|
|
|
validEmail() {
|
|
|
const { data } = this.state;
|
|
|
const { email } = data;
|
|
|
- const { info } = this.props.user;
|
|
|
if (!email) return;
|
|
|
this.validNumber += 1;
|
|
|
const number = this.validNumber;
|
|
|
- if (email === info.email) {
|
|
|
+ if (email === this.props.data.email) {
|
|
|
this.setState({ error: '' });
|
|
|
return;
|
|
|
}
|
|
@@ -262,7 +268,11 @@ export class BindEmail extends Component {
|
|
|
|
|
|
submit() {
|
|
|
const { data, error } = this.state;
|
|
|
- if (!data.email || error) return;
|
|
|
+ if (error) return;
|
|
|
+ if (!data.email) {
|
|
|
+ this.setState({ empty: { email: !data.email } });
|
|
|
+ return;
|
|
|
+ }
|
|
|
const { email } = data;
|
|
|
My.bindEmail(email)
|
|
|
.then(() => {
|
|
@@ -289,7 +299,7 @@ export class BindEmail extends Component {
|
|
|
renderStep0() {
|
|
|
const { data } = this.state;
|
|
|
return (
|
|
|
- <div className="step-0-layout">
|
|
|
+ <div className="step-0-layout t-2">
|
|
|
已绑定邮箱 {data.email}
|
|
|
<a onClick={() => this.onNext()}>修改</a>
|
|
|
</div>
|
|
@@ -354,16 +364,19 @@ export class EditInfo extends Component {
|
|
|
data = data || {};
|
|
|
empty = empty || {};
|
|
|
data[field] = value;
|
|
|
- empty[field] = !value;
|
|
|
- this.setState({ data, nicknameError: null, empty });
|
|
|
+ if (value) empty[field] = !value;
|
|
|
+ this.setState({ data, empty, nicknameError: null });
|
|
|
}
|
|
|
|
|
|
submit() {
|
|
|
- const { data, nicknameError, empty } = this.state;
|
|
|
+ const { data, nicknameError } = this.state;
|
|
|
if (nicknameError) return;
|
|
|
if (!data.nickname) {
|
|
|
- empty.nickname = true;
|
|
|
- this.setState({ nicknameError: '用户名不能为空!', empty });
|
|
|
+ this.setState({ empty: { nickname: !data.nickname } });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (data.nickname.length < 2 || data.nickname.length > 20) {
|
|
|
+ this.setState({ nicknameError: '用户名长度不足2个自负或超过20个字符' });
|
|
|
return;
|
|
|
}
|
|
|
const { nickname, avatar } = data;
|