diff --git a/public/react/src/modules/user/account/AccountCertification.js b/public/react/src/modules/user/account/AccountCertification.js
index e1bdc1372..00f8f3230 100644
--- a/public/react/src/modules/user/account/AccountCertification.js
+++ b/public/react/src/modules/user/account/AccountCertification.js
@@ -4,6 +4,7 @@ import { WordsBtn, getImageUrl } from 'educoder';
 import RealNameCertificationModal from '../modal/RealNameCertificationModal'
 import '../../courses/css/Courses.css'
 import {CNotificationHOC} from '../../courses/common/CNotificationHOC'
+import axios from 'axios';
 
 
 class AccountCertification extends Component {
@@ -29,6 +30,40 @@ class AccountCertification extends Component {
     
   }
 
+
+
+  // 撤销认证
+  cancelCertification=(type)=>{
+    this.props.confirm({
+      okText: '确认',
+      content: '是否确认撤销认证?',
+      onOk: () => {
+        this.cancelCertificationAction(type);
+      }
+    })
+  }
+
+  cancelCertificationAction=(type)=>{
+    let login =this.props.current_user.login;
+    var url =  `/users/accounts/${login}/${ type == 1 ? 'authentication_apply.json':'professional_auth_apply.json'}`;
+    axios.delete(url).then((result)=>{
+      if(result){
+        this.props.showNotification("撤销成功!");
+        try {
+          this.props.getBasicInfo();
+        } catch (e) {
+        }
+        try {
+          this.props.Getdata();
+        } catch (e) {
+
+        }
+      }
+    }).catch((error)=>{
+      console.log(error);
+    })
+  }
+
   showRealNameCertificationModal = (index) => {
     this.setState({
       certification:index,
@@ -75,7 +110,6 @@ class AccountCertification extends Component {
                   color: #CDCDCD;
                 }
                 .flexRow .status {
-                  width: 100px;
                   color: #28AC7F;
                 }
             `}</style>
@@ -87,9 +121,17 @@ class AccountCertification extends Component {
                 <div className="status">
                   {
                     basicInfo && basicInfo.authentication =="uncertified" ?
-                    <WordsBtn style="blue" className="borderBottom" onClick={()=>this.checkBasicInfo(1)} >立即认证</WordsBtn>:
-                    basicInfo && basicInfo.authentication =="applying" ? <span style={{color: '#FF6800'}}>待审核</span>:
-                    <span><i className="iconfont icon-wancheng color-green font-16 mr3"></i>已认证</span>
+                    <WordsBtn style="blue" className="borderBottom mr20" onClick={()=>this.checkBasicInfo(1)} >立即认证</WordsBtn>:
+                    basicInfo && basicInfo.authentication =="applying" ? 
+                      <span>
+                        <WordsBtn style="grey" className="mr20" onClick={()=>this.cancelCertification(1)}>撤销认证</WordsBtn>
+                        <span className="mr20 ml18" style={{color: '#FF6800'}}>待审核</span>
+                      </span>
+                      :
+                      <span>
+                        <WordsBtn style="grey" className="mr20 fl " onClick={()=>this.checkBasicInfo(1)}>重新认证</WordsBtn>
+                        <span className="mr20 fl"><i className="iconfont icon-wancheng color-green font-16 mr3 fl"></i>已认证</span>
+                      </span>
                   }
                 </div>
               </div>
@@ -103,9 +145,18 @@ class AccountCertification extends Component {
                 <div className="status">
                   {
                     basicInfo && basicInfo.professional_certification =="uncertified" ?
-                    <WordsBtn style="blue" className="borderBottom" onClick={()=>this.checkBasicInfo(2)} >立即认证</WordsBtn>:
-                    basicInfo && basicInfo.professional_certification =="applying" ? <span style={{color: '#FF6800'}}>待审核</span>:
-                    <span><i className="iconfont icon-wancheng color-green font-16 mr3"></i>已认证</span>
+                    <WordsBtn style="blue" className="mr20 borderBottom" onClick={()=>this.checkBasicInfo(2)} >立即认证</WordsBtn>
+                    :
+                    basicInfo && basicInfo.professional_certification =="applying" ? 
+                      <span>
+                        <WordsBtn style="grey" className="mr20 " onClick={()=>this.cancelCertification(2)}>撤销认证</WordsBtn>
+                        <span className="mr20 ml18" style={{color: '#FF6800'}}>待审核</span>
+                      </span>
+                    :
+                    <span>
+                      <WordsBtn style="grey" className="fl mr20" onClick={()=>this.checkBasicInfo(2)} >重新认证</WordsBtn>
+                      <span className="mr20 fl"><i className="iconfont icon-wancheng color-green font-16 mr3 fl"></i>已认证</span>
+                    </span>
                   }
                 </div>
               </div>  
diff --git a/public/react/src/modules/user/modal/RealNameCertificationModal.js b/public/react/src/modules/user/modal/RealNameCertificationModal.js
index 53b32f679..4ac7f3c82 100644
--- a/public/react/src/modules/user/modal/RealNameCertificationModal.js
+++ b/public/react/src/modules/user/modal/RealNameCertificationModal.js
@@ -55,47 +55,45 @@ class RealNameCertificationModal extends Component{
     }
   }
 
-  componentDidMount() {
-    console.log("RealNameCertificationModal");
-    console.log(this.props.basicInfo);
-    if(this.props.basicInfo){
+// 弹框出现(visible==true)时给formitem赋值
+  setVisible = (visible) => {
+    this.refs.modalWrapper.setVisible(visible);
+    if(visible && this.props.basicInfo){
       this.setValue(this.props.basicInfo);
       this.getSchoolList(this.props.basicInfo);
     }
   }
 
+
   setValue=(basicInfo)=>{
+    // debugger;
     if(basicInfo){
       this.props.form.setFieldsValue({
         nickname:basicInfo.nickname,
         name:!basicInfo.show_realname ? this.hideRealName(basicInfo.name) : basicInfo.name,
-        sex:String(basicInfo.gender),
         job:basicInfo.identity,
-        org:basicInfo.school_name,
-
-        // city:[basicInfo.location,basicInfo.location_city]
+        org:basicInfo.school_name
       })
       setTimeout(() => {
         // 等显示后再set
         this.props.form.setFieldsValue({
           job:basicInfo.identity,
+          sex:String(basicInfo.gender),
           student_No:basicInfo.student_id,
           org2:basicInfo.department_name,
           job1:basicInfo && basicInfo.identity=="teacher" ? basicInfo.technical_title:"教授",
           job2:basicInfo && basicInfo.identity=="professional" ? basicInfo.technical_title:"企业管理者",
         })
       }, 100)
-      //if(basicInfo.nickname){
-        this.setState({
-          forDisable: true,
-          nameLength:basicInfo.nickname?basicInfo.nickname.length:0,
-          showRealName:basicInfo.show_realname,
-          realName: basicInfo.name,
-          identity:basicInfo.identity,
-          school_id:basicInfo.school_id,
-          department_id:basicInfo.department_id
-        })
-      //}
+      this.setState({
+        forDisable: true,
+        nameLength:basicInfo.nickname?basicInfo.nickname.length:0,
+        showRealName:basicInfo.show_realname,
+        realName: basicInfo.name,
+        identity:basicInfo.identity,
+        school_id:basicInfo.school_id,
+        department_id:basicInfo.department_id
+      })
     }
   }
 
@@ -256,10 +254,6 @@ class RealNameCertificationModal extends Component{
     // }
   }
 
-  setVisible = (visible) => {
-    this.refs.modalWrapper.setVisible(visible)
-  }
-
   onSendOk = () => {
     this.props.form.validateFieldsAndScroll((err, values) => {
       console.log(values);
@@ -273,7 +267,7 @@ class RealNameCertificationModal extends Component{
             // 实名认证
             let url = `/users/accounts/${current_user && current_user.login}/authentication_apply.json`
             axios.post((url),{
-              name:values.name,
+              name:values.name || basicInfo.name,
               gender:parseInt(values.sex),
               id_number:values.credentials
             }).then((result)=>{
@@ -289,8 +283,6 @@ class RealNameCertificationModal extends Component{
 
                 }
                 this.setVisible(false);
-
-
               }
             }).catch((error)=>{
               console.log(error);