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

dev_cs
cxt 6 years ago
commit 6eb7f5de4a

@ -65,8 +65,8 @@
"<label>" + imageLang.alt + "</label>" + "<label>" + imageLang.alt + "</label>" +
"<input type=\"text\" value=\"" + selection + "\" data-alt />" + "<input type=\"text\" value=\"" + selection + "\" data-alt />" +
"<br/>" + "<br/>" +
"<label>" + imageLang.link + "</label>" + "<label class=\"image-link\">" + imageLang.link + "</label>" +
"<input type=\"text\" value=\"http://\" data-link />" + "<input class=\"image-link\" type=\"text\" value=\"http://\" data-link />" +
"<br/>" + "<br/>" +
( (settings.imageUpload) ? "</form>" : "</div>"); ( (settings.imageUpload) ? "</form>" : "</div>");

@ -1,8 +1,11 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<!-- width=device-width, initial-scale=1 , shrink-to-fit=no --> <!--<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />-->
<!-- width=device-width, initial-scale=1 , shrink-to-fit=no -->
<!-- <meta name="viewport" content=""> --> <!-- <meta name="viewport" content=""> -->
<meta name="theme-color" content="#000000"> <meta name="theme-color" content="#000000">
<!--<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">--> <!--<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">-->

@ -72,6 +72,13 @@ html, body {
/* 某些情况下被cm盖住了 */ /* 某些情况下被cm盖住了 */
z-index: 99; z-index: 99;
} }
/* 图片点击放大的场景,隐藏图片链接 */
.editormd-image-click-expand .editormd-image-dialog {
height: 234px !important;
}
.editormd-image-click-expand .editormd-image-dialog .image-link {
display: none;
}
/* 解决鼠标框选时,左边第一列没高亮的问题 */ /* 解决鼠标框选时,左边第一列没高亮的问题 */
.CodeMirror .CodeMirror-lines pre.CodeMirror-line, .CodeMirror .CodeMirror-lines pre.CodeMirror-line-like { .CodeMirror .CodeMirror-lines pre.CodeMirror-line, .CodeMirror .CodeMirror-lines pre.CodeMirror-line-like {
padding: 0 12px ; padding: 0 12px ;

@ -2,7 +2,7 @@ import React,{Component} from "React";
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip,Spin, Pagination} from "antd"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip,Spin, Pagination} from "antd";
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import locale from 'antd/lib/date-picker/locale/zh_CN'; import locale from 'antd/lib/date-picker/locale/zh_CN';
import { WordsBtn, ConditionToolTip, queryString,getImageUrl, on, off} from 'educoder'; import { WordsBtn, ConditionToolTip, queryString,getImageUrl, on, off, NoneData} from 'educoder';
import axios from 'axios'; import axios from 'axios';
import Modals from '../../modals/Modals'; import Modals from '../../modals/Modals';
import CoursesListType from '../coursesPublic/CoursesListType'; import CoursesListType from '../coursesPublic/CoursesListType';
@ -817,10 +817,8 @@ class CommonWorkList extends Component{
<Spin size="large" spinning={this.state.isSpin}> <Spin size="large" spinning={this.state.isSpin}>
<div id="forum_list" className="forum_table"> <div id="forum_list" className="forum_table">
<div className="mh650 edu-back-white"> <div className="mh650 edu-back-white">
<div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/> <NoneData></NoneData>
<p className="edu-nodata-p mb30">暂时还没有相关数据哦</p>
</div>
</div> </div>
</div> </div>
</Spin> </Spin>

@ -250,7 +250,7 @@ class CommonReply extends Component{
} }
`}</style> `}</style>
<MemoDetailMDEditor ref="editor" memo={memo} usingMockInput={true} placeholder="说点什么" <MemoDetailMDEditor ref="editor" memo={memo} usingMockInput={true} placeholder="说点什么"
height={160} showError={true} height={160} showError={true} imageExpand={true}
replyComment={this.replyComment} replyComment={this.replyComment}
commentsLength={comments ? comments.length : 0} commentsLength={comments ? comments.length : 0}
></MemoDetailMDEditor> ></MemoDetailMDEditor>

