import React, { Component } from 'react'; import { SnackbarHOC } from 'educoder'; import { Route, Switch } from 'react-router-dom'; import { withRouter } from 'react-router' import { Loadable } from 'educoder'; import Loading from '../../Loading'; import axios from 'axios'; import TPMIndexHOC from '../tpm/TPMIndexHOC'; import CNotificationHOC from './common/CNotificationHOC' import ImageLayerOfCommentHOC from '../page/layers/ImageLayerOfCommentHOC' import "./css/Courses.css" //引入对应跳转的组件 //里面有资源 const ListPageIndex = Loadable({ loader: () => import('./ListPageIndex'), loading: Loading, }) //课堂首页 const CoursesHome = Loadable({ loader: () => import('./coursesHome/CoursesHome'), loading: Loading, }) //课堂详情页 const CoursesDetail = Loadable({ loader: () => import('./coursesDetail/CoursesDetail'), loading: Loading, }) // 课堂讨论 const BoardIndex = Loadable({ loader: () => import('./BoardIndex'), loading: Loading, }) const GraduationTopicsDetail = Loadable({ loader: () => import('./graduation/topics/GraduateTopicDetail'), loading: Loading, }) const GraduateTopicPostWorksNew = Loadable({ loader: () => import('./graduation/topics/GraduateTopicPostWorksNew'), loading: Loading, }) const GraduateTopicNew = Loadable({ loader: () => import('./graduation/topics/GraduateTopicNew'), loading: Loading, }) //新建实训 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, }) //实训作业 const ShixunHomework = Loadable({ loader: () => import('./shixunHomework/shixunHomework'), loading: Loading, }) //实训作业提交总结 const CommitSummary = Loadable({ loader: () => import('./shixunHomework/CommitSummary'), loading: Loading, }) //实训报告 const ShixunWorkReport = Loadable({ loader: () => import('./shixunHomework/ShixunWorkReport'), loading: Loading, }) //实训查重 const ShixunStudentWork = Loadable({ loader: () => import('./shixunHomework/ShixunStudentWork'), loading: Loading, }) //实训查重详情 const ShixunWorkDetails = Loadable({ loader: () => import('./shixunHomework/ShixunWorkDetails'), loading: Loading, }) //问卷 const Poll = Loadable({ loader: () => import('./poll/Poll'), loading: Loading, }) //问卷新建 const PollNew = Loadable({ loader: () => import('./poll/PollNew'), loading: Loading, }) //问卷答题 const PollInfo = Loadable({ loader: () => import('./poll/PollInfo'), loading: Loading, }) //问卷详情 const PollDetail = Loadable({ loader: () => import('./poll/PollDetailIndex'), loading: Loading, }) const Testpapersettinghomepage = Loadable({ loader: () => import('./exercise/Testpapersettinghomepage'), loading: Loading, }) const ExerciseNew = Loadable({ loader: () => import('./exercise/ExerciseNew'), loading: Loading, }) const ExerciseReviewAndAnswer = Loadable({ loader: () => import('./exercise/ExerciseReviewAndAnswer'), loading: Loading, }) //学生列表 const Studentshavecompletedthelist = Loadable({ loader: () => import('./exercise/Studentshavecompletedthelist'), loading: Loading, }) //教师列表 const TeacherList = Loadable({ loader: () => import('./members/teacherList'), loading: Loading, }) //学生列表 const StudentsList = Loadable({ loader: () => import('./members/studentsList'), loading: Loading, }) //普通作业 const CommonWork = Loadable({ loader: () => import('./busyWork/Index'), loading: Loading, }) const GroupWork = Loadable({ loader: () => import('./busyWork/IndexGroup'), loading: Loading, }) // // //分组作业 // const GroupWork= Loadable({ // loader: () => import('./busyWork/GroupWork'), // loading: Loading, // }) //毕设任务列表新建 const GraduationTaskseditApp = Loadable({ loader: () => import('./graduation/tasks/GraduationTasksedit'), loading: Loading, }) //毕设任务列表编辑 const GraduationTasksnewApp = Loadable({ loader: () => import('./graduation/tasks/GraduationTasksnew'), loading: Loading, }) //毕设任务列表设置 const GraduationTasksquestions = Loadable({ loader: () => import('./graduation/tasks/GraduationTaskssettingquestions'), loading: Loading, }) //毕设任务列表 const GraduationTaskssettinglist = Loadable({ loader: () => import('./graduation/tasks/GraduationTaskDetail'), loading: Loading, }) //毕业任务设置 const GraduationTaskssetting = Loadable({ loader: () => import('./graduation/tasks/GraduationTaskssetting'), loading: Loading, }) // 评阅列表 const GraduationTasksappraise = Loadable({ loader: () => import('./graduation/tasks/GraduationTasksappraise'), loading: Loading, }) //创建作品 const GraduationTasksSubmitnewApp = Loadable({ loader: () => import('./graduation/tasks/GraduationTasksSubmitnew'), loading: Loading, }) //修改作品 const GraduationTasksSubmiteditApp = Loadable({ loader: () => import('./graduation/tasks/GraduationTasksSubmitedit'), loading: Loading, }) //排序 const Ordering = Loadable({ loader: () => import('../../modules/courses/ordering/Ordering'), loading: Loading, }); class CoursesIndex extends Component { constructor(props) { super(props) this.state = { coursesids: undefined, coursesidsfun: this.coursesidsfun, updataleftNavfun: this.updataleftNav, course_modules: undefined, hidden_modules: [], is_teacher: false, isaloadtype: true, coursesidtype: undefined, locationNavfun: this.locationNav, unlocationNavfun: this.unlocationNavfun } } coursesidsfun = (id, type) => { this.setState({ coursesids: id, coursesidtype: type }) } componentDidMount() { // this.updataleftNav() this.historyArray = [window.location.pathname]; this.props.history.listen(location => { this.historyArray.unshift(window.location.pathname); this.historyArray.length = 2; //Do your stuff here }); } //更新左边课堂导航 updataleftNav = () => { let query = this.props.location.pathname let { isaloadtype } = this.state; let types = isaloadtype === false ? true : false const type = query.split('/'); let id = parseInt(type[2]) if (isNaN(id)) { return } const querys = this.props.location.search; var dataqueryss = {} try { var foqus = this.foo(querys); if (JSON.stringify(foqus) === "{}") { this.setState({ dataquerys: {}, }); } else { this.setState({ dataquerys: foqus, }); dataqueryss = foqus; } } catch (e) { this.setState({ dataquerys: {}, }) } // let id=this.props.match.params.coursesId; let url = "/courses/" + id + "/left_banner.json" axios.get(url, { params: dataqueryss } ).then((response) => { if (response != undefined) { if (response.data && response.data) { this.setState({ course_modules: response.data.course_modules, hidden_modules: response.data.hidden_modules, is_teacher: response.data.is_teacher, isaloadtype: types }) this.locationNav(response.data.course_modules) } } }) }; foo = (url) => { var json = {}; var regExp = /[\?\&](\w+)(=?)(\w*)/g; var arr; do { arr = regExp.exec(url); // console.log(arr); // arr = [完整的字符串, key, 等号或'', value或''] if (arr) { var key = arr[1]; var value = arr[3]; // arr[2] === ''时, value = undefined if (!arr[2]) value = undefined; json[key] = value; } } while (arr); return json; }; locationNav = (list) => { if (list) { let url = this.props.location.pathname; const type = url.split('/'); let filesId = parseInt(type[4]); // let urls=this.props.match.url var lists = list; lists.forEach((item, index) => { if (url === item.category_url) { this.setState({ indexs: index, mainurl: item.category_url }) this.coursesidsfun(item.id, "node") } else { if (item.second_category != undefined && item.second_category.length != 0) { item.second_category.forEach((iem, key) => { if (url === iem.second_category_url) { if (parseInt(filesId) === iem.category_id || parseInt(filesId) === item.id) { this.setState({ indexs: index, url: url, mainurl: item.category_url }) } this.coursesidsfun(item.id, "child") } }) } } }) } } unlocationNavfun = (val) => { this.setState({ indexs: val, }) } render() { const common = { previousPathName: this.historyArray && this.historyArray[1] } return ( {/*排序*/} () } > {/*视频列表*/} () } > () } > {/* 资源列表页 */} () } > () } > () } > {/*课堂讨论*/} () } > {/* 毕业设计 */} {/* 毕设问答 */} () } > {/* 毕设选题新建页 */} () }> {/* 毕设选题编辑页*/} () }> {/* 毕设选题详情页 */} () } > {/* 毕设选题列表 */} () }> {/*————————————————————————————————————————————————————————————————————————————————————*/} {/* 作品评阅 https://www.trustie.net/issues/19981 */} () } > {/* 新建作品 */} () } > {/* 修改作品 */} () } > {/* 设置毕设任务 https://www.trustie.net/issues/19981 */} {/* () } > () }> */} () } > {/* 修改毕设任务 https://www.trustie.net/issues/19981 */} () } > {/* 修改毕设任务 https://www.trustie.net/issues/19981 */} () } > {/* 新建毕设任务 https://www.trustie.net/issues/19981 */} () } > {/* 新建毕设任务 https://www.trustie.net/issues/19981 */} () } > {/* 毕设任务列表 https://www.trustie.net/issues/19981 */} () } > {/*/!* 毕业设计主 https://www.trustie.net/issues/19981 *!/*/} {/* ()*/} {/*}*/} {/*>*/} {/*/!* 资源子目录 https://www.trustie.net/issues/19917 *!/*/} {/* ()*/} {/*}*/} {/*>*/} {/* 教师列表*/} () } > {/* 学生列表*/} () } > {/* 分班列表 */} () } > () } > {/* 普通作业 */} () } > {/* 子目录普通作业 */} () } > {/* 分组作业 */} () } > {/* 分组作业 */} () } > {/* 普通作业 */} () } > {/* 子普通作业 */} () } > {/* 分组作业 */} () } > {/* 分组作业 */} () } > {/* 问卷答题 */} () } > {/* 问卷详情 */} () } > {/* 问卷新建 */} () } > {/*/!* 问卷编辑 *!/*/} {/* ()*/} {/*}*/} {/*>*/} {/* 问卷 */} () } > {/* 试卷查看/评阅 */} () } > {/*试卷新建 */} () } > {/*试卷新建 */} () } > {/*试卷设置主页*/} () } > {/*学生完成列表*/} () } > {/* 试卷 */} () } > {/*实训查重详情*/} () } > () } > {/*实训查重列表*/} () } > () } > {/*实训报告*/} () } > () } > {/*教师列表*/} () } > () } > {/*实训作业page*/} () } > {/*实训作业设置*/} () } > () } > {/*/!*实训作品列表教师*!/*/} {/*提交总结*/} () } > () } > {/*实训作品列表学生未公布*/} {/* ()*/} {/* }*/} {/*>*/} {/*实训学生作品列表已公布*/} {/* ()*/} {/* }*/} {/* >*/} {/*/!*实训学生作品列表已公布*!/*/} {/* ()*/} {/* }*/} {/*>*/} {/*实训作业问答主目录*/} () } > {/*实训作业问答子目录*/} () } > {/*新建课堂*/} () } > {/*新建精品课堂*/} {/*coursesId 课堂id */} {/*id 是否是私有或者公有*/} () } > {/*修改精品课堂*/} () } > {/*修改课堂*/} () } > {/* 实训作业子页面*/} () } > {/* 实训作业页面*/} () } > {/*课堂统计列表2019.10.29 */} () } > {/*/!*实训作业and课堂详情页*!/*/} () } > {/*课堂首页*/} () } > {/**/} ) } } export default withRouter(ImageLayerOfCommentHOC({ imgSelector: '.imageLayerParent img, .imageLayerParent .imageTarget', parentSelector: '.newMain' })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(CoursesIndex)))));