diff --git a/app/templates/shared/main.css b/app/templates/shared/main.css index 67d43dc6c..81b80cdf8 100644 --- a/app/templates/shared/main.css +++ b/app/templates/shared/main.css @@ -549,6 +549,7 @@ a:hover.task-btn-orange{background: #459BE6;} a.user_bluebg_btn{background-color:#4CACFF;color: #fff;} a.user_orangebg_btn{background-color:#FF6800;color: #fff;} a.user_greybg_btn{background-color:#747A7F;color: #fff;} +/*.user_white_btn{border: 1px solid #ffffff;color: #ffffff!important;}*/ .pointer{cursor: pointer} diff --git a/public/react/public/css/edu-all.css b/public/react/public/css/edu-all.css index b401dd24a..abcc3a6da 100644 --- a/public/react/public/css/edu-all.css +++ b/public/react/public/css/edu-all.css @@ -112,8 +112,25 @@ em.vertical-line{display: inline-block;width: 2px;background: #999;height: 10px} .smallSquare:nth-child(3n+0){margin-right: 0px;} .partimg{height: 180px;width: 100%;border-radius: 6px 6px 0px 0px;} /*块状列表上面的绿色标签*/ -.tag-green{position: absolute;left: 0px;top:20px;} -.tag-green .tag-name{display: block;width: auto;background-image: url("/images/educoder/tag1.png");background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left;} +.tag-green{ + position: absolute; + left: 15px; + bottom: 95px;} +.tag-green .tag-name{display: block;width: auto; + /*background-image: url("/images/educoder/tag1.png");*/ + background: #000000; + border: 1px solid #fff; + border-radius: 3px; + font-size: 14px; + background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left;} +.tag-orange{position: absolute;right: 0px;top:20px;} +.tag-orange .tag-name{display: block;width: auto;background-color:#FF6800; + background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left; + height: 28px; + line-height: 28px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} /*发送至弹框里的下拉框*/ .downSelectOption{position: relative;height: 35px;} .downSelectOption .showOption{background-color: #F4F4F4;border: 1px solid #EAEAEA;width: 100%;padding: 5px 40px 5px 5px;outline: none;height: 100%;box-sizing: border-box;} diff --git a/public/react/public/css/iconfont.css b/public/react/public/css/iconfont.css index 1c89554e4..2d230ace9 100644 --- a/public/react/public/css/iconfont.css +++ b/public/react/public/css/iconfont.css @@ -1,5 +1,5 @@ @font-face {font-family: "iconfont"; - + src: url('iconfont.eot?t=1565861873834'); /* IE9 */ src: url('iconfont.eot?t=1565861873834#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), @@ -182,6 +182,10 @@ content: "\e67f"; } +.icon-xiaoxi1:before { + content: "\e6a4"; +} + .icon-xiazai1:before { content: "\e6ac"; } @@ -582,6 +586,10 @@ content: "\e64e"; } +.icon-xuexizhongxin:before { + content: "\e6a2"; +} + .icon-wenjian:before { content: "\e64f"; } diff --git a/public/react/src/modules/courses/Index.js b/public/react/src/modules/courses/Index.js index 83f6679f7..1409e8468 100644 --- a/public/react/src/modules/courses/Index.js +++ b/public/react/src/modules/courses/Index.js @@ -72,7 +72,11 @@ const WrappedCoursesNewApp= Loadable({ loader: () => import('./new/CoursesNew'), loading: Loading, }) - +//新建金品课堂 +const WrappedCoursesNewAppGoldclass= Loadable({ + loader: () => import('./new/Goldsubject'), + loading: Loading, +}) const ShixunHomeworkPage =Loadable({ loader: () => import('./shixunHomework/ShixunHomeworkPage'), loading: Loading, @@ -821,6 +825,20 @@ class CoursesIndex extends Component{ (props) => () } > + {/*新建金品课堂*/} + {/*coursesId 课堂id */} + {/*id 是否是私有或者公有*/} + () + } + > + {/*修改金品课堂*/} + () + } + > {/*修改课堂*/} - {/* 实训作业子页面*/} import('./members/studentsList'), loading: Loading, -}) +}); +const Eduinforms= Loadable({ + loader: () => import('./gradinforms/Eduinforms.js'), + loading: Loading, +}); +const Elearning= Loadable({ + loader: () => import('./elearning/Elearning.js'), + loading: Loading, +}); // const Exercise= Loadable({ loader: () => import('./exercise/Exercise'), @@ -239,6 +247,21 @@ class ListPageIndex extends Component{ } > + {/*公告栏列表*/} + + () + } + > + {/*在线学习*/} + () + } + > + {/* 实训作业页面*/} { + this.setState({ + yslJointhe:true + }) } showActionPoll=(i,s,ss)=>{ this.setState({ @@ -342,17 +351,42 @@ class CoursesBanner extends Component { } postsettings=()=>{ window.location.href = "/courses/" + this.props.match.params.coursesId + "/settings"; - } + }; + postsettingstwo=()=>{ + var ids =1; + try { + if(this.state.coursedata.is_public){ + ids=1; + }else { + ids=0; + } + }catch (e) { + + } + window.location.href = `/courses/${this.props.match.params.coursesId}/newgolds/settings/${ids}`; + }; + - hideAccountProfile=()=>{ + hideAccountProfile=()=>{ this.setState({ AccountProfiletype:false }) - } + }; + ysljoinmodalCancel=()=>{ + this.setState({ + yslJointhe:false + }) + }; + ysljoinmodalCanceltwo=()=>{ + this.setState({ + yslJointhe:false + }) + window.location.reload(); + }; render() { - let { Addcoursestypes, coursedata, modalsType, modalsTopval, loadtype,modalsBottomval,antIcon,is_guide,AccountProfiletype} = this.state; + let { Addcoursestypes, coursedata,excellent, modalsType, modalsTopval, loadtype,modalsBottomval,antIcon,is_guide,AccountProfiletype} = this.state; return (
@@ -383,6 +417,7 @@ class CoursesBanner extends Component { modalSave={this.ModalAction} antIcon={antIcon} > + this.ysljoinmodalCancel()} ysljoinmodalCanceltwo={()=>this.ysljoinmodalCanceltwo()}> + { + ` + .tag-orange .tag-name{ + display: block; + width: auto; + background-color: #FF6800; + background-size: 100% 100%; + padding: 0px 4px; + color: #fff; + float: left; + height: 28px; + line-height: 28px; + font-size: 14px; + border-radius: 4px; + } + ` + } + + {excellent===true? + 国家精品 + :""} - + {excellent===false?
{coursedata.switch_to_student === true ? 退出课堂 :""}
+ : +
+ + {/*coursedata.course_identity === 6 是非课堂成员*/} + {coursedata.course_identity === 6&&coursedata.educoder_teacher===false? + this.myyslgradin()}>加入课堂: ""} + + {coursedata.course_identity === 6&&coursedata.educoder_teacher===true? + this.myyslgradin()}>加入课堂: ""} + + {/*{this.props.isStudent()? this.exitclass()}*/} + {/*> 退出课堂 :""}*/} +
+ + } this.ActionPoll(1)}>删除
:"":""} + : + } trigger="hover"> diff --git a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js index 20f46f079..16c71f942 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesLeftNav.js @@ -648,7 +648,6 @@ class Coursesleftnav extends Component{ } onDragEnd=(result)=>{ - debugger // console.log(result) // let {course_modules}=this.props; // let newcourse_modules=course_modules; @@ -739,6 +738,7 @@ class Coursesleftnav extends Component{ maincontent=(item,key)=>{ return (
+ {/*公告栏*/} {/*作业*/} {item.type==="shixun_homework"?
this.Navmodalnames(e,1,"shixun_homework",item.id)}>添加目录
:""} {/*资源*/} @@ -792,8 +792,12 @@ class Coursesleftnav extends Component{ // // console.log(item.category_url) // console.log(this.props.location.pathname) + console.log("778"); + console.log("CoursesLeftNav"); + console.log(this.props); + console.log(course_modules); - return( + return(
) + }) + } + + + + ) + }) + } + + ) + } +} +export default YslDetailCards; \ No newline at end of file diff --git a/public/react/src/modules/courses/elearning/myelearning.css b/public/react/src/modules/courses/elearning/myelearning.css new file mode 100644 index 000000000..e69de29bb diff --git a/public/react/src/modules/courses/gradinforms/Eduinforms.js b/public/react/src/modules/courses/gradinforms/Eduinforms.js new file mode 100644 index 000000000..aef54ab13 --- /dev/null +++ b/public/react/src/modules/courses/gradinforms/Eduinforms.js @@ -0,0 +1,259 @@ +import React,{ Component } from "react"; +import { Input,Checkbox,Table, Pagination, Modal,Menu, Tooltip,Spin,Button,Form } from "antd"; +import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder'; +import './myysleduinforms.css' +import axios from 'axios'; +import TPMMDEditor from "../../tpm/challengesnew/TPMMDEditor"; + // 公告栏 +class Eduinforms extends Component{ + constructor(props){ + super(props); + this.messageRef = React.createRef(); + + this.state={ + description:null, + isSpin:true, + whethertoedit:false, + + } + } + + componentDidMount() { + console.log("获取到数据"); + console.log(this.props); + let url = `/courses/${this.props.match.params.coursesId}/informs.json`; + // + axios.get(url).then((response) => { + if(response){ + if(response.data){ + this.setState({ + description:response.data.description, + isSpin:false, + }) + }else { + this.setState({ + description:null, + isSpin:false, + + }) + + } + }else { + this.setState({ + description:null, + isSpin:false, + }) + + } + }).catch((error) => { + console.log(error) + this.setState({ + description:null, + isSpin:false, + }) + }); + + } + + + componentDidUpdate = (prevProps) => { + + + + } + bianji = (bians)=>{ + this.setState({ + whethertoedit:bians, + }) + + }; + + handleSubmit=(e) => { + e.preventDefault(); + this.props.form.validateFields((err, values) => { + if (!err) { + console.log(values.description); + if(values.description === undefined|| values.description === "" || values.description ===null){ + this.props.showNotification(`请输入提交内容`); + return + + } + var id=this.props.match.params.coursesId + + var url = `/courses/${id}/update_informs.json`; + axios.post(url,{ + description:values.description, + }).then((result) => { + if(result){ + if(result.data){ + if(result.data.status === 0){ + this.setState({ + description:values.description, + whethertoedit:false, + }) + this.props.showNotification(result.data.message); + }else { + this.props.showNotification(result.data.message); + + } + } + + } + }).catch((error) => { + console.log(error) + }) + }else{ + console.log(err); + } + + }); + } + + + render(){ + let{description,whethertoedit} =this.state; + const {getFieldDecorator} = this.props.form; + + return( + +
+
+

