parent
42cbb4dbe6
commit
559926ebfa
@ -1,5 +1,10 @@
|
||||
import React from 'react'
|
||||
import './loading.less'
|
||||
|
||||
export default () => {
|
||||
return <div className="loading">loading ...</div>
|
||||
return <div className="loading-tip">
|
||||
<p>
|
||||
loading ...
|
||||
</p>
|
||||
</div>
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
.loading-tip {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
background: #213857;
|
||||
color: #fff;
|
||||
}
|
@ -1,10 +1,84 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import React, { useEffect, useState, Fragment } from 'react'
|
||||
import axios from 'axios'
|
||||
import UpgradeModals from '../modals/UpgradeModals'
|
||||
import Loading from '../../components/loading'
|
||||
import ShixunCardList from '../../components/shixun-card-list'
|
||||
import TPMIndexHOC from '../tpm/TPMIndexHOC'
|
||||
import ListContainer from './list-container'
|
||||
import { SnackbarHOC, getImageUrl, configShareForIndex } from 'educoder'
|
||||
import ShixunPathCard from '../paths/ShixunPathCard'
|
||||
|
||||
export default () => {
|
||||
function Home({ mygetHelmetapi }) {
|
||||
|
||||
return (
|
||||
<div className="shixun-home">
|
||||
const [resource, setResource] = useState({
|
||||
loading: true,
|
||||
data: {},
|
||||
updata: null
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
async function init() {
|
||||
const sys = await axios.get('/users/system_update.json')
|
||||
const home = await axios.get('/home/index.json')
|
||||
setResource({
|
||||
...resource,
|
||||
loading: false,
|
||||
updata: sys.data,
|
||||
data: home.data
|
||||
})
|
||||
}
|
||||
try {
|
||||
init()
|
||||
} catch (error) {
|
||||
console.log(error, '---in home init-----')
|
||||
}
|
||||
|
||||
}, [])
|
||||
|
||||
let shixuntype = false
|
||||
let pathstype = false
|
||||
if (mygetHelmetapi) {
|
||||
let shixun = "/shixuns";
|
||||
let paths = "/paths";
|
||||
mygetHelmetapi.navbar.map(item => {
|
||||
var reg = RegExp(item.link)
|
||||
if (shixun.match(reg)) {
|
||||
if (item.hidden === true) {
|
||||
shixuntype = true
|
||||
}
|
||||
}
|
||||
if (paths.match(reg)) {
|
||||
if (item.hidden === true) {
|
||||
pathstype = true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const { loading, updata, data } = resource
|
||||
const { shixuns, subjects } = data
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
{loading ? <Loading /> :
|
||||
<div className="shixun-home newMain clearfix">
|
||||
{updata ? <UpgradeModals updata={updata} /> : null}
|
||||
{pathstype || subjects.length > 0 ?
|
||||
<ListContainer to="/paths" title='实践课程' titleEn='TRAINING COURSE' >
|
||||
<ShixunPathCard pathList={subjects} />
|
||||
</ListContainer >
|
||||
: null}
|
||||
{
|
||||
(shixuntype || shixuns.length > 0) ?
|
||||
<ListContainer to="/shixuns" title='实训项目' titleEn='DEVELOPMENT COMMUNITY' >
|
||||
<ShixunCardList list={shixuns} />
|
||||
</ListContainer >
|
||||
: null
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</Fragment>
|
||||
)
|
||||
}
|
||||
|
||||
export default SnackbarHOC()(TPMIndexHOC(Home))
|
@ -0,0 +1,17 @@
|
||||
import React from 'react'
|
||||
import { Link } from "react-router-dom"
|
||||
|
||||
export default ({ children, title, titleEn, to }) => {
|
||||
return (
|
||||
<div className="clearfix pt20 educontent pr pb20 ">
|
||||
<div className="edu-txt-center">
|
||||
<p className="color-dark edu-txt-center font-24" style={{ lineHeight: '30px' }}>{title}</p>
|
||||
<p className="color-grey-cd font-12">{titleEn}</p>
|
||||
</div>
|
||||
<Link to={to} className="moreitem mr18">更多<i className="fa fa-angle-right ml5"></i></Link>
|
||||
<div className="square-list clearfix">
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
Loading…
Reference in new issue