import React, {Component} from 'react';
import './public-path';
import logo from './logo.svg';
import './App.css';
import {ConfigProvider} 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 Accountnewprofile from './modules/user/Accountnewprofile';
import Trialapplication from './modules/login/Trialapplication';
import Certifiedprofessional from './modules/modals/Certifiedprofessional';
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'
import { Provider } from 'react-redux';
import configureStore from './redux/stores/configureStore';
// ！！！tpi需要这个来加载css
import {TPMIndexHOC} from './modules/tpm/TPMIndexHOC';
const store = configureStore();

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 Otherlogin=Loadable({
	loader: () => import('./modules/login/Otherlogin'),
	loading: Loading,
})

//微信登录
const  Loginqq=Loadable({
	loader: () => import('./modules/login/Loginqq'),
	loading: Loading,
})


const Otherloginstart=Loadable({
	loader: () => import('./modules/login/Otherloginstart'),
	loading: Loading,
})
const Otherloginsqq=Loadable({
	loader: () => import('./modules/login/Otherloginqq'),
	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 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 InfosIndex = Loadable({
	loader: () => import('./modules/user/usersInfo/InfosIndex'),
	loading: Loading,
})
// 题库
const BanksIndex = Loadable({
	loader: () => import('./modules/user/usersInfo/banks/BanksIndex'),
	loading: Loading,
})


// 教学案例
const MoopCases =  Loadable({
	loader: () => import('./modules/moop_cases/index'),
	loading: Loading,
})

// 兴趣页面
const Interestpage = Loadable({
	loader: () => import('./modules/login/EducoderInteresse'),
	loading: Loading,
})

//众包创新
// const ProjectPackages=Loadable({
// 	loader: () => import('./modules/projectPackages/ProjectPackageIndex'),
// 	loading: Loading,
// })

//竞赛
const NewCompetitions=Loadable({
	loader: () => import('./modules/competitions/Competitions'),
	loading: Loading,
})

//黑客松定制竞赛
const Osshackathon=Loadable({
	loader: () => import('./modules/osshackathon/Osshackathon'),
	loading: Loading,
})

const Messagerouting= Loadable({
	loader: () => import('./modules/message/js/Messagerouting'),
	loading: Loading,
})

const Topicbank= Loadable({
	loader: () => import('./modules/topic_bank/Topic_bank'),
	loading: Loading,
})

const Help = Loadable({
	loader: () => import('./modules/help/Help'),
	loading: Loading,
})

const Ecs = Loadable({
	loader: () => import('./modules/ecs/Ecs'),
	loading: Loading,
})

// 添加开发者社区
const Developer = Loadable({
	loader: () => import('./modules/developer'),
	loading: Loading
})
// 试题库
const Headplugselection = Loadable({
	loader: () => import('./modules/question/Question'),
	loading: Loading
})

//试题库新建 //题库编辑
const Questionitem_banks = Loadable({
	loader: () => import('./modules/question/Questionitem_banks'),
	loading: Loading
})

//试卷库
const Testpaperlibrary= Loadable({
	loader: () => import('./modules/testpaper/Testpaperlibrary'),
	loading: Loading
})
//试卷编辑
const Paperlibraryeditid= Loadable({
	loader: () => import('./modules/testpaper/Paperlibraryeditid'),
	loading: Loading
})
//试卷查看
const Paperlibraryseeid= Loadable({
	loader: () => import('./modules/testpaper/Paperlibraryseeid'),
	loading: Loading
})
//人工组卷
const Paperreview= Loadable({
	loader: () => import('./modules/question/Paperreview'),
	loading: Loading
})

//智能组卷
const Integeneration= Loadable({
	loader: () => import('./modules/testpaper/Intecomponents'),
	loading: Loading
})

// 学院统计
const College = Loadable({
	loader: () => import('./college/College'),
	loading: Loading
})

// 开发者编辑模块
const NewOrEditTask = Loadable({
	loader: () => import('./modules/developer/newOrEditTask'),
	loading: Loading
});
// 学员学习
const StudentStudy = Loadable({
	loader: () => import('./modules/developer/studentStudy'),
	loading: Loading
});
// 提交记录详情
const RecordDetail = Loadable({
	loader: () => import('./modules/developer/recordDetail'),
	loading: Loading
});
// jupyter tpi
const JupyterTPI = Loadable({
	loader: () => import('./modules/tpm/jupyter'),
	loading: Loading
});
// 微信代码编辑器
// const WXCode = Loadable({
// 	loader: () => import('./modules/wxcode'),
// 	loading: Loading
// });
// //个人竞赛报名
// const PersonalCompetit = Loadable({
// 	loader: () => import('./modules/competition/personal/PersonalCompetit.js'),
// 	loading: Loading,
// });
class App extends Component {
	constructor(props) {
		super(props)
		this.state = {
			Addcoursestype:false,
			Addcoursestypes:false,
			mydisplay:false,
			occupation:0,
			mygetHelmetapi: null,
		}

	}
	HideAddcoursestypess=(i)=>{
		console.log("调用了");
		this.setState({
			Addcoursestype:false,
			Addcoursestypes:false,
			mydisplay:true,
			occupation:i,
		})
	};
	hideAddcoursestypes=()=>{
		this.setState({
			Addcoursestypes:false
		})
	};
	ModalCancelsy=()=>{
		this.setState({
			mydisplay:false,
		})
		window.location.href = "/";
	};
	ModalshowCancelsy=()=>{
		this.setState({
			mydisplay:true,
		})
	};

	disableVideoContextMenu = () => {
		window.$( "body" ).on( "mousedown", "video",  function(event) {
			if(event.which === 3) {
				window.$('video').bind('contextmenu',function () { return false; });
			} else {
				window.$('video').unbind('contextmenu');
			}
		});
	}
	componentDidMount() {
		document.title = "loading...";
		this.disableVideoContextMenu();
		// 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);
	 this.getAppdata();
		//
		// 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不加载的情况
		// });

		window.addEventListener('error', (event) => {
			const msg = `${event.type}: ${event.message}`;
			console.log(msg)
		});
	}
	//修改登录方法
	Modifyloginvalue=()=>{
		this.setState({
			isRender:false,
		})
	};

	//获取数据为空的时候
	gettablogourlnull = () => {
		this.setState({
			mygetHelmetapi: undefined
		});
		document.title = "EduCoder";
		var link = document.createElement('link'),
			oldLink = document.getElementById('dynamic-favicon');
		link.id = 'dynamic-favicon';
		link.rel = 'shortcut icon';
		link.href = "/react/build/./favicon.ico";
		if (oldLink) {
			document.head.removeChild(oldLink);
		}
		document.head.appendChild(link);
	};

	//获取数据的时候
	gettablogourldata = (response) => {
		document.title = response.data.setting.name;
		var link = document.createElement('link'),
			oldLink = document.getElementById('dynamic-favicon');
		link.id = 'dynamic-favicon';
		link.rel = 'shortcut icon';
		link.href = '/' + response.data.setting.tab_logo_url;
		if (oldLink) {
			document.head.removeChild(oldLink);
		}
		document.head.appendChild(link);
	}
  //获取当前定制信息
	getAppdata=()=>{
		let url = "/setting.json";
		axios.get(url).then((response) => {
			// console.log("app.js开始请求/setting.json");
			// console.log("获取当前定制信息");
			if(response){
				if(response.data){
					this.setState({
						mygetHelmetapi:response.data.setting
					});
					//存储配置到游览器
					localStorage.setItem('chromesetting',JSON.stringify(response.data.setting));
					localStorage.setItem('chromesettingresponse',JSON.stringify(response));
					try {
						if (response.data.setting.tab_logo_url) {
							this.gettablogourldata(response);
						} else {
							this.gettablogourlnull();
						}
					} catch (e) {
						this.gettablogourlnull();
					}


				} else {

					this.gettablogourlnull();

				}

			} else {
				this.gettablogourlnull();

			}

		}).catch((error) => {
			this.gettablogourlnull();

		});
	};

	render() {
   let{mygetHelmetapi}=this.state;
		// console.log("appappapp");
		// console.log(mygetHelmetapi);
		return (
			<Provider store={store}>
				<ConfigProvider locale={zhCN}>
					<MuiThemeProvider theme={theme}>
						<Accountnewprofile {...this.props}{...this.state}/>
						<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}  HideAddcoursestypess={(i)=>this.HideAddcoursestypess(i)}/>
						<AccountProfile {...this.props} {...this.state}   />
						<Certifiedprofessional {...this.props} {...this.state}  ModalCancelsy={this.ModalCancelsy} ModalshowCancelsy={this.ModalshowCancelsy}/>
						<Router>
							<Switch>

								{/*题库*/}
								<Route path="/topicbank/:username/:topicstype"
											render={
												(props) => {

													return (<Topicbank {...this.props} {...props} {...this.state} />)
												}
											}></Route>
								{/*题库*/}
								<Route path="/topicbank/:topicstype"
											render={
												(props) => {

													return (<Topicbank {...this.props} {...props} {...this.state} />)
												}
											}></Route>
								{/*/!*众包创新*!/*/}
								{/*<Route path={"/crowdsourcing"} component={ProjectPackages}/>*/}
								{/*竞赛*/}
								<Route path={"/competitions"}
											render={
												(props) => {

													return (<NewCompetitions {...this.props} {...props} {...this.state} />)
												}
											}></Route>

								{/*黑客松定制竞赛*/}
								<Route
									path={"/osshackathon"}
									render={
										(props)=>{
											return(
												<Osshackathon {...this.props} {...props} {...this.state} />
											)
										}
									}
								/>

								{/*认证*/}
								<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"
									render={
										(props) => {

											return (<EducoderLogin {...this.props} {...props} {...this.state} />)
										}
									}
								/>
								<Route
									path="/register"
									render={
										(props) => {

											return (<EducoderLogin {...this.props} {...props} {...this.state} />)
										}
									}
								/>
								<Route
									path="/otherloginstart" component={Otherloginstart}
								/>
								<Route
									path={"/otherloginqq"} component={Otherloginsqq}
								/>
								<Route
									path="/otherlogin" component={Otherlogin}
								/>
								<Route
									path="/loginqq" component={Loginqq}
								/>

								<Route path="/users/:username"
									render={
										(props) => {

											return (<InfosIndex {...this.props} {...props} {...this.state} />)
										}
								}></Route>

								<Route path="/banks"
									render={
										(props) => {
											return (<BanksIndex {...this.props} {...props} {...this.state} />)
										}
								}></Route>
								{/*<Route*/}
									{/*path="/personalcompetit"*/}
									{/*render={*/}
										{/*(props) => (<PersonalCompetit {...this.props} {...props} {...this.state}></PersonalCompetit>)*/}
									{/*}*/}
								{/*/>*/}
								<Route
									path="/changepassword"
									render={
										(props) => {

											return (<EducoderLogin {...this.props} {...props} {...this.state} />)
										}
									}
								/>
								{/*<Route*/}
								{/*	path="/interesse" component={Interestpage}*/}

								{/*/>*/}
								<Route path="/shixuns/new" component={Newshixuns}>
								</Route>
								<Route path="/colleges/:id/statistics"
											 render={
												 (props) => (<College  {...this.props} {...props} {...this.state} />)
											 }/>
								{/* jupyter */}
								<Route path="/tasks/:identifier/jupyter/"
									render={
										(props) => {
											return (<JupyterTPI {...this.props} {...props} {...this.state}/>)
										}
									}
								/>

								<Route path="/tasks/:stageId" component={IndexWrapperComponent}/>

								{/*<Route path="/shixuns/:shixunId" component={TPMIndexComponent}>*/}
								{/*</Route>*/}

								<Route path="/shixuns/:shixunId"
											 render={
												 (props)=>(<TPMIndexComponent {...this.props} {...props} {...this.state}></TPMIndexComponent>)
											 }
								></Route>
								{/*列表页 实训项目列表*/}
								{/*<Route path="/shixuns" component={TPMShixunsIndexComponent}/>*/}


								<Route path="/shixuns"
											 render={
												 (props)=>(<TPMShixunsIndexComponent {...this.props} {...props} {...this.state}></TPMShixunsIndexComponent>)
											 }
								></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}  {...this.state}></Route>

								{/* <Route path="/forums" component={ForumsIndexComponent}>
								</Route> */}
								{/* 教学案例 */}
								<Route path="/moop_cases"render={
										(props) => (<MoopCases {...this.props} {...props} {...this.state} />)
								}/>

								<Route path="/forums"
									render={
										(props)=>(<ForumsIndexComponent {...this.props} {...props} {...this.state}></ForumsIndexComponent>)
									}
								>
								</Route>
								<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="/registration"*/}
									{/*render={*/}
										{/*(props) => (<Registration {...this.props} {...props} {...this.state}></Registration>)*/}
									{/*}*/}
								{/*/>*/}

								<Route path="/messages"
											render={
												(props)=>(<Messagerouting {...this.props} {...props} {...this.state}></Messagerouting>)
											}
								></Route>
								<Route path="/help/:type"
											render={
												(props)=>(<Help {...this.props} {...props} {...this.state}></Help>)
											}/>
								<Route path="/ecs"
											render={
												(props)=>(<Ecs {...this.props} {...props} {...this.state}></Ecs>)
											}/>

								<Route path="/problems/new/:id?"
									render={
										(props) => {
											return (<NewOrEditTask {...this.props} {...props} {...this.state} />)
										}
									}
								/>

								<Route path="/myproblems/record_detail/:id"
											 render={
												 (props) => (<RecordDetail  {...this.props} {...props} {...this.state} />)
											 }
								/>
								<Route
									path="/problems/:id/edit"
									render={
										(props) => (<NewOrEditTask {...this.props} {...props} {...this.state} />)
									} />
								<Route path="/Integeneration/:type/:id"
											 render={
												 (props) => (<Paperreview  {...this.props} {...props} {...this.state} />)
											 }/>
								<Route path="/paperreview/:type"
											 render={
												 (props) => (<Paperreview  {...this.props} {...props} {...this.state} />)
											 }/>
								<Route path="/paperlibrary/edit/:id"
											 render={
												 (props) => (<Paperlibraryeditid  {...this.props} {...props} {...this.state} />)
											 }/>

								<Route path="/paperlibrary/see/:id"
											 render={
												 (props) => (<Paperlibraryseeid  {...this.props} {...props} {...this.state} />)
											 }/>

								<Route path="/myproblems/:id/:tab?"
											 render={
												 (props) => (<StudentStudy  {...this.props} {...props} {...this.state} />)
											 } />
								<Route path="/problemset/edit/:id"
											 render={
												 (props) => (<Questionitem_banks  {...this.props} {...props} {...this.state} />)
											 } />

								<Route path="/problemset/newitem"
											 render={
												 (props) => (<Questionitem_banks  {...this.props} {...props} {...this.state} />)
											 } />
								<Route path="/problemset/:type"
											 render={
												 (props) => (<Headplugselection  {...this.props} {...props} {...this.state} />)
											 } />
								<Route path="/paperlibrary"
											 render={
												 (props) => (<Testpaperlibrary  {...this.props} {...props} {...this.state} />)
											 }/>

								<Route path="/Integeneration"
											 render={
												 (props) => (<Integeneration  {...this.props} {...props} {...this.state} />)
											 }/>

								<Route path="/problems"
											 render={
												 (props) => (<Developer  {...this.props} {...props} {...this.state} />)
											 }/>

								<Route path="/problemset"
											 render={
												 (props) => (<Headplugselection  {...this.props} {...props} {...this.state} />)
											 }/>
								{/*<Route path="/wxcode/:identifier?" component={WXCode}*/}
								{/*	render={*/}
								{/*		(props)=>(<WXCode {...this.props} {...props} {...this.state}></WXCode>)*/}
								{/*	}*/}
								{/*/>*/}
								<Route exact path="/"
											// component={ShixunsHome}
											render={
												(props)=>(<ShixunsHome {...this.props} {...props} {...this.state}></ShixunsHome>)
											}
								/>
								<Route component={Shixunnopage}/>

							</Switch>
						</Router>
					</MuiThemeProvider>
				</ConfigProvider>
			</Provider>
		);
	}
}

// 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) ;
