|
|
|
@@ -1,529 +0,0 @@ |
|
|
|
import React, {Component} from 'react'; |
|
|
|
import logo from './logo.svg'; |
|
|
|
import './App.css'; |
|
|
|
import {LocaleProvider} from 'antd' |
|
|
|
import zhCN from 'antd/lib/locale-provider/zh_CN'; |
|
|
|
import { |
|
|
|
BrowserRouter as Router, |
|
|
|
Route, |
|
|
|
Switch |
|
|
|
} from 'react-router-dom'; |
|
|
|
import axios from 'axios'; |
|
|
|
import '@icedesign/base/dist/ICEDesignBase.css'; |
|
|
|
|
|
|
|
import '@icedesign/base/index.scss'; |
|
|
|
|
|
|
|
import LoginDialog from './modules/login/LoginDialog'; |
|
|
|
import Notcompletedysl from './modules/user/Notcompletedysl'; |
|
|
|
import Trialapplicationysl from './modules/login/Trialapplicationysl'; |
|
|
|
import Trialapplicationreview from './modules/user/Trialapplicationreview'; |
|
|
|
import Addcourses from "./modules/courses/coursesPublic/Addcourses"; |
|
|
|
import AccountProfile from"./modules/user/AccountProfile"; |
|
|
|
|
|
|
|
|
|
|
|
import Trialapplication from './modules/login/Trialapplication' |
|
|
|
|
|
|
|
import NotFoundPage from './NotFoundPage' |
|
|
|
|
|
|
|
import Loading from './Loading' |
|
|
|
|
|
|
|
import Loadable from 'react-loadable'; |
|
|
|
|
|
|
|
|
|
|
|
import moment from 'moment' |
|
|
|
|
|
|
|
import {MuiThemeProvider, createMuiTheme} from 'material-ui/styles'; |
|
|
|
|
|
|
|
// import './AppConfig' |
|
|
|
|
|
|
|
import history from './history'; |
|
|
|
|
|
|
|
import {SnackbarHOC} from 'educoder' |
|
|
|
import {initAxiosInterceptors} from './AppConfig' |
|
|
|
|
|
|
|
|
|
|
|
// !!!tpi需要这个来加载css |
|
|
|
import {TPMIndexHOC} from './modules/tpm/TPMIndexHOC'; |
|
|
|
|
|
|
|
|
|
|
|
const theme = createMuiTheme({ |
|
|
|
palette: { |
|
|
|
primary: { |
|
|
|
main: '#4CACFF', |
|
|
|
contrastText: 'rgba(255, 255, 255, 0.87)' |
|
|
|
}, |
|
|
|
secondary: {main: '#4CACFF'}, // #11cb5f This is just green.A700 as hex. |
|
|
|
}, |
|
|
|
}); |
|
|
|
// |
|
|
|
// const Trialapplication= Loadable({ |
|
|
|
// loader: () =>import('./modules/login/Trialapplication'), |
|
|
|
// loading:Loading, |
|
|
|
// }) |
|
|
|
//登入 |
|
|
|
const EducoderLogin = Loadable({ |
|
|
|
loader: () => import('./modules/login/EducoderLogin'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const TestIndex = Loadable({ |
|
|
|
loader: () => import('./modules/test'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
const IndexWrapperComponent = Loadable({ |
|
|
|
loader: () => import('./modules/page/IndexWrapper'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
const CommentComponent = Loadable({ |
|
|
|
loader: () => import('./modules/comment/CommentContainer'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
const TestMaterialDesignComponent = Loadable({ |
|
|
|
loader: () => import('./modules/test/md/TestMaterialDesign'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const TestCodeMirrorComponent = Loadable({ |
|
|
|
loader: () => import('./modules/test/codemirror/TestCodeMirror'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
const TestComponent = Loadable({ |
|
|
|
loader: () => import('./modules/test/TestRC'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const TestUrlQueryComponent = Loadable({ |
|
|
|
loader: () => import('./modules/test/urlquery/TestUrlQuery'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
const TPMIndexComponent = Loadable({ |
|
|
|
loader: () => import('./modules/tpm/TPMIndex'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const TPMShixunsIndexComponent = Loadable({ |
|
|
|
loader: () => import('./modules/tpm/shixuns/ShixunsIndex'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//实训课程(原实训路径) |
|
|
|
const ShixunPaths = Loadable({ |
|
|
|
loader: () => import('./modules/paths/Index'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//在线课堂 |
|
|
|
const CoursesIndex = Loadable({ |
|
|
|
loader: () => import('./modules/courses/Index'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const SearchPage = Loadable({ |
|
|
|
loader: () => import('./search/SearchPage'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//教学案例 |
|
|
|
const MoopCases = Loadable({ |
|
|
|
loader: () => import('./modules/moop_cases/index'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
// 课堂讨论 |
|
|
|
// const BoardIndex = Loadable({ |
|
|
|
// loader: () => import('./modules/courses/boards/BoardIndex'), |
|
|
|
// loading:Loading, |
|
|
|
// }) |
|
|
|
|
|
|
|
// //课堂普通作业&分组作业 |
|
|
|
// const CoursesWorkIndex = Loadable({ |
|
|
|
// loader: () => import('./modules/courses/busyWork/Index'), |
|
|
|
// loading:Loading, |
|
|
|
// }) |
|
|
|
// |
|
|
|
|
|
|
|
// const TPMShixunchildIndexComponent = Loadable({ |
|
|
|
// loader: () => import('./modules/tpm/shixunchild/ShixunChildIndex'), |
|
|
|
// loading: Loading, |
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
// const TPMshixunfork_listIndexComponent = Loadable({ |
|
|
|
// loader: () => import('./modules/tpm/shixunchild/Shixunfork_list'), |
|
|
|
// loading: Loading, |
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
const ForumsIndexComponent = Loadable({ |
|
|
|
loader: () => import('./modules/forums/ForumsIndex'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
// trustie plus forum |
|
|
|
// const TPForumsIndexComponent = Loadable({ |
|
|
|
// loader: () => import('./modules/tp-forums/TPForumsIndex'), |
|
|
|
// loading: Loading, |
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
// const TestPageComponent = Loadable({ |
|
|
|
// loader: () => import('./modules/page/Index'), |
|
|
|
// loading: Loading, |
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
//新建实训 |
|
|
|
const Newshixuns = Loadable({ |
|
|
|
loader: () => import('./modules/tpm/newshixuns/Newshixuns'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
//实训首页 |
|
|
|
const ShixunsHome = Loadable({ |
|
|
|
loader: () => import('./modules/home/shixunsHome'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
const CompatibilityPageLoadable = Loadable({ |
|
|
|
loader: () => import('./modules/common/CompatibilityPage'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//403页面 |
|
|
|
const Shixunauthority = Loadable({ |
|
|
|
loader: () => import('./modules/403/Shixunauthority'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
//404页面 |
|
|
|
const Shixunnopage = Loadable({ |
|
|
|
loader: () => import('./modules/404/Shixunnopage'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//500页面 |
|
|
|
const http500 = Loadable({ |
|
|
|
loader: () => import('./modules/500/http500'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
// 登录注册 |
|
|
|
const LoginRegisterPage = Loadable({ |
|
|
|
loader: () => import('./modules/user/LoginRegisterPage'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
const AccountPage = Loadable({ |
|
|
|
loader: () => import('./modules/user/AccountPage'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
// 个人主页 |
|
|
|
const UsersInfo = Loadable({ |
|
|
|
loader: () => import('./modules/user/usersInfo/Infos'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
// 兴趣页面 |
|
|
|
const Interestpage = Loadable({ |
|
|
|
loader: () => import('./modules/login/EducoderInteresse'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
//众包创新 |
|
|
|
const ProjectPackages=Loadable({ |
|
|
|
loader: () => import('./modules/projectPackages/ProjectPackageIndex'), |
|
|
|
loading: Loading, |
|
|
|
}) |
|
|
|
|
|
|
|
class App extends Component { |
|
|
|
constructor(props) { |
|
|
|
super(props) |
|
|
|
// this.state = { |
|
|
|
// isRenders:false, |
|
|
|
// } |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
componentDidMount() { |
|
|
|
// force an update if the URL changes |
|
|
|
history.listen(() => { |
|
|
|
this.forceUpdate() |
|
|
|
const $ = window.$ |
|
|
|
// https://www.trustie.net/issues/21919 可能会有问题 |
|
|
|
$("html").animate({ scrollTop: $('html').scrollTop() - 0 }) |
|
|
|
}); |
|
|
|
|
|
|
|
initAxiosInterceptors(this.props) |
|
|
|
|
|
|
|
// |
|
|
|
// axios.interceptors.response.use((response) => { |
|
|
|
// // console.log("response"+response); |
|
|
|
// if(response!=undefined) |
|
|
|
// // console.log("response"+response.data.statu); |
|
|
|
// if (response&&response.data.status === 407) { |
|
|
|
// this.setState({ |
|
|
|
// isRenders: true, |
|
|
|
// }) |
|
|
|
// } |
|
|
|
// return response; |
|
|
|
// }, (error) => { |
|
|
|
// //TODO 这里如果样式变了会出现css不加载的情况 |
|
|
|
// }); |
|
|
|
} |
|
|
|
//修改登录方法 |
|
|
|
Modifyloginvalue=()=>{ |
|
|
|
this.setState({ |
|
|
|
isRender:false, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
render() { |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
<LocaleProvider locale={zhCN}> |
|
|
|
|
|
|
|
|
|
|
|
<MuiThemeProvider theme={theme}> |
|
|
|
<LoginDialog {...this.props} {...this.state} Modifyloginvalue={()=>this.Modifyloginvalue()}></LoginDialog> |
|
|
|
<Notcompletedysl {...this.props} {...this.state}></Notcompletedysl> |
|
|
|
<Trialapplicationysl {...this.props} {...this.state}></Trialapplicationysl> |
|
|
|
<Trialapplicationreview {...this.props} {...this.state}></Trialapplicationreview> |
|
|
|
<Addcourses {...this.props} {...this.state}/> |
|
|
|
<AccountProfile {...this.props} {...this.state}/> |
|
|
|
{/*{*/} |
|
|
|
{/* isRender === true?*/} |
|
|
|
{/* <LoginDialog></LoginDialog> : ""*/} |
|
|
|
{/*}*/} |
|
|
|
|
|
|
|
{/*{*/} |
|
|
|
{/* isRenders === true?*/} |
|
|
|
{/*<Trialapplication></Trialapplication>*/} |
|
|
|
{/*:""*/} |
|
|
|
{/*}*/} |
|
|
|
|
|
|
|
<Router> |
|
|
|
<Switch> |
|
|
|
{/*<Route path="/login" component={LoginRegisterPage}/>*/} |
|
|
|
|
|
|
|
{/*众包创新*/} |
|
|
|
<Route path={"/crowdsourcings"} component={ProjectPackages}/> |
|
|
|
{/*认证*/} |
|
|
|
<Route path="/account" component={AccountPage}/> |
|
|
|
|
|
|
|
{/*403*/} |
|
|
|
<Route path="/403" component={Shixunauthority}/> |
|
|
|
|
|
|
|
<Route path="/500" component={http500}/> |
|
|
|
|
|
|
|
{/*404*/} |
|
|
|
<Route path="/nopage" component={Shixunnopage}/> |
|
|
|
|
|
|
|
<Route path="/compatibility" component={CompatibilityPageLoadable}/> |
|
|
|
<Route |
|
|
|
path="/login" component={EducoderLogin} |
|
|
|
/> |
|
|
|
<Route |
|
|
|
path="/register" component={EducoderLogin} |
|
|
|
/> |
|
|
|
<Route path="/users/:username" |
|
|
|
render={ |
|
|
|
(props) => (<UsersInfo {...this.props} {...props} {...this.state} />) |
|
|
|
}></Route> |
|
|
|
{/*<Route*/} |
|
|
|
{/* path="/trialapplication" component={Trialapplication}*/} |
|
|
|
{/*/>*/} |
|
|
|
<Route |
|
|
|
path="/changepassword" component={EducoderLogin} |
|
|
|
/> |
|
|
|
<Route |
|
|
|
path="/interesse" component={Interestpage} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
<Route path="/shixuns/new" component={Newshixuns}> |
|
|
|
</Route> |
|
|
|
|
|
|
|
<Route path="/tasks/:stageId" component={IndexWrapperComponent}/> |
|
|
|
|
|
|
|
<Route path="/shixuns/:shixunId" component={TPMIndexComponent}> |
|
|
|
</Route> |
|
|
|
|
|
|
|
{/*列表页*/} |
|
|
|
<Route path="/shixuns" component={TPMShixunsIndexComponent}/> |
|
|
|
|
|
|
|
{/* <Route path="/shixunchild" component={TPMShixunchildIndexComponent}> |
|
|
|
</Route> |
|
|
|
<Route path="/fork_list" component={TPMshixunfork_listIndexComponent}> |
|
|
|
</Route> */} |
|
|
|
|
|
|
|
{/*<Route path="/forums" component={ForumsIndexComponent}>*/} |
|
|
|
{/*</Route>*/} |
|
|
|
|
|
|
|
|
|
|
|
{/*实训课程(原实训路径)*/} |
|
|
|
<Route path="/paths" component={ShixunPaths}></Route> |
|
|
|
|
|
|
|
<Route path="/search" |
|
|
|
render={ |
|
|
|
(props)=>(<SearchPage {...this.props} {...props} {...this.state}></SearchPage>) |
|
|
|
} |
|
|
|
></Route> |
|
|
|
|
|
|
|
{/*课堂*/} |
|
|
|
<Route path="/courses" component={CoursesIndex} {...this.props}></Route> |
|
|
|
|
|
|
|
{/* 课堂讨论 */} |
|
|
|
{/* <Route path="/board" component = {BoardIndex} {...this.props}></Route> */} |
|
|
|
|
|
|
|
{/* <Route path="/tpforums" component={TPForumsIndexComponent}> |
|
|
|
</Route> */} |
|
|
|
|
|
|
|
{/* <Route path="/myshixuns/:shixunId/stages/:stageId" component={Index}/> */} |
|
|
|
{/* 兴趣页面*/} |
|
|
|
{/*<Route path="/interest" component={Interestpage}/>*/} |
|
|
|
|
|
|
|
<Route path="/comment" component={CommentComponent}/> |
|
|
|
<Route path="/testMaterial" component={TestMaterialDesignComponent}/> |
|
|
|
<Route path="/test" component={TestIndex}/> |
|
|
|
<Route path="/testCodeMirror" component={TestCodeMirrorComponent}/> |
|
|
|
<Route path="/testRCComponent" component={TestComponent}/> |
|
|
|
<Route path="/testUrlQuery" component={TestUrlQueryComponent}/> |
|
|
|
|
|
|
|
{/* 教学案例 */} |
|
|
|
<Route path="/moop_cases"render={ |
|
|
|
(props) => (<MoopCases {...this.props} {...props} {...this.state} />) |
|
|
|
}/> |
|
|
|
|
|
|
|
{/* <Route component={NotFoundPage}/> */} |
|
|
|
{/*列表页*/} |
|
|
|
{/*<Route component={TPMShixunsIndexComponent}/>*/} |
|
|
|
{/*首页*/} |
|
|
|
<Route exact path="/" component={ShixunsHome}/> |
|
|
|
<Route component={Shixunnopage}/> |
|
|
|
|
|
|
|
{/*<Route component={ShixunsHome}/>*/} |
|
|
|
|
|
|
|
</Switch> |
|
|
|
</Router> |
|
|
|
</MuiThemeProvider> |
|
|
|
</LocaleProvider> |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// moment国际化,设置为中文 |
|
|
|
moment.defineLocale('zh-cn', { |
|
|
|
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), |
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), |
|
|
|
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), |
|
|
|
weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), |
|
|
|
weekdaysMin: '日_一_二_三_四_五_六'.split('_'), |
|
|
|
longDateFormat: { |
|
|
|
LT: 'Ah点mm分', |
|
|
|
LTS: 'Ah点m分s秒', |
|
|
|
L: 'YYYY-MM-DD', |
|
|
|
LL: 'YYYY年MMMD日', |
|
|
|
LLL: 'YYYY年MMMD日Ah点mm分', |
|
|
|
LLLL: 'YYYY年MMMD日ddddAh点mm分', |
|
|
|
l: 'YYYY-MM-DD', |
|
|
|
ll: 'YYYY年MMMD日', |
|
|
|
lll: 'YYYY年MMMD日Ah点mm分', |
|
|
|
llll: 'YYYY年MMMD日ddddAh点mm分' |
|
|
|
}, |
|
|
|
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, |
|
|
|
meridiemHour: function (hour, meridiem) { |
|
|
|
if (hour === 12) { |
|
|
|
hour = 0; |
|
|
|
} |
|
|
|
if (meridiem === '凌晨' || meridiem === '早上' || |
|
|
|
meridiem === '上午') { |
|
|
|
return hour; |
|
|
|
} else if (meridiem === '下午' || meridiem === '晚上') { |
|
|
|
return hour + 12; |
|
|
|
} else { |
|
|
|
// '中午' |
|
|
|
return hour >= 11 ? hour : hour + 12; |
|
|
|
} |
|
|
|
}, |
|
|
|
meridiem: function (hour, minute, isLower) { |
|
|
|
var hm = hour * 100 + minute; |
|
|
|
if (hm < 600) { |
|
|
|
return '凌晨'; |
|
|
|
} else if (hm < 900) { |
|
|
|
return '早上'; |
|
|
|
} else if (hm < 1130) { |
|
|
|
return '上午'; |
|
|
|
} else if (hm < 1230) { |
|
|
|
return '中午'; |
|
|
|
} else if (hm < 1800) { |
|
|
|
return '下午'; |
|
|
|
} else { |
|
|
|
return '晚上'; |
|
|
|
} |
|
|
|
}, |
|
|
|
calendar: { |
|
|
|
sameDay: function () { |
|
|
|
return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT'; |
|
|
|
}, |
|
|
|
nextDay: function () { |
|
|
|
return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT'; |
|
|
|
}, |
|
|
|
lastDay: function () { |
|
|
|
return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT'; |
|
|
|
}, |
|
|
|
nextWeek: function () { |
|
|
|
var startOfWeek, prefix; |
|
|
|
startOfWeek = moment().startOf('week'); |
|
|
|
prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]'; |
|
|
|
return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; |
|
|
|
}, |
|
|
|
lastWeek: function () { |
|
|
|
var startOfWeek, prefix; |
|
|
|
startOfWeek = moment().startOf('week'); |
|
|
|
prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]'; |
|
|
|
return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; |
|
|
|
}, |
|
|
|
sameElse: 'LL' |
|
|
|
}, |
|
|
|
ordinalParse: /\d{1,2}(日|月|周)/, |
|
|
|
ordinal: function (number, period) { |
|
|
|
switch (period) { |
|
|
|
case 'd': |
|
|
|
case 'D': |
|
|
|
case 'DDD': |
|
|
|
return number + '日'; |
|
|
|
case 'M': |
|
|
|
return number + '月'; |
|
|
|
case 'w': |
|
|
|
case 'W': |
|
|
|
return number + '周'; |
|
|
|
default: |
|
|
|
return number; |
|
|
|
} |
|
|
|
}, |
|
|
|
relativeTime: { |
|
|
|
future: '%s内', |
|
|
|
past: '%s前', |
|
|
|
s: '几秒', |
|
|
|
m: '1分钟', |
|
|
|
mm: '%d分钟', |
|
|
|
h: '1小时', |
|
|
|
hh: '%d小时', |
|
|
|
d: '1天', |
|
|
|
dd: '%d天', |
|
|
|
M: '1个月', |
|
|
|
MM: '%d个月', |
|
|
|
y: '1年', |
|
|
|
yy: '%d年' |
|
|
|
}, |
|
|
|
week: { |
|
|
|
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 |
|
|
|
dow: 1, // Monday is the first day of the week. |
|
|
|
doy: 4 // The week that contains Jan 4th is the first week of the year. |
|
|
|
} |
|
|
|
}); |
|
|
|
export default SnackbarHOC()(App); |