From 6f927424d3473b7a81285d3b5d00695959657f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 11:10:57 +0800 Subject: [PATCH 01/17] jingsai. --- .../modules/competition/CompetitionMaxImg.js | 6 +- .../src/modules/competition/RegisListview.js | 10 +- .../modules/competition/RegisListviewdata.js | 181 +++++++----- .../src/modules/competition/Registration.js | 274 ++++++++++++------ .../modules/competition/RegistrationSearch.js | 4 +- .../competition/comcss/competition.css | 19 +- .../competmodal/ExittheteamModel.js | 59 ++++ .../competition/competmodal/PersonModal.js | 108 +++---- .../personal/PersonalCompetititem.js | 56 ++-- .../src/modules/competition/pexjiazai.png | Bin 0 -> 1171 bytes 10 files changed, 464 insertions(+), 253 deletions(-) create mode 100644 public/react/src/modules/competition/competmodal/ExittheteamModel.js create mode 100644 public/react/src/modules/competition/pexjiazai.png diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index 249a354fc..7e1f54513 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -16,9 +16,9 @@ class CompetitionMaxImg extends React.Component { componentDidUpdate = (prevProps) => { if (prevProps.GetenrollmentAPI != this.props.GetenrollmentAPI) { - // console.log("团队竞赛报名大图componentDidUpdate"); - // console.log(this.props); - // console.log(this.props.GetenrollmentAPI); + // //console.log("团队竞赛报名大图componentDidUpdate"); + // //console.log(this.props); + // //console.log(this.props.GetenrollmentAPI); this.setState({ GetenrollmentAPI: this.props.GetenrollmentAPI, }) diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js index c2d725661..73f94592c 100644 --- a/public/react/src/modules/competition/RegisListview.js +++ b/public/react/src/modules/competition/RegisListview.js @@ -30,15 +30,15 @@ class RegisListview extends React.Component { backgroundPosition: "center", backgroundSize: "110% 100%", }}> -

创建者

-

战队名称

-

战队成员

-

学校

-

时间

diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index 8e381568e..a79a0022e 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -6,95 +6,128 @@ import { } from 'react-router-dom'; import axios from 'axios'; import moment from 'moment'; -import {SnackbarHOC, WordsBtn} from 'educoder'; +import {SnackbarHOC, WordsBtn, getImageUrl} from 'educoder'; import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; import competition from './comcss/competition.css'; +import pexjiazai from './pexjiazai.png' import {Button} from 'antd'; // 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 class RegisListviewdata extends React.Component { constructor(props) { super(props) - + this.state = { + item: undefined + } } + componentDidMount() { + console.log("RegisListviewdata"); + console.log(this.props.item) + this.setState({ + item: this.props.item + }) + } render() { + const {item} = this.state; return ( -
-
-
- -
-

小猫头像

-
-
-

重庆邮电大学

-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-

重庆邮电大学

-
-
-

2019-09-07 08:33

-
- - +
+ { + item !== undefined ? +
+
+ +
+ + + +

{item.creator.name}

+
+
+

{item.name}

+
+
+ + { + item && item.team_members.map((item, index) => { + return ( + + index === 0 ? + + + + : index === 1 ? + + + + : index === 2 ? + + + + : index === 3 ? + + + + : index === 4 ? + + + + : index === 5 ? + + + + + : + + + + ) + }) + } +
+
+

{item.school_name}

+
+
+

{item.created_at}

+
+
+
+ : "" + }
diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 60512a893..a4c557573 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -19,7 +19,8 @@ import RegisListviewdata from './RegisListviewdata'; import PersonModal from './competmodal/PersonModal'; import MessagePersonModal from './competmodal/MessagePersonModal'; import PersonalModalteam from './competmodal/PersonalModalteam'; -import PersonalCompetititem from './personal/PersonalCompetititem' +import PersonalCompetititem from './personal/PersonalCompetititem'; +import ExittheteamModel from './competmodal/ExittheteamModel'; // 团队竞赛报名无报名 class Registration extends React.Component { /*** @@ -44,6 +45,7 @@ class Registration extends React.Component { page: 1, per_page: 20, data: [], + competition_teams: [], count: 0, GetenrollmentAPI: undefined, personal: false, @@ -53,19 +55,35 @@ class Registration extends React.Component { member_staff: null, messagePer: "提示", messagePerbool: false, - intpermessages: "确认" + intpermessages: "确认", + messageexit: "提示", + messageexitol: false, + exitintpermessages: "是否退出战队", + itemid: undefined, } } componentDidMount() { - //console.log("componentDidMount Registration"); - // ////console.log("调用子组件 "); - //console.log(this.props.isAdmin()); - // ////console.log(this.props.isAdmin()) - const {keyword, page, per_page} = this.state; - this.Getdata(keyword, page, per_page); - this.GetenrollmentAPI(); + // //console.log("componentDidMount Registration"); + // //// //console.log("调用子组件 "); + // //console.log(this.props.isAdmin()); + // //// //console.log(this.props.isAdmin()) + + + } + + componentDidUpdate = (prevProps) => { + if (prevProps.user != this.props.user) { + // //console.log("Registration"); + // //console.log("componentDidUpdate"); + // //console.log(this.props.user.admin); + const {keyword, page, per_page} = this.state; + this.Getdata(keyword, page, per_page, this.props.user.admin); + this.GetenrollmentAPI(); + + } + } //获取报名配置API @@ -74,8 +92,8 @@ class Registration extends React.Component { axios.get((url)).then((result) => { if (result) { if (result.data) { - ////console.log("获取报名配置API"); - ////console.log(result); + //// //console.log("获取报名配置API"); + //// //console.log(result); this.setState({ GetenrollmentAPI: result.data, personal: result.data.personal, @@ -87,11 +105,11 @@ class Registration extends React.Component { } } }).catch((error) => { - ////console.log(error); + //// //console.log(error); }) } - Getdata = (keyword, page, per_page) => { + Getdata = (keyword, page, per_page, admin) => { //搜索关键字 keyword //页数 page //分页 per_page @@ -104,17 +122,17 @@ class Registration extends React.Component { axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - ////console.log(result); + //// //console.log(result); if (result.data.count === 0) { // 没有创建数据的 - if (this.props.isAdmin() === true) { + if (admin === true) { //管理员 this.setState({ type: 4, count: result.data.count, }) } else { - //普通人 + //普通账号 this.setState({ type: 1, count: result.data.count, @@ -122,25 +140,36 @@ class Registration extends React.Component { } } else { //有数据的 - if (this.props.isAdmin() === true) { + if (admin === true) { + if (result.data.my_teams[0].manage_permission === true) { this.setState({ type: 5, - data: result.data.competition_teams, + data: result.data.my_teams, count: result.data.count, + competition_teams: result.data.competition_teams + }) + } else { + this.setState({ + type: 4, + data: result.data.my_teams, + count: result.data.count, + competition_teams: result.data.competition_teams + }) + } } else { - if (result.data.competition_teams[0].manage_permission === true) { - //学生true 为创建了竞赛 + if (result.data.my_teams[0].manage_permission === true) { + //普通账号true 为创建了竞赛 this.setState({ type: 2, - data: result.data.competition_teams, + data: result.data.my_teams, count: result.data.count, }) } else { - //学生true 加入了竞赛 + //普通账号true 加入了竞赛 this.setState({ type: 3, - data: result.data.competition_teams, + data: result.data.my_teams, count: result.data.count, }) } @@ -152,7 +181,19 @@ class Registration extends React.Component { } }).catch((error) => { - ////console.log(error); + if (admin === true) { + //管理员 + this.setState({ + type: 4, + count: 0, + }) + } else { + //普通账号 + this.setState({ + type: 1, + count: 0, + }) + } }) } paginationonChangestwo = (pageNumber) => { @@ -219,53 +260,53 @@ class Registration extends React.Component { **/ Createateam = () => { // - if (this.state.enrolled === true) { - //已经报名 - this.setState({ - messagePerbool: true, - intpermessages: "您已报名,无需重复报" - }) - return; - } - if (this.state.enroll_ended === true) { - //报名截止 - this.setState({ - messagePerbool: true, - intpermessages: "报名已截止,无需报名" - }) - return - } - if (this.props.isAdmin() === true) { - //老师 - if (this.state.teacher_staff === null) { - //禁止老师 - this.setState({ - messagePerbool: true, - intpermessages: "已禁止老师报名" - }) - return; - } - this.setState({ - tmodalsType: true - }) - } else { - //学生 - if (this.state.member_staff === null) { - //禁止学生 - this.setState({ - messagePerbool: true, - intpermessages: "已禁止学生报名" - }) - return; - } - this.setState({ - tmodalsType: true - }) - } - - // this.setState({ - // tmodalsType: true + // if (this.state.enrolled === true) { + // //已经报名 + // this.setState({ + // messagePerbool: true, + // intpermessages: "您已报名,无需重复报" + // }) + // return; + // } + // if (this.state.enroll_ended === true) { + // //报名截止 + // this.setState({ + // messagePerbool: true, + // intpermessages: "报名已截止,无需报名" + // }) + // return + // } + // if (this.props.isAdmin() === true) { + // //老师 + // if (this.state.teacher_staff === null) { + // //禁止老师 + // this.setState({ + // messagePerbool: true, + // intpermessages: "已禁止老师报名" + // }) + // return; + // } + // this.setState({ + // tmodalsType: true + // }) + // } else { + // //学生 + // if (this.state.member_staff === null) { + // //禁止学生 + // this.setState({ + // messagePerbool: true, + // intpermessages: "已禁止学生报名" // }) + // return; + // } + // this.setState({ + // tmodalsType: true + // }) + // } + + this.setState({ + tmodalsType: true + }) } @@ -285,7 +326,7 @@ class Registration extends React.Component { } } - + //创建战队确认 Tmoconfirm1 = (bool) => { //boolfalse 取消 true 确认 this.setState({ @@ -293,8 +334,7 @@ class Registration extends React.Component { }) if (bool) { //确认 - - + this.Refreshteam(); } else { //取消 @@ -308,12 +348,62 @@ class Registration extends React.Component { messagePerbool: false }) } + //显示退出战队弹框 + Exittheteamshow = (itemid) => { + this.setState({ + messageexitol: true, + itemid: itemid + }) + + }; + //刷新战队 + Refreshteam = () => { + + const {keyword, page, per_page} = this.state; + this.Getdata(keyword, page, per_page, this.props.user.admin); + this.GetenrollmentAPI(); + } + //退出战队 + Exittheteam = (bool) => { + // //console.log(this.state.itemid); + if (bool) { + this.setState({ + messageexitol: true + }) + + let url = `/competitions/${"gcc-course-2019"}/competition_teams/${this.state.itemid}/leave.json`; + axios.post(url).then((response) => { + if (response) { + if (response.data) { + //console.log("退出战队"); + //console.log(response); + this.Refreshteam(); + this.setState({ + messageexitol: false + }) + + } + } + }).catch((error) => { + //console.log(error) + }); + + } else { + this.setState({ + messageexitol: false + }) + } + } render() { - const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data} = this.state; - const listItems = test.map((item, index) => - - ); + const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams} = this.state; + var listItems = ""; + if (competition_teams) { + listItems = competition_teams.map((item, index) => + + ); + } + return (
@@ -335,6 +425,8 @@ class Registration extends React.Component { Tmoconfirm1={(bool) => this.Tmoconfirm1(bool)}> this.Tmoconfirm(bool)}> + this.Exittheteam(bool)}>

在线竞赛 @@ -357,15 +449,17 @@ class Registration extends React.Component { : "" } + {/*普通账号出现单人 战队弹框*/} { type === 2 || type === 3 || type === 5 ? - + this.Exittheteamshow(itemid)}> : "" } { type === 4 || type === 5 ? - + : "" } {/**/} @@ -385,12 +479,22 @@ class Registration extends React.Component { { type === 4 || type === 5 ? -

- -
- : "" + ( + count < 20 ?
: +
+ +
+ ) + + :
}
diff --git a/public/react/src/modules/competition/RegistrationSearch.js b/public/react/src/modules/competition/RegistrationSearch.js index ed7e326ba..79f820f9d 100644 --- a/public/react/src/modules/competition/RegistrationSearch.js +++ b/public/react/src/modules/competition/RegistrationSearch.js @@ -26,7 +26,7 @@ class RegistrationSearch extends React.Component { }) }; setdatafuns = (value) => { - console.log("点击了搜索"); + //console.log("点击了搜索"); this.setState({ keywords: value }) @@ -45,7 +45,7 @@ class RegistrationSearch extends React.Component { onSearch={(value) => this.setdatafuns(value)}/>

战队总数:271

+ style={{color: "#459BE5", fontSize: "16px"}}>{this.props.count}个

) } diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 40e732139..ba2921020 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -301,10 +301,21 @@ .regitem { display: flex; flex-direction: initial; - border-bottom: 1px solid #EDEDED; margin-top: 44px; } +.regitem22 { + display: flex; + flex-direction: initial; + margin-top: 27px; + margin-bottom: 19px; +} + +.yslborderbottom { + border-bottom: 1px solid #EDEDED; +} + + .regitem2 { display: flex; flex-direction: initial; @@ -334,6 +345,8 @@ .regitemimg2 { height: 78px; width: 78px; + background-color: transparent; + margin-bottom: 9px; } .personregitemimg { @@ -353,7 +366,7 @@ width: 69px; height: 69px; margin-top: 3px; - + background-color: transparent; } .regitemimgs2 { @@ -375,7 +388,7 @@ height: 22px; width: 22px; font-size: 21px !important; - margin-top: 22px; + margin-top: 21px; color: #1C91E8; } diff --git a/public/react/src/modules/competition/competmodal/ExittheteamModel.js b/public/react/src/modules/competition/competmodal/ExittheteamModel.js new file mode 100644 index 000000000..29eab7b50 --- /dev/null +++ b/public/react/src/modules/competition/competmodal/ExittheteamModel.js @@ -0,0 +1,59 @@ +import React, {Component} from 'react'; +import {getImageUrl} from 'educoder'; +import {Modal, Input, Spin, Tooltip, Icon, Dropdown, Button} from 'antd'; +import axios from 'axios'; +import competition from '../comcss/competition.css'; +import Registrationitem from "../Registrationitem"; +import InfiniteScroll from 'react-infinite-scroller'; +// import PersonModaltion from "./PersonModaltion"; +const {Search} = Input; + +//退出战队 +class ExittheteamModel extends React.Component { + + constructor(props) { + super(props); + this.state = {} + } + + + render() { + const { + addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2 + } = this.state; + //Modal + //keyboard是否支持键盘 esc 关闭 + //closable 是否显示右上角的关闭按钮 + //底部内容,当不需要默认底部按钮时,可以设为 footer={null} + //destroyOnClose 关闭时销毁 Modal 里的子元素 + //centered 垂直居中展示 Modal + //visible 弹出框是否显示 + + return ( + + + +
+
{this.props.exitintpermessages}
+
+
+ this.props.Exittheteam(false)}>取消 + this.props.Exittheteam(true)}>确定 +
+ +
+ ) + } +} + +export default ExittheteamModel; diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 0b4e988a0..46244e6b4 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -61,9 +61,9 @@ class PersonModal extends Component { componentDidUpdate = (prevProps) => { if (prevProps.user != this.props.user) { - console.log("Registration.js componentDidUpdate"); - console.log(this.props); - //console.log(prevProps); + //console.log("Registration.js componentDidUpdate"); + //console.log(this.props); + // //console.log(prevProps); //identity职场称 //user_school学校 //real_name姓名 @@ -86,8 +86,8 @@ class PersonModal extends Component { } if (prevProps.GetenrollmentAPI != this.props.GetenrollmentAPI) { - console.log("Registration.js GetenrollmentAPIcomponentDidUpdate"); - console.log(this.props); + //console.log("Registration.js GetenrollmentAPIcomponentDidUpdate"); + //console.log(this.props); this.setState({ GetenrollmentAPI: this.props.GetenrollmentAPI, }) @@ -151,15 +151,15 @@ class PersonModal extends Component { teacher_ids: myteaherdata, member_ids: myshtudentdata, }).then((result) => { - //console.log("获取到创建战队的数据"); - //console.log(result); + // //console.log("获取到创建战队的数据"); + // //console.log(result); if (result) { if (result.data) { this.props.Tmoconfirm1(true); } } }).catch((error) => { - //console.log(error) + // //console.log(error) }); } @@ -177,7 +177,7 @@ class PersonModal extends Component { } } }).catch((error) => { - //console.log(error) + // //console.log(error) }); } @@ -189,7 +189,7 @@ class PersonModal extends Component { //老师姓名 keyword //当前战队ID team_id //当前老师ID数组 teacher_ids - //console.log("搜索的老师"); + // //console.log("搜索的老师"); const datas = { keyword: keywordteachers, team_id: team_idteachers, @@ -199,14 +199,14 @@ class PersonModal extends Component { axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - //console.log(result); + // //console.log(result); this.setState({ teacher_ids: result.data.teachers }) } } }).catch((error) => { - //console.log(error); + // //console.log(error); }) }; Getstudentsdata = (keywordstudents, team_idstudents, student_ids) => { @@ -217,7 +217,7 @@ class PersonModal extends Component { //学生姓名 keyword //当前战队ID team_id //当前队员ID数组 student_ids - //console.log("搜索的学生"); + // //console.log("搜索的学生"); const datas = { keyword: keywordstudents, team_id: team_idstudents, @@ -227,7 +227,7 @@ class PersonModal extends Component { axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - //console.log(result); + // //console.log(result); this.setState({ member_ids: result.data.teachers }) @@ -235,14 +235,14 @@ class PersonModal extends Component { } } }).catch((error) => { - //console.log(error); + // //console.log(error); }) }; //老师输入框事件 teacheronChange = (e) => { - //console.log(e.target.value); - //console.log("老师输入框事件|||||||||||123123123"); + // //console.log(e.target.value); + // //console.log("老师输入框事件|||||||||||123123123"); this.setState({ keywordteachers: e.target.value, booltech: false, @@ -280,8 +280,8 @@ class PersonModal extends Component { //学生输入框事件 studentsonChange = (e) => { - //console.log("学生输入框事件"); - //console.log(e); + // //console.log("学生输入框事件"); + // //console.log(e); this.setState({ keywordstudents: e.target.value, boolstud: false, @@ -331,9 +331,9 @@ class PersonModal extends Component { }; var fordabool = false; var forda = this.state.mydatas; - //console.log("点击获取老师数据"); - //console.log(object); - //console.log(forda); + // //console.log("点击获取老师数据"); + // //console.log(object); + // //console.log(forda); for (var i = 0; i < forda.length; i++) { if (forda[i].id) { if (forda[i].id === object.id) { @@ -372,14 +372,14 @@ class PersonModal extends Component { }; var fordabool = false; var forda = this.state.mydatas; - //console.log("点击获取学生数据2"); - //console.log(object); - //console.log(forda); + // //console.log("点击获取学生数据2"); + // //console.log(object); + // //console.log(forda); for (var i = 0; i < forda.length; i++) { if (forda[i].id) { - // //console.log(true); - // //console.log(forda[i].id); - // //console.log(object.id); + // // //console.log(true); + // // //console.log(forda[i].id); + // // //console.log(object.id); if (forda[i].id === object.id) { fordabool = true; break @@ -407,7 +407,7 @@ class PersonModal extends Component { } //输入框事件 changeTopicName = (e) => { - // //console.log("调用了changeTopicName"); + // // //console.log("调用了changeTopicName"); let num = parseInt(e.target.value.length); if (num > 60) { return; @@ -422,7 +422,7 @@ class PersonModal extends Component { //onSearchsou onSearch = (value) => { - //console.log("搜索的数据" + value); + // //console.log("搜索的数据" + value); }; handleInfiniteOnLoad = () => { // this.setState({ @@ -442,12 +442,12 @@ class PersonModal extends Component { } handleInfiniteOnLoad1 = () => { - // //console.log("调用了方法1111"); + // // //console.log("调用了方法1111"); // this.setState({ // loading1: true, // }) // setTimeout(() => { - // //console.log("调用了方法11112"); + // // //console.log("调用了方法11112"); // this.setState({ // loading1: false, // hasMore: true, @@ -456,13 +456,13 @@ class PersonModal extends Component { } handleInfiniteOnLoad2 = () => { - // //console.log("调用了方法1111"); + // // //console.log("调用了方法1111"); // this.setState({ // loading2: true, // // }) // setTimeout(() => { - // //console.log("调用了方法11113"); + // // //console.log("调用了方法11113"); // this.setState({ // hasMore: true, // loading2: false, @@ -471,23 +471,23 @@ class PersonModal extends Component { } inputOnBlur = (e) => { - //console.log("inputOnBlur"); - //console.log(e); + // //console.log("inputOnBlur"); + // //console.log(e); this.setState({ person1: false }) } inputOnBlur2 = (e) => { - //console.log("inputOnBlur"); - //console.log(e); + // //console.log("inputOnBlur"); + // //console.log(e); this.setState({ person2: false }) } startSearch = (e) => { - //console.log("startSearch"); - //console.log(e); + // //console.log("startSearch"); + // //console.log(e); this.setState({ person1: true, person2: false, @@ -497,8 +497,8 @@ class PersonModal extends Component { } startSearch2 = (e) => { - //console.log("startSearch2"); - //console.log(e); + // //console.log("startSearch2"); + // //console.log(e); this.setState({ person1: false, person2: true, @@ -508,8 +508,8 @@ class PersonModal extends Component { } inputOnFocus = (e) => { - //console.log("inputOnFocus"); - //console.log(e); + // //console.log("inputOnFocus"); + // //console.log(e); try { if (this.state.keywordteachers && this.state.keywordteachers.length > 0) { this.setState({ @@ -533,8 +533,8 @@ class PersonModal extends Component { } inputOnFocus2 = (e) => { - //console.log("inputOnFocus2"); - //console.log(e); + // //console.log("inputOnFocus2"); + // //console.log(e); try { if (this.state.keywordstudents && this.state.keywordstudents.length > 0) { this.setState({ @@ -559,8 +559,8 @@ class PersonModal extends Component { } inputOnFocus3 = (e) => { - //console.log("inputOnFocus3"); - //console.log(e); + // //console.log("inputOnFocus3"); + // //console.log(e); this.setState({ person2: false, person1: false, @@ -570,13 +570,13 @@ class PersonModal extends Component { var {mydatas} = this.state; if (item) { var pos = mydatas.indexOf(item); - // console.log("deletedata"); - // console.log(pos); + // //console.log("deletedata"); + // //console.log(pos); var removedItem = mydatas.splice(pos, 1); - // console.log("deletedata22222"); - // console.log(removedItem) + // //console.log("deletedata22222"); + // //console.log(removedItem) //removedItem 是被删除的元素 - // console.log(mydatas) + // //console.log(mydatas) this.setState({ mydatas: mydatas, }) @@ -780,7 +780,7 @@ class PersonModal extends Component { - this.messagePerboolbuton()}> - this.Tmoconfirm1(bool)}> - this.Tmoconfirm(bool)}> - this.Exittheteam(bool)}> + { + messagePerbool === true ? + this.messagePerboolbuton()} + GetenrollmentAPI={GetenrollmentAPI}> + : "" + } + + { + tmodalsType === true ? + this.Tmoconfirm1(bool)}> + : + "" + } + { + tmodalsTypes === true ? + this.Tmoconfirm(bool)}> + : "" + } + { + messageexitol === true ? + this.Exittheteam(bool)}> + : "" + } +

在线竞赛 @@ -536,7 +595,8 @@ class Registration extends React.Component { { type === 2 || type === 3 || type === 5 ? this.Exittheteamshow(itemid)}> + Exittheteamshow={(itemid) => this.Exittheteamshow(itemid)} + Createateamedit={(itemid) => this.Createateamedit(itemid)}> : "" } @@ -556,7 +616,9 @@ class Registration extends React.Component { {type === 4 || type === 5 ? - listItems + + listItems + : "" } diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 46244e6b4..9b48307e3 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -95,6 +95,8 @@ class PersonModal extends Component { }; //创建战队 Createateam = () => { + + const {polls_nametest, mydatas, GetenrollmentAPI} = this.state; var myteaherdata = []; var myshtudentdata = []; @@ -102,85 +104,89 @@ class PersonModal extends Component { for (var a = 0; a < mydatas.length; a++) { if (mydatas[a].type === "导师") { i++; - var objectt = { - enrollable: mydatas[a].enrollable, - id: mydatas[a].id, - identity: mydatas[a].identity, - name: mydatas[a].name, - school_name: mydatas[a].school_name, - } - myteaherdata.push(objectt); + // var objectt = { + // enrollable: mydatas[a].enrollable, + // id: mydatas[a].id, + // identity: mydatas[a].identity, + // name: mydatas[a].name, + // school_name: mydatas[a].school_name, + // } + myteaherdata.push(mydatas[a].id); } else if (mydatas[a].type === "队员") { - var objectts = { - enrollable: mydatas[a].enrollable, - id: mydatas[a].id, - name: mydatas[a].name, - school_name: mydatas[a].school_name, - student_id: mydatas[a].student_id, - } - myshtudentdata.push(objectts); + // var objectts = { + // enrollable: mydatas[a].enrollable, + // id: mydatas[a].id, + // name: mydatas[a].name, + // school_name: mydatas[a].school_name, + // student_id: mydatas[a].student_id, + // } + myshtudentdata.push(mydatas[a].id); } } - if (GetenrollmentAPI !== undefined || GetenrollmentAPI !== null) { - if (GetenrollmentAPI.teacher_staff !== undefined || GetenrollmentAPI.teacher_staff !== null) { - if (GetenrollmentAPI.teacher_staff.minimum > i) { + if (GetenrollmentAPI) { + if (GetenrollmentAPI !== undefined || GetenrollmentAPI !== null) { + if (GetenrollmentAPI.teacher_staff !== undefined || GetenrollmentAPI.teacher_staff !== null) { + if (GetenrollmentAPI.teacher_staff.minimum > i) { + + this.setState({ + Thecurrentnumberbool: true, + Thecurrentnumber: i, + booltech: false, + boolstud: false + }) + return + } else if (GetenrollmentAPI.teacher_staff.maximum < i) { + this.setState({ + Thecurrentnumberbool: true, + Thecurrentnumber: i, + booltech: false, + boolstud: false + }) + return + } - this.setState({ - Thecurrentnumberbool: true, - Thecurrentnumber: i, - booltech: false, - boolstud: false - }) - return - } else if (GetenrollmentAPI.teacher_staff.maximum < i) { - this.setState({ - Thecurrentnumberbool: true, - Thecurrentnumber: i, - booltech: false, - boolstud: false - }) - return } - } } // Thecurrentnumber - let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; - axios.post(url, { - name: polls_nametest, - teacher_ids: myteaherdata, - member_ids: myshtudentdata, - }).then((result) => { - // //console.log("获取到创建战队的数据"); - // //console.log(result); - if (result) { - if (result.data) { - this.props.Tmoconfirm1(true); + if (this.props.Newtit === true) { + //创建新的战队 + let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; + axios.post(url, { + name: polls_nametest, + teacher_ids: myteaherdata, + member_ids: myshtudentdata, + }).then((result) => { + // //console.log("获取到创建战队的数据"); + // //console.log(result); + if (result) { + if (result.data) { + this.props.Tmoconfirm1(true); + } } - } - }).catch((error) => { - // //console.log(error) - }); - - } - creident = (name, teacher_ids, member_ids) => { - let collaborators = `/competitions/${"gcc-course-2019"}/competition_teams.json`; - axios.post(collaborators, { - name: name, - teacher_ids: teacher_ids, - member_ids: member_ids, - }).then((result) => { - if (result) { - if (result.data) { - - + }).catch((error) => { + // //console.log(error) + }); + } else { + //编辑战队 + let url = `/competitions/${"gcc-course-2019"}/competition_teams/${"gcc-course-2019"}.json`; + axios.post(url, { + name: polls_nametest, + teacher_ids: myteaherdata, + member_ids: myshtudentdata, + }).then((result) => { + // //console.log("获取到编辑战队的数据"); + // //console.log(result); + if (result) { + if (result.data) { + this.props.Tmoconfirm1(true); + } } - } - }).catch((error) => { - // //console.log(error) - }); + }).catch((error) => { + // //console.log(error) + }); + } } - Getteacherdata = (keywordteachers, team_idteachers, teacher_ids) => { this.setState({ person1: true, @@ -764,6 +770,8 @@ class PersonModal extends Component {

); + console.log("PersonModal"); + console.log(this.props); return ( - : + : index === 6 ? + : "" ) }) } @@ -143,11 +144,11 @@ class PersonalCompetititem extends React.Component { marginLeft: "32px", }} > -
-