+

+ 公告栏 + { + this.props.isAdmin()===true? +

  • this.bianji(true)}> + 编辑 +
  • + :"" + } + +

    + +

    +
    + + +
    + { + whethertoedit === false? +
    + { + description === null || description=== undefined ||description === "" ? +
    +
    +

    暂时还没有相关数据哦!

    +
    + : +
    +
    + + +
    +
    + } +
    + : +
    +
    + +
    +
    + + + {getFieldDecorator('description', { + rules: [{ + required: true, message: '请在此输入内容,最多5000个字符', + }, { + max: 5000, message: '最大限制为5000个字符', + }], + })( + + )} + +
    +
    + + +
    + this.bianji(false)}>取消 + +
    +
    +
    +
    + } + + +
    + + + + +
    + +
    +
    + ) + } +} +const Eduinformss = Form.create({ name: 'eduinforms' })(Eduinforms); +export default Eduinformss; diff --git a/public/react/src/modules/courses/gradinforms/myysleduinforms.css b/public/react/src/modules/courses/gradinforms/myysleduinforms.css new file mode 100644 index 000000000..f3fa2fb1a --- /dev/null +++ b/public/react/src/modules/courses/gradinforms/myysleduinforms.css @@ -0,0 +1,13 @@ +.yslmt16px{ + padding-top: 25px !important; + padding-left: 25px !important; + padding-right: 25px !important; + padding-bottom: 1px !important; +} + +.yslmtopcg +{ + padding: 25px !important; + + +} \ No newline at end of file diff --git a/public/react/src/modules/courses/new/Goldsubject.js b/public/react/src/modules/courses/new/Goldsubject.js new file mode 100644 index 000000000..c61d045bd --- /dev/null +++ b/public/react/src/modules/courses/new/Goldsubject.js @@ -0,0 +1,918 @@ +import React, {Component} from "React"; +import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon,AutoComplete,InputNumber} from "antd"; +import ApplyForAddOrgModal from '../../user/modal/ApplyForAddOrgModal'; +import axios from 'axios'; +import "../css/Courses.css"; +import locale from 'antd/lib/date-picker/locale/zh_CN'; +import moment from 'moment'; +import Modals from '../../modals/Modals'; + + + +const { Option } = Select; + + +const dateFormat = 'YYYY-MM-DD'; + +function range(start, end) { + const result = []; + for (let i = start; i < end; i++) { + result.push(i); + } + return result; +} + +function disabledDateTime() { + return { + disabledMinutes: () => range(1, 30).concat(range(31, 60)), + }; +} + +function disabledDate(current) { + console.log(current); + return current && current < moment().endOf('day').subtract(1, 'days'); +} +function disabledDateysl(current) { + console.log(current); + return current && current < moment().endOf('day').add(1, 'days'); +} + +class Goldsubject extends Component { + + constructor(props) { + super(props) + this.state = { + coursedata: undefined, + searchlist: [], + searchlistscholl:[], + listvalue: undefined, + fetching:false, + subject_id:"", + start_date:"", + } + } + // disabledEndDate= endValue => { + // const { datatimetwo } = this.state; + // var startValue =datatimetwo + // if (!endValue || !startValue) { + // return false; + // } + // return endValue.valueOf() < startValue.valueOf(); + // }; + + isabledStartDate = (startValue) => { + + const { datatime } = this.state; + var datatimes=""; + if(datatime!==undefined){ + datatimes=datatime; + datatimes=moment(datatimes, dateFormat).subtract(0, 'days');; + }else { + datatimes=datatime; + } + if (!startValue || !datatimes) { + return false; + } + return startValue.valueOf() > datatimes.valueOf(); + }; + + disabledEndDate = (endValue) => { + // console.log("---------------------------------") + // console.log(moment(new Date(), dateFormat).add(1, 'days')); + // console.log(moment(new Date(), dateFormat).add(2, 'days')); + const { datatimetwo } = this.state; + var startvalue=""; + if(datatimetwo!==undefined){ + startvalue=datatimetwo; + startvalue=moment(startvalue, dateFormat).add(1, 'days'); + }else { + startvalue=datatimetwo; + } + // console.log("结束时间"); + // console.log(endValue); + // console.log(startvalue); + // console.log(datatimetwo); + if (!endValue || !startvalue) { + return false; + } + return endValue.valueOf() < startvalue.valueOf(); + }; + + componentDidMount() { + console.log("新建金品课堂的数据"); + console.log(this.props); + + let coursesId = this.props.match.params.coursesId; + let user_school=this.props.current_user&&this.props.current_user.user_school; + // this.getschool("") + // this.Searchvalue("") + if (coursesId != undefined) { + let url = "/courses/" + coursesId + "/settings.json" + axios.get(url).then((result) => { + + let data = result.data; + this.props.form.setFieldsValue({ + course: data.course_list_name, + classroom: data.name, + period: data.class_period, + credit: data.credit, + checkboxgroup: data.course_module_types, + Realnamecertification: data.authentication, + Professionalcertification:data.professional_certification, + starttime: data.start_date === undefined ? "" : moment(data.start_date, dateFormat), + endtime: data.end_date === undefined ? "" : moment(data.end_date, dateFormat), + school:data.school + + }); + // starttime + this.setState({ + datatimetwo: data.start_date === undefined ? "" : moment(data.start_date, dateFormat), + datatime: data.end_date === undefined ? "" : moment(data.end_date, dateFormat), + is_public: this.props.match.params.id, + Realnamecertification: data.authentication, + Professionalcertification:data.professional_certification, + name: data.name, + class_period: data.class_period, + credit: parseFloat(data.credit), + course_module_types: data.course_module_types, + school:data.school, + }); + this.handleSearchschool(data.school); + }).catch((error) => { + console.log(error); + }) + }else{ + let url = "/courses/new.json" + axios.get(url).then((result) => { + console.log(result) + }).catch((error) => { + console.log(error); + }) + // console.log(user_school); + this.props.form.setFieldsValue({ + school:user_school, + }); + this.setState({ + school:user_school, + }); + + this.handleSearchschool(user_school); + + + } + + + } + componentDidUpdate(prevProps) { + if(prevProps.current_user !== this.props.current_user){ + let user_school=this.props.current_user&&this.props.current_user.user_school; + this.props.form.setFieldsValue({ + school:user_school, + }); + this.setState({ + school:user_school, + }); + + this.handleSearchschool(user_school); + } + } + onChangeTimepublishs = (date, dateString) => { + console.log("结束时间11111111111"); + console.log(dateString); + + if(dateString===""){ + this.setState({ + datatime: undefined, + }) + console.log("结束时间111111111116"); + + this.props.form.setFieldsValue({ + endtime:undefined, + }); + }else{ + console.log("结束时间111111111117"); + + this.setState({ + datatime: dateString, + }); + this.props.form.setFieldsValue({ + endtime: moment(dateString, dateFormat), + }); + } + + }; + onChangeTimepublishstwo = (date, dateString) => { + console.log("结束时间22222222222"); + console.log(dateString); + if(dateString===""){ + console.log("结束时间222222222223"); + this.setState({ + datatimetwo: undefined, + }) + this.props.form.setFieldsValue({ + starttime: undefined, + }); + }else{ + console.log("结束时间222222222224"); + + this.setState({ + datatimetwo: dateString, + }) + this.props.form.setFieldsValue({ + starttime: moment(dateString, dateFormat), + }); + } + + }; + cancelmodel = () => { + + this.setState({ + Modalstype: false, + Loadtype: false, + Modalstopval: "", + ModalCancel: "", + ModalSave: "", + }) + + } + + scrollToAnchor = (anchorName) => { + if (anchorName) { + // 找到锚点 + let anchorElement = document.getElementById(anchorName); + // 如果对应id的锚点存在,就跳转到锚点 + window.scrollTo(0, anchorElement.offsetTop - window.innerHeight / 2); + } + } + + //提交数据的地方 + handleSubmit = (e) => { + + e.preventDefault(); + + let first_category_url=this.props.current_user.first_category_url; + let coursesId = this.props.match.params.coursesId; + var is_public =this.props.match.params.id; + let {datatime,datatimetwo} = this.state + // console.log(is_public) + if (coursesId != undefined) { + // 编辑 + + this.props.form.validateFields((err, values) => { + if (err) { + return; + } + // if(values.course===""||values.course===undefined){ + // this.scrollToAnchor("iscourse") + // return + // + // } + // if(values.classroom===""||values.classroom===undefined){ + // this.scrollToAnchor("isclassroom") + // return + // } + // + // if(values.school===""||values.school===undefined){ + // // this.scrollToAnchor("isschool") + // return + // + // } + + if(values.checkboxgroup.length===0){ + this.setState({ + Modalstype:true, + Modalstopval:"请您至少添加一个课堂模块,", + ModalsBottomval:"否则您将无法新建课堂。", + Loadtype:true, + ModalSave:()=>this.cancelmodel(), + }) + return + } + + + if (!err) { + + + + // console.log('Received values of form: ', values); + + let url = "/courses/" + coursesId + ".json"; + axios.put(url, { + // subject_id:128, //这是带过来的值 编辑就不要传值了 + name: values.classroom, + class_period: values.period, + credit: parseFloat(values.credit), + start_date:values.starttime, + end_date: values.endtime, + is_public: is_public, //这是也是带过来的值 + course_module_types: values.checkboxgroup, + school:values.school + } + ).then((response) => { + // debugger + if (response.data.status === 0) { + // this.goback() + + window.location.href=first_category_url; + var yslGuideone = window.localStorage.getItem('yslGuideone'); + try { + if(yslGuideone=== null){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + if(yslGuideone=== undefined){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + }catch (e) { + + } + + } + }).catch((error) => { + console.log(error) + }) + } + + console.log("错误信息信息信息1"); + console.log(err); + console.log(values.starttime); + console.log(values.endtime); + + }); + } else { + this.props.form.validateFields((err, values) => { + console.log("错误信息信息信息2"); + console.log(err); + if (err) { + return; + } + // if(values.course===""||values.course===undefined){ + // this.scrollToAnchor("iscourse") + // return + // } + // if(values.classroom===""||values.classroom===undefined){ + // this.scrollToAnchor("isclassroom") + // return + // } + // if(values.school===""||values.school===undefined){ + // // this.scrollToAnchor("isschool") + // return + // + // } + if (!err) { + // debugger + //新建 + // console.log('Received values of form: ', values); + + let url = "/courses.json"; + axios.post(url, { + subject_id:128, //这是带过来的值 + name: values.classroom, + class_period: values.period, + credit: parseFloat(values.credit), + start_date:values.starttime, + end_date: values.endtime, + is_public: is_public, //这是也是带过来的值 + course_module_types: values.checkboxgroup, + school:values.school + } + ).then((response) => { + if (response.status === 200) { + // this.goback + window.location.href=response.data.first_category_url; + var yslGuideone = window.localStorage.getItem('yslGuideone'); + try { + if(yslGuideone=== null){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + if(yslGuideone=== undefined){ + window.localStorage.setItem('yslGuideone', "true"); + return + } + }catch (e) { + + } + } + }).catch((error) => { + console.log(error) + }) + } + }); + } + + } + + goback = () => { + + // if(this.props.match.params.coursesId===undefined){ + // this.props.history.push("/courses"); + // }else{ + // this.props.history.push(this.props.current_user.first_category_url); + // } + // window.history.go(-1) + this.props.history.goBack() + } + + onCheckAllChange = (e) => { + // console.log(e.target.checked) + this.setState({ + is_public: e.target.checked == true ? 1 : 0, + }); + } + onchanges =(e)=>{ + this.setState({ + Realnamecertification:e.target.checked, + }) + // console.log(e.target.checked); + } + onchangess=(e)=>{ + this.setState({ + Professionalcertification:e.target.checked, + }) + // console.log(e.target.checked); + } + Searchvalue=(value)=>{ + + let url="/courses/search_course_list.json"; + axios.post(url,{ + search:value + }).then((result)=>{ + // console.log(result.data) + if (result.data.message===undefined) { + + this.setState({ + searchlist: result.data.course_lists, + // course:value, + + }) + } + // this.props.form.setFieldsValue({ + // course:value + // }) + }).catch((error)=>{ + console.log(error) + }) + } + handleSearch=(value)=>{ + + + if(value!=""){ + this.props.form.setFieldsValue({ + classroom:value, + // course:value + }); + this.Searchvalue(value) + } + + }; + + handleChange=(value)=>{ + + this.props.form.setFieldsValue({ + // course:value, + classroom:value + }) + }; + + handleSearchschool=(value)=>{ + + if(value!="") { + // this.props.form.setFieldsValue({ + // // school: value, + // fetching: true, + // }); + this.setState({ + fetching: true, + school: value + }) + this.getschool(value) + } + }; + + handleChangeschools=(value)=>{ + + // this.props.form.setFieldsValue({ + // // school: value, + // fetching: true, + // }); + // this.setState({ + // fetching: true + // }) + } + + handleChangeschool=(value)=>{ + + this.setState({ + school:value + }); + this.props.form.setFieldsValue({ + school:value, + }) + }; + + getschool=(value)=>{ + // this.props.form.setFieldsValue({ + // school: value + // }) + let url="/schools/school_list.json"; + axios.get(url,{ + params: { + search: value + } + }).then((result)=>{ + if(result){ + if (result.data.status===0) { + this.setState({ + searchlistscholl: result.data.school_names, + + }) + if(result.data.school_names.length!=0){ + this.setState({ + fetching: false + }) + } + } + } + }).catch((error)=>{ + console.log(error) + }) + } + showApplyForAddOrgModal = () => { + this.applyForAddOrgForm.setVisible(true) + } + render() { + let {datatime,datatimetwo,school,searchlistscholl} = this.state; + const {getFieldDecorator} = this.props.form; + const propsWithoutForm = Object.assign({}, this.props) + delete propsWithoutForm.form + const options = this.state.searchlist && this.state.searchlist.map(d => ); + const optionschool = this.state.searchlistscholl===undefined?"":this.state.searchlistscholl===null?"":this.state.searchlistscholl==="[]"?"":this.state.searchlistscholl.map(z => ); + // console.log(this.props.current_user.user_school) + // form合并了 + // console.log("获取到的数据"); + // console.log(this.state); + // console.log(this.props); + // console.log(this.props.current_user); + return ( + + +
    + + this.applyForAddOrgForm = form} schoolName={school} + {...propsWithoutForm}> + {/*提示*/} + +
    +
    +
    +

    {this.props.match.params.coursesId === undefined ? "新建课堂" : "编辑课堂"}

    + 返回 +
    + + +
    + {/*内容*/} + + + {/*
    */} + {/*
    */} + {/* */} + {/* {getFieldDecorator('course', {*/} + {/* rules: [{required: true, message: "不能为空"}],*/} + {/* })(*/} + + {/* */} + {/* {options}*/} + {/* */} + {/* )}*/} + {/* */} + {/* /!*(错误示例:数据结构2017本部;数据结构2017秋季;数据结构2017电子商务1班)*!/*/} + {/*

    */} + {/* */} + {/* 正确示例:数据结构*/} + {/*

    */} + {/*

    */} + {/* */} + {/* 错误示例:数据结构2019春*/} + {/*

    */} + {/*
    */} + {/*
    */} + {/*
    */} + {/*
    */} + + {/*
    */} + + +
    + + + {getFieldDecorator('classroom', { + rules: [{required: true, message: "不能为空"}], + })( + + + {options} + + )} + + {/*(如果本学期包含多个班级,只需创建一个课堂然后在课堂内部建立不同的分班)*/} +

    + + 正确示例:数据结构2019春季班级 +

    +

    + + 错误示例:2019春季班级数据结构 +

    +
    +
    +
    + + +
    + +
    + + + {getFieldDecorator("period", + { + rules:[{ + required:false, + pattern: new RegExp(/^[0-9]\d*$/, "g"), + message: '' + }], + getValueFromEvent: (event) => { + return event.target.value.replace(/\D/g,'') + }} + )( + + )} + + + + {getFieldDecorator("credit", + { + rules:[{ + required:false, + pattern: new RegExp(/^[0-9]\d*$/, "g"), + message: '' + }], + getValueFromEvent: (event) => { + return event.target.value.replace(/\D/g,'') + }} + )( + + )} + + + {getFieldDecorator("starttime", { + rules: [{type: 'object',required: true, message: "开始时间不能为空"}], + })( + + + + )} + + + {getFieldDecorator("endtime", { + rules: [{type: 'object',required: true, message: "结束时间不能为空"}], + })( + + + + )} + +
    + +
    + + + {getFieldDecorator("checkboxgroup", { + initialValue: [ + "announcement","online_learning","shixun_homework", "exercise", + ], + })( + + 公告栏 + 在线学习 + 实训作业 + 普通作业 + 试卷 + 问卷 + 资源 + 讨论 + 分班 + + )} + +
    + {/*
    */} + {/* */} + {/* */} + {/* {getFieldDecorator("Realnamecertification")(*/} + {/* 已实名认证*/} + {/* // */} + {/* // 已实名认证*/} + {/* // 已职业认证 (勾选,则通过邀请码加入课堂的用户,需要完成相关认证才能加入课堂)*/} + {/* // */} + {/* )}*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* {getFieldDecorator("Professionalcertification")(*/} + {/* 已职业认证 (勾选,则通过邀请码加入课堂的用户,需要完成相关认证才能加入课堂)*/} + {/* )}*/} + {/* */} + {/* */} + {/*
    */} + {/*
    */} + {/* */} + {/* {getFieldDecorator("publicclass")(*/} + {/* 公开课堂*/} + {/* )}*/} + {/* (选中后本课堂对所有用户可见,否则仅本课堂成员可见)*/} + {/* */} + {/*
    */} + +
    + + {getFieldDecorator('school', { + rules: [{required: true, message: "不能为空"}], + })( + + {optionschool} + + )} + + {/*(输入内容出现匹配的下拉菜单←同账号管理的单位信息填写)*/} + +
    +
    + + {searchlistscholl.length===0&&this.state.fetching===true?
    + + 未找到包含“{school}”的高校, + 申请新增 + +
    :""} + +
    + + + +
    + +
    + + {/*提交*/} + 取消 +
    +
    +
    +
    +
    +
    +
    + +
    + + ) + } +} +const WrappedCoursesNewAppGoldclass = Form.create({name: 'goldsubject'})(Goldsubject); + +export default WrappedCoursesNewAppGoldclass; + + diff --git a/public/react/src/modules/courses/shixunHomework/CommitSummary.js b/public/react/src/modules/courses/shixunHomework/CommitSummary.js index fcd8ef1e9..129e020e9 100644 --- a/public/react/src/modules/courses/shixunHomework/CommitSummary.js +++ b/public/react/src/modules/courses/shixunHomework/CommitSummary.js @@ -191,7 +191,7 @@ class CommitSummary extends Component{ font-feature-settings: 'tnum'; /* margin-bottom: 24px; */ vertical-align: top; - } + } ` } diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 8ba9b8ac2..a37e58a92 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -2412,7 +2412,7 @@ class Listofworksstudentone extends Component { console.log(error) }); - } + }; // // setComputeTime=()=>{ // this.setState({ diff --git a/public/react/src/modules/courses/shixunHomework/guide.css b/public/react/src/modules/courses/shixunHomework/guide.css index cd7ec9b0b..cc6fd8ee8 100755 --- a/public/react/src/modules/courses/shixunHomework/guide.css +++ b/public/react/src/modules/courses/shixunHomework/guide.css @@ -511,7 +511,7 @@ height: 53%; } .ysldiv71024{ - margin-top: 31%; + margin-top: 31% ; margin-left: 27%; margin-right: 0; height: 40%; diff --git a/public/react/src/modules/home/shixunsHome.js b/public/react/src/modules/home/shixunsHome.js index 6abc71747..0a18492cd 100644 --- a/public/react/src/modules/home/shixunsHome.js +++ b/public/react/src/modules/home/shixunsHome.js @@ -230,7 +230,7 @@ class ShixunsHome extends Component {
    {item.tag_name} - + {/**/}
    @@ -301,7 +301,7 @@ class ShixunsHome extends Component {
    {item.tag_name} - + {/**/}
    diff --git a/public/react/src/modules/modals/Jointheclass.js b/public/react/src/modules/modals/Jointheclass.js new file mode 100644 index 000000000..f61b1cbbe --- /dev/null +++ b/public/react/src/modules/modals/Jointheclass.js @@ -0,0 +1,70 @@ +import React, { Component } from 'react'; +import { Modal} from 'antd'; +import axios from 'axios'; +//加入金品课堂 +class Jointheclass extends Component { + + constructor(props) { + super(props); + } + + componentDidMount() { + // console.log("加入金品课堂"); + // console.log(this.props); + + } + + modalCancel=()=>{ + this.props.ysljoinmodalCancel(); + }; + + setDownload=()=>{ + var id=this.props.match.params.coursesId + + var url = `/courses/${id}/join_excellent_course.json`; + axios.post(url).then((result) => { + if(result){ + if(result.data){ + if(result.data.status === 0){ + this.props.showNotification(result.data.message); + this.props.ysljoinmodalCanceltwo(); + }else { + this.props.showNotification(result.data.message); + } + } + + } + }).catch((error) => { + console.log(error) + }) + + } + + + render() { + // console.log("加入金品课堂2"); + // console.log(this.props); + return( + +
    +

    是否确认该加入课堂?

    + +
    +
    + ) + } +} + +export default Jointheclass; \ No newline at end of file diff --git a/public/react/src/modules/paths/PathDetail/DetailTop.css b/public/react/src/modules/paths/PathDetail/DetailTop.css index 76b35177a..17ff8507f 100644 --- a/public/react/src/modules/paths/PathDetail/DetailTop.css +++ b/public/react/src/modules/paths/PathDetail/DetailTop.css @@ -1,3 +1,46 @@ -.userbluebgfont{ - color:#fff !important; +.userbluebgfont{ + color:#fff !important; +} + +.kaike{ + border-radius: 4px; + border: 1px solid rgba(255,255,255); + padding: 0px 10px; + cursor: pointer; + font-size: 14px; + display: block; + width: 120px; + text-align: center; + height: 40px; + line-height: 40px!important; + border-radius: 4px; + box-sizing: border-box; +} +.userNavs{ + line-height: 96px; + background: #fff; + height:96px; + background:rgba(255,255,255,1); + box-shadow:3px 5px 11px 1px rgba(230,230,230,0.5); + border-radius:4px; +} + +.userNavs li { + display: inline-block; + padding: 0 30px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.newbianji1{ + font-size: 16px !important; + margin-right: 10px; + color: #4CACFF; + margin-bottom: 3px; + display: inline-block; +} + +.solidright{ + border-right: 1px solid #000; + height: 42px; } \ No newline at end of file diff --git a/public/react/src/modules/paths/PathDetail/DetailTop.js b/public/react/src/modules/paths/PathDetail/DetailTop.js index 701a2a3da..902a6d8bf 100644 --- a/public/react/src/modules/paths/PathDetail/DetailTop.js +++ b/public/react/src/modules/paths/PathDetail/DetailTop.js @@ -1,5 +1,5 @@ import React,{ Component } from "react"; -import { Modal,Radio,Input,Tooltip } from "antd"; +import { Modal,Radio,Input,Tooltip, Menu, Dropdown, Icon,Breadcrumb } from "antd"; import { BrowserRouter as Router, Route, Link } from "react-router-dom"; import SendPanel from "./sendPanel.js"; import { getImageUrl } from 'educoder'; @@ -20,10 +20,25 @@ class DetailTop extends Component{ Modalsbottomval:'', loadtype:false, deletepathtype:false, - cardsModalsavetype:false + cardsModalsavetype:false, + MenuItemskey:1, + courseslist:[] } } - + componentDidMount(){ + let courseslist=[] + this.props.courses.map((item,key)=>{ + if(1===key+1){ + return( + courseslist.push(item) + ) + } + }) + this.setState({ + courseslist:courseslist + }) + console.log(courseslist) + } allow_deletepath=()=>{ this.setState({ Modalstype:true, @@ -141,6 +156,29 @@ class DetailTop extends Component{ }) } + onVisibleChanges=(type)=>{ + this.setState({ + onVisibleChangestype:type + }) + } + + MenuItems=(keys)=>{ + let courseslist=[] + this.props.courses.map((item,key)=>{ + if(keys===key+1){ + return( + courseslist.push(item) + ) + } + }) + + console.log(courseslist) + + this.setState({ + MenuItemskey:keys, + courseslist:courseslist + }) + } render(){ let{detailInfoList}=this.props; let{Modalstype,Modalstopval,cardsModalcancel,cardsModalsave,Modalsbottomval,cardsModalsavetype,loadtype}=this.state; @@ -150,8 +188,28 @@ class DetailTop extends Component{ lineHeight: '30px', }; - return( -
    + + //
    + + let menu = ( + + {this.props.courses&&this.props.courses.map((item,key)=>{ + return( + + this.MenuItems(key+1)}> + 第{key+1}次开课 + + + ) + })} + + ); + + + + return( + +
    + {/*
    */} { detailInfoList && -
    +
    {detailInfoList.name} - + + {this.props.courses===undefined?"": + + 开放课程 + } {detailInfoList===undefined?"":detailInfoList.allow_statistics===true? @@ -178,15 +259,15 @@ class DetailTop extends Component{ :"" } - {detailInfoList===undefined?"":detailInfoList.allow_statistics===true? + {detailInfoList===undefined?"":detailInfoList.allow_statistics===true?this.props.courses===undefined? 学习统计 - :"" + :"":"" } - { detailInfoList.allow_send === true && - + { detailInfoList.allow_send === true?this.props.courses===undefined? + :"":"" }
    @@ -202,7 +283,7 @@ class DetailTop extends Component{ { detailInfoList.member_count!=0 ?
  • 学习人数{detailInfoList.member_count}
  • : ""} } -
    + {this.props.courses===undefined?
    {detailInfoList===undefined?"":detailInfoList.allow_delete===true?申请发布:"" + 申请发布:"" } { detailInfoList.publish_status===1 && detailInfoList.allow_statistics===true? - 撤销申请:"" + 撤销申请:"" } { detailInfoList.publish_status===2 && detailInfoList.allow_statistics===true? - 撤销发布:"" + 撤销发布:"" } -
    +
    :""} + + + {this.props.courses===undefined?"":detailInfoList.is_creator===true?
    + 开课 + + 学习统计 + +
    :""} +
    + + {/*{this.props.courses===undefined||this.props.courses.length===0?"":
    */} + {this.props.courses===undefined?"":
    + +
  • + + + + {this.state.MenuItemskey}次开课 + + +
  • + +
  • + {this.state.courseslist.map((item,key)=>{ + // course_id: 1309 + // course_identity: 5 + // course_status: {status: 1, time: "进行至第5周,共1642周"} + // first_category_url: "/courses/1309/informs" + return( +
    + +
    +
    + 开课时间: +
    +
    + {item.start_date} +
    +
    +
    +
    + + +
    +
    + 结课时间: +
    +
    + {item.end_date} +
    +
    +
    +
    + + +
    +
    + 报名人数: +
    +
    + {item.student_count}人 +
    +
    +
    +
    + ) + }) + } + +
  • +
  • + + {this.state.courseslist.map((item,key)=>{ + + return( +
    + {item.course_status.status===0?即将开课:""} + {item.course_status.status===1?{item.course_status.time}:""} + {item.course_status.status===2? + detailInfoList.is_creator===true?已结束:item.course_identity<6? + 已结束:"":""} + + + {item.course_status.status===0? + detailInfoList.is_creator===true? + 进入课堂 + :item.course_identity<6?
    报名成功
    + :立即报名:""} + + + {item.course_status.status===1? + detailInfoList.is_creator===true? + 进入课堂 + :item.course_identity<6? + 立即学习 + :立即加入:""} + + {item.course_status.status===2? + detailInfoList.is_creator===true? + 进入课堂 + :item.course_identity<6? + 进入课堂 + :
    已结束
    :""} + +
    + )})} + + +
  • +
    } +
    } + + +
    ) diff --git a/public/react/src/modules/paths/PathDetail/PathDetailIndex.js b/public/react/src/modules/paths/PathDetail/PathDetailIndex.js index 53eb566e6..43128e446 100644 --- a/public/react/src/modules/paths/PathDetail/PathDetailIndex.js +++ b/public/react/src/modules/paths/PathDetail/PathDetailIndex.js @@ -69,6 +69,9 @@ class PathDetailIndex extends Component{ constructor(props){ super(props) this.state={ + progress:undefined, + tags:undefined, + members:undefined, detailInfoList:undefined, clickdetailInfoListtype:false, Modalstype:false, @@ -78,6 +81,32 @@ class PathDetailIndex extends Component{ cardsModalsave:this.cardsModalsave, user_id:undefined, loadtype:false, + courses:[ + { + course_id: 1309, + first_category_url: "/courses/1309/informs", + start_date: "2019-07-16", // 开始时间 + end_date: "2050-12-31", // 结束时间 + student_count: 112, // 学习人数 + course_identity: 5, // 当前用户在该课堂的身份 + course_status: { + status: 1, // status:0:即将开课 1:进行中 2:已结束 + time: "进行至第5周,共1642周" // time:当前进度 + } + }, + { + course_id: 1319, + first_category_url: "/courses/1319/shixun_homeworks/11549", + start_date:"2019-08-16", + end_date:"2050-12-31", + student_count: 112, + course_identity: 1, + course_status: { + status: 0, + time: "" + } + } + ], items: getItems(10) } this.onDragEnd = this.onDragEnd.bind(this); @@ -95,16 +124,17 @@ class PathDetailIndex extends Component{ } const items = reorder( - this.state.detailInfoList.members, + this.state.members, result.source.index, result.destination.index ); - this.state.detailInfoList.members=items; + this.setState({ detailInfoList:this.state.detailInfoList, + members:items, items }); - console.log(this.state.detailInfoList.members) + console.log(this.state.members) console.log("items 数组数组数组数组") console.log(items) } @@ -157,13 +187,40 @@ class PathDetailIndex extends Component{ if(result.data.allow_visit===true){ this.setState({ detailInfoList:result.data, - items: getItems(result.data.members.length), + // courses:result.data.courses + // items: getItems(result.data.members.length), }) } }).catch((error)=>{ console.log(error); }) + + + let righturl="/paths/"+pathid+"/right_banner.json"; + axios.get(righturl).then((result)=>{ + if (result.data.status === 407 || result.data.status === 401) { + debugger + return; + } + + if (result.data.status === 403) { + debugger + // window.location.href = "/403"; + return; + } + + this.setState({ + // detailInfoList:result.data, + tags:result.data.tags, + progress:result.data.progress, + members:result.data.members, + items: getItems(result.data.members.length), + }) + + }).catch((error)=>{ + console.log(error); + }) } updatadetailInfoList=()=>{ @@ -282,9 +339,10 @@ class PathDetailIndex extends Component{ console.log("上移"); // console.log(this.state.detailInfoList.members); // console.log(response); - this.state.detailInfoList.members=response.data.members; + this.setState({ detailInfoList:this.state.detailInfoList, + members:response.data.members }); // console.log(this.state.detailInfoList.members); @@ -307,9 +365,9 @@ class PathDetailIndex extends Component{ console.log("下移"); // console.log(this.state.detailInfoList.members); // console.log(response); - this.state.detailInfoList.members=response.data.members; this.setState({ detailInfoList:this.state.detailInfoList, + members:response.data.members }); // console.log(this.state.detailInfoList.members); } @@ -329,7 +387,11 @@ class PathDetailIndex extends Component{ Modalsbottomval, cardsModalcancel, cardsModalsave, - loadtype + loadtype, + progress, + members, + tags, + courses, } = this.state @@ -403,14 +465,14 @@ class PathDetailIndex extends Component{ }
    - {detailInfoList === undefined ? "" : detailInfoList.tags === null ? "": + {tags === undefined ? "" :tags === null ? "":
    -

    技能标签 {detailInfoList.tags.length}

    +

    技能标签 {tags.length}

    { - detailInfoList.tags && detailInfoList.tags.map((item,key)=>{ + tags && tags.map((item,key)=>{ return( {item.tag_name} ) @@ -420,7 +482,7 @@ class PathDetailIndex extends Component{
    -
    15&&clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 fr":"newsubscript mb9 color-grey-9 none"} +
    15&&clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 fr":"newsubscript mb9 color-grey-9 none"} onClick={()=>this.clickNewsubscript(0)} >...
    @@ -435,29 +497,29 @@ class PathDetailIndex extends Component{
    } { - this.props.checkIfLogin()===false?"":detailInfoList === undefined ? "" : detailInfoList.progress === null ? "" : + this.props.checkIfLogin()===false?"123213":progress === undefined ? "" : progress === null ? "" :

    我的进展 - {detailInfoList.progress.my_score} / {detailInfoList.progress.all_score} + {progress.my_score} / {progress.all_score}

    - 已学 {detailInfoList.progress.learned}% - 学习耗时{this.timeStamp(detailInfoList.progress.time)} + 已学 {progress.learned}% + 学习耗时{this.timeStamp(progress.time)}

    -
    +
    } { - detailInfoList ===undefined ?"":detailInfoList.members === null ?"": + members ===undefined ?"":members === null ?"":

    教学团队

    - { detailInfoList===undefined? - detailInfoList.members && detailInfoList.members.map((item,key)=>{ + { members===undefined? + members && members.map((item,key)=>{ return( ) }) - :detailInfoList.allow_add_member===true? - detailInfoList.members && detailInfoList.members.map((item,key)=>{ + :detailInfoList===undefined?"":detailInfoList.allow_add_member===true? + members && members.map((item,key)=>{ return(
    @@ -501,7 +563,7 @@ class PathDetailIndex extends Component{ { detailInfoList===undefined?"":detailInfoList.allow_add_member===true?
    {key!=0?:""} - {key+1!=detailInfoList.members.length?:""} + {key+1!= members&&members.length?:""}
    :"" } @@ -510,7 +572,7 @@ class PathDetailIndex extends Component{
    ) }) - : detailInfoList.members && detailInfoList.members.map((item,key)=>{ + : members && members.map((item,key)=>{ return(
    diff --git a/public/react/src/modules/paths/ShixunPathCard.js b/public/react/src/modules/paths/ShixunPathCard.js index 1b0759d1f..79b9c1e13 100644 --- a/public/react/src/modules/paths/ShixunPathCard.js +++ b/public/react/src/modules/paths/ShixunPathCard.js @@ -13,6 +13,33 @@ class ShixunPathCard extends Component{ let {pathList}=this.props; return(
    + + + { pathList && pathList.length > 0 ? ( @@ -22,23 +49,31 @@ class ShixunPathCard extends Component{ return(
    + { item.tag_name === null ? "" :
    {item.tag_name} - + {/**/}
    } - -
    + + { + item.excellent === false ? "" : +
    + 开放课程 +
    + } + +

    非试用内容,需要授权

    {/*target="_blank"*/} - 13?1543211263 + 详情图片

    @@ -77,4 +112,5 @@ class ShixunPathCard extends Component{ ) } } -export default ShixunPathCard; \ No newline at end of file +export default ShixunPathCard; + diff --git a/public/react/src/modules/tpm/TPMFork/TPMForklist.js b/public/react/src/modules/tpm/TPMFork/TPMForklist.js index b76683837..704cfad99 100644 --- a/public/react/src/modules/tpm/TPMFork/TPMForklist.js +++ b/public/react/src/modules/tpm/TPMFork/TPMForklist.js @@ -107,7 +107,7 @@ export default class TPMFork_listComponent extends Component {

    {item.tag_name} - + {/**/}
    diff --git a/public/react/src/modules/tpm/shixuns/ShixunCard.js b/public/react/src/modules/tpm/shixuns/ShixunCard.js index ae6aa696d..2bb6a670a 100644 --- a/public/react/src/modules/tpm/shixuns/ShixunCard.js +++ b/public/react/src/modules/tpm/shixuns/ShixunCard.js @@ -88,7 +88,7 @@ class ShixunCard extends Component { item.tag_name === null ? "":
    {item.tag_name} - + {/**/}
    }
    diff --git a/public/react/src/modules/user/usersInfo/InfosPath.js b/public/react/src/modules/user/usersInfo/InfosPath.js index d2ed2900c..cb02ed604 100644 --- a/public/react/src/modules/user/usersInfo/InfosPath.js +++ b/public/react/src/modules/user/usersInfo/InfosPath.js @@ -159,7 +159,9 @@ class InfosPath extends Component{ return(
    this.turnToCourses(`/paths/${item.id}`)}> { - item.tag &&
    {item.tag}
    + item.tag &&
    {item.tag} + {/**/} +
    }
    Subject12
    diff --git a/public/react/src/modules/user/usersInfo/InfosShixun.js b/public/react/src/modules/user/usersInfo/InfosShixun.js index b86e69983..94ef3c29b 100644 --- a/public/react/src/modules/user/usersInfo/InfosShixun.js +++ b/public/react/src/modules/user/usersInfo/InfosShixun.js @@ -1,203 +1,205 @@ -import React, { Component } from 'react'; -import { SnackbarHOC } from 'educoder'; -import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; -import {Tooltip,Menu,Pagination,Spin} from 'antd'; -import Loadable from 'react-loadable'; -import Loading from '../../../Loading'; -import NoneData from '../../courses/coursesPublic/NoneData' -import axios from 'axios'; -import {getImageUrl,setImagesUrl} from 'educoder'; -import { TPMIndexHOC } from '../../tpm/TPMIndexHOC'; -import { CNotificationHOC } from '../../courses/common/CNotificationHOC' -import "./usersInfo.css" - -import Create from './publicCreatNew' - -class InfosShixun extends Component{ - constructor(props){ - super(props); - this.state={ - category:undefined, - page:1, - sort_by:'time', - status:undefined, - per_page:16, - isSpin:false, - - totalCount:undefined, - data:undefined - } - } - - componentDidMount=()=>{ - this.setState({ - isSpin:true - }) - let{category,status,sort_by,page}=this.state; - this.getCourses(category,status,sort_by,page); - } - - getCourses=(category,status,sort_by,page)=>{ - let url=`/users/${this.props.match.params.username}/shixuns.json`; - axios.get((url),{params:{ - category, - status, - sort_by, - page, - per_page:this.props.is_current && category && page ==1?17:16 - }}).then((result)=>{ - if(result){ - this.setState({ - totalCount:result.data.count, - data:result.data, - isSpin:false - }) - } - }).catch((error)=>{ - console.log(error); - }) - } - - //切换种类 - changeCategory=(cate)=>{ - this.setState({ - category:cate, - status:undefined, - page:1, - isSpin:true - }) - let{sort_by}=this.state; - this.getCourses(cate,undefined,sort_by,1); - } - // 切换状态 - changeStatus=(status)=>{ - this.setState({ - status, - page:1, - isSpin:true - }) - let{category,sort_by}=this.state; - this.getCourses(category,status,sort_by,1); - } - //切换页数 - changePage=(page)=>{ - this.setState({ - page, - isSpin:true - }) - let{category,sort_by,status}=this.state; - this.getCourses(category,status,sort_by,page); - } - - // 进入课堂 - turnToCourses=(url)=>{ - this.props.history.push(url); - } - - - // 切换排序方式 - changeOrder= (sort)=>{ - this.setState({ - sort_by:sort, - isSpin:true - }) - let{category,status,page}=this.state; - this.getCourses(category,status,sort,page); - } - - render(){ - let{ - category, - status, - sort_by, - page, - data, - totalCount, - isSpin - } = this.state; - let isStudent = this.props.isStudent(); - let is_current=this.props.is_current; - return( -
    - - - { - category && category == "manage" && is_current && - - } - { - category && category == "study" && is_current && - - } -
    - 共参与{totalCount}个{category?category=="manage"?"发布":"学习":"实训"} -
    -
  • - {sort_by=="time"?"时间最新":"语言类别"} -
      -
    • this.changeOrder("time")}>时间最新
    • -
    • this.changeOrder("language")}>语言类别
    • -
    -
  • -
    -
    -
    - { - page == 1 && is_current && !category && this.props.current_user && this.props.current_user.user_identity != "学生" ? - :"" - } - { - (!data || data.shixuns.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && - } - { - data && data.shixuns && data.shixuns.map((item,key)=>{ - return( -
    this.turnToCourses(`/shixuns/${item.identifier}/challenges`)}> - { - item.tag &&
    {item.tag}
    - } - - - -
    -

    - {item.name} -

    -
    -

    -
    -

    - 已完成 {item.finished_challenges_count} / {item.challenges_count} -

    -
    -
    - ) - }) - } -
    - { - totalCount > 15 && -
    - -
    - } -
    -
    - ) - } -} +import React, { Component } from 'react'; +import { SnackbarHOC } from 'educoder'; +import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; +import {Tooltip,Menu,Pagination,Spin} from 'antd'; +import Loadable from 'react-loadable'; +import Loading from '../../../Loading'; +import NoneData from '../../courses/coursesPublic/NoneData' +import axios from 'axios'; +import {getImageUrl,setImagesUrl} from 'educoder'; +import { TPMIndexHOC } from '../../tpm/TPMIndexHOC'; +import { CNotificationHOC } from '../../courses/common/CNotificationHOC' +import "./usersInfo.css" + +import Create from './publicCreatNew' + +class InfosShixun extends Component{ + constructor(props){ + super(props); + this.state={ + category:undefined, + page:1, + sort_by:'time', + status:undefined, + per_page:16, + isSpin:false, + + totalCount:undefined, + data:undefined + } + } + + componentDidMount=()=>{ + this.setState({ + isSpin:true + }) + let{category,status,sort_by,page}=this.state; + this.getCourses(category,status,sort_by,page); + } + + getCourses=(category,status,sort_by,page)=>{ + let url=`/users/${this.props.match.params.username}/shixuns.json`; + axios.get((url),{params:{ + category, + status, + sort_by, + page, + per_page:this.props.is_current && category && page ==1?17:16 + }}).then((result)=>{ + if(result){ + this.setState({ + totalCount:result.data.count, + data:result.data, + isSpin:false + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + + //切换种类 + changeCategory=(cate)=>{ + this.setState({ + category:cate, + status:undefined, + page:1, + isSpin:true + }) + let{sort_by}=this.state; + this.getCourses(cate,undefined,sort_by,1); + } + // 切换状态 + changeStatus=(status)=>{ + this.setState({ + status, + page:1, + isSpin:true + }) + let{category,sort_by}=this.state; + this.getCourses(category,status,sort_by,1); + } + //切换页数 + changePage=(page)=>{ + this.setState({ + page, + isSpin:true + }) + let{category,sort_by,status}=this.state; + this.getCourses(category,status,sort_by,page); + } + + // 进入课堂 + turnToCourses=(url)=>{ + this.props.history.push(url); + } + + + // 切换排序方式 + changeOrder= (sort)=>{ + this.setState({ + sort_by:sort, + isSpin:true + }) + let{category,status,page}=this.state; + this.getCourses(category,status,sort,page); + } + + render(){ + let{ + category, + status, + sort_by, + page, + data, + totalCount, + isSpin + } = this.state; + let isStudent = this.props.isStudent(); + let is_current=this.props.is_current; + return( +
    + + + { + category && category == "manage" && is_current && + + } + { + category && category == "study" && is_current && + + } +
    + 共参与{totalCount}个{category?category=="manage"?"发布":"学习":"实训"} +
    +
  • + {sort_by=="time"?"时间最新":"语言类别"} +
      +
    • this.changeOrder("time")}>时间最新
    • +
    • this.changeOrder("language")}>语言类别
    • +
    +
  • +
    +
    +
    + { + page == 1 && is_current && !category && this.props.current_user && this.props.current_user.user_identity != "学生" ? + :"" + } + { + (!data || data.shixuns.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && + } + { + data && data.shixuns && data.shixuns.map((item,key)=>{ + return( +
    this.turnToCourses(`/shixuns/${item.identifier}/challenges`)}> + { + item.tag &&
    {item.tag} + {/**/} +
    + } + + + +
    +

    + {item.name} +

    +
    +

    +
    +

    + 已完成 {item.finished_challenges_count} / {item.challenges_count} +

    +
    +
    + ) + }) + } +
    + { + totalCount > 15 && +
    + +
    + } +
    +
    + ) + } +} export default InfosShixun; \ No newline at end of file diff --git a/public/stylesheets/educoder/edu-all.css b/public/stylesheets/educoder/edu-all.css index 6b156558f..a07102d67 100644 --- a/public/stylesheets/educoder/edu-all.css +++ b/public/stylesheets/educoder/edu-all.css @@ -114,8 +114,25 @@ em.vertical-line{display: inline-block;width: 2px;background: #999;height: 10px} .smallSquare:nth-child(3n+0){margin-right: 0px;} .partimg{height: 180px;width: 100%;border-radius: 6px 6px 0px 0px;} /*块状列表上面的绿色标签*/ -.tag-green{position: absolute;left: 0px;top:20px;} -.tag-green .tag-name{display: block;width: auto;background-image: url("/images/educoder/tag1.png");background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left;} +.tag-green{ + position: absolute; + left: 15px; + bottom: 95px;} +.tag-green .tag-name{display: block;width: auto; + /*background-image: url("/images/educoder/tag1.png");*/ + background: #000000; + border: 1px solid #fff; + border-radius: 3px; + font-size: 14px; + background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left;} +.tag-orange{position: absolute;right: 0px;top:20px;} +.tag-orange .tag-name{display: block;width: auto;background-color:#FF6800; + background-size: 100% 100%;padding: 0px 8px;color: #fff;float: left; + height: 28px; + line-height: 28px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} /*发送至弹框里的下拉框*/ .downSelectOption{position: relative;height: 35px;} .downSelectOption .showOption{background-color: #F4F4F4;border: 1px solid #EAEAEA;width: 100%;padding: 5px 40px 5px 5px;outline: none;height: 100%;box-sizing: border-box;} diff --git a/public/stylesheets/educoder/edu-main.css b/public/stylesheets/educoder/edu-main.css index c23c3d350..4aa426192 100644 --- a/public/stylesheets/educoder/edu-main.css +++ b/public/stylesheets/educoder/edu-main.css @@ -551,7 +551,7 @@ a:hover.task-btn-orange{background: #459BE6;} a.user_bluebg_btn{background-color:#4CACFF;color: #fff;} a.user_orangebg_btn{background-color:#FF6800;color: #fff;} a.user_greybg_btn{background-color:#747A7F;color: #fff;} - +/*.user_white_btn{border: 1px solid #ffffff;color: #ffffff!important;}*/ .pointer{cursor: pointer} .cdefault{cursor: default}