@ -130,7 +130,7 @@ class MemoDetailMDEditor extends Component {
} }
} }
render() { render() {
const { match, history, memo, placeholder, className } = this.props const { match, history, memo, placeholder, className, imageExpand } = this.props
const { isInited, errorMsg } = this.state const { isInited, errorMsg } = this.state
if (!memo) { if (!memo) {
return <div></div> return <div></div>
@ -185,7 +185,8 @@ class MemoDetailMDEditor extends Component {
` `
} */} } */}
</style> </style>
<div nhname={`new_message_${memo.id}`} className={`commentInput commentInputs ${className}`} <div nhname={`new_message_${memo.id}`}
className={`commentInput commentInputs ${className} ${imageExpand && 'editormd-image-click-expand' }`}
style={{ padding: '30px',boxSizing:"border-box", display: isInited ? '' : 'none', paddingBottom: '40px' }} > style={{ padding: '30px',boxSizing:"border-box", display: isInited ? '' : 'none', paddingBottom: '40px' }} >
<div id="memo_comment_editorMd" className="editorMD" style={{ marginBottom: '0px' <div id="memo_comment_editorMd" className="editorMD" style={{ marginBottom: '0px'
, border: errorMsg ? '1px solid red' : '1px solid #ddd'}}> , border: errorMsg ? '1px solid red' : '1px solid #ddd'}}>

@ -1,47 +1,56 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import {getImageUrl} from 'educoder'; import {getImageUrl} from 'educoder';
import { Spin, Icon , Modal} from 'antd'; import { Spin, Icon , Modal} from 'antd';
class Modals extends Component { class Modals extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
funmodalsType:false, funmodalsType:false,
istype:false istype:false
} }
} }
render() { render() {
const antIcons = <Icon type="loading" style={{ fontSize: 24 }} spin /> const antIcons = <Icon type="loading" style={{ fontSize: 24 }} spin />
return( return(
<Modal <Modal
className={this.props.className} className={this.props.className}
keyboard={false} keyboard={false}
title="提示" title="提示"
visible={this.props.modalsType===undefined?false:this.props.modalsType} visible={this.props.modalsType===undefined?false:this.props.modalsType}
closable={false} closable={false}
footer={null} footer={null}
destroyOnClose={true} destroyOnClose={true}
centered={true} centered={true}
width="530px" width="530px"
> >
<Spin indicator={antIcons} spinning={this.props.antIcon===undefined?false:this.props.antIcon} > {this.props.modalsType===true?<style>
<div className="task-popup-content"> {
<p className="task-popup-text-center font-16">{this.props.modalsTopval}</p> `
<p className="task-popup-text-center font-16 mt5">{this.props.modalsBottomval}</p> body{
{this.props.loadtype===true? overflow: hidden !important;
<div className="clearfix edu-txt-center mt20"> }
<a className="task-btn task-btn-orange pop_close" onClick={this.props.modalSave}>知道啦</a> `
</div> }
: </style>:""}
<div className="clearfix mt30 edu-txt-center"> <Spin indicator={antIcons} spinning={this.props.antIcon===undefined?false:this.props.antIcon} >
<a className="task-btn mr30" onClick={this.props.modalCancel}>取消</a> <div className="task-popup-content">
<a className="task-btn task-btn-orange" onClick={this.props.modalSave}>{this.props.okText || '确定'}</a> <p className="task-popup-text-center font-16">{this.props.modalsTopval}</p>
</div> <p className="task-popup-text-center font-16 mt5">{this.props.modalsBottomval}</p>
} {this.props.loadtype===true?
</div> <div className="clearfix edu-txt-center mt20">
</Spin> <a className="task-btn task-btn-orange pop_close" onClick={this.props.modalSave}>知道啦</a>
</Modal> </div>
) :
} <div className="clearfix mt30 edu-txt-center">
} <a className="task-btn mr30" onClick={this.props.modalCancel}>取消</a>
<a className="task-btn task-btn-orange" onClick={this.props.modalSave}>{this.props.okText || '确定'}</a>
</div>
}
</div>
</Spin>
</Modal>
)
}
}
export default Modals; export default Modals;

