Merge branches 'dev_aliyun' and 'develop' of https://bdgit.educoder.net/Hjqreturn/educoder into develop

dev_hs
杨树明 5 years ago
commit 8f94a169a7

@ -60,13 +60,15 @@ class Bullsubdirectory extends Component{
}; };
changeTopicName = (e) => { changeTopicName = (e) => {
console.log("调用了changeTopicName"); console.log("调用了changeTopicName");
let num = parseInt(e.target.value.length); let num = e.target.value.length;
if(num>60){ if(num>60){
return; return;
} }
this.setState({ this.setState({
addonAfter: num < 0 ? 0 : num addonAfter: num < 0 ? 0 : num
}); });
if(num<=60){
this.setState({ this.setState({
eduintits: e.target.value eduintits: e.target.value
}) })
@ -75,6 +77,9 @@ class Bullsubdirectory extends Component{
eduintits: e.target.value, eduintits: e.target.value,
}); });
} }
}
handleSubmit=(e) => { handleSubmit=(e) => {
e.preventDefault(); e.preventDefault();
this.props.form.validateFields((err, values) => { this.props.form.validateFields((err, values) => {
@ -91,11 +96,25 @@ class Bullsubdirectory extends Component{
} }
var id=this.props.match.params.coursesId var id=this.props.match.params.coursesId
var titname="";
try {
if(values.eduintits.length>0){
if( values.eduintits.length>60){
var str=values.eduintits;
titname=str.substring(0,60);
}else {
titname=values.eduintits;
}
}else {
titname=values.eduintits;
}
}catch (e) {
titname=values.eduintits;
}
var url = `/courses/${id}/update_informs.json`; var url = `/courses/${id}/update_informs.json`;
axios.post(url,{ axios.post(url,{
inform_id:this.state.id, inform_id:this.state.id,
name:values.eduintits, name:titname,
description:values.description, description:values.description,
}).then((result) => { }).then((result) => {
if(result){ if(result){
@ -103,13 +122,13 @@ class Bullsubdirectory extends Component{
if(result.data.status === 0){ if(result.data.status === 0){
this.props.form.setFieldsValue({ this.props.form.setFieldsValue({
id:this.state.id, id:this.state.id,
eduintits:values.eduintits, eduintits:titname,
description:values.description, description:values.description,
}); });
this.setState({ this.setState({
whethertoeditysl:false, whethertoeditysl:false,
id:this.state.id, id:this.state.id,
eduintits:values.eduintits, eduintits:titname,
description:values.description, description:values.description,
}); });
this.props.getinputdata(); this.props.getinputdata();
@ -192,8 +211,6 @@ class Bullsubdirectory extends Component{
{getFieldDecorator('eduintits',{ initialValue: this.state.eduintits }, { {getFieldDecorator('eduintits',{ initialValue: this.state.eduintits }, {
rules: [{ rules: [{
required: true, message: '请在此输入标题,最多60个字符', required: true, message: '请在此输入标题,最多60个字符',
}, {
max: 60, message: '最大限制为60个字符',
}], }],
})( })(
<div className="ysleduinwh"> <div className="ysleduinwh">
@ -275,7 +292,7 @@ class Bullsubdirectory extends Component{
rules: [{ rules: [{
required: true, message: '请在此输入内容,最多5000个字符', required: true, message: '请在此输入内容,最多5000个字符',
}, { }, {
max: 5000, message: '最大限制为5000个字符', len: 5000, message: '最大限制为5000个字符',
}], }],
})( })(
<TPMMDEditor ref={this.messageRef} <TPMMDEditor ref={this.messageRef}

@ -8,6 +8,8 @@ import Bullsubdirectory from "./Bullsubdirectory";
import moment from "../new/CoursesNew"; import moment from "../new/CoursesNew";
import Fileslistitem from "../Resource/Fileslistitem"; import Fileslistitem from "../Resource/Fileslistitem";
// 公告栏 // 公告栏
// var isOnComposition = false;
// const isChrome = !!window.chrome && !!window.chrome.webstore
class Eduinforms extends Component{ class Eduinforms extends Component{
constructor(props){ constructor(props){
super(props); super(props);
@ -18,7 +20,7 @@ class Eduinforms extends Component{
isSpin:true, isSpin:true,
whethertoedit:false, whethertoedit:false,
addonAfter:0, addonAfter:0,
eduintit:"", eduintits:"",
informs:[], informs:[],
yslbool:false, yslbool:false,
} }
@ -90,7 +92,7 @@ class Eduinforms extends Component{
this.setState({ this.setState({
whethertoedit:bians, whethertoedit:bians,
description:"", description:"",
eduintit:"", eduintits:"",
addonAfter:0, addonAfter:0,
}); });
this.props.form.setFieldsValue({ this.props.form.setFieldsValue({
@ -106,21 +108,51 @@ class Eduinforms extends Component{
}; };
changeTopicName = (e) => { changeTopicName = (e) => {
console.log("调用了changeTopicName"); console.log("调用了changeTopicName");
let num = parseInt(e.target.value.length); let num = e.target.value.length;
if(num>60){ if(num>60){
return; return;
} }
this.setState({ this.setState({
addonAfter: num < 0 ? 0 : num addonAfter: num < 0 ? 0 : num
}); });
if(num<=60){
this.setState({ this.setState({
eduintit: e.target.value eduintits: e.target.value
}) })
this.props.form.setFieldsValue({ this.props.form.setFieldsValue({
eduintits: e.target.value, eduintits: e.target.value,
}); });
} }
};
// handleComposition=(e)=>{
// if (e.type === 'compositionend') {
// // composition is end
// isOnComposition = false
//
// if (!isOnComposition && isChrome) {
// // fire onChange
// console.log(!isOnComposition);
// this.changeTopicName(e);
// }
// } else {
// // in composition
// isOnComposition = true
// }
// };
// handleComposition = (e) => {
// console.log(e.type + ": " + e.target.value);
// if (e.type === 'compositionend') {
// // composition is end
// const value = e.target.value;
// this.setState({ isOnComposition: false },()=>{
// // this.handleFixedChange(value);
// });
// } else {
// // in composition
// this.setState({ isOnComposition: true });
// }
// }
handleSubmit=(e) => { handleSubmit=(e) => {
e.preventDefault(); e.preventDefault();
this.props.form.validateFields((err, values) => { this.props.form.validateFields((err, values) => {
@ -137,10 +169,24 @@ class Eduinforms extends Component{
} }
var id=this.props.match.params.coursesId var id=this.props.match.params.coursesId
var titname="";
try {
if(values.eduintits.length>0){
if( values.eduintits.length>60){
var str=values.eduintits;
titname=str.substring(0,60);
}else {
titname=values.eduintits;
}
}else {
titname=values.eduintits;
}
}catch (e) {
titname=values.eduintits;
}
var url = `/courses/${id}/new_informs.json`; var url = `/courses/${id}/new_informs.json`;
axios.post(url,{ axios.post(url,{
name:values.eduintits, name:titname,
description:values.description, description:values.description,
}).then((result) => { }).then((result) => {
if(result){ if(result){
@ -172,7 +218,7 @@ class Eduinforms extends Component{
render(){ render(){
let{description,whethertoedit,addonAfter,eduintit,informs,yslbool} =this.state; let{description,whethertoedit,addonAfter,eduintits,informs,yslbool} =this.state;
const {getFieldDecorator} = this.props.form; const {getFieldDecorator} = this.props.form;
return( return(
@ -234,8 +280,6 @@ class Eduinforms extends Component{
{getFieldDecorator('eduintits', { {getFieldDecorator('eduintits', {
rules: [{ rules: [{
required: true, message: '请在此输入标题,最多60个字符', required: true, message: '请在此输入标题,最多60个字符',
}, {
max: 60, message: '最大限制为60个字符',
}], }],
})( })(
<div className="ysleduinwh"> <div className="ysleduinwh">
@ -243,12 +287,12 @@ class Eduinforms extends Component{
<span className="yslduincolorred">*</span> <span className="yslduincolorred">*</span>
</div> </div>
<div className="yslduinleft"> <div className="yslduinleft">
<Input placeholder="请在此输入标题最多60个字符" maxLength="60" <Input placeholder="请在此输入标题最多60个字符" maxLength={60}
style={{ textAlign: "left",width:"100%",}} style={{ textAlign: "left",width:"100%",}}
onInput={this.changeTopicName} onInput={this.changeTopicName}
autoComplete="off" autoComplete="off"
suffix={String(addonAfter)+"/60"} suffix={String(addonAfter)+"/60"}
value={eduintit} value={eduintits}
className="searchViewAfter"></Input> className="searchViewAfter"></Input>
</div> </div>

@ -294,7 +294,7 @@ class ShixunsHome extends Component {
{/*精选实训 改为 开发社区*/} {/*精选实训 改为 开发社区*/}
<div className="clearfix pt20 educontent pr pb20"> <div className="clearfix pt20 educontent pr pb20">
<div className="edu-txt-center"> <div className="edu-txt-center">
<p className="color-dark edu-txt-center font-24" style={{lineHeight: '30px'}}>开发社区</p> <p className="color-dark edu-txt-center font-24" style={{lineHeight: '30px'}}>实训项目</p>
<p className="color-grey-cd font-12">DEVELOPMENT COMMUNITY</p> <p className="color-grey-cd font-12">DEVELOPMENT COMMUNITY</p>
</div> </div>
<Link to={"/shixuns"} className="moreitem">更多<i className="fa fa-angle-right ml5"></i></Link> <Link to={"/shixuns"} className="moreitem">更多<i className="fa fa-angle-right ml5"></i></Link>

@ -734,7 +734,7 @@ submittojoinclass=(value)=>{
</li> </li>
<li className={`${activeShixuns === true ? 'pr active' : 'pr'}`}> <li className={`${activeShixuns === true ? 'pr active' : 'pr'}`}>
<Link to="/shixuns">开发社区</Link> <Link to="/shixuns">实训项目</Link>
<img src={getImageUrl("images/educoder/hot-h.png")} className="nav-img"> <img src={getImageUrl("images/educoder/hot-h.png")} className="nav-img">
</img> </img>
</li> </li>
@ -814,7 +814,7 @@ submittojoinclass=(value)=>{
onBlur={(e)=>this.hideshowSearchOpen(e)} onMouseLeave={()=>this.setevaluatinghides()}> onBlur={(e)=>this.hideshowSearchOpen(e)} onMouseLeave={()=>this.setevaluatinghides()}>
<Search <Search
id={"HeaderSearchs"} id={"HeaderSearchs"}
placeholder="实践课程/翻转课堂/开发社区/交流问答" placeholder="实践课程/翻转课堂/实训项目/交流问答"
onInput={()=>this.onKeywordSearchKeyDowns()} onInput={()=>this.onKeywordSearchKeyDowns()}
onSearch={(value) => this.onKeywordSearchKeyDown(value)} onSearch={(value) => this.onKeywordSearchKeyDown(value)}
// onPressEnter={this.onKeywordSearchKeyDown} // onPressEnter={this.onKeywordSearchKeyDown}
@ -862,13 +862,13 @@ submittojoinclass=(value)=>{
<span className="bor-bottom-greyE currentName task-hide">{user.username}</span> <span className="bor-bottom-greyE currentName task-hide">{user.username}</span>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>我的课堂</Link></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>我的课堂</Link></li>
{/* p 老师 l 学生 */} {/* p 老师 l 学生 */}
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训</Link></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训项目</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实践课程</Link></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实践课程</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/projects`}>我的开发项目</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/package`}>我的众包</Link></li>
<li style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.customer_management_url===null || this.props.Headertop.customer_management_url===""? 'none' : 'block'}}> <li style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.customer_management_url===null || this.props.Headertop.customer_management_url===""? 'none' : 'block'}}>
<a href={this.props.Headertop === undefined ? '' : this.props.Headertop.customer_management_url}>客户管理</a> <a href={this.props.Headertop === undefined ? '' : this.props.Headertop.customer_management_url}>客户管理</a>
</li> </li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/projects`}>我的项目</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/package`}>我的众包</Link></li>
<li><a href={`/account/profile`}>账号管理</a></li> <li><a href={`/account/profile`}>账号管理</a></li>
{/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/} {/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/}
{/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/} {/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/}
@ -903,11 +903,11 @@ submittojoinclass=(value)=>{
<div className="overPart"></div> <div className="overPart"></div>
<ul className="fl with50 edu-txt-center pr ul-leftline"> <ul className="fl with50 edu-txt-center pr ul-leftline">
{this.props.current_user&&this.props.current_user.user_identity==="学生"?"":<li><a onClick={(url)=>this.getUser("/courses/new")}>新建课堂</a></li>} {this.props.current_user&&this.props.current_user.user_identity==="学生"?"":<li><a onClick={(url)=>this.getUser("/courses/new")}>新建课堂</a></li>}
<li><a onClick={(url)=>this.getUser("/shixuns/new")}>新建实训</a></li> <li><a onClick={(url)=>this.getUser("/shixuns/new")}>新建实训项目</a></li>
{this.props.Headertop===undefined?"": {this.props.Headertop===undefined?"":
<li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li> <li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li>
} }
<li><a onClick={(url)=>this.getUser("/projects/new")} target="_blank">新建项目</a></li> <li><a onClick={(url)=>this.getUser("/projects/new")} target="_blank">新建开发项目</a></li>
</ul> </ul>
<ul className="fl with50 edu-txt-center"> <ul className="fl with50 edu-txt-center">
@ -925,7 +925,7 @@ submittojoinclass=(value)=>{
{/* /courses/join_course_multi_role */} {/* /courses/join_course_multi_role */}
<li> <li>
<a onClick={this.tojoinitem}>加入项目</a> <a onClick={this.tojoinitem}>加入开发项目</a>
</li> </li>
{tojoinitemtype===true?<Modal {tojoinitemtype===true?<Modal
keyboard={false} keyboard={false}
@ -941,7 +941,7 @@ submittojoinclass=(value)=>{
<label className="panel-form-label fl">项目邀请码</label> <label className="panel-form-label fl">项目邀请码</label>
<Input type="text" className="input-60-40 fl mt5" name="invite_code" <Input type="text" className="input-60-40 fl mt5" name="invite_code"
style={{width: '275px'}} style={{width: '275px'}}
placeholder="请输入6位项目邀请码" value={tojoinclasstitle} onInput={this.inputjoinclassvalue}/> placeholder="请输入6位开发项目邀请码" value={tojoinclasstitle} onInput={this.inputjoinclassvalue}/>
</li> </li>
<p id="none_invite_code_notice" <p id="none_invite_code_notice"

@ -141,7 +141,7 @@ export function TPMIndexHOC(WrappedComponent) {
}else if(this.props.match.path==="/nopage"){ }else if(this.props.match.path==="/nopage"){
document.title="没有找到该页面"; document.title="没有找到该页面";
}else if(this.props.match.path==="/shixuns"){ }else if(this.props.match.path==="/shixuns"){
document.title="开发社区"; document.title="实训项目";
}else if(this.props.match.path==="/paths"){ }else if(this.props.match.path==="/paths"){
document.title="实践课程"; document.title="实践课程";
}else if(this.props.match.path==="/courses"){ }else if(this.props.match.path==="/courses"){

@ -83,7 +83,7 @@ class InfosBanner extends Component{
<li className={`${moduleName == 'shixuns' ? 'active' : '' }`}> <li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'shixuns'})} onClick={() => this.setState({moduleName: 'shixuns'})}
to={`/users/${username}/shixuns`}>开发社区</Link> to={`/users/${username}/shixuns`}>实训项目</Link>
</li> </li>
<li className={`${moduleName == 'paths' ? 'active' : '' }`}> <li className={`${moduleName == 'paths' ? 'active' : '' }`}>
<Link <Link
@ -93,7 +93,7 @@ class InfosBanner extends Component{
<li className={`${moduleName == 'projects' ? 'active' : '' }`}> <li className={`${moduleName == 'projects' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'projects'})} onClick={() => this.setState({moduleName: 'projects'})}
to={`/users/${username}/projects`}>项目</Link> to={`/users/${username}/projects`}>开发项目</Link>
</li> </li>
<li className={`${moduleName == 'package' ? 'active' : '' }`}> <li className={`${moduleName == 'package' ? 'active' : '' }`}>
<Link <Link

@ -122,7 +122,7 @@ class InfosProject extends Component{
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {
page == 1 && is_current && this.props.current_user && !category && this.props.current_user.user_identity != "学生" ? page == 1 && is_current && this.props.current_user && !category && this.props.current_user.user_identity != "学生" ?
<Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建项目"} index="4"></Create>:"" <Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建开发项目"} index="4"></Create>:""
} }
{ {
(!data || data.projects.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && <NoneData></NoneData> (!data || data.projects.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && <NoneData></NoneData>

@ -168,7 +168,7 @@ class banner_out extends Component{
<li className={`${moduleName == 'projects' ? 'active' : '' }`}> <li className={`${moduleName == 'projects' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'projects'})} onClick={() => this.setState({moduleName: 'projects'})}
to={`/users/${username}/projects`}>项目</Link> to={`/users/${username}/projects`}>开发项目</Link>
</li> </li>
<li className={`${moduleName == 'package' ? 'active' : '' }`}> <li className={`${moduleName == 'package' ? 'active' : '' }`}>

@ -412,7 +412,7 @@ function VideoUploadList (props) {
<div className={`description ${noUploads ? 'noUploads' : ''}`}> <div className={`description ${noUploads ? 'noUploads' : ''}`}>
<div className="">视频大小不支持断点续传单个视频文件最大200M单次最多支持3个视频文件上传 </div> <div className="">视频大小不支持断点续传单个视频文件最大200M单次最多支持3个视频文件上传 </div>
<div className="">视频规格aviflvf4vm4vmovmp4rmvbswfwebm </div> <div className="">视频规格aviflvf4vm4vmovmp4rmvbswfwebm </div>
<div className="">温馨提示请勿上传违法视频平台将为每一个视频分配一个地址您可以通过引用该地址将视频使用在开发社区等模块</div> <div className="">温馨提示请勿上传违法视频平台将为每一个视频分配一个地址您可以通过引用该地址将视频使用在实训项目等模块</div>
</div> </div>
{!noUploads && <React.Fragment> {!noUploads && <React.Fragment>

@ -152,7 +152,7 @@ class SearchPage extends Component{
<Menu mode="horizontal" className="tabtitless" selectedKeys={tab} onClick={this.changeTab}> <Menu mode="horizontal" className="tabtitless" selectedKeys={tab} onClick={this.changeTab}>
<Menu.Item className={"tabtitle1"} key="1">实践课程</Menu.Item> <Menu.Item className={"tabtitle1"} key="1">实践课程</Menu.Item>
<Menu.Item className={"tabtitle2"} key="2">翻转课堂</Menu.Item> <Menu.Item className={"tabtitle2"} key="2">翻转课堂</Menu.Item>
<Menu.Item className={"tabtitle2"} key="0">开发社区</Menu.Item> <Menu.Item className={"tabtitle2"} key="0">实训项目</Menu.Item>
<Menu.Item className={"tabtitle2"} key="3">交流问答</Menu.Item> <Menu.Item className={"tabtitle2"} key="3">交流问答</Menu.Item>
</Menu> </Menu>
</div> </div>

Loading…
Cancel
Save