caishi 5 years ago
commit 049daac232

@ -148,16 +148,30 @@
<!-- 在tpi js里加载这3个脚本 --> <!-- 在tpi js里加载这3个脚本 -->
<script> <script>
(function() { // Scoping function to avoid globals (function() { // Scoping function to avoid globals
var href = location.href; var href = location.href;
if (href.indexOf('/tasks/') != -1) { if(window.location.port === "3007"){
document.write('<script type="text/javascript" src="http://47.96.87.25:48080/assets/kindeditor/kindeditor.js"><\/script>'); if (href.indexOf('/tasks/') != -1) {
// build.js中会将这个url附加一个前缀 react/build document.write('<script type="text/javascript" src="https://newweb.educoder.net/assets/kindeditor/kindeditor.js"><\/script>');
document.write('<script type="text/javascript" src="/js/create_kindeditor.js"><\/script>'); // build.js中会将这个url附加一个前缀 react/build
document.write('<script type="text/javascript" src="http://47.96.87.25:48080/javascripts/educoder/edu_application.js"><\/script>'); document.write('<script type="text/javascript" src="/js/create_kindeditor.js"><\/script>');
} else if (href.indexOf('/paths/') != -1) { document.write('<script type="text/javascript" src="https://newweb.educoder.net/javascripts/educoder/edu_application.js"><\/script>');
document.write('<script type="text/javascript" src="http://47.96.87.25:48080/javascripts/educoder/edu_application.js"><\/script>'); } else if (href.indexOf('/paths/') != -1) {
document.write('<script type="text/javascript" src="https://newweb.educoder.net/javascripts/educoder/edu_application.js"><\/script>');
}
}
}else{
if (href.indexOf('/tasks/') != -1) {
document.write('<script type="text/javascript" src="/assets/kindeditor/kindeditor.js"><\/script>');
// build.js中会将这个url附加一个前缀 react/build
document.write('<script type="text/javascript" src="/js/create_kindeditor.js"><\/script>');
document.write('<script type="text/javascript" src="/javascripts/educoder/edu_application.js"><\/script>');
} else if (href.indexOf('/paths/') != -1) {
document.write('<script type="text/javascript" src="/javascripts/educoder/edu_application.js"><\/script>');
}
}
})(); })();
</script> </script>
<!-- <script type="text/javascript" src="https://testeduplus2.educoder.net/assets/kindeditor/kindeditor.js"></script> <!-- <script type="text/javascript" src="https://testeduplus2.educoder.net/assets/kindeditor/kindeditor.js"></script>