@ -495,7 +495,7 @@ class DetailCards extends Component{
: :
<li className={showparagraph===false?"none":"fr status_li"}> <li className={showparagraph===false?"none":"fr status_li"}>
{ {
showparagraphkey===key&&showparagraphindex===index?<div> showparagraphkey===key&&showparagraphindex===index?this.props.detailInfoList&&this.props.detailInfoList.allow_statistics===false&&this.props.MenuItemsindextype===2?"":<div>
<Link to={'/shixuns/'+line.identifier+'/challenges'} className="mr30 color-blue_4C shixun_detail pointer fl" target="_blank">查看详情</Link> <Link to={'/shixuns/'+line.identifier+'/challenges'} className="mr30 color-blue_4C shixun_detail pointer fl" target="_blank">查看详情</Link>
{line.shixun_status==="暂未公开"?"":<a onClick={()=>this.startgameid(line.identifier)} className="btn_auto user_bluebg_btn fl" id="shixun_operation" >开始实战</a>} {line.shixun_status==="暂未公开"?"":<a onClick={()=>this.startgameid(line.identifier)} className="btn_auto user_bluebg_btn fl" id="shixun_operation" >开始实战</a>}
</div>:"" </div>:""

@ -26,7 +26,9 @@ class DetailTop extends Component{
MenuItemskey:1, MenuItemskey:1,
courseslist:[], courseslist:[],
Pathcourseid:undefined, Pathcourseid:undefined,
OpenCourseTypes:false OpenCourseTypes:false,
putappointmenttype:false,
getappointmenttype:false
} }
} }
componentDidMount(){ componentDidMount(){
@ -74,7 +76,9 @@ class DetailTop extends Component{
}) })
} }
this.props.getMenuItemsindex(keys,courseslist[0].course_status.status)
} }
this.setState({ this.setState({
courseslist:courseslist, courseslist:courseslist,
MenuItemskey:keys, MenuItemskey:keys,
@ -156,7 +160,8 @@ class DetailTop extends Component{
Modalstype:false, Modalstype:false,
Modalsbottomval:'', Modalsbottomval:'',
loadtype:false, loadtype:false,
deletepathtype:false deletepathtype:false,
putappointmenttype:false
}) })
} }
@ -219,6 +224,8 @@ class DetailTop extends Component{
) )
} }
}) })
this.props.getMenuItemsindex(keys,courseslist[0].course_status.status)
this.setState({ this.setState({
MenuItemskey:keys, MenuItemskey:keys,
courseslist:courseslist, courseslist:courseslist,
@ -245,6 +252,20 @@ class DetailTop extends Component{
pathcousestypeid:typeid pathcousestypeid:typeid
}) })
} }
putappointment=()=>{
this.setState({
Modalstype:true,
Modalstopval:"是否确认立即预约?",
Modalsbottomval:"",
cardsModalcancel:()=>this.cardsModalcancel(),
putappointmenttype:true,
loadtype:false
})
}
ysljoinmodalCancel=()=>{ ysljoinmodalCancel=()=>{
this.setState({ this.setState({
yslJointhe:false yslJointhe:false
@ -267,9 +288,34 @@ class DetailTop extends Component{
OpenCourseTypes:false OpenCourseTypes:false
}) })
} }
getappointment=()=>{
let pathid=this.props.match.params.pathId;
let url=`/paths/${pathid}/appointment.json`
axios.post(url).then((response) => {
if (response.status === 200) {
if(response.data.status===0){
this.setState({
getappointmenttype:true
})
this.cardsModalcancel()
// this.props.getlistdatas()
this.props.showNotification(response.data.message)
}else{
this.props.showNotification(response.data.message)
}
}
}).catch((error) => {
console.log(error)
this.cardsModalcancel()
})
}
render(){ render(){
let{detailInfoList}=this.props; let{detailInfoList}=this.props;
let{Modalstype,Modalstopval,cardsModalcancel,OpenCourseTypes,Modalsbottomval,cardsModalsavetype,loadtype}=this.state; let{Modalstype,Modalstopval,cardsModalcancel,putappointmenttype,Modalsbottomval,cardsModalsavetype,loadtype,getappointmenttype}=this.state;
const radioStyle = { const radioStyle = {
display: 'block', display: 'block',
height: '30px', height: '30px',
@ -292,6 +338,9 @@ class DetailTop extends Component{
let applypath=this.props.detailInfoList&&this.props.detailInfoList.participant_count!=undefined&&this.props.detailInfoList&&this.props.detailInfoList.allow_statistics===false;
// console.log(this.props.courses)
return( return(
<div className={this.props.courses===undefined||this.props.courses.length===0?"subhead":"subhead mb70"}> <div className={this.props.courses===undefined||this.props.courses.length===0?"subhead":"subhead mb70"}>
@ -300,7 +349,7 @@ class DetailTop extends Component{
modalsTopval={Modalstopval} modalsTopval={Modalstopval}
modalsBottomval={Modalsbottomval} modalsBottomval={Modalsbottomval}
modalCancel={cardsModalcancel} modalCancel={cardsModalcancel}
modalSave={cardsModalsavetype===true?this.reovkissuePaths:this.cardsModalsave} modalSave={cardsModalsavetype===true?()=>this.reovkissuePaths():putappointmenttype===true?()=>this.getappointment():()=>this.cardsModalsave()}
loadtype={loadtype} loadtype={loadtype}
> >
</Modals> </Modals>
@ -428,12 +477,12 @@ class DetailTop extends Component{
</div> </div>
{this.props.courses===undefined||this.props.courses.length===0?"":<div className="userNavs mt20"> {this.props.courses===undefined||this.props.courses.length===0?"":<div className="userNavs mt20" style={applypath===false?{}:this.state.MenuItemskey===this.props.courses.length?{height:'158px'}:{}}>
<li className={"fl pd4020"}> <li className={"fl pd4020"}>
<style> <style>
{ {
` `
.anticon-down{ .anticon-down{
font-size:14px !important; font-size:14px !important;
transform:none !important; transform:none !important;
@ -451,34 +500,34 @@ class DetailTop extends Component{
color:#CDCDCD; color:#CDCDCD;
} }
` `
} }
</style> </style>
{this.props.courses===undefined?"":this.state.courseslist.map((item,key)=>{
if(item.course_identity<4){
return(
<Tooltip placement="bottom" title={"编辑课堂"} key={key}>
<a href={`/courses/${item.course_id}/newgolds/settings`} target={"_blank"}>
<i className="iconfont icon-bianji1 newbianji1"></i>
</a>
</Tooltip>
)}})
}
<Dropdown {this.props.courses===undefined?"":this.state.courseslist.map((item,key)=>{
overlay={menu} if(item.course_identity<4){
onVisibleChange={this.onVisibleChanges} return(
> <Tooltip placement="bottom" title={"编辑课堂"} key={key}>
<a className={"alist"}> <a href={`/courses/${item.course_id}/newgolds/settings`} target={"_blank"}>
<span className={"color-orange"}> {this.state.MenuItemskey} </span>次开课 <Icon className="aIcons" type={!this.state.onVisibleChangestype?"down":"up"} /> <i className="iconfont icon-bianji1 newbianji1"></i>
</a> </a>
</Dropdown> </Tooltip>
</li> )}})
<style> }
{
`
<Dropdown
overlay={menu}
onVisibleChange={this.onVisibleChanges}
>
<a className={"alist"}>
<span className={"color-orange"}> {this.state.MenuItemskey} </span>次开课 <Icon className="aIcons" type={!this.state.onVisibleChangestype?"down":"up"} />
</a>
</Dropdown>
</li>
<style>
{
`
.pdt28{ .pdt28{
padding-top: 28px; padding-top: 28px;
} }
@ -494,12 +543,12 @@ class DetailTop extends Component{
font-size: 14px; font-size: 14px;
} }
` `
} }
</style> </style>
<li className={"ml20"}> <li className={"ml20"}>
{this.state.courseslist.map((item,key)=>{ {this.state.courseslist.map((item,key)=>{
return( return(
<div className={"ant-breadcrumb pdt28"} key={key}> <div className={"ant-breadcrumb pdt28"} key={key}>
<span> <span>
<div className="ant-breadcrumb-link fl mr23"> <div className="ant-breadcrumb-link fl mr23">
<div className={"pathtime"}> <div className={"pathtime"}>
@ -512,7 +561,7 @@ class DetailTop extends Component{
<div className="fl solidright"></div> <div className="fl solidright"></div>
</span> </span>
<span> <span>
<div className="ant-breadcrumb-link fl mr23 ml23"> <div className="ant-breadcrumb-link fl mr23 ml23">
<div className={"pathtime"}> <div className={"pathtime"}>
结课时间 结课时间
@ -524,7 +573,7 @@ class DetailTop extends Component{
<div className="fl solidright"></div> <div className="fl solidright"></div>
</span> </span>
<span> <span>
<div className="ant-breadcrumb-link fl mr23 ml23"> <div className="ant-breadcrumb-link fl mr23 ml23">
<div className={"pathtime"}> <div className={"pathtime"}>
报名人数 报名人数
@ -534,17 +583,17 @@ class DetailTop extends Component{
</div> </div>
</div> </div>
</span> </span>
</div> </div>
) )
}) })
} }
</li> </li>
<li className={"fr mr25"}> <li className={"fr mr25"}>
<style> <style>
{ {
` `
.user-colorgrey-9b{color:#9B9B9B} .user-colorgrey-9b{color:#9B9B9B}
.user-colorgrey-green{color:#7ED321} .user-colorgrey-green{color:#7ED321}
.background191{ .background191{
@ -565,40 +614,81 @@ class DetailTop extends Component{
.courseslistsa{ .courseslistsa{
color:#fff !important; color:#fff !important;
} }
.pathbtensbox{
width: 188px !important;
height: 46px !important;
background: rgba(76,172,255,1);
border-radius: 4px;
line-height: 46px !important;
}
.lineHeight0{
line-height: 0px;
}
.font153{
font-size: 14px;
font-weight: 400;
color: rgba(153,153,153,1);
line-height: 14px;
margin-left: 30px;
}
.absolutewidth{
position: absolute;
top: -21px;
right: 71px;
}
.relativewidth{
position: relative;
width: 100%;
}
` `
} }
</style> </style>
{this.state.courseslist.map((item,key)=>{
{/*
height: 158px;
}*/}
{this.state.courseslist.map((item,key)=>{
return(
<div key={key}>
{/*{item.course_status.status===0?<div className="mr51 shixun_detail pointer fl user-colorgrey-green pathdefault">即将开课</div>:""}*/}
{item.course_status.status===1?<div className="mr51 shixun_detail pointer fl color-orange pathdefault">{item.course_status.time}</div>:""}
{item.course_status.status===2&&item.course_identity<6?<div className="mr51 shixun_detail pointer fl user-colorgrey-9b pathdefault">已结束</div>:""}
{item.course_status.status===0?
item.course_identity<5?<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens courseslistsa" href={item.first_category_url} target="_blank">
进入课堂
</a>:item.course_identity<6?<div className="fr user_default_btn background191 font-18 mt28 pathbtens pathdefault"></div>
:<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens" onClick={()=>this.JoinnowCourse(item.course_id)}>立即报名</a>:""}
{item.course_status.status===1?
item.course_identity<5?<a className="courseslistsa fr user_default_btn task-btn-orange font-18 mt28 pathbtens" href={item.first_category_url} target="_blank">
进入课堂
</a>:item.course_identity<6?<a className="courseslistsa fr user_default_btn task-btn-orange font-18 mt28 pathbtens" href={item.first_category_url} target="_blank">
立即学习
</a>:<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens" onClick={()=>this.JoinnowCourse(item.course_id,item.course_status.status)}></a>:""}
{item.course_status.status===2?
item.course_identity<6?<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens courseslistsa" href={item.first_category_url} target="_blank">
进入课堂
</a>:<div className="fr user_default_btn background191 font-18 mt28 pathbtens pathdefault"></div>:""}
</div>
)})}
</li>
{applypath===false?"":this.state.MenuItemskey===this.props.courses.length?<div className={"clear"}></div>:""}
{applypath===false?"":this.state.MenuItemskey===this.props.courses.length?<span className={"fl ml20 lineHeight0 relativewidth"}>
<span>当前预约报名人数<span className={"color-red mr5"}>{getappointmenttype===true?this.props.detailInfoList&&this.props.detailInfoList.participant_count+1:this.props.detailInfoList&&this.props.detailInfoList.participant_count}</span></span>
<span className={"font153"}>当预约报名人数达到 {this.props.detailInfoList&&this.props.detailInfoList.student_count} 人时即将开课</span>
{this.props.detailInfoList&&this.props.detailInfoList.has_participate===false?
getappointmenttype===true?<a className="fr user_default_btn background191 font-18 pathbtensbox absolutewidth">预约报名成功</a>:<a className="fr user_default_btn task-btn-orange font-18 pathbtensbox absolutewidth" onClick={()=>this.putappointment()}></a>:
<a className="fr user_default_btn background191 font-18 pathbtensbox absolutewidth">预约报名成功</a>}
</span>:""}
return(
<div key={key}>
{item.course_status.status===0?<div className="mr51 shixun_detail pointer fl user-colorgrey-green pathdefault">即将开课</div>:""}
{item.course_status.status===1?<div className="mr51 shixun_detail pointer fl color-orange pathdefault">{item.course_status.time}</div>:""}
{item.course_status.status===2&&item.course_identity<6?<div className="mr51 shixun_detail pointer fl user-colorgrey-9b pathdefault">已结束</div>:""}
{item.course_status.status===0?
item.course_identity<5?<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens courseslistsa" href={item.first_category_url} target="_blank">
进入课堂
</a>:item.course_identity<6?<div className="fr user_default_btn background191 font-18 mt28 pathbtens pathdefault"></div>
:<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens" onClick={()=>this.JoinnowCourse(item.course_id)}>立即报名</a>:""}
{item.course_status.status===1?
item.course_identity<5?<a className="courseslistsa fr user_default_btn task-btn-orange font-18 mt28 pathbtens" href={item.first_category_url} target="_blank">
进入课堂
</a>:item.course_identity<6?<a className="courseslistsa fr user_default_btn task-btn-orange font-18 mt28 pathbtens" href={item.first_category_url} target="_blank">
立即学习
</a>:<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens" onClick={()=>this.JoinnowCourse(item.course_id,item.course_status.status)}></a>:""}
{item.course_status.status===2?
item.course_identity<6?<a className="fr user_default_btn task-btn-orange font-18 mt28 pathbtens courseslistsa" href={item.first_category_url} target="_blank">
进入课堂
</a>:<div className="fr user_default_btn background191 font-18 mt28 pathbtens pathdefault"></div>:""}
</div>
)})}
</li>
</div>} </div>}
</div> </div>

@ -85,6 +85,8 @@ class PathDetailIndex extends Component{
items: getItems(10), items: getItems(10),
pathtopskey:1, pathtopskey:1,
dataquerys:{}, dataquerys:{},
MenuItemsindex:1,
MenuItemsindextype:2
} }
this.onDragEnd = this.onDragEnd.bind(this); this.onDragEnd = this.onDragEnd.bind(this);
@ -147,7 +149,10 @@ class PathDetailIndex extends Component{
} }
componentDidMount(){ componentDidMount(){
this.getlistdatas()
}
getlistdatas=()=>{
const query = this.props.location.search; const query = this.props.location.search;
// const type = query.split('?chinaoocTimestamp='); // const type = query.split('?chinaoocTimestamp=');
// console.log("Eduinforms12345"); // console.log("Eduinforms12345");
@ -254,7 +259,13 @@ class PathDetailIndex extends Component{
console.log(error); console.log(error);
}) })
}; };
getMenuItemsindex=(key,status)=>{
this.setState({
MenuItemsindex:key,
MenuItemsindextype:status
})
}
getdatasindex=(key)=>{ getdatasindex=(key)=>{
// yslwebobject 后端需要的接口 // yslwebobject 后端需要的接口
let pathid=this.props.match.params.pathId; let pathid=this.props.match.params.pathId;
@ -460,9 +471,13 @@ class PathDetailIndex extends Component{
members, members,
tags, tags,
courses, courses,
MenuItemsindex,
MenuItemsindextype
} = this.state } = this.state
// console.log(MenuItemsindex)
// console.log(MenuItemsindextype===2&&detailInfoList&&detailInfoList.allow_statistics===false)
return( return(
<div className="newContainer"> <div className="newContainer">
<style> <style>
@ -487,7 +502,7 @@ class PathDetailIndex extends Component{
> >
</Modals> </Modals>
<div className="newMain clearfix"> <div className="newMain clearfix">
<DetailTop {...this.state} {...this.props} getdatasindex={(key)=>this.getdatasindex(key)}></DetailTop> <DetailTop {...this.state} {...this.props} getdatasindex={(key)=>this.getdatasindex(key)} getMenuItemsindex={(key,status)=>this.getMenuItemsindex(key,status)} getlistdatas={()=>this.getlistdatas()}></DetailTop>
<div className="educontent clearfix mb80"> <div className="educontent clearfix mb80">
<div className="with65 fl"> <div className="with65 fl">
<div className="produce-content mb10"> <div className="produce-content mb10">

@ -317,14 +317,14 @@ export default class TPMMDEditor extends Component {
let { let {
showError showError
} = this.state; } = this.state;
let { mdID, className, noStorage } = this.props; let { mdID, className, noStorage, imageExpand } = this.props;
let _style = {} let _style = {}
if (showError) { if (showError) {
_style.border = '1px solid red' _style.border = '1px solid red'
} }
return ( return (
<React.Fragment> <React.Fragment>
<div className={`df ${className}`} > <div className={`df ${className} ${imageExpand && 'editormd-image-click-expand' }`} >
{/* padding10-20 */} {/* padding10-20 */}
<div className="edu-back-greyf5 radius4" id={`mdEditor_${mdID}`} style={{..._style}}> <div className="edu-back-greyf5 radius4" id={`mdEditor_${mdID}`} style={{..._style}}>
<textarea style={{display: 'none'}} id={`mdEditors_${mdID}`} name="content"></textarea> <textarea style={{display: 'none'}} id={`mdEditors_${mdID}`} name="content"></textarea>

Loading…
Cancel
Save