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])
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
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:
user user_url image_url
@ -67,6 +72,8 @@ const _origin = window.location.origin;
onlySuperAdminCouldHide 只有超级管理员才显示隐藏取消隐藏
isChildCommentPagination 是否子回复分页
loadMoreChildComments function 加载所有子回复
usingAntdModal 是否使用antd的弹框
接口
deleteComment 删除

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

@ -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>

@ -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);

Loading…
Cancel
Save