@ -2,7 +2,7 @@ import React from "react";
import axios from 'axios'; import axios from 'axios';
import { requestProxy } from "./indexEduplus2RequestProxy"; import { requestProxy } from "./indexEduplus2RequestProxy";
import { broadcastChannelOnmessage } from 'educoder' import { broadcastChannelOnmessage ,SetAppModel} from 'educoder';
import { notification } from 'antd'; import { notification } from 'antd';
import './index.css' import './index.css'
broadcastChannelOnmessage('refreshPage', () => { broadcastChannelOnmessage('refreshPage', () => {
@ -10,11 +10,19 @@ broadcastChannelOnmessage('refreshPage', () => {
}) })
function locationurl(list){ function locationurl(list){
if (window.location.port === "3007") { if (window.location.port === "3007") {
} else { } else {
window.location.replace(list)
} if(list===402){
SetAppModel(402)
}else if(list===407){
}else{
window.location.replace(list)
}
}
} }
// TODO 开发期多个身份切换 // TODO 开发期多个身份切换
@ -149,7 +157,7 @@ export function initAxiosInterceptors(props) {
debugger debugger
console.log(response.data.status); console.log(response.data.status);
console.log(response.data); console.log(response.data);
locationurl(response.data.message); locationurl(402);
} }

@ -1,8 +1,8 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import {getImageUrl} from 'educoder'; import {getImageUrl} from 'public/react/src/common/educoder';
import { Modal} from 'antd'; import { Modal} from 'antd';
import axios from 'axios'; import axios from 'axios';
import './common.css'; import '../../modules/user/common.css';
//完善个人资料 //完善个人资料
class Notcompleted extends Component { class Notcompleted extends Component {
@ -21,7 +21,7 @@ class Notcompleted extends Component {
render() { render() {
console.log(this.props)
return( return(
<Modal <Modal
keyboard={false} keyboard={false}

@ -0,0 +1,33 @@
import React, { Component } from 'react';
import { Modal } from 'antd';
// import Notcompleted from './Notcompleted';
export function SetAppModel(options = {}) {
return function wrap(WrappedComponent) {
return class Wrapper extends Component {
constructor(props) {
super(props);
this.state = {
}
}
componentDidMount(){
console.log(this.props)
}
render() {
const { titlemessage, Modallisttype, Modallist, singleButton } = this.state;
return (
<div>
{/*<Notcompleted*/}
{/*modalsType={this.state.Notcompleteds}*/}
{/*/>*/}
</div>
)
}
}
}
}

@ -30,6 +30,9 @@ export { EDU_ADMIN, EDU_BUSINESS, EDU_SHIXUN_MANAGER, EDU_SHIXUN_MEMBER, EDU_CER
export { themes, ThemeContext } from './context/ThemeContext' export { themes, ThemeContext } from './context/ThemeContext'
export { ModalHOC } from './components/ModalHOC' export { ModalHOC } from './components/ModalHOC'
export { SetAppModel } from './components/SetAppModel'
export { default as Cropper } from './components/Cropper' export { default as Cropper } from './components/Cropper'
export { default as ConditionToolTip } from './components/ConditionToolTip' export { default as ConditionToolTip } from './components/ConditionToolTip'
export { default as DragValidator } from './components/DragValidator' export { default as DragValidator } from './components/DragValidator'

@ -955,7 +955,7 @@ class Fileslists extends Component{
} }
> >
<div className="edu-tab-con-box clearfix edu-txt-center"> <div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src="https://www.educoder.net/images/educoder/nodata.png" /> <img className="edu-nodata-img mb20" src="/images/educoder/nodata.png" />
<p className="edu-nodata-p mb20">暂无数据哦~</p></div> <p className="edu-nodata-p mb20">暂无数据哦~</p></div>
</div> </div>

@ -252,7 +252,7 @@ class UseBank extends Component{
<div style={{"height":"230px"}} className="d_middle edu-txt-center"> <div style={{"height":"230px"}} className="d_middle edu-txt-center">
<div> <div>
<p className="font-16 mb20 color-grey-3">通过职业认证的教师才能访问公共题库</p> <p className="font-16 mb20 color-grey-3">通过职业认证的教师才能访问公共题库</p>
<a className="white-btn edu-orangeback-btn" target="_blank" href="/account/professional_certification">立即认证</a> <a className="white-btn edu-orangeback-btn" target="_blank" href="/account/certification">立即认证</a>
</div> </div>
</div> </div>
: :

@ -40,8 +40,8 @@ class coursesHomeCard extends Component{
className="mt80 mb25"/> className="mt80 mb25"/>
<p className="font-14 color-white">非成员不能访问</p> <p className="font-14 color-white">非成员不能访问</p>
</div> </div>
<a href={item.first_category_url} className="square-img" > {/*<a href={item.first_category_url} className="square-img" >*/}
{/*<a href={`/courses/${item.id}/students`} className="square-img" >*/} <a href={`/courses/${item.id}/students`} className="square-img" >
{/*target="_blank"*/} {/*target="_blank"*/}
{ {
item.is_public===1&&item.id===1309? item.is_public===1&&item.id===1309?

@ -949,6 +949,11 @@ kbd,
samp { samp {
font-family: "Monospaced Number", "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Monospaced Number", "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
} }
/* 表格间距太大 */
.ant-table-tbody>tr>td, .ant-table-thead>tr>th {
padding: 16px 0px;
}
/* FORM START */ /* FORM START */
.ant-form label{ .ant-form label{
/* 为了覆盖antd的样式这里使用了importantTODO */ /* 为了覆盖antd的样式这里使用了importantTODO */

@ -72,7 +72,7 @@ class GraduationTasksappraiseMainEditor extends Component{
} }
clearInputs = () => { clearInputs = () => {
this.setState({ this.setState({
score: 0, score: undefined,
same_score: false, same_score: false,
fileList: [] fileList: []
}) })

@ -772,7 +772,7 @@ class GraduationTasks extends Component{
} }
> >
<div className="edu-tab-con-box clearfix edu-txt-center"> <div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src="https://www.educoder.net/images/educoder/nodata.png" /> <img className="edu-nodata-img mb20" src="/images/educoder/nodata.png" />
<p className="edu-nodata-p mb20">暂无数据哦~</p></div> <p className="edu-nodata-p mb20">暂无数据哦~</p></div>
</div> </div>

@ -351,8 +351,8 @@ class CoursesNew extends Component {
render() { render() {
let {datatime} = this.state; let {datatime} = this.state;
const {getFieldDecorator} = this.props.form; const {getFieldDecorator} = this.props.form;
const options = this.state.searchlist.map(d => <Option key={d.name}>{d.name}</Option>); const options = this.state.searchlist.map(d => <Option key={d.name} value={d.name}>{d.name}</Option>);
const optionschool = this.state.searchlistscholl.map(z => <Option key={z}>{z}</Option>); const optionschool = this.state.searchlistscholl.map(z => <Option key={z} value={z}>{z}</Option>);
// console.log(this.props.current_user.user_school) // console.log(this.props.current_user.user_school)
return ( return (
<React.Fragment> <React.Fragment>

@ -1067,7 +1067,6 @@ class Listofworksstudentone extends Component {
} }
} }
let columns2= arr; let columns2= arr;
var teacherlist = undefined;
var teacherlists = undefined; var teacherlists = undefined;
if (teacherdata !== undefined) { if (teacherdata !== undefined) {
// console.log("seacthdata设置数据") // console.log("seacthdata设置数据")
@ -1075,7 +1074,6 @@ class Listofworksstudentone extends Component {
if (teacherdata.id === undefined) { if (teacherdata.id === undefined) {
this.setState({ this.setState({
data: [], data: [],
teacherlist: undefined,
loadingstate: false, loadingstate: false,
styletable: styletable, styletable: styletable,
}) })
@ -1115,10 +1113,6 @@ class Listofworksstudentone extends Component {
// current: this.state.page, // current: this.state.page,
// } // }
styletable = {"display": "block",} styletable = {"display": "block",}
} else {
// console.log("seacthdata设置数据2")
teacherlist = undefined;
} }
} }
@ -1162,7 +1156,6 @@ class Listofworksstudentone extends Component {
this.setState({ this.setState({
data: datalist, data: datalist,
datas: datalists, datas: datalists,
teacherlist: teacherlist,
teacherlists: teacherlists, teacherlists: teacherlists,
loadingstate: false, loadingstate: false,
styletable: styletable, styletable: styletable,
@ -1488,7 +1481,7 @@ class Listofworksstudentone extends Component {
limit:20, limit:20,
} }
axios.post(urll, data).then((result) => { axios.post(urll, data).then((result) => {
// debugger debugger
if (result !== undefined) { if (result !== undefined) {
// console.log(url) // console.log(url)
// console.log("作品列表6789077") // console.log("作品列表6789077")
@ -1583,7 +1576,7 @@ class Listofworksstudentone extends Component {
// 设置数据 // 设置数据
seacthdatat = (teacherdata,student_works,work_efficiency,course_group_info) => { seacthdatat = (teacherdata,student_works,work_efficiency,course_group_info) => {
// debugger debugger
let {page, limit} = this.state; let {page, limit} = this.state;
let datalist = []; let datalist = [];
let columns = this.state.columns; let columns = this.state.columns;
@ -1707,11 +1700,9 @@ class Listofworksstudentone extends Component {
} }
} else { } else {
var teacherlist = undefined;
} }
this.setState({ this.setState({
data: datalist, data: datalist,
teacherlist: teacherlist,
columns: columns2, columns: columns2,
loadingstate: false, loadingstate: false,
}) })
@ -2197,10 +2188,10 @@ class Listofworksstudentone extends Component {
// console.log(this.state.data); // console.log(this.state.data);
// console.log("841"); // console.log("841");
// console.log(this.state.columns); console.log(this.state.columns);
// console.log(data); console.log(data);
// console.log("2202"); console.log("2202");
// console.log(this.props.isAdmin()); console.log(this.props.isAdmin());
return ( return (
this.props.isAdmin() === true ? this.props.isAdmin() === true ?
@ -2337,7 +2328,7 @@ class Listofworksstudentone extends Component {
(this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTimet}> (this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTimet}>
计算成绩 计算成绩
</div>:""): </div>:""):
teacherdata&&teacherdata.homework_status[0]=== "未发布"? "": teacherdata&&teacherdata.homework_status[0]!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
(this.props.isNotMember()===false?<div className={"computeTimes font-13"}> (this.props.isNotMember()===false?<div className={"computeTimes font-13"}>
计算成绩 计算成绩
</div>:"") </div>:"")
@ -2628,7 +2619,7 @@ class Listofworksstudentone extends Component {
</div> </div>
:"") :"")
: :
(teacherdata&&teacherdata.homework_status[0]=== "未发布"? "": (teacherdata&&teacherdata.homework_status[0]!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
this.props.isNotMember()===false? this.props.isNotMember()===false?
<div className={"computeTimes font-13"}> <div className={"computeTimes font-13"}>
计算成绩 计算成绩
@ -2793,7 +2784,7 @@ class Listofworksstudentone extends Component {
(this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTime}> (this.props.isNotMember()===false?<div className={"computeTime font-13"} onClick={this.setComputeTime}>
计算成绩 计算成绩
</div>:""): </div>:""):
teacherdata&&teacherdata.homework_status[0]=== "未发布"? "": teacherdata&&teacherdata.homework_status[0]!==undefined&&teacherdata.homework_status[0]=== "未发布"? "":
(this.props.isNotMember()===false?<div className={"computeTimes font-13"}> (this.props.isNotMember()===false?<div className={"computeTimes font-13"}>
计算成绩 计算成绩
</div>:"") </div>:"")

@ -229,7 +229,7 @@ class TraineetraininginformationModal extends Component {
<div style={{"clear": "both"}}> <div style={{"clear": "both"}}>
<div className="fl edu-back-white ml10 "> <div className="fl edu-back-white ml10 ">
<img alt="头像" className="radius mt10" height="70" id="nh_user_logo" name="avatar_image" <img alt="头像" className="radius mt10" height="70" id="nh_user_logo" name="avatar_image"
src={this.props.viewtrainingdata === undefined ? "" : "https://www.educoder.net/images/" + `${this.props.viewtrainingdata.image_url}`} src={this.props.viewtrainingdata === undefined ? "" : "/images/" + `${this.props.viewtrainingdata.image_url}`}
width="70"/> width="70"/>
</div> </div>
<div className="fl edu-back-white ml20 mt15"> <div className="fl edu-back-white ml20 mt15">

@ -1202,7 +1202,7 @@ class ShixunHomework extends Component{
} }
> >
<div className="edu-tab-con-box clearfix edu-txt-center"><img className="edu-nodata-img mb20" <div className="edu-tab-con-box clearfix edu-txt-center"><img className="edu-nodata-img mb20"
src="https://www.educoder.net/images/educoder/nodata.png" /> src="/images/educoder/nodata.png" />
<p className="edu-nodata-p mb20">暂无数据哦~</p></div> <p className="edu-nodata-p mb20">暂无数据哦~</p></div>
</div> </div>
</Spin> </Spin>

@ -69,11 +69,8 @@ class EducoderInteresse extends Component {
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
width: "100%", width: "100%",
bottom:"0",
position: "fixed"
}}> }}>
<div className="font-14 color-grey-9 " style={{ bottom:"0",position: "absolute",marginBottom: "20px"}}><span className="font-18">©</span>&nbsp;2019&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div> <div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;2019&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div>
</div> </div>
</div> </div>
</div> </div>

@ -157,8 +157,7 @@ class EducoderLogin extends Component {
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
width: "100%", width: "100%",
height: "550px", marginTop: "25px",
marginTop: "44px",
}}> }}>
<div> <div>
@ -173,8 +172,7 @@ class EducoderLogin extends Component {
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
width: "100%", width: "100%",
height: "550px", marginTop: "25px",
marginTop: "44px",
}}> }}>
<div > <div >
<FindPasswordComponent {...this.props} {...this.state} <FindPasswordComponent {...this.props} {...this.state}
@ -187,11 +185,8 @@ class EducoderLogin extends Component {
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
width: "100%", width: "100%",
bottom:"0",
position: "fixed"
}}> }}>
<div className="font-14 color-grey-9 " style={{ bottom:"0",position: "absolute",marginBottom: "20px"}}><span className="font-18">©</span>&nbsp;2019&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div> <div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;2019&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div>
</div> </div>
</div> </div>
</div> </div>

@ -49,7 +49,7 @@ function get_login_verification_code(btn) {
type = 7; type = 7;
} }
$.get( $.get(
'https://www.educoder.net/account/get_verification_code', '/account/get_verification_code',
{ value: $('#pass_name_input').val().trim(), { value: $('#pass_name_input').val().trim(),
type: type}, type: type},
function (data) { function (data) {
@ -346,10 +346,7 @@ class LoginDialog extends Component {
if(response===undefined){ if(response===undefined){
return return
} }
if(response.data.identity === null || response.data.identity === undefined){
this.props.history.push("/interesse");
return;
}
if(response.status===200){ if(response.status===200){
if (response.data.status === 402) { if (response.data.status === 402) {
window.location.href = response.data.url; window.location.href = response.data.url;
@ -359,6 +356,10 @@ class LoginDialog extends Component {
description:response.data.message, description:response.data.message,
}); });
}else{ }else{
if(response.data.identity === null || response.data.identity === undefined){
this.props.history.push("/interesse");
return;
}
broadcastChannelPostMessage('refreshPage') broadcastChannelPostMessage('refreshPage')
this.setState({ this.setState({
isRender:false isRender:false

@ -38,7 +38,7 @@ class LeftNav extends Component {
<div className="user-info"> <div className="user-info">
<a href="/users/p69243850" alt="用户头像" className="user-info-img"> <a href="/users/p69243850" alt="用户头像" className="user-info-img">
<img alt="0?1442652658" height="50" src="https://www.educoder.net/images/avatars/User/0?1442652658" width="50"/> <img alt="0?1442652658" height="50" src="/images/avatars/User/0?1442652658" width="50"/>
</a> </a>
<a href="/users/p69243850" className="user-info-name">Jimmy</a> <a href="/users/p69243850" className="user-info-name">Jimmy</a>
</div> </div>

@ -82,7 +82,7 @@
margin-left: -154px; margin-left: -154px;
text-align: center; text-align: center;
} }
.inline{ .inlines{
display: inline-block; display: inline-block;
width: auto; width: auto;
line-height: 26px; line-height: 26px;

@ -168,7 +168,7 @@ class TaskResultLayer extends Component {
<i className="far fa-times-circle closeIcon" onClick={closeTaskResultLayer} title="关闭"></i> <i className="far fa-times-circle closeIcon" onClick={closeTaskResultLayer} title="关闭"></i>
<img src={isLastGame? passallImg : passpartImg} width="652px" className="passTaskImg"/> <img src={isLastGame? passallImg : passpartImg} width="652px" className="passTaskImg"/>
<div className="winpPerson expGold"> <div className="winpPerson expGold">
<p className="inline"><span className=" goldring"/> <p className="inline inlines"><span className=" goldring"/>
{currentPassedGameGainGold >= 0 ? `+${currentPassedGameGainGold}` : '+0'} {currentPassedGameGainGold >= 0 ? `+${currentPassedGameGainGold}` : '+0'}
</p> </p>
<p className="inline exp"> <p className="inline exp">

@ -135,7 +135,7 @@ class CodeEvaluateView extends Component {
}) })
} }
goToCertification() { goToCertification() {
window.open('/account/professional_certification', '_blank'); window.open('/account/certification', '_blank');
} }
renderTestSets() { renderTestSets() {
const { output_sets, testSetsExpandedArray, power, allowed_unlock, testSetUnlock, showDialog, challenge, game, user } = this.props; const { output_sets, testSetsExpandedArray, power, allowed_unlock, testSetUnlock, showDialog, challenge, game, user } = this.props;

@ -68,7 +68,7 @@ const styles = MUIDialogStyleUtil.getTwoButtonStyle(
class LeftView extends Component { class LeftView extends Component {
goToCertification() { goToCertification() {
window.open('/account/professional_certification', '_blank'); window.open('/account/certification', '_blank');
} }
// /shixuns/mnf6b7z3/shixun_discuss?challenge_id=88 // /shixuns/mnf6b7z3/shixun_discuss?challenge_id=88
render() { render() {

@ -5,9 +5,10 @@ export function loadSshScript(callback) {
let prefix = 'react/build' let prefix = 'react/build'
if (window.location.port == 3007) { if (window.location.port == 3007) {
prefix = '' prefix = ''
_url_origin = 'https://newweb.educoder.net/';
} else { } else {
// _url_origin = `https://testeduplus2.educoder.net/`; // _url_origin = `https://testeduplus2.educoder.net/`;
_url_origin = 'http://47.96.87.25:48080/'; _url_origin = '/';
} }
const $ = window.$; const $ = window.$;
// 未加载过 // 未加载过

@ -115,7 +115,7 @@ class sendPanel extends Component{
} }
cardsModalsave=()=>{ cardsModalsave=()=>{
let {courseurl}=this.state; let {courseurl}=this.state;
window.location.href = "https://www.educoder.net/"+courseurl; window.location.href =courseurl;
} }
render(){ render(){
let{sentShixunPath,sendToCourseList,openSearch,shixunNum,Modalstype,Modalstopval,Modalsbottomval,cardsModalcancel,cardsModalsave}= this.state; let{sentShixunPath,sendToCourseList,openSearch,shixunNum,Modalstype,Modalstopval,Modalsbottomval,cardsModalcancel,cardsModalsave}= this.state;

@ -317,11 +317,11 @@ class NewHeader extends Component {
}) })
if(submitapplicationssum===0){ if(submitapplicationssum===0){
if(submitapplicationsvaluedata!=undefined){ if(submitapplicationsvaluedata!=undefined){
window.location.href = "https://www.educoder.net/courses/"+submitapplicationsvaluedata; window.location.href = "/courses/"+submitapplicationsvaluedata;
} }
}else if(submitapplicationssum===1){ }else if(submitapplicationssum===1){
if(submitapplicationsvaluedata!=undefined){ if(submitapplicationsvaluedata!=undefined){
window.location.href = "https://www.educoder.net/projects/"+submitapplicationsvaluedata; window.location.href = "/projects/"+submitapplicationsvaluedata;
} }
} }
} }
@ -480,7 +480,7 @@ submittojoinclass=(value)=>{
} }
if(value===0){ if(value===0){
let url="https://www.educoder.net/courses/join_course_multi_role.json" let url="/courses/join_course_multi_role.json"
const form = new FormData(); const form = new FormData();
form.append('invite_code', tojoinclasstitle); form.append('invite_code', tojoinclasstitle);
form.append('role', pamst); form.append('role', pamst);
@ -526,7 +526,7 @@ submittojoinclass=(value)=>{
} }
if(value===1){ if(value===1){
let url="https://www.educoder.net/applied_project/applied_project_info.json" let url="/applied_project/applied_project_info.json"
const form = new FormData(); const form = new FormData();
form.append('invite_code', tojoinclasstitle); form.append('invite_code', tojoinclasstitle);
form.append('member', RadioGroupvalue); form.append('member', RadioGroupvalue);

@ -45,7 +45,7 @@ function _initSider() {
return; return;
} }
var $tool = $(this).attr("tooltips"); var $tool = $(this).attr("tooltips");
$descSide.html($tool+"<div><img src='https://www.educoder.net/images/edu_user/jt.png'></div>"); $descSide.html($tool+"<div><img src='/images/edu_user/jt.png'></div>");
$descSide.data('_dom', this) $descSide.data('_dom', this)
$descSide.show().css({ $descSide.show().css({
left:$(this).offset().left - $descSide.width()-30, left:$(this).offset().left - $descSide.width()-30,

@ -18,7 +18,11 @@ import Trialapplication from "../login/Trialapplication";
const $ = window.$; const $ = window.$;
const versionNum = '0001'; const versionNum = '0001';
// let _url_origin = getUrl() // let _url_origin = getUrl()
let _url_origin=`http://47.96.87.25:48080`; let _url_origin='';
if(window.location.port === "3007"){
_url_origin="https://newweb.educoder.net";
}
// let _url_origin=`https://www.educoder.net`; // let _url_origin=`https://www.educoder.net`;
if (!window['indexHOCLoaded']) { if (!window['indexHOCLoaded']) {

@ -865,7 +865,7 @@ class Newshixuns extends Component {
<div className="mb10 edu-back-white"> <div className="mb10 edu-back-white">
<p className="padding10-20 bor-bottom-greyE color-grey-3 clearfix"> <p className="padding10-20 bor-bottom-greyE color-grey-3 clearfix">
<span className="fl font-18 lineh-35">创建实训</span> <span className="fl font-18 lineh-35">创建实训</span>
<a className="fr font-16 mt3 color-blue" href="https://www.educoder.net/forums/2943" <a className="fr font-16 mt3 color-blue" href="/forums/2943"
target="_blank">实训制作指南</a> target="_blank">实训制作指南</a>
</p> </p>

@ -80,7 +80,7 @@ class Repository extends Component {
<input id="rev" name="rev" size="8" type="hidden" value=""></input> <input id="rev" name="rev" size="8" type="hidden" value=""></input>
</form> */} </form> */}
<a href="https://www.educoder.net/forums/2784" target="_blank" <a href="/forums/2784" target="_blank"
className=" guideBtn" >Git使用指南</a> className=" guideBtn" >Git使用指南</a>
<div className="fr font-12 color-grey-9 pr"> <div className="fr font-12 color-grey-9 pr">

@ -42,11 +42,32 @@ class LoginRegisterComponent extends Component {
dragOk: false, dragOk: false,
Whethertoverify:false, Whethertoverify:false,
modalsType:false, modalsType:false,
pciphone:true,
} }
} }
//判断是否是手机端
IsPC=()=> {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;//这个意思是说自己的是pc 端
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
componentDidMount = () => {
let pcipns=this.IsPC();
this.setState({
pciphone:pcipns,
})
}
openNotification = (messge) => { openNotification = (messge) => {
notification.open({ notification.open({
message: "提示", message: "提示",
@ -170,13 +191,16 @@ class LoginRegisterComponent extends Component {
}) })
return return
} }
if (this.state.dragOk === false) { if(this.state.pciphone===true){
// this.openNotification(`请拖动滑块完成验证`,2); if (this.state.dragOk === false) {
this.setState({ // this.openNotification(`请拖动滑块完成验证`,2);
Phonenumberisnotcosytdhk:"请拖动滑块完成验证", this.setState({
}) Phonenumberisnotcosytdhk:"请拖动滑块完成验证",
return })
return
}
} }
if (this.state.password === undefined || this.state.password.length ===0 || this.state.password === "") { if (this.state.password === undefined || this.state.password.length ===0 || this.state.password === "") {
this.setState({ this.setState({
Phonenumberisnotcosmmm:"密码不能为空", Phonenumberisnotcosmmm:"密码不能为空",
@ -379,9 +403,9 @@ class LoginRegisterComponent extends Component {
return return
} }
} }
//是否验证通过
dragOkCallback = () => { inputOnBlurzhuche = (e)=>{
console.log(this.state.login); if(this.state.pciphone===false) {
if(this.state.login===""||this.state.login.length===0){ if(this.state.login===""||this.state.login.length===0){
this.setState({ this.setState({
Phonenumberisnotco: "账号不能为空", Phonenumberisnotco: "账号不能为空",
@ -394,7 +418,29 @@ class LoginRegisterComponent extends Component {
this.setState({ this.setState({
Phonenumberisnotcosytdhk:undefined, Phonenumberisnotcosytdhk:undefined,
}) })
this.Emailphonenumberverification(this.state.login) this.Emailphonenumberverification(e.target.value)
}
}
//是否验证通过
dragOkCallback = () => {
console.log(this.state.login);
if (this.state.login === "" || this.state.login.length === 0) {
this.setState({
Phonenumberisnotco: "账号不能为空",
Phonenumberisnotcobool: true,
dragOk: false,
Whethertoverify: this.state.Whethertoverify === true ? false : true,
})
return
}
this.setState({
Phonenumberisnotcosytdhk: undefined,
})
this.Emailphonenumberverification(this.state.login)
} }
//邮箱手机号验证 //邮箱手机号验证
@ -454,6 +500,7 @@ class LoginRegisterComponent extends Component {
readonlyInput, readonlyInput,
codes, codes,
Whethertoverify, Whethertoverify,
pciphone,
} = this.state } = this.state
// height: 346px; // height: 346px;
return ( return (
@ -528,6 +575,7 @@ class LoginRegisterComponent extends Component {
<Input style={loginInputsyl} type="text" autoComplete="off" onClick={this.changeTypey} <Input style={loginInputsyl} type="text" autoComplete="off" onClick={this.changeTypey}
className={Phonenumberisnotco && Phonenumberisnotco !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"} className={Phonenumberisnotco && Phonenumberisnotco !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"}
placeholder="输入注册手机号或邮箱" value={this.state.login} placeholder="输入注册手机号或邮箱" value={this.state.login}
onBlur={(e) => this.inputOnBlurzhuche(e)}
onChange={this.loginInputonChange} style={{marginTop: '10px', height: "38px"}}></Input> onChange={this.loginInputonChange} style={{marginTop: '10px', height: "38px"}}></Input>
{ {
Phonenumberisnotco && Phonenumberisnotco !== "" ? Phonenumberisnotco && Phonenumberisnotco !== "" ?
@ -538,7 +586,7 @@ class LoginRegisterComponent extends Component {
} }
{ {
Whethertoverify===false? Whethertoverify===false&&pciphone===true?
<DragValidator <DragValidator
height={38} successGreenColor="#29bd8b" height={38} successGreenColor="#29bd8b"
style={{height: "38px", width: "100%"}} style={{height: "38px", width: "100%"}}
@ -549,7 +597,7 @@ class LoginRegisterComponent extends Component {
} }
{ {
Whethertoverify===true? Whethertoverify===true&&pciphone===true?
<DragValidatortwo <DragValidatortwo
height={38} successGreenColor="#29bd8b" height={38} successGreenColor="#29bd8b"
style={{height: "38px", width: "100%"}} style={{height: "38px", width: "100%"}}
@ -558,13 +606,17 @@ class LoginRegisterComponent extends Component {
: :
"" ""
} }
{ <div>
{pciphone===true?
(
Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk !=="" ? Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk !=="" ?
<p className="color-red mt5 mb5" style={{width: " 100%", height: "20px"}}> <p className="color-red mt5 mb5" style={{width: " 100%", height: "20px"}}>
<span className="fl" style={{textAlign: "left", width: " 100%"}}>{Phonenumberisnotcosytdhk}</span> <span className="fl" style={{textAlign: "left", width: " 100%"}}>{Phonenumberisnotcosytdhk}</span>
</p> </p>
: <div style={{height: "25px"}}></div> : <div style={{height: "25px"}}></div>
} )
:""}
</div>
<Input type={classpass} <Input type={classpass}
className={Phonenumberisnotcosmmm && Phonenumberisnotcosmmm !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"} className={Phonenumberisnotcosmmm && Phonenumberisnotcosmmm !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"}
onClick={this.changeType} autoComplete="new-password" onChange={this.loginInputonChanges} onClick={this.changeType} autoComplete="new-password" onChange={this.loginInputonChanges}

@ -2,7 +2,7 @@ import React, {Component} from 'react';
import {Button,notification} from 'antd'; import {Button,notification} from 'antd';
import {broadcastChannelPostMessage} from 'educoder'; import {broadcastChannelPostMessage} from 'educoder';
import MyEduCoderModal from './MyEduCoderModal'; import MyEduCoderModal from './MyEduCoderModal';
import Notcompleted from './Notcompleted'; // import Notcompleted from '../../common/Notcompleted';
import axios from 'axios'; import axios from 'axios';
import './common.css'; import './common.css';
import mytc from './img/mytc.png'; import mytc from './img/mytc.png';
@ -31,7 +31,7 @@ class InterestpageComponent extends Component {
passmm:this.props.passmm, passmm:this.props.passmm,
homedatalist:undefined, homedatalist:undefined,
hometypepvisible: undefined, hometypepvisible: undefined,
MyEduCoderModals:false
} }
} }
openNotification = (messge) => { openNotification = (messge) => {
@ -242,16 +242,13 @@ class InterestpageComponent extends Component {
// height: 346px; // height: 346px;
return ( return (
<div className="ysllogin_register_contents" style={{width:"800px",height: "600px"}}> <div className="ysllogin_register_contents" style={{width:"800px",height: "550px"}}>
<MyEduCoderModal <MyEduCoderModal
modalsType={this.state.MyEduCoderModals} modalsType={this.state.MyEduCoderModals}
setNotcompleteds={()=>{this.setNotcompleteds()}} setNotcompleteds={()=>{this.setNotcompleteds()}}
/> />
<Notcompleted
modalsType={this.state.Notcompleteds}
/>
<div className="ysllogin_section"> <div className="ysllogin_section">
<div className="mt15"><span className="yslspans1">请选择你的职业</span></div> <div className="mt15"><span className="yslspans1">请选择你的职业</span></div>
<div className="ysldivhome1" > <div className="ysldivhome1" >
@ -283,7 +280,7 @@ class InterestpageComponent extends Component {
) )
})} })}
</div> </div>
<Button className="yslbutton" size={"large"} type="primary"onClick={()=>this.Interestcompletionpage()} style={{width:"255px",height: "36px",background: "#4CACFF",marginTop: "30px"} }>完成</Button> <Button className="yslbutton" size={"large"} type="primary"onClick={()=>this.Interestcompletionpage()} style={{width:"255px",height: "35px",background: "#4CACFF",marginTop: "17px"} }>完成</Button>
</div> </div>
</div> </div>

@ -60,6 +60,7 @@ class LoginRegisterComponent extends Component {
Phonenumberisnotcodmm:undefined, Phonenumberisnotcodmm:undefined,
Phonenumberisnotcobool: false, Phonenumberisnotcobool: false,
Whethertoverify:false, Whethertoverify:false,
pciphone:true,
} }
} }
@ -94,11 +95,27 @@ class LoginRegisterComponent extends Component {
Phonenumberisnotcobool: false, Phonenumberisnotcobool: false,
Phonenumberisnotcodmm:undefined, Phonenumberisnotcodmm:undefined,
Whethertoverify:false, Whethertoverify:false,
pciphone:true,
} }
} }
} }
//判断是否是手机端
IsPC=()=> {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;//这个意思是说自己的是pc 端
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
// 点击表单后改变type // 点击表单后改变type
changeType = () => { changeType = () => {
this.setState({classpass: 'password'}); this.setState({classpass: 'password'});
@ -106,17 +123,21 @@ class LoginRegisterComponent extends Component {
componentDidMount = () => { componentDidMount = () => {
// console.log("componentDidUpdate"); // console.log("componentDidUpdate");
// console.log(this.props); // console.log(this.props);
let pcipns=this.IsPC();
if (this.props.match.url === "/login") { if (this.props.match.url === "/login") {
console.log("11111111111111111111111111"); console.log("11111111111111111111111111");
this.state = { this.state = {
tab:["0"], tab:["0"],
pciphone:pcipns,
} }
} else if (this.props.match.url === "/register") { } else if (this.props.match.url === "/register") {
this.state = { this.state = {
tab:["1"], tab:["1"],
pciphone:pcipns,
} }
} }
} }
openNotification = (messge,type) => { openNotification = (messge,type) => {
// type 1 成功提示绿色 2提醒颜色黄色 3错误提示红色 // type 1 成功提示绿色 2提醒颜色黄色 3错误提示红色
@ -214,10 +235,7 @@ class LoginRegisterComponent extends Component {
if (response === undefined) { if (response === undefined) {
return return
} }
if(response.data.identity === null || response.data.identity === undefined){
this.props.history.push("/interesse");
return;
}
if(response.data.status === -2){ if(response.data.status === -2){
if("该手机号尚未注册" || "该邮箱尚未注册"){ if("该手机号尚未注册" || "该邮箱尚未注册"){
this.setState({ this.setState({
@ -246,6 +264,11 @@ class LoginRegisterComponent extends Component {
} }
if(response.data.identity === null || response.data.identity === undefined){
this.props.history.push("/interesse");
return;
}
if (response.status === 200) { if (response.status === 200) {
if (response.data.status === 402) { if (response.data.status === 402) {
window.location.href = response.data.url; window.location.href = response.data.url;
@ -284,17 +307,20 @@ class LoginRegisterComponent extends Component {
// this.openNotification(`请同意服务协议条款`,2); // this.openNotification(`请同意服务协议条款`,2);
// return; // return;
// } // }
if(this.state.pciphone===true){
if (this.state.dragOk === false) {
// this.openNotification(`请拖动滑块完成验证`,2);
this.setState({
Phonenumberisnotcosytdhk:"请拖动滑块完成验证",
})
return
}
}
if (this.state.logins === undefined || this.state.logins === ""||this.state.logins.length===0) { if (this.state.logins === undefined || this.state.logins === ""||this.state.logins.length===0) {
this.setState({ this.setState({
Phonenumberisnotcos:"账号不能为空", Phonenumberisnotcos:"账号不能为空",
}) })
return return
} else if (this.state.dragOk === false) {
// this.openNotification(`请拖动滑块完成验证`,2);
this.setState({
Phonenumberisnotcosytdhk:"请拖动滑块完成验证",
})
return
} else if (this.state.codes === undefined || this.state.codes == ""||this.state.codes.length===0) { } else if (this.state.codes === undefined || this.state.codes == ""||this.state.codes.length===0) {
// this.openNotification(`请输入验证码`,2); // this.openNotification(`请输入验证码`,2);
this.setState({ this.setState({
@ -555,6 +581,11 @@ class LoginRegisterComponent extends Component {
this.isCorrectname(e.target.value, id); this.isCorrectname(e.target.value, id);
// this.Emailphonenumberverification(e.target.value, id); // this.Emailphonenumberverification(e.target.value, id);
} }
inputOnBlurzhuche = (e, id) => {
if(this.state.pciphone===false) {
this.Emailphonenumberverification(e.target.value, id);
}
}
//获取登入密码 //获取登入密码
passwordonChange = (e) => { passwordonChange = (e) => {
// console.log(e.target.value); // console.log(e.target.value);
@ -671,6 +702,7 @@ class LoginRegisterComponent extends Component {
Phonenumberisnotcodmm, Phonenumberisnotcodmm,
// 注册 // 注册
readAgreement, readAgreement,
pciphone,
} = this.state } = this.state
// height: 346px; // height: 346px;
if (this.state.seconds === 0) { if (this.state.seconds === 0) {
@ -778,6 +810,7 @@ class LoginRegisterComponent extends Component {
value={this.state.logins} value={this.state.logins}
type="text" autoComplete="off" type="text" autoComplete="off"
onChange={this.loginInputonChanges} onChange={this.loginInputonChanges}
onBlur={(e) => this.inputOnBlurzhuche(e, 2)}
style={{marginTop: '30px' , height: '38px',color:'#999999',fontSize:"14px"}}></Input> style={{marginTop: '30px' , height: '38px',color:'#999999',fontSize:"14px"}}></Input>
{ {
Phonenumberisnotcos && Phonenumberisnotcos !== "" ? Phonenumberisnotcos && Phonenumberisnotcos !== "" ?
@ -788,7 +821,7 @@ class LoginRegisterComponent extends Component {
} }
{ {
Whethertoverify===false? Whethertoverify===false&&pciphone===true?
<DragValidator <DragValidator
height={38} successGreenColor="#29bd8b" height={38} successGreenColor="#29bd8b"
style={{ height: '38px'}} style={{ height: '38px'}}
@ -799,7 +832,7 @@ class LoginRegisterComponent extends Component {
} }
{ {
Whethertoverify===true? Whethertoverify===true&&pciphone===true?
<DragValidatortwo <DragValidatortwo
height={38} successGreenColor="#29bd8b" height={38} successGreenColor="#29bd8b"
style={{ height: '38px'}} style={{ height: '38px'}}
@ -808,14 +841,21 @@ class LoginRegisterComponent extends Component {
: :
"" ""
} }
{ <div>
Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk !== "" ? {
<p className="color-red mt5 mb5 " style={{width: " 100%", height: "20px"}}> pciphone===true?
<span className="fl" style={{textAlign:"left",width: " 100%"}}>{Phonenumberisnotcosytdhk}</span> (
</p> Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk !== "" ?
: <div style={{height:"25px"}}></div> <p className="color-red mt5 mb5 " style={{width: " 100%", height: "20px"}}>
<span className="fl" style={{textAlign:"left",width: " 100%"}}>{Phonenumberisnotcosytdhk}</span>
</p>
: <div style={{height:"25px"}}></div>
)
:""
}
</div>
}
<div className="yslbutondls"> <div className="yslbutondls">

@ -40,8 +40,9 @@ class MyEduCoderModal extends Component {
<div className={"tabeltext-alignleft mt10"}><p>欢迎使用EduCoder您可以试用1天</p></div> <div className={"tabeltext-alignleft mt10"}><p>欢迎使用EduCoder您可以试用1天</p></div>
<div className={"tabeltext-alignleft mt10"}><p>超过期限需要经过管理员的授权审核</p></div> <div className={"tabeltext-alignleft mt10"}><p>超过期限需要经过管理员的授权审核</p></div>
<div className="clearfix mt30 edu-txt-center"> <div className="clearfix mt30 edu-txt-center">
<a className="task-btn mr30" onClick={()=>this.modalCancel()}>先试试看</a> {/*<a className="task-btn mr30" onClick={()=>this.modalCancel()}>先试试看</a>*/}
<a className="task-btn task-btn-orange" onClick={()=>this.setDownload()}>立即申请授权</a> {/*<a className="task-btn task-btn-orange" onClick={()=>this.setDownload()}>立即申请授权</a>*/}
<a className="task-btn task-btn-orange bth100" onClick={()=>this.modalCancel()}>知道啦</a>
</div> </div>
</div> </div>
</Modal> </Modal>

@ -424,8 +424,8 @@ class AccountBasic extends Component {
}], }],
})( })(
<RadioGroup> <RadioGroup>
<Radio value="0"></Radio> <Radio value="0" disabled={basicInfo.authentication != 'uncertified'}></Radio>
<Radio value="1"></Radio> <Radio value="1" disabled={basicInfo.authentication != 'uncertified'}></Radio>
</RadioGroup> </RadioGroup>
)} )}
</Form.Item> </Form.Item>

@ -71,7 +71,7 @@
} }
.ysldivhomediv{ .ysldivhomediv{
width: 101px; width: 101px;
height: 147px; height: 130px;
} }
.ysldivhomediv1{ .ysldivhomediv1{
@ -83,7 +83,7 @@
display: flex; display: flex;
flex-direction:column; flex-direction:column;
margin-left: 73px; margin-left: 73px;
margin-top: 8px; margin-top: 5px;
} }
.ysldivhomediv2{ .ysldivhomediv2{
width: 110px; width: 110px;
@ -94,7 +94,7 @@
display: flex; display: flex;
flex-direction:column; flex-direction:column;
margin-left: 73px; margin-left: 73px;
margin-top: 20px; margin-top: 15px;
} }
.ysldivhomedivtxt{ .ysldivhomedivtxt{
width:101px; width:101px;
@ -159,7 +159,7 @@
display: flex; display: flex;
justify-content:center; justify-content:center;
width: 60px; width: 60px;
margin-left: 27px; margin-left: 21px;
} }
.yslgouxuanimg{ .yslgouxuanimg{

@ -63,6 +63,10 @@ class Infos extends Component{
login:this.props.current_user.login login:this.props.current_user.login
}) })
} }
} else {
if (prevProps.match.params.username != this.props.match.params.username) {
this.getInfo(this.props.match.params.username);
}
} }
} }
@ -338,7 +342,7 @@ class Infos extends Component{
to={`/users/${username}/projects`}>项目</Link> to={`/users/${username}/projects`}>项目</Link>
</li> </li>
{ data && data.identity!="学生" && <li> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}?type=m_bank`}>题库</a></li>} {/*{ data && data.identity!="学生" && <li> <a href={`${this.props.Headertop && this.props.Headertop.old_url}/users/${username}?type=m_bank`}>题库</a></li>}*/}
</div> </div>
</div> </div>

@ -45,7 +45,8 @@ class SearchPage extends Component{
} }
this.setState({ this.setState({
tab:e.key, tab:e.key,
type:types type:types,
page:1,
}) })
this.getdata(1,types,this.state.keywords); this.getdata(1,types,this.state.keywords);
} }
@ -228,7 +229,7 @@ class SearchPage extends Component{
<div className="mt20"> <div className="mt20">
<span className="ziticor"><i className="fa fa-user ziticor"></i><span>{item.author_name}</span></span><span className="ml10 ziticor "><span>{item.author_school_name}</span></span> <span className="ml20 ziticor"><i className="iconfont icon-shixunguanqia ziticor"></i><span>:<span className="ml10 ziticor">{item.challenges_count===undefined?0:item.challenges_count}</span></span></span> <span className="ml20 ziticor"><i className="iconfont icon-chengyuan ziticor"></i><span>:<span className="ml10 ziticor">{item.study_count===undefined?0:item.study_count}</span></span></span> <span className="ziticor"><i className="fa fa-user ziticor"></i><span className="ml10">{item.author_name}</span></span><span className="ml10 ziticor "><span>{item.author_school_name}</span></span> <span className="ml20 ziticor"><i className="iconfont icon-shixunguanqia ziticor"></i><span>:<span className="ml10 ziticor">{item.challenges_count===undefined?0:item.challenges_count}</span></span></span> <span className="ml20 ziticor"><i className="iconfont icon-chengyuan ziticor"></i><span>:<span className="ml10 ziticor">{item.study_count===undefined?0:item.study_count}</span></span></span>
</div> </div>
</div> </div>

@ -125,4 +125,5 @@
} }
.ziticor{ .ziticor{
color: #777777; color: #777777;
font-size: 13px;
} }
Loading…
Cancel
Save