dev_sync_trustie
杨树林 5 years ago
parent aab802807e
commit cdda2aa1ce

@ -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,} from 'antd';
import {Button, Pagination, message} from 'antd';
import Registrationitem from './Registrationitem';
import RegisNodata from './RegisNodata';
import CompetitionMaxImg from './CompetitionMaxImg';
@ -17,6 +17,7 @@ import RegistrationSearch from './RegistrationSearch';
import RegisListview from './RegisListview';
import RegisListviewdata from './RegisListviewdata';
import PersonModal from './competmodal/PersonModal';
import MessagePersonModal from './competmodal/MessagePersonModal';
import PersonalModalteam from './competmodal/PersonalModalteam';
// 团队竞赛报名无报名
class Registration extends React.Component {
@ -48,7 +49,10 @@ class Registration extends React.Component {
enroll_ended: false,
enrolled: false,
teacher_staff: null,
member_staff: null
member_staff: null,
messagePer: "提示",
messagePerbool: false,
intpermessages: "确认"
}
}
@ -128,27 +132,82 @@ class Registration extends React.Component {
* 加入战队
* */
Jointheteam = () => {
this.setState({
tmodalsTypes: 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({
tmodalsTypes: true
})
} else {
//学生
if (this.state.member_staff === null) {
//禁止学生
this.setState({
messagePerbool: true,
intpermessages: "已禁止学生报名"
})
return;
}
this.setState({
tmodalsTypes: true
})
}
}
/**
* 创建战队
**/
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({
@ -158,6 +217,10 @@ class Registration extends React.Component {
//学生
if (this.state.member_staff === null) {
//禁止学生
this.setState({
messagePerbool: true,
intpermessages: "已禁止学生报名"
})
return;
}
this.setState({
@ -165,8 +228,9 @@ class Registration extends React.Component {
})
}
// this.setState({
// tmodalsType: true
// })
}
@ -203,6 +267,13 @@ class Registration extends React.Component {
}
}
//自定义弹框按钮
messagePerboolbuton = () => {
this.setState({
messagePerbool: false
})
}
render() {
const {test, page, pages, limit, type, tmodalsType, tmodalsTypes} = this.state;
const listItems = test.map((item, index) =>
@ -223,6 +294,8 @@ class Registration extends React.Component {
`
}
</style>
<MessagePersonModal messagePer={this.state.messagePer} {...this.props} {...this.state}
messagePerboolbuton={() => this.messagePerboolbuton()}></MessagePersonModal>
<PersonModal modalsType={tmodalsType} {...this.props} {...this.state} Newtit={true}
Tmoconfirm1={(bool) => this.Tmoconfirm1(bool)}></PersonModal>
<PersonalModalteam tmodalsTypes={tmodalsTypes} {...this.props} {...this.state}

@ -698,5 +698,21 @@ reglistviewdivs2 {
cursor: pointer;
}
.task-btn-orange {
background: #4CACFF !important;
color: #fff !important;
}
.task-btn {
cursor: pointer;
display: inline-block;
border: none;
padding: 0 12px;
letter-spacing: 1px;
text-align: center;
font-size: 14px;
height: 30px;
line-height: 30px;
border-radius: 2px;
}
/*PersonalModalteam.js*/

@ -0,0 +1,63 @@
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 MessagePersonModal 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 (
<Modal
keyboard={false}
closable={false}
footer={null}
destroyOnClose={true}
title={this.props.messagePer}
centered={true}
visible={this.props.messagePerbool === undefined ? false : this.props.messagePerbool}
width="480px"
>
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<div style={{width: "100%", textAlign: "center"}}
className="task-popup-text-center font-16 ">{this.props.intpermessages}</div>
<div style={{textAlign: "center", marginTop: "30px"}}
className="task-popup-text-center task-btn task-btn-orange"
onClick={() => this.props.messagePerboolbuton()}>确认
</div>
</div>
</Modal>
)
}
}
export default MessagePersonModal;

@ -35,7 +35,7 @@ class PersonModal extends Component {
person1: false,
person2: false,
Numberofteammentors: "0-3",
Thecurrentnumber: "3",
Thecurrentnumber: "0",
keywordteachers: "",
team_idstudents: undefined,
team_idteachers: undefined,
@ -52,6 +52,8 @@ class PersonModal extends Component {
polls_nametest: "",
myteaherdata: [],
myshtudentdata: [],
Thecurrentnumberbool: false,
}
@ -62,8 +64,8 @@ class PersonModal extends Component {
componentDidUpdate = (prevProps) => {
if (prevProps.user != this.props.user) {
//console.log("Registration.js componentDidUpdate");
//console.log(this.props);
console.log("Registration.js componentDidUpdate");
console.log(this.props);
//console.log(prevProps);
//identity职场称
//user_school学校
@ -85,14 +87,24 @@ class PersonModal extends Component {
mydatas: data,
})
}
if (prevProps.GetenrollmentAPI != this.props.GetenrollmentAPI) {
console.log("Registration.js GetenrollmentAPIcomponentDidUpdate");
console.log(this.props);
this.setState({
GetenrollmentAPI: this.props.GetenrollmentAPI,
})
}
};
//创建战队
Createateam = () => {
const {polls_nametest, mydatas} = this.state;
const {polls_nametest, mydatas, GetenrollmentAPI} = this.state;
var myteaherdata = [];
var myshtudentdata = [];
var i = 0;
for (var a = 0; a < mydatas.length; a++) {
if (mydatas[a].type === "导师") {
i++;
var objectt = {
enrollable: mydatas[a].enrollable,
id: mydatas[a].id,
@ -112,6 +124,30 @@ class PersonModal extends Component {
myshtudentdata.push(objectts);
}
}
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
}
}
}
// Thecurrentnumber
let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`;
axios.post(url, {
name: polls_nametest,
@ -212,7 +248,8 @@ class PersonModal extends Component {
//console.log("老师输入框事件|||||||||||123123123");
this.setState({
keywordteachers: e.target.value,
booltech: false
booltech: false,
Thecurrentnumberbool: false
})
// try {
// if (e.target.value.length > 0) {
@ -251,6 +288,7 @@ class PersonModal extends Component {
this.setState({
keywordstudents: e.target.value,
boolstud: false,
Thecurrentnumberbool: false
});
// try {
// if (e.target.value.length > 0) {
@ -531,13 +569,29 @@ class PersonModal extends Component {
person1: false,
})
}
deletedata = (item) => {
var {mydatas} = this.state;
if (item) {
var pos = mydatas.indexOf(item);
// console.log("deletedata");
// console.log(pos);
var removedItem = mydatas.splice(pos, 1);
// console.log("deletedata22222");
// console.log(removedItem)
//removedItem 是被删除的元素
// console.log(mydatas)
this.setState({
mydatas: mydatas,
})
}
}
render() {
const {
addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2,
keywordteachers, team_idteachers, teacher_ids,
keywordstudents, team_idstudents, student_ids,
member_ids, mydatas, booltech, boolstud
member_ids, mydatas, booltech, boolstud, GetenrollmentAPI, Thecurrentnumberbool
} = this.state;
//Modal
//keyboard是否支持键盘 esc 关闭
@ -578,7 +632,8 @@ class PersonModal extends Component {
style={{
textAlign: "center",
}}
>{item.type && item.type === "创建者" ? "" : <i className="iconfont icon-guanbi font-12"/>}</p>
>{item.type && item.type === "创建者" ? "" :
<i className="iconfont icon-guanbi font-12" onClick={() => this.deletedata(item)}/>}</p>
</div>
);
var cpersondiv1Items = [];
@ -966,12 +1021,24 @@ class PersonModal extends Component {
</div>
{/*最后一行文字*/}
<p style={{
marginLeft: "53px",
color: "#D0021B",
fontSize: "12px",
marginTop: "9px"
}}>战队导师为{Numberofteammentors},现在为{Thecurrentnumber}</p>
{
GetenrollmentAPI && GetenrollmentAPI.teacher_staff ?
(
Thecurrentnumberbool === true ?
<p style={{
marginLeft: "53px",
color: "#D0021B",
fontSize: "12px",
marginTop: "9px"
}}>战队导师为{GetenrollmentAPI.teacher_staff.minimum}-{GetenrollmentAPI.teacher_staff.maximum},现在为{Thecurrentnumber}</p>
: ""
) :
""
}
<div style={{
marginTop: "24px",
marginLeft: "53px",

Loading…
Cancel
Save