删除战队

+
this.props.Exittheteamshow(data[0].id, true)}> +

this.props.Exittheteamshow(data[0].id, true)}>删除战队

-
-

编辑战队

+
this.props.Createateamedit(data[0])}> +

this.props.Createateamedit(data[0])}>编辑战队

@@ -160,8 +161,8 @@ class PersonalCompetititem extends React.Component {

战队详情

-
this.props.Exittheteamshow(data[0].id)}> -

this.props.Exittheteamshow(data[0].id)}>退出战队

+
this.props.Exittheteamshow(data[0].id, false)}> +

this.props.Exittheteamshow(data[0].id, false)}>退出战队

@@ -173,8 +174,8 @@ class PersonalCompetititem extends React.Component { }} > -
this.props.Exittheteamshow(data[0].id)}> -

this.props.Exittheteamshow(data[0].id)}>退出战队

+
this.props.Exittheteamshow(data[0].id, false)}> +

this.props.Exittheteamshow(data[0].id, false)}>退出战队

From 0010173d193e3ca8039415217895ab815e0ea45b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 15:34:05 +0800 Subject: [PATCH 05/17] jingsai. --- .../src/modules/competition/Registration.js | 4 +- .../personal/PersonalCompetititem.js | 52 +++++++++++++++---- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index dd567a367..e48cd0fef 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -617,7 +617,9 @@ class Registration extends React.Component { {type === 4 || type === 5 ? - listItems + { + listItems + } : "" diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 2c364e293..31b43bf06 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -9,8 +9,20 @@ import moment from 'moment'; import {SnackbarHOC, WordsBtn, getImageUrl} from 'educoder'; import {TPMIndexHOC} from '../../tpm/TPMIndexHOC'; import competition from '../comcss/competition.css'; -import {Button} from 'antd'; +import {Button, message} from 'antd'; import pexjiazai from '../pexjiazai.png' + +// 点击按钮复制功能 +function jsCopy() { + var e = document.getElementById("copy_invite_code"); + e.select(); + document.execCommand("Copy"); + codesuccess() +} + +function codesuccess() { + message.success('复制成功'); +}; // 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 class PersonalCompetititem extends React.Component { constructor(props) { @@ -124,19 +136,37 @@ class PersonalCompetititem extends React.Component {
-

+ 邀请码: + 邀请码:yngh5

+ }}>{data[0].invite_code === null || data[0].invite_code === undefined ? "" : data[0].invite_code} +
- - + {data[0].invite_code === null || data[0].invite_code === undefined ? + + + : + { + jsCopy() + }} + > + + } + { this.props.type === 5 ?
Date: Wed, 23 Oct 2019 16:29:59 +0800 Subject: [PATCH 06/17] jingsai. --- .../modules/competition/RegisListviewdata.js | 7 +- .../src/modules/competition/Registration.js | 207 ++++++++++++------ .../modules/competition/RegistrationSearch.js | 10 +- .../personal/PersonalCompetititem.js | 5 +- 4 files changed, 161 insertions(+), 68 deletions(-) diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index fb8c1c68e..d5dcd9cc0 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -89,15 +89,16 @@ class RegisListviewdata extends React.Component { : index === 5 ? - +
- : index === 6 ? - : "" +
+ : "" + ) }) } diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index e48cd0fef..a3e330cfe 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -21,6 +21,7 @@ import MessagePersonModal from './competmodal/MessagePersonModal'; import PersonalModalteam from './competmodal/PersonalModalteam'; import PersonalCompetititem from './personal/PersonalCompetititem'; import ExittheteamModel from './competmodal/ExittheteamModel'; +import pexjiazai from "./pexjiazai.png"; // 团队竞赛报名无报名 class Registration extends React.Component { /*** @@ -29,6 +30,7 @@ class Registration extends React.Component { *"enrolled: false, // 是否已经报名 *"teacher_staff": { // 为空表示不支持老师报名 *"member_staff": { // 为空表示不支持学生报名 + * personal// 是否是个人赛 * **/ constructor(props) { super(props) @@ -61,6 +63,8 @@ class Registration extends React.Component { exitintpermessages: "是否退出战队", itemid: undefined, itemiddata: [], + pint: 0, + } } @@ -119,72 +123,92 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; + let url = `/competitions/${"gcc-task-2019"}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - //// //console.log(result); - if (result.data.my_teams.length === 0) { - // 没有创建数据的 - if (admin === true) { - //管理员 - this.setState({ - type: 4, - count: result.data.count, - data: result.data.my_teams, - competition_teams: result.data.competition_teams - }) - } else { - //普通账号 - this.setState({ - type: 1, - count: result.data.count, - data: result.data.my_teams, - competition_teams: result.data.competition_teams - }) - } - } else { - //有数据的 - if (admin === true) { - if (result.data.my_teams[0].manage_permission === true) { - this.setState({ - type: 5, - data: result.data.my_teams, - count: result.data.count, - competition_teams: result.data.competition_teams - - }) - } else { + //// //console.log(result);\ + if (result.data.personal === false) { + //不是个人赛 + if (result.data.my_teams.length === 0) { + // 没有创建数据的 + if (admin === true) { + //管理员 this.setState({ type: 4, - data: result.data.my_teams, count: result.data.count, - competition_teams: result.data.competition_teams - }) - } - } else { - if (result.data.my_teams[0].manage_permission === true) { - //普通账号true 为创建了竞赛 - this.setState({ - type: 2, data: result.data.my_teams, - count: result.data.count, + competition_teams: result.data.competition_teams, + personal: result.data.personal, }) } else { - //普通账号true 加入了竞赛 + //普通账号 this.setState({ - type: 3, - data: result.data.my_teams, + type: 1, count: result.data.count, + data: result.data.my_teams, + competition_teams: result.data.competition_teams, + personal: result.data.personal, }) } - } + } else { + //有数据的 + + if (admin === true) { + if (result.data.my_teams[0].manage_permission === true) { + this.setState({ + type: 5, + data: result.data.my_teams, + count: result.data.count, + competition_teams: result.data.competition_teams, + personal: result.data.personal, + + }) + } else { + this.setState({ + type: 4, + data: result.data.my_teams, + count: result.data.count, + competition_teams: result.data.competition_teams, + personal: result.data.personal, + + }) + } + } else { + if (result.data.my_teams[0].manage_permission === true) { + //普通账号true 为创建了竞赛 + this.setState({ + type: 2, + data: result.data.my_teams, + count: result.data.count, + personal: result.data.personal, + + }) + } else { + //普通账号true 加入了竞赛 + this.setState({ + type: 3, + data: result.data.my_teams, + count: result.data.count, + personal: result.data.personal, + + }) + } + } - } + } + } else { + this.setState({ + type: 6, + data: result.data.my_teams, + count: result.data.count, + competition_teams: result.data.competition_teams, + personal: result.data.personal, + }) + } } - } this.setState({ loadingstate: false, @@ -222,12 +246,14 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; + let url = `/competitions/${"gcc-task-2019"}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { //// //console.log(result); - if (result.data.my_teams.length === 0) { + if (result.data.personal === false) { + //不是个人赛 + if (result.data.my_teams.length === 0) { // 没有创建数据的 //管理员 this.setState({ @@ -235,6 +261,8 @@ class Registration extends React.Component { count: result.data.count, competition_teams: result.data.competition_teams, data: result.data.my_teams, + personal: result.data.personal, + }) } else { //有数据的 @@ -243,7 +271,9 @@ class Registration extends React.Component { type: 5, data: result.data.my_teams, count: result.data.count, - competition_teams: result.data.competition_teams + competition_teams: result.data.competition_teams, + personal: result.data.personal, + }) } else { @@ -251,10 +281,23 @@ class Registration extends React.Component { type: 4, data: result.data.my_teams, count: result.data.count, - competition_teams: result.data.competition_teams + competition_teams: result.data.competition_teams, + personal: result.data.personal, + }) } } + } else { + //团队赛 + this.setState({ + type: 6, + data: result.data.my_teams, + count: result.data.count, + competition_teams: result.data.competition_teams, + personal: result.data.personal, + + }) + } } } @@ -262,6 +305,8 @@ class Registration extends React.Component { loadingstate: false, }) }).catch((error) => { + console.log(error); + console.log("报错了"); if (admin === true) { //管理员 this.setState({ @@ -290,7 +335,7 @@ class Registration extends React.Component { loadingstate: true, }) const {keyword, per_page} = this.state; - this.Getdata(keyword, pageNumber, per_page, this.props.user.admin); + this.Getdatatype5(keyword, pageNumber, per_page, this.props.user.admin); }; /** @@ -482,7 +527,7 @@ class Registration extends React.Component { messageexitol: true }) - let url = `/competitions/${"gcc-course-2019"}/competition_teams/${this.state.itemid}/leave.json`; + let url = `/competitions/${"gcc-task-2019"}/competition_teams/${this.state.itemid}/leave.json`; axios.post(url).then((response) => { if (response) { if (response.data) { @@ -515,15 +560,21 @@ class Registration extends React.Component { }) this.Getdatatype5(value, 1, 20, this.props.user.admin); } + + //个人竞赛 +// /competitions/:identifier/competition_teams.json render() { - const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate} = this.state; + const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate, pint} = this.state; var listItems = ""; - if (competition_teams) { - listItems = competition_teams.map((item, index) => - - ); - } + // if (competition_teams) { + // listItems = competition_teams.map((item, index) => + // + // ); + // } + const listItemss = test.map((item, index) => + + ); return (
@@ -581,10 +632,33 @@ class Registration extends React.Component {
{/*大图*/} this.Jointheteam()} + pint={pint} {...this.props} {...this.state} Createateam={() => this.Createateam()}> {/*大图结尾*/} {/*没数据*/} + { + pint === 1 || pint === 3 ? +
+

参赛总人数:132

+
+ : ""} + {/*列表*/} + { + pint === 1 || pint === 3 ? +
+ { + listItemss + } + +
+ : ""} { type === 1 ? @@ -617,9 +691,18 @@ class Registration extends React.Component { {type === 4 || type === 5 ? + {/*{*/} + {/* listItems*/} + {/*}*/} + { - listItems + competition_teams && competition_teams.map((item, index) => { + return ( + + ) + }) } + : "" diff --git a/public/react/src/modules/competition/RegistrationSearch.js b/public/react/src/modules/competition/RegistrationSearch.js index 28fdd2b9d..5a08cd84d 100644 --- a/public/react/src/modules/competition/RegistrationSearch.js +++ b/public/react/src/modules/competition/RegistrationSearch.js @@ -53,7 +53,15 @@ class RegistrationSearch extends React.Component { onPressEnter={(e) => this.myonPressEnter(e)} /> -

战队总数:战队总数:{this.props.count}

) diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 31b43bf06..146f7591a 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -119,14 +119,15 @@ class PersonalCompetititem extends React.Component { : index === 5 ? - +
- : index === 6 ? + +
: "" ) }) From 8b7f3b6e916a2ae1e6724bc277d20876836bab60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 18:13:12 +0800 Subject: [PATCH 07/17] jingsai.2 --- .../modules/competition/CompetitionMaxImg.js | 4 +- .../modules/competition/RegisListviewdata.js | 6 +- .../src/modules/competition/Registration.js | 154 +++++++++++++----- .../modules/competition/Registrationitem.js | 36 ++-- .../competition/comcss/competition.css | 3 +- .../personal/PersonalCompetititem.js | 18 +- 6 files changed, 155 insertions(+), 66 deletions(-) diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index 7e1f54513..b05ca56fc 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -83,8 +83,8 @@ class CompetitionMaxImg extends React.Component {
{ pint === 1 ? -
-

立即报名

+
this.props.Personalregistration()}> +

this.props.Personalregistration()}>立即报名

: pint === 2 ?
diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index d5dcd9cc0..31ea816b5 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -23,15 +23,15 @@ class RegisListviewdata extends React.Component { } componentDidMount() { - console.log("RegisListviewdata"); - console.log(this.props.item) + //console.log("RegisListviewdata"); + //console.log(this.props.item) this.setState({ item: this.props.item }) } render() { - const {item} = this.state; + const {item} = this.props; return (
diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index a3e330cfe..76a1d70b9 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -70,19 +70,19 @@ class Registration extends React.Component { } componentDidMount() { - // //console.log("componentDidMount Registration"); - // //// //console.log("调用子组件 "); - // //console.log(this.props.isAdmin()); - // //// //console.log(this.props.isAdmin()) + // ////console.log("componentDidMount Registration"); + // //// ////console.log("调用子组件 "); + // ////console.log(this.props.isAdmin()); + // //// ////console.log(this.props.isAdmin()) } componentDidUpdate = (prevProps) => { if (prevProps.user != this.props.user) { - // //console.log("Registration"); - // //console.log("componentDidUpdate"); - // //console.log(this.props.user.admin); + //console.log("Registration"); + //console.log("componentDidUpdate"); + //console.log(this.props.user.admin); const {keyword, page, per_page} = this.state; this.Getdata(keyword, page, per_page, this.props.user.admin); this.GetenrollmentAPI(); @@ -93,12 +93,12 @@ class Registration extends React.Component { //获取报名配置API GetenrollmentAPI = () => { - const url = `/competitions/${"gcc-course-2019"}/competition_staff.json`; + const url = `/competitions/${"gcc-task-2020"}/competition_staff.json`; axios.get((url)).then((result) => { if (result) { if (result.data) { - //// //console.log("获取报名配置API"); - //// //console.log(result); + //// ////console.log("获取报名配置API"); + //// ////console.log(result); this.setState({ GetenrollmentAPI: result.data, personal: result.data.personal, @@ -107,10 +107,23 @@ class Registration extends React.Component { teacher_staff: result.data.teacher_staff, member_staff: result.data.member_staff, }) + if (result.data.enroll_ended === true) { + this.setState({ + pint: 0 + }) + } else if (result.data.enrolled === true) { + this.setState({ + pint: 2 + }) + } else if (result.data.enrolled === false) { + this.setState({ + pint: 1 + }) + } } } }).catch((error) => { - //// //console.log(error); + //// ////console.log(error); }) } @@ -123,11 +136,11 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-task-2019"}/competition_teams.json`; + let url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - //// //console.log(result);\ + //// ////console.log(result);\ if (result.data.personal === false) { //不是个人赛 if (result.data.my_teams.length === 0) { @@ -246,16 +259,24 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-task-2019"}/competition_teams.json`; + let url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { + this.setState({ + loadingstate: false, + }) if (result) { if (result.data) { - //// //console.log(result); + //// ////console.log(result); if (result.data.personal === false) { //不是个人赛 + //console.log("Getdatatype5"); + //console.log(result.data.my_teams.length); if (result.data.my_teams.length === 0) { // 没有创建数据的 //管理员 + //console.log("a"); + //console.log(this.state.competition_teams); + //console.log(result.data.competition_teams); this.setState({ type: 4, count: result.data.count, @@ -266,7 +287,9 @@ class Registration extends React.Component { }) } else { //有数据的 - if (result.data.my_teams[0].manage_permission === true) { + //console.log("b"); + + if (result.data.my_teams[0].manage_permission === true) { this.setState({ type: 5, data: result.data.my_teams, @@ -277,7 +300,9 @@ class Registration extends React.Component { }) } else { - this.setState({ + //console.log("c"); + + this.setState({ type: 4, data: result.data.my_teams, count: result.data.count, @@ -289,6 +314,8 @@ class Registration extends React.Component { } } else { //团队赛 + //console.log("d"); + this.setState({ type: 6, data: result.data.my_teams, @@ -301,12 +328,12 @@ class Registration extends React.Component { } } - this.setState({ - loadingstate: false, - }) + }).catch((error) => { - console.log(error); - console.log("报错了"); + //console.log("k"); + + //console.log(error); + //console.log("报错了"); if (admin === true) { //管理员 this.setState({ @@ -521,18 +548,18 @@ class Registration extends React.Component { } //退出战队 Exittheteam = (bool) => { - // //console.log(this.state.itemid); + // ////console.log(this.state.itemid); if (bool) { this.setState({ messageexitol: true }) - let url = `/competitions/${"gcc-task-2019"}/competition_teams/${this.state.itemid}/leave.json`; + let url = `/competitions/${"gcc-task-2020"}/competition_teams/${this.state.itemid}/leave.json`; axios.post(url).then((response) => { if (response) { if (response.data) { - //console.log("退出战队"); - //console.log(response); + ////console.log("退出战队"); + ////console.log(response); this.Refreshteam(); this.setState({ messageexitol: false @@ -541,7 +568,7 @@ class Registration extends React.Component { } } }).catch((error) => { - //console.log(error) + ////console.log(error) }); } else { @@ -552,8 +579,8 @@ class Registration extends React.Component { } //搜索战队 RegistrationSearchvalue = (value) => { - console.log("RegistrationSearchvalue"); - console.log(this.props.user.admin); + //console.log("RegistrationSearchvalue"); + //console.log(this.props.user.admin); this.setState({ pages: 1, limit: 20, @@ -563,6 +590,45 @@ class Registration extends React.Component { //个人竞赛 // /competitions/:identifier/competition_teams.json + Personalregistration = () => { + let {teacher_staff, member_staff, data} = this.state; + if (teacher_staff) { + if (teacher_staff.mutiple_limited === true) { + if (data) { + if (data.length > teacher_staff.maximum) { + message.success('已限制多次报名!'); + return + } + } + } + + } + if (member_staff) { + if (teacher_staff.mutiple_limited === true) { + if (data) { + if (data.length > teacher_staff.maximum) { + message.success('已限制多次报名!'); + + return; + } + } + } + + } + const url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; + axios.post(url).then((response) => { + if (response) { + if (response.data) { + + this.Refreshteam(); + + + } + } + }).catch((error) => { + + }); + } render() { const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate, pint} = this.state; var listItems = ""; @@ -572,9 +638,9 @@ class Registration extends React.Component { // // ); // } - const listItemss = test.map((item, index) => - - ); + // const listItemss = test.map((item, index) => + // + // ); return (
@@ -634,7 +700,9 @@ class Registration extends React.Component { this.Jointheteam()} pint={pint} {...this.props} {...this.state} - Createateam={() => this.Createateam()}> + Createateam={() => this.Createateam()} + Personalregistration={() => this.Personalregistration()} + > {/*大图结尾*/} {/*没数据*/} { @@ -642,7 +710,8 @@ class Registration extends React.Component {
-

参赛总人数:132

+

参赛总人数:{data === null || data === undefined ? 0 : data.length}人 +

: ""} {/*列表*/} @@ -653,9 +722,16 @@ class Registration extends React.Component { marginTop: "31px" }} > - { - listItemss - } + + { + data && data.map((item, index) => { + return ( + + ) + }) + } + +
: ""} @@ -691,10 +767,6 @@ class Registration extends React.Component { {type === 4 || type === 5 ? - {/*{*/} - {/* listItems*/} - {/*}*/} - { competition_teams && competition_teams.map((item, index) => { return ( diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js index 6bcd18534..192166691 100644 --- a/public/react/src/modules/competition/Registrationitem.js +++ b/public/react/src/modules/competition/Registrationitem.js @@ -6,7 +6,7 @@ import { } from 'react-router-dom'; import axios from 'axios'; import moment from 'moment'; -import {SnackbarHOC, WordsBtn} from 'educoder'; +import {SnackbarHOC, WordsBtn, getImageUrl} from 'educoder'; import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; import competition from './comcss/competition.css'; import {Button} from 'antd'; @@ -22,14 +22,16 @@ class Registrationitem extends React.Component { render() { - + let {item} = this.props; return ( - +
+ { + item !== undefined ?
-
+ -
+
小猫头像

+ }}>{item.creator.name}

+ { + item.manage_permission === true ? +

已报名

+ : + "" + } -

已报名

- - + : "" + } +
) } diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index ba2921020..859759a4d 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -319,7 +319,7 @@ .regitem2 { display: flex; flex-direction: initial; - border-bottom: 1px solid #EDEDED; + margin-top: 19px; } @@ -350,7 +350,6 @@ } .personregitemimg { - border: 0.5px solid; height: 64px; width: 64px; } diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 146f7591a..7f157cead 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -49,7 +49,7 @@ class PersonalCompetititem extends React.Component { } render() { - const {data} = this.state; + const {data} = this.props; // //console.log("PersonalCompetititem"); // //console.log(data); // //console.log(data[0]); @@ -142,12 +142,16 @@ class PersonalCompetititem extends React.Component { color: "#05101A", fontSize: "16px", }}>邀请码: - {data[0].invite_code === null || data[0].invite_code === undefined ? "" : data[0].invite_code}
+
{data[0].invite_code === null || data[0].invite_code === undefined ? + } { @@ -184,13 +189,18 @@ class PersonalCompetititem extends React.Component {
: this.props.type === 2 ? -
-

战队详情

+ 战队详情
this.props.Exittheteamshow(data[0].id, false)}>

this.props.Exittheteamshow(data[0].id, false)}>退出战队

From 1bf72e9314a7b6f36673c757ed8f9576e2e4a99c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 20:11:55 +0800 Subject: [PATCH 08/17] jingsai.2 --- public/react/src/modules/competition/comcss/competition.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 859759a4d..e6b6b63a5 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -319,7 +319,7 @@ .regitem2 { display: flex; flex-direction: initial; - + padding-bottom: 18px; margin-top: 19px; } @@ -339,7 +339,7 @@ align-items: center; justify-content: center; margin-left: 26px; - padding-bottom: 18px; + } .regitemimg2 { From fa47b00a7ab5e54529c88b4a9b875f60be789b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 21:38:24 +0800 Subject: [PATCH 09/17] jingsai.2 --- .../modules/competition/CompetitionMaxImg.js | 7 +++ .../src/modules/competition/Registration.js | 59 +++++++++++++----- .../modules/competition/Registrationitem.js | 2 +- .../competition/comcss/competition.css | 54 ++++++++++------ .../competition/comcss/tipregistit.jpg | Bin 0 -> 140143 bytes 5 files changed, 87 insertions(+), 35 deletions(-) create mode 100644 public/react/src/modules/competition/comcss/tipregistit.jpg diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index b05ca56fc..154183f2f 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -29,6 +29,13 @@ class CompetitionMaxImg extends React.Component { let {type, pint} = this.props; return (
+ { type === 1 || type === 2 ?
diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 76a1d70b9..a260e343e 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -22,6 +22,7 @@ import PersonalModalteam from './competmodal/PersonalModalteam'; import PersonalCompetititem from './personal/PersonalCompetititem'; import ExittheteamModel from './competmodal/ExittheteamModel'; import pexjiazai from "./pexjiazai.png"; + // 团队竞赛报名无报名 class Registration extends React.Component { /*** @@ -74,6 +75,8 @@ class Registration extends React.Component { // //// ////console.log("调用子组件 "); // ////console.log(this.props.isAdmin()); // //// ////console.log(this.props.isAdmin()) + this.GetenrollmentAPI(); + this.Getthenavigationbar(); } @@ -85,12 +88,26 @@ class Registration extends React.Component { //console.log(this.props.user.admin); const {keyword, page, per_page} = this.state; this.Getdata(keyword, page, per_page, this.props.user.admin); - this.GetenrollmentAPI(); + } } - + // 获取导航栏 + Getthenavigationbar = () => { + const url = `/competitions/${"gcc-task-2020"}/competition_modules.json`; + axios.get((url)).then((result) => { + if (result) { + if (result.data) { + //// ////console.log("获取报名配置API"); + //// ////console.log(result); + console.log(result); + } + } + }).catch((error) => { + //// ////console.log(error); + }) + } //获取报名配置API GetenrollmentAPI = () => { const url = `/competitions/${"gcc-task-2020"}/competition_staff.json`; @@ -591,35 +608,45 @@ class Registration extends React.Component { //个人竞赛 // /competitions/:identifier/competition_teams.json Personalregistration = () => { - let {teacher_staff, member_staff, data} = this.state; + let {teacher_staff, member_staff, data, enroll_ended} = this.state; + if (enroll_ended === true) { + //已截止 + this.props.showNotification(`报名已截止`); + + return; + } if (teacher_staff) { - if (teacher_staff.mutiple_limited === true) { - if (data) { - if (data.length > teacher_staff.maximum) { - message.success('已限制多次报名!'); - return + if (teacher_staff.mutiple_limited) { + if (teacher_staff.mutiple_limited === true) { + if (data) { + if (data.length > teacher_staff.maximum) { + this.props.showNotification(`你已经报名,不能重复报名!`); + return + } } } } + } if (member_staff) { - if (teacher_staff.mutiple_limited === true) { + if (member_staff.mutiple_limited) { + if (member_staff.mutiple_limited === true) { if (data) { - if (data.length > teacher_staff.maximum) { - message.success('已限制多次报名!'); + if (data.length > member_staff.maximum) { + this.props.showNotification(`你已经报名,不能重复报名!`); return; } } } - + } } const url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; axios.post(url).then((response) => { if (response) { if (response.data) { - + this.props.showNotification(`报名成功,预祝您夺得桂冠!`); this.Refreshteam(); @@ -631,7 +658,7 @@ class Registration extends React.Component { } render() { const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate, pint} = this.state; - var listItems = ""; + // var listItems = ""; // if (competition_teams) { // listItems = competition_teams.map((item, index) => @@ -716,7 +743,7 @@ class Registration extends React.Component { : ""} {/*列表*/} { - pint === 1 || pint === 3 ? + type === 6 ?
{ return ( - + ) }) } diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js index 192166691..d252dc30d 100644 --- a/public/react/src/modules/competition/Registrationitem.js +++ b/public/react/src/modules/competition/Registrationitem.js @@ -69,7 +69,7 @@ class Registrationitem extends React.Component { color: "#999999", fontSize: "16px", textAlign: "center", - }}>2019-09-07 08:33

+ }}>{item.created_at}

diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index e6b6b63a5..2b3070ad4 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -8,16 +8,17 @@ } /*All*/ /*Registration.js*/ -.registrationback { - height: 368px; - width: 1200px; - border: 0.5px solid; - display: flex; - display: -webkit-flex; - flex-direction: column; - align-items: center; - background: #0dcecb; -} +/*.registrationback {*/ +/* height: 368px;*/ +/* width: 1200px;*/ +/* border: 0.5px solid;*/ +/* display: flex;*/ +/* display: -webkit-flex;*/ +/* flex-direction: column;*/ +/* align-items: center;*/ +/* background:url(../../../../../images/regis/tipregistit.jpg)*/ + +/*}*/ .registrationbackcenter { display: flex; @@ -26,14 +27,14 @@ align-items: center; } -.registrationback1 { - height: 368px; - width: 1200px; - border: 0.5px solid; - display: flex; - flex-direction: column; - background: #0dcecb; -} +/*.registrationback1 {*/ +/* height: 368px;*/ +/* width: 1200px;*/ +/* border: 0.5px solid;*/ +/* display: flex;*/ +/* flex-direction: column;*/ +/* background:url(../../../../../images/regis/tipregistit.jpg)*/ +/*}*/ .registrationbackp1 { color: #ffffff; @@ -315,6 +316,23 @@ border-bottom: 1px solid #EDEDED; } +.registrationback { + height: 368px; + width: 1200px; + display: flex; + display: -webkit-flex; + flex-direction: column; + align-items: center; + background-image: url(./tipregistit.jpg); +} + +.registrationback1 { + height: 368px; + width: 1200px; + display: flex; + flex-direction: column; + background-image: url(./tipregistit.jpg); +} .regitem2 { display: flex; diff --git a/public/react/src/modules/competition/comcss/tipregistit.jpg b/public/react/src/modules/competition/comcss/tipregistit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8aae5023220d809f80bdd58feb5856fa457b9257 GIT binary patch literal 140143 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

    rB9#&hK^0e)U=+>&7z?gN|uhHdcvi`X`LB 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

    05=^9F#Ifjd#w>txN$$77!>99O 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 E*<9oS_y7O^ literal 0 HcmV?d00001 From 0d9aebc7a8ec1566bbbaf4dc916dbb10bcef9bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 21:41:28 +0800 Subject: [PATCH 10/17] jingsai.2 --- .../src/modules/competition/Registration.js | 96 +++++++++---------- 1 file changed, 46 insertions(+), 50 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index a260e343e..a704c8278 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -101,6 +101,7 @@ class Registration extends React.Component { if (result.data) { //// ////console.log("获取报名配置API"); //// ////console.log(result); + console.log("Getthenavigationbar"); console.log(result); } } @@ -440,56 +441,51 @@ class Registration extends React.Component { **/ Createateam = () => { // - // if (this.state.enrolled === true) { - // //已经报名 - // this.setState({ - // messagePerbool: true, - // intpermessages: "您已报名,无需重复报" - // }) - // return; - // } - // if (this.state.enroll_ended === true) { - // //报名截止 - // this.setState({ - // messagePerbool: true, - // intpermessages: "报名已截止,无需报名" - // }) - // return - // } - // if (this.props.isAdmin() === true) { - // //老师 - // if (this.state.teacher_staff === null) { - // //禁止老师 - // this.setState({ - // messagePerbool: true, - // intpermessages: "已禁止老师报名" - // }) - // return; - // } - // this.setState({ - // tmodalsType: true, - // Newtit:true, - // }) - // } else { - // //学生 - // if (this.state.member_staff === null) { - // //禁止学生 - // this.setState({ - // messagePerbool: true, - // intpermessages: "已禁止学生报名" - // }) - // return; - // } - // this.setState({ - // tmodalsType: true, - // Newtit:true, - // }) - // } - - this.setState({ - tmodalsType: true, - Newtit: true, - }) + if (this.state.enrolled === true) { + //已经报名 + this.setState({ + messagePerbool: true, + intpermessages: "您已报名,无需重复报" + }) + return; + } + if (this.state.enroll_ended === true) { + //报名截止 + this.setState({ + messagePerbool: true, + intpermessages: "报名已截止,无需报名" + }) + return + } + if (this.props.isAdmin() === true) { + //老师 + if (this.state.teacher_staff === null) { + //禁止老师 + this.setState({ + messagePerbool: true, + intpermessages: "已禁止老师报名" + }) + return; + } + this.setState({ + tmodalsType: true, + Newtit: true, + }) + } else { + //学生 + if (this.state.member_staff === null) { + //禁止学生 + this.setState({ + messagePerbool: true, + intpermessages: "已禁止学生报名" + }) + return; + } + this.setState({ + tmodalsType: true, + Newtit: true, + }) + } } //编辑战队 From e8344c6674eaeaaf46a698c02fc4e5f7d60ff3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Wed, 23 Oct 2019 21:42:50 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/App.js | 40 +++++++++---------- .../src/modules/competition/Registration.js | 2 +- .../Competitimain/Competitionsindex.css | 1 - .../Competitioncommon/CompetitionCommon.js | 31 ++++++++++---- .../src/modules/competitions/Competitions.js | 11 +++++ 5 files changed, 53 insertions(+), 32 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index 43dc585d4..69bd33f57 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -285,16 +285,12 @@ const Ecs = Loadable({ loading: Loading, }) -//团队竞赛报名 -const Registration = Loadable({ - loader: () => import('./modules/competition/Registration'), - loading: Loading, -}); -//个人竞赛报名 -const PersonalCompetit = Loadable({ - loader: () => import('./modules/competition/personal/PersonalCompetit.js'), - loading: Loading, -}); + +// //个人竞赛报名 +// const PersonalCompetit = Loadable({ +// loader: () => import('./modules/competition/personal/PersonalCompetit.js'), +// loading: Loading, +// }); class App extends Component { constructor(props) { super(props) @@ -541,12 +537,12 @@ class App extends Component { return () } }> - () - } - /> + {/* ()*/} + {/*}*/} + {/*/>*/} */} {/**/} {/**/} - () - } - /> + {/* ()*/} + {/*}*/} + {/*/>*/} { + if(response.status===200){ + this.setState({ + bannerdata:response.data + }) + } + }).catch((error) => { + console.log(error) + }) } getbannerdata=()=>{ @@ -28,6 +39,8 @@ class CompetitionCommon extends Component{ this.setState({ data:response.data }) + + let datalist=response.data.competition_modules } }).catch((error) => { console.log(error) @@ -36,8 +49,8 @@ class CompetitionCommon extends Component{ } render() { - let {data}=this.state; - console.log(data) + let {data,bannerdata}=this.state; + // console.log(bannerdata) return ( data===undefined?"":

    @@ -48,8 +61,10 @@ class CompetitionCommon extends Component{
    - banner - + + + + {data&&data.name} @@ -86,7 +101,7 @@ class CompetitionCommon extends Component{ {data&&data.enroll_end_time===null?"":"报名截止时间:"+data&&data.enroll_end_time} diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index 3d5bcd920..4fab546c6 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -29,6 +29,11 @@ const CompetitionTeams = Loadable({ loading: Loading, }) +//团队竞赛报名 +const Registration = Loadable({ + loader: () => import('../competition/Registration'), + loading: Loading, +}); class Competitions extends Component { constructor(props) { @@ -53,6 +58,12 @@ class Competitions extends Component { } > + () + } + /> {/*新版竞赛详情页面*/} Date: Wed, 23 Oct 2019 21:44:48 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competitions/Competitioncommon/CompetitionCommon.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js index 69ee111a9..9439d3991 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -1,5 +1,6 @@ import React, { Component } from 'react'; import { Breadcrumb,Layout,Table, Divider, Tag,Badge,Row, Col,Button, Menu, Icon} from 'antd'; +import { Link } from 'react-router-dom'; import axios from 'axios'; import {markdownToHTML,getImageUrl} from 'educoder'; import NoneData from "../../courses/shixunHomework/shixunHomework"; @@ -101,7 +102,7 @@ class CompetitionCommon extends Component{ {data&&data.enroll_end_time===null?"":"报名截止时间:"+data&&data.enroll_end_time} From 32398333ec48f17bca2a86aa7f9d8857b94ea994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 22:06:24 +0800 Subject: [PATCH 13/17] jingsai.4 --- .../modules/competition/CompetitionMaxImg.js | 6 +- .../modules/competition/RegisListviewdata.js | 4 +- .../src/modules/competition/Registration.js | 119 ++++++++--------- .../modules/competition/RegistrationSearch.js | 8 +- .../competition/competmodal/PersonModal.js | 120 +++++++++--------- .../competmodal/PersonalModalteam.js | 2 +- .../personal/PersonalCompetititem.js | 10 +- 7 files changed, 129 insertions(+), 140 deletions(-) diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index 154183f2f..ca400f90a 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -16,9 +16,9 @@ class CompetitionMaxImg extends React.Component { componentDidUpdate = (prevProps) => { if (prevProps.GetenrollmentAPI != this.props.GetenrollmentAPI) { - // //console.log("团队竞赛报名大图componentDidUpdate"); - // //console.log(this.props); - // //console.log(this.props.GetenrollmentAPI); + // ////console.log("团队竞赛报名大图componentDidUpdate"); + // ////console.log(this.props); + // ////console.log(this.props.GetenrollmentAPI); this.setState({ GetenrollmentAPI: this.props.GetenrollmentAPI, }) diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index 31ea816b5..accba353f 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -23,8 +23,8 @@ class RegisListviewdata extends React.Component { } componentDidMount() { - //console.log("RegisListviewdata"); - //console.log(this.props.item) + ////console.log("RegisListviewdata"); + ////console.log(this.props.item) this.setState({ item: this.props.item }) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 02396466f..5591d68c5 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -9,7 +9,7 @@ import moment from 'moment'; import {SnackbarHOC, WordsBtn} from 'educoder'; import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; import competition from './comcss/competition.css'; -import {Button, Pagination, message, Spin} from 'antd'; +import {Button, Pagination, message, Spin, Breadcrumb} from 'antd'; import Registrationitem from './Registrationitem'; import RegisNodata from './RegisNodata'; import CompetitionMaxImg from './CompetitionMaxImg'; @@ -36,7 +36,6 @@ class Registration extends React.Component { constructor(props) { super(props) this.state = { - test: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], loadingstate: false, pages: 1, limit: 20, @@ -71,52 +70,38 @@ class Registration extends React.Component { } componentDidMount() { - // ////console.log("componentDidMount Registration"); - // //// ////console.log("调用子组件 "); - // ////console.log(this.props.isAdmin()); - // //// ////console.log(this.props.isAdmin()) - this.GetenrollmentAPI(); - this.Getthenavigationbar(); - + console.log(this.props); + // //////console.log("componentDidMount Registration"); + // //// //////console.log("调用子组件 "); + // //////console.log(this.props.isAdmin()); + // //// //////console.log(this.props.isAdmin()) } componentDidUpdate = (prevProps) => { if (prevProps.user != this.props.user) { - //console.log("Registration"); - //console.log("componentDidUpdate"); - //console.log(this.props.user.admin); + console.log("componentDidUpdate"); + console.log(this.props); + ////console.log("Registration"); + ////console.log("componentDidUpdate"); + ////console.log(this.props.user.admin); const {keyword, page, per_page} = this.state; this.Getdata(keyword, page, per_page, this.props.user.admin); + this.GetenrollmentAPI(); } } - // 获取导航栏 - Getthenavigationbar = () => { - const url = `/competitions/${"gcc-task-2020"}/competition_modules.json`; - axios.get((url)).then((result) => { - if (result) { - if (result.data) { - //// ////console.log("获取报名配置API"); - //// ////console.log(result); - console.log("Getthenavigationbar"); - console.log(result); - } - } - }).catch((error) => { - //// ////console.log(error); - }) - } + //获取报名配置API GetenrollmentAPI = () => { - const url = `/competitions/${"gcc-task-2020"}/competition_staff.json`; + const url = `/competitions/${this.props.match.params.identifier}/competition_staff.json`; axios.get((url)).then((result) => { if (result) { if (result.data) { - //// ////console.log("获取报名配置API"); - //// ////console.log(result); + //// //////console.log("获取报名配置API"); + //// //////console.log(result); this.setState({ GetenrollmentAPI: result.data, personal: result.data.personal, @@ -141,7 +126,7 @@ class Registration extends React.Component { } } }).catch((error) => { - //// ////console.log(error); + //// //////console.log(error); }) } @@ -154,11 +139,11 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; + let url = `/competitions/${this.props.match.params.identifier}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - //// ////console.log(result);\ + //// //////console.log(result);\ if (result.data.personal === false) { //不是个人赛 if (result.data.my_teams.length === 0) { @@ -277,24 +262,24 @@ class Registration extends React.Component { page: page, per_page: per_page, }; - let url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; + let url = `/competitions/${this.props.match.params.identifier}/competition_teams.json`; axios.get((url), {params: datas}).then((result) => { this.setState({ loadingstate: false, }) if (result) { if (result.data) { - //// ////console.log(result); + //// //////console.log(result); if (result.data.personal === false) { //不是个人赛 - //console.log("Getdatatype5"); - //console.log(result.data.my_teams.length); + ////console.log("Getdatatype5"); + ////console.log(result.data.my_teams.length); if (result.data.my_teams.length === 0) { // 没有创建数据的 //管理员 - //console.log("a"); - //console.log(this.state.competition_teams); - //console.log(result.data.competition_teams); + ////console.log("a"); + ////console.log(this.state.competition_teams); + ////console.log(result.data.competition_teams); this.setState({ type: 4, count: result.data.count, @@ -305,7 +290,7 @@ class Registration extends React.Component { }) } else { //有数据的 - //console.log("b"); + ////console.log("b"); if (result.data.my_teams[0].manage_permission === true) { this.setState({ @@ -318,7 +303,7 @@ class Registration extends React.Component { }) } else { - //console.log("c"); + ////console.log("c"); this.setState({ type: 4, @@ -332,7 +317,7 @@ class Registration extends React.Component { } } else { //团队赛 - //console.log("d"); + ////console.log("d"); this.setState({ type: 6, @@ -348,10 +333,10 @@ class Registration extends React.Component { } }).catch((error) => { - //console.log("k"); + ////console.log("k"); - //console.log(error); - //console.log("报错了"); + ////console.log(error); + ////console.log("报错了"); if (admin === true) { //管理员 this.setState({ @@ -561,7 +546,7 @@ class Registration extends React.Component { } //退出战队 Exittheteam = (bool) => { - // ////console.log(this.state.itemid); + // //////console.log(this.state.itemid); if (bool) { this.setState({ messageexitol: true @@ -571,8 +556,8 @@ class Registration extends React.Component { axios.post(url).then((response) => { if (response) { if (response.data) { - ////console.log("退出战队"); - ////console.log(response); + //////console.log("退出战队"); + //////console.log(response); this.Refreshteam(); this.setState({ messageexitol: false @@ -581,7 +566,7 @@ class Registration extends React.Component { } } }).catch((error) => { - ////console.log(error) + //////console.log(error) }); } else { @@ -592,8 +577,8 @@ class Registration extends React.Component { } //搜索战队 RegistrationSearchvalue = (value) => { - //console.log("RegistrationSearchvalue"); - //console.log(this.props.user.admin); + ////console.log("RegistrationSearchvalue"); + ////console.log(this.props.user.admin); this.setState({ pages: 1, limit: 20, @@ -638,7 +623,7 @@ class Registration extends React.Component { } } } - const url = `/competitions/${"gcc-task-2020"}/competition_teams.json`; + const url = `/competitions/${this.props.match.params.identifier}/competition_teams.json`; axios.post(url).then((response) => { if (response) { if (response.data) { @@ -653,7 +638,7 @@ class Registration extends React.Component { }); } render() { - const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate, pint} = this.state; + const {page, pages, limit, type, tmodalsType, tmodalsTypes, data, count, competition_teams, Newtit, itemiddata, messagePerbool, messageexitol, GetenrollmentAPI, loadingstate, pint} = this.state; // var listItems = ""; // if (competition_teams) { @@ -709,16 +694,20 @@ class Registration extends React.Component { : "" } - + {/*
    */} + {/*

    */} + {/* 在线竞赛*/} + {/* >*/} + {/* 全国高校计算机大赛-项目挑战*/} + {/* >*/} + {/* 报名*/} + {/*

    */} + {/*
    */} + + 在线竞赛 + 全国高校计算机大赛 + {/*大图*/} this.Jointheteam()} pint={pint} diff --git a/public/react/src/modules/competition/RegistrationSearch.js b/public/react/src/modules/competition/RegistrationSearch.js index 5a08cd84d..3d3019e95 100644 --- a/public/react/src/modules/competition/RegistrationSearch.js +++ b/public/react/src/modules/competition/RegistrationSearch.js @@ -27,8 +27,8 @@ class RegistrationSearch extends React.Component { }; setdatafuns = (value) => { - console.log("setdatafuns点击了搜索"); - console.log(value); + //console.log("setdatafuns点击了搜索"); + //console.log(value); this.setState({ keywords: value }) @@ -36,8 +36,8 @@ class RegistrationSearch extends React.Component { }; myonPressEnter = (e) => { - console.log("点击了回车setdatafunsval点击了搜索"); - console.log(e.target.value); + //console.log("点击了回车setdatafunsval点击了搜索"); + //console.log(e.target.value); this.props.RegistrationSearchvalue(e.target.value); } render() { diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 9b48307e3..7ee726f53 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -61,9 +61,9 @@ class PersonModal extends Component { componentDidUpdate = (prevProps) => { if (prevProps.user != this.props.user) { - //console.log("Registration.js componentDidUpdate"); - //console.log(this.props); - // //console.log(prevProps); + ////console.log("Registration.js componentDidUpdate"); + ////console.log(this.props); + // ////console.log(prevProps); //identity职场称 //user_school学校 //real_name姓名 @@ -86,8 +86,8 @@ class PersonModal extends Component { } if (prevProps.GetenrollmentAPI != this.props.GetenrollmentAPI) { - //console.log("Registration.js GetenrollmentAPIcomponentDidUpdate"); - //console.log(this.props); + ////console.log("Registration.js GetenrollmentAPIcomponentDidUpdate"); + ////console.log(this.props); this.setState({ GetenrollmentAPI: this.props.GetenrollmentAPI, }) @@ -151,21 +151,21 @@ class PersonModal extends Component { // Thecurrentnumber if (this.props.Newtit === true) { //创建新的战队 - let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; + let url = `/competitions/${this.props.match.params.identifier}/competition_teams.json`; axios.post(url, { name: polls_nametest, teacher_ids: myteaherdata, member_ids: myshtudentdata, }).then((result) => { - // //console.log("获取到创建战队的数据"); - // //console.log(result); + // ////console.log("获取到创建战队的数据"); + // ////console.log(result); if (result) { if (result.data) { this.props.Tmoconfirm1(true); } } }).catch((error) => { - // //console.log(error) + // ////console.log(error) }); } else { //编辑战队 @@ -175,15 +175,15 @@ class PersonModal extends Component { teacher_ids: myteaherdata, member_ids: myshtudentdata, }).then((result) => { - // //console.log("获取到编辑战队的数据"); - // //console.log(result); + // ////console.log("获取到编辑战队的数据"); + // ////console.log(result); if (result) { if (result.data) { this.props.Tmoconfirm1(true); } } }).catch((error) => { - // //console.log(error) + // ////console.log(error) }); } } @@ -195,24 +195,24 @@ class PersonModal extends Component { //老师姓名 keyword //当前战队ID team_id //当前老师ID数组 teacher_ids - // //console.log("搜索的老师"); + // ////console.log("搜索的老师"); const datas = { keyword: keywordteachers, team_id: team_idteachers, teacher_ids: teacher_ids, }; - let url = `/competitions/${"gcc-course-2019"}/teachers.json`; + let url = `/competitions/${this.props.match.params.identifier}/teachers.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - // //console.log(result); + // ////console.log(result); this.setState({ teacher_ids: result.data.teachers }) } } }).catch((error) => { - // //console.log(error); + // ////console.log(error); }) }; Getstudentsdata = (keywordstudents, team_idstudents, student_ids) => { @@ -223,17 +223,17 @@ class PersonModal extends Component { //学生姓名 keyword //当前战队ID team_id //当前队员ID数组 student_ids - // //console.log("搜索的学生"); + // ////console.log("搜索的学生"); const datas = { keyword: keywordstudents, team_id: team_idstudents, student_ids: student_ids, }; - let url = `/competitions/${"gcc-course-2019"}/students.json`; + let url = `/competitions/${this.props.match.params.identifier}/students.json`; axios.get((url), {params: datas}).then((result) => { if (result) { if (result.data) { - // //console.log(result); + // ////console.log(result); this.setState({ member_ids: result.data.teachers }) @@ -241,14 +241,14 @@ class PersonModal extends Component { } } }).catch((error) => { - // //console.log(error); + // ////console.log(error); }) }; //老师输入框事件 teacheronChange = (e) => { - // //console.log(e.target.value); - // //console.log("老师输入框事件|||||||||||123123123"); + // ////console.log(e.target.value); + // ////console.log("老师输入框事件|||||||||||123123123"); this.setState({ keywordteachers: e.target.value, booltech: false, @@ -286,8 +286,8 @@ class PersonModal extends Component { //学生输入框事件 studentsonChange = (e) => { - // //console.log("学生输入框事件"); - // //console.log(e); + // ////console.log("学生输入框事件"); + // ////console.log(e); this.setState({ keywordstudents: e.target.value, boolstud: false, @@ -337,9 +337,9 @@ class PersonModal extends Component { }; var fordabool = false; var forda = this.state.mydatas; - // //console.log("点击获取老师数据"); - // //console.log(object); - // //console.log(forda); + // ////console.log("点击获取老师数据"); + // ////console.log(object); + // ////console.log(forda); for (var i = 0; i < forda.length; i++) { if (forda[i].id) { if (forda[i].id === object.id) { @@ -378,14 +378,14 @@ class PersonModal extends Component { }; var fordabool = false; var forda = this.state.mydatas; - // //console.log("点击获取学生数据2"); - // //console.log(object); - // //console.log(forda); + // ////console.log("点击获取学生数据2"); + // ////console.log(object); + // ////console.log(forda); for (var i = 0; i < forda.length; i++) { if (forda[i].id) { - // // //console.log(true); - // // //console.log(forda[i].id); - // // //console.log(object.id); + // // ////console.log(true); + // // ////console.log(forda[i].id); + // // ////console.log(object.id); if (forda[i].id === object.id) { fordabool = true; break @@ -413,7 +413,7 @@ class PersonModal extends Component { } //输入框事件 changeTopicName = (e) => { - // // //console.log("调用了changeTopicName"); + // // ////console.log("调用了changeTopicName"); let num = parseInt(e.target.value.length); if (num > 60) { return; @@ -428,7 +428,7 @@ class PersonModal extends Component { //onSearchsou onSearch = (value) => { - // //console.log("搜索的数据" + value); + // ////console.log("搜索的数据" + value); }; handleInfiniteOnLoad = () => { // this.setState({ @@ -448,12 +448,12 @@ class PersonModal extends Component { } handleInfiniteOnLoad1 = () => { - // // //console.log("调用了方法1111"); + // // ////console.log("调用了方法1111"); // this.setState({ // loading1: true, // }) // setTimeout(() => { - // // //console.log("调用了方法11112"); + // // ////console.log("调用了方法11112"); // this.setState({ // loading1: false, // hasMore: true, @@ -462,13 +462,13 @@ class PersonModal extends Component { } handleInfiniteOnLoad2 = () => { - // // //console.log("调用了方法1111"); + // // ////console.log("调用了方法1111"); // this.setState({ // loading2: true, // // }) // setTimeout(() => { - // // //console.log("调用了方法11113"); + // // ////console.log("调用了方法11113"); // this.setState({ // hasMore: true, // loading2: false, @@ -477,23 +477,23 @@ class PersonModal extends Component { } inputOnBlur = (e) => { - // //console.log("inputOnBlur"); - // //console.log(e); + // ////console.log("inputOnBlur"); + // ////console.log(e); this.setState({ person1: false }) } inputOnBlur2 = (e) => { - // //console.log("inputOnBlur"); - // //console.log(e); + // ////console.log("inputOnBlur"); + // ////console.log(e); this.setState({ person2: false }) } startSearch = (e) => { - // //console.log("startSearch"); - // //console.log(e); + // ////console.log("startSearch"); + // ////console.log(e); this.setState({ person1: true, person2: false, @@ -503,8 +503,8 @@ class PersonModal extends Component { } startSearch2 = (e) => { - // //console.log("startSearch2"); - // //console.log(e); + // ////console.log("startSearch2"); + // ////console.log(e); this.setState({ person1: false, person2: true, @@ -514,8 +514,8 @@ class PersonModal extends Component { } inputOnFocus = (e) => { - // //console.log("inputOnFocus"); - // //console.log(e); + // ////console.log("inputOnFocus"); + // ////console.log(e); try { if (this.state.keywordteachers && this.state.keywordteachers.length > 0) { this.setState({ @@ -539,8 +539,8 @@ class PersonModal extends Component { } inputOnFocus2 = (e) => { - // //console.log("inputOnFocus2"); - // //console.log(e); + // ////console.log("inputOnFocus2"); + // ////console.log(e); try { if (this.state.keywordstudents && this.state.keywordstudents.length > 0) { this.setState({ @@ -565,8 +565,8 @@ class PersonModal extends Component { } inputOnFocus3 = (e) => { - // //console.log("inputOnFocus3"); - // //console.log(e); + // ////console.log("inputOnFocus3"); + // ////console.log(e); this.setState({ person2: false, person1: false, @@ -576,13 +576,13 @@ class PersonModal extends Component { var {mydatas} = this.state; if (item) { var pos = mydatas.indexOf(item); - // //console.log("deletedata"); - // //console.log(pos); + // ////console.log("deletedata"); + // ////console.log(pos); var removedItem = mydatas.splice(pos, 1); - // //console.log("deletedata22222"); - // //console.log(removedItem) + // ////console.log("deletedata22222"); + // ////console.log(removedItem) //removedItem 是被删除的元素 - // //console.log(mydatas) + // ////console.log(mydatas) this.setState({ mydatas: mydatas, }) @@ -770,8 +770,8 @@ class PersonModal extends Component {
    ); - console.log("PersonModal"); - console.log(this.props); + //console.log("PersonModal"); + //console.log(this.props); return ( { - let url = `/competitions/${"gcc-course-2019"}/competition_teams/join.json`; + let url = `/competitions/${this.props.match.params.identifier}/competition_teams/join.json`; axios.post(url, { invite_code: this.state.yslzxueshiskmcdm1 }).then((result) => { diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 7f157cead..d7830b969 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -34,7 +34,7 @@ class PersonalCompetititem extends React.Component { } componentDidMount() { - // // //console.log(this.props.data) + // // ////console.log(this.props.data) this.setState({ data: this.props.data, }) @@ -50,10 +50,10 @@ class PersonalCompetititem extends React.Component { render() { const {data} = this.props; - // //console.log("PersonalCompetititem"); - // //console.log(data); - // //console.log(data[0]); - // //console.log(data&&data[0].creator.image_url); + // ////console.log("PersonalCompetititem"); + // ////console.log(data); + // ////console.log(data[0]); + // ////console.log(data&&data[0].creator.image_url); // const listItems = mydatas.map((item, index) => // // ); From 5785d4e4cbb732da55b165ff8ffde91296636a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 23 Oct 2019 23:21:28 +0800 Subject: [PATCH 14/17] jingsai.5 --- public/react/src/App.js | 9 +++++- .../src/modules/competition/Registration.js | 29 +++++++++++++------ .../modules/competition/RegistrationSearch.js | 3 +- .../competition/comcss/competition.css | 10 ++++++- .../competition/competmodal/PersonModal.js | 19 +++++++++++- .../competition/personal/PersonalCompetit.js | 2 +- .../personal/PersonalCompetititem.js | 12 +++++--- .../src/modules/competitions/Competitions.js | 2 ++ 8 files changed, 68 insertions(+), 18 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index 69bd33f57..5988d3532 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -486,7 +486,14 @@ class App extends Component { {/*/!*众包创新*!/*/} {/**/} {/*竞赛*/} - + { + + return () + } + }> + {/*认证*/} diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 5591d68c5..3c50647ce 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -76,6 +76,15 @@ class Registration extends React.Component { // //// //////console.log("调用子组件 "); // //////console.log(this.props.isAdmin()); // //// //////console.log(this.props.isAdmin()) + try { + const {keyword, page, per_page} = this.state; + this.Getdata(keyword, page, per_page, this.props.user.admin); + this.GetenrollmentAPI(); + } catch (e) { + // const {keyword, page, per_page} = this.state; + // this.Getdata(keyword, page, per_page, this.props.isAdmin()); + // this.GetenrollmentAPI(); + } } componentDidUpdate = (prevProps) => { @@ -88,8 +97,6 @@ class Registration extends React.Component { const {keyword, page, per_page} = this.state; this.Getdata(keyword, page, per_page, this.props.user.admin); this.GetenrollmentAPI(); - - } } @@ -388,7 +395,7 @@ class Registration extends React.Component { }) return } - if (this.props.isAdmin() === true) { + if (this.props.user.admin === true) { //老师 if (this.state.teacher_staff === null) { //禁止老师 @@ -442,7 +449,7 @@ class Registration extends React.Component { }) return } - if (this.props.isAdmin() === true) { + if (this.props.user.admin === true) { //老师 if (this.state.teacher_staff === null) { //禁止老师 @@ -704,10 +711,13 @@ class Registration extends React.Component { {/* 报名*/} {/*

    */} {/*
    */} - - 在线竞赛 - 全国高校计算机大赛 - +
    + + 在线竞赛 + 全国高校计算机大赛 + 报名 + +
    {/*大图*/} this.Jointheteam()} pint={pint} @@ -722,7 +732,8 @@ class Registration extends React.Component {
    -

    参赛总人数:{data === null || data === undefined ? 0 : data.length}人 +

    参赛总人数:{data === null || data === undefined ? 0 : data.length}

    : ""} diff --git a/public/react/src/modules/competition/RegistrationSearch.js b/public/react/src/modules/competition/RegistrationSearch.js index 3d3019e95..122366e0d 100644 --- a/public/react/src/modules/competition/RegistrationSearch.js +++ b/public/react/src/modules/competition/RegistrationSearch.js @@ -62,7 +62,8 @@ class RegistrationSearch extends React.Component { textAlign: "right", lineHeight: " 24px" }}>战队总数:{this.props.count}

    + style={{color: "#459BE5", fontSize: "16px"}}>{this.props.count}

) } diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 2b3070ad4..102f2492d 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -365,11 +365,13 @@ width: 78px; background-color: transparent; margin-bottom: 9px; + border-radius: 50%; } .personregitemimg { height: 64px; width: 64px; + border-radius: 50%; } @@ -384,13 +386,17 @@ height: 69px; margin-top: 3px; background-color: transparent; + border-radius: 50%; + } .regitemimgs2 { margin-top: 16px; width: 49px; height: 51px; - margin-left: 25px + margin-left: 25px; + border-radius: 50%; + } .regitemimgs22 { @@ -398,6 +404,8 @@ width: 28px; height: 28px; margin-left: 20px; + border-radius: 50%; + } .regitemimgs3 { diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 7ee726f53..d59a9185b 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -56,7 +56,24 @@ class PersonModal extends Component { } } componentDidMount() { - + var data = []; + var datas = { + enrollable: false, + id: this.props.user.user_id, + name: this.props.user.real_name, + school_name: this.props.user.user_school, + student_id: null, + identity: this.props.user.user_identity, + type: "创建者", + }; + data.push(datas); + this.setState({ + myuser: this.props.user, + mydatas: data, + }) + this.setState({ + GetenrollmentAPI: this.props.GetenrollmentAPI, + }) } componentDidUpdate = (prevProps) => { diff --git a/public/react/src/modules/competition/personal/PersonalCompetit.js b/public/react/src/modules/competition/personal/PersonalCompetit.js index b14ad4d36..d740e416a 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetit.js +++ b/public/react/src/modules/competition/personal/PersonalCompetit.js @@ -58,7 +58,7 @@ class PersonalCompetit extends React.Component {
-

参赛总人数:132

+

参赛总人数:132

: ""} diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index d7830b969..3b70190fa 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -148,10 +148,14 @@ class PersonalCompetititem extends React.Component { fontSize: "16px", }}>{data[0].invite_code === null || data[0].invite_code === undefined ? "" : data[0].invite_code}
- +
+ +
{data[0].invite_code === null || data[0].invite_code === undefined ? Date: Wed, 23 Oct 2019 23:22:06 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Competitioncommon/CompetitionCommon.css | 36 ++++ .../Competitioncommon/CompetitionCommon.js | 10 +- .../Competitioncommon/CompetitionContents.js | 38 ++++ .../CompetitionContentsChart.js | 189 ++++++++++++++++++ .../src/modules/competitions/Competitions.js | 3 + 5 files changed, 271 insertions(+), 5 deletions(-) create mode 100644 public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js create mode 100644 public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css index 4f05d179e..e7bd0b0e7 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css @@ -143,6 +143,7 @@ height: 30px; line-height: 30px; background:none; + color:#666; } .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { @@ -173,4 +174,39 @@ .teamsLayoutleft{ background: transparent !important; +} + +.Competitioncharts{ + font-size: 24px; + color: rgba(5,16,26,1); +} +.Competitionfirst{ + width:233px; + height:298px; + background:rgba(250,250,250,1); + box-shadow:0px 2px 8px 2px rgba(255,134,34,0.5); + border-radius:5px; +} +.Competitionsecondary{ + width:234px; + height:277px; + background:rgba(250,250,250,1); + box-shadow:0px 3px 5px 0px rgba(254,190,154,1); + border-radius:5px; +} + +.Competitionthird{ + width: 234px; + height: 270px; + background: rgba(250,250,250,1); + box-shadow: 0px 4px 5px 0px rgba(200,200,202,1); + border-radius: 5px; +} + +.Competition399{ + height:399px; +} + +.Competitiontransparent table{ + background: transparent; } \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js index 9439d3991..210f1abca 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -3,6 +3,8 @@ import { Breadcrumb,Layout,Table, Divider, Tag,Badge,Row, Col,Button, Menu, Icon import { Link } from 'react-router-dom'; import axios from 'axios'; import {markdownToHTML,getImageUrl} from 'educoder'; +import CompetitionContents from './CompetitionContents'; +import CompetitionContentsChart from './CompetitionContentsChart'; import NoneData from "../../courses/shixunHomework/shixunHomework"; import './CompetitionCommon.css'; @@ -57,7 +59,7 @@ class CompetitionCommon extends Component{ 在线竞赛 - 全国高校计算机大赛 + {data&&data.name}
@@ -126,10 +128,8 @@ class CompetitionCommon extends Component{ - - - - + + diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js new file mode 100644 index 000000000..5ba381b24 --- /dev/null +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js @@ -0,0 +1,38 @@ +import React, { Component } from 'react'; +import {Button,Layout} from 'antd'; +import axios from 'axios'; +import {markdownToHTML,getImageUrl} from 'educoder'; +import NoneData from "../../courses/shixunHomework/shixunHomework"; + +const { Header, Footer, Sider, Content } = Layout; +class CompetitionContents extends Component{ + constructor(props) { + super(props) + this.state={ + + } + } + + componentDidMount(){ + window.document.title = '竞赛'; + + } + + + + render() { + + return ( + +
+ + + +
+ + ) + } +} +export default CompetitionContents; \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js new file mode 100644 index 000000000..9d7a10f18 --- /dev/null +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js @@ -0,0 +1,189 @@ +import React, { Component } from 'react'; +import {Button,Layout,Tabs,Icon, Card, Avatar, Row, Col ,Table} from 'antd'; +import axios from 'axios'; +import {markdownToHTML,getImageUrl} from 'educoder'; +import NoneData from "../../courses/shixunHomework/shixunHomework"; + +const { Header, Footer, Sider, Content } = Layout; +const { TabPane } = Tabs; +const { Meta } = Card; + +class CompetitionContents extends Component{ + constructor(props) { + super(props) + this.state={ + + } + } + + componentDidMount(){ + window.document.title = '竞赛'; + + } + + + + render() { + const operations = ; + const columns = [ + { + title: 'Name', + dataIndex: 'name', + key: 'name', + render: text => {text}, + }, + { + title: 'Age', + dataIndex: 'age', + key: 'age', + }, + { + title: 'Address', + dataIndex: 'address', + key: 'address', + }, + { + title: 'Tags', + key: 'tags', + dataIndex: 'tags', + render: tags => ( + + 123123 + + ), + }, + { + title: 'Action', + key: 'action', + render: (text, record) => ( + + Invite {record.name} + Delete + + ), + }, + { + title: 'Values', + key: 'values', + dataIndex: 'values', + render: tags => ( + + 123123 + + ), + }, + ]; + + const data = [ + { + key: '1', + name: 'John Brown', + age: 32, + address: 'New York No. 1 Lake Park', + tags: ['nice', 'developer'], + values:123 + }, + { + key: '2', + name: 'Jim Green', + age: 42, + address: 'London No. 1 Lake Park', + tags: ['loser'], + values:123 + }, + { + key: '3', + name: 'Joe Black', + age: 32, + address: 'Sidney No. 1 Lake Park', + tags: ['cool', 'teacher'], + values:123 + }, + ]; + + + return ( +
+ + + + + + + + + + + + + + + + + + 总排名 + + + + + + } + > + + + + + + } + > + + + + + + + } + > + + + + + + + + + + + + + ) + } +} +export default CompetitionContents; \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index 4fab546c6..cde00dc4c 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -58,12 +58,15 @@ class Competitions extends Component { } > + + {/*新版竞赛报名*/} () } /> + {/*新版竞赛详情页面*/} Date: Thu, 24 Oct 2019 08:56:59 +0800 Subject: [PATCH 16/17] jingsai.6 --- public/react/src/modules/competition/CompetitionMaxImg.js | 3 ++- public/react/src/modules/competition/Registration.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index ca400f90a..7a81b952a 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -106,7 +106,8 @@ class CompetitionMaxImg extends React.Component { : - "" +
+
} diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 3c50647ce..718728b31 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -39,7 +39,7 @@ class Registration extends React.Component { loadingstate: false, pages: 1, limit: 20, - type: 1, + type: 7, tmodalsType: false, tmodalsTypes: false, Newtit: true, From ec97013ebde9b98c6b089ecef5f1aeeaaa79f8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Thu, 24 Oct 2019 09:48:29 +0800 Subject: [PATCH 17/17] jingsai.7 --- .../modules/competition/RegisListviewdata.js | 6 ++- .../src/modules/competition/Registration.js | 10 ++-- .../competition/competmodal/PersonModal.js | 50 ++++++++++++++++--- .../personal/PersonalCompetititem.js | 4 +- 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index accba353f..3bd8fe0b2 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -44,7 +44,11 @@ class RegisListviewdata extends React.Component { -

{item.creator.name}

+

{item.creator.name}

: "" } - + {/*编辑创建战队*/} { tmodalsType === true ? { @@ -140,11 +173,12 @@ class PersonModal extends Component { myshtudentdata.push(mydatas[a].id); } } - if (GetenrollmentAPI) { - if (GetenrollmentAPI !== undefined || GetenrollmentAPI !== null) { - if (GetenrollmentAPI.teacher_staff !== undefined || GetenrollmentAPI.teacher_staff !== null) { - if (GetenrollmentAPI.teacher_staff.minimum > i) { + + try { + if (GetenrollmentAPI) { + if (GetenrollmentAPI.teacher_staff) { + if (GetenrollmentAPI.teacher_staff.minimum > i) { this.setState({ Thecurrentnumberbool: true, Thecurrentnumber: i, @@ -164,7 +198,10 @@ class PersonModal extends Component { } } + } catch (e) { + } + // Thecurrentnumber if (this.props.Newtit === true) { //创建新的战队 @@ -186,8 +223,8 @@ class PersonModal extends Component { }); } else { //编辑战队 - let url = `/competitions/${"gcc-course-2019"}/competition_teams/${"gcc-course-2019"}.json`; - axios.post(url, { + let url = `/competitions/${this.props.match.params.identifier}/competition_teams/${this.props.itemiddata.id}.json`; + axios.put(url, { name: polls_nametest, teacher_ids: myteaherdata, member_ids: myshtudentdata, @@ -866,6 +903,7 @@ class PersonModal extends Component {

diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 3b70190fa..0b888431c 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -57,6 +57,8 @@ class PersonalCompetititem extends React.Component { // const listItems = mydatas.map((item, index) => // // ); + console.log("PersonalCompetititem"); + console.log(data); return (
{ @@ -86,7 +88,7 @@ class PersonalCompetititem extends React.Component { fontSize: "16px", width: "160px", textAlign: "center" - }}>{data[0].school_name}

+ }}>{data[0].name}