123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- import React from 'react';
- import ajax from 'jquery/src/ajax/xhr.js'
- import $ from 'jquery/src/ajax';
- import { Modal, Button, Icon, Input, message } from 'antd';
- import './changeModal.less';
- const ChangePw = React.createClass({
- getInitialState() {
- return {
- visible: false,
- getCodeButton: false,
- checkMobile: false,
- vsCodeSrc: globalConfig.context + '/open/getVCode',
- mCodeText: '获取验证码'
- };
- },
- showModal() {
- this.setState({
- visible: true,
- });
- },
- handleOk() {
- if (!this.state.checkMobile) {
- message.warning('请输入正确的手机号码!');
- } else if (this.state.checkMobile) {
- $.ajax({
- method: "POST",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/user/mobile",
- data: {
- "mobile": this.state.mobile,
- "mobileCode": this.state.mcode
- }
- }).done(function (data) {
- if (!data.error.length) {
- this.setState({
- visible: false,
- });
- message.success('修改成功!3秒后跳转到登录页面,请重新登录!');
- setInterval(function () {
- $.ajax({
- method: "get",
- dataType: "json",
- url: globalConfig.context + "/login",
- }).done(function (data) {
- window.location.href = globalConfig.context + "/user/login.html"
- });
- clearInterval(interval);
- }, 3000);
- } else {
- message.warning(data.error[0].message);
- };
- }.bind(this));
- };
- },
- handleCancel(e) {
- this.setState({
- visible: false,
- });
- },
- reloadVCode() {
- this.setState({
- vsCodeSrc: globalConfig.context + '/open/getVCode?t=' + Math.random()
- });
- },
- newMobileChange(e) {
- this.state.mobile = e.target.value;
- if (/^1[34578]\d{9}$/.test(this.state.mobile)) {
- this.state.checkMobile = true
- }
- },
- mcodeChange(e) {
- this.state.mcode = e.target.value;
- },
- getMCode() {
- if (!this.state.checkMobile) {
- message.warning('请输入正确的手机号码!');
- } else if (this.state.checkMobile) {
- $.ajax({
- method: "get",
- dataType: "json",
- url: globalConfig.context + "/open/getMCode",
- data: {
- "mobile": this.state.mobile,
- "verificationCode": this.state.Vcode
- },
- success: function (data) {
- let _me = this;
- if (data.error && data.error.length) {
- message.warning(data.error[0].message);
- this.reloadVCode();
- } else {
- message.success('验证码发送成功!');
- this.setState({
- getCodeButton: true
- });
- let interval = setInterval(function () {
- _me.setState({
- getCodeButton: false
- });
- clearInterval(interval);
- }, 60000);
- };
- let i = 59;
- let countDown = setInterval(function () {
- _me.setState({
- mCodeText: '剩余' + i + '秒'
- });
- i--;
- if (i == 0) {
- clearInterval(countDown);
- _me.setState({
- mCodeText: '获取验证码'
- });
- };
- }, 1000);
- this.reloadVCode();
- }.bind(this),
- });
- }
- },
- render() {
- return (
- <div style={{ 'float': 'left', 'marginTop': '0' }}>
- <Button type="ghost" onClick={this.showModal}>更换手机</Button>
- <Modal maskClosable={false} className="change-modal" title="更换手机号码" visible={this.state.visible}
- onOk={this.handleOk} onCancel={this.handleCancel}
- width={360}
- footer={[
- <Button key="submit" type="primary" size="large" loading={this.state.loading} onClick={this.handleOk}>确认</Button>,
- <Button key="back" type="ghost" size="large" onClick={this.handleCancel}>取消</Button>
- ]}
- >
- <div><span>新手机号码:</span><Input onChange={this.newMobileChange} /></div>
- <div>
- <span>图形验证码:</span>
- <Input className="mixwidth" onChange={(e) => { this.state.Vcode = e.target.value; }} />
- <span className="getVcode">
- <img id="VCode" src={this.state.vsCodeSrc} alt="点击刷新验证码" onClick={this.reloadVCode} />
- </span>
- </div>
- <div><span>手机验证码:</span><Input className="mixwidth" onChange={this.mcodeChange} />
- <Button style={{width:'92px'}} onClick={this.getMCode} disabled={this.state.getCodeButton}>{this.state.mCodeText}</Button></div>
- </Modal>
- </div>
- );
- },
- });
- export default ChangePw;
|