Merge branch 'dev_aliyun' of http://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_cxt2
cxt 5 years ago
commit 99cdfeb3ff

@ -17,7 +17,7 @@ class CreateBindUserService < ApplicationService
bind_user = User.try_to_login(params[:username], params[:password]) bind_user = User.try_to_login(params[:username], params[:password])
raise Error, '用户名或者密码错误' if bind_user.blank? raise Error, '用户名或者密码错误' if bind_user.blank?
raise Error, '该账号已被其他微信号绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) raise Error, '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s)
ActiveRecord::Base.transaction do ActiveRecord::Base.transaction do
open_user.user_id = bind_user.id open_user.user_id = bind_user.id

@ -51,6 +51,11 @@ const _origin = window.location.origin;
/* /*
tpi讨论交流问答帖子详情讨论课堂讨论的公用模块:
https://www.educoder.net/tasks/n2ejvaowk6l9
https://www.educoder.net/forums/2629
注意不同模块使用时的参数的不同 usingAntdModal onlySuperAdminCouldHide isChildCommentPagination等等
用到的props: 用到的props:
user user_url image_url user user_url image_url
@ -67,6 +72,8 @@ const _origin = window.location.origin;
onlySuperAdminCouldHide 只有超级管理员才显示隐藏取消隐藏 onlySuperAdminCouldHide 只有超级管理员才显示隐藏取消隐藏
isChildCommentPagination 是否子回复分页 isChildCommentPagination 是否子回复分页
loadMoreChildComments function 加载所有子回复 loadMoreChildComments function 加载所有子回复
usingAntdModal 是否使用antd的弹框
接口 接口
deleteComment 删除 deleteComment 删除

@ -297,7 +297,7 @@ class SingleEditor extends Component{
<div className="mb20"> <div className="mb20">
<span <span
style={{color: '#FF6800'}}>{!exerciseIsPublish ? '温馨提示:点击选项输入框可设置答案;选中的选项即为正确答案,选择多个答案即为多选题' : ' '}</span> style={{color: '#FF6800'}}>{'温馨提示:点击选项输入框可设置答案;选中的选项即为正确答案,选择多个答案即为多选题'}</span>
{ answerTagArray && !!answerTagArray.length ? { answerTagArray && !!answerTagArray.length ?
<React.Fragment> <React.Fragment>
<span className="fr color-orange">{answerTagArray.join(' ')}</span> <span className="fr color-orange">{answerTagArray.join(' ')}</span>

@ -4,6 +4,7 @@ import { WordsBtn, getImageUrl } from 'educoder';
import RealNameCertificationModal from '../modal/RealNameCertificationModal' import RealNameCertificationModal from '../modal/RealNameCertificationModal'
import '../../courses/css/Courses.css' import '../../courses/css/Courses.css'
import {CNotificationHOC} from '../../courses/common/CNotificationHOC' import {CNotificationHOC} from '../../courses/common/CNotificationHOC'
import axios from 'axios';
class AccountCertification extends Component { 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) => { showRealNameCertificationModal = (index) => {
this.setState({ this.setState({
certification:index, certification:index,
@ -75,7 +110,6 @@ class AccountCertification extends Component {
color: #CDCDCD; color: #CDCDCD;
} }
.flexRow .status { .flexRow .status {
width: 100px;
color: #28AC7F; color: #28AC7F;
} }
`}</style> `}</style>
@ -87,9 +121,17 @@ class AccountCertification extends Component {
<div className="status"> <div className="status">
{ {
basicInfo && basicInfo.authentication =="uncertified" ? basicInfo && basicInfo.authentication =="uncertified" ?
<WordsBtn style="blue" className="borderBottom" onClick={()=>this.checkBasicInfo(1)} >立即认证</WordsBtn>: <WordsBtn style="blue" className="borderBottom mr20" onClick={()=>this.checkBasicInfo(1)} >立即认证</WordsBtn>:
basicInfo && basicInfo.authentication =="applying" ? <span style={{color: '#FF6800'}}>待审核</span>: basicInfo && basicInfo.authentication =="applying" ?
<span><i className="iconfont icon-wancheng color-green font-16 mr3"></i></span> <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>
</div> </div>
@ -103,9 +145,18 @@ class AccountCertification extends Component {
<div className="status"> <div className="status">
{ {
basicInfo && basicInfo.professional_certification =="uncertified" ? basicInfo && basicInfo.professional_certification =="uncertified" ?
<WordsBtn style="blue" className="borderBottom" onClick={()=>this.checkBasicInfo(2)} >立即认证</WordsBtn>: <WordsBtn style="blue" className="mr20 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> 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>
</div> </div>

@ -55,47 +55,45 @@ class RealNameCertificationModal extends Component{
} }
} }
componentDidMount() { // 弹框出现visible==true时给formitem赋值
console.log("RealNameCertificationModal"); setVisible = (visible) => {
console.log(this.props.basicInfo); this.refs.modalWrapper.setVisible(visible);
if(this.props.basicInfo){ if(visible && this.props.basicInfo){
this.setValue(this.props.basicInfo); this.setValue(this.props.basicInfo);
this.getSchoolList(this.props.basicInfo); this.getSchoolList(this.props.basicInfo);
} }
} }
setValue=(basicInfo)=>{ setValue=(basicInfo)=>{
// debugger;
if(basicInfo){ if(basicInfo){
this.props.form.setFieldsValue({ this.props.form.setFieldsValue({
nickname:basicInfo.nickname, nickname:basicInfo.nickname,
name:!basicInfo.show_realname ? this.hideRealName(basicInfo.name) : basicInfo.name, name:!basicInfo.show_realname ? this.hideRealName(basicInfo.name) : basicInfo.name,
sex:String(basicInfo.gender),
job:basicInfo.identity, job:basicInfo.identity,
org:basicInfo.school_name, org:basicInfo.school_name
// city:[basicInfo.location,basicInfo.location_city]
}) })
setTimeout(() => { setTimeout(() => {
// 等显示后再set // 等显示后再set
this.props.form.setFieldsValue({ this.props.form.setFieldsValue({
job:basicInfo.identity, job:basicInfo.identity,
sex:String(basicInfo.gender),
student_No:basicInfo.student_id, student_No:basicInfo.student_id,
org2:basicInfo.department_name, org2:basicInfo.department_name,
job1:basicInfo && basicInfo.identity=="teacher" ? basicInfo.technical_title:"教授", job1:basicInfo && basicInfo.identity=="teacher" ? basicInfo.technical_title:"教授",
job2:basicInfo && basicInfo.identity=="professional" ? basicInfo.technical_title:"企业管理者", job2:basicInfo && basicInfo.identity=="professional" ? basicInfo.technical_title:"企业管理者",
}) })
}, 100) }, 100)
//if(basicInfo.nickname){ this.setState({
this.setState({ forDisable: true,
forDisable: true, nameLength:basicInfo.nickname?basicInfo.nickname.length:0,
nameLength:basicInfo.nickname?basicInfo.nickname.length:0, showRealName:basicInfo.show_realname,
showRealName:basicInfo.show_realname, realName: basicInfo.name,
realName: basicInfo.name, identity:basicInfo.identity,
identity:basicInfo.identity, school_id:basicInfo.school_id,
school_id:basicInfo.school_id, department_id:basicInfo.department_id
department_id:basicInfo.department_id })
})
//}
} }
} }
@ -256,10 +254,6 @@ class RealNameCertificationModal extends Component{
// } // }
} }
setVisible = (visible) => {
this.refs.modalWrapper.setVisible(visible)
}
onSendOk = () => { onSendOk = () => {
this.props.form.validateFieldsAndScroll((err, values) => { this.props.form.validateFieldsAndScroll((err, values) => {
console.log(values); console.log(values);
@ -273,7 +267,7 @@ class RealNameCertificationModal extends Component{
// 实名认证 // 实名认证
let url = `/users/accounts/${current_user && current_user.login}/authentication_apply.json` let url = `/users/accounts/${current_user && current_user.login}/authentication_apply.json`
axios.post((url),{ axios.post((url),{
name:values.name, name:values.name || basicInfo.name,
gender:parseInt(values.sex), gender:parseInt(values.sex),
id_number:values.credentials id_number:values.credentials
}).then((result)=>{ }).then((result)=>{
@ -289,8 +283,6 @@ class RealNameCertificationModal extends Component{
} }
this.setVisible(false); this.setVisible(false);
} }
}).catch((error)=>{ }).catch((error)=>{
console.log(error); console.log(error);

Loading…
Cancel
Save