Merge branch 'master' of https://bdgit.educoder.net/Hjqreturn/educoder
commit
10fa6d9c7c
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,264 @@
|
||||
import React, {Component} from "react";
|
||||
import {Link, NavLink} from 'react-router-dom';
|
||||
import {WordsBtn, ActionBtn} from 'educoder';
|
||||
import axios from 'axios';
|
||||
import '../css/members.css';
|
||||
import "../common/formCommon.css";
|
||||
import '../css/Courses.css';
|
||||
import './style.css';
|
||||
import '../css/busyWork.css'
|
||||
import '../poll/pollStyle.css'
|
||||
import Listofworks from "./Listofworks";
|
||||
import Listofworksstudentone from './Listofworksstudentone'
|
||||
import Trainingjobsetting from './Trainingjobsetting'
|
||||
import Workquestionandanswer from './Workquestionandanswer'
|
||||
import CoursesListType from '../coursesPublic/CoursesListType';
|
||||
import ShixunStudentWork from "./ShixunStudentWork";
|
||||
import Startshixuntask from "../coursesPublic/Startshixuntask";
|
||||
|
||||
class ShixunHomeworkPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
tab: ["0"],
|
||||
jobsettingsdata: undefined,
|
||||
teacherdata: undefined,
|
||||
code_review: false,
|
||||
view_report: false,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//切换tab
|
||||
ChangeTab = (e) => {
|
||||
// console.log(e);
|
||||
this.setState({
|
||||
tab: e
|
||||
})
|
||||
try {
|
||||
var currenturl = window.location.href;
|
||||
var newUrl = (currenturl.split("?"))[0];
|
||||
window.history.pushState('','',newUrl+'?tab='+e);
|
||||
}catch (e) {
|
||||
console.log(e);
|
||||
console.log("44");
|
||||
}
|
||||
|
||||
}
|
||||
Getdataback = (jobsettingsdata, teacherdata) => {
|
||||
this.setState({
|
||||
jobsettingsdata: jobsettingsdata,
|
||||
teacherdata: teacherdata,
|
||||
code_review: teacherdata.code_review,
|
||||
view_report: teacherdata.view_report,
|
||||
})
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const query = this.props.location.search;
|
||||
const type = query.split('?tab=');
|
||||
// let sum = []
|
||||
// sum.push(type[1])
|
||||
// console.log("componentDidMountcomponentDidMount");
|
||||
console.log(type);
|
||||
this.setState({
|
||||
tab: type[1],
|
||||
})
|
||||
let querys = this.props.location.pathname;
|
||||
const types = querys.split('/');
|
||||
console.log(types);
|
||||
this.setState({
|
||||
shixuntypes: types[3]
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
let {tab, jobsettingsdata, teacherdata} = this.state;
|
||||
const isAdmin = this.props.isAdmin();
|
||||
return (
|
||||
<div className="newMain clearfix ">
|
||||
<div className={"educontent mb20"} style={{width: "1200px"}}>
|
||||
|
||||
<div className="educontent mb20">
|
||||
<p className="clearfix mb20 mt10">
|
||||
<ActionBtn className=" btn colorgrey fl hovercolorblue "
|
||||
to={`/courses/${this.props.match.params.coursesId}/students`}>{jobsettingsdata === undefined ? "" : jobsettingsdata.data.course_name}</ActionBtn>
|
||||
<span className="color-grey-9 fl ml3 mr3">></span>
|
||||
<ActionBtn
|
||||
className=" btn colorgrey fl hovercolorblue "
|
||||
to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_id === undefined ? "" : jobsettingsdata.data.category.category_id}`}>{jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name}</ActionBtn>
|
||||
<span className="color-grey-9 fl ml3 mr3">></span>
|
||||
<WordsBtn className="fl">作业详情</WordsBtn>
|
||||
</p>
|
||||
</div>
|
||||
<div className="educontent mb20">
|
||||
<p className=" fl color-black summaryname" style={{heigth: "33px"}}>
|
||||
{teacherdata === undefined ? "" : teacherdata.homework_name}
|
||||
</p>
|
||||
<CoursesListType
|
||||
typelist={teacherdata === undefined ? [""] : teacherdata.homework_status}
|
||||
/>
|
||||
<a className="color-grey-9 fr font-16 summaryname ml20 mr20"
|
||||
href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_id === undefined ? "" : jobsettingsdata.data.category.category_id}`}>返回</a>
|
||||
<a className="color-grey-9 fr font-16 mr20"
|
||||
href={`/shixuns/${teacherdata === undefined ? "" : teacherdata.shixun_identifier}/challenges`}
|
||||
target={"_blank"}>实训详情</a>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="edu-back-white ">
|
||||
<div className="stud-class-set bor-bottom-greyE ">
|
||||
<div className=" clearfix edu-back-white poll_list">
|
||||
<a className={parseInt(tab) === 0 ? "active" : ""} onClick={(e) => this.ChangeTab(0)}>作品列表</a>
|
||||
<a className={parseInt(tab) === 1 ? "active" : ""} onClick={(e) => this.ChangeTab(1)}>作业问答</a>
|
||||
{this.props.isAdmin() ?
|
||||
this.state.code_review === true || jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0] === "未发布" ? "" :
|
||||
<a
|
||||
className={parseInt(tab) === 2 ? "active" : ""}
|
||||
onClick={(e) => this.ChangeTab(2)}>
|
||||
代码查重</a> : ""}
|
||||
{parseInt(tab) === 3?
|
||||
<style>{
|
||||
`
|
||||
.poll_list a.active:after {
|
||||
content: '';
|
||||
width: 57px;
|
||||
left: 10px;
|
||||
bottom: 0px;
|
||||
height: 2px;
|
||||
background-color: #4CACFF;
|
||||
position: absolute;
|
||||
}
|
||||
`
|
||||
}</style>
|
||||
:""}
|
||||
<a className={parseInt(tab) === 3 ? "active" : ""}
|
||||
onClick={(e) => this.ChangeTab(3)}
|
||||
>设置</a>
|
||||
{/*{this.props.isAdmin() ? <a*/}
|
||||
{/* className="fr color-blue font-16"*/}
|
||||
{/* href={`/api/homework_commons/${this.props.match.params.coursesId}/works_list.xlsx`}*/}
|
||||
{/*>导出</a> : ""}*/}
|
||||
<style>{`
|
||||
.drop_down_menu li a {
|
||||
padding: 0px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.drop_down_menu {
|
||||
width: 93px;
|
||||
}
|
||||
.drop_down_menu li {
|
||||
overflow: visible;
|
||||
width: 93px;
|
||||
}
|
||||
.drop_down_menu, .drop_down_normal {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
a:hover {
|
||||
color:#1A0B00 !important;
|
||||
}
|
||||
`}</style>
|
||||
{this.props.isAdmin() ?
|
||||
<li className="li_line drop_down fr color-blue font-16 mr8 mt20" style={{"padding": "0 20px"}}>
|
||||
导出<i className="iconfont icon-xiajiantou font-12 ml2"></i>
|
||||
<ul className="drop_down_menu" style={{"right": "-0px", "left": "unset", "height": "auto"}}>
|
||||
<li><a
|
||||
onClick={() => this.confirmysl(`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}&work_status=${this.state.course_groupyslstwo}&course_group=${this.state.checkedValuesineinfo}&search=${this.state.searchtext}`)}>实训报告</a>
|
||||
</li>
|
||||
<li><a
|
||||
onClick={() => this.confirmysl(`/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx?group_id=${this.state.checkedValuesineinfo}&search=${this.state.searchtext}`)}>学生成绩</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li> : ""}
|
||||
{this.props.isAdmin() ?
|
||||
teacherdata && teacherdata.end_immediately === true ?
|
||||
<a className="fr color-blue font-16" onClick={this.homeworkends}>立即截止</a>
|
||||
: ""
|
||||
: ""}
|
||||
{this.props.isAdmin() ?
|
||||
teacherdata && teacherdata.publish_immediately === true ?
|
||||
<a className="fr color-blue font-16" onClick={this.homeworkstart}>立即发布</a>
|
||||
: ""
|
||||
: ""}
|
||||
{this.props.isAdmin() ?
|
||||
teacherdata && teacherdata.code_review === true ?
|
||||
<a className="fr color-blue font-16" onClick={this.workshowmodel}>代码查重</a>
|
||||
: "" : ""}
|
||||
{this.state.view_report === true ? <Link className="fr color-blue font-16" target={"_blank"}
|
||||
to={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${this.state.props.match.params.homeworkid}/shixun_work_report`}>
|
||||
查看实训报告
|
||||
</Link> : ""}
|
||||
{
|
||||
teacherdata === undefined ? ""
|
||||
: teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" :
|
||||
<a className="fr color-blue font-16"
|
||||
href={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${teacherdata === undefined ? "" : teacherdata.id}/commitsummary/${this.state.props.match.params.homeworkid}`}>{teacherdata.commit_des}</a>
|
||||
}
|
||||
{teacherdata === undefined ? "" : <Startshixuntask
|
||||
{...this.props}
|
||||
data={teacherdata}
|
||||
/>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{
|
||||
// 教师列表
|
||||
parseInt(tab) === 0 ? (isAdmin === true ?
|
||||
<Listofworks {...this.props} {...this.state}
|
||||
Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Listofworks>
|
||||
:
|
||||
<Listofworksstudentone {...this.props} {...this.state}
|
||||
Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Listofworksstudentone>)
|
||||
:
|
||||
parseInt(tab) === 1 ?
|
||||
<Workquestionandanswer {...this.props} {...this.state}
|
||||
Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Workquestionandanswer>
|
||||
:
|
||||
parseInt(tab) === 2 ?
|
||||
<ShixunStudentWork {...this.props} {...this.state}
|
||||
Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></ShixunStudentWork>
|
||||
:
|
||||
<Trainingjobsetting {...this.props} {...this.state}
|
||||
Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Trainingjobsetting>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default ShixunHomeworkPage;
|
||||
|
||||
// <div className="edu-back-white mt10" >
|
||||
// <div className="stud-class-set bor-bottom-greyE ">
|
||||
// <div className=" clearfix edu-back-white pl30 pr30">
|
||||
// <div className="fl task_menu_ul">
|
||||
// {this.props.isAdmin() === true ?
|
||||
//
|
||||
// <Menu mode="horizontal" selectedKeys={tab} onClick={(e)=>this.changeTab(e)}>
|
||||
// <Menu.Item key="0">作品列表</Menu.Item>
|
||||
// <Menu.Item key="1">作业回答</Menu.Item>
|
||||
// <Menu.Item key="2">代码查重</Menu.Item>
|
||||
// <Menu.Item key="3">设置</Menu.Item>
|
||||
// </Menu>
|
||||
// :
|
||||
// <Menu mode="horizontal" selectedKeys={tab} onClick={(e)=>this.changeTab(e)}>
|
||||
// <Menu.Item key="0">作品列表</Menu.Item>
|
||||
// <Menu.Item key="1">作业回答</Menu.Item>
|
||||
// <Menu.Item key="2">代码查重</Menu.Item>
|
||||
// </Menu>
|
||||
// }
|
||||
//
|
||||
// </div>
|
||||
// </div>
|
||||
{/* </div>*/
|
||||
}
|
||||
|
||||
|
||||
{/*</div>*/
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
import React, {Component} from "react";
|
||||
import '../courses/css/members.css';
|
||||
import "../courses/common/formCommon.css"
|
||||
import '../courses/css/Courses.css';
|
||||
import beijintulogontwo from '../../../src/images/login/beijintulogontwo.png';
|
||||
import educodernet from '../../../src/images/login/educodernet.png';
|
||||
import InterestpageComponent from '../user/Interestpage'
|
||||
//educoder登入页面
|
||||
|
||||
var newContainer={
|
||||
background: `url(${beijintulogontwo})`,
|
||||
backgroundPosition: "center" ,
|
||||
backgroundRepeat: "no-repeat",
|
||||
backgroundAttachment: "fixed",
|
||||
backgroundSize: "100% 100%",
|
||||
height:" 100%",
|
||||
width:" 100%",
|
||||
position: "absolute",
|
||||
top: "0px",
|
||||
bottom: "0px",
|
||||
minHeight: "100%",
|
||||
overflow:"hidden",
|
||||
paddingTop: "40px",
|
||||
|
||||
}
|
||||
class EducoderInteresse extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div style={newContainer} className=" clearfix" >
|
||||
|
||||
<div >
|
||||
<div style={{
|
||||
"display": "flex",
|
||||
"justify-content": "center",
|
||||
"align-items": "center",
|
||||
"width": "100%"
|
||||
}}>
|
||||
<div >
|
||||
<img src={educodernet}/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div style={{
|
||||
display: "flex",
|
||||
justifyContent: "center",
|
||||
width: "100%",
|
||||
height: "630px",
|
||||
marginTop: "44px",
|
||||
}}>
|
||||
<InterestpageComponent {...this.props} {...this.state}>
|
||||
</InterestpageComponent>
|
||||
</div>
|
||||
|
||||
<div style={{
|
||||
display: "flex",
|
||||
justifyContent: "center",
|
||||
width: "100%",
|
||||
bottom:"0",
|
||||
position: "fixed"
|
||||
|
||||
}}>
|
||||
<div className="font-14 color-grey-9 " style={{ bottom:"0",position: "absolute",marginBottom: "20px"}}><span className="font-18">©</span> 2019 EduCoder<span className="ml15 mr15">湘ICP备17009477号</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a> & IntelliDE inside.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default EducoderInteresse;
|
@ -1,134 +1,138 @@
|
||||
.taskResultLayer {
|
||||
color: #666666;
|
||||
z-index: 99999999999999;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
background:rgba(0,0,0,0.8);
|
||||
top: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.taskResultLayer .closeIcon{
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 46px;
|
||||
font-size: 28px;
|
||||
z-index: 999999;
|
||||
color: rgb(255,255,255,0.7);
|
||||
cursor: pointer;
|
||||
}
|
||||
.taskResultLayer .closeIcon:hover {
|
||||
color: #4CACFF;
|
||||
}
|
||||
.taskResultLayer .expGold {
|
||||
color: #b27919 ;
|
||||
}
|
||||
.taskResultLayer .rateLabel {
|
||||
color: #fff ;
|
||||
font-size: 14px;
|
||||
}
|
||||
.taskResultLayer .rc-rate-star {
|
||||
font-size: 24px;
|
||||
color: rgb(192, 192, 192);
|
||||
}
|
||||
.taskResultLayer .rc-rate-star:nth-child(5) {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
/* ImageLayer ----------------- Start */
|
||||
.passContent{
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
display: -webkit-flex;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.passImg{
|
||||
max-width: 86%;
|
||||
max-height: 100%;
|
||||
}
|
||||
/* ImageLayer ----------------- End */
|
||||
|
||||
.passTaskContent{
|
||||
width: 652px;
|
||||
height:100%;
|
||||
margin:0px auto;
|
||||
margin-top: 4%;
|
||||
}
|
||||
.passTaskImg{
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.winpPerson{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 3;
|
||||
color: #D1A448;
|
||||
text-align: center;
|
||||
margin-top:304px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.winPanel{
|
||||
position: absolute;
|
||||
width: 308px;
|
||||
z-index: 5;
|
||||
height: 356px;
|
||||
border-radius: 10px;
|
||||
margin:0px auto;
|
||||
top:435px;
|
||||
left: 50%;
|
||||
margin-left: -154px;
|
||||
text-align: center;
|
||||
}
|
||||
.inline{
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.inline.exp {
|
||||
margin-left: 18px;
|
||||
}
|
||||
.inline img{
|
||||
margin-right: 8px;
|
||||
}
|
||||
.goldring{
|
||||
margin-right: 8px;
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
border-radius: 50%;
|
||||
background-color: #FFD633;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.passNext{
|
||||
width:120px;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
background-color:#CCC;
|
||||
color:#fff!important;
|
||||
margin: 0px auto;
|
||||
}
|
||||
.passed{
|
||||
width:120px;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
color:#fff!important;
|
||||
margin: 0px auto;
|
||||
margin-top: 12px;
|
||||
background-color: #CCCCCC;
|
||||
}
|
||||
.passed.stared {
|
||||
background-color:#4CACFF;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.passed.stared:hover {
|
||||
opacity: 1;
|
||||
.taskResultLayer {
|
||||
color: #666666;
|
||||
z-index: 99999999999999;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
background:rgba(0,0,0,0.8);
|
||||
top: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.taskResultLayer .closeIcon{
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 46px;
|
||||
font-size: 28px;
|
||||
z-index: 999999;
|
||||
color: rgb(255,255,255,0.7);
|
||||
cursor: pointer;
|
||||
}
|
||||
.taskResultLayer .closeIcon:hover {
|
||||
color: #4CACFF;
|
||||
}
|
||||
.taskResultLayer .expGold {
|
||||
color: #b27919 ;
|
||||
}
|
||||
.taskResultLayer .rateLabel {
|
||||
color: #fff ;
|
||||
font-size: 14px;
|
||||
}
|
||||
.taskResultLayer .rc-rate-star {
|
||||
font-size: 24px;
|
||||
color: rgb(192, 192, 192);
|
||||
}
|
||||
.taskResultLayer .rc-rate-star:nth-child(5) {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
/* ImageLayer ----------------- Start */
|
||||
.passContent{
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
display: -webkit-flex;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.passImg{
|
||||
max-width: 86%;
|
||||
max-height: 100%;
|
||||
}
|
||||
/* ImageLayer ----------------- End */
|
||||
|
||||
.passTaskContent{
|
||||
width: 652px;
|
||||
height:100%;
|
||||
margin:0px auto;
|
||||
margin-top: 4%;
|
||||
}
|
||||
.passTaskImg{
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.winpPerson{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 3;
|
||||
color: #D1A448;
|
||||
text-align: center;
|
||||
margin-top:304px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.winPanel{
|
||||
position: absolute;
|
||||
width: 308px;
|
||||
z-index: 5;
|
||||
height: 356px;
|
||||
border-radius: 10px;
|
||||
margin:0px auto;
|
||||
top:435px;
|
||||
left: 50%;
|
||||
margin-left: -154px;
|
||||
text-align: center;
|
||||
}
|
||||
.inline{
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.inline.exp {
|
||||
margin-left: 18px;
|
||||
}
|
||||
/*.inline img{*/
|
||||
/*margin-right: 8px;*/
|
||||
/*}*/
|
||||
.goldring{
|
||||
margin-right: 8px;
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
border-radius: 50%;
|
||||
background-color: #FFD633;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.passNext{
|
||||
width:120px;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
background-color:#CCC;
|
||||
color:#fff!important;
|
||||
margin: 0px auto;
|
||||
}
|
||||
.passed{
|
||||
width:120px;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
color:#fff!important;
|
||||
margin: 0px auto;
|
||||
margin-top: 12px;
|
||||
background-color: #CCCCCC;
|
||||
}
|
||||
.passed.stared {
|
||||
background-color:#4CACFF;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.passed.stared:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.vertical4{
|
||||
vertical-align: -4px;
|
||||
}
|
After Width: | Height: | Size: 19 KiB |
@ -1,118 +1,118 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
|
||||
import {CNotificationHOC} from '../courses/common/CNotificationHOC'
|
||||
import Loading from '../../Loading';
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
|
||||
import { TPMIndexHOC } from '../tpm/TPMIndexHOC';
|
||||
|
||||
import { SnackbarHOC, getImageUrl } from 'educoder';
|
||||
import AccountNav from './account/AccountNav'
|
||||
import axios from 'axios'
|
||||
|
||||
const AccountBasic= Loadable({
|
||||
loader: () => import('./account/AccountBasic'),
|
||||
loading: Loading,
|
||||
})
|
||||
const AccountBasicEdit= Loadable({
|
||||
loader: () => import('./account/AccountBasicEdit'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
const AccountCertification= Loadable({
|
||||
loader: () => import('./account/AccountCertification'),
|
||||
loading: Loading,
|
||||
})
|
||||
const AccountSecure= Loadable({
|
||||
loader: () => import('./account/AccountSecure'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
class AccountPage extends Component {
|
||||
constructor (props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
basicInfo:undefined
|
||||
}
|
||||
}
|
||||
|
||||
componentDidUpdate =(prevState)=>{
|
||||
if(this.props.current_user && this.props.current_user != prevState.current_user){
|
||||
this.getBasicInfo(this.props.current_user.login);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount = () =>{
|
||||
if(this.props.current_user){
|
||||
this.getBasicInfo(this.props.current_user.login);
|
||||
}
|
||||
}
|
||||
|
||||
getBasicInfo=(login)=>{
|
||||
let url=`/users/accounts/${login || this.props.current_user.login}.json`;
|
||||
axios.get(url).then((result)=>{
|
||||
if(result.data){
|
||||
if(result.data && result.data.base_info_completed == false){
|
||||
this.props.history.push(`/account/basic/edit`);
|
||||
}
|
||||
this.setState({
|
||||
basicInfo: Object.assign({}, {...result.data}, { avatar_url: `${result.data.avatar_url}?t=${new Date().getTime()}`})
|
||||
})
|
||||
}
|
||||
}).catch((error)=>{
|
||||
console.log(error);
|
||||
})
|
||||
}
|
||||
render() {
|
||||
let { basicInfo }=this.state;
|
||||
const common = { basicInfo, getBasicInfo : this.getBasicInfo }
|
||||
return (
|
||||
<div className="newMain clearfix">
|
||||
<div className="educontent df pt20">
|
||||
<style>{`
|
||||
.accountPage {
|
||||
display: flex;
|
||||
}
|
||||
`}</style>
|
||||
<AccountNav {...this.props} {...common}></AccountNav>
|
||||
<div className="basicFormWrap">
|
||||
<Switch {...this.props}>
|
||||
<Route exact path="/account/basic"
|
||||
render={
|
||||
(props) => (<AccountBasic {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
<Route exact path="/account/basic/edit"
|
||||
render={
|
||||
(props) => (<AccountBasicEdit {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account/certification"
|
||||
render={
|
||||
(props) => (<AccountCertification {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account/secure"
|
||||
render={
|
||||
(props) => (<AccountSecure {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account"
|
||||
render={
|
||||
(props) => (<AccountBasic {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
</Switch>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default CNotificationHOC()(SnackbarHOC() ( TPMIndexHOC ( AccountPage )));
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
|
||||
import {CNotificationHOC} from '../courses/common/CNotificationHOC'
|
||||
import Loading from '../../Loading';
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
|
||||
import { TPMIndexHOC } from '../tpm/TPMIndexHOC';
|
||||
|
||||
import { SnackbarHOC, getImageUrl } from 'educoder';
|
||||
import AccountNav from './account/AccountNav'
|
||||
import axios from 'axios'
|
||||
|
||||
const AccountBasic= Loadable({
|
||||
loader: () => import('./account/AccountBasic'),
|
||||
loading: Loading,
|
||||
})
|
||||
const AccountBasicEdit= Loadable({
|
||||
loader: () => import('./account/AccountBasicEdit'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
const AccountCertification= Loadable({
|
||||
loader: () => import('./account/AccountCertification'),
|
||||
loading: Loading,
|
||||
})
|
||||
const AccountSecure= Loadable({
|
||||
loader: () => import('./account/AccountSecure'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
class AccountPage extends Component {
|
||||
constructor (props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
basicInfo:undefined
|
||||
}
|
||||
}
|
||||
|
||||
componentDidUpdate =(prevState)=>{
|
||||
if(this.props.current_user && this.props.current_user != prevState.current_user){
|
||||
this.getBasicInfo(this.props.current_user.login);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount = () =>{
|
||||
if(this.props.current_user){
|
||||
this.getBasicInfo(this.props.current_user.login);
|
||||
}
|
||||
}
|
||||
|
||||
getBasicInfo=(login)=>{
|
||||
let url=`/users/accounts/${login || this.props.current_user.login}.json`;
|
||||
axios.get(url).then((result)=>{
|
||||
if(result.data){
|
||||
if(result.data && result.data.base_info_completed == false){
|
||||
this.props.history.push(`/account/profile/edit`);
|
||||
}
|
||||
this.setState({
|
||||
basicInfo: Object.assign({}, {...result.data}, { avatar_url: `${result.data.avatar_url}?t=${new Date().getTime()}`})
|
||||
})
|
||||
}
|
||||
}).catch((error)=>{
|
||||
console.log(error);
|
||||
})
|
||||
}
|
||||
render() {
|
||||
let { basicInfo }=this.state;
|
||||
const common = { basicInfo, getBasicInfo : this.getBasicInfo }
|
||||
return (
|
||||
<div className="newMain clearfix">
|
||||
<div className="educontent df pt20">
|
||||
<style>{`
|
||||
.accountPage {
|
||||
display: flex;
|
||||
}
|
||||
`}</style>
|
||||
<AccountNav {...this.props} {...common}></AccountNav>
|
||||
<div className="basicFormWrap">
|
||||
<Switch {...this.props}>
|
||||
<Route exact path="/account/profile"
|
||||
render={
|
||||
(props) => (<AccountBasic {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
<Route exact path="/account/profile/edit"
|
||||
render={
|
||||
(props) => (<AccountBasicEdit {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account/certification"
|
||||
render={
|
||||
(props) => (<AccountCertification {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account/secure"
|
||||
render={
|
||||
(props) => (<AccountSecure {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
<Route exact path="/account"
|
||||
render={
|
||||
(props) => (<AccountBasic {...this.props} {...props} {...this.state} {...common} />)
|
||||
}
|
||||
></Route>
|
||||
</Switch>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default CNotificationHOC()(SnackbarHOC() ( TPMIndexHOC ( AccountPage )));
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,68 +1,68 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { SnackbarHOC, getImageUrl } from 'educoder';
|
||||
import AccountImg from './AccountImg'
|
||||
class AccountNav extends Component {
|
||||
toBasic = () => {
|
||||
this.props.history.push(`/account/basic`)
|
||||
}
|
||||
toCertification = () => {
|
||||
this.props.history.push(`/account/certification`)
|
||||
}
|
||||
toSecure = () => {
|
||||
this.props.history.push(`/account/secure`)
|
||||
}
|
||||
render() {
|
||||
let { basicInfo } = this.props
|
||||
console.log(this.props);
|
||||
const path = window.location.pathname
|
||||
const isBasic = path.indexOf('basic') != -1 || path == "/account"
|
||||
const isCertification = path.indexOf('certification') != -1
|
||||
const isSecure = path.indexOf('secure') != -1
|
||||
return (
|
||||
<div className="accountNav fl">
|
||||
{
|
||||
basicInfo &&
|
||||
<React.Fragment>
|
||||
<div className="accountInfo">
|
||||
<AccountImg src={basicInfo.avatar_url} {...this.props}></AccountImg>
|
||||
<span className="name">{basicInfo.name}</span>
|
||||
<span className="role">{basicInfo.technical_title}</span>
|
||||
</div>
|
||||
|
||||
<div className="accountManagement">
|
||||
<div className="title">账号管理</div>
|
||||
<ul>
|
||||
<li className={`navItem ${isBasic ? 'active' : ''}`} onClick={this.toBasic}>
|
||||
<i className="iconfont icon-jibenxinxi color-grey-9 font-16"></i>
|
||||
基本信息
|
||||
{
|
||||
(basicInfo.authentication == 'uncertified' || basicInfo.authentication == 'applying') &&
|
||||
<i className="status fr iconfont icon-tishi color-red font-16"></i>
|
||||
}
|
||||
{
|
||||
basicInfo.authentication == 'certified' &&
|
||||
<i className="status fr iconfont icon-wancheng color-green-light font-16"></i>
|
||||
}
|
||||
</li>
|
||||
<li className={`navItem ${isCertification ? 'active' : ''}`} onClick={this.toCertification}>
|
||||
<i className="iconfont icon-renzhengxinxi color-grey-9 font-16"></i>认证信息
|
||||
{
|
||||
basicInfo.professional_certification == 'certified' && basicInfo.authentication == 'certified' ?
|
||||
<i className="status fr iconfont icon-wancheng color-green-light font-16"></i>:
|
||||
<i className="status fr iconfont icon-tishi color-red font-16"></i>
|
||||
}
|
||||
</li>
|
||||
<li className={`navItem ${isSecure ? 'active' : ''}`} onClick={this.toSecure}>
|
||||
<i className="iconfont icon-anquanshezhi color-grey-9 font-16"></i>安全设置
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default AccountNav ;
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { SnackbarHOC, getImageUrl } from 'educoder';
|
||||
import AccountImg from './AccountImg'
|
||||
class AccountNav extends Component {
|
||||
toBasic = () => {
|
||||
this.props.history.push(`/account/profile`)
|
||||
}
|
||||
toCertification = () => {
|
||||
this.props.history.push(`/account/certification`)
|
||||
}
|
||||
toSecure = () => {
|
||||
this.props.history.push(`/account/secure`)
|
||||
}
|
||||
render() {
|
||||
let { basicInfo } = this.props
|
||||
console.log(this.props);
|
||||
const path = window.location.pathname
|
||||
const isBasic = path.indexOf('basic') != -1 || path == "/account"
|
||||
const isCertification = path.indexOf('certification') != -1
|
||||
const isSecure = path.indexOf('secure') != -1
|
||||
return (
|
||||
<div className="accountNav fl">
|
||||
{
|
||||
basicInfo &&
|
||||
<React.Fragment>
|
||||
<div className="accountInfo">
|
||||
<AccountImg src={basicInfo.avatar_url} {...this.props}></AccountImg>
|
||||
<span className="name">{basicInfo.name}</span>
|
||||
<span className="role">{basicInfo.technical_title}</span>
|
||||
</div>
|
||||
|
||||
<div className="accountManagement">
|
||||
<div className="title">账号管理</div>
|
||||
<ul>
|
||||
<li className={`navItem ${isBasic ? 'active' : ''}`} onClick={this.toBasic}>
|
||||
<i className="iconfont icon-jibenxinxi color-grey-9 font-16"></i>
|
||||
基本信息
|
||||
{
|
||||
(basicInfo.authentication == 'uncertified' || basicInfo.authentication == 'applying') &&
|
||||
<i className="status fr iconfont icon-tishi color-red font-16"></i>
|
||||
}
|
||||
{
|
||||
basicInfo.authentication == 'certified' &&
|
||||
<i className="status fr iconfont icon-wancheng color-green-light font-16"></i>
|
||||
}
|
||||
</li>
|
||||
<li className={`navItem ${isCertification ? 'active' : ''}`} onClick={this.toCertification}>
|
||||
<i className="iconfont icon-renzhengxinxi color-grey-9 font-16"></i>认证信息
|
||||
{
|
||||
basicInfo.professional_certification == 'certified' && basicInfo.authentication == 'certified' ?
|
||||
<i className="status fr iconfont icon-wancheng color-green-light font-16"></i>:
|
||||
<i className="status fr iconfont icon-tishi color-red font-16"></i>
|
||||
}
|
||||
</li>
|
||||
<li className={`navItem ${isSecure ? 'active' : ''}`} onClick={this.toSecure}>
|
||||
<i className="iconfont icon-anquanshezhi color-grey-9 font-16"></i>安全设置
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default AccountNav ;
|
||||
|
@ -1,167 +1,168 @@
|
||||
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#fff;}
|
||||
div,img,tr,td,table{ border:0;}
|
||||
table,tr,td{border:0;cellspacing:0; cellpadding:0;}
|
||||
ol,ul,li{ list-style-type:none}
|
||||
a:link,a:visited{color:#333;text-decoration:none;}
|
||||
a:hover,a:active{color:#026434;}
|
||||
/* 公共 */
|
||||
.clear:after {content:".";height:0;visibility:hidden;display:block;clear:both;}
|
||||
.f12{font-size: 12px;}
|
||||
.fl{ float:left;}
|
||||
.fr{ float:right;}
|
||||
.cl{ clear:both; overflow:hidden;}
|
||||
.fb{ font-weight: bold;}
|
||||
.mt5{ margin-top:5px;}
|
||||
.mt10{ margin-top:10px;}
|
||||
.mt20{ margin-top:20px;}
|
||||
.mt30{ margin-top:30px;}
|
||||
.mt50{ margin-top:50px;}
|
||||
.mb5{ margin-bottom:5px;}
|
||||
.mb10{ margin-bottom:10px;}
|
||||
.mb20{ margin-bottom:20px;}
|
||||
.mb30{ margin-bottom:30px;}
|
||||
.mb50{ margin-bottom:50px;}
|
||||
.ml5{ margin-left:5px;}
|
||||
.ml10{ margin-left:10px;}
|
||||
.ml15{ margin-left:15px;}
|
||||
.ml30{margin-left: 30px;}
|
||||
.ml50{margin-left: 50px;}
|
||||
.mr5{ margin-right:5px;}
|
||||
.mr10{ margin-right:15px;}
|
||||
.mr15{ margin-right:10px;}
|
||||
.mr45{ margin-right:45px;}
|
||||
.mr30{ margin-right:30px;}
|
||||
.mr50{ margin-right:50px;}
|
||||
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
|
||||
.clearfix{clear:both;zoom:1}
|
||||
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
|
||||
a.new-btn:hover{background: #c3c3c3; color: #333;}
|
||||
a.new-btn-green{background: #3b94d6; color: #fff;}
|
||||
a.new-btn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.new-btn-blue{background: #6a8abe; color: #fff;}
|
||||
a.new-btn-blue:hover{background:#5f7cab; }
|
||||
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
|
||||
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
|
||||
a.new-bigbtn-green{display: block; background:#60B25E; color:#fff; border-radius:5px; text-align:center; font-size:18px; padding: 5px 20px; width: 220px;}
|
||||
a.new-bigbtn-green:hover{background: #51a74f; color: #fff;}
|
||||
/* 头部 */
|
||||
.header{ width:100%; min-width: 1200px; height:51px;background:#46484c; }
|
||||
.header_con{ width:1200px; height:50px; margin:0 auto; }
|
||||
.new-logo img{ width: 32px; height:32px; margin-top:10px;}
|
||||
.new-logo p{ font-size: 18px; color:#fff; line-height: 50px; }
|
||||
a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;}
|
||||
a:hover.new-nav-a{ color:#ff7500;}
|
||||
input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px; padding:0 5px; border-style: none; border: solid 1px #ccc;}
|
||||
/* 登录注册 */
|
||||
.new_login{ width:100%; height:450px;background:url(../images/bigdata/slider-bg-1.jpg) 0 0 no-repeat;}
|
||||
.new_login_con{ width:1200px; height:450px; margin:0 auto; }
|
||||
.new_login_box{width:320px; padding:10px 30px; border-radius:5px; margin:0 auto; border:solid 1px #fff;}
|
||||
.new_login_h2{ font-size:18px; color:#fff; border-bottom:1px solid #fff; font-weight:normal; padding-bottom:5px; margin-bottom:30px;}
|
||||
.new_login_h2 a{font-size:12px; color:#fff;background:url(images/icons_login.png) 0 -69px no-repeat; padding-left:10px;}
|
||||
input.new_register_input{ -webkit-box-shadow: 0 0 0px 1000px white inset; margin-left:5px; width:305px; height:45px; border:none;outline: none;}
|
||||
input.new_loggin_input{ -webkit-box-shadow: 0 0 0px 1000px white inset; margin-left:5px; width:305px; height:45px; border:none;outline: none;}
|
||||
.new_loggin_users{width:320px;height:45px;border-radius:5px; border:none; background:#fff url(images/icons_login.png) 8px 9px no-repeat;}
|
||||
.new_login_lock{background:#fff url(images/icons_login.png) 8px -28px no-repeat; width:320px; height:45px; border-radius:5px; border:none;}
|
||||
.new_register_li{background:#fff; width:320px; height:45px; border-radius:5px; border:none;}
|
||||
.new_login_form ul li{ margin-bottom:30px;}
|
||||
.new_login_error{ color:#3b94d6;}
|
||||
.new_login_submit_disable{ width:265px; height:40px; line-height: 40px; background:#ccc; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit{ width:320px; height:40px; display:block;line-height: 40px; background:#3b94d6; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit:hover{background: #2384cd;}
|
||||
.new_login_check{ width:15px; height:15px; border:1px solid #fff; border-style:none; margin-right:5px; vertical-align: -2px;}
|
||||
.new_login_form label{ color:#fff;}
|
||||
.new_login_form a{ color:#fff; text-decoration:underline;}
|
||||
.new_register{ width:100%; min-width:1200px; height:550px; background:#46484c; padding-top:80px;}
|
||||
.new_register_con{width:1200px; height:550px; margin:0 auto; }
|
||||
.new_login_txt{width:450px; height:140px; padding:30px 12px 0; color:#fff; margin:100px 0 0 100px;}
|
||||
.new_login_txt h3{ font-size:24px; text-align:center; margin-bottom:20px;}
|
||||
.new_login_txt p{ line-height:2.0; font-size: 16px;}
|
||||
.new_register_left{ margin-top:150px;}
|
||||
.new_login_tishi{ color: #fff; }
|
||||
/* 展示内容 */
|
||||
.new-container{ width: 100%; min-width:1200px;}
|
||||
.new-container-inner{width:1200px; margin:0px auto; padding:100px 0;}
|
||||
.inner-txt{ width:300px;}
|
||||
.inner-txt-h3{ font-size: 18px; color: #333; margin-bottom:20px;}
|
||||
.inner-txt-p{font-size: 14px; color: #666; margin-bottom:20px;}
|
||||
.back-color-grey{ background:#f5f5f5;}
|
||||
.guanzhu-box{ position: relative;}
|
||||
.img-guanzhu{ position: absolute; top:0; left: 0;}
|
||||
.guanzhu-img-box{ display: none;}
|
||||
.guanzhu-box li:hover ul{display:block; }
|
||||
/* 底部 */
|
||||
.footer{width:100%; height:100px; background-color:#fff; }
|
||||
.footer_con{ width:1200px; height:100px; margin:0 auto; text-align: center; padding:20px 0; }
|
||||
.footer_con-inner{ width: 300px; margin:0px auto;}
|
||||
.footer_con-inner li{ }
|
||||
.footer_con-inner li a{ font-size: 14px; color: #888;display: block;padding:0 15px; border-right: solid 1px #888;}
|
||||
.footer_con-inner li a:hover{text-decoration: underline;}
|
||||
.footer_con-p{ color: #888; margin-top:10px;}
|
||||
/* 新版内页 */
|
||||
.innner-nav li{ float: left; margin-right: 25px;}
|
||||
.inner-banner{ background:url(/images/inner/banner-inner.jpg) 0px 0px repeat-x; width: 100%; min-width:1200px; height: 550px; padding-top:50px; position:relative;}
|
||||
.inner-banner-con{ width: 1200px; margin: 0px auto; color:#fff; text-align: center;}
|
||||
.inner-man{ position: absolute; right:100px; top:115px;}
|
||||
.inner-man img{width:200px; }
|
||||
.inner-banner-con h2{ font-size: 60px; font-weight: normal;}
|
||||
.inner-banner-con-h3{font-size: 24px; font-weight: normal; color: #fff;}
|
||||
.inner-banner-con-h3 a{color: #fff;}
|
||||
.inner-c_blue{ color:#3b94d6;}
|
||||
a.btn-blue{ display: block; background:#3b94d6; color:#fff; border-radius:5px; text-align:center;border: 3px solid #3b94d6; font-size:18px; padding: 5px 20px; width: 220px; }
|
||||
a:hover.btn-blue{background: #2384cd; border: 3px solid #2384cd;}
|
||||
a.btn-blue-line{ display: block; border: 3px solid #3b94d6; color:#3b94d6; border-radius:5px; text-align:center; font-size:18px; padding: 5px 20px; width: 220px; }
|
||||
a:hover.btn-blue-line{background: #3b94d6; color:#fff;}
|
||||
.inner-btnbox{ width: 580px; margin: 30px auto;}
|
||||
.innner-banner-bottom{ width: 300px; text-align: left; float: left; margin-top: 50px; font-size: 14px;}
|
||||
.inner-border{ display: block; width: 50px; border-top:3px solid #fff; margin-bottom: 15px;}
|
||||
.new-container-inner-h3{ font-size:40px; font-weight: normal; color: #333; text-align: center; margin-bottom: 20px;}
|
||||
.innerbox-txt{ width:300px;}
|
||||
.back-color-black{ background:#47494d;}
|
||||
.inner-t-c{ text-align: center;}
|
||||
.inner-footer{ width: 100%; min-width:1200px; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
.saoma-box{ position: relative;}
|
||||
.saoma-img-box{ position: absolute; top:-300px; left: -95px; border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display: none;}
|
||||
.saoma-box li:hover ul{display:block; }
|
||||
.img-show{ width:50px; height:50px; border-radius:50px; }
|
||||
.saoma-img-box font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-footer-p-big{ display: block; height: 50px; line-height: 50px; color:#888; font-size: 16px; border-left:2px solid #888; padding-left:15px;}
|
||||
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
|
||||
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
|
||||
.inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;}
|
||||
.inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;}
|
||||
.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;}
|
||||
.inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;}
|
||||
.inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);}
|
||||
/*消息弹框*/
|
||||
.shadowbox_news{ width:305px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 12px; top:50px; left:-135px;display: none; z-index:999;}
|
||||
.shadowbox_news_title{ height:40px; line-height:40px;padding-left:10px; font-size:12px; color:#333;border-bottom:1px solid #eee;}
|
||||
.shadowbox_news font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.shadowbox_news_list{ max-height:200px; overflow:hidden;}
|
||||
.shadowbox_news_list a{ color:#999;}
|
||||
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
|
||||
.shadowbox_news_list li:hover{ background-color:#eee;}
|
||||
span.shadowbox_news_user{ color:#3b94d6;}
|
||||
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}
|
||||
.inner-nav-mes li:hover ul{ display: block;}
|
||||
a.menuGreyNew {color:#808080;}
|
||||
a.menuGreyNew:hover {color:#297fb8;}
|
||||
/*头像下拉弹框*/
|
||||
.my_account_info{ width:160px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 14px; top:46px; left:-97px;display: none; z-index:999;}
|
||||
.my_account_info li a{ color: #888;}
|
||||
.my_account_info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.my_account_info li{ padding-left: 5px; line-height: 1.5;}
|
||||
.li_bottom_border{ border-bottom:1px solid #eee;}
|
||||
|
||||
.inner-user-info{ border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); width:305px; display:block; width:300px; display: none;}
|
||||
.inner-user-info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-user-info li a{ display: block; height: 30px; line-height: 30px; color: #fff; width: 200px; }
|
||||
|
||||
.inner-img02{ width: 1000px; margin:0 auto;}
|
||||
.inner-txtbox02{width: 800px; margin:0 auto;}
|
||||
.inner-txtbox02 p{ display: block; width: 200px; font-size: 20px; float: left; margin-top:30px; text-align: center; color:#666;}
|
||||
.innerbox-txt-h3{ font-size:28px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 20px; color: #666;}
|
||||
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#fff;}
|
||||
div,img,tr,td,table{ border:0;}
|
||||
table,tr,td{border:0;cellspacing:0; cellpadding:0;}
|
||||
ol,ul,li{ list-style-type:none}
|
||||
a:link,a:visited{color:#333;text-decoration:none;}
|
||||
a:hover,a:active{color:#026434;}
|
||||
/* 公共 */
|
||||
.clear:after {content:".";height:0;visibility:hidden;display:block;clear:both;}
|
||||
.f12{font-size: 12px;}
|
||||
.fl{ float:left;}
|
||||
.fr{ float:right;}
|
||||
.cl{ clear:both; overflow:hidden;}
|
||||
.fb{ font-weight: bold;}
|
||||
.mt5{ margin-top:5px;}
|
||||
.mt10{ margin-top:10px;}
|
||||
.mt20{ margin-top:20px;}
|
||||
.mt30{ margin-top:30px;}
|
||||
.mt50{ margin-top:50px;}
|
||||
.mb5{ margin-bottom:5px;}
|
||||
.mb10{ margin-bottom:10px;}
|
||||
.mb20{ margin-bottom:20px;}
|
||||
.mb30{ margin-bottom:30px;}
|
||||
.mb50{ margin-bottom:50px;}
|
||||
.ml5{ margin-left:5px;}
|
||||
.ml10{ margin-left:10px;}
|
||||
.ml15{ margin-left:15px;}
|
||||
.ml30{margin-left: 30px;}
|
||||
.ml38{margin-left: 38px;}
|
||||
.ml50{margin-left: 50px;}
|
||||
.mr5{ margin-right:5px;}
|
||||
.mr10{ margin-right:15px;}
|
||||
.mr15{ margin-right:10px;}
|
||||
.mr45{ margin-right:45px;}
|
||||
.mr30{ margin-right:30px;}
|
||||
.mr50{ margin-right:50px;}
|
||||
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
|
||||
.clearfix{clear:both;zoom:1}
|
||||
a.new-btn{display: inline-block;border:none; padding:0 10px;color: #666;background: #e1e1e1; text-align:center;font-size: 12px; height: 30px;border-radius: 3px; line-height: 30px;}
|
||||
a.new-btn:hover{background: #c3c3c3; color: #333;}
|
||||
a.new-btn-green{background: #3b94d6; color: #fff;}
|
||||
a.new-btn-green:hover{background: #2384cd; color: #fff;}
|
||||
a.new-btn-blue{background: #6a8abe; color: #fff;}
|
||||
a.new-btn-blue:hover{background:#5f7cab; }
|
||||
a.new-bigbtn{display: inline-block;border:none; padding:2px 30px;color: #666;background: #e1e1e1; text-align:center;font-size: 14px; height: 30px;line-height: 30px; border-radius: 3px;}
|
||||
a:hover.new-bigbtn{background: #c3c3c3; color: #333;}
|
||||
a.new-bigbtn-green{display: block; background:#60B25E; color:#fff; border-radius:5px; text-align:center; font-size:18px; padding: 5px 20px; width: 220px;}
|
||||
a.new-bigbtn-green:hover{background: #51a74f; color: #fff;}
|
||||
/* 头部 */
|
||||
.header{ width:100%; min-width: 1200px; height:51px;background:#46484c; }
|
||||
.header_con{ width:1200px; height:50px; margin:0 auto; }
|
||||
.new-logo img{ width: 32px; height:32px; margin-top:10px;}
|
||||
.new-logo p{ font-size: 18px; color:#fff; line-height: 50px; }
|
||||
a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;}
|
||||
a:hover.new-nav-a{ color:#ff7500;}
|
||||
input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px; padding:0 5px; border-style: none; border: solid 1px #ccc;}
|
||||
/* 登录注册 */
|
||||
.new_login{ width:100%; height:450px;background:url(../images/bigdata/slider-bg-1.jpg) 0 0 no-repeat;}
|
||||
.new_login_con{ width:1200px; height:450px; margin:0 auto; }
|
||||
.new_login_box{width:320px; padding:10px 30px; border-radius:5px; margin:0 auto; border:solid 1px #fff;}
|
||||
.new_login_h2{ font-size:18px; color:#fff; border-bottom:1px solid #fff; font-weight:normal; padding-bottom:5px; margin-bottom:30px;}
|
||||
.new_login_h2 a{font-size:12px; color:#fff;background:url(images/icons_login.png) 0 -69px no-repeat; padding-left:10px;}
|
||||
input.new_register_input{ -webkit-box-shadow: 0 0 0px 1000px white inset; margin-left:5px; width:305px; height:45px; border:none;outline: none;}
|
||||
input.new_loggin_input{ -webkit-box-shadow: 0 0 0px 1000px white inset; margin-left:5px; width:305px; height:45px; border:none;outline: none;}
|
||||
.new_loggin_users{width:320px;height:45px;border-radius:5px; border:none; background:#fff url(images/icons_login.png) 8px 9px no-repeat;}
|
||||
.new_login_lock{background:#fff url(images/icons_login.png) 8px -28px no-repeat; width:320px; height:45px; border-radius:5px; border:none;}
|
||||
.new_register_li{background:#fff; width:320px; height:45px; border-radius:5px; border:none;}
|
||||
.new_login_form ul li{ margin-bottom:30px;}
|
||||
.new_login_error{ color:#3b94d6;}
|
||||
.new_login_submit_disable{ width:265px; height:40px; line-height: 40px; background:#ccc; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit{ width:320px; height:40px; display:block;line-height: 40px; background:#3b94d6; color:#fff; font-size:14px; border-radius:5px; border:none; text-align:center; cursor:pointer; vertical-align: middle;}
|
||||
a.new_login_submit:hover{background: #2384cd;}
|
||||
.new_login_check{ width:15px; height:15px; border:1px solid #fff; border-style:none; margin-right:5px; vertical-align: -2px;}
|
||||
.new_login_form label{ color:#fff;}
|
||||
.new_login_form a{ color:#fff; text-decoration:underline;}
|
||||
.new_register{ width:100%; min-width:1200px; height:550px; background:#46484c; padding-top:80px;}
|
||||
.new_register_con{width:1200px; height:550px; margin:0 auto; }
|
||||
.new_login_txt{width:450px; height:140px; padding:30px 12px 0; color:#fff; margin:100px 0 0 100px;}
|
||||
.new_login_txt h3{ font-size:24px; text-align:center; margin-bottom:20px;}
|
||||
.new_login_txt p{ line-height:2.0; font-size: 16px;}
|
||||
.new_register_left{ margin-top:150px;}
|
||||
.new_login_tishi{ color: #fff; }
|
||||
/* 展示内容 */
|
||||
.new-container{ width: 100%; min-width:1200px;}
|
||||
.new-container-inner{width:1200px; margin:0px auto; padding:100px 0;}
|
||||
.inner-txt{ width:300px;}
|
||||
.inner-txt-h3{ font-size: 18px; color: #333; margin-bottom:20px;}
|
||||
.inner-txt-p{font-size: 14px; color: #666; margin-bottom:20px;}
|
||||
.back-color-grey{ background:#f5f5f5;}
|
||||
.guanzhu-box{ position: relative;}
|
||||
.img-guanzhu{ position: absolute; top:0; left: 0;}
|
||||
.guanzhu-img-box{ display: none;}
|
||||
.guanzhu-box li:hover ul{display:block; }
|
||||
/* 底部 */
|
||||
.footer{width:100%; height:100px; background-color:#fff; }
|
||||
.footer_con{ width:1200px; height:100px; margin:0 auto; text-align: center; padding:20px 0; }
|
||||
.footer_con-inner{ width: 300px; margin:0px auto;}
|
||||
.footer_con-inner li{ }
|
||||
.footer_con-inner li a{ font-size: 14px; color: #888;display: block;padding:0 15px; border-right: solid 1px #888;}
|
||||
.footer_con-inner li a:hover{text-decoration: underline;}
|
||||
.footer_con-p{ color: #888; margin-top:10px;}
|
||||
/* 新版内页 */
|
||||
.innner-nav li{ float: left; margin-right: 25px;}
|
||||
.inner-banner{ background:url(/images/inner/banner-inner.jpg) 0px 0px repeat-x; width: 100%; min-width:1200px; height: 550px; padding-top:50px; position:relative;}
|
||||
.inner-banner-con{ width: 1200px; margin: 0px auto; color:#fff; text-align: center;}
|
||||
.inner-man{ position: absolute; right:100px; top:115px;}
|
||||
.inner-man img{width:200px; }
|
||||
.inner-banner-con h2{ font-size: 60px; font-weight: normal;}
|
||||
.inner-banner-con-h3{font-size: 24px; font-weight: normal; color: #fff;}
|
||||
.inner-banner-con-h3 a{color: #fff;}
|
||||
.inner-c_blue{ color:#3b94d6;}
|
||||
a.btn-blue{ display: block; background:#3b94d6; color:#fff; border-radius:5px; text-align:center;border: 3px solid #3b94d6; font-size:18px; padding: 5px 20px; width: 220px; }
|
||||
a:hover.btn-blue{background: #2384cd; border: 3px solid #2384cd;}
|
||||
a.btn-blue-line{ display: block; border: 3px solid #3b94d6; color:#3b94d6; border-radius:5px; text-align:center; font-size:18px; padding: 5px 20px; width: 220px; }
|
||||
a:hover.btn-blue-line{background: #3b94d6; color:#fff;}
|
||||
.inner-btnbox{ width: 580px; margin: 30px auto;}
|
||||
.innner-banner-bottom{ width: 300px; text-align: left; float: left; margin-top: 50px; font-size: 14px;}
|
||||
.inner-border{ display: block; width: 50px; border-top:3px solid #fff; margin-bottom: 15px;}
|
||||
.new-container-inner-h3{ font-size:40px; font-weight: normal; color: #333; text-align: center; margin-bottom: 20px;}
|
||||
.innerbox-txt{ width:300px;}
|
||||
.back-color-black{ background:#47494d;}
|
||||
.inner-t-c{ text-align: center;}
|
||||
.inner-footer{ width: 100%; min-width:1200px; background:#323232; height:155px;}
|
||||
.inner-footer_con{ width: 1200px; margin: 0 auto;}
|
||||
.inner-footer-nav{ height: 50px; border-bottom:1px solid #47494d;}
|
||||
.inner-footer-nav li a{ float: left; margin-right:15px; font-size: 14px; color: #888; line-height: 50px;}
|
||||
.saoma-box{ position: relative;}
|
||||
.saoma-img-box{ position: absolute; top:-300px; left: -95px; border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display: none;}
|
||||
.saoma-box li:hover ul{display:block; }
|
||||
.img-show{ width:50px; height:50px; border-radius:50px; }
|
||||
.saoma-img-box font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-footer-p-big{ display: block; height: 50px; line-height: 50px; color:#888; font-size: 16px; border-left:2px solid #888; padding-left:15px;}
|
||||
.inner-btnbox02{ width:270px; margin: 30px auto 0;}
|
||||
.new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;}
|
||||
.inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;}
|
||||
.inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;}
|
||||
.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;}
|
||||
.inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;}
|
||||
.inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);}
|
||||
/*消息弹框*/
|
||||
.shadowbox_news{ width:305px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 12px; top:50px; left:-135px;display: none; z-index:999;}
|
||||
.shadowbox_news_title{ height:40px; line-height:40px;padding-left:10px; font-size:12px; color:#333;border-bottom:1px solid #eee;}
|
||||
.shadowbox_news font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.shadowbox_news_list{ max-height:200px; overflow:hidden;}
|
||||
.shadowbox_news_list a{ color:#999;}
|
||||
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
|
||||
.shadowbox_news_list li:hover{ background-color:#eee;}
|
||||
span.shadowbox_news_user{ color:#3b94d6;}
|
||||
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}
|
||||
.inner-nav-mes li:hover ul{ display: block;}
|
||||
a.menuGreyNew {color:#808080;}
|
||||
a.menuGreyNew:hover {color:#297fb8;}
|
||||
/*头像下拉弹框*/
|
||||
.my_account_info{ width:160px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 14px; top:46px; left:-97px;display: none; z-index:999;}
|
||||
.my_account_info li a{ color: #888;}
|
||||
.my_account_info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.my_account_info li{ padding-left: 5px; line-height: 1.5;}
|
||||
.li_bottom_border{ border-bottom:1px solid #eee;}
|
||||
|
||||
.inner-user-info{ border-radius:3px; background:#fff; padding:15px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); width:305px; display:block; width:300px; display: none;}
|
||||
.inner-user-info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top:289px;left: 110px; border-style:solid; border-color:transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); }
|
||||
.inner-user-info li a{ display: block; height: 30px; line-height: 30px; color: #fff; width: 200px; }
|
||||
|
||||
.inner-img02{ width: 1000px; margin:0 auto;}
|
||||
.inner-txtbox02{width: 800px; margin:0 auto;}
|
||||
.inner-txtbox02 p{ display: block; width: 200px; font-size: 20px; float: left; margin-top:30px; text-align: center; color:#666;}
|
||||
.innerbox-txt-h3{ font-size:28px; color: #333; margin-bottom:20px;}
|
||||
.innerbox-txt-p{font-size: 20px; color: #666;}
|
||||
|
Loading…
Reference in new issue