From 1cb74baff7c2cc16a17e9055aa14f22f2de81205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:01:05 +0800 Subject: [PATCH 01/28] b --- .../PackageIndexNEIBannerConcent.js | 4 +- public/react/src/modules/tpm/NewHeader.js | 2 +- .../react/src/modules/user/usersInfo/Infos.js | 27 ++- .../modules/user/usersInfo/InfosPackage.js | 197 ++++++++++++++++++ 4 files changed, 225 insertions(+), 5 deletions(-) create mode 100644 public/react/src/modules/user/usersInfo/InfosPackage.js diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index c9d49e542..e4926e02c 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -69,7 +69,7 @@ class PackageIndexNEIBannerConcent extends Component { componentDidUpdate = (prevProps) => { if(prevProps.current_user.username!=this.props.current_user.username){ this.setState({ - contact_name:this.props.current_user.username + contact_name:this.props.current_user&&this.props.current_user.username }) } } @@ -100,7 +100,7 @@ class PackageIndexNEIBannerConcent extends Component { }) }else{ this.setState({ - contact_name:this.props.current_user.username + contact_name:this.props.current_user&&this.props.current_user.username }) } diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 1798bfca8..79b0aa443 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -816,7 +816,7 @@ submittojoinclass=(value)=>{
  • 我的实训
  • 我的实践课程
  • 我的项目
  • -
  • 我的众包
  • +
  • 我的众包
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} {/*
  • this.trialapplications()} >试用申请
  • */} diff --git a/public/react/src/modules/user/usersInfo/Infos.js b/public/react/src/modules/user/usersInfo/Infos.js index 3b58681da..5286c5797 100644 --- a/public/react/src/modules/user/usersInfo/Infos.js +++ b/public/react/src/modules/user/usersInfo/Infos.js @@ -17,6 +17,12 @@ import "../../courses/css/Courses.css" import Trialapplication from '../../login/Trialapplication' + +const InfosPackage = Loadable({ + loader: () => import('./InfosPackage'), + loading:Loading, +}) + const InfosCourse = Loadable({ loader: () => import('./InfosCourse'), loading:Loading, @@ -373,11 +379,17 @@ class Infos extends Component{ to={`/users/${username}/paths`}>实践课程
  • - this.setState({moduleName: 'projects'})} to={`/users/${username}/projects`}>项目
  • - + +
  • + this.setState({moduleName: 'package'})} + to={`/users/${username}/package`}>众包 +
  • + {/*{ data && data.identity!="学生" &&
  • 题库
  • }*/} @@ -389,6 +401,15 @@ class Infos extends Component{ {/* --------------------------------------------------------------------- */} + + {/* 众包 */} + {/* http://localhost:3007/courses/1309/homework/9300/setting */} + () + } + > + {/* 课堂 */} {/* http://localhost:3007/courses/1309/homework/9300/setting */} () } > + + () diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js new file mode 100644 index 000000000..8222c951b --- /dev/null +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -0,0 +1,197 @@ +import React, { Component } from 'react'; +import { SnackbarHOC } from 'educoder'; +import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; +import {Tooltip,Menu,Pagination,Spin} from 'antd'; +import Loadable from 'react-loadable'; +import Loading from '../../../Loading'; +import axios from 'axios'; +import NoneData from '../../courses/coursesPublic/NoneData' +import {getImageUrl} from 'educoder'; +import { TPMIndexHOC } from '../../tpm/TPMIndexHOC'; +import { CNotificationHOC } from '../../courses/common/CNotificationHOC' +import "./usersInfo.css" +import Create from './publicCreatNew' + +class InfosCourse extends Component{ + constructor(props){ + super(props); + this.state={ + category:undefined, + status:undefined, + page:1, + per_page:16, + + totalCount:undefined, + data:undefined, + isSpin:false + } + } + + componentDidMount=()=>{ + this.setState({ + isSpin:true + }) + let{category,status,page}=this.state; + this.getCourses(category,status,page); + } + + getCourses=(category,status,page)=>{ + let url=`/users/${this.props.match.params.username}/courses.json`; + axios.get((url),{params:{ + category, + status, + page, + per_page: this.props.is_current && category && page ==1?17:16 + }}).then((result)=>{ + if(result){ + this.setState({ + totalCount:result.data.count, + data:result.data, + isSpin:false + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + + //切换种类 + changeCategory=(cate)=>{ + this.setState({ + category:cate, + page:1, + isSpin:true + }) + let{status}=this.state; + this.getCourses(cate,status,1); + } + //切换状态 + changeStatus=(status)=>{ + this.setState({ + status:status, + page:1, + isSpin:true + }) + let{category}=this.state; + this.getCourses(category,status,1); + } + //切换页数 + changePage=(page)=>{ + this.setState({ + page, + isSpin:true + }) + let{category,status}=this.state; + this.getCourses(category,status,page); + } + + // 进入课堂 + turnToCourses=(url,flag)=>{ + if(flag){ + this.props.history.push(url); + } + } + + render(){ + let{ + category, + status, + page, + data, + totalCount, + isSpin + } = this.state; + let is_current=this.props.is_current; + + console.log(this.props.current_user&&this.props.current_user.user_identity==="学生") + return( +
    + +
    +
  • this.changeCategory()}>全部
  • +
  • this.changeCategory("manage")}>{is_current ? "我":"TA"}管理的
  • +
  • this.changeCategory("study")}>{is_current ? "我":"TA"}学习的
  • +
    + +

    + 共{totalCount}个 + 发布时间 +

    +
    + { + page == 1 && is_current && + this.props.current_user && this.props.current_user.user_identity != "学生" ? : "" + } + { + (!data || data.courses.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && + } + { + data && data.courses && data.courses.map((item,key)=>{ + return( +
    this.turnToCourses(`${item.first_category_url}`,item.can_visited)} style={{"cursor": "pointer"}}> + { + item.is_public == 1 && + +
    + + 公开 +
    + } + { + item.can_visited ==false? +
    + +

    非成员不能访问

    +
    :"" + } + +
    +

    + {item.name} +

    + 用户 +

    {item.teacher && item.teacher.real_name}

    +

    {item.teacher && item.teacher.school_name}

    +
    +
    +
    + { + item.members_count > 0 && + + + {item.members_count} + + } + { + item.homework_commons_count > 0 && + + + {item.homework_commons_count} + + } + { + item.attachments_count > 0 && + + + {item.attachments_count} + + } +
    +
    +
    + ) + }) + } +
    + { + totalCount > 15 && +
    + +
    + } +
    +
    + ) + } +} +export default InfosCourse; \ No newline at end of file From 60137fc05aeb5b30008f19890dd000fd5b779e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:08:07 +0800 Subject: [PATCH 02/28] b --- public/react/src/App.js | 2 +- .../projectPackages/PackageIndex/PackageConcent.js | 4 ++-- .../PackageIndexNEITaskDetails.js | 6 +++--- .../PackageIndexNEIBannerConcent.js | 4 ++-- .../PackageIndexNewandEdit/PackageIndexNEISubmit.js | 4 ++-- .../src/modules/projectPackages/ProjectPackageIndex.js | 8 ++++---- public/react/src/modules/user/usersInfo/InfosPackage.js | 6 ------ 7 files changed, 14 insertions(+), 20 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index e713cd0fd..6d1e2a521 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -304,7 +304,7 @@ class App extends Component { {/**/} {/*众包创新*/} - + {/*认证*/} diff --git a/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js b/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js index cfc54bb98..921c3e555 100644 --- a/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js @@ -158,7 +158,7 @@ class PackageConcent extends Component { enterButton={ 搜索} onSearch={ (value)=>this.setdatafuns(value)} />

    @@ -224,7 +224,7 @@ class PackageConcent extends Component { diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index 4788a7dc1..bcd46dbb0 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -230,7 +230,7 @@ class PackageIndexNEITaskDetails extends Component { } goback = () => { // window.history.go(-1) - window.location.href="/crowdsourcings"; + window.location.href="/crowdsourcing"; } render() { @@ -252,7 +252,7 @@ class PackageIndexNEITaskDetails extends Component { '} className={"fl"}> {/*{this.props.current_user.username}*/} - 众包创新 + 众包创新 {data&&data.title} @@ -352,7 +352,7 @@ class PackageIndexNEITaskDetails extends Component { 需求详情: {data&&data.status==="pending"&&data&&data.operation.can_select_bidding_user===true?:""} diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index e4926e02c..3caedebde 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -454,7 +454,7 @@ class PackageIndexNEIBannerConcent extends Component { if(type===true){ this.props.setPublicationfun(response.data.id) }else{ - window.location.href="/crowdsourcings/"+response.data.id + window.location.href="/crowdsourcing/"+response.data.id } this.setState({ springtype:false @@ -502,7 +502,7 @@ class PackageIndexNEIBannerConcent extends Component { if(type===true){ this.props.setPublicationfun(response.data.id) }else{ - window.location.href="/crowdsourcings/"+response.data.id + window.location.href="/crowdsourcing/"+response.data.id } this.setState({ springtype:false diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js index a64e222e4..9f287e90e 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js @@ -14,10 +14,10 @@ class PackageIndexNEISubmit extends Component { } setageload=(sum)=>{ if(sum===undefined){ - window.location.href="/crowdsourcings/new" + window.location.href="/crowdsourcing/new" }else{ // this.props.history.push("/project_packages/"+sum) - window.location.href="/crowdsourcings/"+sum + window.location.href="/crowdsourcing/"+sum } } diff --git a/public/react/src/modules/projectPackages/ProjectPackageIndex.js b/public/react/src/modules/projectPackages/ProjectPackageIndex.js index 6f2e32b8b..097e012e0 100644 --- a/public/react/src/modules/projectPackages/ProjectPackageIndex.js +++ b/public/react/src/modules/projectPackages/ProjectPackageIndex.js @@ -43,25 +43,25 @@ class ProjectPackageIndex extends Component { {/*众包首页*/} - () } > - () } > - () } > - () } diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js index 8222c951b..135f9f52e 100644 --- a/public/react/src/modules/user/usersInfo/InfosPackage.js +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -183,12 +183,6 @@ class InfosCourse extends Component{ }) } - { - totalCount > 15 && -
    - -
    - } ) From 0cce3471436edac605a17663bca16e972d541fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:20:52 +0800 Subject: [PATCH 03/28] b --- .../PackageIndexNEITaskDetails.js | 8 ++++---- .../PackageIndexNEIBannerConcent.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index bcd46dbb0..dd1e176e4 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -2,7 +2,7 @@ import React, {Component} from 'react'; import {Link} from "react-router-dom"; import axios from 'axios'; import { Input ,Icon,Button,Pagination,DatePicker,Breadcrumb} from 'antd'; -import { handleDateString,markdownToHTML,bytesToSize} from 'educoder'; +import { handleDateString,markdownToHTML,bytesToSize,getImageUrl} from 'educoder'; import NEITaskDetailsModel from './NEITaskDetailsModel'; import moment from 'moment'; import '../packageconcnet.css'; @@ -281,7 +281,7 @@ class PackageIndexNEITaskDetails extends Component {
    + src={getImageUrl("images/"+data&&data.creator.image_url)} width="70"/>
    {data&&data.creator.name} @@ -403,7 +403,7 @@ class PackageIndexNEITaskDetails extends Component { return(
    {item.status==="bidding_won"?:""} - +

    {item.name}

    {this.props.current_user&&this.props.current_user.login!=item.login? 头像联系TA @@ -451,7 +451,7 @@ class PackageIndexNEITaskDetails extends Component { return( ) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 3caedebde..04a8c9c4a 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -67,7 +67,7 @@ class PackageIndexNEIBannerConcent extends Component { } } componentDidUpdate = (prevProps) => { - if(prevProps.current_user.username!=this.props.current_user.username){ + if(prevProps.current_user.username!=this.props.current_user&&this.props.current_user.username){ this.setState({ contact_name:this.props.current_user&&this.props.current_user.username }) From 578f2ab200a4cd135c85ffb17e073cb15b288eeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:28:18 +0800 Subject: [PATCH 04/28] b --- .../PackageIndexNEIBannerConcent.js | 14 ++--- .../modules/user/usersInfo/InfosPackage.js | 58 +------------------ 2 files changed, 8 insertions(+), 64 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 04a8c9c4a..8db157a65 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -66,13 +66,13 @@ class PackageIndexNEIBannerConcent extends Component { categories:[] } } - componentDidUpdate = (prevProps) => { - if(prevProps.current_user.username!=this.props.current_user&&this.props.current_user.username){ - this.setState({ - contact_name:this.props.current_user&&this.props.current_user.username - }) - } - } + // componentDidUpdate = (prevProps) => { + // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user&&prevProps.current_user.username){ + // this.setState({ + // contact_name:this.props.current_user&&this.props.current_user.username + // }) + // } + // } componentDidMount() { window.document.title = '众包创新' diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js index 135f9f52e..ad1a38964 100644 --- a/public/react/src/modules/user/usersInfo/InfosPackage.js +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -125,63 +125,7 @@ class InfosCourse extends Component{ { (!data || data.courses.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && } - { - data && data.courses && data.courses.map((item,key)=>{ - return( -
    this.turnToCourses(`${item.first_category_url}`,item.can_visited)} style={{"cursor": "pointer"}}> - { - item.is_public == 1 && - -
    - - 公开 -
    - } - { - item.can_visited ==false? -
    - -

    非成员不能访问

    -
    :"" - } - -
    -

    - {item.name} -

    - 用户 -

    {item.teacher && item.teacher.real_name}

    -

    {item.teacher && item.teacher.school_name}

    -
    -
    -
    - { - item.members_count > 0 && - - - {item.members_count} - - } - { - item.homework_commons_count > 0 && - - - {item.homework_commons_count} - - } - { - item.attachments_count > 0 && - - - {item.attachments_count} - - } -
    -
    -
    - ) - }) - } +
    From a70fc2c8c9753b287fef9240f5a585984c113849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:36:17 +0800 Subject: [PATCH 05/28] b --- .../PackageIndexNEIBannerConcent.js | 17 ++++++++++------- .../src/modules/user/usersInfo/InfosPackage.js | 15 +++------------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 8db157a65..eaacc9367 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -66,13 +66,7 @@ class PackageIndexNEIBannerConcent extends Component { categories:[] } } - // componentDidUpdate = (prevProps) => { - // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user&&prevProps.current_user.username){ - // this.setState({ - // contact_name:this.props.current_user&&this.props.current_user.username - // }) - // } - // } + componentDidMount() { window.document.title = '众包创新' @@ -99,6 +93,7 @@ class PackageIndexNEIBannerConcent extends Component { }) }else{ + console.log(this.props.current_user&&this.props.current_user.username) this.setState({ contact_name:this.props.current_user&&this.props.current_user.username }) @@ -121,6 +116,14 @@ class PackageIndexNEIBannerConcent extends Component { // this.contentMdRef.current.setValue("测试赋值") } + + // componentDidUpdate = (prevProps) => { + // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user&&prevProps.current_user.username){ + // this.setState({ + // contact_name:this.props.current_user&&this.props.current_user.username + // }) + // } + // } //获取验证码; getverificationcode =()=>{ // if (this.state.logins&&this.state.logins.length === 0) { diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js index ad1a38964..638b2ecd2 100644 --- a/public/react/src/modules/user/usersInfo/InfosPackage.js +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -110,23 +110,14 @@ class InfosCourse extends Component{

    - 共{totalCount}个 + 共{0}个 发布时间

    -
    - { - page == 1 && is_current && - this.props.current_user && this.props.current_user.user_identity != "学生" ? : "" - } - { - (!data || data.courses.length==0) && (!is_current || (this.props.current_user && this.props.current_user.user_identity === "学生" )) && - } - -
    +
    ) From 6e96556e1a662795f636ce989ebbd68d9f5a9a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:39:54 +0800 Subject: [PATCH 06/28] b --- .../PackageIndexNEIBannerConcent.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index eaacc9367..96980160b 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -117,13 +117,13 @@ class PackageIndexNEIBannerConcent extends Component { // this.contentMdRef.current.setValue("测试赋值") } - // componentDidUpdate = (prevProps) => { - // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user&&prevProps.current_user.username){ - // this.setState({ - // contact_name:this.props.current_user&&this.props.current_user.username - // }) - // } - // } + componentDidUpdate = (prevProps) => { + if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user.username){ + this.setState({ + contact_name:this.props.current_user&&this.props.current_user.username + }) + } + } //获取验证码; getverificationcode =()=>{ // if (this.state.logins&&this.state.logins.length === 0) { From 6febcf56e3c4c5322983f81f11cba4037b268004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:42:16 +0800 Subject: [PATCH 07/28] b --- .../PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 96980160b..42a107444 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -859,7 +859,7 @@ class PackageIndexNEIBannerConcent extends Component { placeholder="请输入手机号" disabled={true} /> - + this.editmodels()}>

    :""} @@ -900,7 +900,7 @@ class PackageIndexNEIBannerConcent extends Component { {/**/} - + this.modalCancel()}>X

    :""} From 00390cffbd5216b5d541218a12b9c4d4625dea75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:48:54 +0800 Subject: [PATCH 08/28] b --- .../PackageIndexNEIBannerConcent.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 42a107444..a279f7f13 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -118,11 +118,14 @@ class PackageIndexNEIBannerConcent extends Component { } componentDidUpdate = (prevProps) => { - if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user.username){ - this.setState({ - contact_name:this.props.current_user&&this.props.current_user.username - }) - } + console.log(this.props.current_user) + console.log("____________") + console.log(prevProps.current_user) + // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user.username){ + // this.setState({ + // contact_name:this.props.current_user&&this.props.current_user.username + // }) + // } } //获取验证码; getverificationcode =()=>{ From 4ab00b3a663eed8460ee5750e1661e2416db3116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:54:05 +0800 Subject: [PATCH 09/28] b --- .../PackageIndexNEIBannerConcent.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index a279f7f13..e8ae230a7 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -118,14 +118,11 @@ class PackageIndexNEIBannerConcent extends Component { } componentDidUpdate = (prevProps) => { - console.log(this.props.current_user) - console.log("____________") - console.log(prevProps.current_user) - // if(this.props.current_user&&this.props.current_user.username!=prevProps.current_user.username){ - // this.setState({ - // contact_name:this.props.current_user&&this.props.current_user.username - // }) - // } + if(prevProps.current_user.username!=this.props.current_user){ + this.setState({ + contact_name:this.props.current_user&&this.props.current_user.username + }) + } } //获取验证码; getverificationcode =()=>{ From 336bc6edc30b3ec7429ce896ada7afe6e1c1ad52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 15:57:10 +0800 Subject: [PATCH 10/28] b --- .../PackageIndexNEIBannerConcent.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index e8ae230a7..a9de27f27 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -119,9 +119,12 @@ class PackageIndexNEIBannerConcent extends Component { componentDidUpdate = (prevProps) => { if(prevProps.current_user.username!=this.props.current_user){ - this.setState({ - contact_name:this.props.current_user&&this.props.current_user.username - }) + if(this.props.current_user!=undefined){ + this.setState({ + contact_name:this.props.current_user.username + }) + } + } } //获取验证码; From 728784e20c6ee3c6840f90620e8c01e92690de17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:00:43 +0800 Subject: [PATCH 11/28] b --- .../PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index a9de27f27..0dda4f029 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -120,6 +120,7 @@ class PackageIndexNEIBannerConcent extends Component { componentDidUpdate = (prevProps) => { if(prevProps.current_user.username!=this.props.current_user){ if(this.props.current_user!=undefined){ + console.log(this.props.current_user) this.setState({ contact_name:this.props.current_user.username }) From c1e0871861888ecbc2b78b8cdd88b3519d8b0b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:03:16 +0800 Subject: [PATCH 12/28] b --- .../PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index dd1e176e4..1dd130a87 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -236,7 +236,7 @@ class PackageIndexNEITaskDetails extends Component { render() { let {overtype,data}=this.state; // console.log(data&&data.creator.login) - // console.log(this.props.current_user.login) + console.log(data) return (
    From 25b313e501fe7b2bdc6fdbd8f24e370e09bd399b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:13:15 +0800 Subject: [PATCH 13/28] b --- .../PackageIndexNEITaskDetails.js | 2 +- .../PackageIndexNEIBannerConcent.js | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index 1dd130a87..8c090ba1e 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -238,7 +238,7 @@ class PackageIndexNEITaskDetails extends Component { // console.log(data&&data.creator.login) console.log(data) return ( -
    + data===undefined?"":
    { - if(prevProps.current_user.username!=this.props.current_user){ - if(this.props.current_user!=undefined){ - console.log(this.props.current_user) - this.setState({ - contact_name:this.props.current_user.username - }) - } - - } - } + // componentDidUpdate = (prevProps) => { + // if(prevProps.current_user.username!=this.props.current_user){ + // if(this.props.current_user!=undefined){ + // console.log(this.props.current_user) + // this.setState({ + // contact_name:this.props.current_user.username + // }) + // } + // + // } + // } //获取验证码; getverificationcode =()=>{ // if (this.state.logins&&this.state.logins.length === 0) { From e0444d03bfea8df6a2d600e021467e235afd79cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:19:03 +0800 Subject: [PATCH 14/28] b --- .../PackageIndexNEITaskDetails.js | 2 +- .../PackageIndexNEIBannerConcent.js | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index 8c090ba1e..b71c36eec 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -281,7 +281,7 @@ class PackageIndexNEITaskDetails extends Component {
    + src={"/images/"+data&&data.creator.image_url} width="70"/>
    {data&&data.creator.name} diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index 34eaa00f7..db9e299dd 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -117,17 +117,14 @@ class PackageIndexNEIBannerConcent extends Component { // this.contentMdRef.current.setValue("测试赋值") } - // componentDidUpdate = (prevProps) => { - // if(prevProps.current_user.username!=this.props.current_user){ - // if(this.props.current_user!=undefined){ - // console.log(this.props.current_user) - // this.setState({ - // contact_name:this.props.current_user.username - // }) - // } - // - // } - // } + componentDidUpdate = (prevProps) => { + if(prevProps.current_user.username != this.props.current_user.username){ + console.log(this.props.current_user) + this.setState({ + contact_name:this.props.current_user.username + }) + } + } //获取验证码; getverificationcode =()=>{ // if (this.state.logins&&this.state.logins.length === 0) { From 7b6324f775d19b7cd0e97f17983d6532b750ee91 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 16:22:34 +0800 Subject: [PATCH 15/28] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E7=9A=84=E6=88=90=E7=BB=A9excel=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 7c8c07d01..126362fe8 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1256,13 +1256,15 @@ class ExercisesController < ApplicationController normal_status(-1,"试卷未发布") elsif (@exercise_users_size == 0) || ( @export_ex_users&.exercise_user_committed.size == 0) normal_status(-1,"暂无用户提交") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else respond_to do |format| format.xlsx{ get_export_users(@exercise,@course,@export_ex_users) exercise_export_name_ = "#{current_user.real_name}_#{@course.name}_#{@exercise.exercise_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" - render xlsx: "#{exercise_export_name_.strip}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns} + render xlsx: "#{exercise_export_name_.strip}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns},cookies:{fileDownload:true,HttpOnly:false} } end end From d49209b3e18c9550f7c457ae3f5dd846b1787ae6 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 16:26:33 +0800 Subject: [PATCH 16/28] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E7=9A=84excel,pdf,zip=E7=9A=84=E5=AF=BC=E5=87=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 6 +++++- app/controllers/zips_controller.rb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 126362fe8..c22bd3217 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1283,7 +1283,11 @@ class ExercisesController < ApplicationController @exercise_questions = @exercise.exercise_questions.includes(:exercise_choices).order("question_number ASC") filename_ = "#{@exercise.user.real_name}_#{@course.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}.pdf" stylesheets = "#{Rails.root}/app/templates/exercise_export/exercise_export.css" - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets,cookies:{fileDownload:true,HttpOnly:false} + end end #空白试卷预览页面,仅供测试使用,无其他任何用途 diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index f4822b96b..f3ae9df5a 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -18,7 +18,11 @@ class ZipsController < ApplicationController exercises = ExportExercisesService.new(@exercise,@ex_users,@request_url) file_name_ = filename_for_content_disposition(exercises.filename) - send_file exercises.ex_zip, filename: file_name_, type: 'application/zip' + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + send_file exercises.ex_zip, filename: file_name_, type: 'application/zip', cookies:{fileDownload:true,HttpOnly:false} + end rescue Exception => e normal_status(-1, e.message) end From 07119404389c454797b7b2070e0cb03c1878d88b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:36:01 +0800 Subject: [PATCH 17/28] b --- .../PackageIndexNEITaskDetails.js | 5 +++-- .../PackageIndexNewandEdit/PackageIndexNEISubmit.js | 4 ++-- .../PackageIndexNewandEdit/PackageIndexNewandEditIndex.js | 7 +++++++ .../react/src/modules/projectPackages/packageconcnet.css | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index b71c36eec..35ca952a7 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -265,7 +265,7 @@ class PackageIndexNEITaskDetails extends Component {
    -
    +
    {data&&data.status==="pending"?
    @@ -281,7 +281,8 @@ class PackageIndexNEITaskDetails extends Component {
    + src={`/images/${data&&data.creator.image_url}`} + width="70"/>
    {data&&data.creator.name} diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js index 9f287e90e..e44e654b9 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js @@ -29,8 +29,8 @@ class PackageIndexNEISubmit extends Component {

    -
    恭喜!
    -
    提交成功
    +
    恭喜!
    +
    提交成功
    平台正在审核您的申请,审核结果将以平台消息的形式通知您
    this.setageload(this.props.id)}>查看发布需求 diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js index 1571fd77a..0481577bf 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js @@ -27,6 +27,12 @@ class PackageIndexNewandEditIndex extends Component{ id:ids }) } + + goback = () => { + // window.history.go(-1) + window.location.href="/crowdsourcing"; + } + render() { let {setPublication}=this.state; return ( @@ -37,6 +43,7 @@ class PackageIndexNewandEditIndex extends Component{

    {this.props.match.params.id!=undefined?"编辑":"新建"} + 返回

    diff --git a/public/react/src/modules/projectPackages/packageconcnet.css b/public/react/src/modules/projectPackages/packageconcnet.css index 74119e2b4..7a8c11897 100644 --- a/public/react/src/modules/projectPackages/packageconcnet.css +++ b/public/react/src/modules/projectPackages/packageconcnet.css @@ -167,7 +167,7 @@ color:#999; } .padding251{ - padding: 0px 251px; + padding: 0px 245px; } .ant-modal-title{ From de4dfc5c06a149378a9067107afb66d4d569d758 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 16:36:57 +0800 Subject: [PATCH 18/28] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84excel=E5=92=8C?= =?UTF-8?q?zip=E5=AF=BC=E5=87=BA=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 8 ++++++-- app/controllers/zips_controller.rb | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 5cccb3ee7..628da5bda 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -207,19 +207,23 @@ class HomeworkCommonsController < ApplicationController tip_exception(403, "无权限操作") elsif @work_excel.blank? || @work_excel.size == 0 normal_status(-1,"暂无用户提交!") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else respond_to do |format| format.xlsx{ student_work_to_xlsx(@work_excel,@homework) exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@homework.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" render xlsx: "#{exercise_export_name.strip}",template: "homework_commons/works_list.xlsx.axlsx",locals: - {table_columns: @work_head_cells,task_users: @work_cells_column} + {table_columns: @work_head_cells,task_users: @work_cells_column},cookies:{fileDownload:true,HttpOnly:false} } end end elsif params[:format] == "zip" if @user_course_identity >= Course::STUDENT tip_exception(403, "无权限操作") + elsif params[:export].present? && params[:export] + normal_status(0,"正在下载中") else if @work_excel.present? zip_works = @work_excel&.where("work_status > 0") @@ -233,7 +237,7 @@ class HomeworkCommonsController < ApplicationController format.zip{ zipfile = zip_homework_common @homework, zip_works file = decode64(zipfile[0][:base64file]) - send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' + send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip',cookies:{fileDownload:true,HttpOnly:false} } end else diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index f3ae9df5a..e531776a9 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -8,7 +8,12 @@ class ZipsController < ApplicationController def shixun_report service = BatchExportShixunReportService.new(@homework, @all_student_works) filename_ = filename_for_content_disposition(service.filename) - send_file service.zip, filename: filename_, type: 'application/zip' + if params[:export].present? && params[:export] + normal_status(0,"正在下载中") + else + send_file service.zip, filename: filename_, type: 'application/zip',cookies:{fileDownload:true,HttpOnly:false} + end + rescue BatchExportShixunReportService::Error => ex normal_status(-1, ex.message) end From 22da157241579b9d0a3fd542a364e5f92a0f7cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:45:18 +0800 Subject: [PATCH 19/28] b --- public/react/src/App.js | 2 +- .../projectPackages/PackageIndex/PackageConcent.js | 4 ++-- .../PackageIndexNEITaskDetails.js | 6 +++--- .../PackageIndexNEIBannerConcent.js | 4 ++-- .../PackageIndexNewandEdit/PackageIndexNEISubmit.js | 4 ++-- .../PackageIndexNewandEdit/PackageIndexNewandEditIndex.js | 2 +- .../src/modules/projectPackages/ProjectPackageIndex.js | 8 ++++---- public/react/src/modules/tpm/NewHeader.js | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index 6d1e2a521..e713cd0fd 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -304,7 +304,7 @@ class App extends Component { {/**/} {/*众包创新*/} - + {/*认证*/} diff --git a/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js b/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js index 921c3e555..cfc54bb98 100644 --- a/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndex/PackageConcent.js @@ -158,7 +158,7 @@ class PackageConcent extends Component { enterButton={ 搜索} onSearch={ (value)=>this.setdatafuns(value)} />

    @@ -224,7 +224,7 @@ class PackageConcent extends Component { diff --git a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js index 35ca952a7..ac7c8a1a5 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js +++ b/public/react/src/modules/projectPackages/PackageIndexNEITaskDetails/PackageIndexNEITaskDetails.js @@ -230,7 +230,7 @@ class PackageIndexNEITaskDetails extends Component { } goback = () => { // window.history.go(-1) - window.location.href="/crowdsourcing"; + window.location.href="/crowdsourcings"; } render() { @@ -252,7 +252,7 @@ class PackageIndexNEITaskDetails extends Component { '} className={"fl"}> {/*{this.props.current_user.username}*/} - 众包创新 + 众包创新 {data&&data.title} @@ -353,7 +353,7 @@ class PackageIndexNEITaskDetails extends Component { 需求详情: {data&&data.status==="pending"&&data&&data.operation.can_select_bidding_user===true?:""} diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index db9e299dd..ab362b812 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -458,7 +458,7 @@ class PackageIndexNEIBannerConcent extends Component { if(type===true){ this.props.setPublicationfun(response.data.id) }else{ - window.location.href="/crowdsourcing/"+response.data.id + window.location.href="/crowdsourcings/"+response.data.id } this.setState({ springtype:false @@ -506,7 +506,7 @@ class PackageIndexNEIBannerConcent extends Component { if(type===true){ this.props.setPublicationfun(response.data.id) }else{ - window.location.href="/crowdsourcing/"+response.data.id + window.location.href="/crowdsourcings/"+response.data.id } this.setState({ springtype:false diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js index e44e654b9..932b9295f 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEISubmit.js @@ -14,10 +14,10 @@ class PackageIndexNEISubmit extends Component { } setageload=(sum)=>{ if(sum===undefined){ - window.location.href="/crowdsourcing/new" + window.location.href="/crowdsourcings/new" }else{ // this.props.history.push("/project_packages/"+sum) - window.location.href="/crowdsourcing/"+sum + window.location.href="/crowdsourcings/"+sum } } diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js index 0481577bf..8d73a6e55 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNewandEditIndex.js @@ -30,7 +30,7 @@ class PackageIndexNewandEditIndex extends Component{ goback = () => { // window.history.go(-1) - window.location.href="/crowdsourcing"; + window.location.href="/crowdsourcings"; } render() { diff --git a/public/react/src/modules/projectPackages/ProjectPackageIndex.js b/public/react/src/modules/projectPackages/ProjectPackageIndex.js index 097e012e0..6f2e32b8b 100644 --- a/public/react/src/modules/projectPackages/ProjectPackageIndex.js +++ b/public/react/src/modules/projectPackages/ProjectPackageIndex.js @@ -43,25 +43,25 @@ class ProjectPackageIndex extends Component { {/*众包首页*/} - () } > - () } > - () } > - () } diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 79b0aa443..34ee824aa 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -718,7 +718,7 @@ submittojoinclass=(value)=>{
  • 教学案例
  • 众包创新
  • 交流问答
  • Date: Tue, 30 Jul 2019 16:47:01 +0800 Subject: [PATCH 20/28] =?UTF-8?q?=E4=BC=97=E5=8C=85=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/tpm/NewHeader.js | 2 +- public/react/src/modules/user/usersInfo/Infos.js | 10 +++++----- .../react/src/modules/user/usersInfo/InfosPackage.js | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 34ee824aa..b84982d86 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -816,7 +816,7 @@ submittojoinclass=(value)=>{
  • 我的实训
  • 我的实践课程
  • 我的项目
  • -
  • 我的众包
  • + {/*
  • 我的众包
  • */}
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} {/*
  • this.trialapplications()} >试用申请
  • */} diff --git a/public/react/src/modules/user/usersInfo/Infos.js b/public/react/src/modules/user/usersInfo/Infos.js index 5286c5797..f20cd5be5 100644 --- a/public/react/src/modules/user/usersInfo/Infos.js +++ b/public/react/src/modules/user/usersInfo/Infos.js @@ -384,11 +384,11 @@ class Infos extends Component{ to={`/users/${username}/projects`}>项目 -
  • - this.setState({moduleName: 'package'})} - to={`/users/${username}/package`}>众包 -
  • + {/*
  • */} + {/* this.setState({moduleName: 'package'})}*/} + {/*to={`/users/${username}/package`}>众包*/} + {/*
  • */} {/*{ data && data.identity!="学生" &&
  • 题库
  • }*/} diff --git a/public/react/src/modules/user/usersInfo/InfosPackage.js b/public/react/src/modules/user/usersInfo/InfosPackage.js index 638b2ecd2..f1077cd62 100644 --- a/public/react/src/modules/user/usersInfo/InfosPackage.js +++ b/public/react/src/modules/user/usersInfo/InfosPackage.js @@ -12,7 +12,7 @@ import { CNotificationHOC } from '../../courses/common/CNotificationHOC' import "./usersInfo.css" import Create from './publicCreatNew' -class InfosCourse extends Component{ +class InfosPackage extends Component{ constructor(props){ super(props); this.state={ @@ -123,4 +123,4 @@ class InfosCourse extends Component{ ) } } -export default InfosCourse; \ No newline at end of file +export default InfosPackage; \ No newline at end of file From 7f8e1acd9d5de0d2cb274f95b0f73cdae0270e73 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 16:50:23 +0800 Subject: [PATCH 21/28] fixbug --- app/controllers/homework_commons_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 628da5bda..adabc330f 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -212,10 +212,11 @@ class HomeworkCommonsController < ApplicationController else respond_to do |format| format.xlsx{ + cookies.signed[:fileDownload] = { value: true, httponly: false } student_work_to_xlsx(@work_excel,@homework) exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@homework.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" render xlsx: "#{exercise_export_name.strip}",template: "homework_commons/works_list.xlsx.axlsx",locals: - {table_columns: @work_head_cells,task_users: @work_cells_column},cookies:{fileDownload:true,HttpOnly:false} + {table_columns: @work_head_cells,task_users: @work_cells_column} } end end @@ -235,9 +236,10 @@ class HomeworkCommonsController < ApplicationController if status == 0 respond_to do |format| format.zip{ + cookies.signed[:fileDownload] = { value: true, httponly: false } zipfile = zip_homework_common @homework, zip_works file = decode64(zipfile[0][:base64file]) - send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip',cookies:{fileDownload:true,HttpOnly:false} + send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' } end else From 7ccc549ccd336422fff3a5e75b86d08211da7834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 16:57:27 +0800 Subject: [PATCH 22/28] b --- .../PackageIndexNEIBannerConcent.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index ab362b812..a7e998fea 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -94,9 +94,6 @@ class PackageIndexNEIBannerConcent extends Component { }) }else{ console.log(this.props.current_user&&this.props.current_user.username) - this.setState({ - contact_name:this.props.current_user&&this.props.current_user.username - }) } let Url = `/project_package_categories.json`; @@ -114,16 +111,23 @@ class PackageIndexNEIBannerConcent extends Component { console.log(error) }) + this.setState({ + contact_name:this.props.current_user&&this.props.current_user.username + }) + // this.contentMdRef.current.setValue("测试赋值") } componentDidUpdate = (prevProps) => { + if(prevProps.current_user.username != this.props.current_user.username){ - console.log(this.props.current_user) + if(this.props.current_user!=undefined){ this.setState({ contact_name:this.props.current_user.username }) + } } + } //获取验证码; getverificationcode =()=>{ From 8f7c8505294f917989bcc08c787bc804bbe82eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 17:02:25 +0800 Subject: [PATCH 23/28] b --- .../PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index a7e998fea..ccc335115 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -120,14 +120,14 @@ class PackageIndexNEIBannerConcent extends Component { componentDidUpdate = (prevProps) => { - if(prevProps.current_user.username != this.props.current_user.username){ + if(prevProps.current_user!=this.props.current_user){ if(this.props.current_user!=undefined){ this.setState({ contact_name:this.props.current_user.username }) } } - + } //获取验证码; getverificationcode =()=>{ From 49d4f3f9d79de3dfbf8a46d541bf157fcd9ac0ca Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 17:04:39 +0800 Subject: [PATCH 24/28] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84excel=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercises_controller.rb | 4 ++-- app/controllers/homework_commons_controller.rb | 3 ++- app/controllers/zips_controller.rb | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index c22bd3217..915a4e22c 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1264,7 +1264,7 @@ class ExercisesController < ApplicationController get_export_users(@exercise,@course,@export_ex_users) exercise_export_name_ = "#{current_user.real_name}_#{@course.name}_#{@exercise.exercise_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" - render xlsx: "#{exercise_export_name_.strip}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns},cookies:{fileDownload:true,HttpOnly:false} + render xlsx: "#{exercise_export_name_.strip}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns} } end end @@ -1286,7 +1286,7 @@ class ExercisesController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets,cookies:{fileDownload:true,HttpOnly:false} + render pdf: 'exercise_export/blank_exercise', filename: filename_, stylesheets: stylesheets end end diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index adabc330f..f9e0e6436 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -212,7 +212,8 @@ class HomeworkCommonsController < ApplicationController else respond_to do |format| format.xlsx{ - cookies.signed[:fileDownload] = { value: true, httponly: false } + cookies[:fileDownload] = true + cookies[:httponly] = false student_work_to_xlsx(@work_excel,@homework) exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@homework.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" render xlsx: "#{exercise_export_name.strip}",template: "homework_commons/works_list.xlsx.axlsx",locals: diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index e531776a9..209871ad2 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -11,7 +11,7 @@ class ZipsController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - send_file service.zip, filename: filename_, type: 'application/zip',cookies:{fileDownload:true,HttpOnly:false} + send_file service.zip, filename: filename_, type: 'application/zip' end rescue BatchExportShixunReportService::Error => ex @@ -26,7 +26,7 @@ class ZipsController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else - send_file exercises.ex_zip, filename: file_name_, type: 'application/zip', cookies:{fileDownload:true,HttpOnly:false} + send_file exercises.ex_zip, filename: file_name_, type: 'application/zip' end rescue Exception => e normal_status(-1, e.message) From 85ddec348daf05f7e8d1c15a465c7ac520dcf60d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 17:07:33 +0800 Subject: [PATCH 25/28] =?UTF-8?q?=E4=BC=97=E5=8C=85=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js index ccc335115..eae5589f2 100644 --- a/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js +++ b/public/react/src/modules/projectPackages/PackageIndexNewandEdit/PackageIndexNEIBannerConcent.js @@ -715,7 +715,7 @@ class PackageIndexNEIBannerConcent extends Component {

    -
    +
    From 63c4bf069ab1f7caa8685c47c25f46b9ac879445 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 30 Jul 2019 17:11:13 +0800 Subject: [PATCH 26/28] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=9A=84excel=E5=AF=BC=E5=87=BA1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 3 +-- app/controllers/zips_controller.rb | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index f9e0e6436..dfa6795fb 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -213,7 +213,6 @@ class HomeworkCommonsController < ApplicationController respond_to do |format| format.xlsx{ cookies[:fileDownload] = true - cookies[:httponly] = false student_work_to_xlsx(@work_excel,@homework) exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@homework.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" render xlsx: "#{exercise_export_name.strip}",template: "homework_commons/works_list.xlsx.axlsx",locals: @@ -237,7 +236,7 @@ class HomeworkCommonsController < ApplicationController if status == 0 respond_to do |format| format.zip{ - cookies.signed[:fileDownload] = { value: true, httponly: false } + cookies[:fileDownload] = true zipfile = zip_homework_common @homework, zip_works file = decode64(zipfile[0][:base64file]) send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index 209871ad2..bea5784c7 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -11,6 +11,7 @@ class ZipsController < ApplicationController if params[:export].present? && params[:export] normal_status(0,"正在下载中") else + cookies[:fileDownload] = true send_file service.zip, filename: filename_, type: 'application/zip' end From 9f1e0c43fe764dcab42a34ce61e64d3b0aec3ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 30 Jul 2019 17:11:24 +0800 Subject: [PATCH 27/28] =?UTF-8?q?=E4=BC=97=E5=8C=85=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/educoder/path.png | Bin 0 -> 59814 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/educoder/path.png diff --git a/public/images/educoder/path.png b/public/images/educoder/path.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b6f1715d7484cd22de10d27f241ac8522f0430 GIT binary patch literal 59814 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ʅpGwUM9nIkJ9*K|gbD)C>J{ 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 Date: Tue, 30 Jul 2019 17:17:07 +0800 Subject: [PATCH 28/28] banner --- public/react/public/css/edu-all.css | 2 +- public/stylesheets/educoder/edu-all.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/public/css/edu-all.css b/public/react/public/css/edu-all.css index 8b7c727a9..fad3568b4 100644 --- a/public/react/public/css/edu-all.css +++ b/public/react/public/css/edu-all.css @@ -420,7 +420,7 @@ table.text-file{} /*-------------------------------实训路径-------------------------------*/ -.path-head{width: 100%;height: 300px;background-image: url("/images/educoder/path.jpg");background-color: #081C4B;background-size: 100% 100%;} +.path-head{width: 100%;height: 300px;background-image: url("/images/educoder/path.png");background-color: #081C4B;background-size: 100% 100%;} .pathNavLine{position: absolute;bottom: -8px;width: 100%;} .path-nav li{float: left;padding: 0px 30px;height: 42px;} .path-nav li a{color:#fff;font-size: 16px;display: block; height: 40px;} diff --git a/public/stylesheets/educoder/edu-all.css b/public/stylesheets/educoder/edu-all.css index 65ff14a59..ec245b196 100644 --- a/public/stylesheets/educoder/edu-all.css +++ b/public/stylesheets/educoder/edu-all.css @@ -422,7 +422,7 @@ table.text-file{} /*-------------------------------实训路径-------------------------------*/ -.path-head{width: 100%;height: 300px;background-image: url("/images/educoder/path.jpg");background-color: #081C4B;background-size: 100% 100%;} +.path-head{width: 100%;height: 300px;background-image: url("/images/educoder/path.png");background-color: #081C4B;background-size: 100% 100%;} .pathNavLine{position: absolute;bottom: -8px;width: 100%;} .path-nav li{float: left;padding: 0px 30px;height: 42px;} .path-nav li a{color:#fff;font-size: 16px;display: block; height: 40px;}