From 21738d8b723f64c8e4bbc5e05e1b37b869c48e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 18 Oct 2019 14:43:12 +0800 Subject: [PATCH 001/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/App.js | 14 +- .../modules/competition/CompetitionMaxImg.js | 77 ++++ .../src/modules/competition/Rectanglex.png | Bin 0 -> 4529 bytes .../src/modules/competition/RegisListview.js | 48 +++ .../src/modules/competition/RegisNodata.js | 27 ++ .../src/modules/competition/Registration.js | 61 +++ .../modules/competition/RegistrationSearch.js | 55 +++ .../modules/competition/Registrationitem.js | 102 +++++ .../competition/comcss/competition.css | 388 ++++++++++++++++++ 9 files changed, 771 insertions(+), 1 deletion(-) create mode 100644 public/react/src/modules/competition/CompetitionMaxImg.js create mode 100755 public/react/src/modules/competition/Rectanglex.png create mode 100644 public/react/src/modules/competition/RegisListview.js create mode 100644 public/react/src/modules/competition/RegisNodata.js create mode 100644 public/react/src/modules/competition/Registration.js create mode 100644 public/react/src/modules/competition/RegistrationSearch.js create mode 100644 public/react/src/modules/competition/Registrationitem.js create mode 100644 public/react/src/modules/competition/comcss/competition.css diff --git a/public/react/src/App.js b/public/react/src/App.js index b2ec1a3a3..e89746f41 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -277,7 +277,13 @@ const Help = Loadable({ const Ecs = Loadable({ loader: () => import('./modules/ecs/Ecs'), loading: Loading, -}) +}); + +//个人竞赛报名 +const Registration = Loadable({ + loader: () => import('./modules/competition/Registration'), + loading: Loading, +}); class App extends Component { constructor(props) { @@ -593,6 +599,12 @@ class App extends Component { render={ (props)=>() }/> + () + } + /> + { + type === 1 ? +
+

Educoder竞赛平台

+

Educoder是一个面向计算机类的互联网IT教育和实战平台,

+

提供企业级工程实训,以实现工程化专业教学的自动化和智能化。

+
+
+

加入战队

+
+
+

创建战队

+
+ +
+
+ : + type === 2 ? +
+

Educoder竞赛平台

+

高校智能课堂与综合实训平台

+
+
+

加入战队

+
+
+

创建战队

+
+ +
+
+ : + type === 3 ? +
+

Educoder竞赛平台

+

高校智能课堂与综合实训平台

+
+
+

加入战队

+
+
+

创建战队

+
+ +
+
+ : + "" + } + + + + + ) + } + +} + +export default CompetitionMaxImg; diff --git a/public/react/src/modules/competition/Rectanglex.png b/public/react/src/modules/competition/Rectanglex.png new file mode 100755 index 0000000000000000000000000000000000000000..0aa2a31b159a0476db98bfb47ece71f79598d9a1 GIT binary patch literal 4529 zcmeAS@N?(olHy`uVBq!ia0y~y;LHKCQ#jawq(sGQRR#vZ3Qrfukczmsw+?bLDDbd2 zzTJQB%EAQxciEQ?9Gvj{-Av2Vf(i}|42(=H90K?m2g)0DZ~V&3AxbgOK!1k~PX!4X z3bj~(lVh7whA}}mK$HvQ{3OD?V6`qxO=~%B@erw;CAyAS-%V^t&~7qwCQ|vqY4Z33 z7a9%@4Gt;_H@X&_B@h=d<-j0j9}Qw~(2fQ%EX|CjVpxGTT2PD@6c}~NXhAVrP@q@a zqXoriK`~lT;B2CfwkSqh6zE;3(XI!)%RJhm7;RCYw1HV|(vE;7|;Mr>mdK II;Vst0HmRm0ssI2 literal 0 HcmV?d00001 diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js new file mode 100644 index 000000000..daa528f59 --- /dev/null +++ b/public/react/src/modules/competition/RegisListview.js @@ -0,0 +1,48 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import competition from './comcss/competition.css'; +import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; +// 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> +import Rectanglex from "../../modules/competition/Rectanglex.png"; + +class RegisListview extends React.Component { + constructor(props) { + super(props) + + } + + + render() { + return ( +
+ +
+

创建者

+

战队名称

+

战队成员

+

学校

+

时间

+
+
+ ) + } + +} + +export default RegisListview; diff --git a/public/react/src/modules/competition/RegisNodata.js b/public/react/src/modules/competition/RegisNodata.js new file mode 100644 index 000000000..a6e866538 --- /dev/null +++ b/public/react/src/modules/competition/RegisNodata.js @@ -0,0 +1,27 @@ +import React, {Component} from 'react'; +import competition from './comcss/competition.css'; + +// 团队竞赛报名无报名子组件 +class RegisNodata extends React.Component { + constructor(props) { + super(props) + + + } + + + render() { + return ( +
+
+ +
+

暂无战队参与报名哦,赶紧来成为第一个挑战的吧~

+
+ + ) + } + +} + +export default RegisNodata; diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js new file mode 100644 index 000000000..6cf22015f --- /dev/null +++ b/public/react/src/modules/competition/Registration.js @@ -0,0 +1,61 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import {SnackbarHOC, WordsBtn} from 'educoder'; +import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; +import competition from './comcss/competition.css'; +import {Button} from 'antd'; +import Registrationitem from './Registrationitem'; +import RegisNodata from './RegisNodata'; +import CompetitionMaxImg from './CompetitionMaxImg'; +import RegistrationSearch from './RegistrationSearch'; +import RegisListview from './RegisListview'; + +// 团队竞赛报名无报名 +class Registration extends React.Component { + constructor(props) { + super(props) + + + } + + + render() { + return ( +
+
+ + {/*大图*/} + + {/*大图结尾*/} + {/*没数据*/} + {/**/} + + {/**/} + + + + +
+ +
+ ) + } + +} + +export default SnackbarHOC()(TPMIndexHOC(Registration)); diff --git a/public/react/src/modules/competition/RegistrationSearch.js b/public/react/src/modules/competition/RegistrationSearch.js new file mode 100644 index 000000000..ed7e326ba --- /dev/null +++ b/public/react/src/modules/competition/RegistrationSearch.js @@ -0,0 +1,55 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import competition from './comcss/competition.css'; +import {Checkbox, Input, Table, Pagination, Menu, Icon} from "antd"; + +const Search = Input.Search; + +// 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> +class RegistrationSearch extends React.Component { + constructor(props) { + super(props) + this.state = { + keywords: "" + } + } + + setdatafunsval = (e) => { + this.setState({ + keywords: e.target.value + }) + }; + setdatafuns = (value) => { + console.log("点击了搜索"); + this.setState({ + keywords: value + }) + + }; + + render() { + return ( +
+ + 搜索} + onInput={(e) => this.setdatafunsval(e)} + onSearch={(value) => this.setdatafuns(value)}/> + +

战队总数:271

+
+ ) + } + +} + +export default RegistrationSearch; diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js new file mode 100644 index 000000000..0de16ecef --- /dev/null +++ b/public/react/src/modules/competition/Registrationitem.js @@ -0,0 +1,102 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import {SnackbarHOC, WordsBtn} from 'educoder'; +import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; +import competition from './comcss/competition.css'; +import {Button} from 'antd'; + +// 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 +class Registrationitem extends React.Component { + constructor(props) { + super(props) + + + } + + + render() { + return ( + +
+
+
+ +
+

小猫头像

+
+
+

重庆邮电大学

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

邀请码:yngh5

+
+
+
+
+
+

战队详情

+
+
+

退出战队

+
+ +
+ +
+ + + ) + } + +} + +export default Registrationitem; diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css new file mode 100644 index 000000000..51134705f --- /dev/null +++ b/public/react/src/modules/competition/comcss/competition.css @@ -0,0 +1,388 @@ +/*Registration.js*/ +.registrationback { + height: 368px; + width: 1200px; + border: 1px solid; + display: flex; + display: -webkit-flex; + flex-direction: column; + align-items: center; + background: #0dcecb; +} + +.registrationback1 { + height: 368px; + width: 1200px; + border: 1px solid; + display: flex; + flex-direction: column; + background: #0dcecb; +} + +.registrationbackp1 { + color: #ffffff; + font-size: 42px; + margin-top: 80px; + line-height: 42px; + font-weight: bold; + +} + +.registrationbackp11 { + color: #ffffff; + font-size: 48px; + margin-top: 71px; + line-height: 48px; + font-weight: bold; + margin-left: 251px; + +} + +.registrationbackp2 { + color: #ffffff; + font-size: 18px; + margin-top: 16px; + line-height: 20px; +} + +.registrationbackp22 { + margin-left: 251px; + color: #ffffff; + font-size: 36px; + margin-top: 25px; + line-height: 36px; +} + +.registrationbackp3 { + color: #ffffff; + font-size: 18px; + line-height: 20px; +} + +.registrationbackp4 { + color: #ffffff; + font-size: 26px; + margin-top: 25px; + line-height: 26px; +} + +.registrationbackp5 { + color: #ffffff; + font-size: 26px; + margin-top: 25px; +} + + +.registrationbackp2button { + display: flex; + align-items: center; + margin-top: 36px; +} + +.registrationbackp2button2 { + display: flex; + align-items: center; + margin-top: 40px; +} + +.registrationbackp2button3 { + display: flex; + align-items: center; + margin-top: 44px; + margin-left: 251px; +} + +.registbut1 { + margin-right: 46px; + text-align: center; + background: #ffffff; + height: 54px; + width: 156px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer + +} + +.registbut11 { + margin-right: 46px; + text-align: center; + font-size: 16px; + color: #ffffff; + height: 48px; + width: 156px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 1px; + border-style: solid; + border-color: #ffffff; + +} + +.registbut111 { + margin-right: 46px; + text-align: center; + color: #ffffff; + height: 41px; + width: 146px; + font-size: 16px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 2px; + border-style: solid; + border-color: #ffffff; + +} + +.registbut1 p { + color: #05101A; + font-size: 20px; + font-weight: bold; + cursor: pointer +} + +.registbut2 p { + color: #05101A; + font-size: 20px; + font-weight: bold; + cursor: pointer + +} + +.registbut2 { + text-align: center; + color: #05101A; + font-size: 20px; + background: #ffffff; + height: 54px; + width: 156px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer +} + +.registbut22 { + text-align: center; + color: #ffffff; + font-size: 16px; + height: 48px; + width: 156px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 1px; + border-style: solid; + border-color: #ffffff; +} + +.registbut222 { + text-align: center; + color: #ffffff; + font-size: 16px; + height: 41px; + width: 146px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 2px; + border-style: solid; + border-color: #ffffff; +} + +.bootom { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.bootomimg { + border: 1px solid; + height: 80px; + width: 125px; + margin-top: 107px; + +} + +.bootomtext { + color: #999999; + font-size: 16px; + margin-top: 33px; + +} + + +/*Registration.js*/ + +/*Registrationitem.js*/ +/*横向*/ +.regitem { + display: flex; + flex-direction: initial; + border: 1px solid; + margin-top: 44px; +} + +/*垂直*/ +.regitemimg1 { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-left: 25px; +} + +.regitemimg2 { + border: 1px solid; + height: 78px; + width: 78px; +} + +.regitemimg2 p { + border: 1px solid; + color: #999999; + font-size: 14px; +} + +.regitemimgs { + border: 1px solid; + width: 69px; + height: 69px; + margin-top: 3px; + +} + +.regitemimgs2 { + margin-top: 16px; + border: 1px solid; + width: 49px; + height: 51px; + margin-left: 25px +} + +.regitemimgs22 { + margin-top: 27px; + border: 1px solid; + width: 28px; + height: 28px; + margin-left: 20px; +} + +.regitemimgs3 { + border: 1px solid; + height: 22px; + width: 22px; + margin-top: 30px; + margin-left: 14px; +} + +.regitemimgs4 { + width: 156px; + display: flex; + flex-direction: row-reverse; + margin-top: 18px; + margin-left: 55px; +} + +.regitemimgs5 { + margin-left: 10px; + text-align: center; + background: #ffffff; + height: 40px; + width: 72px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + border: 1px; + border-style: solid; + border-color: #459BE5; + cursor: pointer +} + +.regitemimgs6 { + text-align: center; + background: #ffffff; + height: 40px; + width: 72px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + border: 1px; + cursor: pointer; + border-style: solid; + border-color: #459BE5; +} + +.regitemimgs5 p { + color: #459BE5; + font-size: 14px; + cursor: pointer +} + +.regitemimgs6 p { + color: #459BE5; + font-size: 14px; + cursor: pointer + +} + +/*Registrationitem.js*/ + +/*RegistrationSearch.js*/ +.searchhead { + display: flex; + flex-direction: initial; + margin-top: 24px; + +} + +.packinputs button { + background: #459BE5; +} + +.packinputs { + width: 317px; + height: 34px; +} + + +/*RegistrationSearch.js*/ +.reglistviewdiv { + display: flex; + flex-direction: initial; + margin-top: 25px; +} + +/*RegisListview.js*/ +.reglistviewdivs { + display: flex; + display: -webkit-flex; + flex-direction: column; + align-items: center; + background: #F9F9F9; +} + +.reglistviewdivss { + display: flex; + flex-direction: initial; + +} + + +/*RegisListview.js*/ \ No newline at end of file From c26d4e805ddef5c5931e626924da42869a29fd54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 18 Oct 2019 15:09:45 +0800 Subject: [PATCH 002/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/RegisListview.js | 33 +++++++++---------- .../competition/comcss/competition.css | 9 ++++- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js index daa528f59..92146399f 100644 --- a/public/react/src/modules/competition/RegisListview.js +++ b/public/react/src/modules/competition/RegisListview.js @@ -10,7 +10,6 @@ import competition from './comcss/competition.css'; import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; // 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> import Rectanglex from "../../modules/competition/Rectanglex.png"; - class RegisListview extends React.Component { constructor(props) { super(props) @@ -21,23 +20,21 @@ class RegisListview extends React.Component { render() { return (
- -
-

创建者

-

战队名称

-

战队成员

-

学校

-

时间

+
+

创建者

+

战队名称

+

战队成员

+

学校

+

时间

) diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 51134705f..68766d158 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -1,3 +1,9 @@ +/*All*/ +.borders { + border: 1px solid; +} + +/*All*/ /*Registration.js*/ .registrationback { height: 368px; @@ -375,7 +381,8 @@ display: -webkit-flex; flex-direction: column; align-items: center; - background: #F9F9F9; + margin-top: 25px; + } .reglistviewdivss { From b52afe0f8b3e86b6f0ebdca48a74d818d637fe53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 18 Oct 2019 15:38:39 +0800 Subject: [PATCH 003/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/RegisListview.js | 14 +-- .../modules/competition/RegisListviewdata.js | 86 +++++++++++++++++++ .../src/modules/competition/Registration.js | 5 +- .../modules/competition/Registrationitem.js | 10 +-- .../competition/comcss/competition.css | 27 ++++-- 5 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 public/react/src/modules/competition/RegisListviewdata.js diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js index 92146399f..60d8947b8 100644 --- a/public/react/src/modules/competition/RegisListview.js +++ b/public/react/src/modules/competition/RegisListview.js @@ -30,11 +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 new file mode 100644 index 000000000..a665783ec --- /dev/null +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -0,0 +1,86 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import competition from './comcss/competition.css'; +import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; +import Rectanglex from "./Rectanglex.png"; + +// 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> +class RegisListviewdata extends React.Component { + constructor(props) { + super(props) + + } + + + render() { + return ( +
+
+
+
+
+ +
+

小猫头像

+
+
+
猫头鹰没头绪高校战队 +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
学校
+
时间
+
+
+ ) + } + +} + +export default RegisListviewdata; diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 6cf22015f..3aa167aca 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -15,7 +15,7 @@ import RegisNodata from './RegisNodata'; import CompetitionMaxImg from './CompetitionMaxImg'; import RegistrationSearch from './RegistrationSearch'; import RegisListview from './RegisListview'; - +import RegisListviewdata from './RegisListviewdata'; // 团队竞赛报名无报名 class Registration extends React.Component { constructor(props) { @@ -48,7 +48,8 @@ class Registration extends React.Component { {/**/} - + + {/**/} diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js index 0de16ecef..c499f5707 100644 --- a/public/react/src/modules/competition/Registrationitem.js +++ b/public/react/src/modules/competition/Registrationitem.js @@ -24,13 +24,13 @@ class Registrationitem extends React.Component { return (
-
+

小猫头像

-
@@ -42,7 +42,7 @@ class Registrationitem extends React.Component { textAlign: "center" }}>重庆邮电大学

-
-
+

邀请码:yngh5

-
+
diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 68766d158..0df42417b 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -377,10 +377,6 @@ /*RegisListview.js*/ .reglistviewdivs { - display: flex; - display: -webkit-flex; - flex-direction: column; - align-items: center; margin-top: 25px; } @@ -391,5 +387,26 @@ } +reglistviewdivs2 { + margin-top: 27px; + +} +/*RegisListview.js*/ + + +/*RegisListviewdata.js*/ +.reglistimg1 { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + +} + +.reglistimg2 { + border: 1px solid; + height: 78px; + width: 78px; +} -/*RegisListview.js*/ \ No newline at end of file +/*RegisListviewdata.js*/ \ No newline at end of file From 8bd60f57c2f12a79fffaeb7e8925b77a189fcdfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 18 Oct 2019 16:17:17 +0800 Subject: [PATCH 004/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/RegisListview.js | 5 +- .../modules/competition/RegisListviewdata.js | 114 ++++++++++-------- .../src/modules/competition/Registration.js | 4 +- .../modules/competition/Registrationitem.js | 23 ++-- .../competition/comcss/competition.css | 4 +- 5 files changed, 89 insertions(+), 61 deletions(-) diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js index 60d8947b8..c2d725661 100644 --- a/public/react/src/modules/competition/RegisListview.js +++ b/public/react/src/modules/competition/RegisListview.js @@ -35,8 +35,9 @@ class RegisListview extends React.Component {

战队名称

战队成员

-

学校

+ style={{fontSize: "16px", color: "#05101A", width: "487px", textAlign: "center"}}>战队成员

+

学校

时间

diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index a665783ec..8e381568e 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -6,78 +6,98 @@ import { } from 'react-router-dom'; import axios from 'axios'; import moment from 'moment'; +import {SnackbarHOC, WordsBtn} from 'educoder'; +import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; import competition from './comcss/competition.css'; -import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; -import Rectanglex from "./Rectanglex.png"; +import {Button} from 'antd'; -// 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> +// 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 class RegisListviewdata extends React.Component { constructor(props) { super(props) + } render() { return ( -
-
-
-
-
+
+
+
-
-

小猫头像

-
-
猫头鹰没头绪高校战队 +

小猫头像

+
+
+

重庆邮电大学

+
+
+
+
-
-
- }}> -
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+

重庆邮电大学

+
+
-
+ }}> +

2019-09-07 08:33

+
-
-
-
-
学校
-
时间
-
+ + ) } diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 3aa167aca..92d716529 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -45,10 +45,10 @@ class Registration extends React.Component { {/*没数据*/} {/**/} - {/**/} + - + {/**/}
diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js index c499f5707..9db982d45 100644 --- a/public/react/src/modules/competition/Registrationitem.js +++ b/public/react/src/modules/competition/Registrationitem.js @@ -32,18 +32,18 @@ class Registrationitem extends React.Component {

重庆邮电大学

-
+

邀请码:yngh5

-
+
-
+

战队详情

diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 0df42417b..e50561e75 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -249,7 +249,7 @@ flex-direction: column; align-items: center; justify-content: center; - margin-left: 25px; + margin-left: 17px; } .regitemimg2 { @@ -293,7 +293,6 @@ height: 22px; width: 22px; margin-top: 30px; - margin-left: 14px; } .regitemimgs4 { @@ -301,7 +300,6 @@ display: flex; flex-direction: row-reverse; margin-top: 18px; - margin-left: 55px; } .regitemimgs5 { From 3999146695829484dd0448c354b4fc7ad27b2dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 19 Oct 2019 09:06:55 +0800 Subject: [PATCH 005/126] =?UTF-8?q?=E8=B0=83=E6=95=B4bd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/Registration.js | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 92d716529..911ea2f0c 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} from 'antd'; +import {Button, Pagination,} from 'antd'; import Registrationitem from './Registrationitem'; import RegisNodata from './RegisNodata'; import CompetitionMaxImg from './CompetitionMaxImg'; @@ -20,12 +20,27 @@ import RegisListviewdata from './RegisListviewdata'; class Registration extends React.Component { constructor(props) { super(props) + this.state = { + persons: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + loadingstate: false, + page: 1, + limit: 20, - + } } + paginationonChangestwo = (pageNumber) => { + this.setState({ + page: pageNumber, + loadingstate: true, + }) + } render() { + const {persons, page, limit} = this.state; + const listItems = persons.map((item, index) => + + ); return (
@@ -48,9 +63,18 @@ class Registration extends React.Component { - + + { + listItems + } + {/**/} +
+ +
From f954be3b1b16c9d89872ec4d3449ec3b324fc768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 19 Oct 2019 09:44:44 +0800 Subject: [PATCH 006/126] =?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 --- .../src/modules/competition/Registration.js | 40 +++++++++---- .../modules/competition/Registrationitem.js | 58 +++++++++++++++---- 2 files changed, 74 insertions(+), 24 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 911ea2f0c..465a041d0 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -25,7 +25,7 @@ class Registration extends React.Component { loadingstate: false, page: 1, limit: 20, - + type: 5, } } @@ -37,7 +37,7 @@ class Registration extends React.Component { }) } render() { - const {persons, page, limit} = this.state; + const {persons, page, limit, type} = this.state; const listItems = persons.map((item, index) => ); @@ -55,26 +55,42 @@ class Registration extends React.Component {

{/*大图*/} - + {/*大图结尾*/} {/*没数据*/} {/**/} - - - - + { + type === 4 || type === 5 ? + + : "" + } + { + type === 4 || type === 5 ? + + : + "" + } + + + {type === 4 || type === 5 ? listItems + : + "" } {/**/} + { + type === 5 ? +
+ +
+ : "" + } -
- -
diff --git a/public/react/src/modules/competition/Registrationitem.js b/public/react/src/modules/competition/Registrationitem.js index 9db982d45..5dd6e0b53 100644 --- a/public/react/src/modules/competition/Registrationitem.js +++ b/public/react/src/modules/competition/Registrationitem.js @@ -86,19 +86,53 @@ class Registrationitem extends React.Component { }} >
-
-
-

战队详情

-
-
-

退出战队

-
+ { + this.props.type === 5 ? +
+
+

删除战队

+
+
+

编辑战队

+
+ +
+ : this.props.type === 2 ? +
+
+

战队详情

+
+
+

退出战队

+
+ +
+ : + this.props.type === 2 ? +
+ +
+

退出战队

+
+ +
+ : + "" + + } -
From b2b4dac11dd3995d99fd91714c68495e19cda484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 19 Oct 2019 09:47:10 +0800 Subject: [PATCH 007/126] =?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 --- .../src/modules/competition/Registration.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 465a041d0..85f532f89 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -25,7 +25,7 @@ class Registration extends React.Component { loadingstate: false, page: 1, limit: 20, - type: 5, + type: 1, } } @@ -58,9 +58,18 @@ class Registration extends React.Component { {/*大图结尾*/} {/*没数据*/} - {/**/} - + { + type === 1 ? + + : + "" + } + { + type === 2 || type === 3 || type === 5 ? + : "" + } + { type === 4 || type === 5 ? @@ -80,7 +89,6 @@ class Registration extends React.Component { "" } - {/**/} { type === 5 ?
From 78481e4cdff0692b09182adc49ac52ef95d5732e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 19 Oct 2019 14:02:08 +0800 Subject: [PATCH 008/126] =?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/config/webpack.config.dev.js | 2 +- public/react/src/App.js | 29 ++-- .../modules/competition/CompetitionMaxImg.js | 35 ++++- .../src/modules/competition/Registration.js | 14 +- .../modules/competition/Registrationitem.js | 123 ++++----------- .../competition/comcss/competition.css | 65 ++++++-- .../competition/competmodal/PersonModal.js | 0 .../competition/personal/PersonalCompetit.js | 97 ++++++++++++ .../personal/PersonalCompetititem.js | 144 ++++++++++++++++++ 9 files changed, 377 insertions(+), 132 deletions(-) create mode 100644 public/react/src/modules/competition/competmodal/PersonModal.js create mode 100644 public/react/src/modules/competition/personal/PersonalCompetit.js create mode 100644 public/react/src/modules/competition/personal/PersonalCompetititem.js diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js index ef38a18f8..e96f22663 100644 --- a/public/react/config/webpack.config.dev.js +++ b/public/react/config/webpack.config.dev.js @@ -32,7 +32,7 @@ module.exports = { // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s // devtool: "cheap-module-eval-source-map", // 开启调试 - //devtool: "source-map", // 开启调试 + devtool: "source-map", // 开启调试 // These are the "entry points" to our application. // This means they will be the "root" imports that are included in JS bundle. // The first two entry points enable "hot" CSS and auto-refreshes for JS. diff --git a/public/react/src/App.js b/public/react/src/App.js index e89746f41..8377ca410 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -279,12 +279,16 @@ 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, +}); class App extends Component { constructor(props) { super(props) @@ -529,7 +533,12 @@ class App extends Component { return () } }> - + () + } + /> + () + } + /> + () @@ -599,12 +615,7 @@ class App extends Component { render={ (props)=>() }/> - () - } - /> + { - type === 1 ? + type === 1 || type === 2 ?

Educoder竞赛平台

Educoder是一个面向计算机类的互联网IT教育和实战平台,

@@ -33,7 +29,7 @@ class CompetitionMaxImg extends React.Component {
: - type === 2 ? + type === 3 ?

Educoder竞赛平台

高校智能课堂与综合实训平台

@@ -48,7 +44,7 @@ class CompetitionMaxImg extends React.Component {
: - type === 3 ? + type === 4 || type === 5 ?

Educoder竞赛平台

高校智能课堂与综合实训平台

@@ -62,6 +58,29 @@ class CompetitionMaxImg extends React.Component {
+ : type === 6 ? +
+

Educoder竞赛平台

+

Educoder是一个面向计算机类的互联网IT教育和实战平台,

+

提供企业级工程实训,以实现工程化专业教学的自动化和智能化。

+
+ { + pint === 1 ? +
+

立即报名

+
+ : pint === 2 ? +
+

已报名

+
+ : +
+

报名已截止

+
+ } + +
+
: "" } diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 85f532f89..945552ef3 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -16,16 +16,17 @@ import CompetitionMaxImg from './CompetitionMaxImg'; import RegistrationSearch from './RegistrationSearch'; import RegisListview from './RegisListview'; import RegisListviewdata from './RegisListviewdata'; + // 团队竞赛报名无报名 class Registration extends React.Component { constructor(props) { super(props) this.state = { - persons: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + test: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], loadingstate: false, page: 1, limit: 20, - type: 1, + type: 5, } } @@ -36,9 +37,10 @@ class Registration extends React.Component { loadingstate: true, }) } + render() { - const {persons, page, limit, type} = this.state; - const listItems = persons.map((item, index) => + const {test, page, limit, type} = this.state; + const listItems = test.map((item, index) => ); return ( @@ -66,7 +68,7 @@ class Registration extends React.Component { } { type === 2 || type === 3 || type === 5 ? - + : "" } @@ -90,7 +92,7 @@ class Registration extends React.Component { } { - type === 5 ? + type === 4 || type === 5 ?
-
-
+
+
+
-

小猫头像

-
-

重庆邮电大学

-
-
-
- -
-
- -
-
- -
-
- -
-
+ }}>小猫头像

-
-
- -
-
- -
+

已报名

-

邀请码:yngh5

+ textAlign: "center", + }}>2019-09-07 08:33

-
-
- { - this.props.type === 5 ? -
-
-

删除战队

-
-
-

编辑战队

-
- -
- : this.props.type === 2 ? -
-
-

战队详情

-
-
-

退出战队

-
- -
- : - this.props.type === 2 ? -
- -
-

退出战队

-
- -
- : - "" - - } -
diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index e50561e75..aa8e2b725 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -1,6 +1,6 @@ /*All*/ .borders { - border: 1px solid; + border: 0.5px solid; } /*All*/ @@ -8,7 +8,7 @@ .registrationback { height: 368px; width: 1200px; - border: 1px solid; + border: 0.5px solid; display: flex; display: -webkit-flex; flex-direction: column; @@ -19,7 +19,7 @@ .registrationback1 { height: 368px; width: 1200px; - border: 1px solid; + border: 0.5px solid; display: flex; flex-direction: column; background: #0dcecb; @@ -63,6 +63,7 @@ color: #ffffff; font-size: 18px; line-height: 20px; + margin-top: 7px; } .registrationbackp4 { @@ -112,6 +113,19 @@ } +.personreg1 { + margin-right: 46px; + text-align: center; + background: #C3C1C1; + height: 54px; + width: 156px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer +} + .registbut11 { margin-right: 46px; text-align: center; @@ -163,6 +177,12 @@ } +.personreg1 p { + color: #ffffff; + font-size: 20px; + cursor: not-allowed; +} + .registbut2 { text-align: center; color: #05101A; @@ -217,7 +237,7 @@ } .bootomimg { - border: 1px solid; + border: 0.5px solid; height: 80px; width: 125px; margin-top: 107px; @@ -239,10 +259,16 @@ .regitem { display: flex; flex-direction: initial; - border: 1px solid; + border: 0.5px solid; margin-top: 44px; } +.regitem2 { + display: flex; + flex-direction: initial; + border-bottom: 1px solid #EDEDED; + margin-top: 19px; +} /*垂直*/ .regitemimg1 { display: flex; @@ -252,20 +278,35 @@ margin-left: 17px; } +.perregitemimg1 { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-left: 26px; + padding-bottom: 18px; +} .regitemimg2 { - border: 1px solid; + border: 0.5px solid; height: 78px; width: 78px; } +.personregitemimg { + border: 0.5px solid; + height: 64px; + width: 64px; +} + + .regitemimg2 p { - border: 1px solid; + border: 0.5px solid; color: #999999; font-size: 14px; } .regitemimgs { - border: 1px solid; + border: 0.5px solid; width: 69px; height: 69px; margin-top: 3px; @@ -274,7 +315,7 @@ .regitemimgs2 { margin-top: 16px; - border: 1px solid; + border: 0.5px solid; width: 49px; height: 51px; margin-left: 25px @@ -282,14 +323,14 @@ .regitemimgs22 { margin-top: 27px; - border: 1px solid; + border: 0.5px solid; width: 28px; height: 28px; margin-left: 20px; } .regitemimgs3 { - border: 1px solid; + border: 0.5px solid; height: 22px; width: 22px; margin-top: 30px; @@ -402,7 +443,7 @@ reglistviewdivs2 { } .reglistimg2 { - border: 1px solid; + border: 0.5px solid; height: 78px; width: 78px; } diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js new file mode 100644 index 000000000..e69de29bb diff --git a/public/react/src/modules/competition/personal/PersonalCompetit.js b/public/react/src/modules/competition/personal/PersonalCompetit.js new file mode 100644 index 000000000..b14ad4d36 --- /dev/null +++ b/public/react/src/modules/competition/personal/PersonalCompetit.js @@ -0,0 +1,97 @@ +import React, {Component} from 'react'; +import {SnackbarHOC, WordsBtn} from 'educoder'; +import {TPMIndexHOC} from '../../tpm/TPMIndexHOC'; +import competition from '../comcss/competition.css'; +import {Button, Pagination,} from 'antd'; +import CompetitionMaxImg from '../CompetitionMaxImg'; +import Registrationitem from '../Registrationitem'; + +// 团队竞赛报名无报名 +class PersonalCompetit extends React.Component { + constructor(props) { + super(props) + this.state = { + loadingstate: false, + page: 1, + limit: 20, + type: 6, + pint: 1, + test: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + } + } + + + paginationonChangestwo = (pageNumber) => { + this.setState({ + page: pageNumber, + loadingstate: true, + }) + } + + render() { + const {test, page, limit, type, pint} = this.state; + const listItems = test.map((item, index) => + + ); + return ( +
+
+ + {/*大图*/} + { + type === 6 ? + + : + "" + } + { + pint === 1 || pint === 3 ? +
+

参赛总人数:132

+
+ : ""} + + {/*列表*/} + { + pint === 1 || pint === 3 ? +
+ { + listItems + } + +
+ : ""} + { + pint === 1 || pint === 3 ? +
+ +
+ : "" + } + +
+ +
+ ) + } + +} + +export default SnackbarHOC()(TPMIndexHOC(PersonalCompetit)); diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js new file mode 100644 index 000000000..8a0730736 --- /dev/null +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -0,0 +1,144 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import {SnackbarHOC, WordsBtn} from 'educoder'; +import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; +import competition from './comcss/competition.css'; +import {Button} from 'antd'; + +// 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 +class Registrationitem extends React.Component { + constructor(props) { + super(props) + + + } + + + render() { + return ( + +
+
+
+ +
+
+
+

重庆邮电大学

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

邀请码:yngh5

+
+
+
+ { + this.props.type === 5 ? +
+
+

删除战队

+
+
+

编辑战队

+
+ +
+ : this.props.type === 2 ? +
+
+

战队详情

+
+
+

退出战队

+
+ +
+ : + this.props.type === 3 ? +
+ +
+

退出战队

+
+ +
+ : + "" + + } + + +
+ + + ) + } + +} + +export default Registrationitem; From 276eb9c4a72a200726405117354bbf29b3d8cc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Sat, 19 Oct 2019 15:37:33 +0800 Subject: [PATCH 009/126] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E3=80=81=E6=99=AE=E9=80=9A=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E3=80=81=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E6=83=85tab=E7=9A=84=E7=AB=8B=E5=8D=B3=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/busyWork/CommonWorkDetailIndex.js | 5 - .../courses/busyWork/PublishRightnow.js | 53 +++++- .../coursesPublic/OneSelfOrderModal.js | 178 +++++++++++++----- .../graduation/tasks/GraduationTaskDetail.js | 36 +++- .../shixunHomework/Listofworksstudentone.js | 104 +++++++--- .../shixunHomework/ShixunHomeworkPage.js | 41 +--- .../shixunHomework/ShixunStudentWork.js | 70 ++++++- .../shixunHomework/Trainingjobsetting.js | 83 ++++++-- .../shixunHomework/Workquestionandanswer.js | 80 ++++++-- public/react/src/modules/home/shixunsHome.js | 2 +- 10 files changed, 491 insertions(+), 161 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js b/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js index 86b17e802..134be31c3 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js @@ -4,13 +4,8 @@ import {Link} from 'react-router-dom'; import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; import Loadable from 'react-loadable'; import Loading from '../../../Loading'; -import { CNotificationHOC } from '../common/CNotificationHOC' -import { RouteHOC } from './common' - -import locale from 'antd/lib/date-picker/locale/zh_CN'; import { WordsBtn, MarkdownToHtml, trigger, queryString, downloadFile } from 'educoder'; import axios from 'axios'; -import Modals from '../../modals/Modals'; import CoursesListType from '../coursesPublic/CoursesListType'; import AccessoryModal from "../coursesPublic/AccessoryModal"; import PublishRightnow from './PublishRightnow' diff --git a/public/react/src/modules/courses/busyWork/PublishRightnow.js b/public/react/src/modules/courses/busyWork/PublishRightnow.js index da2054124..ff6a8855d 100644 --- a/public/react/src/modules/courses/busyWork/PublishRightnow.js +++ b/public/react/src/modules/courses/busyWork/PublishRightnow.js @@ -1,7 +1,8 @@ import React,{ Component } from "react"; import { Input,Checkbox,Menu,Pagination } from "antd"; -import HomeworkModal from '../coursesPublic/HomeworkModal' +import HomeworkModal from '../coursesPublic/HomeworkModal'; +import OneSelfOrderModal from "../coursesPublic/OneSelfOrderModal"; import axios from 'axios' import moment from 'moment' import { getNextHalfHourOfMoment } from 'educoder' @@ -51,7 +52,8 @@ class PublishRightnow extends Component{ this.setState({ modalname: isPublish ? "立即发布" : "立即截止", modaltype:1, - visible:true, + visible:isPublish?false:true, + OneSelftype:isPublish?true:false, Topval: isPublish ? "学生将立即收到作业" : "学生将不能再提交作品", // Botvalleft: isPublish ? "暂不发布" : "暂不截止", Botval: this.props.fromListPage ? (isPublish ? "本操作只对“未发布”的分班有效" : "本操作只对“提交中”的分班有效") : '', @@ -70,6 +72,7 @@ class PublishRightnow extends Component{ modalname:undefined, modaltype:undefined, visible:false, + OneSelftype:false, Topval:undefined, Topvalright:undefined, Botvalleft:undefined, @@ -106,18 +109,28 @@ class PublishRightnow extends Component{ this.props.showNotification('请至少选择一个分班'); return; } - + + let data={} + if(arg_group_ids.length===0){ + data = { + homework_ids: this.props.checkBoxValues, + end_time: endtime==="Invalid date"?undefined:endtime, + } + }else{ + data={ + homework_ids: this.props.checkBoxValues, + group_ids: group_ids, + group_end_times:endtime, + detail:true + } + } let coursesId=this.props.match.params.coursesId; const url = `/courses/${coursesId}/homework_commons/${isPublish ? "publish_homework" : "end_homework"}.json` - axios.post(url, { - group_ids, - homework_ids: this.props.checkBoxValues, - all_check: 0, - end_time:endtime==="Invalid date"?undefined:endtime - }) + axios.post(url, data) .then((response) => { if (response.data.status == 0) { + this.homeworkhide() this.props.showNotification(isPublish ? "立即发布成功" : "立即截止成功") this.props.doWhenSuccess && this.props.doWhenSuccess() this.setState({ visible : false }) @@ -153,6 +166,7 @@ class PublishRightnow extends Component{ this.showDialog() this.setState({ course_groups: response.data.course_groups, + starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, }) }) .catch(function (error) { @@ -184,6 +198,7 @@ class PublishRightnow extends Component{ const { showActionButton } = this.props return(
+ {/*立即截止*/} {visible===true?:""} + {/*立即发布*/} + { showActionButton && { isPublish ? "立即发布" : "立即截止" } }
) diff --git a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js index d706bf2ee..6d4a307e5 100644 --- a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js +++ b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js @@ -33,52 +33,110 @@ class OneSelfOrderModal extends Component{ super(props); this.state={ group_ids:[], - endtime:"" + endtime:"", + course_groups:undefined } } componentDidMount() { if(this.props.course_groups!=undefined&&this.props.course_groups.length!=0){ - - let arr=this.props.course_groups.map(item => item.id); - this.shixunhomeworkedit(arr); + if(this.props.course_groups!=undefined) { + let arr = this.props.course_groups.map(item => item.id); + let newarr = []; + let course_groups = this.props.course_groups; + course_groups.map((item, key) => { + if (item.end_time === null) { + if(this.props.starttimesend===undefined){ + item.end_time = moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm"); + }else{ + item.end_time = moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm"); + } + newarr.push(item) + } else { + newarr.push(item) + } + }) + this.setState({ + course_groups: newarr + }) + this.shixunhomeworkedit(arr); + } } if(this.props.starttimes===undefined||this.props.starttimes===""||this.props.starttimes===null){ - this.setState({ - endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'months')).format("YYYY-MM-DD HH:mm") - }) + if(this.props.starttimesend===undefined){ + this.setState({ + endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm") + }) + }else{ + this.setState({ + endtime:moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm") + }) + } + }else{ - this.setState({ - endtime:moment(handleDateString(this.props.starttimes)).format("YYYY-MM-DD HH:mm") - }) + if(this.props.starttimesend===undefined){ + this.setState({ + endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm") + }) + }else{ + this.setState({ + endtime:moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm") + }) + } } } componentDidUpdate=(prevProps)=>{ - // if(prevProps.visible!=this.props.visible){ - // - // if(this.props.course_groups!=undefined){ - // let arr=this.props.course_groups.map(item => item.id); - // this.shixunhomeworkedit(arr); - // } - // } + if(prevProps.course_groups!=this.props.course_groups){ - if(this.props.course_groups!=undefined){ - let arr=this.props.course_groups.map(item => item.id); - this.shixunhomeworkedit(arr); - } + if(this.props.course_groups!=undefined){ + let arr=this.props.course_groups.map(item => item.id); + let newarr=[]; + let course_groups=this.props.course_groups; + course_groups.map((item,key)=>{ + if(item.end_time===null){ + if(this.props.starttimesend===undefined){ + item.end_time = moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm"); + }else{ + item.end_time = moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm"); + } + newarr.push(item) + }else{ + newarr.push(item) + } + }) + this.setState({ + course_groups:newarr + }) + this.shixunhomeworkedit(arr); + } } + + if(prevProps.starttimes!=this.props.starttimes){ if(this.props.starttimes===undefined||this.props.starttimes===""||this.props.starttimes===null){ - this.setState({ - endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'months')).format("YYYY-MM-DD HH:mm") - }) + if(this.props.starttimesend===undefined){ + this.setState({ + endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm") + }) + }else{ + this.setState({ + endtime:moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm") + }) + } + }else{ - this.setState({ - endtime:moment(handleDateString(this.props.starttimes)).format("YYYY-MM-DD HH:mm") - }) + if(this.props.starttimesend===undefined){ + this.setState({ + endtime:moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm") + }) + }else{ + this.setState({ + endtime:moment(handleDateString(this.props.starttimesend)).format("YYYY-MM-DD HH:mm") + }) + } } } } @@ -101,22 +159,37 @@ class OneSelfOrderModal extends Component{ } + onChangeTimeendlist=(date, dateString,id)=>{ + let {course_groups}=this.state; + let arr=course_groups; + + arr.map((item,key)=>{ + if(item.id===id){ + item.end_time=dateString + } + }) + + this.setState({ + course_groups:arr + }) + + } + propsSaves=(ds,endtime)=>{ + let {course_groups}=this.state; - if(ds.length ===0&&endtime === ""){ + if(this.props.typs=="end"){ this.props.Saves() }else{ if(this.props.typs!="end"){ - if(endtime === ""||endtime===undefined||endtime===null){ - + if(!endtime){ this.setState({ endtimetype:true, endtimetypevalue:"截止时间不能为空" }) return } - - if(moment(endtime,"YYYY-MM-DD HH:mm") <= moment(this.props.starttimes,"YYYY-MM-DD HH:mm")){ + if(moment(endtime,"YYYY-MM-DD HH:mm") <= moment(this.props.starttime,"YYYY-MM-DD HH:mm")){ this.setState({ endtimetype:true, endtimetypevalue:"必须晚于发布时间" @@ -124,22 +197,37 @@ class OneSelfOrderModal extends Component{ return } } - this.props.Saves(ds,moment(handleDateString(endtime),"YYYY-MM-DD HH:mm").format("YYYY-MM-DD HH:mm")) + + if(course_groups===undefined||course_groups.length===0){ + this.props.Saves(ds,moment(handleDateString(endtime),"YYYY-MM-DD HH:mm").format("YYYY-MM-DD HH:mm")) + }else{ + let arr=[] + ds.map((item,key)=>{ + course_groups.map((items,key)=>{ + if(item===items.id){ + if(!items.end_time){ + arr.push(moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm")) + }else{ + arr.push(items.end_time) + } + } + }) + }) + + + this.props.Saves(ds,arr) + } + + + } } render(){ - let {group_ids,endtime}=this.state; - let {course_groups}=this.props; - - // console.log(this.props.starttimes) - // console.log(endtime) - // console.log(this.props.starttimes) - // console.log(this.state.endtime) + let {group_ids,endtime,course_groups}=this.state; - // console.log(this.props.starttime,this.props.endtime) // TODO course_groups为空时的处理 // let endtimelist=this.props.starttimes===undefined||this.props.starttimes===""?"":moment(handleDateString(endtime)).add(1,'months') @@ -195,7 +283,7 @@ class OneSelfOrderModal extends Component{ {this.props.starttime===undefined|| this.props.starttime===""?"" - :

+ :

发布时间: {this.props.starttime} @@ -257,10 +345,10 @@ class OneSelfOrderModal extends Component{ { { - course_groups.map((item,key)=>{ + course_groups===undefined?"":course_groups.map((item,key)=>{ return( -

+
  • this.onChangeTimeendlist(e,data,item.id)} className={ this.state.endtimetype===true?"noticeTip fr":"fr"} />
  • diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index e7924f469..b54aad071 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -6,6 +6,7 @@ import Loadable from 'react-loadable'; import Loading from '../../../../Loading'; import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; import axios from 'axios'; +import OneSelfOrderModal from "../../coursesPublic/OneSelfOrderModal"; import HomeworkModal from "../../coursesPublic/HomeworkModal"; import AccessoryModal from "../../coursesPublic/AccessoryModal"; import Associationmodel from '../../coursesPublic/Associationmodel'; @@ -60,7 +61,8 @@ class GraduationTaskDetail extends Component{ Modalstopval:undefined, ModalCancel:undefined, ModalSave:undefined, - acrossVisible:undefined + acrossVisible:undefined, + OneSelftype:false } } componentDidMount(){ @@ -115,17 +117,20 @@ class GraduationTaskDetail extends Component{ } //立即发布 publish=()=>{ + let {questionslist}=this.state; let starttime= this.props.getNowFormatDates(1,1); let endtime=this.props.getNowFormatDates(2,1); // this.homeworkstart() this.setState({ modalname:"立即发布", - visible:true, + // visible:true, + OneSelftype:true, Topval:"学生将立即收到毕设任务", // Botvalleft:"点击修改", // Botval:`本操作只对"未发布"的分班有效`, starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm") , - starttimes:this.props.getNowFormatDates(1), + starttimes:questionslist.end_time, + staytime:this.props.getNowFormatDates(1), typs:"start", endtime:endtime, Cancelname:"暂不发布", @@ -169,7 +174,6 @@ class GraduationTaskDetail extends Component{ this.getdatas(); this.child && this.child.searchValue(); } - // 立即截止 end=()=>{ // this.homeworkstart() @@ -212,6 +216,7 @@ class GraduationTaskDetail extends Component{ Modalstype:false, Loadtype:false, visible:false, + OneSelftype:false, Modulationtype:false, Allocationtype:false, Modalstopval:"", @@ -317,7 +322,7 @@ class GraduationTaskDetail extends Component{ getdatas:this.getdatas } - document.title=questionslist&&questionslist.course_name; + return(
    { @@ -342,6 +347,27 @@ class GraduationTaskDetail extends Component{ modaltype={this.state.modaltype} getcourse_groupslist={(id) => this.getcourse_groupslist(id)} /> + this.getcourse_groupslist(id)} + /> {/*关联项目*/} {visibles===true? { - console.log("1197"); - console.log(this.props.isNotMember()); + // console.log("1197"); + // console.log(this.props.isNotMember()); let {page, limit,work_efficiency} = this.state; let datalist = []; let datalists = []; @@ -1867,8 +1868,8 @@ class Listofworksstudentone extends Component { } // 设置数据 seacthdata = (teacherdata) => { - console.log("1326"); - console.log(this.props.isNotMember()); + // console.log("1326"); + // console.log(this.props.isNotMember()); let datalist = []; @@ -2344,8 +2345,8 @@ class Listofworksstudentone extends Component { if (work_efficiency === false) { if(JSON.stringify(course_group_info) === "[]"|| course_group_info === undefined||course_group_info === null){ //这里没有分班 没有 关卡得分 没有效率分 - console.log("1739"); - console.log(this.props.isNotMember()); + // console.log("1739"); + // console.log(this.props.isNotMember()); for(var i=0;i< this.state.columns.length;i++){ var item = this.state.columns[i]; @@ -2381,8 +2382,8 @@ class Listofworksstudentone extends Component { }else{ - console.log("1767"); - console.log(this.props.isNotMember()); + // console.log("1767"); + // console.log(this.props.isNotMember()); if(course_group_info.length < 2){ for(var i=0;i< this.state.columns.length;i++){ var item = this.state.columns[i]; @@ -2419,8 +2420,8 @@ class Listofworksstudentone extends Component { } }else { - console.log("1795"); - console.log(this.props.isNotMember()); + // console.log("1795"); + // console.log(this.props.isNotMember()); for(var i=0;i< this.state.columns.length;i++){ var item = this.state.columns[i]; @@ -2453,8 +2454,8 @@ class Listofworksstudentone extends Component { } } }else { - console.log("1821"); - console.log(this.props.isNotMember()); + // console.log("1821"); + // console.log(this.props.isNotMember()); if(JSON.stringify(course_group_info) === "[]"|| course_group_info === undefined || course_group_info === null){ @@ -2489,8 +2490,8 @@ class Listofworksstudentone extends Component { }else { - console.log("1849"); - console.log(this.props.isNotMember()); + // console.log("1849"); + // console.log(this.props.isNotMember()); if(course_group_info.length < 2) { for(var i=0;i< this.state.columns.length;i++){ var item = this.state.columns[i]; @@ -2796,11 +2797,12 @@ class Listofworksstudentone extends Component { this.setState({ modalname: "立即发布", modaltype: response.data.course_groups === null || response.data.course_groups.length === 0 ? 2 : 1, - svisible: true, + svisible: false, + OneSelftype:true, Topval:"学生将立即收到作业", // Botvalleft:"暂不发布", Botval:`本操作只对"未发布"的分班有效`, - starttime: "发布时间:" + moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttime: moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), endtime: "截止时间:" + endtime, starttimes:starttime, starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, @@ -2832,6 +2834,7 @@ class Listofworksstudentone extends Component { modalname: "立即截止", modaltype: response.data.course_groups === null || response.data.course_groups.length === 0 ? 2 : 1, svisible: true, + OneSelftype:false, Topval:"学生将不能再提交作业", // Botvalleft:"暂不截止", Botval:`本操作只对"提交中"的分班有效`, @@ -2852,15 +2855,44 @@ class Listofworksstudentone extends Component { // 立即发布 homeworkstartend = (ds,endtime) => { var homeworkid = this.props.match.params.homeworkid; - let {course_groupslist} = this.state; + + let data={} + if(ds.length===0){ + if(this.state.teacherdata.category.main===1){ + data = { + homework_ids: [homeworkid], + end_time: endtime, + } + }else { + data = { + homework_ids: [homeworkid], + end_time: endtime, + category_id:this.state.teacherdata.category.category_id, + } + } + }else{ + if(this.state.teacherdata.category.main===1){ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + detail:true + } + }else{ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + category_id:this.state.teacherdata.category.category_id, + detail:true + } + } + + } let coursesId = this.props.match.params.coursesId; let url = "/courses/" + coursesId + "/homework_commons/publish_homework.json"; - axios.post(url, { - homework_ids: [homeworkid], - group_ids: course_groupslist, - end_time:endtime, - }).then((result) => { + axios.post(url, data).then((result) => { if (result) { if (result.data.status === 0) { notification.open({ @@ -2935,6 +2967,7 @@ class Listofworksstudentone extends Component { modalname: undefined, modaltype: undefined, svisible: false, + OneSelftype:false, Topval: undefined, Topvalright: undefined, Botvalleft: undefined, @@ -3155,12 +3188,33 @@ class Listofworksstudentone extends Component {
    : "" } - + {/*立即截止*/} + this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + + /> {/*立即发布*/} - { - console.log("ShixunHomeworkPage56"); - console.log(jobsettingsdata); - console.log(teacherdata); + // console.log("ShixunHomeworkPage56"); + // console.log(jobsettingsdata); + // console.log(teacherdata); this.setState({ jobsettingsdatapage: jobsettingsdata.data.message===undefined?jobsettingsdata:undefined, @@ -350,12 +350,7 @@ class ShixunHomeworkPage extends Component {
    - {/**/} + {parseInt(tab) === 0 ? this.Getdataback(jobsettingsdata, teacherdata)}>:""} {parseInt(tab) === 1 ? this.Getdataback(jobsettingsdata, teacherdata)} Showupdateinstructionsboolfalse={(i)=>this.Showupdateinstructionsboolfalse(i)}>:""} {parseInt(tab) === 2 ? this.Getdataback(jobsettingsdata, teacherdata)}>:""} @@ -369,31 +364,3 @@ class ShixunHomeworkPage extends Component { export default ShixunHomeworkPage; -//
    -//
    -//
    -//
    -// {this.props.isAdmin() === true ? -// -// this.changeTab(e)}> -// 作品列表 -// 作业回答 -// 代码查重 -// 设置 -// -// : -// this.changeTab(e)}> -// 作品列表 -// 作业回答 -// 代码查重 -// -// } -// -//
    -//
    -{/*
    */ -} - - -{/*
    */ -} \ No newline at end of file diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js index 95de82445..559cafd78 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js @@ -3,6 +3,7 @@ import CoursesListType from '../coursesPublic/CoursesListType'; import {WordsBtn,ActionBtn} from 'educoder'; import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal'; import HomeworkModal from "../coursesPublic/HomeworkModal"; +import OneSelfOrderModal from "../coursesPublic/OneSelfOrderModal"; import DownloadMessageysl from '../../modals/DownloadMessageysl'; import NoneData from '../coursesPublic/NoneData'; import { @@ -422,7 +423,7 @@ class ShixunStudentWork extends Component { this.setState({ modalname:"立即发布", modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, - visible:true, + OneSelftype:true, Topval:"学生将立即收到作业", // Botvalleft:"暂不发布", Botval:`本操作只对"未发布"的分班有效`, @@ -476,15 +477,44 @@ class ShixunStudentWork extends Component { // 立即发布 homeworkstartend=(ds,endtime)=>{ var homeworkid = this.props.match.params.homeworkid; - let {course_groupslist} = this.state; + + let data={} + if(ds.length===0){ + if(this.props.teacherdatapage.category.main===1){ + data = { + homework_ids: [homeworkid], + end_time: endtime, + } + }else { + data = { + homework_ids: [homeworkid], + end_time: endtime, + category_id:this.props.teacherdatapage.category.category_id, + } + } + }else{ + if(this.props.teacherdatapage.category.main===1){ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + detail:true + } + }else{ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + category_id:this.props.teacherdatapage.category.category_id, + detail:true + } + } + + } let coursesId=this.props.match.params.coursesId; let url ="/courses/"+coursesId+"/homework_commons/publish_homework.json"; - axios.post(url,{ - homework_ids:[homeworkid], - group_ids:course_groupslist, - end_time:endtime, - }).then((result)=>{ + axios.post(url,data).then((result)=>{ if(result.status===200){ if(result.data.status===0){ notification.open({ @@ -538,6 +568,7 @@ class ShixunStudentWork extends Component { modalname:undefined, modaltype:undefined, visible:false, + OneSelftype:false, Topval:undefined, Topvalright:undefined, Botvalleft:undefined, @@ -739,7 +770,7 @@ class ShixunStudentWork extends Component { {/* {...this.props}*/} {/* refs="DownloadMessage"*/} {/*/>*/} - {/*立即发布*/} + {/*立即截止*/} + + {/*立即发布*/} + this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + /> +
    diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index ddda1f81f..3ba5703ef 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -17,17 +17,20 @@ import { import {Link} from 'react-router-dom'; import locale from 'antd/lib/date-picker/locale/zh_CN'; import axios from 'axios'; +import moment from 'moment'; +import 'moment/locale/zh-cn'; +import Modals from "../../modals/Modals"; +import DownloadMessageysl from "../../modals/DownloadMessageysl"; +import OneSelfOrderModal from "../coursesPublic/OneSelfOrderModal"; import '../css/members.css'; import "../common/formCommon.css"; import '../css/Courses.css'; import './style.css'; import '../css/busyWork.css' import '../poll/pollStyle.css' -import moment from 'moment'; -import 'moment/locale/zh-cn'; -import Modals from "../../modals/Modals"; + import Startshixuntask from "../coursesPublic/Startshixuntask"; -import DownloadMessageysl from "../../modals/DownloadMessageysl"; + const RadioGroup = Radio.Group; //GraduationTaskssetting.js @@ -1531,7 +1534,7 @@ class Trainingjobsetting extends Component { this.setState({ modalname: "立即发布", modaltype: response.data.course_groups === null || response.data.course_groups.length === 0 ? 2 : 1, - visible: true, + OneSelftype: true, Topval:"学生将立即收到作业", // Botvalleft:"暂不发布", Botval:`本操作只对"未发布"的分班有效`, @@ -1587,15 +1590,44 @@ class Trainingjobsetting extends Component { // 立即发布 homeworkstartend = (ds,endtime) => { var homeworkid = this.props.match.params.homeworkid; - let {course_groupslist} = this.state; + console.log(this.props) + let data={} + if(ds.length===0){ + if(this.props.teacherdatapage.category.main===1){ + data = { + homework_ids: [homeworkid], + end_time: endtime, + } + }else { + data = { + homework_ids: [homeworkid], + end_time: endtime, + category_id:this.props.teacherdatapage.category.category_id, + } + } + }else{ + if(this.props.teacherdatapage.category.main===1){ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + detail:true + } + }else{ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + category_id:this.props.teacherdatapage.category.category_id, + detail:true + } + } + + } let coursesId = this.props.match.params.coursesId; let url = "/courses/" + coursesId + "/homework_commons/publish_homework.json"; - axios.post(url, { - homework_ids: [homeworkid], - group_ids: course_groupslist, - end_time:endtime, - }).then((result) => { + axios.post(url,data).then((result) => { if (result.status === 200) { if (result.data.status === 0) { notification.open({ @@ -1654,6 +1686,7 @@ class Trainingjobsetting extends Component { modalname: undefined, modaltype: undefined, visible: false, + OneSelftype:false, Topval: undefined, Topvalright: undefined, Botvalleft: undefined, @@ -1799,8 +1832,8 @@ class Trainingjobsetting extends Component { }; //一进来就是老师要用的编辑页面 editSettings=(datas)=>{ - console.log("编辑页面"); - console.log(datas); + // console.log("编辑页面"); + // console.log(datas); try { if (datas.data.is_end === true) { this.setState({ @@ -2127,6 +2160,30 @@ class Trainingjobsetting extends Component { starttimesend={this.state.starttimesend} typs={this.state.typs} /> + + + {/*立即发布*/} + this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + /> + { var homeworkid = this.props.match.params.homeworkid; - let {course_groupslist} = this.state; + let data={} + if(ds.length===0){ + if(this.state.category.main===1){ + data = { + homework_ids: [homeworkid], + end_time: endtime, + } + }else { + data = { + homework_ids: [homeworkid], + end_time: endtime, + category_id:this.state.category.category_id, + } + } + }else{ + if(this.state.category.main===1){ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + detail:true + } + }else{ + data={ + homework_ids: [homeworkid], + group_ids: ds, + group_end_times:endtime, + category_id:this.state.category.category_id, + detail:true + } + } + + } let coursesId = this.props.match.params.coursesId; let url = "/courses/" + coursesId + "/homework_commons/publish_homework.json"; - axios.post(url, { - homework_ids: [homeworkid], - group_ids: course_groupslist, - end_time: endtime, - }).then((result) => { + axios.post(url, data).then((result) => { if (result.status === 200) { if (result.data.status === 0) { notification.open({ @@ -335,6 +366,7 @@ class Workquestionandanswer extends Component { addnametab: undefined, typs: undefined, starttimes: undefined, + OneSelftype:false, }) } getcourse_groupslist = (id) => { @@ -455,6 +487,28 @@ class Workquestionandanswer extends Component { starttimesend={this.state.starttimesend} typs={this.state.typs} /> + + {/*立即发布*/} + this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + />
    diff --git a/public/react/src/modules/home/shixunsHome.js b/public/react/src/modules/home/shixunsHome.js index bad776b89..4db39a310 100644 --- a/public/react/src/modules/home/shixunsHome.js +++ b/public/react/src/modules/home/shixunsHome.js @@ -111,7 +111,7 @@ class ShixunsHome extends Component { } const MyRate = ({ defaultValue, ...rest }) => { let myValue = defaultValue; - console.log(myValue-Math.floor(myValue)) + // console.log(myValue-Math.floor(myValue)) // if (myValue < Math.ceil(myValue)) { // myValue = Math.floor(myValue) + 0.5; // } From 0df28461cdd11c4f6bbd59a3006659726868f9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Sat, 19 Oct 2019 16:32:40 +0800 Subject: [PATCH 010/126] =?UTF-8?q?=E8=AF=95=E5=8D=B7=EF=BC=8C=E9=97=AE?= =?UTF-8?q?=E5=8D=B7=E8=AF=A6=E6=83=85=E9=A1=B5=E7=AB=8B=E5=8D=B3=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coursesPublic/OneSelfOrderModal.js | 2 - .../exercise/Testpapersettinghomepage.js | 3 +- .../graduation/tasks/GraduationTaskDetail.js | 21 +- .../tasks/GraduationTaskssetting.js | 1 + .../tasks/GraduationTaskssettinglist.js | 2 + .../tasks/GraduationTaskssettingquestions.js | 4 +- .../modules/courses/poll/PollDetailIndex.js | 1 + .../poll/pollPublicBtn/ImmediatelyPublish.js | 317 ++++++++++++------ .../shixunHomework/Trainingjobsetting.js | 2 +- 9 files changed, 241 insertions(+), 112 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js index 6d4a307e5..ef21f963c 100644 --- a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js +++ b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js @@ -229,8 +229,6 @@ class OneSelfOrderModal extends Component{ let {group_ids,endtime,course_groups}=this.state; // TODO course_groups为空时的处理 - - // let endtimelist=this.props.starttimes===undefined||this.props.starttimes===""?"":moment(handleDateString(endtime)).add(1,'months') return(
    { diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index ac2ea7be3..f05cbf967 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -430,7 +430,8 @@ class Testpapersettinghomepage extends Component{ className={"btn fr color-blue font-16 mt20 mr20"} checkBoxValues={[parseInt(this.props.match.params.Id)]} Exercisetype={"exercise"} - action={this.Commonheadofthetestpaper} + pushtype={true} + action={this.Commonheadofthetestpaper} single={true} getsetdata={this.getsetdata} > diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index b54aad071..fdd10db6a 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -115,12 +115,18 @@ class GraduationTaskDetail extends Component{ // this.props.history.goBack() this.props.history.replace(`/courses/${this.state.questionslist.course_id}/graduation_tasks/${this.state.questionslist.graduation_id}`); } + + setend_time=(time)=>{ + this.setState({ + starttimesend:time===undefined||time===null||time===""?undefined:time, + }) + } //立即发布 publish=()=>{ let {questionslist}=this.state; let starttime= this.props.getNowFormatDates(1,1); let endtime=this.props.getNowFormatDates(2,1); - // this.homeworkstart() + console.log(this.bindRef.end_time) this.setState({ modalname:"立即发布", // visible:true, @@ -367,7 +373,14 @@ class GraduationTaskDetail extends Component{ course_groups={this.state.course_groups} modaltype={this.state.modaltype} getcourse_groupslist={(id) => this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} /> + + + + {/*关联项目*/} {visibles===true? () + (props) => (this.setend_time(time)} tab={`list`}/>) } > () + (props) => (this.setend_time(time)} tab={`setting`}/>) } > () + (props) => (this.setend_time(time)} tab={`questions`}/>) }> diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index bab853a13..365e53409 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -143,6 +143,7 @@ class GraduationTaskssettingapp extends Component{ commenttime:result.data.comment_time===null||result.data.comment_time=== ""?"":moment(moment(handleDateString(result.data.comment_time))).format("YYYY-MM-DD HH:mm"), task_status: result.data.task_status }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index b3282d7dd..ebe931eb0 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -151,7 +151,9 @@ class GraduationTaskssettinglist extends Component{ taskslistdata: result.data, data: datalist, loadingstate: false, + end_time:result.data.end_time }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ console.log(error) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index 06ed1eaa1..f87b0a53d 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -54,8 +54,10 @@ class GraduationTasksquestions extends Component{ axios.get(url).then((result)=>{ if(result.status===200){ this.setState({ - questionslist:result.data + questionslist:result.data, + end_time:result.data.end_time }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ console.log(error) diff --git a/public/react/src/modules/courses/poll/PollDetailIndex.js b/public/react/src/modules/courses/poll/PollDetailIndex.js index 69ea83d62..c91a6a493 100644 --- a/public/react/src/modules/courses/poll/PollDetailIndex.js +++ b/public/react/src/modules/courses/poll/PollDetailIndex.js @@ -185,6 +185,7 @@ class PollDetailIndex extends Component{ className={"font-16"} checkBoxValues={[this.props.match.params.pollId]} action={this.getPollInfo} + pushtype={true} single={true} > diff --git a/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js b/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js index 9644acfde..b35b500ac 100644 --- a/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js +++ b/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js @@ -4,13 +4,14 @@ import React,{ Component } from "react"; import Modals from '../../../modals/Modals' import { WordsBtn } from 'educoder' import HomeworkModal from "../../coursesPublic/HomeworkModal"; - +import OneSelfOrderModal from "../../coursesPublic/OneSelfOrderModal"; import axios from 'axios' import moment from 'moment'; + class Immediatelypublish extends Component{ constructor(props){ super(props) @@ -39,104 +40,170 @@ class Immediatelypublish extends Component{ } //立即发布 homeworkstart=()=>{ - let {checkBoxValues}=this.props + let {checkBoxValues,pushtype}=this.props - // console.log(this.props.Exercisetype==="exercise") + if(pushtype===true){ + if(checkBoxValues.length==0){ + this.props.showNotification("请先在列表中选择数据"); + // this.setState({ + // modalsType:true, + // modalsTopval:"请先在列表中选择数据", + // loadtype:true + // }) + }else{ + let coursesId=this.props.match.params.coursesId; + if(this.props.Exercisetype==="exercise"){ + let url=`/exercises/${this.props.match.params.Id}/publish_groups.json`; + axios.get(url).then((response) => { + if(response.status===200){ + this.setState({ + modalname:"立即发布", + modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, + OneSelftype:true, + Topval:"学生将立即收到试卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + course_groups:response.data.course_groups, + starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, + }) + } + }).catch((error) => { + console.log(error) + }); + }else{ + let url=`/polls/${this.props.match.params.pollId}/publish_groups.json`; + axios.get(url).then((response) => { + if(response){ - if(checkBoxValues.length==0){ - this.props.showNotification("请先在列表中选择数据"); - // this.setState({ - // modalsType:true, - // modalsTopval:"请先在列表中选择数据", - // loadtype:true - // }) - }else{ - let coursesId=this.props.match.params.coursesId; - if(this.props.Exercisetype==="exercise"){ - let url=`/courses/${coursesId}/exercises/publish_modal.json`; - axios.get(url,{ - params:{ - check_ids:checkBoxValues - } - }).then((response) => { - if(response.status===200){ - let list=[]; - if(response.data.course_info){ - for(var i=0;i 0 ? 1 : 2, - visible:true, - Topval:"学生将立即收到试卷", - // Botvalleft:"暂不发布", - Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, - starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), - starttimes:this.props.getNowFormatDates(1), - endtime:"截止时间:"+this.props.getNowFormatDates(2), - Cancelname:"暂不发布", - Savesname:"立即发布", - Cancel:this.homeworkhide, - Saves:this.homeworkstartend, - }) + this.setState({ + modalname:"立即发布", + modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, + OneSelftype:true, + Topval:"学生将立即收到问卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + course_groups:response.data.course_groups, + starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, + }) + } + }).catch((error) => { + console.log(error) + }); - } - }).catch((error) => { - console.log(error) - }); - }else{ - let url=`/courses/${coursesId}/polls/publish_modal.json`; - axios.get(url,{ - params:{ - check_ids:checkBoxValues - } - }).then((response) => { - if(response){ - let list=[]; - if(response.data.course_info){ - for(var i=0;i 0 ? 1 : 2, - visible:true, - Topval:"学生将立即收到问卷", - // Botvalleft:"暂不发布", - Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, - starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), - starttimes:this.props.getNowFormatDates(1), - endtime:"截止时间:"+this.props.getNowFormatDates(2), - Cancelname:"暂不发布", - Savesname:"立即发布", - Cancel:this.homeworkhide, - Saves:this.homeworkstartend, - }) - } - }).catch((error) => { - console.log(error) - }); + } - } + } + }else{ + if(checkBoxValues.length==0){ + this.props.showNotification("请先在列表中选择数据"); + // this.setState({ + // modalsType:true, + // modalsTopval:"请先在列表中选择数据", + // loadtype:true + // }) + }else{ + let coursesId=this.props.match.params.coursesId; + if(this.props.Exercisetype==="exercise"){ + let url=`/courses/${coursesId}/exercises/publish_modal.json`; + axios.get(url,{ + params:{ + check_ids:checkBoxValues + } + }).then((response) => { + if(response.status===200){ + let list=[]; + if(response.data.course_info){ + for(var i=0;i 0 ? 1 : 2, + visible:true, + Topval:"学生将立即收到试卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + }) + + } + }).catch((error) => { + console.log(error) + }); + }else{ + let url=`/courses/${coursesId}/polls/publish_modal.json`; + axios.get(url,{ + params:{ + check_ids:checkBoxValues + } + }).then((response) => { + if(response){ + let list=[]; + if(response.data.course_info){ + for(var i=0;i 0 ? 1 : 2, + visible:true, + Topval:"学生将立即收到问卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + }) + } + }).catch((error) => { + console.log(error) + }); + + } + + } + } - } } @@ -154,6 +221,7 @@ class Immediatelypublish extends Component{ modalname:undefined, modaltype:undefined, visible:false, + OneSelftype:false, Topval:undefined, Topvalright:undefined, Botvalleft:undefined, @@ -174,18 +242,42 @@ class Immediatelypublish extends Component{ // 确定立即发布 homeworkstartend=(ids,endtime)=>{ - let {checkBoxValues}=this.props + let {checkBoxValues,pushtype}=this.props let {chooseId}=this.state; let coursesId=this.props.match.params.coursesId; + let data={}; + + if(pushtype===true){ + + if(ids.length===0){ + data = { + check_ids:checkBoxValues, + end_time: endtime, + } + }else{ + data={ + check_ids: checkBoxValues, + group_ids: ids, + group_end_times:endtime, + detail:true + } + + } + }else{ + + data={ + check_ids:checkBoxValues, + group_ids:chooseId, + end_time:endtime + } + } + + if(this.props.Exercisetype==="exercise"){ let url=`/courses/${coursesId}/exercises/publish.json` - axios.post(url,{ - check_ids:checkBoxValues, - group_ids:chooseId, - end_time:endtime - }).then((result)=>{ + axios.post(url,data).then((result)=>{ if(result){ this.props.showNotification(result.data.message); this.homeworkhide(); @@ -210,11 +302,7 @@ class Immediatelypublish extends Component{ }else{ let url=`/courses/${coursesId}/polls/publish.json` - axios.post(url,{ - check_ids:checkBoxValues, - group_ids:chooseId, - end_time:endtime - }).then((result)=>{ + axios.post(url,data).then((result)=>{ if(result){ this.props.showNotification(result.data.message); this.homeworkhide(); @@ -277,6 +365,29 @@ class Immediatelypublish extends Component{ course_groups={course_groups} getcourse_groupslist={(id)=>this.getcourse_groupslist(id)} /> + + {/*立即发布*/} + this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + /> + {/* 公用的提示弹框 */} { var homeworkid = this.props.match.params.homeworkid; - console.log(this.props) + let data={} if(ds.length===0){ if(this.props.teacherdatapage.category.main===1){ From 624738d8976bec25fa72a6a5a3b494440d4c5a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Sat, 19 Oct 2019 17:48:39 +0800 Subject: [PATCH 011/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/coursesPublic/OneSelfOrderModal.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js index ef21f963c..5d4b5c175 100644 --- a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js +++ b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js @@ -287,7 +287,7 @@ class OneSelfOrderModal extends Component{ {this.props.starttime} {this.props.modaltype===undefined||this.props.modaltype===2? {/*{this.props.endtime}*/} - 截止时间: + 截止时间 {this.state.endtimetype===true?
    {this.state.endtimetypevalue}
    :""} +
    (仅支持半点和整点)
    :""}

    } {/* usingCheckBeforePost 为true的时候 全选所有分班 */} @@ -331,7 +332,7 @@ class OneSelfOrderModal extends Component{
  • 分班名称 - 截止时间 + 截止时间(仅支持半点和整点)
  • } {this.props.modaltype===undefined||this.props.modaltype===2 @@ -365,7 +366,6 @@ class OneSelfOrderModal extends Component{ locale={locale} format={dateFormat} placeholder="请选择截止时间" - id={"endTime"} width={"210px"} value={item.end_time===null||item.end_time===""?"":moment(item.end_time, dateFormat)} onChange={(e,data)=>this.onChangeTimeendlist(e,data,item.id)} From d420744016e4022d7c58b577d2a6139978e36ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 14:17:05 +0800 Subject: [PATCH 012/126] =?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 --- .../src/modules/competition/Registration.js | 16 +- .../competition/comcss/competition.css | 131 ++++- .../competition/competmodal/PersonModal.js | 550 ++++++++++++++++++ .../competmodal/PersonModaltion.js | 51 ++ 4 files changed, 745 insertions(+), 3 deletions(-) create mode 100644 public/react/src/modules/competition/competmodal/PersonModaltion.js diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 945552ef3..89cca3e75 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -16,7 +16,7 @@ import CompetitionMaxImg from './CompetitionMaxImg'; import RegistrationSearch from './RegistrationSearch'; import RegisListview from './RegisListview'; import RegisListviewdata from './RegisListviewdata'; - +import PersonModal from './competmodal/PersonModal'; // 团队竞赛报名无报名 class Registration extends React.Component { constructor(props) { @@ -45,7 +45,19 @@ class Registration extends React.Component { ); return (
    -
    + +
    + +

    在线竞赛 diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index aa8e2b725..947b69067 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -3,6 +3,9 @@ border: 0.5px solid; } +.borders2 { + border: 1px solid #D9D9D9; +} /*All*/ /*Registration.js*/ .registrationback { @@ -97,6 +100,7 @@ align-items: center; margin-top: 44px; margin-left: 251px; + } .registbut1 { @@ -269,6 +273,7 @@ border-bottom: 1px solid #EDEDED; margin-top: 19px; } + /*垂直*/ .regitemimg1 { display: flex; @@ -286,6 +291,7 @@ margin-left: 26px; padding-bottom: 18px; } + .regitemimg2 { border: 0.5px solid; height: 78px; @@ -426,10 +432,57 @@ } +.reglistviewdivss2 { + display: flex; + flex-direction: initial; + +} + +.reglistviewdivss2p { + width: 90px; + font-size: 12px; + color: #666666; + text-align: center; + +} + +.reglistviewdivss4p { + width: 90px; + font-size: 12px; + color: #666666; + text-align: center; + +} + +.reglistviewdivss5p { + width: 110px; + font-size: 12px; + color: #666666; + text-align: center; + +} + +.reglistviewdivss33p { + width: 25px; + font-size: 12px; + color: #666666; + text-align: center; + +} + +.reglistviewdivss3p { + width: 31px; + font-size: 12px; + color: #666666; + text-align: center; + +} + reglistviewdivs2 { margin-top: 27px; } + /*RegisListview.js*/ @@ -448,4 +501,80 @@ reglistviewdivs2 { width: 78px; } -/*RegisListviewdata.js*/ \ No newline at end of file +/*RegisListviewdata.js*/ + + +/*PersonModal.js*/ +.permaindiv { + display: flex; + flex-direction: column; +} + + +.demo-loading-container { + position: absolute; + bottom: 40px; + width: 100%; + text-align: center; +} + +.demo-infinite-container { + border-radius: 2px; + overflow: auto; + height: 215px; + width: 485px; + +} + +.demo-infinite-containerdiv { + margin-top: 12px; +} + +.demo-infinite-containerdiv2 { + margin-top: 24px; + +} + +.backgroundspersondiv { + background: #ffffff; +} + +.cpersondiv1 { + height: 161px; + width: 410px; +} + +.demo-infinite-container2 { + border-radius: 2px; + overflow: auto; + height: 161px; + width: 410px; + +} + +.cpersondiv1Items { + color: #05101A; + font-size: 12px; +} + +.personbut1 { + background: #F2F2F2; + border-color: #F2F2F2; + margin-right: 26px; + width: 120px; + height: 38px; + color: #4A4A4A; + font-size: 16px; +} + +.personbut2 { + background: #459BE5; + border-color: #459BE5; + margin-right: 26px; + width: 120px; + height: 38px; + color: #ffffff; + font-size: 16px; +} + +/*PersonModal.js*/ \ No newline at end of file diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index e69de29bb..4cd4920a4 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -0,0 +1,550 @@ +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 PersonModal extends Component { + + constructor(props) { + super(props); + this.state = { + addonAfter: 0, + test: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], + test2: [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], + test3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], + loading: false, + loading1: false, + loading2: false, + hasMore: true, + person1: false, + person2: false, + Numberofteammentors: "0-3", + Thecurrentnumber: "3", + + } + } + + modalCancel = () => { + window.location.href = "/" + } + + setDownload = () => { + //立即联系 + }; + + //输入框事件 + changeTopicName = (e) => { + // console.log("调用了changeTopicName"); + let num = parseInt(e.target.value.length); + if (num > 60) { + return; + } + this.setState({ + addonAfter: num < 0 ? 0 : num + }); + this.setState({ + polls_nametest: e.target.value + }) + }; + + //onSearchsou + onSearch = (value) => { + console.log("搜索的数据" + value); + }; + handleInfiniteOnLoad = () => { + this.setState({ + loading: true, + }) + const test3 = this.state.test; + this.state.test2.forEach(function (item) { + test3.push(item) + }); + setTimeout(() => { + this.setState({ + test: test3, + hasMore: true, + loading: false, + }); + }, 1000) + + } + handleInfiniteOnLoad1 = () => { + console.log("调用了方法1111"); + this.setState({ + loading1: true, + }) + setTimeout(() => { + console.log("调用了方法11112"); + this.setState({ + loading1: false, + hasMore: true, + }); + }, 1000) + + } + handleInfiniteOnLoad2 = () => { + console.log("调用了方法1111"); + this.setState({ + loading2: true, + + }) + setTimeout(() => { + console.log("调用了方法11113"); + this.setState({ + hasMore: true, + loading2: false, + }); + }, 1000) + + } + inputOnBlur = (e) => { + console.log("inputOnBlur"); + console.log(e); + this.setState({ + person1: false + }) + } + inputOnBlur2 = (e) => { + console.log("inputOnBlur"); + console.log(e); + this.setState({ + person2: false + }) + } + + startSearch = (e) => { + console.log("startSearch"); + console.log(e); + } + + inputOnFocus = (e) => { + console.log("inputOnFocus"); + console.log(e); + + this.setState({ + person1: true + }) + } + + inputOnFocus2 = (e) => { + console.log("inputOnFocus2"); + console.log(e); + this.setState({ + person2: true + }) + } + + render() { + const { + addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2 + } = this.state; + //Modal + //keyboard是否支持键盘 esc 关闭 + //closable 是否显示右上角的关闭按钮 + //底部内容,当不需要默认底部按钮时,可以设为 footer={null} + //destroyOnClose 关闭时销毁 Modal 里的子元素 + //centered 垂直居中展示 Modal + //visible 弹出框是否显示 + const listItems = test.map((item, index) => +

    +

    陈明

    +

    导师/创建者

    +

    国防科技大学

    +

    职称;教授

    +

    +
    + ); + const cpersondiv1Items = test3.map((item, index) => +
    +

    李小猫{index}

    +

    职称:副教授

    +

    国防科技大学

    +
    + ); + const cpersondiv1 = ( +
    + { + person1 ? + +
    + this.handleInfiniteOnLoad1()} + hasMore={!this.state.loading1 && this.state.hasMore} + useWindow={false} + > + { + cpersondiv1Items + } + + +
    +
    + : + "" + } +
    + ) + const persondiv2Items = test3.map((item, index) => +
    +

    李小猫{index}

    +

    职称:副教授

    +

    国防科技大学

    +

    已加入其他战队

    +
    + ); + const persondiv2 = ( +
    + { + person2 === true ? + +
    + this.handleInfiniteOnLoad2()} + hasMore={!this.state.loading2 && this.state.hasMore} + useWindow={false} + > + { + persondiv2Items + } + + +
    +
    + : "" + } + +
    + ) + return ( + + + + +
    + {/*队名*/} + +
    +

    + * + 队名: +

    + + + +
    + + + {/*导师*/} +
    +

    + * + 导师: +

    + + {/*
    */} + trigger.parentNode} + visible={this.state.person1}> + + } + /> + + {/*
    */} +
    + + {/*队员*/} +
    +

    + * + 队员: +

    + + {/* this.onSearch(value)}*/} + {/*/>*/} + + trigger.parentNode} + visible={this.state.person2}> + + } + /> + + +
    + + + {/*表格*/} +
    + {/**/} +
    +
    +

    姓名

    +

    角色

    +

    单位

    +

    其他

    +

    操作

    +
    +
    + +
    + this.handleInfiniteOnLoad()} + hasMore={!this.state.loading && this.state.hasMore} + useWindow={false} + > + {listItems} + + +
    +
    +
    + + {/*最后一行文字*/} +

    战队导师为{Numberofteammentors}人,现在为{Thecurrentnumber}人

    +
    +
    + + +
    +
    +
    +
    + ) + } +} + +export default PersonModal; \ No newline at end of file diff --git a/public/react/src/modules/competition/competmodal/PersonModaltion.js b/public/react/src/modules/competition/competmodal/PersonModaltion.js new file mode 100644 index 000000000..e8e4148ee --- /dev/null +++ b/public/react/src/modules/competition/competmodal/PersonModaltion.js @@ -0,0 +1,51 @@ +import React, {Component} from 'react'; +import { + BrowserRouter as Router, + Route, + Switch +} from 'react-router-dom'; +import axios from 'axios'; +import moment from 'moment'; +import competition from './comcss/competition.css'; +import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; +// 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> +import Rectanglex from "../../modules/competition/Rectanglex.png"; + +class PersonModaltion extends React.Component { + constructor(props) { + super(props) + + } + + + render() { + return ( +
    +
    +

    姓名

    +

    角色

    +

    单位

    +

    其他

    +

    操作

    +
    +
    + ) + } + +} + +export default PersonModaltion; From 7203345468132511716d8d3657b6c44888a1c320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 15:27:45 +0800 Subject: [PATCH 013/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=88=98=E9=98=9F=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/Registration.js | 10 +- .../competition/comcss/competition.css | 88 ++++++++++++++- .../competition/competmodal/PersonModal.js | 8 +- .../competmodal/PersonalModalteam.js | 101 ++++++++++++++++++ 4 files changed, 201 insertions(+), 6 deletions(-) create mode 100644 public/react/src/modules/competition/competmodal/PersonalModalteam.js diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 89cca3e75..50da524cd 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -17,6 +17,7 @@ import RegistrationSearch from './RegistrationSearch'; import RegisListview from './RegisListview'; import RegisListviewdata from './RegisListviewdata'; import PersonModal from './competmodal/PersonModal'; +import PersonalModalteam from './competmodal/PersonalModalteam'; // 团队竞赛报名无报名 class Registration extends React.Component { constructor(props) { @@ -26,7 +27,9 @@ class Registration extends React.Component { loadingstate: false, page: 1, limit: 20, - type: 5, + type: 3, + tmodalsType: false, + tmodalsTypes: true, } } @@ -39,7 +42,7 @@ class Registration extends React.Component { } render() { - const {test, page, limit, type} = this.state; + const {test, page, limit, type, tmodalsType, tmodalsTypes} = this.state; const listItems = test.map((item, index) => ); @@ -57,7 +60,8 @@ class Registration extends React.Component { ` } - + +

    在线竞赛 diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 947b69067..4466a795d 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -19,6 +19,13 @@ background: #0dcecb; } +.registrationbackcenter { + display: flex; + display: -webkit-flex; + flex-direction: column; + align-items: center; +} + .registrationback1 { height: 368px; width: 1200px; @@ -565,8 +572,19 @@ reglistviewdivs2 { height: 38px; color: #4A4A4A; font-size: 16px; + border-radius: 3px; + cursor: pointer; } +.personbut1 p { + width: 100%; + height: 100%; + text-align: center; + margin-top: 10px; + color: #4A4A4A; + font-size: 16px; + cursor: pointer; +} .personbut2 { background: #459BE5; border-color: #459BE5; @@ -575,6 +593,74 @@ reglistviewdivs2 { height: 38px; color: #ffffff; font-size: 16px; + border-radius: 3px; + cursor: pointer; +} + +.personbut2 p { + width: 100%; + height: 100%; + text-align: center; + margin-top: 10px; + color: #ffffff; + font-size: 16px; + cursor: pointer; +} + +/*PersonModal.js*/ + + +/*PersonalModalteam.js*/ +.personaldiv { + display: flex; + display: -webkit-flex; + flex-direction: column; + align-items: center; +} + +.personaldivbutt1 { + + background: #F2F2F2; + border-color: #F2F2F2; + margin-right: 23px; + width: 100px; + height: 38px; + color: #4A4A4A; + font-size: 16px; + border-radius: 3px; + cursor: pointer; +} + +.personaldivbutt1 p { + width: 100%; + height: 100%; + text-align: center; + margin-top: 10px; + color: #666666; + font-size: 16px; + cursor: pointer; +} + +.personaldivbutt2 { + background: #459BE5; + border-color: #459BE5; + width: 100px; + height: 38px; + color: #ffffff; + font-size: 16px; + border-radius: 3px; + cursor: pointer; } -/*PersonModal.js*/ \ No newline at end of file +.personaldivbutt2 p { + width: 100%; + height: 100%; + text-align: center; + margin-top: 10px; + color: #ffffff; + font-size: 16px; + cursor: pointer; +} + + +/*PersonalModalteam.js*/ \ No newline at end of file diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 4cd4920a4..2495759d5 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -537,8 +537,12 @@ class PersonModal extends Component { justifyContent: "center", width: "100%" }}> - - +

    +

    取消

    +
    +
    +

    确定

    +
    diff --git a/public/react/src/modules/competition/competmodal/PersonalModalteam.js b/public/react/src/modules/competition/competmodal/PersonalModalteam.js new file mode 100644 index 000000000..3ba02a72a --- /dev/null +++ b/public/react/src/modules/competition/competmodal/PersonalModalteam.js @@ -0,0 +1,101 @@ +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 PersonalModalteam extends 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 ( + + + +
    +
    +

    + 邀请码: +

    + + + +
    + +
    +
    +
    +

    取消

    +
    +
    +

    确定

    +
    +
    +
    +
    +
    + ) + } +} + +export default PersonalModalteam; \ No newline at end of file From 42e5a3ca81da2f46a9579859fd1feb6d4407c318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 15:37:16 +0800 Subject: [PATCH 014/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=88=98=E9=98=9F=E5=BC=B9=E6=A1=86=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/Registration.js | 40 ++++++++++++++++++- .../competition/competmodal/PersonModal.js | 4 +- .../competmodal/PersonalModalteam.js | 4 +- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 50da524cd..a45e83e2a 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -39,6 +39,40 @@ class Registration extends React.Component { page: pageNumber, loadingstate: true, }) + }; + + + Tmoconfirm = (bool) => { + //boolfalse 取消 true 确认 + this.setState({ + tmodalsTypes: false + }) + if (bool) { + //确认 + + + } else { + //取消 + + + } + } + + + Tmoconfirm1 = (bool) => { + //boolfalse 取消 true 确认 + this.setState({ + tmodalsTypes: false + }) + if (bool) { + //确认 + + + } else { + //取消 + + + } } render() { @@ -60,8 +94,10 @@ class Registration extends React.Component { ` } - - + this.Tmoconfirm1(bool)}> + this.Tmoconfirm(bool)}>

    在线竞赛 diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 2495759d5..611841f7f 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -538,10 +538,10 @@ class PersonModal extends Component { width: "100%" }}>

    -

    取消

    +

    this.Tmoconfirm1(false)}> 取消

    -

    确定

    +

    this.Tmoconfirm1(true)}>确定

    diff --git a/public/react/src/modules/competition/competmodal/PersonalModalteam.js b/public/react/src/modules/competition/competmodal/PersonalModalteam.js index 3ba02a72a..2d3ef9202 100644 --- a/public/react/src/modules/competition/competmodal/PersonalModalteam.js +++ b/public/react/src/modules/competition/competmodal/PersonalModalteam.js @@ -85,10 +85,10 @@ class PersonalModalteam extends Component { width: "100%" }}>
    -

    取消

    +

    this.props.Tmoconfirm(false)}>取消

    -

    确定

    +

    this.props.Tmoconfirm(true)}>确定

    From 08d4b568801b44e8909fd1cb56ade507ebdfd288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 15:55:11 +0800 Subject: [PATCH 015/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/competition/CompetitionMaxImg.js | 12 +++---- .../src/modules/competition/Registration.js | 24 ++++++++++++-- .../competition/comcss/competition.css | 32 +++++++++++++++++++ .../competition/competmodal/PersonModal.js | 4 +-- 4 files changed, 61 insertions(+), 11 deletions(-) diff --git a/public/react/src/modules/competition/CompetitionMaxImg.js b/public/react/src/modules/competition/CompetitionMaxImg.js index 9074523b9..55b9f1dde 100644 --- a/public/react/src/modules/competition/CompetitionMaxImg.js +++ b/public/react/src/modules/competition/CompetitionMaxImg.js @@ -20,10 +20,10 @@ class CompetitionMaxImg extends React.Component {

    提供企业级工程实训,以实现工程化专业教学的自动化和智能化。

    -

    加入战队

    +

    this.props.Jointheteam()}>加入战队

    -

    创建战队

    +

    this.props.Createateam()}>创建战队

    @@ -35,10 +35,10 @@ class CompetitionMaxImg extends React.Component {

    高校智能课堂与综合实训平台

    -

    加入战队

    +

    this.props.Jointheteam()}>加入战队

    -

    创建战队

    +

    this.props.Createateam()}>创建战队

    @@ -50,10 +50,10 @@ class CompetitionMaxImg extends React.Component {

    高校智能课堂与综合实训平台

    -

    加入战队

    +

    this.props.Jointheteam()}>加入战队

    -

    创建战队

    +

    this.props.Createateam()}>创建战队

    diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index a45e83e2a..7e22928f0 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -29,7 +29,7 @@ class Registration extends React.Component { limit: 20, type: 3, tmodalsType: false, - tmodalsTypes: true, + tmodalsTypes: false, } } @@ -40,6 +40,23 @@ class Registration extends React.Component { loadingstate: true, }) }; + /** + * 加入战队 + * */ + Jointheteam = () => { + this.setState({ + tmodalsTypes: true + }) + } + + /** + * 创建战队 + **/ + Createateam = () => { + this.setState({ + tmodalsType: true + }) + } Tmoconfirm = (bool) => { @@ -62,7 +79,7 @@ class Registration extends React.Component { Tmoconfirm1 = (bool) => { //boolfalse 取消 true 确认 this.setState({ - tmodalsTypes: false + tmodalsType: false }) if (bool) { //确认 @@ -109,7 +126,8 @@ class Registration extends React.Component {

    {/*大图*/} - + this.Jointheteam()} + Createateam={() => this.Createateam()}> {/*大图结尾*/} {/*没数据*/} { diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 4466a795d..29094737e 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -174,13 +174,32 @@ } .registbut1 p { + width: 100%; + height: 100%; color: #05101A; + line-height: 54px; font-size: 20px; font-weight: bold; cursor: pointer } +.registbut11 p { + width: 100%; + height: 100%; + line-height: 48px; + +} + +.registbut22 p { + width: 100%; + height: 100%; + line-height: 48px; +} + .registbut2 p { + line-height: 54px; + width: 100%; + height: 100%; color: #05101A; font-size: 20px; font-weight: bold; @@ -194,6 +213,19 @@ cursor: not-allowed; } +.registbut111 p { + width: 100%; + height: 100%; + line-height: 41px; +} + +.registbut222 p { + width: 100%; + height: 100%; + line-height: 41px; + +} + .registbut2 { text-align: center; color: #05101A; diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 611841f7f..35bbe13aa 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -538,10 +538,10 @@ class PersonModal extends Component { width: "100%" }}>
    -

    this.Tmoconfirm1(false)}> 取消

    +

    this.props.Tmoconfirm1(false)}> 取消

    -

    this.Tmoconfirm1(true)}>确定

    +

    this.props.Tmoconfirm1(true)}>确定

    From 91eb9eac555e46a68147db7080576d7b0ec5627d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 16:54:27 +0800 Subject: [PATCH 016/126] =?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/modules/competition/Noentry.jpg | Bin 0 -> 3125 bytes .../react/src/modules/competition/RegisNodata.js | 11 +++++++++-- .../src/modules/competition/Registration.js | 5 +++-- .../modules/competition/comcss/competition.css | 1 - .../competition/competmodal/PersonModal.js | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 public/react/src/modules/competition/Noentry.jpg diff --git a/public/react/src/modules/competition/Noentry.jpg b/public/react/src/modules/competition/Noentry.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ffc34e17062409c1ce4643c63a0c03a0d03e72b GIT binary patch literal 3125 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 P00000NkvXXu0mjf7PSMa literal 0 HcmV?d00001 diff --git a/public/react/src/modules/competition/RegisNodata.js b/public/react/src/modules/competition/RegisNodata.js index a6e866538..3f8835634 100644 --- a/public/react/src/modules/competition/RegisNodata.js +++ b/public/react/src/modules/competition/RegisNodata.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import competition from './comcss/competition.css'; - +import Noentry from './Noentry.jpg'; // 团队竞赛报名无报名子组件 class RegisNodata extends React.Component { constructor(props) { @@ -13,7 +13,14 @@ class RegisNodata extends React.Component { render() { return (
    -
    +

    暂无战队参与报名哦,赶紧来成为第一个挑战的吧~

    diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 7e22928f0..7d85818f8 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -27,9 +27,10 @@ class Registration extends React.Component { loadingstate: false, page: 1, limit: 20, - type: 3, + type: 1, tmodalsType: false, tmodalsTypes: false, + Newtit: true, } } @@ -111,7 +112,7 @@ class Registration extends React.Component { ` } - this.Tmoconfirm1(bool)}> this.Tmoconfirm(bool)}> diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 29094737e..a947fb7bd 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -280,7 +280,6 @@ } .bootomimg { - border: 0.5px solid; height: 80px; width: 125px; margin-top: 107px; diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 35bbe13aa..1b563a5fe 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -299,7 +299,7 @@ class PersonModal extends Component { closable={false} footer={null} destroyOnClose={true} - title="创建战队" + title={this.props.Newtit === true ? "创建战队" : "编辑战队"} centered={true} visible={this.props.modalsType === undefined ? false : this.props.modalsType} width="620px" From 39039b3a9149aeea2aab97cfc63cc1e6a4e83638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Mon, 21 Oct 2019 21:53:34 +0800 Subject: [PATCH 017/126] =?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 --- .../src/modules/competition/Registration.js | 54 +++- .../competition/comcss/competition.css | 1 - .../competition/competmodal/PersonModal.js | 245 ++++++++++++++---- 3 files changed, 241 insertions(+), 59 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 7d85818f8..4dcb64a60 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -25,19 +25,65 @@ class Registration extends React.Component { 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, - page: 1, + pages: 1, limit: 20, type: 1, tmodalsType: false, tmodalsTypes: false, Newtit: true, + keyword: "", + page: 1, + per_page: 20, + data: [], + count: 0, } } + componentDidMount() { + // console.log("componentDidMount "); + // console.log("调用子组件 "); + // console.log(this.props); + // console.log(this.props.isAdmin()) + const {keyword, page, per_page} = this.state; + this.Getdata(keyword, page, per_page); + } + + Getdata = (keyword, page, per_page) => { + //搜索关键字 keyword + //页数 page + //分页 per_page + const datas = { + keyword: keyword, + page: page, + per_page: per_page, + }; + let url = `/competitions/${"gcc-course-2019"}/competition_teams.json`; + axios.get((url), {params: datas}).then((result) => { + if (result) { + if (result.data) { + console.log(result); + if (result.data.count === 0) { + this.setState({ + type: 1, + count: result.data.count, + }) + } else { + this.setState({ + data: result.data.competition_teams, + count: result.data.count, + }) + } + + } + } + }).catch((error) => { + console.log(error); + }) + } paginationonChangestwo = (pageNumber) => { this.setState({ - page: pageNumber, + pages: pageNumber, loadingstate: true, }) }; @@ -94,7 +140,7 @@ class Registration extends React.Component { } render() { - const {test, page, limit, type, tmodalsType, tmodalsTypes} = this.state; + const {test, page, pages, limit, type, tmodalsType, tmodalsTypes} = this.state; const listItems = test.map((item, index) => ); @@ -165,7 +211,7 @@ class Registration extends React.Component { { type === 4 || type === 5 ?
    -
    diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index a947fb7bd..3f74dddde 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -475,7 +475,6 @@ flex-direction: initial; } - .reglistviewdivss2p { width: 90px; font-size: 12px; diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 1b563a5fe..e0912dc3d 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -8,8 +8,9 @@ import InfiniteScroll from 'react-infinite-scroller'; // import PersonModaltion from "./PersonModaltion"; const {Search} = Input; -//立即申请试用 +//创建战队 class PersonModal extends Component { + //导师是搜索 和学生搜索都会添加到下面框中 constructor(props) { super(props); @@ -26,18 +27,130 @@ class PersonModal extends Component { person2: false, Numberofteammentors: "0-3", Thecurrentnumber: "3", + keywordteachers: "", + team_idstudents: undefined, + team_idteachers: undefined, + teacher_ids: undefined, + keywordstudents: "", + Aggregatedata: [], + name: "", + teacher_idss: [], + member_ids: [], } } - modalCancel = () => { - window.location.href = "/" + componentDidMount() { + + } - setDownload = () => { - //立即联系 + 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) + }); + } + + Getteacherdata = (keywordteachers, team_idteachers, teacher_ids) => { + //老师姓名 keyword + //当前战队ID team_id + //当前老师ID数组 teacher_ids + console.log("搜索的老师"); + const datas = { + keyword: keywordteachers, + team_id: team_idteachers, + teacher_ids: teacher_ids, + }; + let url = `/competitions/${"gcc-course-2019"}/teachers.json`; + axios.get((url), {params: datas}).then((result) => { + if (result) { + if (result.data) { + console.log(result); + this.setState({ + teacher_ids: result.data.teachers + }) + } + } + }).catch((error) => { + console.log(error); + }) + }; + Getstudentsdata = (keywordstudents, team_idstudents, student_ids) => { + //学生姓名 keyword + //当前战队ID team_id + //当前队员ID数组 student_ids + console.log("搜索的学生"); + const datas = { + keyword: keywordstudents, + team_id: team_idstudents, + student_ids: student_ids, + }; + let url = `/competitions/${"gcc-course-2019"}/students.json`; + axios.get((url), {params: datas}).then((result) => { + if (result) { + if (result.data) { + console.log(result); + this.setState({ + member_ids: result.data.teachers + }) + + } + } + }).catch((error) => { + console.log(error); + }) + }; + + //老师输入框事件 + teacheronChange = (e) => { + console.log(e.target.value); + console.log("老师输入框事件|||||||||||123123123"); + this.setState({ + person1: true, + keywordteachers: e.target.value + }) }; + //学生输入框事件 + studentsonChange = (e) => { + console.log("学生输入框事件"); + console.log(e); + this.setState({ + person2: true, + keywordstudents: e.target.value + }) + + } + + //点击获取老师数据 + getdatacpersondiv1Items = (object) => { + console.log("点击获取老师数据"); + console.log(object); + this.setState({ + person1: false, + keywordteachers: object.name + }) + } + //点击获取学生数据2 + getdatacpersondiv1Items2 = (object) => { + console.log("点击获取学生数据2"); + console.log(object); + this.setState({ + person2: false, + }) + } //输入框事件 changeTopicName = (e) => { // console.log("调用了changeTopicName"); @@ -121,6 +234,8 @@ class PersonModal extends Component { startSearch = (e) => { console.log("startSearch"); console.log(e); + const {keywordteachers, team_idteachers, teacher_ids} = this.state; + this.Getteacherdata(keywordteachers, team_idteachers, teacher_ids); } inputOnFocus = (e) => { @@ -142,7 +257,9 @@ class PersonModal extends Component { render() { const { - addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2 + addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2, + keywordteachers, team_idteachers, teacher_ids, + keywordstudents, team_idstudents, student_ids } = this.state; //Modal //keyboard是否支持键盘 esc 关闭 @@ -186,42 +303,53 @@ class PersonModal extends Component { >

    ); - const cpersondiv1Items = test3.map((item, index) => -
    -

    李小猫{index}

    -

    职称:副教授

    -

    国防科技大学

    -
    - ); + var cpersondiv1Items = []; + if (teacher_ids) { + cpersondiv1Items = teacher_ids.map((item, index) => + this.getdatacpersondiv1Items(item)} + > +

    {item.name === undefined || item.name === null || item.name === "" ? "--" : item.name}

    +

    {item.identity === undefined || item.identity === null || item.identity === "" ? "--" : item.identity}

    +

    {item.school_name === undefined || item.school_name === null || item.school_name === "" ? "--" : item.school_name}

    +
    + ); + } + const cpersondiv1 = (
    - { - person1 ? - +
    this.handleInfiniteOnLoad1()} - hasMore={!this.state.loading1 && this.state.hasMore} + // hasMore={!this.state.loading1 && this.state.hasMore} + hasMore={false} useWindow={false} > { @@ -231,19 +359,18 @@ class PersonModal extends Component {
    - : - "" - }
    ) const persondiv2Items = test3.map((item, index) => -
    + }} + onClick={() => this.getdatacpersondiv1Items2(item)} + >

    已加入其他战队

    -
    + ); const persondiv2 = (
    - { - person2 === true ? - + {/*this.state.loading2*/} +
    this.handleInfiniteOnLoad2()} - hasMore={!this.state.loading2 && this.state.hasMore} + // hasMore={!this.state.loading2 && this.state.hasMore} + hasMore={false} useWindow={false} > { @@ -287,11 +414,8 @@ class PersonModal extends Component {
    - : "" - } -
    - ) + ); return ( - +
    {/*队名*/} ( - 竞赛时间: 2019-08-07 24: 00~2019-09-10 24: 00, - 报名截止时间:2019-08-07 08:10, - ]} - extra={ -
    - - -
    奖金
    - - -
    浏览数
    - - -
    报名数
    - -
    - - - -
    ¥4500
    - - -
    351
    - - -
    351
    - -
    - -
    - } - > - {item.name}{item.sub_title===null?"":{ - item.sub_title - }} - } - /> - {item.description} -
    - )} +
    + + {item.description===null||item.description===undefined||item.description===""?:""} + + 竞赛时间: 2019-08-07 24: 00~2019-09-10 24: 00, + 报名截止时间:2019-08-07 08:10, + ]} + extra={ +
    + + +
    奖金
    + + +
    浏览数
    + + +
    报名数
    + +
    + + + +
    ¥4500
    + + +
    351
    + + +
    351
    + +
    + +
    + } + > + {item.name}{item.sub_title===null?"":{ + item.sub_title + }} + } + /> + {item.description} +
    +
    + + ) + + } />
    7MQ?$+9&^UWEMxX8scqHKkBr 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 Date: Tue, 22 Oct 2019 10:11:42 +0800 Subject: [PATCH 021/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/competmodal/PersonModal.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index cb130f5df..51809fb0e 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import {getImageUrl} from 'educoder'; -import {Modal, Input, Spin, Tooltip, Icon, Dropdown, Button} from 'antd'; +import {Modal, Input, Spin, Tooltip, Icon, Dropdown, Button, Empty} from 'antd'; import axios from 'axios'; import competition from '../comcss/competition.css'; import Registrationitem from "../Registrationitem"; @@ -452,7 +452,7 @@ class PersonModal extends Component {
    { cpersondiv1Items.length === 0 ? - + : { persondiv2Items.length === 0 ? - + : Date: Tue, 22 Oct 2019 10:23:35 +0800 Subject: [PATCH 022/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E7=9A=84=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/enroll_lists_controller.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/controllers/admins/enroll_lists_controller.rb b/app/controllers/admins/enroll_lists_controller.rb index ccac6a72d..135ef55ae 100644 --- a/app/controllers/admins/enroll_lists_controller.rb +++ b/app/controllers/admins/enroll_lists_controller.rb @@ -2,8 +2,7 @@ class Admins::EnrollListsController < Admins::BaseController def index @competition = current_competition - params[:sort_by] = params[:sort_by].presence || 'created_at' - params[:sort_direction] = params[:sort_direction].presence || 'desc' + default_sort('created_at', 'desc') enroll_lists = Admins::CompetitionEnrollListQuery.call(@competition, params) @params_page = params[:page] || 1 @@ -13,10 +12,21 @@ class Admins::EnrollListsController < Admins::BaseController respond_to do |format| format.js format.html - format.xls + format.xls{ + filename = "#{@competition.name}竞赛报名列表_#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}.xls" + send_data(shixun_list_xls(shixuns), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) + } end end + def export + default_sort('created_at', 'desc') + @enroll_lists = Admins::CompetitionEnrollListQuery.call(current_competition, params) + + filename = ["#{current_competition.name}竞赛报名列表", Time.zone.now.strftime('%Y-%m-%d%H:%M:%S')].join('-') << '.xlsx' + render xlsx: 'export', filename: filename + end + private def current_competition @_current_competition ||= Competition.find(params[:competition_id]) From 5e562405b8ee00bbf0f5fcb87084c9ed2521748f Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Tue, 22 Oct 2019 10:34:36 +0800 Subject: [PATCH 023/126] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E6=9F=A5=E7=9C=8B=E7=AD=94?= =?UTF-8?q?=E6=A1=88=E5=85=B3=E5=8D=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/myshixun.rb | 5 +++++ app/views/homework_commons/works_list.json.jbuilder | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/models/myshixun.rb b/app/models/myshixun.rb index 006bbf26d..54dcf9011 100644 --- a/app/models/myshixun.rb +++ b/app/models/myshixun.rb @@ -83,6 +83,11 @@ class Myshixun < ApplicationRecord self.games.select{|game| game.status == 2}.size end + # 查看答案的关卡数 + def view_answer_count + self.games.select{|game| game.status == 2 && game.answer_open != 0}.size + end + # 通关时间 def passed_time self.status == 1 ? self.games.select{|game| game.status == 2}.map(&:end_time).max : "--" diff --git a/app/views/homework_commons/works_list.json.jbuilder b/app/views/homework_commons/works_list.json.jbuilder index 839b40bfd..24d1f354a 100644 --- a/app/views/homework_commons/works_list.json.jbuilder +++ b/app/views/homework_commons/works_list.json.jbuilder @@ -41,6 +41,7 @@ elsif @user_course_identity == Course::STUDENT json.efficiency work_score_format(@work.efficiency, true, @score_open) json.eff_score work_score_format(@work.eff_score, true, @score_open) json.complete_count @work.myshixun.try(:passed_count) + json.view_answer_count @work.myshixun.try(:view_answer_count) else json.(@work, :id, :work_status, :update_time, :ultimate_score) @@ -95,6 +96,7 @@ if @homework.homework_type == "practice" json.cost_time work.myshixun.try(:total_spend_time) json.complete_count work.myshixun.try(:passed_count) + json.view_answer_count work.myshixun.try(:view_answer_count) json.user_login work.user.try(:login) json.user_name work.user.try(:real_name) json.student_id work.user.try(:student_id) From 5d881d809010a0afba0a307c596881373d124a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 22 Oct 2019 10:39:44 +0800 Subject: [PATCH 024/126] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AF=84=E9=98=85?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OfficialAcademicTranscript.js | 240 ++++++++++-------- 1 file changed, 134 insertions(+), 106 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js index be99c7035..d115eef45 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js +++ b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js @@ -1,95 +1,97 @@ import React, {Component} from "react"; import {WordsBtn} from 'educoder'; -import {Table,InputNumber,Tooltip} from "antd"; -import {Link,Switch,Route,Redirect} from 'react-router-dom'; +import {Table, InputNumber, Tooltip} from "antd"; +import {Link, Switch, Route, Redirect} from 'react-router-dom'; import axios from 'axios'; + class OfficialAcademicTranscript extends Component { constructor(props) { super(props); this.state = { - loadingstate:true, - datas:undefined, - customsids:undefined + loadingstate: true, + datas: undefined, + customsids: undefined } } componentDidMount() { } - myjumptopic=(e)=>{ + + myjumptopic = (e) => { console.log("获取到值"); console.log(e); this.props.jumptopic(e); } - editgame_scores=(e,id,maxsum)=>{ - let{datas}=this.state; - let newdatas=datas; - let score=e.target.value; + editgame_scores = (e, id, maxsum) => { + let {datas} = this.state; + let newdatas = datas; + let score = e.target.value; - if(score!=null&&score!=undefined&&score!=""){ - if(score<0){ + if (score != null && score != undefined && score != "") { + if (score < 0) { this.props.showNotification("不能小于0"); this.setState({ - customsids:id + customsids: id }) - }else if(score>maxsum){ + } else if (score > maxsum) { this.props.showNotification(`不能大于关卡分值${maxsum}`); this.setState({ - customsids:id + customsids: id }) - }else{ - let work_id=this.props.data.work_id; - let url=`/student_works/${work_id}/adjust_review_score.json` - axios.post(url,{ - type:"report", - score:score, - challenge_id:id - }).then((result)=>{ - if(result.data.status===0){ + } else { + let work_id = this.props.data.work_id; + let url = `/student_works/${work_id}/adjust_review_score.json` + axios.post(url, { + type: "report", + score: score, + challenge_id: id + }).then((result) => { + if (result.data.status === 0) { // this.props.getdatalist() this.props.showNotification(result.data.message); - this.props.setupdalist(result.data.challenge_score,result.data.overall_appraisal,result.data.work_score) - newdatas.map((item,key)=>{ - if(item.challenge_id.id===id){ - item.game_scores.game_score=score + this.props.setupdalist(result.data.challenge_score, result.data.overall_appraisal, result.data.work_score) + newdatas.map((item, key) => { + if (item.challenge_id.id === id) { + item.game_scores.game_score = score } }) this.setState({ - datas:newdatas, - customsids:undefined + datas: newdatas, + customsids: undefined }) - }else{ + } else { this.props.showNotification(result.data.message); } - }).catch((error)=>{ + }).catch((error) => { }) } - }else{ + } else { this.props.showNotification("调分为空将不会修改之前的分数"); } } render() { - let {customsids}=this.state; - let {data}=this.props; + let {customsids} = this.state; + let {data} = this.props; - let datas=[]; - if(data!=undefined){ - data.stage_list===undefined?"":data.stage_list.forEach((item,key)=>{ + let datas = []; + if (data != undefined) { + data.stage_list === undefined ? "" : data.stage_list.forEach((item, key) => { datas.push({ - customs: key+1, - taskname:{name:item.name,complete_status:item.complete_status}, - openingtime:item.open_time, + customs: key + 1, + taskname: {name: item.name, complete_status: item.complete_status}, + openingtime: item.open_time, evaluating: item.evaluate_count, - finishtime:item.finished_time, - elapsedtime:item.time_consuming, - empvalue:{myself:item.myself_experience,experience:item.experience}, - game_scores:{game_score:item.game_score,game_score_full:item.game_score_full}, - challenge_id:{id:item.challenge_id}, + finishtime: item.finished_time, + elapsedtime: item.time_consuming, + empvalue: {myself: item.myself_experience, experience: item.experience}, + game_scores: {game_score: item.game_score, game_score_full: item.game_score_full}, + challenge_id: {id: item.challenge_id}, challenge_comment: item.challenge_comment, challenge_comment_hidden: item.challenge_comment_hidden, // adjustmentminute:asdasd @@ -97,7 +99,7 @@ class OfficialAcademicTranscript extends Component { }) } - let columns=[{ + let columns = [{ title: '关卡', dataIndex: 'customs', key: 'customs', @@ -110,13 +112,17 @@ class OfficialAcademicTranscript extends Component { title: '任务名称', dataIndex: 'taskname', key: 'taskname', - className:"TaskForms", + className: "TaskForms", render: (text, record) => ( - this.myjumptopic("id"+record.customs)} title={record.taskname.name.length>15?record.taskname.name:""} > + this.myjumptopic("id" + record.customs)} + title={record.taskname.name.length > 15 ? record.taskname.name : ""}> {record.taskname.name} - {record.taskname.complete_status===2?延时:record.taskname.complete_status===3?延时:""} + {record.taskname.complete_status === 2 ? + 延时 : record.taskname.complete_status === 3 ? + 延时 : ""} ), @@ -158,79 +164,101 @@ class OfficialAcademicTranscript extends Component { {record.elapsedtime} ), - }, { - title: '经验值', - key: 'empvalue', - dataIndex: 'empvalue', + }, + { + title: '查看答案', + dataIndex: 'view_answer', + key: 'view_answer', + className: "edu-txt-center", + render: (text, record) => { + return ( + {record.view_answer === true ? + 学生在完成任务评测之前查是否看了参考答案 + + }>已查看 : + 学生在完成任务评测之前查是否看了参考答案 + + }>未查看 } + ) + } + }, + { + title: '经验值', + key: 'empvalue', + dataIndex: 'empvalue', - render: (text, record) => ( - - {record.empvalue.myself}/{record.empvalue.experience} + render: (text, record) => ( + + {record.empvalue.myself}/{record.empvalue.experience} - ), - },{ - title: '关卡得分', - key: 'game_scores', - dataIndex: 'game_scores', - render: (text, record) => ( - + ), + }, { + title: '关卡得分', + key: 'game_scores', + dataIndex: 'game_scores', + render: (text, record) => ( + 关卡得分:{record.game_scores.game_score}/关卡满分:{record.game_scores.game_score_full} }> - {record.game_scores.game_score}/{record.game_scores.game_score_full} + {record.game_scores.game_score}/{record.game_scores.game_score_full} - ), - },{ - title: '调分', - key: 'adjustmentminute', - dataIndex: 'adjustmentminute', + ), + }, { + title: '调分', + key: 'adjustmentminute', + dataIndex: 'adjustmentminute', - render: (text, record) => ( - - this.editgame_scores(e,record.challenge_id.id,record.game_scores.game_score_full)} - // min={0} max={record.game_scores.game_score_full} + render: (text, record) => ( + + this.editgame_scores(e, record.challenge_id.id, record.game_scores.game_score_full)} + // min={0} max={record.game_scores.game_score_full} /> - {/*查看*/} + {/*查看*/} - ), - },{ - title: '操作', - key: 'operation', - dataIndex: 'operation', + ), + }, { + title: '操作', + key: 'operation', + dataIndex: 'operation', - render: (text, record) => ( - + render: (text, record) => ( + this.props.showAppraiseModal("child",record.challenge_id.id,record.challenge_comment,record.challenge_comment_hidden)} + onClick={() => this.props.showAppraiseModal("child", record.challenge_id.id, record.challenge_comment, record.challenge_comment_hidden)} >评阅 - ), - }]; - + ), + }]; - if(this.props.isAdmin()===false){ - columns.some((item,key)=> { - if (item.title === "调分") { - columns.splice(key, 1) - return true - } - } - ) - columns.some((item,key)=> { - if (item.title === "操作") { - columns.splice(key, 1) - return true - } - } - ) - } + if (this.props.isAdmin() === false) { + columns.some((item, key) => { + if (item.title === "调分") { + columns.splice(key, 1) + return true + } + } + ) + columns.some((item, key) => { + if (item.title === "操作") { + columns.splice(key, 1) + return true + } + } + ) + } return (
    {/*{data===undefined?"":""}*/} @@ -301,10 +329,10 @@ class OfficialAcademicTranscript extends Component { } `} - {datas===undefined?"":} From 8e82b4c607f60566d2bb29c51314a36ceea0f70a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 22 Oct 2019 10:58:52 +0800 Subject: [PATCH 025/126] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=9E=E8=AE=AD?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/shixunHomework/Listofworksstudentone.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 7f18089ae..9d3d94561 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -987,6 +987,7 @@ class Listofworksstudentone extends Component {
    已通过{record.completion}关,共{this.state.challenges_count}关
    +
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    }> {record.completion+"/"+this.state.challenges_count}
    @@ -1100,6 +1101,7 @@ class Listofworksstudentone extends Component { :
    {record.user_name}{record.user_login}
    +
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    {record.levelscore === "--"?关卡得分:0分 :关卡得分:{record.levelscore}分}
    {record.efficiencyscore === "--"?效率评分:0分 :效率评分:{record.efficiencyscore}分}
    {record.late_penalty === "--"?迟交扣分:0分 :迟交扣分:{record.late_penalty}分}
    @@ -1293,6 +1295,7 @@ class Listofworksstudentone extends Component {
    已通过{record.completion}关,共{this.state.challenges_count}关
    +
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    }> {record.completion+"/"+this.state.challenges_count}
    @@ -1406,6 +1409,7 @@ class Listofworksstudentone extends Component { :
    {record.user_name}{record.user_login}
    +
    完成任务评测之前查看了参考答案:{record.view_answer_count}关
    {record.levelscore === "--"?关卡得分:0分 :关卡得分:{record.levelscore}分}
    {record.efficiencyscore === "--"?效率评分:0分 :效率评分:{record.efficiencyscore}分}
    {record.late_penalty === "--"?迟交扣分:0分 :迟交扣分:{record.late_penalty}分}
    @@ -1795,6 +1799,7 @@ class Listofworksstudentone extends Component { updatetime: timedata === "Invalid date" ? "--" : timedata, completion: teacherdata.complete_count === null ? "0" :teacherdata.complete_count === undefined ? "0": teacherdata.complete_count, levelscore: teacherdata.final_score, + view_answer_count: teacherdata.view_answer_count, efficiencyscore: teacherdata.eff_score, finalscore: teacherdata.work_score, operating: "查看", @@ -1838,6 +1843,7 @@ class Listofworksstudentone extends Component { levelscore: student_works[i].final_score, efficiencyscore: student_works[i].eff_score==="0.0"?"--":student_works[i].eff_score==="0"?"--":student_works[i].eff_score, finalscore:student_works[i].work_score, + view_answer_count: student_works[i].view_answer_count, operating: "查看", late_penalty: student_works[i].late_penalty=== null?"0":student_works[i].late_penalty === undefined?"0":student_works[i].late_penalty, ultimate_score:student_works[i].ultimate_score, @@ -1979,6 +1985,7 @@ class Listofworksstudentone extends Component { completion: teacherdata.complete_count === null ? "0" :teacherdata.complete_count === undefined ? "0": teacherdata.complete_count, levelscore: teacherdata.final_score, efficiencyscore: teacherdata.eff_score, + view_answer_count: teacherdata.view_answer_count, finalscore: teacherdata.work_score, operating: "查看", late_penalty: teacherdata.late_penalty=== null?"0":teacherdata.late_penalty === undefined?"0":teacherdata.late_penalty, @@ -2327,6 +2334,7 @@ class Listofworksstudentone extends Component { levelscore: student_works[i].final_score, efficiencyscore: student_works[i].eff_score==="0.0"?"--":student_works[i].eff_score==="0"?"--":student_works[i].eff_score, finalscore: student_works[i].work_score, + view_answer_count: student_works[i].view_answer_count, operating: "查看", late_penalty: student_works[i].late_penalty=== null?"0":student_works[i].late_penalty === undefined?"0":student_works[i].late_penalty, ultimate_score:student_works[i].ultimate_score, From 464adbfdb82848d68416e06584d8fcf64a71bbe3 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Tue, 22 Oct 2019 11:03:09 +0800 Subject: [PATCH 026/126] admin: user statistic add column --- app/libs/util.rb | 15 +++++++++++++++ app/queries/admins/user_statistic_query.rb | 4 ++++ .../admins/user_statistics/export.xlsx.axlsx | 6 ++++-- .../admins/user_statistics/shared/_list.html.erb | 14 +++++++++----- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/app/libs/util.rb b/app/libs/util.rb index 84f14a6c0..38b5c9af5 100644 --- a/app/libs/util.rb +++ b/app/libs/util.rb @@ -65,4 +65,19 @@ module Util else "#{str[0..2]}***#{str[-3..-1]}" end end + + def display_cost_time(time) + time = time.to_i + return if time.zero? || time < 60 + + day = time / (24 * 60 * 60) + hour = (time % (24 * 60 * 60)) / (60 * 60) + minute = (time % (60 * 60)) / 60 + + str = '' + str += "#{day}天" unless day.zero? + str += "#{hour}小时" unless hour.zero? + str += "#{minute}分" unless minute.zero? + str + end end \ No newline at end of file diff --git a/app/queries/admins/user_statistic_query.rb b/app/queries/admins/user_statistic_query.rb index d1811e5ab..d05656b3e 100644 --- a/app/queries/admins/user_statistic_query.rb +++ b/app/queries/admins/user_statistic_query.rb @@ -50,6 +50,8 @@ class Admins::UserStatisticQuery < ApplicationQuery finish_myshixun_map = finish_myshixun.group(:user_id).count study_challenge_map = study_challenge.group(:user_id).count finish_challenge_map = finish_challenge.group(:user_id).count + evaluate_count_map = study_challenge.group(:user_id).sum(:evaluate_count) + cost_time_map = study_challenge.group(:user_id).sum(:cost_time) users.each do |user| user._extra_data = { @@ -57,6 +59,8 @@ class Admins::UserStatisticQuery < ApplicationQuery finish_shixun_count: finish_myshixun_map.fetch(user.id, 0), study_challenge_count: study_challenge_map.fetch(user.id, 0), finish_challenge_count: finish_challenge_map.fetch(user.id, 0), + evaluate_count: evaluate_count_map.fetch(user.id, 0), + cost_time: cost_time_map.fetch(user.id, 0), } end diff --git a/app/views/admins/user_statistics/export.xlsx.axlsx b/app/views/admins/user_statistics/export.xlsx.axlsx index b66e62a99..1511b6ea3 100644 --- a/app/views/admins/user_statistics/export.xlsx.axlsx +++ b/app/views/admins/user_statistics/export.xlsx.axlsx @@ -1,6 +1,6 @@ wb = xlsx_package.workbook wb.add_worksheet(name: '用户实训情况') do |sheet| - sheet.add_row %w(姓名 单位部门 学习关卡数 完成关卡数 学习实训数 完成实训数) + sheet.add_row %w(姓名 单位部门 学习关卡数 完成关卡数 学习实训数 完成实训数 评测次数 实战时间) @users.each do |user| data = [ @@ -9,7 +9,9 @@ wb.add_worksheet(name: '用户实训情况') do |sheet| user.display_extra_data(:study_challenge_count), user.display_extra_data(:finish_challenge_count), user.display_extra_data(:study_shixun_count), - user.display_extra_data(:finish_shixun_count) + user.display_extra_data(:finish_shixun_count), + user.display_extra_data(:evaluate_count), + Util.display_cost_time(user.display_extra_data(:cost_time)), ] sheet.add_row(data) end diff --git a/app/views/admins/user_statistics/shared/_list.html.erb b/app/views/admins/user_statistics/shared/_list.html.erb index 1e1b14ea3..44076812d 100644 --- a/app/views/admins/user_statistics/shared/_list.html.erb +++ b/app/views/admins/user_statistics/shared/_list.html.erb @@ -2,11 +2,13 @@
    - - - - - + + + + + + + @@ -23,6 +25,8 @@ + + <% end %> <% else %> From e7c52d8eae8753da6d7b99dcf5f41460749d2dfa Mon Sep 17 00:00:00 2001 From: p31729568 Date: Tue, 22 Oct 2019 11:15:14 +0800 Subject: [PATCH 027/126] modify send message --- app/controllers/application_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index df3e9c96e..76ffe23d4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -112,6 +112,8 @@ class ApplicationController < ActionController::Base "验证码发送次数超过频率" when 43 "一天内同一手机号发送次数超过限制" + when 53 + "手机号接收超过频率限制" end end From c26c33990306c562ce1c11023072972480b3d4e2 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Tue, 22 Oct 2019 11:19:57 +0800 Subject: [PATCH 028/126] weapp: fix already login buf --- app/controllers/weapps/code_sessions_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/weapps/code_sessions_controller.rb b/app/controllers/weapps/code_sessions_controller.rb index 687605fc4..a99a048e2 100644 --- a/app/controllers/weapps/code_sessions_controller.rb +++ b/app/controllers/weapps/code_sessions_controller.rb @@ -1,8 +1,10 @@ class Weapps::CodeSessionsController < Weapps::BaseController def create - logged = false return render_error('code不能为空') if params[:code].blank? + reset_session + logged = false + result = Wechat::Weapp.jscode2session(params[:code]) # 能根据 code 拿到 unionid From 6d1b82eb6587ca5895ffc75075d003b013a89da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 22 Oct 2019 11:28:42 +0800 Subject: [PATCH 029/126] =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coursesPublic/OneSelfOrderModal.js | 80 ++++++++++++++----- 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js index 5d4b5c175..87a43ca1b 100644 --- a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js +++ b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js @@ -34,7 +34,8 @@ class OneSelfOrderModal extends Component{ this.state={ group_ids:[], endtime:"", - course_groups:undefined + course_groups:undefined, + Checkboxtype:true } } componentDidMount() { @@ -165,7 +166,7 @@ class OneSelfOrderModal extends Component{ arr.map((item,key)=>{ if(item.id===id){ - item.end_time=dateString + item.end_time=date===null?"":moment(handleDateString(dateString)).format('YYYY-MM-DD HH:mm') } }) @@ -176,11 +177,12 @@ class OneSelfOrderModal extends Component{ } propsSaves=(ds,endtime)=>{ - let {course_groups}=this.state; + let {course_groups}=this.state; if(this.props.typs=="end"){ this.props.Saves() }else{ + if(this.props.typs!="end"){ if(!endtime){ this.setState({ @@ -198,6 +200,7 @@ class OneSelfOrderModal extends Component{ } } + let type=false if(course_groups===undefined||course_groups.length===0){ this.props.Saves(ds,moment(handleDateString(endtime),"YYYY-MM-DD HH:mm").format("YYYY-MM-DD HH:mm")) }else{ @@ -206,7 +209,15 @@ class OneSelfOrderModal extends Component{ course_groups.map((items,key)=>{ if(item===items.id){ if(!items.end_time){ - arr.push(moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm")) + type=true + this.setState({ + endtimetype:true, + endtimetypeid:items.id, + endtimetypevalue:"截止时间不能为空" + }) + return + + // arr.push(moment(moment(handleDateString(this.props.staytime)).add(1, 'week')).format("YYYY-MM-DD HH:mm")) }else{ arr.push(items.end_time) } @@ -214,23 +225,53 @@ class OneSelfOrderModal extends Component{ }) }) + if(type===false){ + this.props.Saves(ds,arr) + } - this.props.Saves(ds,arr) } - } + } + + Checkboxtype=(e)=>{ + let {course_groups}=this.state; + let arr=[]; + if(e.target.checked==true){ + course_groups.map((item,key)=>{ + arr.push(item.id) + }) + }else{ + arr=[] + } + this.setState({ + Checkboxtype:e.target.checked, + group_ids:arr + }) } render(){ let {group_ids,endtime,course_groups}=this.state; - + // console.log(course_groups) // TODO course_groups为空时的处理 return(
    + { this.props.OneSelftype===true? @@ -251,7 +255,7 @@ class HomeworkModal extends Component{
  • + :

    {/**/} {/*发布时间:*/} {/*{this.props.starttime}*/} @@ -366,16 +366,17 @@ class OneSelfOrderModal extends Component{ onChange={this.onChangeTimeend} className={ this.state.endtimetype===true?"noticeTip":""} /> - {this.state.endtimetype===true?

    {this.state.endtimetypevalue}
    :""} + {/*
    (仅支持半点和整点)
    */} :""} +

    } {/* usingCheckBeforePost 为true的时候 全选所有分班 */} + this.messagePerboolbuton()}> this.Tmoconfirm1(bool)}> +
    +
    {this.props.intpermessages}
    +
    this.props.messagePerboolbuton()}>确认 +
    +
    + + ) + } +} + +export default MessagePersonModal; diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 65f73f985..59c64be8f 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -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 === "创建者" ? "" : }

    + >{item.type && item.type === "创建者" ? "" : + this.deletedata(item)}/>}

  • ); var cpersondiv1Items = []; @@ -966,12 +1021,24 @@ class PersonModal extends Component {
    {/*最后一行文字*/} -

    战队导师为{Numberofteammentors}人,现在为{Thecurrentnumber}人

    + { + GetenrollmentAPI && GetenrollmentAPI.teacher_staff ? + ( + Thecurrentnumberbool === true ? +

    战队导师为{GetenrollmentAPI.teacher_staff.minimum}-{GetenrollmentAPI.teacher_staff.maximum}人,现在为{Thecurrentnumber}人

    + + : "" + ) : + "" + } + + +
    Date: Tue, 22 Oct 2019 18:06:05 +0800 Subject: [PATCH 048/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings/index.js | 23 ++++ .../admins/competition_settings.scss | 21 ++++ app/models/competition.rb | 10 +- .../competition_settings/index.html.erb | 105 +++++++++++++++++- ...075223_migrate_competition_mode_default.rb | 6 + ...2100044_add_awards_count_to_competition.rb | 5 + 6 files changed, 163 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/admins/competition_settings/index.js create mode 100644 app/assets/stylesheets/admins/competition_settings.scss create mode 100644 db/migrate/20191022075223_migrate_competition_mode_default.rb create mode 100644 db/migrate/20191022100044_add_awards_count_to_competition.rb diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js new file mode 100644 index 000000000..f02f845c4 --- /dev/null +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -0,0 +1,23 @@ +$(document).on('turbolinks:load', function(){ + if ($('body.admins-competition-settings-index-page').length > 0) { + + var baseOptions = { + autoclose: true, + language: 'zh-CN', + format: 'yyyy-mm-dd', + startDate: '2017-04-01', + endDate: '-1d' + }; + + var defineDateRangeSelect = function(element){ + var options = $.extend({inputs: $(element).find('.start-date, .end-date')}, baseOptions); + $(element).datepicker(options); + + $(element).find('.start-date').datepicker().on('changeDate', function(e){ + $(element).find('.end-date').datepicker('setStartDate', e.date); + }); + }; + + defineDateRangeSelect('.teaching-mode-date'); + } +}); \ No newline at end of file diff --git a/app/assets/stylesheets/admins/competition_settings.scss b/app/assets/stylesheets/admins/competition_settings.scss new file mode 100644 index 000000000..20468aaed --- /dev/null +++ b/app/assets/stylesheets/admins/competition_settings.scss @@ -0,0 +1,21 @@ +.admins-competition-settings-index-page { + .competition-mode-container { + .row { + height: 35px; + } + + .des-row { + height: auto; + } + + .form-control { + font-size: 14px; + } + + //.mode-input { + // input { + // width: 40%; + // } + //} + } +} \ No newline at end of file diff --git a/app/models/competition.rb b/app/models/competition.rb index 8b9d59ed2..708af2556 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -28,9 +28,9 @@ class Competition < ApplicationRecord def mode_type case mode when 1 - "课堂" - when 2 "实训" + when 2 + "课堂" when 3 "教学" when 4 @@ -94,9 +94,9 @@ class Competition < ApplicationRecord GROUP BY competition_stage_id order by competition_stage_id") end - def awards_count - competition_awards.pluck(:num)&.sum > 0 ? competition_awards.pluck(:num)&.sum : 20 - end + # def awards_count + # competition_awards.pluck(:num)&.sum > 0 ? competition_awards.pluck(:num)&.sum : 20 + # end private diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index 4f53cb5d3..4c73609e4 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -10,9 +10,110 @@ 基础设置
    -
    + <%= form_tag(admins_competition_competition_settings_path(unsafe_params), method: :post, class: 'basic-setting-form flex-1', remote: true) do %> +
    +
    +
    + 竞赛模式 +
    +
    + <%= radio_button_tag(:mode, 1, @competition.mode == 1, class: 'form-radio-input') %> + +
    +
    -
    +
    +
    +
    +
    + <%= radio_button_tag(:mode, 2, @competition.mode == 2, class: 'form-radio-input') %> + +
    +
    + <%= text_field_tag(:course_id, @competition.competition_mode_setting&.course_id, autocomplete: 'off', class: 'form-control', placeholder: '课堂id') %> +
    +
    + +
    +
    +
    +
    + <%= radio_button_tag(:mode, 3, @competition.mode == 3, class: 'form-radio-input') %> + +
    +
    + <%= text_field_tag :start_time, @competition.competition_mode_setting&.start_time, autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '统计数据的开始时间' %> + <%= text_field_tag :end_time, @competition.competition_mode_setting&.end_time, autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '统计数据的结束时间' %> +
    +
    + +
    +
    +
    +
    + <%= radio_button_tag(:mode, 4, @competition.mode == 4, class: 'form-radio-input') %> + +
    +
    + +
    +
    + URL +
    +
    + <%= text_field_tag(:identifier, @competition.identifier, autocomplete: 'off', class: 'form-control', placeholder: '请输入url赛事网址') %> +
    +
    + +
    +
    + 主办方 +
    +
    + +
    +
    + +
    +
    + 奖金 +
    +
    +
    +
    ¥
    +
    + <%= number_field_tag(:bonus, @competition.bonus, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入总奖金额') %> +
    +
    + +
    +
    + 获奖人数 +
    +
    + <%= number_field_tag(:bonus, @competition.bonus, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入总奖金额') %> +
    +
    + +
    +
    + 描述 +
    +
    + <%= text_area_tag(:description, @competition.description, class: 'form-control', placeholder: '请输入赛事简介') %> +
    +
    + +
    +
    +
    +
    + <%= javascript_void_link '保存', class: 'btn btn-primary submit-btn' %> +
    +
    +
    + + <% end %>
    diff --git a/db/migrate/20191022075223_migrate_competition_mode_default.rb b/db/migrate/20191022075223_migrate_competition_mode_default.rb new file mode 100644 index 000000000..d61d4aa68 --- /dev/null +++ b/db/migrate/20191022075223_migrate_competition_mode_default.rb @@ -0,0 +1,6 @@ +class MigrateCompetitionModeDefault < ActiveRecord::Migration[5.2] + def change + change_column_default :competitions, :mode, from: 0, to: 1 + Competition.all.update_all(mode: 1) + end +end diff --git a/db/migrate/20191022100044_add_awards_count_to_competition.rb b/db/migrate/20191022100044_add_awards_count_to_competition.rb new file mode 100644 index 000000000..ef6657ae6 --- /dev/null +++ b/db/migrate/20191022100044_add_awards_count_to_competition.rb @@ -0,0 +1,5 @@ +class AddAwardsCountToCompetition < ActiveRecord::Migration[5.2] + def change + add_column :competitions, :awards_count, :integer, default: 0 + end +end From 37eaf5166308aec51d21b4b8065d94b01fd9065e Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Tue, 22 Oct 2019 18:08:41 +0800 Subject: [PATCH 049/126] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 1 + app/views/homework_commons/settings.json.jbuilder | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 168d05299..e9dc58ee9 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -439,6 +439,7 @@ class HomeworkCommonsController < ApplicationController def settings @user = current_user @work = @homework.user_work(current_user.id) if @user_course_identity == Course::STUDENT + @course_groups = @course.course_groups.where(id: @course.charge_group_ids(@current_user)) end def update_settings diff --git a/app/views/homework_commons/settings.json.jbuilder b/app/views/homework_commons/settings.json.jbuilder index 75604de0c..f62dde87e 100644 --- a/app/views/homework_commons/settings.json.jbuilder +++ b/app/views/homework_commons/settings.json.jbuilder @@ -7,7 +7,7 @@ json.partial! "student_btn_check", locals: {identity: @user_course_identity, hom json.(@homework, :unified_setting, :publish_time, :end_time, :late_penalty, :allow_late, :late_time, :work_public, :score_open, :answer_public) -json.group_settings @course.course_groups do |group| +json.group_settings @course_groups do |group| json.group_id group.id json.group_name group.name json.publish_time group_homework_setting(@homework, group.id).try(:publish_time) From 387d0183ddab32527265347d93feea515c88ebc4 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Tue, 22 Oct 2019 18:09:43 +0800 Subject: [PATCH 050/126] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index e9dc58ee9..da2b9eb2d 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -439,7 +439,7 @@ class HomeworkCommonsController < ApplicationController def settings @user = current_user @work = @homework.user_work(current_user.id) if @user_course_identity == Course::STUDENT - @course_groups = @course.course_groups.where(id: @course.charge_group_ids(@current_user)) + @course_groups = @course.course_groups.where(id: @course.charge_group_ids(@user)) end def update_settings From 381ad50c5ae02befe9cd1b4b695c8e783c528c82 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Tue, 22 Oct 2019 18:13:32 +0800 Subject: [PATCH 051/126] admins: remove some order column because too slow --- app/views/admins/user_statistics/shared/_list.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admins/user_statistics/shared/_list.html.erb b/app/views/admins/user_statistics/shared/_list.html.erb index 44076812d..5759d2f38 100644 --- a/app/views/admins/user_statistics/shared/_list.html.erb +++ b/app/views/admins/user_statistics/shared/_list.html.erb @@ -3,8 +3,8 @@
    - - + + From ed5d7e73599aca2333b933594f2419280af8a1bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 22 Oct 2019 18:25:51 +0800 Subject: [PATCH 052/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/competition/Registration.js | 90 ++++++++++--------- .../competition/competmodal/PersonModal.js | 5 +- .../competmodal/PersonalModalteam.js | 30 ++++++- 3 files changed, 74 insertions(+), 51 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index 6576b770d..f43707cb7 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -132,50 +132,52 @@ class Registration extends React.Component { * 加入战队 * */ Jointheteam = () => { - 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 - }) - } - + // 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 + // }) + // } + this.setState({ + tmodalsTypes: true + }) } diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 59c64be8f..48aca0b7a 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -25,9 +25,6 @@ class PersonModal extends Component { super(props); this.state = { addonAfter: 0, - test: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], - test2: [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], - test3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], loading: false, loading1: false, loading2: false, @@ -588,7 +585,7 @@ class PersonModal extends Component { render() { const { - addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2, + addonAfter, Numberofteammentors, Thecurrentnumber, person1, person2, keywordteachers, team_idteachers, teacher_ids, keywordstudents, team_idstudents, student_ids, member_ids, mydatas, booltech, boolstud, GetenrollmentAPI, Thecurrentnumberbool diff --git a/public/react/src/modules/competition/competmodal/PersonalModalteam.js b/public/react/src/modules/competition/competmodal/PersonalModalteam.js index 2d3ef9202..acba9c1b8 100644 --- a/public/react/src/modules/competition/competmodal/PersonalModalteam.js +++ b/public/react/src/modules/competition/competmodal/PersonalModalteam.js @@ -13,10 +13,33 @@ class PersonalModalteam extends Component { constructor(props) { super(props); - this.state = {} + this.state = { + yslzxueshiskmcdm1: "", + } } + Tmoconfirmto = () => { + let url = `/competitions/${"gcc-course-2019"}/competition_teams/join.json`; + axios.post(url, { + invite_code: this.state.yslzxueshiskmcdm1 + }).then((result) => { + if (result) { + if (result.data) { + this.props.Tmoconfirm(true) + } + } + }).catch((error) => { + + }); + } + + studentsonChange = (e) => { + this.setState({ + yslzxueshiskmcdm1: e.target.value, + }); + + } render() { const { addonAfter, test, test3, Numberofteammentors, Thecurrentnumber, person1, person2 @@ -68,7 +91,8 @@ class PersonalModalteam extends Component { ` } - + this.studentsonChange(e)} placeholder="请输入您的邀请码"/> @@ -88,7 +112,7 @@ class PersonalModalteam extends Component {

    this.props.Tmoconfirm(false)}>取消

    -

    this.props.Tmoconfirm(true)}>确定

    +

    this.Tmoconfirmto()}>确定

    From 2f35a8172b79df9b1f54539ca6328cfd99be3a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Tue, 22 Oct 2019 18:26:24 +0800 Subject: [PATCH 053/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competitimain/CompetitionsIndex.js | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js index 1453ba9c9..57b6428de 100644 --- a/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js @@ -62,22 +62,6 @@ class CompetitionsIndex extends Component{ let {datas,page,count}=this.state; - // bonus: 0 - // current_stage: {name: "正赛 第一阶段", start_time: "2019-10-11 00:00:00", end_time: "2019-11-01 00:00:00"} - // description: null - // end_time: "2019-11-01 00:00:00" - // enroll_end_time: "2019-10-31 00:00:00" - // id: 7 - // identifier: "gcc-annotation-2019" - // image: null - // member_count: 540 - // name: "第二届全国绿色计算系列大赛" - // nearly_published: false - // published: true - // single_stage: false - // start_time: "2019-07-01 00:00:00" - // sub_title: "代码标注组" - // visits_count: 10181 return (
    @@ -116,6 +100,12 @@ class CompetitionsIndex extends Component{ .CompetitionsList{ position: relative; } + .competitonimg{ + position: absolute; + right: -5px; + width: 100px; + top: 20px; + } ` } @@ -125,18 +115,18 @@ class CompetitionsIndex extends Component{ size="large" dataSource={datas&&datas} renderItem={(item,key) => ( -
    +
    {item.description===null||item.description===undefined||item.description===""?:""} - + Date: Tue, 22 Oct 2019 18:27:42 +0800 Subject: [PATCH 054/126] =?UTF-8?q?=E6=96=87=E6=A1=88=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shixunHomework/shixunreport/OfficialAcademicTranscript.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js index d869cc130..a156d8d01 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js +++ b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js @@ -176,12 +176,12 @@ class OfficialAcademicTranscript extends Component { {record.view_answer === true ? - 学生在完成任务评测之前查是否看了参考答案 + 学生在完成任务评测之前是否查看了参考答案 }>已查看 : - 学生在完成任务评测之前查是否看了参考答案 + 学生在完成任务评测之前是否查看了参考答案 }>未查看 } From 91fa8283591f4ccc182aa4a8f9248c81d96cdfed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Tue, 22 Oct 2019 23:36:04 +0800 Subject: [PATCH 055/126] jingsai. --- public/react/public/css/demo_index.html | 131 ++++++++- public/react/public/css/iconfont.css | 30 +- public/react/public/css/iconfont.eot | Bin 65728 -> 67852 bytes public/react/public/css/iconfont.js | 2 +- public/react/public/css/iconfont.json | 35 +++ public/react/public/css/iconfont.svg | 29 +- public/react/public/css/iconfont.ttf | Bin 65560 -> 67684 bytes public/react/public/css/iconfont.woff | Bin 42252 -> 43668 bytes public/react/public/css/iconfont.woff2 | Bin 35640 -> 36828 bytes .../src/modules/competition/Registration.js | 72 +++-- .../competition/comcss/competition.css | 13 +- .../competition/competmodal/PersonModal.js | 4 +- .../personal/PersonalCompetititem.js | 263 +++++++++++------- public/stylesheets/css/iconfont.css | 30 +- .../educoder/iconfont/demo_index.html | 131 ++++++++- .../educoder/iconfont/iconfont.css | 30 +- .../educoder/iconfont/iconfont.eot | Bin 65728 -> 67852 bytes .../stylesheets/educoder/iconfont/iconfont.js | 2 +- .../educoder/iconfont/iconfont.json | 35 +++ .../educoder/iconfont/iconfont.svg | 29 +- .../educoder/iconfont/iconfont.ttf | Bin 65560 -> 67684 bytes .../educoder/iconfont/iconfont.woff | Bin 42252 -> 43668 bytes .../educoder/iconfont/iconfont.woff2 | Bin 35640 -> 36828 bytes 23 files changed, 660 insertions(+), 176 deletions(-) diff --git a/public/react/public/css/demo_index.html b/public/react/public/css/demo_index.html index 26baf8ac7..a8b8e705f 100644 --- a/public/react/public/css/demo_index.html +++ b/public/react/public/css/demo_index.html @@ -1079,8 +1079,14 @@
    下降
    &#xe669;
    - -
  • + +
  • + +
    复制
    +
    &#xe800;
    +
  • + +
  • 更多
    &#xe7f9;
    @@ -1337,7 +1343,31 @@
    nenghaofenxi@1x
    &#xe6be;
  • - + +
  • + +
    detection@1x
    +
    &#xe6c1;
    +
  • + +
  • + +
    community@1x
    +
    &#xe6c2;
    +
  • + +
  • + +
    hosting@1x
    +
    &#xe6c3;
    +
  • + +
  • + +
    project@1x
    +
    &#xe6c4;
    +
  • +

    Unicode 引用

    @@ -2962,8 +2992,17 @@
    .icon-xiajiang
    - -
  • + +
  • + +
    + 复制 +
    +
    .icon-fuzhi1 +
    +
  • + +
  • 更多 @@ -3349,7 +3388,43 @@
    .icon-nenghaofenxix
  • - + +
  • + +
    + detection@1x +
    +
    .icon-detectionx +
    +
  • + +
  • + +
    + community@1x +
    +
    .icon-communityx +
    +
  • + +
  • + +
    + hosting@1x +
    +
    .icon-hostingx2 +
    +
  • + +
  • + +
    + project@1x +
    +
    .icon-projectx +
    +
  • +

    font-class 引用

    @@ -4778,8 +4853,16 @@
    下降
    #icon-xiajiang
    - -
  • + +
  • + +
    复制
    +
    #icon-fuzhi1
    +
  • + +
  • @@ -5122,6 +5205,38 @@
    nenghaofenxi@1x
    #icon-nenghaofenxix
  • + +
  • + +
    detection@1x
    +
    #icon-detectionx
    +
  • + +
  • + +
    community@1x
    +
    #icon-communityx
    +
  • + +
  • + +
    hosting@1x
    +
    #icon-hostingx2
    +
  • + +
  • + +
    project@1x
    +
    #icon-projectx
    +
  • diff --git a/public/react/public/css/iconfont.css b/public/react/public/css/iconfont.css index 142b620bd..dd09d3a54 100644 --- a/public/react/public/css/iconfont.css +++ b/public/react/public/css/iconfont.css @@ -1,10 +1,8 @@ @font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1571281327367'); /* IE9 */ - src: url('iconfont.eot?t=1571281327367#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1571281327367') format('woff'), - url('iconfont.ttf?t=1571281327367') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1571281327367#iconfont') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1571756926538'); /* IE9 */ + src: url('iconfont.eot?t=1571756926538#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1571756926538') format('woff'), + url('iconfont.ttf?t=1571756926538') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.svg?t=1571756926538#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { @@ -715,6 +713,10 @@ content: "\e669"; } +.icon-fuzhi1:before { + content: "\e800"; +} + .icon-gengduo1:before { content: "\e7f9"; } @@ -887,3 +889,19 @@ content: "\e6be"; } +.icon-detectionx:before { + content: "\e6c1"; +} + +.icon-communityx:before { + content: "\e6c2"; +} + +.icon-hostingx2:before { + content: "\e6c3"; +} + +.icon-projectx:before { + content: "\e6c4"; +} + diff --git a/public/react/public/css/iconfont.eot b/public/react/public/css/iconfont.eot index d26e316a693aa5464fe9481dde16f2e47acd9203..f0e5fbf011f88859dc790c00b85e5d1155c05e01 100644 GIT binary patch delta 3393 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.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()};document.addEventListener("DOMContentLoaded",l,!1)}else document.attachEvent&&(a=c,i=z.document,t=!1,(o=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(o,50)}h()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,h())});function h(){t||(t=!0,a())}var a,i,t,o}(function(){var c,l;(c=document.createElement("div")).innerHTML=h,h=null,(l=c.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",function(c,l){l.firstChild?function(c,l){l.parentNode.insertBefore(c,l)}(c,l.firstChild):l.appendChild(c)}(l,document.body))})}(window); \ No newline at end of file +!function(o){var c,h='',l=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(l&&!o.__iconfont__svg__cssinject__){o.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()};document.addEventListener("DOMContentLoaded",l,!1)}else document.attachEvent&&(a=c,i=o.document,t=!1,(z=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}h()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,h())});function h(){t||(t=!0,a())}var a,i,t,z}(function(){var c,l;(c=document.createElement("div")).innerHTML=h,h=null,(l=c.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",function(c,l){l.firstChild?function(c,l){l.parentNode.insertBefore(c,l)}(c,l.firstChild):l.appendChild(c)}(l,document.body))})}(window); \ No newline at end of file diff --git a/public/react/public/css/iconfont.json b/public/react/public/css/iconfont.json index 1a21d0726..2cfdd7e3d 100644 --- a/public/react/public/css/iconfont.json +++ b/public/react/public/css/iconfont.json @@ -1230,6 +1230,13 @@ "unicode": "e669", "unicode_decimal": 58985 }, + { + "icon_id": "5255211", + "name": "复制", + "font_class": "fuzhi1", + "unicode": "e800", + "unicode_decimal": 59392 + }, { "icon_id": "5291605", "name": "更多", @@ -1530,6 +1537,34 @@ "font_class": "nenghaofenxix", "unicode": "e6be", "unicode_decimal": 59070 + }, + { + "icon_id": "11408531", + "name": "detection@1x", + "font_class": "detectionx", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "11409495", + "name": "community@1x", + "font_class": "communityx", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "11409771", + "name": "hosting@1x", + "font_class": "hostingx2", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "11410432", + "name": "project@1x", + "font_class": "projectx", + "unicode": "e6c4", + "unicode_decimal": 59076 } ] } diff --git a/public/react/public/css/iconfont.svg b/public/react/public/css/iconfont.svg index e9aa3e2f9..f2f298f58 100644 --- a/public/react/public/css/iconfont.svg +++ b/public/react/public/css/iconfont.svg @@ -544,7 +544,12 @@ Created by iconfont - + + + + @@ -673,8 +678,26 @@ Created by iconfont - + + + + + + + + + + + - + diff --git a/public/react/public/css/iconfont.ttf b/public/react/public/css/iconfont.ttf index bf316a765cb8feb23b77b0130d32c2b8e1f6cbc4..cef43d726d965ff31018407030647ac2df0b02be 100644 GIT binary patch delta 3383 zcmai1dvp_J7Qc5UnaP8^+9cB^?W9TCq#&KxBu$XM5DP`tmcC$7d{9bhLE0j%$EvvL zQe6-0;|PO$z_aJ<7Ql5k zz&}rSceXFj-@5mE@*O86y2)UAiXS0)FQK@*XJBwkY~m2DcNl;jTHV*tKB&|l1jyY_ zwgWxwgKHQMBa)m){zbj*J)Jdep3GeU=eq%zo;7{_1JBPqw;UjS48XKu5k91@yv-c-=9gJ1^KxCDtQO$mLSZ;QQZ4~e)~}U z?f>zQ_Dw(~%z(M@GE~6}5QZq^!z|bbE$}lq4ll_A+#dZiPza-PlrKr`2Q$oppTlB^ zK?G``9_GPpH~j z;VNjOM7a`5zyg=U^WXvze6Sm?g`Kbno`fAlX$6IXgXiE`iXSIC3>l(KFWZcq@oqZ4 zdVMI1#>)JciDC+x3ZeoOP6NCkuQgWUK6$$_XgN+cn+AAk))do&PBp!8}W zzFMpw<9<0|8^#0jnC&(^C`av;I41Yn1ssuoWsl^)LB4;`K)itRs0MgNK4cfJewDPx zH4s~%{7D1x2Feo}h(S>Ptbw=$Wt#?K6_h76z+1B95K>e_%61LJH7HMMAl5kt0%mf;5!|0tFkC0~+8Y%`a)7_=9p#1H~;TCxTDQvuWHbug$5%=jH7r z@0L&H2qkooGieQ!3vec*fwBV5(grGEhiuKQv^)p!)lm)b?8xHW4s8ER!@nAv8t-q) zYkH*Vv*yQ|54Fr|`KWbEtI{^FZTrIGi)UT8>bmhIOPB0ha`=Yg8#gW8+`fL~%|EAO4`PzzQD-L#vUB|nl-5;#%UbXmUdv9Ie*qVV`>efzK`!&Fb-F5jRsfq3E zyKDzT_IH=R!I+IRZ7alFDcRl;G1?AqRXC%XJ?kVD1S{} z58GXtUs|0`Yv!yvV%~q`=TtE}u+6k``iZh?G-?Yoiznp^kJ4hyV!O*_Pd{OIZB@lm zbu%MYm!-dR;e(hfI-O!JKKc^@MrJ=4ztj~dI>)KHqKQC$nyK|6H9 z&9E85lnb7rFCC-GU=njq#95Tp?m0sIgj$2_G@$QrQkiV?=I6JQTr@4Xs$H zh5>_4cOo9*grJCtcvaowi#8$^Lwl-?F7Lo5sE zEc6auQ8@pN+sD4cG7Zlf&^qM{p8H~o%`n=iW0<**@fPz@jyqCXhwOY5^N?Gy25&doj|h(7m`bcu2JL1ZmC zY&pY}vpJSb`oUqN*KphV&&>{2eI?dm{(Svy2DViYgfc;J|JRg>jiGSwy_U_JJ=VOibCaOD#=3C(xa4$fKh?U4Y6SWspGh8v5y?&mPup+549pt%C zElzTt^iMjJOeS+Sfhn1V7*Av;b0v%?qHZS_uAzVhIHy~G(USV9>5_$6ZIKEiX0v4# z1}>X{7%ZF`N351IZ{M$i7J<+~LzO6jhWj!~kYI!!hJlaWZdb88sYXhm|U@JADr@}aOl6u#J!f@-T$%grrh zi;n7w)n5}TC~jyiv8*qeCOB^?(qGY9Z!2#O_Z3?_1q(yP_Pjgo0r!8x45J*h-Gmp@Ip1kX8OT6iR z5&?`uzmnF%9WV^{!Djd^1tu5>Rb#dr1uNo-m>(TZj`wFdWy3CNUl>nT zQ0)+(33nm!EyQY4NIfh;QFD>6%dLJMD2`M)6o^D9OkW6kK+5(mCm#%jlN2kCCogg# z=iHcEHODVi82ZWJ55;+k6>Uy;COz15ALn{AUHL^q#E(1B5%H%_F@gM4k>i}xn(lYk zw;#M! zH)=MInmThmo^XCXPDjaP%Dii0u#D$8KJ%V=;g=@UmnP;$Z|=#W{B7I(k<1tAVd|oS zKQF}$pL^BnOg|9vjrrC!%pC|Ca&o%$JR+~}&dD(Z2j(`cqg$a^9lc+9cm|WWtiW%2 zC3k2;Zyu}XtX#hV(a=wViS@3oo;mD1WD1~+>NhVVV18JADZDAGA2yrGid)c$=u}G# zaz?KI<^cxBM?U#>6is*%PvM6+j{g|>{dXHVo?CJ29o;L-N6Is&=}gNz2Rb_jR`&G{ lnmYP=dT#AqIdJ=+v77!GS=rk)7&WX}+qa4w=wn6KzX5{^9ku`f delta 1320 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 M<=M*0bDFr14XNwGVE_OC diff --git a/public/react/public/css/iconfont.woff2 b/public/react/public/css/iconfont.woff2 index 374af4f2a4c4bbfb1319e2ea903dd6ffac12c479..0bbea822f7e6efa55d9fcff67f4296e7a39eb320 100644 GIT binary patch literal 36828 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 literal 35640 zcmV(;K-<4}Pew8T0RR910E;*P3jhEB0RR{P0E*`T0RR9100000000000000000000 z0000SLIzd3Z3mQ38{Eq^)6JbA&>etBMHbsJ z5)o`11c40mQBgxlEA;IDKPN#A83V+7Hg&m{l?PMF8lFZAL^4+J*j0h1_Hu4mP?Zfk2nAen^^DsM0T z4G=J4J^+U2=hpjw*}xdFAW9e;6&oAT8_~k3k>U^-r7}Xo92Q{#Cg>?B#tAA$0(Yo) zr=H?r6=KB+&;S4Z|JGRZyc>8C|0v)vEcCdMNMbL6{`mRr``qkFOWyAwM2PxH%uaoF zmgK|@+R*;0@J_@c_WZd2UjDyBeTf9%oO_oDWt|=xLtb=;M$eh~@RMKa`l=qcprt2U zWREo8vjm(1X1fOzQg&H(X>g-@$6b0-B38aX2q1^1uqK&*5VnDi&X@l8RqX>vDcJ*% zl0Bo6Of3~8T&AelQ8N8Z_HB~U5Ah40{lf)R>?m<0%94|*E=iw~GObY5+5LO(|8iPY zU8`np_3H})0|LV?2L|c1Xvq$}jyq| z1X8n0kfSvLj&=!gv=jd~XDs_@oKgfx%`8D_ZGfCWN0?+53zGdRmf#5N*7%$ zU6vtt?n@V?OBYpdqREj2njL^;?LnpGS9_iPmr&(Vs=E0K?GQ4vS<3Qqw6?RfcGT(- z8lf;UMKO^SC(tpnBDh}pY63V-zaC@mKcMy-+M=-t5fM(j5Usz*Pi*r))?9`IC0ap= zx_DgAe~hhSa9uBoH#nZMFt)?IsEb1Zg2<~hrNMcN4ip;6g%m&;aXq*%b)=w4Mis0v zvtUy#hoX-Os~XqyffWABue?dcu%KcRB$w1?P{RRifKL+o=;z?*)ivT# zo4c5baWRxWzfnQ|1B}xx{6zU~y>gRjzTH>)hZb zO@pL$my$yE-Lva=I2uwUjq=VcdGj6Yx~tPxO%)TfBL@gbx-=RPdC1{^Ad7NP3j?4& z20|SSf>sy|FTfCJfT8dR!=N;VLp6+m42*;(7zGb88oFT&w8vQZ3&z1SFdq70LX(Kl zACq7JCPN{nz(7oeL6`=EF&&0r1`Nkc7>Zdi60>0x=D=vog)x{1V=*6wVF8T5LKufd zFdmCx5|+ROECmy>G$dddn2cp%3YLSZSRSTf1(=Q%VFp%$nOGTSVHKE-RbdWRgSl88 z=3xz3gf(F?)`Iz18GVo%tIyQE&lA!$lkemvAgx#&J-D;~@f0fEzdwa&Qvd#K{nkQy>|qLNuHPr*S$2 zz!{K+GodTaf(|$vGI0)6#kmj&=RrrD51nuUbjF3y1s6dQE{5{B1X6J+JjP`Z1(!oh zTmijtCG^2nP#sr8Wn2S|a4odPbc1xn#oD1+Oe9&U$x z+yO0cCzQoq@EqI?4RH?~#=TG*_dyNZ4|nkZ#KD7b4G%$GJPeKT2(-ha@D4l%Pr&2w z5T3Y_y8i|Lx_cs=KY<#B~T9kKoI;7 z>8S7f#h-j4Fq^cJrz-SHSVe|(l#z4pdBL(upm<{=0 z%z=X#_n<3`U$6_~A9RB8AGY#xBxvwzKUBf%1Tevy^k9a!BjE_2baMdU9)Pm{w1c71 zd+0KUq|7stqyjY+g{@gRmS`r5_`#5PjWyMcY)Pm^FuO^_YC$SzoP?S}kfaS+9UIg! z%1DSLn*}REYr@!LmBfR8f-=lP_#rXk&@68B#f+k(P%BsnQJ+Ih&NyB6kiDK!o?ws> zr8AO{qF4%6qLeX#5*}-li9-a64203-q0B=lDB!2a;< zRCGC!W3X)2#!m_ur~EjBIVG9j=ZXWdHKwp(HHr#vMd+Jp3n6WG#s@?`d|1ReY!gbs zS(vat)95U{97jlseRoTwk3=V==MEkGA^q!KX7LLp4kiLlUZcs7RjSIm_cnrK`gwy@bo zbP-DP<&^e9QF5heuBc_r6XHY#tCd72N--iu<5gUk6jRM~TxLhYtxF!V-#B-?H%LcO zkm>kULfmWU?&yh=5HdF(T@MKmDbLFqXssSLhhqfw4*kfw0=rs6*tX8-sX``IrS}5d z8g*(t=K?*>3d(WQjm91D>`mg7OamQ}@d+QYTE}%D^Smr4AT(DBm1t1>(YGL9ba3GS z4ZW5v7TmuqLjCOVh5X4~6^=X}jLyk=;7ey#ORyF_I-vH^AW&p zi7izDIU%AtEDArNmNM3;(n7p<;)Q(tR_`g%uA^o^HPehX3|5kg6FG81;JB4m z*tsce-ybnQTWZOpSq|LX;4oq2s!%n~1<>$KHrG6^#}0?cjlziF1-9B&c=2ve{Mn+n z9)22axt6ve!*M+VR9#h3$ zh};8v5XicUBat!1A_;p0(Jc16-ruZZ49PL1iYQVI1>ppgzGg7sbmFdbg84Z)mt-#{ zZh+DC0g}_O?H4^15dthU;U?xiZfx+tm@a)wnbf7t)S!Vk`BtgIDf6m4!?WRU7k8#z z#(bZ69>sjt@wZLx{_nNf#e9!U&rqLn^7ahD)OQ(WQ?>WACJFj7qe8#8VI{!XTqz^> zbWfj#7f!x;<(7Q*2KV3e`0LD@P3jhxebmU~${iOuXwmPT+jK$9sS;2tpgbEgYSXad z$|A8cwkR`Fn}2tDmQInGJ&p{O?0>uq$1w-HVWMLPcTSUTeIn`vH|)t)+rK)!7j~@# z0bvqJ2ypOBKt0mB+)b?W z?FmdgM4YnpG-i+3&m5Rc1xkE)=Lod((<4lEq$}hLH;M{z1|R8Cg9RgAz2S48n+V+fpBTy8GPnkaQ&R zNi?II3hq5g5E*NFAvl8Vgwu^vt1h$FtW7yJe_Y_9FL^GuwBRezapD=E z2qW8G)yH5}z=Acc(x(*wPlDb3-;ZnLw;JbQK3xSl2Y5pyU)^bK=qvo zl}u9GUl-_d zrAu8SV}z4yJ^4?J7)ySkB+Jnbwcjt3izo!Tc3dB($>l|EBBik=$rcg-2!A>IV$c^X zjftnC@r^_p4V#tUgu|HTkW-l{C>qMwd{efxt9WYp%e6hhBsyf;L{#ivNuZ!)a|jT0 zw=|XoqDrP0251|(lhcGK3b_ask_wu@t7chjHnk+VjBvVz8c%6}Ek$<-2Sy4db8xri zDKHlk6VlorwPS;2|72!vS^jGTYsPAk7Y~k${0UL4ttf?oq-t|avZvQuv#Rf1A2O_@}1hp<#7iili90GI*2;d|52!hu61)X-H; z*V5G7hQpwP*QP86q~=RRX|w&87Eqa>+T9C^i)tQ?(D0nb2IP)D05Bg5*-KpmYBkco z*R4J#EQP`3cx{_1>Wrdbl*ud{L1VOA=T;ggAz*|+8R582yksE&Dgt1xa1y2rGu7Soxs<>*bm8t56Cnw)V5S_`jZu9*6#53AYq+Uf+#-fS2E%YmN zG2hKaK=s2bqavu*Oc1_B*Kz0hU_WW>ughe`$-F`ui^>2mZB$O+cywuENoD&+f5$x# z;=b|GsYAlvoT^4*OB7nNKnOnT?p}3qY@zlbc&s(qPwMUS#}8n0d^zJ7rlJo_9N;3N zcy>h-l9e3114@lLZt|8}?rUTa?aU6o{$nLcbPq(wbaOkrqStaK88Jpv&XoWsC$8Mo$B9F{dE;OT%vhvy4k5|$ZhmeUkuk4;3dMuR z!7a2fR11oN zAdh~{=!%`iW_{RjP~7FnU88LjHM5gOfDaLT#lH9WByir%M-7=4e@M%8y;xv0qgqFE$^^Xxk zIF`^y%a&gOSoH!r<{Q}BZ_u>}LQ3c;MtX{FPC&rJ`tH9hB)(v3N`2ecuE5P|=Cl#*1BC%a>gi;z*ch#lsR(MIB>e7judXkS9axWprM4tW? zS^ynroJUSDUK6cxLP`2Y5k%bmF>*i^2am)y^40uF>7W$FmN;6MZDYqH|B@r78*`@n zcy9P;Hny}edP3O!F4Z9YbR9hOE%(pG{_t1N{Cw@yL%r;`54<^_VQ-iJ=!%{724-gW zB%1IkBK7y?@5c);S|sBZO_rpDmIJ8jtD6t<%0|5=_?Zxwjz~A{VZ`s2)l)}P8*U+Fk{_sBz>*Pa!g>)TM&103W@9Yjv zA1oGJBJ-?6;;u@(_pZXOo^Ewk6PwNx-{!PFx6QR(YZt+yN#cKcGdn+MQA|TYfMGIq zO^+@kW345G1cA8Q7L}kxUftn)N{H4kZ@+1sQaTXUC3&4bZ<^KZena2enUJoiv^v&m zI#kj=`|@bEO{<$Ki|z3+!1BL<{jOdGk8gBGMZMr-4p~dN(>uc?Se`r3Jv4(h?p289 zJ;XG!4W9PMt58(RA;k)ohJVzE_)td>aeh94l_ZjT+O-DPo*9V*B_bOj-E5E3#tkH0 zjYknidmEF~V9M3hcoxOV`7vm zuKC8x|sp>vndF7uX6a$5*@deL(#+5rQw3t)`lusrXlqs zM$iN$QG8slAmtPb7RIoRf+>6lLI1Rc6q^9*SU5}pL?j^qDFPcYHJ03M7*Z%zS$c_> zHO};l38Ed?m#$>pNXW$Hr=oaZ&yDlb{iM&>%VoPGzaI<+oW)D#LJw)RT;V8kE(EB0 z=a>{^ep7Sb_-g1+N3=e5#E zIc@!s_7iH0*vfQ61x?*_Vw?fWCb|z{D17a1QRLsv%d)TG*E4S-g0qNG>>yhHd<81> zHT!k)rbTRO)#V)@&Mo&bwuK%%GfBYQ-*}9!^~}ufX6q-G&M4-5JjijoWqT~jLnAwc zCf8f=p7dL&z=pf*5Z2BK5-6w1crC1B=GPsYSPpViH0{<&t<(h?Qi3M1U_3huHf6dg zNd<^2ggElE0TCGnXLi#1h)KptlrpusbIRAhkOUYt z5@`1(+z2Khu5zm_*boik0tvR|Moh<2SDTckn@1oNt zDd2MlP_A+f<7I|`A-5{{!;O`W-a%O+Slsm;pNqx8ERcourx2m|Z z@sy9M{^8eI5uY}!os^$Df=kmj!=5jMk2tR|Z+0xfI6`qyCa>#9*Ex*E8&*%4{=E_r z{ST5QmnPL1j35a)`Oime6{sS-4IUo_4@QU$EsB}|-{n&T`kD9+Jr`t0jQ;dkJ@l=5 zYXe=NErW}V8R=_X=2dD$9XZq`G*R<0>_jz*3>7u!t6OUk?`&#NWb}$h-pPaALDRK+ z2mIhj7H(#>Lc(z&w8ww*3mXfE=K=Z&AVMk6t(7v;2so9=11OdW)ddtJu<~EN)#GW0 zaouB@=*QXqVd4~{V2T0zMgG&$h{A@JJTDso3YCOSTZb4@p@X<#6115k-Leyfe#>@y z0i~*zfwjA*B`X?~lnK>xsj>&mB`F+YI!A(6J55)W0aveCGuN)-GcVCgLErBA1Z+39qB{Xv1RssC1zE3+V9$p1R%bt}!v=36<9dcn|r^ zyUl0i%PP!8PT8STZ4}M;k9su%yhFUf+NZH^vxE>&kkKN@;y@Q{Vd)lx)wOTru5t{_ z*pGPFahM&(K+Y7u!2_lvzw9`r+5vZdrm(<$F|O`%s?3@fIBCMdx$dlv$ z1i6-f-_5NEY5*LCDr#^Dp|rd3pD7dO9&6prx%cV9-xs;h3X#MD_jidtxl67E>xas3 z^{4!!Lb^l^5gtwQ)cliv(N|_Jq*k2*#i_yO;~@E))fjHg#xS1+)BN&F^X1*g@ZZzM z7OCc8PA=MeQXYdeFGoj&`+=(=>a8OM$>pxgwy#w?Kgh#hiGiy}GSx5!CTcYD zcUmz*QC)6rT?-UMbxvKpeAih$lZ$;T8U-D-=$eWa&&ukm5JWNlfOqPBQ)e+ncLMjv zmQ=sH2n1g4Q3=|zPmCJus*s&k2q{>M<}fny+2^C9x}LYK4kD*6Cb&@iH(k|19q9}hXyqqw`p1J29i#tw=;tLVZR7QRi za(rz%rQ0+A;a3qx!`6|05l)kp-oFW9WR`|k#YWZPZN~|*=G#N8`fHU46frIEdufc3 zng!t=ib>T$?x!N*lic&n1g>S~8DfLSih0g9Tq1%+-NM>|R6inIoTDg5ar-EFE|z3U z>fG=~H@H4aZBob64|P5`q2LtS?&QZxmjn0Jwt3j4qAc~u&gh;Q)#)O1~L*PXi2Yap&CQrg&mwtnwA?u7I3zUUpF-78WfbztMbWi`336methEmq6iBpx7I(Nkf=9;^r`0@+OKBoh*P-!Zhs+YCPeo@WqKLC8-T{ zOC3=kXw1Q!1yfqg^v}=bu1+Lz%1~=sN=IcCDK^hIB2;Ccs}18U$8LJ)T6p8gbqtYE z5HeY?K?%#y_BWA9(l{SeYNSUVr^zD%C@VdJ9ZbVhYop`#mKS>>;shdgNZ$jHe@W<{pc1pkAK>knZ^xxH!Ol|DPS+RT3nEIBKg`||Z zsol*5`?GlJui6=I*7pf^oKGj=_7dv11kzn@9X+VBqpwQ-r^a0Hits6~F@Nk552=;+ zSCmG`03S>?7p8|@7KbarnHx{kuP?d0rmGLD-xhnmk`b-5cHLPQNZg)u*XVq6EXYu? zaH^GlWCfAw^0{QeE(^Q~(x297;oY-4`=Kr0Nmnp~O33@?$C7fGAmy zsjuM_$9GN8ip5*%o1_5ZHRDtcHG%p=rgF`~QqT(Nq9EL90xZ$|W(-!wiV1T@HV;tW z5&_iEdUnAfc`Kk{inbW}{88;QCmLGiVk)R*k32#{79>xF?x(rdw;^$=&OASo16a5s*u_I%K=_VG2@CTxw= z@;#kXZ?jGeURgYy8$P_seTVPP$>UEBWnw+QymTlFP-4d^XtZXVvnAN_Mywt8+&C0P zm%GSV3n#F4M4gaGf~95CwrdgTEcHyY?Y`+?x1IwOg?1NLvxT!4sb2(PeR~SjPb{`A z(f0dxqRVGU6~x!b=>pbZMv>m`?7ZP*Um*~K&+>2#zzpJW`$sY5GFSRC4o4ZCxiLs1 z>_eb5X_=Kii>r9)@+B^&E08GGznMM@h?X5GUV<8yy413j7ShV~5!^v#v%|XxwM>x! z1|p=n8*-tNi*mAKWJ6N zHXWu>w56!bH*jU$^AupOr5nVV3J>^ukKQgzJ~hB$>O(2VkfI?qG#Rzda)QbmxiG`B zT>O3cw|z3EVvx5r;jmn>NLeEjd{NEa)qSGQh9;F%TZ2Ulotsp<`R{Dmk#&8xy_xj} z>-i^F)>W@rWr8&eQ$DrD06E4Ko8oID^!*3HGDh0!fR{zj^2dIlb(@$3eeH2(uU=C&F9 zuZ(o4JzukeuBbSXC-R5*PStEdT{x~MIgAQzB!9S=NbhKDP9hud!UAK?Yj zxi9a9rk?tUhw{aPbjsdeWOY4ny3D34rCGnahuf_>I6HC_tn##_GK?o<8i4wS!!n~W zujp_$Q1Spwaq~xC*C*~;Y>jE;#lr;eIrBnVFm$IGk~)g;4tl;3Tmd6)2A*W_0gZLEABP-Xn87wqjQ6>PiHXuU~i^E#n{F_a4 zh>#!ShYML*pJdi^zi2Xu13?3{o>A-x_mLidLNL+4dBRTL7jj0_Dz^hQr7I8f;hb`} zBPe)mT@UilA`Q2l>7^Un{S~bU)2o}Kl2Mj^jZ74b)wM}?X`hky;5X+F+&kQL$>$qO z%9oraH0AbN`fR+yp3Hh@MAS$6Lfea7)qlvL2p_tzaK8dH-0tmDrW)xE*h5Xuo;KUA zcRT^}dvK(+%cf&*>8?^7#v~OGPc6&#KLA1XtBUS?Up1S<-p2o>x{wjTA-_+b$mMG+ zG7mJ*QB%EhcuZ*lR&dMpAML`21VcPtI?UOap#&N^I`VU#<5EL?MgtMP`?PCMBy_#n zY-K}LG_(ElUcJat>ts=+pcK;U zazRND1drTFIi^2^1qsr-qfF(>u61x+t%8+xL2JY z*!fy}W5E&|&d1?@eJu!$JhUM|x_Fkd@S1Rg+aFgK3Z)(GZI(7$S6RkA2lSt*+Ucr&lj zMp~qIS9Go?4U;Vmm)KCyrzosl6|QoH5K}TyCQU8{$i(SpY`WmCwTBt(8|2jm#1So6 z90aUhINSF-vZm=}PEn_qq(pt^SMvrHhU|P6@TmzQ2EZf29??1@ zv_gU97(FHy-W-!E#jk%B0=bi5FeIXqgafz|olx!77p0@uOrwy-KGBpmT#fns)rhN% zRgOp%E^Kt(98E|u8469`hhQKfZtCm_yVxDq|5l%r=zp{|2;pDx3#;UYRbfl?>V}HX zQ<{+G!=>)pv|JMYwl>1G=Leq6){jSmR{o_GjlBv|Jn&Xt^N@f6_&>v(#^+{LnZsLCw=@#91@iaR> zw>)?49t9ZxVfR1tjrnU2?%e#~=IiHQ&(S{4sI?&te&U(hpT>Mf_1golgSla}|H$Qv z1{UC|q0DHBbmOkf4)WZ1y(*d6Cpj$3pT@z(eRKf}hQdy&k&JvM1gDUn5s*qkpVyO) zqdQ+kxns&Xiq8yEuLGEdJMJTGIE0Jtp+XiWO-nxavjm#$A{+ppX$=cZ;rEKLjC5q$ z00RwjZ(MwHppcqDdUC-jmx?aft#~i(zwmNzT49Yf>y_iLqef`x(V6hi+h6K#w0TRj z_Nz;Gy%NpnyuE3@eCjRSPHfY>Jo;(dt9^P_oBH1^m~LSx6PPuW2x5vbkA=A@58i?~ zj0Ne$3Oo64d*Y&8Ej>u=3L_3A~JYtYTUYv-<1~fUgto^|%m=6CU?J z5Yez%HT7sZApj~)dh}#B#HP$@RP@PzLIdxd2@J|-*B^b368GA`5kfr5J@`c{`(iZV z&>{OiLBTa~yKB>4TSbl3Rl!X)H8Z}Dt#Vjoz+nBIZ;15?iPFA&moG!!?^k{yv$A!9 zbq?Ff6B}Jk{iB2HPQZPt1ZweC3R+i17>EU-f~G7bIL;X$D>M~3lp;OFx2kV?~*#Ye!Ov{rTRmncbt#t z36StOnkp>TEqh!9093HRl_X^u)F;NiFbOg~?+IzIW)*s0i&My;R)0`9UYg2;)C0oH8bv%0h zLVh(E3vz3Hr7lPim}^b*Li4W;OYNG<3sU?bhfE%5R9i7H=>2)c&koBK%ohtoL?k|% z1>EH8 zv1LgD0?hYJV@~N6_w*OZI(jK~~x@Fx{<;8!lnaWKuS4mU(w$@Rs@v z-kOY=3nahmv%>S{`yQm#W2&fnK0V~Z+hytVeuA?OUdiYd!Gm2$eoE}+BaASSzNTe8 zE~JG&dH@ls4!vgRhNT|s+;}&cwYkB(z3#27Oc0x}W2*Z{CaX)?>7H%RN=?tWbW|5>@Nl8Yk3&|%tHk^&i}>Es$FV$K-3fV*Gxos(lp0%MqWHfJ}L;7WA!=(a1Hnr#nf z(f0Sn5~gS;-+|&l085&Z8#fz}0$d_&Z1*&{XP5kqUL{}AF@%R*u!#Mb8y|D^!OmV< z$^{Y=P6Chl35v<|J|>JXDHbi|G}6Ahz$?nyUd^v4vL@1lT1>pr7)<@?F%-mh6Zi`y zv?c0#4y#IM!CNGX(sP-jaSM9mO`6RX5w5g#+0a3--_^NqrG@EP5NkTOrbO~b0?xP{Y=?rBm=b2SsGsek5^T3{EYhYkc~+VY(hKf9*CEg z4_)Dm>ik|*@=Yj>#S0kidHa~IbMo)jn&MQG4v%6~)4IT%WuYfpl zn;i+e#=01_+F>8!dXhWm!#ko13KJp(`{GWp+P1Vxokw-_;#D`An!)|+{So#}aTLI5 z#3K%O)6BI5o`ozpbY`cWC@Q2ijSmtyV#}nc3#(Qd6d3@Io&T|-l*m0wmn3$Pk}{FR zuT^KV?V5oYh6U}SI#j^?OPv+fef5((PLo zWO14-jGwi8e&AuhF?#d6a6>S>b=`3jc(&DMRm9+i(#Z|_ypEj-jlO@U>+SG^%P>6l zxz{T_I(9XYRru}{Y#xxq5!z379D-1SVmhno4KHI#J4+G2ojSOjlmCQavhiPwANyNoclX|rD=yPePz!*^1-~)m_ByNTx+Y%X?5XDBQ?5P zNB1tSbD3ox>+S|xO(uoR($*dlR^(GA9O9!vOcHTXwQun(P`)P27E*Aq69+b$ZEA#p z;`l_}^U7-`Lxz_&G;vNlYz)g$qeWuUL>%O`wlbl2dpAw(9!;*~;!Z&TczRo*ZcM2< zd!Px~dO5qarL}wogsr)Qii~LOO4>Awtyqu?+r)D!YYD*Ps%l)cQSKe|4G&k86COc= z!f!Jk1wTlne!#VB^y?h%d4>KkS_PK`lR;G>rlA|J)X^Y|x^5BoanP^7s4}`#N+hYp zj)^VO4PgXbGr*1|CstLN!{sa}33?#rGcmIF{FQaibtBv;DX6#8;HR_}bGncF%JixT z`vu>#mtrfyBV4Q zpgOj`GTK_5JQMvqih!bx;)HPKuQ@|O5F6T20aQ667@15*#9~^4ALKIe534v3V(t|_ zI1}^UlZ9+Z$&WhesV2d@GC8j2d~v5Jea~@}BNC;6SUWQ!8{IVa_eDEL6^v3h+eH@x1bIroN?ZnPzELD&#EoNH2s;r>Z zc-d(>EC+$jMNvd%3Xk3x&D;3xx8gge!1Gf?|MMg0cdTrv1qicx0EH$oq#&oVl+H@* zBA;61Q)9ULlm%l|L_p_tT4M`8(Ly@4+H*svtIp*YDax0%#4hB2(uym3XX~1kW+%s8-IfaR-FkqF7-hJ39 zpFU{*`GgUULO)P6s5MYLVg2Rg>tRn`hK3`W;AHn@T}ox;7nAEUpaHR2y87}{lEAbQ zMw`8AO3M!({Gl0v`G&EfOa=~m@wHc;E*gfPw9lMfFU>GuAFh8uP_Ga$LPqsB=ST#> z;{Ex=7XcfE!{h_N+CtGUq0+9}Z7hjSvQyj9?|a1nPnmL5^V^(ej2{&zvJ?RS8UPRJ zf)9p`etlrWbIo0M^s{m+o*CfWz+e&maMbL>hgH-FOA|m^W>gr%2P4cMz}Ctw(&BDt zGWyMaAkzKQwpLSHswH8cVzxlhBG3EX;JO}HEX$g0f2%5E|Mth1!(Z|K?u}2cMsxtp z?Q<9GV=B^WT4%5K(srWUQEB}~_4L}u4k?Nx2_6Xf{)BBoq+zm`t#az=1G)Uli`qgL zOi@t|azh2z45q=A6(}_)Y`Fe)9WXtDGHHqlXOa^e`=~rpd$~RjBx0GGv3J!n5^gXL z_U=M5g}7*p z=XS1wA(X;1tvx{zPs4rVyt{wQo9O&QlkVqVx!PO$Ko6#Vc0W8FxT11siONzhATTMc z#u>YBrzwB7R|8;XZ@zX&D2lz$R$XIZpF^tVjDGS>!PIpw8Y=l(ja1WvY!4e;>(6@U zn>EQKb(3Jv(@7~@^8QV~oIyT&o_|z}+U-BkFxxvYEdFuieXgY5y0 zq9IbooLa=rDF9s?U0Jwp$)V*w(r(bA^Ea5tmKF_ApZJXu&2OJvH7NKVBgCW%kqf;5`ZoM%-` zDX(vdIrC?)X(wA07bj`qNZSy`KYVa?k@?qoyz<8b>DpnQ)59iHj$!sNxz<)$${~Is z=@Kgx11-rDC*3~sy1llVif-*YtBv75JgL!_-S7{AdM5;k#=b_y&Z$6 zsD$fZrdC4Sr&VsX)@yYdv=x^;LjU36OWWUfpQ?j!v1F{#$URM{tjAay z|7CF#8j4pRz&U~o7`tMImkncbCB6e&12~^O!9TJ4++zGI3nNSz73(6(#n&voy7E?>wM4qW;HrEeWM8uwm#RAi5M-HLqDEO(Z(*sljOI{=bRX~ zN~k6ayN?wHjwawZ?_ZmKQE@zd;E#zpWyWTls2t9Tn%9?{oR9-MIg;5JELeC|sj@Q8?UqiG8AMUHGoOWtzv0gOP4XHepCR!{^JJO{jr`w^pbUs_jLaVn7}nVG<+9#kgcGFf7S7n1;VE$k zz*)k`!Yq?(!0vDb$2eTM3zkC(WlItuzNkx zKFyZGnm}$2*n{uvO$9!XMAsvB6ZgPcW3BMTJr9@Ky#^lZCp$-irN{UDToJbsOSn&X z`m}St+C6uYr|z2UnKqavJgYMZ4pt0{pLI5K3D!dt8;ULYtPS_u4W3Oqnd($;vv7Gutyu88 zZF52en0MSka=FOl?=*np_$s_M=weq*3p_jwJKxd)CV3<9U749^5hrM95X4&~j;T@* z*U%UzNVGT`@o^gkagEUkZCr$TsCj9rStvJrA2(vY>(bItvk30Ka4rIb=Ogx+hnoYs z9L$?LCV>%&ItG{`0e8houfxe00zdgOC?yq=JE}D@h+mfrIAUwwehXbaf1se1i0O%e zOZ;GBM!W2_R#9MdFQppFdMjHZf!71q_FrgLFw`hX^Oh+iL%Q|_`!CZw$9x}M*t)f? z_&??1M?pD!AzvyfU+bX!hwp`pu@1J7FA0x=Q=v7vCJ8SW0EU?b6{=}JrZvfA{T}Qc z>z^{&ynHEIoc&v0rgWXGLZ)qSG`#c`?|w9rV^WR(lCKrWQQejtc6fMueHd(`@CZG9 zb8fMC5y>1jC_DZqOF))qN!HDY)}&V3M%VGeX}kLOZvuTTFP4;p9j|~t?g_thPI%;W}|0=nxT06RUU7J?_W<$j}78Xkv z=}4^Gn^pV>o=Tg-DaLuny!v~UOV1lZDOe=G?!{Weq=r}$ZW?C(;{dJYkc>q$t_j^C zR8|p^4rA(KRGpR}1bEDNLLeBjR!CqZB_Wd$odJDdlt9_}4vZ`_A_cgBB}ke!7Q{gl zWz>^NAQ?_5-!YsJdpZ&jjNIT`0m|FZRrn%(C4tH&uK|U+dZ=+R9oYBmkbn^oESCp^5n0H-ey3)qyj8N*l>-CE13^3pT&1m4 zvu2r<)zvgQ2brJOxd=MC|G+FaGD%ySmHHnH@ZZ<3OazZ(61wtjOLDC@*VJg4|1q`S zw)@|>8_{7BB)T^bZc+Xd43B@JGHoqtB%Lf<1c07S;NSQgU=>!})ti7Dx)g(;m!N*OHf=DQc_FW`c)Kwf%-0bFMQ zgbk@*pMpm2!1PSv_aYFN*B;wb>8LE92>CSF^9`3}!%U3fp@K4Z25)J*_(+LteXYSI zc&xyc4VNMjfL8wHi*I)IlCww%Nk$OVJI*;|NN{+u?+8sm@i*qu>9k*4E4ac-yxQrtmi*On=CQ4z#D(Lh|CQ^AZa7f!0t-k^ixWv9e5vgFoY)TwbuBENO-DLcJopXa1 zT)7uv6-qZj;jFkWJ3~n>H|m4O8mmk<9!-`P{Z_C(&V)^%bs2j--}*NVn_p< z1l~@yoEePzVx3}T$&fK5weLh)O}NMAq3TC9GhF;fc@@Jw>_Xy>wa4+nabNhE9KrTG zyOinSb{H+RRCj-KHu&tH8q1I7)zT3e9hwUl<+l>gTS{WEg!}vmCO{g2XuMDk)-r_uG%) zWKtIe^5LF|@W-mdZDF)vV4d)j?(Lexi3gS+1K0L<>jcLMH0J8zGiMNb#5&LE;jp0!mWLI>Yu3O8a3SJ_Fyd?1q>bKc)e0f>WARr9 z0Qb_@hCR*_$ZSqTMMzW}_S_h9jJmiH*HmJ5F7HpE26XZD9=lORJsrR_(`63B-bQ%1 z6e3{#TWPvMq8!S5fS>6@cnGJQ4Nc!%nvxzQWw%g?RFWewI(Sye5yp$B_U4+cGPf&2 zBDGbvu{B11w0ovb7Q3dDWr*w zpusP%M%h*f1n}aiuP_WwK}4{=6gu48jP?LvQvh|J;c1|nD*;t7dj!%74+7q6E1uB- z_X|ifd5$-;+VOturXHE^golDpQjV5bsXE1Qd>nUUx-H>ddIo8+)_KpZa~a2`xcf$z`U zoS7w?(c%_OTme!kxB^Kf&=s1*d&>k8Dc*|~PrE{m2UjTZb5}q-6}S)G_%O^q_1YH| z+(QV#e>_KWb^P;oJ%t-4p`oIYG>M_*!Nw4;#6vU7qDhoNzmt12o5YENre<(+br;Mi+n!7}NRJfiwPgCr|3C(1tK!XOAs+5h;`tViqrk z>Pu;H;t(_M)gqG62J9g2G=wYBq5mrgbuVtlqGQl6Z{q6|57QX=c9FIV7e?70yCRkG zUi|vdrgTllU!R`fT|m4meR3}A@4CPK%9@*`AFHdIzu77gWqO80H%joC$rRI+xS6Y= zvG%-ko&PZ7Spx%qC;Z)>LstB`$o-3!UW&cjE|Ju?)L{(UXE#oH25}jYgsHP2wS9P+ z(ZwV)yBN?j`s%_XMG6l97$EoDTm$=xu`klKVeXt7Vn9%&$8c$@lN=xd&DF6SI`L}l zrGJOJugU9**8OwsX!l60?rq_4_rI6c7U^O~_Di_-&$^;IIS};}##uw?8Z=~$&tvs9 zj*>vGAtzAKYusHFKfdyqT)r8%SuPOZ+2TuTey*T#vx}@AU*E~bvE|VxFY|PF7woIu zN5Thz8Zs{D(9(tg=%4l4IQ?K%AfBMzuyi>U%y$Fic+-LXc_fY!cUvGO@ZJH_c=DGx zsKJP5qnLRCu3*_Ml$j~=ALK1Fvs(dr5hUytGgHUaYDWBq7A>n~y{>{fNzbh>t*=x= zYm@vsu-9-9RlgnQ+rfUxKlt$F`j%Y!eMnue)s?EDQ`Cy}x)ucR>|4N%KHv^dya+4s_tw0mqITN{Q&{jWXM7v2i3;7fdi5fF^F~A@r>`jrL z(UK86;tOyQj_ExiXTVmh+uA<&b=Z~AnYB3m7~=hVaSW(@uOKGDkp>3Ah=g;;etRAs z^;;mLuK%C{?j8LW5$*WbigSo~R&b<2NAnU}D>dQ0gHaT`2409R9Nyur)V6)+nv&s2 z7Axpf`oZTB(FX(Rx`B*uBWG-nh#E|2(6YqNI*)UGfl)NP7S6EVnLOlJ=h+p1T-LSH z^YwBQuPyz{fG}`%*Q&7p>r6dYb}gL)gMVz>cIHf^gnw+$IG2l{vpi>BP!QdjE_$d3 z65xMEGA0qvjrltW=I68{`2+ZTd^rDbJEk4WKZy^(1{+=4c6T-Q*_NKV+4ZgHRk%mH zzIVOaP+cg8(vu)Lkf)}H*rVyGP^0uDAin<0?<|zMs5%C!6e+n%Tj#9b+!@3v#F@Do z>JFcUe57NQW8PBeY{Wt>b~}#v_*wg%_k8?x5Q&Q8PM`CSQut&InNQ(GYDzN&M=c#GA7O-Rm=b$kf2V* zVQ}|P4ULFyvkn=KChhUr6M-LI#@CBWcBY9^4!t9x2Ob#$A4rEh_2Z|zp2j0L^jkkI z0MS}pD1{~P;zGF9&262Br!c^sP6^p0DIV`^L2B^WCgiZu!ipB^1$AC1^Yn0CJMjtw z^^H|Ak1u%Pm~tG4oRv^d?z8ABIzI)TN!XhYyrxTLkz}7^{9``k7*G1^1MJPhTimJh zMf|SLYZO#$yte{gA-Mvd^Y!_?#=MG^vfr|DK4%x>*MuJ($T(+we|r8gQm|L04`Pz^ z#R~cF8$#h{tM!&+rp%&TAG%jna8p@CTB9k+8O&NKBVs)8Ytn)1;jpT*{3H0ecnX4& zKxHhE@ly?{)CB22frRKLd9I_n+A;Uh6D*-4Y*VLTKjdeA5?E8!T$k(oxp}7!U`={7 zX__*LoZF!MRe9&H18X8rx~{)WLd>bD@M$O>Z;kR{0h>C(CHq76egE>EhII75&Cc`V zXpxcOiPUG`r}NCePZD(+HyNXO1xI}2wcP`a^Z%Gqv$?m{N#ma6O`*5Yo9s3^>}`2n zD-~E?PDWN*+#$;@ZQmo>>-3Sbco|m)%&qqlcHIK$D28I}nwKgw%{-N>kUTP8*;mJu zgmbmZP<#nGyLh|GB&SSj6A-t{!D1IB)T%D9wZ+<|KR$5Kss?R1qg^n6 z(*4O0tH|5LX;&7!KG>nE;oZ%`sJ^DvUW7)ku3e$b0430o~}}kzwK} zcDw?+ANK<{LO-edp%L@~+7(1S&>*2c!+yt)t1$|U9Nv%R0kZ^`-W=1E`IMkGP zLhvVvM;xOWC!XyS+__B8DcdrXs1a*x2}M zZE6{o8jHkne+7e?4O~BZ3^6NYu>|wnQ&hk|4!`BHm`1&2)AekP-~e_U+K+SXbDN20 z0WJMFtrA?Osv%Y@AHecs^cLDBdLBgWm41gYxDi|&HczM6INS(0z<3NkLXV-3&L1Ct zq~#llMny)e3XPmco#*>0>P?{K7iu&03utz3{?ZJb15R7MtOStD@8KnTp4^072vCSB zBQ&ocl$ilSNTJEU9YPIu8FM-Z2lo*m8^}3Wn&KHMCE~K1+jguLwdQRYqYB!75b<7)zFSKsJIWbouWm;QQlgpkV!? z^*{n0dveX~+7q`Yzzsw&_azS~gc0UQ4+S@lFEl8`jpF0=@^gt#?8z~8;{=YqHi;v; z5#vzhxKaIU&A)`L23v=|x$94|M)29;u9|zd9DI|-9OnwRg zlYDReS+xBi9iQ_eN3zB^Hl!hxd&Kj3qoIPC8_!rl)vY)24$&+ut;Q~7<|n}qNGL6` zF@zj|p(H#h^}#!-ELYnRDtw*(x`Fh0WjLuj06nEvx^1C4JD$V>g6I}T4RgPgb5P+^o#`n_^z?lzEyw2ew;F(~Jev~n) zCq#zeCzum@2S?bD8*W{RcDC5bLL(6%YIgw2-+AosOJfrDJ|DB)xl79~(EU1=YT_Nu z&hGcg2tpz;Lh$I%`p2OBbMV%fRfL+5KBjXP-G8kkYfFB9p=7%>sa~$UmlhA8nS~i` z(yHi&t{fPG(JWqXF5B{KupSWAKNgloapAkD!Ox^s8EwvW&KojalIo?B?KSp~R%b`E zFR%+vdFM#Ds~*><2O@zG#e+VK`A`zR|KsSt)&dPvujJ=np@;MlYGPJ}Sejw3P$yR4 z=<$5qm4=H{Ar=YzVrF?$J?oem++5e~CQ99Y=p?T9q(zx5Ief@lQ@YjpicW&gPh5@N zjn0$QUlnfC=mx!$BbLZV1iiSEV82ee-6YpF!+agHXNo)YkRUohpb*cHZsl38z+u$;Z2Nj~yDrF>u(QPH`^Hjl9};0;5J^c8!`U95KB?~^S3#Lu z1G%2m4MzD@r{*&28CxJ@;)W8Rmm4x8yeWkKA*YGA2QIt!$-CG%GxNCE2b4DpTtPpL zHr@Uh_h2ynoUV22T5SrqJRDGEbaDD`-|l~~wa^CqqLq-RXJ)3!^)Y?sesO^`{NMrB z)5WPJP6+R1Af};&lQ7{%6Yb~`!VzJX7hJTdeF;`B>sZP~lZ!TG8$5-T(Zfn9sD@4Bh8Sy1Ut}%<63p2Ag=AW*N4%$e zVj?~5*=h3sj9+Bjea3VRD<%t&moS)1iGL{s0tJKR{l^AICP11(NWsbLAt=f`voY=f18%hR^3u&P}6DP3?g1iV40n>_Z*g_^028C*}5%@hRut=&Uox?-RnL>E#33q**!Dh zmrjQY305j&2!$R}C>r_)gPd%c@?2sm`V{RY5tDoF6!GOL%mK=y$CSMi1ZDNP(|Teb z`sr12FS_r_(>`(*sz1^*q<9hV7T1c~$t`KsoNX>irb&okSZ26MVk@VY$9Tm2D!ys7 zaBG%DLP^X=8DC!t(OZ#j3mLb3%_Ko(Pi=!&MJA_Vwvpo8dp(b~hwbxO)aJC-Db}Qh zz8Ce1o76)5EH^p9D>0NBUWGqo+M7x|kAXdXCRq~W)%KIeaCozs$ZFCPO=^bJ- zm&sTimIc;Va7f99Mo+scAJ3$~6|vZ*7Y%ob)|XoV6 zwjh@q5=s~)6lScNq3)4DWJ;L3SHUfV3FyF01J43?N|-sK$K=0KSg{!d$~Nx2k1Pb* zojWRFr~>ZZ0c#Oi+aCc*lQau{=28&q+>@MteS39h7x#an$x2yaQex-&_5i^bdSXo8 zFTXZ(mrD11o9yKrg3qrvwEzCR5s`24%d_G-!zl#xTSc5eKUvk1SIKK`$>_N?Yt`D= z{>AXO8%o#6lfES!3#;JJ)z=lDg0qbs@O58~p{}8`{FRC@zP6QKSfVyBV#}$0JI`NQ zDVcNWv@Nyx%fEQS^Q>>i8K#sM+l>~hb;udfW9MW z_XDL_%F@d_B*WE~T(2I0`T0AOpO@bVZ(0kBt)=4^900?8(i;0l%)V2;tm2xGvpqfuJ!%clfVoFW)}AeR@S2Ly)#>@(XNg zjCy>X2B!(WX~||0MFUsASjSf!xef`H_mj8rxZ7_d7`L}`dE0I?5avTee?5Ek>*np# zO=%2fQO@^?FvX!iT-U48hre1q;Ra-(yqGsB?;7=(lhANz^3Lb|6cMYRw&(_ch0ha*8J+1$&E0rQ*ly z#MG_!23nW<22Q5kUSg6LDcHqXSz)*gs}fV+7%}2OujxvBsa*n3MWGk9ndYnar&fr# z%Kf(c_s1TvJpk!xEp)FdJ$0FWS@qQcfR)WJDg&$JWTA=f&kd|p_Jo)^e6!}F<-Ixm zOGP*|Sqla_NVP5y1n;z(n~GF^{FYzl9xwxd$X&dUTdS!B-q)u*i35X)PK1H6=VJqe z>w(T}Xy4$QhBGiFR1layElyY&n#(xkJ)`onO{)m|u(Z!F5&uz*xrWqeAE$$qZ+ghd zJpC`OlSD2uTV^X#jyX8HrFw`mFH(%7H(BtyeYcn!6|JzlmuKU9#xDIJUzb3nuqi~a zSlF>!uc)o}&hQEXnh1;`5>!GgcV#ZDEHjg$xk!iz83Wx9D^2$sf7fo(9_cn{E40TS zm$q&B((0E=0Ex$;P5F=E-vAj% zmiAQPJeZG0qbOSnqLhM*$Q{+m?1jp;g$wPXn1~RHOm!psDEsIiH#38SQK;Y$l_G!! z33fd-C`O4~MJTcH(IwESN|%E1!_?fq1e8XBnDi|vLWn5w&TwJdQBL;J_EA5ssY*&@ zDoa*fPY-sK6L&WVkUK*q`!W)9toW!uP&|d1ibu_S>-@y*eQI9vCyJ*sQ@|3%qV(nI zxd6HY>rWQ%Z3wy*{b!^V<_b$iXRi0iA6PWQQl%zgzZni`2yWmBghp{?cellA%a~O$ zK0jTsdAd?zLFbhV4m%$l{*-l{N^(xJ;0L`U_ikI+Zz4D8UfE{3$}(nkz{-_ro850~ z<0n}prV#LDF6v#ov}beY&VKMHe{8_SWMGW*e9~oKf9F++b)adkNstw!EG||;p5rCi z`z)rPb5gV=Sf97B#z<;mWgJl5)85DHW=+@;w-dhvQg>+{!-J7WgQ=Mw%!W0>{k8{$ zlC8E|BtWbi+ELA#-$Cde1Uul~k3kwt8|*NcMD0LLApM@f-+%f~tJtBKKp7L>7)%q4 z&F&c(H12teyiYJz+%o__V!p&eB_&XdwMpQ93>2P|6Aqc|TcUB37C@cN?3&N4YMxD)JH&3ip9s7t|2KbNpbWj0vbxXKP>h1u(I4*$?xzK{# zVZcP#7@-iTC>#O}V{PQuG=^0W%>|OnMKn?K1}VfVE#<-r1%{+kWlFiy4b37zjgNK4P2FLq1pmjnd{1#29ZI6x2(1rWX>9EE1z5dFW`uOFoFDQn3h%3yox@BN_mA#ReE zfXBzvC+J?lsbQ>Ih|_Y>IDs~~23BNXpJm<0Z8MIDaA?H6 zVdRCc$a5wk6Q@HJ5M|-NBh7?niKmb~%&r?f++M#M-9=f^yDKtZEgE}w{*i+Hmq#p} z9_#Tqn*HJYgRw=gGAni`5Z@Ax5@(4PQA9TmpW{Z15)fwzNAYjBHHxRA3$>BaX2)w- zVO4Hp5i5$)&*q`7-Wr6Je~mF+m@I3SdDlf@vc6zy{IR%|=&zZWbMj_6a1B^Ym?hjZ z3=J)9Ep@~29%0r%E`}oW@*<&Dk-YT?dfK-uD3tS4=M7f&I)?Z0EAjUYXZsy26(5Ah znO`R^^rR{4cF0;ZhXIQk>3;6y&3Da{1111?tpv|&f{Igu7nT?LW=s}+`lARf7nUy! zE(|PwQPT!N+t$F`vo}o)TTFa6pe7s=!Gl0D=CqicZ;Eh0Zx!bhm>iUJcz3w4H9Wa> zlecrL&3F7Q1N;k5*B0;Q)}(OP*6>Y7l_+3x93F}c1Kxq3&dVKddoLhC)G+CSobUh; z1C^9PF`?E@&_Dc9&uW{DVP;5y_EOd-w}4;YtCBxQb#M#$wtVK^e90r&v4e11NqDrK#V4NLOpjf@6qGv$)y z;yP{6X^f9rWLY#G+teztD{I)+H}4$p)aTe&haRBW#w$;ns&L=dk{; zfn?E{Yfev*Uw4L$mDmE|0ssySd-Dqf)!s4;5<^-t1mj z=-%An-cnf5?A~FI6u7sHG#3{3PT?m&qT_$YTyk6JWB5Ch6zANZPsH9MjQLg5S)u<2 zVvq|9-a6d3zaQJc{{pT@%!bF*#9@-!bl6l)8YZgm>=%Mi(wqE;=S+9kCNfuA8t5+= z%o$u^#rKQbRyLU~L;mI6sl9#_JMAj6(+1A(0zv>~*K_Oo;xrl36yLsSIlw-^;62gT zRmlpg>J%QF(sumqUBd0}UR#On|30`yzl(x5E6l!gK)kruRIC*XGHjD-1j7693Lm$a1DX5OF6s=5)Xd&!1CdHaO)o{cM@9^z@tKa}@1XF|1#Kt)Uz=foO+b4u$pk>EHyNWd}FZlnS%bTh|&3?QJIc_#q zh~{hA9c({%ddbhLJ9N9#?y$>7-XBwSYum?2y*iTrkDRBjp0r8#oc-AzLEaB@GyT*d z!&KWQ+w6{RU6T&qf%7@jZ%cvrx@?u#i8-+;pFG^tir3;>dz`5I7cz}QBPFC=>v=;U z?xX58{45-r9vW*=u3Zb^KAwo5#^Yu3N>*i6C9^UhP|MP`=CSgC+xr{;QKw-fJWc(N z3pp!=vWCj;q^fDR|L|`JGp(E!&J1Ci0B%bLg z_LFU*u2!Fidq>C{^LUb~6uGnTi|c#u+Af#1Y`)tGEH$e%w{;2<;@=eH=SL8^Dg^e0NOuB(|H{jh)o=QwKIPC-Y{i zgZ-VGVh7S1M~*JEbpnJ6E|UAR>1Siv3!Kns;!=WCXKb@Vq6@eLY7X}Uk^AD2I zp0VQ5pZ_}%rx1{}(Oxo_5y*IcrM!|FPldpI@Y93&viw?%7!m?`%+fP2Enk!mWyz(+ z;(%qhf8ZbEbL-Ahsa1xRAj>9l85O#_yvi>OjXC_MGn4VX{My&`b*_C!?Nhv@l@qy4 zZQZ|8yA=DQeJ<-Zd|i6`2V-gSNI>N{Q?W1Lc3u0oUk(5mFDtHnZP&Q$bZ&HAX9HY> z-zntJAG0y}9!-v4hab-O9IlA#DijIhpE@%ETjhz>VOB zqGKtP=(wTogXX$OIIkE|BApVt61l}&AazJ*SV*&aV*!jCd9CK}+~s(Dm8<{+!0F4D zrNbF;T_ZRhNc{8C77JD#hiY*nj1e5%eE4t^j6nA2LRk|{TzaZ?fp;N|fy}Y?`rVR; zBT$4|9RYe=gyz=Wg%j+Zd3FHynbh?!B&{~zw zjg$#m8x(8qQh7c+>WY1Z@{Y!m7SGfWyWB3kLtYq?>e;eQ!apMb`?GE;kGP(gH&wSA zvE>wX?$~eQ(CT>qi-TT;Pja`U*$4Ar$n1_TGBKguv1AKy?y+j-&cZG5EO$g>DRJ%2 zeR@a&%mNH!^OuE*(-&W7f@O`OxD~}mc9IMyQ7z~RRWto)KwNXkXZ8#18u#B@xq;bE z-=#)E`h}RT#lkQJm7;3FP|^KSZ#EQ63-FlYz}>6a7tH^))1Xqjxt|sIKEYQ;_j*v3 zK61vX6}a4(BDkO>0b-iOriG1$*_1i} zT+8jkPcx_Sxa^;Orx5@Dubn0WaoG{>5&R*#ANlYBVgS+q@L@loMiAil;RE2Ye!btv z4^>)ST0eZWXMD)MXz6L0eSH)S8dDH(FB7Hm%!3@4R?KT|ismo6hVQMz==;}M-n$R691ZsFrDr1utru@pq9}^Wxz#)a3UIl8fs)^`q5zfvjazAlX&97~1BIja zn*>@{LT6&2&z04yi1SHb;r>Mil9Pdqw?&(aC2*n@Vv?ka#`R>A&`zUj~0L zKbg_NpAJ8QZ-(weKA1u5qx9f`$0It&8_xjOvxWC8?!BGWGCHj~8QK$l?`pte($DV} zzxTPn-=qcjWzOwnJ|aKq-qh*iGZ|yP_x7!p*~yLIwHIfI{?=9JrtT-?$Ba&}!I&{> zdH>FxX{!;d={x^UU#7qDIic~L`n!_$@~<&p^pQmdKA z$pHrCPt&RoZ-Qh2!#(vX=2hmbk&yN;4|ahO)+aBw>v+qJvY+A3fJnJ~vDKz+s)W{S zpft@FoWHxN5h~upRdIhZdr7cyh*%tsFsT>J_Zx%1ZAa8l|F&Zc=7T%DwvWyCpy_%< zCPFpcup2@_8W1W(=5+n;gbj{5Z(tKFx8C2C!OKQdVckY@jKuw)=Rf=2`aZmy6X(<^{R1H zBsv-Rz8>Jj_VmAav4cu87gOfQa`HPW&s;RK9ojuc;ZxpGoH}%pjI#aZ%K^MRodbnW z1)c$qx;b&qJXgtdvs@BIoRa5V`pouUk7MavCTT81B*0$~x;e7Jt{2a@Q~6**XI}Pf zd4{ENjC4=#}{OPI#wSz8m zQy|E03C{%$#|8wHF9`}NE34AV2r|By2!Oc>d6^O*c?g*oJxyK`5XOCoTelIth`w95 zJ~D+0fbacnUE4~Z3sU4tq}1oUcy#iM=jnwPAiT)hqZiLzgXo_-Nr>y+EBCIl&+P3k zTm9w!zClX@2-E;Ckc?;@#0p_2*Mm5$ejX^Tyfy*Cc2$71 zA7v)9F*lt4O*oPJ%sl}EN9N^6K}1y-iga^{zno@T)&X)2+ks0qY*++ysW{fTYF-Qd z5id~~W%IDgO*)!3vZa63{O(HHmZ(?K;d}*)B@z+hZIbVEtz8mJrvCfi|au zY^pp6vjmYF_h?=CgDP%v4cQVJu<10-=mV15}9(AOD^+mASm*pHuKv4g*NuqN{$;>9?k z3n+ry-nsqjyvPsHa{cHwcspDOJ`kf@665{q4-x_D;0s( zSFc(Ja&lHkh_i05@BrzMYF0^3B~?zPPF0dp$(2=CK|Dx>;%TWgwfhaq1(sJ6KOj3j zmzGKgot6Mn4Hd;)WW-`f^h*A7K*AVa7W@I(iMa`3{Qf`VA|rs}RB*DyQ$aW~1Pu~s z0AQ&SDUB+XLQr%@rAegDV_?7Zq;x>K|F>{Qi|C(S%@0(uG4|;ta#O}(W}3TySVV7I zV7+iAd;a3wTnfC|=#95aVOCpzIJm*n1V~(Mi>hGbiv=`~-6x=Nt$O0o7WZBb0%U@@%-V z5l%ka0gmI}(}7sHWDykGSO&1ei(+AewifKkQQ{ix7TP{6p>Ef{Dhw6E^{+m8#^y~s zkIRD@NIIdtZ1_6rf^3qH;!jsmaH8RyUK|sC`Ogc6*Z$h`kZoDTH!cIg7))X%+!~>v zm6kjhNu|RITVtFMcN+;a;&3P>daN^m@ywm-KFC0bAWm+1pb~=Ml{DOOX{axXj^GW$ zTxeQ+iSoo{8b(5gSxkh#dzFAkr5|DvS`$p2T!#3(r!WFWEdkkfdyvI-iEq=Yn<%8<)ny9wG!VgTrh9sPAonGJ>>4(F}{Oq`QU2dQ^C_jXNtRH z{MQ~lYjGNH7`tGI03N#16q1 z!NcN`2Ri_7r}2{Ki{8y=g?cA{A0BYDo97?LJo*0jem<@;9H!gPn{7EUJlQLlw|Kg= z^tql3M8XgKCziAil0{Q%XZYm7_J$Mvogi^1$5sdARpt{01_uWS_LuO~IEZPXpr;huWYc{t_UWpNu8{ zj5g8pf#Ikm{XN14!aY6if@6xs`eG<(KeS2$Fc@Dn1>=X&a4{Gjv+%GEN)=kq`(pGO zj0svydKH?7Atx0A*6DyV*~l=PS}CZs$P?sIBgfRByRO)a+szym+a1I5n1)zq}!htTGM#z8^zT?N?EbBizxm zjCnPu%N7Ry zmo9@B!s$zwg73}Yk=7H|Id<8uNj{gBR z1azUTc+M#$sd9O!{!5@ea5}O4_3Kw%CSA=dUR5NX)|B151FG{RmoDx}f`5Mf8Mn*h zr8KHTO1kv47EYi-D(mx3kc;&7t3}fKRHf-hs%l3X=T~bHRhYb8ZQO`XH7_oZ!8-i> zj*xT%U;C!0In{%u_MxQm6;KFj_@6JI1K)cENzBc1vlML9NOPn`NkuLsc3F~ZV6*j@ zH?{QLb#)NZq?8}ap_)5CNIP6(5^SqdWWC+9Mtne#IbL7AP?)g6uY@-O=y^zcsqp|0 z;;A7heWJ4>A6xN{=rjGK((#Aw%{<-Tkv$)`l+uI35k<`4H z9wF+^5nf+{YN=gdBykBF87}D19?gv6$QM);CE3WP@NfWL7M^Um{w`?Zl#w z2Q~n=5AOHRDwQU`nOt_NdazSAvS@gb*7zi zf!>WInZ$;J$c!cV44N;e6z!>RaoY0$+Jrp);|I-K(Dx6V+4H;5=g>vTFvx;bZcX1y zn|HS)9fc#2{RU2cN!OZMZ}tw`G@ybJA)+nBKZwpXAQ8&&>93oLy|y1oybHE~4&ng- zCr1600dOv+aVXSMR1^y>DuH8&${gzsWC0N5-b)Jzpj{WLK4I=jxS7;B=h|o)Ugj16 z?~TeSMA{~%UwN2mD6`%8$K8!m=Ww&D>qE}QFb%WL8m+&Yb~yLykT_^UM>^9RfgL;X zFw08(u1CkSUW8a@TDU>fas^!zWEm60SMgU!1K0}!akry^0d`|3A(duvcLl2H_B~?+)j|pE zf1FoHz}&U>|0E(6q-%jQ&q9WQfbuVGt6{5(g`FprnS^H0OTp2Cn3rfHF#`iI!rIMf zREH_+5IT(WR){l%Sy-p1>&VPOlkJ(R?qYh;^v)(OmuQ-@8DS)fLJpg>44oWkN~SL| z-Ag?Vs+l#=QD`$dg`Hf@idu>wzPdyq>^O&ALbWGu(G&uv93(%2Jem)fS2vvznc2kd_ zsMQn|1m2o!r_;|-{WxArnZK8lj2XZ@f)quC(aA#{!RZlZ;7ETsq|SvRZdH@4Nq{~X znIwDHgQSHHf(*|E(h_IY|6iXVY0uE)sB6-a?l~Pq6=QT_`!OgbU?--VIEK=X;5u<5 zcoc3N--#b5oty-FCt52(NwnxrUI)IE&Dr+S_2o7<-<(y~)0)tl==!w3s8i!`>exIi zHt+8~qg-OQnrOtfw!3qQJ)S6-_{(sX0JEHMG^`|)OQLbe{qN=~nM<>SwXL|}FVtMC zrDMA&{geSpx9P&iaDOAZlHkSvpM<^i5A~l*m(ZQ$PLlhGLSzCq0cUraYapYw1T8U5 z_Ag8;87qaTglmOK=m*XT9zEUk#38$m|bYZT9L~irl+8*jKt(Xx^8@UV3c9uwu*w$NH7x_kCLAQZ5 z_uLPkksR_k{FQ6ug!SIK+GBMVVf`^QtB51@#o`Oz)iL;($6=fuuIxB(MyRXC z#5zg#oWEppY4P(Jl6447Q`C*oISBEbX!ru2x=^9XowIKLbX|??mW13XQ^bODUyX`uq18zuc(I1fkOb-5Gy)0HAq} zW9V44Jg^I>(F84xg=JtT?8oiG?Z@umfbRe8=vHDY+80wrtit#(eP?85a*8iSZYDdu zk6Fb$&%d9`pP#n6zkcU`yBck$GcsmBBlQeDgjQoqi#?9(!on~Zh&m8fTwk-2vUmw3 zh2rC($xB{_G}Ca}k=Pd8&zb4;@A5zKH9FzXv|)DiF|CgXmVyxFuPvVp#)SY7+$6%p zH14Q?pt1y;W@H)GO$bSHFu|V{6M<-(U@1s|1B_kifTXg}c+te8TTr67kwoC;k~ zi1?xZ07>_<`c(PJ(98bGnIVBj6lisBO#HFxBYTrmM*eolGhTg9?HX2ZA#|1G?znMe zSErPIDmV9(-C(Z$Ju(47_``#LHh>^X;_<(S_z@(JdTi4s+~IN@{x_^f24A<_7%qDx z3t08~{FJnBLjyVx^|0Lm&m5n#V(cnlQ(?N8jYGyG*_0DBDuaPP96GFvjp*1k!3hD4 zJ8(e^Oj3CdPPe6O$G07;ns$8GuWDrM7QW~A+#%c!Y3^FnL))FB|EBM**nvCb#Y6IX z=Fqq8{ozgd^&z?X@9udBEQ6sJ#uI~^kqI{ta34CJc&?77w^5I0GMK=nfvGu(tHqtf z>akSUtYhf+I<}VR-NjmvM?D@X>Wz}?m>|+1dpZcuB;qbAt(_kb==HN>i$6aRpF)T2 zHLS0whXO80&vzmBZ{$t~y|#gU{6<~*TJ6Gf&o7!R^53Rjc=nq+F7asb&!^!h+39O8 zEUds2HwoPgbA)PqK0odZF56?<<-=zxix6d{ZivC!i)j@Oal#vWO@a-+Iq%vkKYi3; zWLv}=Du{U7{ajzzU>w82qYmQ_a?^x1acqfy6=WV?Y^`VLnQjkTO%uO`^nFVB=5DO^ z_?CDG5rPY@BMAco5r{y!v$I^zz%y_hg<|Ne4RK85v${`zudt9j*6DspepTREo$21; zulwe(Ef$Tcqx3;$`!HAX4<#_bhi}t-1v@|rjM7WJj@86G8IAil9GW$M$=)||SsOy5O!eGn4agy~|9-D8xWSONggq9PHZIa;G6R3bk z6)dU0^I~QZ?{6Fy7a`;_0VW~MTqIX5|93>y9?g#oGL{_>%Oj?TCDbr3=xO?2s>Er|5EE&!-iG_61t`g9VMyZoW;2xIAhuUaX#I@&Yt@< zVO}uaY;HWm4d}5CY02z??haH2R_AcdC*sd&uab+Ox278t36_E8CNT+SA;jD&%fYFf zt~jFTY2U=TPyv{CfNz=O_)d&lR8vcwG(HcBcSw)Iok|x~IwqOO+JhVP+NRbv`#5{U z6WC1b6~j0?`?jXGJYB(_f)6Kt`N9d_-(J@$%OcynW*aE5gG;w;E{DOR*ccKeA@(ee zs&5nv^NNs5V_6yZbW0!KOC@FwRSNDQc(N=Y(e7{;VQi0qGfk! zN{*6-)>6L+E;GOGf=o^(?Oz%^M*06P4Kg)X?twG|_xu3yjI;vyOMn-cS1O=+YE3G- z+5OlE7#TGMEb%{lHvnrBOr57E+&A9!L5M0k&2ww_I#H~vO%0x!L1HoVG6&RmU=mTE(|CVYos8J8@!ADeeB%ql9KFi$R>0(xOC2??8k zyNd5br~wcHNQ8Z^hviJIYii-!IlrD~=+neVp6J)|DAjLj(bEM{24Ec82POn2`l`6f zxR$t9+xDrFfiUsWEuYDVt~JH_%6OvM=^5WExzxHJ)Acu^N6*>nncdc&AF%G<-IP_0 zuZ%Mp>`0XI z#+>+lfwMFgtVy(s)FJh2&&<4m9Qs_CS); zjT$H%e9QR8pB`bd>_x_Ml-%4c{di$9Sa|-^!S*yK<*=VAzmjm@fDAm|)uLMzQzW=L zBvzq=P@8+JP%yJ)DF0yU;86mcI`r_P#m*yMEZ72^_g+=AtQb&TdSklI$c9=8E_`nc z%GzGa2CE2i0L#V%tF2;&EQ|I+P)x6Ds!F*t%qs?#9`W*etJq|hqJR{;jFYj77W=A9 zNYTNmRxQC)ky_9&8g?ftN14yrtbj7BP!2`Iq|_}9yr7sph zdy8EM7t4u)&OH!RUD$C*&S@DFKvWk(%h@ZI_PhJU5OB4VJ!P`Ib{=8Ewr%N!y{MGl z-AovjtUMBo%0Js|023c7T2NM)7GfnDnqwxx`CI`CVr^F3I2QhJc!6E#8y77s`-bf; zVCIqCUTv0x$MLQZY&jIya@vL1N)$s>F;Uj`B4Dt9AcKHxu#m7S;Bb+b3_vk`uD%+F z&AKYy$v+jlIiX5evB^GJS)*t+AU%Yp98s-`FEBEtcNdB#2|AX|{foSPTtknadQjvM z;8l1yAWXyYzJ{h!k>f-apFjdzL8QmK1!tQ%7JnLPuE+fOnw>2ka=H^Pe~OOLXmIDj zN!iJO0oeezhS_D?Y13)j6}zw3aQ?*X$1KtS7Y(Ts*E*+$i*ucXN6QMcY4{y1g6SU^Xf=m z=Skv0QCs2EthlFxXb}d>mvGJEisEuHv5F*y-ZDCg9$8meRr=1g`ZMeN$`41HXMbb^ zHszEKI71zR9{@`e^(M`k>S{N2VC)n$s_I#A^2Tx5U;!}zC6l)^RemJ@`rK&FIcF(} z^M=FwRkKd!SZu_Mo=B<`fs;`-SATAZd#$Pn3N%9}g5)oUBn{Xd_K=BfM-PUJYI z%7>4i?lDL&e{ZAC@9KtgPB$rE=eKHwxlKUy@A4p5y4uyper9E!M5^=;>v(#4A*zGa zi3s_`>d5}^5o8FavZY(}su~RvWI-s-j z)FB>H_j!BepX{Xo>7!SY?p3{2@#zd|sEO&1J%WfX>JOjoxiPA4YP#E3ieidGn3-c+ zju94_%DyesOZ|~PNo##KL$rRj&sA$KM0k)NY>}a-dPhMFJ6zQ+99@VmX}=SChX|@H z9p=^Oc*>$%hC(#`5hFD=SqS~WL&IefBS&bcpH$5(bl;H7%-6FJTv+(TEht>&Q&w;A z#(?Upxy|5TiU`#`EiXZ>)x*LdBFub`4J1!tHu>N%yYLILSCr43*wlKnMa{xYEP^*t=^uXtq~dt zNQlHJ{j{95>)Uc!vBErGY^J)$I0+S#LM`_opqegYKF0S!IAaZ+Vs!n5wWfCEGy9?F z6@JnBWA#kj01Y)iM7`A4kC=+BE9{HNUJ1?dvmme8x?2|HR7o;jRZmPd?;|(J-wbAu zOMK~qa+Vxd2D$28cwS{gz zG5as(-(mk77y6uT+dEzDZ#Gy1;Le5LJNVvwoT+whVMPUH{#V!MES)9UA5$iuBT3?( zHv3Foe3gxzx?fb5&URO=%6<~ckK3}KH8l55#LJ*5@4xv|_y0ovTBiNY{yr?n_OFAe z$^3bwS-rSxOPD09slf(n1(cr>a8J!hc>pR9l&*n)>wYeyhut%prSoztVm%5C$5kxk z85dY7%xe2fkDCal^0*l*^~QrJrSUTdlgT&&MN0*g6xAD7NN?x3N?JVQg7hx1+WrUQ zCbD`rZYF(*@t@1wl6-P2a?Srlh-l8$e5P8s(R3^}Py8FLdKeEQeC&T513h{!9fhZl z|A36636F5Iml&IKGfIE{zISQpy_|{R#cM77L-Df_0ueIKD)Z_+ zlA2)6mmU>ozx01Ymh!+TIqB1T{2v+x^u0eTy?Up>{vfc@Nuk(-8|xxcwQ*h;Bhhcg z@0p5xS`cT0xLym@qE}AC7<}g~JzJwHyxJH0HxEMNJ7v;-N4W=zs_BMl*^cY|lf4^# z01+mX{SUiWSt@O;^C6}zFUqQJ+O8kQ>EpXC%*(p%$9dh)`~9ExTi)5#-P8MP2J-`h zKX|B(jDF5VoA?G0_)ppLNPmB(r7}J9{a1TzeqnKGd1ZBNePeTLduMlV|KRZG_~i8L z{NnQJ`sViTUIsu2Mt&*OKW#WcQZ&PIydX-lqH4NfTDIeQeh@}+l4f~PR&~>M{V-1R zvTplvUib5UKSY>NG{bVdAWE{LYPw-s{#Au-+m7q`5gpx;D4W_#z&uiq4SByk*T9&A z0H4%a0bhaxwzX5>Sq$r@t2%_w6Bm2`<<`cw(K> zJF)}G78SDO-!e&L03JH&ui(25kuG-pdJP!!^W6K3gtRHGsYDfiWwx}vwF`#B{SH7 z`q83HRA&BVvfAM^^K`xDmFVb7z&iuMX{)tz?R4d#g0v42l|Dvt5^^AT&kCH+#5J%j z^EeXEcucM^Tvl~3{NXHY3#lNGfbZ{Gpj*;Q1^oQ~pT9p7+h!(qz_v`eOhQyCt4`Qv z9Tp$WZiZ5>kEj)D0T{s}ik2#5WQ+;|W;x;LXS(eEiBNZc+;D8X+(TixWKPBChMk=% z8U%T{jo94)X?s;1=hR5u;g}9{oRQ}nUsb>(`PAsp5a&&Bi-URn&tJa=9Icsliz83Z zv;kFhYO+nE4g_2te?qoie;TxK6_5UaV(4EyY1K*<*i+_^VJqxyUx>?n!of-nkCIT!Rgfx_B9e^gyS_*c(l*kgRixTh0|=deZ(p6kvgSD%dGiYv&8{-aN{{!hl)kT>7il{?}Tm9 z;pgZv!Yl@;LaK(ARst%U-+}9s77bTW-1W_%@rB!m+p=&e7uVN45yazWo~eK{w}t40 zK$0idKnD15gTk#NTn|-64VQyTCis#M7DpWExLTyis>I6^*OX$1s)s|pWYxkAa{OHFs*$nFdty6`mM8rj zuD~QD8V%Q(K4Gt?L%(!kwE$kx~Cwisq<|}1-@0c!+ z-7nHW#Lv1VH?D9XJy@lKBhx>@;!C-{;d3rcXY2|1zE!d4Zc?16ZPl8Hw>`4HzX?2L o+#HnR4LOFqpY35-Zx#$hymm1I%HXkZ2tK-A4DQ%IcSqKy2kfp?-~a#s diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index f43707cb7..d12a688dd 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -19,6 +19,7 @@ import RegisListviewdata from './RegisListviewdata'; import PersonModal from './competmodal/PersonModal'; import MessagePersonModal from './competmodal/MessagePersonModal'; import PersonalModalteam from './competmodal/PersonalModalteam'; +import PersonalCompetititem from './personal/PersonalCompetititem' // 团队竞赛报名无报名 class Registration extends React.Component { /*** @@ -53,14 +54,15 @@ class Registration extends React.Component { messagePer: "提示", messagePerbool: false, intpermessages: "确认" + } } componentDidMount() { - // //console.log("componentDidMount "); - // //console.log("调用子组件 "); - // //console.log(this.props); - // //console.log(this.props.isAdmin()) + //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(); @@ -72,8 +74,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, @@ -85,7 +87,7 @@ class Registration extends React.Component { } } }).catch((error) => { - //console.log(error); + ////console.log(error); }) } @@ -102,24 +104,55 @@ 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) { - this.setState({ - type: 1, - count: result.data.count, - }) + // 没有创建数据的 + if (this.props.isAdmin() === true) { + //管理员 + this.setState({ + type: 4, + count: result.data.count, + }) + } else { + //普通人 + this.setState({ + type: 1, + count: result.data.count, + }) + } } else { - this.setState({ - data: result.data.competition_teams, - count: result.data.count, - }) + //有数据的 + if (this.props.isAdmin() === true) { + this.setState({ + type: 5, + data: result.data.competition_teams, + count: result.data.count, + }) + } else { + if (result.data.competition_teams[0].manage_permission === true) { + //学生true 为创建了竞赛 + this.setState({ + type: 2, + data: result.data.competition_teams, + count: result.data.count, + }) + } else { + //学生true 加入了竞赛 + this.setState({ + type: 3, + data: result.data.competition_teams, + count: result.data.count, + }) + } + } + } } } }).catch((error) => { - //console.log(error); + ////console.log(error); }) } paginationonChangestwo = (pageNumber) => { @@ -277,7 +310,7 @@ class Registration extends React.Component { } render() { - const {test, page, pages, limit, type, tmodalsType, tmodalsTypes} = this.state; + const {test, page, pages, limit, type, tmodalsType, tmodalsTypes, data} = this.state; const listItems = test.map((item, index) => ); @@ -326,7 +359,7 @@ class Registration extends React.Component { } { type === 2 || type === 3 || type === 5 ? - + : "" } @@ -335,6 +368,7 @@ class Registration extends React.Component { : "" } + {/**/} { type === 4 || type === 5 ? diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index b1ae1b4e0..40e732139 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -301,7 +301,7 @@ .regitem { display: flex; flex-direction: initial; - border: 0.5px solid; + border-bottom: 1px solid #EDEDED; margin-top: 44px; } @@ -310,6 +310,7 @@ flex-direction: initial; border-bottom: 1px solid #EDEDED; margin-top: 19px; + } /*垂直*/ @@ -331,7 +332,6 @@ } .regitemimg2 { - border: 0.5px solid; height: 78px; width: 78px; } @@ -350,7 +350,6 @@ } .regitemimgs { - border: 0.5px solid; width: 69px; height: 69px; margin-top: 3px; @@ -359,7 +358,6 @@ .regitemimgs2 { margin-top: 16px; - border: 0.5px solid; width: 49px; height: 51px; margin-left: 25px @@ -367,17 +365,18 @@ .regitemimgs22 { margin-top: 27px; - border: 0.5px solid; width: 28px; height: 28px; margin-left: 20px; } .regitemimgs3 { - border: 0.5px solid; + /* border: 0.5px solid; */ height: 22px; width: 22px; - margin-top: 30px; + font-size: 21px !important; + margin-top: 22px; + color: #1C91E8; } .regitemimgs4 { diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index 48aca0b7a..0b4e988a0 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -636,7 +636,7 @@ class PersonModal extends Component { var cpersondiv1Items = []; if (teacher_ids) { cpersondiv1Items = teacher_ids.map((item, index) => - { ` - a:hover + .reglistviewdivss2 a:hover { background-color:#F6F4F4; } diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index 8a0730736..ed4b76628 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -6,133 +6,184 @@ import { } from 'react-router-dom'; import axios from 'axios'; import moment from 'moment'; -import {SnackbarHOC, WordsBtn} from 'educoder'; -import {TPMIndexHOC} from '../tpm/TPMIndexHOC'; -import competition from './comcss/competition.css'; +import {SnackbarHOC, WordsBtn, getImageUrl} from 'educoder'; +import {TPMIndexHOC} from '../../tpm/TPMIndexHOC'; +import competition from '../comcss/competition.css'; import {Button} from 'antd'; // 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 -class Registrationitem extends React.Component { +class PersonalCompetititem extends React.Component { constructor(props) { super(props) + this.state = { + data: "" + } + } + + componentDidMount() { + // //console.log(this.props.data) + this.setState({ + data: this.props.data, + }) } + componentDidUpdate = (prevProps) => { + // + // if (prevProps.data != this.props.data) { + // + // } + } render() { + const {data} = this.state; + //console.log("PersonalCompetititem"); + //console.log(data); + //console.log(data[0]); + //console.log(data&&data[0].creator.image_url); + // const listItems = mydatas.map((item, index) => + // + // ); return ( - -
    -
    -
    - -
    -
    -
    -

    重庆邮电大学

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

    邀请码:yngh5

    -
    -
    -
    +
    { - this.props.type === 5 ? -
    -
    -

    删除战队

    + data && data[0] ?
    +
    + + + +

    {data && data[0].name}

    -
    -

    编辑战队

    +
    +

    {data && data[0].school_name}

    +
    + { + data && data[0].team_members.map((item, index) => { + return ( -
    - : this.props.type === 2 ? -
    -
    -

    战队详情

    -
    -
    -

    退出战队

    -
    + index === 0 ? + -
    - : - this.props.type === 3 ? -
    + + : index === 1 ? +
    -
    -

    退出战队

    -
    +
    + : index === 2 ? +
    -
    - : - "" +
    + : index === 3 ? +
    - } +
    + : index === 4 ? +
    + +
    + : index === 5 ? +
    +
    + : +
    + +
    + ) + }) + } + +
    +
    +

    邀请码:yngh5

    +
    + + + { + this.props.type === 5 ? +
    +
    +

    删除战队

    +
    +
    +

    编辑战队

    +
    + +
    + : this.props.type === 2 ? +
    +
    +

    战队详情

    +
    +
    +

    退出战队

    +
    + +
    + : + this.props.type === 3 ? +
    + +
    +

    退出战队

    +
    + +
    + : + "" + + } +
    + : "" + }
    @@ -141,4 +192,4 @@ class Registrationitem extends React.Component { } -export default Registrationitem; +export default PersonalCompetititem; diff --git a/public/stylesheets/css/iconfont.css b/public/stylesheets/css/iconfont.css index 142b620bd..87991b38e 100644 --- a/public/stylesheets/css/iconfont.css +++ b/public/stylesheets/css/iconfont.css @@ -1,10 +1,8 @@ @font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1571281327367'); /* IE9 */ - src: url('iconfont.eot?t=1571281327367#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1571281327367') format('woff'), - url('iconfont.ttf?t=1571281327367') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1571281327367#iconfont') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1571756926538'); /* IE9 */ + src: url('iconfont.eot?t=1571756926538#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1571756926538') format('woff'), + url('iconfont.ttf?t=1571756926538') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.svg?t=1571756926538#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { @@ -715,6 +713,10 @@ content: "\e669"; } +.icon-fuzhi1:before { + content: "\e800"; +} + .icon-gengduo1:before { content: "\e7f9"; } @@ -887,3 +889,19 @@ content: "\e6be"; } +.icon-detectionx:before { + content: "\e6c1"; +} + +.icon-communityx:before { + content: "\e6c2"; +} + +.icon-hostingx2:before { + content: "\e6c3"; +} + +.icon-projectx:before { + content: "\e6c4"; +} + diff --git a/public/stylesheets/educoder/iconfont/demo_index.html b/public/stylesheets/educoder/iconfont/demo_index.html index 26baf8ac7..a8b8e705f 100644 --- a/public/stylesheets/educoder/iconfont/demo_index.html +++ b/public/stylesheets/educoder/iconfont/demo_index.html @@ -1079,8 +1079,14 @@
    下降
    &#xe669;
    - -
  • + +
  • + +
    复制
    +
    &#xe800;
    +
  • + +
  • 更多
    &#xe7f9;
    @@ -1337,7 +1343,31 @@
    nenghaofenxi@1x
    &#xe6be;
  • - + +
  • + +
    detection@1x
    +
    &#xe6c1;
    +
  • + +
  • + +
    community@1x
    +
    &#xe6c2;
    +
  • + +
  • + +
    hosting@1x
    +
    &#xe6c3;
    +
  • + +
  • + +
    project@1x
    +
    &#xe6c4;
    +
  • +

    Unicode 引用

    @@ -2962,8 +2992,17 @@
    .icon-xiajiang
    - -
  • + +
  • + +
    + 复制 +
    +
    .icon-fuzhi1 +
    +
  • + +
  • 更多 @@ -3349,7 +3388,43 @@
    .icon-nenghaofenxix
  • - + +
  • + +
    + detection@1x +
    +
    .icon-detectionx +
    +
  • + +
  • + +
    + community@1x +
    +
    .icon-communityx +
    +
  • + +
  • + +
    + hosting@1x +
    +
    .icon-hostingx2 +
    +
  • + +
  • + +
    + project@1x +
    +
    .icon-projectx +
    +
  • +

    font-class 引用

    @@ -4778,8 +4853,16 @@
    下降
    #icon-xiajiang
    - -
  • + +
  • + +
    复制
    +
    #icon-fuzhi1
    +
  • + +
  • @@ -5122,6 +5205,38 @@
    nenghaofenxi@1x
    #icon-nenghaofenxix
  • + +
  • + +
    detection@1x
    +
    #icon-detectionx
    +
  • + +
  • + +
    community@1x
    +
    #icon-communityx
    +
  • + +
  • + +
    hosting@1x
    +
    #icon-hostingx2
    +
  • + +
  • + +
    project@1x
    +
    #icon-projectx
    +
  • diff --git a/public/stylesheets/educoder/iconfont/iconfont.css b/public/stylesheets/educoder/iconfont/iconfont.css index 142b620bd..87991b38e 100644 --- a/public/stylesheets/educoder/iconfont/iconfont.css +++ b/public/stylesheets/educoder/iconfont/iconfont.css @@ -1,10 +1,8 @@ @font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1571281327367'); /* IE9 */ - src: url('iconfont.eot?t=1571281327367#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1571281327367') format('woff'), - url('iconfont.ttf?t=1571281327367') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1571281327367#iconfont') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1571756926538'); /* IE9 */ + src: url('iconfont.eot?t=1571756926538#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1571756926538') format('woff'), + url('iconfont.ttf?t=1571756926538') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.svg?t=1571756926538#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { @@ -715,6 +713,10 @@ content: "\e669"; } +.icon-fuzhi1:before { + content: "\e800"; +} + .icon-gengduo1:before { content: "\e7f9"; } @@ -887,3 +889,19 @@ content: "\e6be"; } +.icon-detectionx:before { + content: "\e6c1"; +} + +.icon-communityx:before { + content: "\e6c2"; +} + +.icon-hostingx2:before { + content: "\e6c3"; +} + +.icon-projectx:before { + content: "\e6c4"; +} + diff --git a/public/stylesheets/educoder/iconfont/iconfont.eot b/public/stylesheets/educoder/iconfont/iconfont.eot index d26e316a693aa5464fe9481dde16f2e47acd9203..f0e5fbf011f88859dc790c00b85e5d1155c05e01 100644 GIT binary patch delta 3393 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.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()};document.addEventListener("DOMContentLoaded",l,!1)}else document.attachEvent&&(a=c,i=z.document,t=!1,(o=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(o,50)}h()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,h())});function h(){t||(t=!0,a())}var a,i,t,o}(function(){var c,l;(c=document.createElement("div")).innerHTML=h,h=null,(l=c.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",function(c,l){l.firstChild?function(c,l){l.parentNode.insertBefore(c,l)}(c,l.firstChild):l.appendChild(c)}(l,document.body))})}(window); \ No newline at end of file +!function(o){var c,h='',l=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(l&&!o.__iconfont__svg__cssinject__){o.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()};document.addEventListener("DOMContentLoaded",l,!1)}else document.attachEvent&&(a=c,i=o.document,t=!1,(z=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}h()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,h())});function h(){t||(t=!0,a())}var a,i,t,z}(function(){var c,l;(c=document.createElement("div")).innerHTML=h,h=null,(l=c.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",function(c,l){l.firstChild?function(c,l){l.parentNode.insertBefore(c,l)}(c,l.firstChild):l.appendChild(c)}(l,document.body))})}(window); \ No newline at end of file diff --git a/public/stylesheets/educoder/iconfont/iconfont.json b/public/stylesheets/educoder/iconfont/iconfont.json index 1a21d0726..2cfdd7e3d 100644 --- a/public/stylesheets/educoder/iconfont/iconfont.json +++ b/public/stylesheets/educoder/iconfont/iconfont.json @@ -1230,6 +1230,13 @@ "unicode": "e669", "unicode_decimal": 58985 }, + { + "icon_id": "5255211", + "name": "复制", + "font_class": "fuzhi1", + "unicode": "e800", + "unicode_decimal": 59392 + }, { "icon_id": "5291605", "name": "更多", @@ -1530,6 +1537,34 @@ "font_class": "nenghaofenxix", "unicode": "e6be", "unicode_decimal": 59070 + }, + { + "icon_id": "11408531", + "name": "detection@1x", + "font_class": "detectionx", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "11409495", + "name": "community@1x", + "font_class": "communityx", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "11409771", + "name": "hosting@1x", + "font_class": "hostingx2", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "11410432", + "name": "project@1x", + "font_class": "projectx", + "unicode": "e6c4", + "unicode_decimal": 59076 } ] } diff --git a/public/stylesheets/educoder/iconfont/iconfont.svg b/public/stylesheets/educoder/iconfont/iconfont.svg index e9aa3e2f9..f2f298f58 100644 --- a/public/stylesheets/educoder/iconfont/iconfont.svg +++ b/public/stylesheets/educoder/iconfont/iconfont.svg @@ -544,7 +544,12 @@ Created by iconfont - + + + + @@ -673,8 +678,26 @@ Created by iconfont - + + + + + + + + + + + - + diff --git a/public/stylesheets/educoder/iconfont/iconfont.ttf b/public/stylesheets/educoder/iconfont/iconfont.ttf index bf316a765cb8feb23b77b0130d32c2b8e1f6cbc4..cef43d726d965ff31018407030647ac2df0b02be 100644 GIT binary patch delta 3383 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 delta 1320 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 M<=M*0bDFr14XNwGVE_OC diff --git a/public/stylesheets/educoder/iconfont/iconfont.woff2 b/public/stylesheets/educoder/iconfont/iconfont.woff2 index 374af4f2a4c4bbfb1319e2ea903dd6ffac12c479..0bbea822f7e6efa55d9fcff67f4296e7a39eb320 100644 GIT binary patch literal 36828 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 literal 35640 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 From 6d713fb10ac03dad6d2fd953590fcdd095c08be0 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 00:02:11 +0800 Subject: [PATCH 056/126] jingsai. --- .../src/modules/competition/Registration.js | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index d12a688dd..60512a893 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -165,52 +165,52 @@ class Registration extends React.Component { * 加入战队 * */ Jointheteam = () => { - // 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 - // }) - // } - 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 + }) + } + // this.setState({ + // tmodalsTypes: true + // }) } From dbc88ae4839f68d68a3660022f1c7786709f169f 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 09:36:11 +0800 Subject: [PATCH 057/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E9=A6=96=E9=A1=B5=20?= =?UTF-8?q?=E6=88=98=E9=98=9F=E8=AF=A6=E6=83=85=E9=A1=B5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/config/env.js | 96 +++---- .../CompetitionsIndex.js | 58 +++-- .../Competitionsindex.css | 8 +- .../courses.jpg | Bin .../groups1.png | Bin .../groups2.png | Bin .../groups3.png | Bin .../Competition_teams/Competitionteams.css | 53 ++++ .../Competition_teams/Competitionteams.js | 241 ++++++++++++++++++ .../Competitioncommon/CompetitionCommon.js | 0 .../src/modules/competitions/Competitions.js | 32 ++- 11 files changed, 410 insertions(+), 78 deletions(-) rename public/react/src/modules/competitions/{competitimain => Competitimain}/CompetitionsIndex.js (83%) rename public/react/src/modules/competitions/{competitimain => Competitimain}/Competitionsindex.css (91%) rename public/react/src/modules/competitions/{competitimain => Competitimain}/courses.jpg (100%) rename public/react/src/modules/competitions/{competitimain => Competitimain}/groups1.png (100%) rename public/react/src/modules/competitions/{competitimain => Competitimain}/groups2.png (100%) rename public/react/src/modules/competitions/{competitimain => Competitimain}/groups3.png (100%) create mode 100644 public/react/src/modules/competitions/Competition_teams/Competitionteams.css create mode 100644 public/react/src/modules/competitions/Competition_teams/Competitionteams.js create mode 100644 public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js diff --git a/public/react/config/env.js b/public/react/config/env.js index d76de4ce1..ae1edea65 100644 --- a/public/react/config/env.js +++ b/public/react/config/env.js @@ -7,22 +7,22 @@ const paths = require('./paths'); // Make sure that including paths.js after env.js will read .env variables. delete require.cache[require.resolve('./paths')]; -const NODE_ENV = "production"; +const NODE_ENV = process.env.NODE_ENV; if (!NODE_ENV) { - throw new Error( - 'The NODE_ENV environment variable is required but was not specified.' - ); + throw new Error( + 'The NODE_ENV environment variable is required but was not specified.' + ); } // https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use var dotenvFiles = [ - `${paths.dotenv}.${NODE_ENV}.local`, - `${paths.dotenv}.${NODE_ENV}`, - // Don't include `.env.local` for `test` environment - // since normally you expect tests to produce the same - // results for everyone - NODE_ENV !== 'test' && `${paths.dotenv}.local`, - paths.dotenv, + `${paths.dotenv}.${NODE_ENV}.local`, + `${paths.dotenv}.${NODE_ENV}`, + // Don't include `.env.local` for `test` environment + // since normally you expect tests to produce the same + // results for everyone + NODE_ENV !== 'test' && `${paths.dotenv}.local`, + paths.dotenv, ].filter(Boolean); // Load environment variables from .env* files. Suppress warnings using silent @@ -31,13 +31,13 @@ var dotenvFiles = [ // https://github.com/motdotla/dotenv // https://github.com/motdotla/dotenv-expand dotenvFiles.forEach(dotenvFile => { - if (fs.existsSync(dotenvFile)) { - require('dotenv-expand')( - require('dotenv').config({ - path: dotenvFile, - }) - ); - } + if (fs.existsSync(dotenvFile)) { + require('dotenv-expand')( + require('dotenv').config({ + path: dotenvFile, + }) + ); + } }); // We support resolving modules according to `NODE_PATH`. @@ -51,43 +51,43 @@ dotenvFiles.forEach(dotenvFile => { // We also resolve them to make sure all tools using them work consistently. const appDirectory = fs.realpathSync(process.cwd()); process.env.NODE_PATH = (process.env.NODE_PATH || '') - .split(path.delimiter) - .filter(folder => folder && !path.isAbsolute(folder)) - .map(folder => path.resolve(appDirectory, folder)) - .join(path.delimiter); + .split(path.delimiter) + .filter(folder => folder && !path.isAbsolute(folder)) + .map(folder => path.resolve(appDirectory, folder)) + .join(path.delimiter); // Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be // injected into the application via DefinePlugin in Webpack configuration. const REACT_APP = /^REACT_APP_/i; function getClientEnvironment(publicUrl) { - const raw = Object.keys(process.env) - .filter(key => REACT_APP.test(key)) - .reduce( - (env, key) => { - env[key] = process.env[key]; - return env; - }, - { - // Useful for determining whether we’re running in production mode. - // Most importantly, it switches React into the correct mode. - NODE_ENV: "production", - // Useful for resolving the correct path to static assets in `public`. - // For example, . - // This should only be used as an escape hatch. Normally you would put - // images into the `src` and `import` them in code to get their paths. - PUBLIC_URL: '/react/build/.', - } - ); - // Stringify all values so we can feed into Webpack DefinePlugin - const stringified = { - 'process.env': Object.keys(raw).reduce((env, key) => { - env[key] = JSON.stringify(raw[key]); - return env; - }, {}), - }; + const raw = Object.keys(process.env) + .filter(key => REACT_APP.test(key)) + .reduce( + (env, key) => { + env[key] = process.env[key]; + return env; + }, + { + // Useful for determining whether we’re running in production mode. + // Most importantly, it switches React into the correct mode. + NODE_ENV: process.env.NODE_ENV || 'development', + // Useful for resolving the correct path to static assets in `public`. + // For example, . + // This should only be used as an escape hatch. Normally you would put + // images into the `src` and `import` them in code to get their paths. + PUBLIC_URL: '/react/build/.', + } + ); + // Stringify all values so we can feed into Webpack DefinePlugin + const stringified = { + 'process.env': Object.keys(raw).reduce((env, key) => { + env[key] = JSON.stringify(raw[key]); + return env; + }, {}), + }; - return { raw, stringified }; + return { raw, stringified }; } module.exports = getClientEnvironment; diff --git a/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js similarity index 83% rename from public/react/src/modules/competitions/competitimain/CompetitionsIndex.js rename to public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index 57b6428de..f1cd58e79 100644 --- a/public/react/src/modules/competitions/competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -1,5 +1,5 @@ import React, { Component } from 'react'; -import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; +import { Link } from 'react-router-dom'; import { Menu, Icon, List, Avatar,Row, Col,Tag,Pagination} from 'antd'; import axios from 'axios'; import './Competitionsindex.css'; @@ -25,25 +25,31 @@ class CompetitionsIndex extends Component{ this.state={ current: 'all', datas:undefined, - page:1 + page:1, + category:undefined } } componentDidMount(){ window.document.title = '竞赛'; + let{category,page}=this.state; + this.getdata(category,page) + } - let{page}=this.state; + getdata=(category,page)=>{ const Url =`/competitions.json`; axios.get(Url,{params:{ - page:page + category:category, + page:page, + per_page:6, } - }).then((response) => { + }).then((response) => { if(response.status===200){ - this.setState({ - datas:response.data.competitions, - count:response.data.count, - }) + this.setState({ + datas:response.data.competitions, + count:response.data.count, + }) } }) .catch(function (error) { @@ -51,11 +57,13 @@ class CompetitionsIndex extends Component{ }); } + handleClick = e => { - console.log('click ', e); this.setState({ current: e.key, }); + let{category,page}=this.state; + this.getdata(e.key,page) }; render() { @@ -103,20 +111,19 @@ class CompetitionsIndex extends Component{ .competitonimg{ position: absolute; right: -5px; - width: 100px; + width: 80px; top: 20px; } ` } ( -
    - + +
    {item.description===null||item.description===undefined||item.description===""?:""} - +
    -
    ¥4500
    +
    ¥{item.bonus}
    -
    351
    +
    {item.visits_count}
    -
    351
    +
    {item.member_count}
    @@ -170,31 +178,27 @@ class CompetitionsIndex extends Component{ /> {item.description} - + + ) } /> -
    15 ? 'block':'none' - // // } - // } + {datas===undefined?'none':datas.task_count >6 ?
    -
    +
    :""} { datas===undefined?"":datas && datas.length===0? :"" diff --git a/public/react/src/modules/competitions/competitimain/Competitionsindex.css b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css similarity index 91% rename from public/react/src/modules/competitions/competitimain/Competitionsindex.css rename to public/react/src/modules/competitions/Competitimain/Competitionsindex.css index 608bc05fd..3e079be7a 100644 --- a/public/react/src/modules/competitions/competitimain/Competitionsindex.css +++ b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css @@ -104,6 +104,12 @@ .competitionsrelative{ position: absolute; - /*top: 28px;*/ + top: 28px; } +.CompetitionsList:hover{ + /*box-shadow: 0 2px 6px rgba(51,51,51,.09);*/ + box-shadow: 1px 1px 6px rgba(0,0,0,0.3); + opacity: 1; + border-radius: 2px; +} \ No newline at end of file diff --git a/public/react/src/modules/competitions/competitimain/courses.jpg b/public/react/src/modules/competitions/Competitimain/courses.jpg similarity index 100% rename from public/react/src/modules/competitions/competitimain/courses.jpg rename to public/react/src/modules/competitions/Competitimain/courses.jpg diff --git a/public/react/src/modules/competitions/competitimain/groups1.png b/public/react/src/modules/competitions/Competitimain/groups1.png similarity index 100% rename from public/react/src/modules/competitions/competitimain/groups1.png rename to public/react/src/modules/competitions/Competitimain/groups1.png diff --git a/public/react/src/modules/competitions/competitimain/groups2.png b/public/react/src/modules/competitions/Competitimain/groups2.png similarity index 100% rename from public/react/src/modules/competitions/competitimain/groups2.png rename to public/react/src/modules/competitions/Competitimain/groups2.png diff --git a/public/react/src/modules/competitions/competitimain/groups3.png b/public/react/src/modules/competitions/Competitimain/groups3.png similarity index 100% rename from public/react/src/modules/competitions/competitimain/groups3.png rename to public/react/src/modules/competitions/Competitimain/groups3.png diff --git a/public/react/src/modules/competitions/Competition_teams/Competitionteams.css b/public/react/src/modules/competitions/Competition_teams/Competitionteams.css new file mode 100644 index 000000000..af1f40aba --- /dev/null +++ b/public/react/src/modules/competitions/Competition_teams/Competitionteams.css @@ -0,0 +1,53 @@ +.teamsLayout{background: transparent !important;} +.teamsLayout .teamsLayoutitle{ + font-size:18px; + font-family:PingFangSC-Semibold,PingFang SC; + font-weight:600; + color:rgba(5,16,26,1); + line-height:25px; + margin-top: 10px; + margin-bottom: 10px; +} +.teamsLayoutTable .ant-table-bordered .ant-table-thead > tr > th, .ant-table-bordered .ant-table-tbody > tr > td { + border-right: 1px solid transparent !important; +} + +.teamsLayoutTable .ant-table-body .ant-table-thead > tr> th:nth-last-child(1){ + border-right: 1px solid #e8e8e8 !important; +} + +.teamsLayoutTable .ant-table-body .ant-table-tbody > tr> td:nth-last-child(1){ + border-right: 1px solid #e8e8e8 !important; +} + +.teamsLayoutTable .ant-table-bordered .ant-table-thead > tr > th{ + background:#EEEEEE; + font-size: 14px; + font-family: PingFangSC-Regular,PingFang SC; + font-weight: 400; + color: rgba(102,102,102,1); + line-height: 20px; +} + +.teamsLayoutTable .ant-table-bordered .ant-table-tbody > tr > th{ + background:#EEEEEE; + font-size:14px; + font-family:PingFangSC-Regular,PingFang SC; + font-weight:400; + color:rgba(5,16,26,1); + line-height:20px; +} + +.teamsLayout .mt40{ + margin-top: 40px !important; +} + +.teamsLayoutheji{ + color: #878787; + font-size: 16px; +} + +.teamsLayoucolor-orange { + color: #ff6800!important; + font-size: 16px; +} \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js new file mode 100644 index 000000000..583f8ef7f --- /dev/null +++ b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js @@ -0,0 +1,241 @@ +import React, { Component } from 'react'; +import { Breadcrumb,Layout,Table, Divider, Tag,Badge} from 'antd'; +import axios from 'axios'; + +import NoneData from "../../courses/shixunHomework/shixunHomework"; + +import './Competitionteams.css'; +const { Header, Footer, Sider, Content } = Layout; + +class Competitionteams extends Component{ + constructor(props) { + super(props) + this.state={ + shixundata: undefined, + coursedata:undefined, + } + } + + componentDidMount(){ + window.document.title = '竞赛'; + + this.getshixundata(); + this.getcoursedata(); + } + + getshixundata=()=>{ + const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/shixun_detail.json`; + // axios.get(Url).then((response) => { + // if(response.status===200){ + // console.log(response) + // } + // }) + // .catch(function (error) { + // console.log(error); + // }); + + + let data={ + shixuns: [ + { + creator: "黄井泉", // 创建者 + shixun_name: "单链表的学习与应用(I)", // 实训名称 + shixun_identifier: "mnf6b7z3", + forked: false, // false:原创 + myshixuns_count: 179, // 学习人数 + forked_myshixun_count: 0, // 被fork发布的学习人数 + valid_count: 82, // 有效作品数 + score: 1320 // 应用值 + } + ], + shixun_count: 1, // 实训总计 + total_myshixun_count: 179, // 学习人数总计 + total_forked_myshixun_count: 0, // 被fork发布的学习人数总计 + total_valid_count: 82, // 有效作品数总计 + total_shixun_score: 1320 // 应用值总计 + } + + + let newarr=data.shixuns; + + let newobj={ + creator:"合计:", + shixun_name:data.shixun_count, + myshixuns_count:data.total_myshixun_count, + forked_myshixun_count:data.total_forked_myshixun_count, + valid_count:data.total_valid_count, + score:data.total_shixun_score + } + newarr.push(newobj) + + this.setState({ + shixundata:newarr + }) + + } + + getcoursedata=()=>{ + const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/course_detail.json`; + // axios.get(Url).then((response) => { + // if(response.status===200){ + // console.log(response) + // } + // }) + // .catch(function (error) { + // console.log(error); + // }); + + let data={ + courses: [ + { + creator: "周海芳", // 创建者 + creator_login: "Nancy", // login + course_name: "大学计算机基础2018年秋季", + course_id: 1502, + students_count: 122, // 学生数量 + shixun_homework_count: 8, // 发布的实训作业数量 + valid_count: 977, // 有效作品数 + score: 29810 // 应用值 + } + ], + total_course_count: 1, // 课堂总计 + total_students_count: 122, // 学生数总计 + total_shixun_homework_count: 8, // 实训作业数总计 + total_valid_count: 977, // 有效作品数总计 + total_course_score: 29810 // 应用值总计 + } + + + let newarr=data.courses; + + let newobj={ + creator:"合计:", + course_name:data.total_course_count, + students_count:data.total_students_count, + shixun_homework_count:data.total_shixun_homework_count, + valid_count:data.total_valid_count, + score:data.total_course_score + } + newarr.push(newobj) + + this.setState({ + coursedata:newarr + }) + + } + + render() { + + const shixuncolumns = [ + { + title: '创建者', + dataIndex: 'creator', + key: 'creator', + render: (text, record) =>
    {text}
    , + }, + { + title: '名称', + dataIndex: 'shixun_name', + key: 'shixun_name', + render: (text, record) => +
    {text}{record.forked===true?:""}
    , + }, + { + title: '学习人数', + dataIndex: 'myshixuns_count', + key: 'myshixuns_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '被fork发布的学习人数', + dataIndex: 'forked_myshixun_count', + key: 'forked_myshixun_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '有效作品数', + dataIndex: 'valid_count', + key: 'valid_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '应用值', + dataIndex: 'score', + key: 'score', + render: (text, record) =>
    {text}
    , + }, + ]; + + const coursecolumns = [ + { + title: '创建者', + dataIndex: 'creator', + key: 'creator', + render: (text, record) =>
    {text}
    , + }, + { + title: '名称', + dataIndex: 'course_name', + key: 'course_name', + render: (text, record) =>
    {text}
    , + }, + { + title: '学习人数', + dataIndex: 'students_count', + key: 'students_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '被fork发布的学习人数', + dataIndex: 'shixun_homework_count', + key: 'shixun_homework_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '有效作品数', + dataIndex: 'valid_count', + key: 'valid_count', + render: (text, record) =>
    {text}
    , + }, + { + title: '应用值', + dataIndex: 'score', + key: 'score', + render: (text, record) =>
    {text}
    , + }, + ]; + + + + + console.log(this.state.shixundata) + return ( + +
    + + 全国高校计算机大赛战 + 报名 + 战队详情 + + + + + 实训项目 + +
    姓名单位部门<%= sort_tag('学习关卡数', name: 'study_challenge_count', path: admins_user_statistics_path) %><%= sort_tag('完成关卡数', name: 'finish_challenge_count', path: admins_user_statistics_path) %><%= sort_tag('学习实训数', name: 'study_shixun_count', path: admins_user_statistics_path) %><%= sort_tag('完成实训数', name: 'finish_shixun_count', path: admins_user_statistics_path) %>单位部门<%= sort_tag('学习关卡数', name: 'study_challenge_count', path: admins_user_statistics_path) %><%= sort_tag('完成关卡数', name: 'finish_challenge_count', path: admins_user_statistics_path) %><%= sort_tag('学习实训数', name: 'study_shixun_count', path: admins_user_statistics_path) %><%= sort_tag('完成实训数', name: 'finish_shixun_count', path: admins_user_statistics_path) %>评测次数实战时间
    <%= user.display_extra_data(:finish_challenge_count) %> <%= user.display_extra_data(:study_shixun_count) %> <%= user.display_extra_data(:finish_shixun_count) %><%= user.display_extra_data(:evaluate_count) %><%= Util.display_cost_time(user.display_extra_data(:cost_time)) || '--' %>
    姓名 单位部门<%= sort_tag('学习关卡数', name: 'study_challenge_count', path: admins_user_statistics_path) %><%= sort_tag('完成关卡数', name: 'finish_challenge_count', path: admins_user_statistics_path) %>学习关卡数<%#= sort_tag('学习关卡数', name: 'study_challenge_count', path: admins_user_statistics_path) %>完成关卡数<%#= sort_tag('完成关卡数', name: 'finish_challenge_count', path: admins_user_statistics_path) %> <%= sort_tag('学习实训数', name: 'study_shixun_count', path: admins_user_statistics_path) %> <%= sort_tag('完成实训数', name: 'finish_shixun_count', path: admins_user_statistics_path) %> 评测次数
    + + 翻转课堂 + +
    + + + + + + + + + ) + } +} +export default Competitionteams; \ 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 new file mode 100644 index 000000000..e69de29bb diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index cc52f610f..b3c588c41 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -12,10 +12,24 @@ import { SnackbarHOC } from 'educoder' //新版竞赛首页 const CompetitionsIndex = Loadable({ - loader: () => import('./competitimain/CompetitionsIndex'), + loader: () => import('./Competitimain/CompetitionsIndex'), loading: Loading, }) +//竞赛详情页 +const CompetitionCommon=Loadable({ + loader: () => import('./CompetitionCommon/CompetitionCommon'), + loading: Loading, +}) + + +//战队详情 +const CompetitionTeams = Loadable({ + loader: () => import('./Competition_teams/Competitionteams'), + loading: Loading, +}) + + class Competitions extends Component { constructor(props) { super(props) @@ -31,14 +45,28 @@ class Competitions extends Component {
    - {/*新版竞赛首页*/} + {/*新版竞赛详情页面*/} + () + } + > + {/*新版竞赛战队详情*/} + () + } + > + {/*新版竞赛首页*/} () } > + +
    From 3fed71a4111871bb19bd1815cb1370f369995bc6 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 10:03:21 +0800 Subject: [PATCH 058/126] =?UTF-8?q?=E6=88=98=E9=98=9F=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings/index.js | 60 ++++++++++++++++++- .../competition_teams_controller.rb | 11 +++- .../competition_settings/index.html.erb | 53 ++++++++++++---- .../competition_teams/index.json.jbuilder | 32 ++++++++-- 4 files changed, 134 insertions(+), 22 deletions(-) diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js index f02f845c4..78b3fceda 100644 --- a/app/assets/javascripts/admins/competition_settings/index.js +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -5,8 +5,7 @@ $(document).on('turbolinks:load', function(){ autoclose: true, language: 'zh-CN', format: 'yyyy-mm-dd', - startDate: '2017-04-01', - endDate: '-1d' + startDate: '2017-04-01' }; var defineDateRangeSelect = function(element){ @@ -19,5 +18,60 @@ $(document).on('turbolinks:load', function(){ }; defineDateRangeSelect('.teaching-mode-date'); - } + defineDateRangeSelect('.competition-start-end-date'); + + var $basic_form = $('form.basic-setting-form'); + + $basic_form.validate({ + errorElement: 'span', + errorClass: 'danger text-danger', + rules: { + name: "required", + subTitle: "required", + startTime: "required", + endTime: "required", + mode: "required", + identifier: "required" + } + }); + + // 保存按钮 + $basic_form.on('click', ".submit-btn", function(){ + $basic_form.find('.submit-btn').attr('disabled', 'disabled'); + $basic_form.find('.error').html(''); + var valid = $basic_form.valid(); + + + + $('input[name="navbar[][name]"]').each(function(_, e){ + var $ele = $(e); + if($ele.val() === undefined || $ele.val().length === 0){ + $ele.addClass('danger text-danger'); + valid = false; + } else { + $ele.removeClass('danger text-danger'); + } + }); + + if(!valid) return; + $.ajax({ + method: 'PATCH', + dataType: 'json', + url: $form.attr('action'), + data: new FormData($form[0]), + processData: false, + contentType: false, + success: function(data){ + $.notify({ message: '保存成功' }); + window.location.reload(); + }, + error: function(res){ + var data = res.responseJSON; + $form.find('.error').html(data.message); + }, + complete: function(){ + $form.find('.submit-btn').attr('disabled', false); + } + }); + }); }); \ No newline at end of file diff --git a/app/controllers/competitions/competition_teams_controller.rb b/app/controllers/competitions/competition_teams_controller.rb index 6a4dbfd34..db4608807 100644 --- a/app/controllers/competitions/competition_teams_controller.rb +++ b/app/controllers/competitions/competition_teams_controller.rb @@ -60,7 +60,12 @@ class Competitions::CompetitionTeamsController < Competitions::BaseController def index @personal = current_competition.personal? - admin_or_business? ? all_competition_teams : user_competition_teams + if admin_or_business? + all_competition_teams + user_competition_teams + else + user_competition_teams + end end def create @@ -113,8 +118,8 @@ class Competitions::CompetitionTeamsController < Competitions::BaseController teams = teams.joins(users: { user_extension: :school }).where('schools.name LIKE ?', "%#{keyword}%") end - @count = teams.count - @teams = paginate(teams.includes(:user, users: { user_extension: :school })) + @all_count = teams.count + @all_teams = paginate(teams.includes(:user, users: { user_extension: :school })) end def user_competition_teams diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index 4c73609e4..74ca38502 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -12,6 +12,34 @@
    <%= form_tag(admins_competition_competition_settings_path(unsafe_params), method: :post, class: 'basic-setting-form flex-1', remote: true) do %>
    +
    +
    + 主标题 +
    +
    + <%= text_field_tag(:name, @competition.name, autocomplete: 'off', class: 'form-control', placeholder: '竞赛标题') %> +
    +
    + +
    +
    + 副标题 +
    +
    + <%= text_field_tag(:sub_title, @competition.sub_title, autocomplete: 'off', class: 'form-control', placeholder: '竞赛副标题') %> +
    +
    + +
    +
    + 起止时间 +
    +
    + <%= text_field_tag :start_time, @competition.start_time&.strftime('%Y-%m-%d'), autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '竞赛开始时间' %> + <%= text_field_tag :end_time, @competition.end_time&.strftime('%Y-%m-%d'), autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '竞赛截止时间' %> +
    +
    +
    竞赛模式 @@ -42,12 +70,12 @@
    - <%= text_field_tag :start_time, @competition.competition_mode_setting&.start_time, autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '统计数据的开始时间' %> - <%= text_field_tag :end_time, @competition.competition_mode_setting&.end_time, autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '统计数据的结束时间' %> + <%= text_field_tag :teach_start_time, @competition.competition_mode_setting&.start_time, autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '统计数据的开始时间' %> + <%= text_field_tag :teach_end_time, @competition.competition_mode_setting&.end_time, autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '统计数据的结束时间' %>
    -
    +
    @@ -56,7 +84,7 @@
    -
    +
    URL
    @@ -65,7 +93,7 @@
    -
    +
    主办方
    @@ -74,7 +102,7 @@
    -
    +
    奖金
    @@ -86,16 +114,16 @@
    -
    +
    - 获奖人数 + 奖项数
    - <%= number_field_tag(:bonus, @competition.bonus, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入总奖金额') %> + <%= number_field_tag(:awards_count, @competition.awards_count, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入奖项数') %>
    -
    +
    描述
    @@ -104,7 +132,9 @@
    -
    +
    + +
    @@ -112,7 +142,6 @@
    - <% end %>
    diff --git a/app/views/competitions/competition_teams/index.json.jbuilder b/app/views/competitions/competition_teams/index.json.jbuilder index d44fcdf1c..bf5863588 100644 --- a/app/views/competitions/competition_teams/index.json.jbuilder +++ b/app/views/competitions/competition_teams/index.json.jbuilder @@ -1,13 +1,11 @@ -json.count @count +json.count @all_count json.personal @personal json.competition_teams do - json.array! @teams.each do |team| + json.array! @all_teams&.each do |team| json.extract! team, :id, :name, :invite_code json.team_type team.en_team_type json.school_name team.user.school_name - json.manage_permission current_user.id == team.user_id - json.creator do json.partial! 'users/user_simple', user: team.user json.role team.team_members.find(&:creator?).en_role @@ -25,3 +23,29 @@ json.competition_teams do end end end + +json.my_teams @teams.each do |team| + json.extract! team, :id, :name, :invite_code + json.team_type team.en_team_type + json.school_name team.user.school_name + + json.manage_permission current_user.id == team.user_id + + json.creator do + json.partial! 'users/user_simple', user: team.user + json.role team.team_members.find(&:creator?).en_role + end + + json.team_members do + json.array! team.team_members.each do |member| + json.partial! 'users/user_simple', user: member.user + json.user_id member.user_id + json.role member.en_role + json.identity member.user.identity + json.school_name member.user.school_name + json.student_id member.user.student_id + end + end +end + + From 827a1277961d428453dcb015ce6b6d2d9b21954b Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 10:33:18 +0800 Subject: [PATCH 059/126] =?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 --- .../admins/competition_settings/index.js | 46 ++++++++++++------- .../competition_settings/index.html.erb | 2 +- .../competition_teams/index.json.jbuilder | 1 + 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js index 78b3fceda..2b3c31190 100644 --- a/app/assets/javascripts/admins/competition_settings/index.js +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -20,9 +20,9 @@ $(document).on('turbolinks:load', function(){ defineDateRangeSelect('.teaching-mode-date'); defineDateRangeSelect('.competition-start-end-date'); - var $basic_form = $('form.basic-setting-form'); + var $basicForm = $('form.basic-setting-form'); - $basic_form.validate({ + $basicForm.validate({ errorElement: 'span', errorClass: 'danger text-danger', rules: { @@ -36,29 +36,43 @@ $(document).on('turbolinks:load', function(){ }); // 保存按钮 - $basic_form.on('click', ".submit-btn", function(){ - $basic_form.find('.submit-btn').attr('disabled', 'disabled'); - $basic_form.find('.error').html(''); - var valid = $basic_form.valid(); - + $basicForm.on('click', ".submit-btn", function(){ + $basicForm.find('.submit-btn').attr('disabled', 'disabled'); + $basicForm.find('.error').html(''); + var valid = $basicForm.valid(); + if($("input[name='mode'[checked]]").val() == 2) { + var $courseId = $("input[name='course_id'"); + if($courseId.val() === undefined || $course_id.val().length === 0){ + $courseId.addClass('danger text-danger'); + valid = false; + } else { + $courseId.removeClass('danger text-danger'); + } + } else if ($("input[name='mode'[checked]]").val() == 4) { + var $techStartTime = $("input[name='teach_start_time'"); + var $techEndTime = $("input[name='teach_end_time'"); + if($techStartTime.val() === undefined || $techStartTime.val().length === 0){ + $techStartTime.addClass('danger text-danger'); + valid = false; + } else { + $techStartTime.removeClass('danger text-danger'); + } - $('input[name="navbar[][name]"]').each(function(_, e){ - var $ele = $(e); - if($ele.val() === undefined || $ele.val().length === 0){ - $ele.addClass('danger text-danger'); + if($techEndTime.val() === undefined || $techEndTime.val().length === 0){ + $techEndTime.addClass('danger text-danger'); valid = false; } else { - $ele.removeClass('danger text-danger'); + $techEndTime.removeClass('danger text-danger'); } - }); + } if(!valid) return; $.ajax({ - method: 'PATCH', + method: 'POST', dataType: 'json', - url: $form.attr('action'), - data: new FormData($form[0]), + url: $basicForm.attr('action'), + data: new FormData($basicForm[0]), processData: false, contentType: false, success: function(data){ diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index 74ca38502..4539a6e34 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -10,7 +10,7 @@ 基础设置
    - <%= form_tag(admins_competition_competition_settings_path(unsafe_params), method: :post, class: 'basic-setting-form flex-1', remote: true) do %> + <%= simple_form_for(@competition, url: a_path(@laboratory), method: 'patch', html: { enctype: 'multipart/form-data' }) do |f| %>
    diff --git a/app/views/competitions/competition_teams/index.json.jbuilder b/app/views/competitions/competition_teams/index.json.jbuilder index bf5863588..a86bfb30e 100644 --- a/app/views/competitions/competition_teams/index.json.jbuilder +++ b/app/views/competitions/competition_teams/index.json.jbuilder @@ -5,6 +5,7 @@ json.competition_teams do json.extract! team, :id, :name, :invite_code json.team_type team.en_team_type json.school_name team.user.school_name + json.created_at team.created_at.strftime("%Y-%m-%d %H:%M") json.creator do json.partial! 'users/user_simple', user: team.user 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 060/126] 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}
    +
    + + +
    + ) + } +} + +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 6ad8baa74a416edfc80bcc86b60f4f69b44a9380 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 23 Oct 2019 15:19:43 +0800 Subject: [PATCH 071/126] huanjing --- Gemfile.lock | 2 +- .../20190426010412_add_is_invalid_to_student_works_scores.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4b7902353..79634fd70 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,4 +423,4 @@ RUBY VERSION ruby 2.3.7p456 BUNDLED WITH - 1.17.3 + 2.0.2 diff --git a/db/migrate/20190426010412_add_is_invalid_to_student_works_scores.rb b/db/migrate/20190426010412_add_is_invalid_to_student_works_scores.rb index 7b893db6d..2d782f924 100644 --- a/db/migrate/20190426010412_add_is_invalid_to_student_works_scores.rb +++ b/db/migrate/20190426010412_add_is_invalid_to_student_works_scores.rb @@ -1,6 +1,6 @@ class AddIsInvalidToStudentWorksScores < ActiveRecord::Migration[5.2] def change - # add_column :student_works_scores, :is_invalid, :boolean, default: false + add_column :student_works_scores, :is_invalid, :boolean, default: false StudentWorksScore.where("score is not null").order("id desc").find_each do |score| unless score.is_invalid From 8a37633344bb8fff44fa88d455d9731318e555af Mon Sep 17 00:00:00 2001 From: p31729568 Date: Wed, 23 Oct 2019 15:24:07 +0800 Subject: [PATCH 072/126] weapp: add login check api --- app/controllers/schools_controller.rb | 6 ++- .../weapps/check_accounts_controller.rb | 38 +++++++++++++++++++ config/routes.rb | 1 + 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 app/controllers/weapps/check_accounts_controller.rb diff --git a/app/controllers/schools_controller.rb b/app/controllers/schools_controller.rb index f0dd6dd75..c6265c274 100644 --- a/app/controllers/schools_controller.rb +++ b/app/controllers/schools_controller.rb @@ -11,6 +11,10 @@ class SchoolsController < ApplicationController end def for_option - render_ok(schools: School.select(:id, :name).as_json) + schools = School.all + keyword = params[:keyword].to_s.strip + schools = schools.where('name LIKE ?', "%#{keyword}%") if keyword + + render_ok(schools: schools.select(:id, :name).as_json) end end diff --git a/app/controllers/weapps/check_accounts_controller.rb b/app/controllers/weapps/check_accounts_controller.rb new file mode 100644 index 000000000..429c165b3 --- /dev/null +++ b/app/controllers/weapps/check_accounts_controller.rb @@ -0,0 +1,38 @@ +class Weapps::CheckAccountsController < Weapps::BaseController + def create + params[:type] == 'register' ? check_can_register : check_can_bind + end + + private + + def check_can_bind + if params[:login] =~ /^[a-zA-Z0-9]+([._\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/ + user = User.find_by(mail: params[:login]) + return render_error('该邮箱尚未注册') if user.blank? + elsif params[:login] =~ /^1\d{10}$/ + user = User.find_by(phone: params[:login]) + return render_error('该手机号尚未注册') if user.blank? + else + user = User.find_by(login: params[:login]) + return render_error('该账号尚未注册') if user.blank? + end + + return render_error('该账号已经绑定') if user.wechat_open_user.present? + + render_ok + end + + def check_can_register + if params[:login] =~ /^[a-zA-Z0-9]+([._\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/ + user = User.find_by(mail: params[:login]) + return render_error('该邮箱已注册') if user.present? + elsif params[:login] =~ /^1\d{10}$/ + user = User.find_by(phone: params[:login]) + return render_error('该手机号已注册') if user.present? + else + return render_error('请输入正确的邮箱或手机号') + end + + render_ok + end +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 2a731a595..49e8215ba 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -854,6 +854,7 @@ Rails.application.routes.draw do resource :register, only: [:create] resource :code_session, only: [:create] resource :verify, only: [:create] + resource :check_account, only: [:create] resources :searchs, only: [:index] end From 931ba23bccf58792e4aebede66c5a930444937a2 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Wed, 23 Oct 2019 15:32:40 +0800 Subject: [PATCH 073/126] admins: fix import course member --- Gemfile.lock | 2 +- app/services/admins/import_course_member_service.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 79634fd70..4b7902353 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,4 +423,4 @@ RUBY VERSION ruby 2.3.7p456 BUNDLED WITH - 2.0.2 + 1.17.3 diff --git a/app/services/admins/import_course_member_service.rb b/app/services/admins/import_course_member_service.rb index 8f162902f..9b9393e78 100644 --- a/app/services/admins/import_course_member_service.rb +++ b/app/services/admins/import_course_member_service.rb @@ -36,7 +36,7 @@ class Admins::ImportCourseMemberService < ApplicationService member = course.course_members.find_by(user_id: user.id, role: data.role.to_i) # 如果已是课堂成员且是学生身份and不在指定的分班则移动到该分班 - if member.present? && member.role == :STUDENT && course_group && member.course_group_id != course_group&.id + if member.present? && member.role == 'STUDENT' && course_group && member.course_group_id != course_group&.id member.update!(course_group_id: course_group&.id) elsif member.blank? course.course_members.create!(user_id: user.id, role: data.role.to_i, course_group_id: course_group&.id) 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 074/126] 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 15:59:22 +0800 Subject: [PATCH 075/126] =?UTF-8?q?=E5=9B=9E=E5=A4=8Dxss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 11 +++++++++++ app/views/memos/_memo.json.jbuilder | 2 +- app/views/memos/_replies_list.json.jbuilder | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1d684350c..614e45425 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -15,6 +15,17 @@ module ApplicationHelper EduSetting.get(name) end + # xss共计问题 + def content_safe content + tags = %w( + a abbr b bdo blockquote br caption cite code col colgroup dd del dfn dl + dt em figcaption figure h1 h2 h3 h4 h5 h6 hgroup i img ins kbd li mark + ol p pre q rp rt ruby s samp small strike strong sub sup table tbody td + tfoot th thead time tr u ul var wbr div span + ) + sanitize content, tags: tags + end + def graduation_navigation graduation graduation.class.to_s == "GraduationTopic" ? "毕设选题" : "毕设任务" end diff --git a/app/views/memos/_memo.json.jbuilder b/app/views/memos/_memo.json.jbuilder index a09b7f293..a9c430017 100644 --- a/app/views/memos/_memo.json.jbuilder +++ b/app/views/memos/_memo.json.jbuilder @@ -3,7 +3,7 @@ json.memo do json.forum_id memo.forum_id json.subject memo.subject json.is_md memo.is_md - json.content memo.content + json.content content_safe(memo.content) json.sticky memo.sticky json.reward memo.reward json.viewed_count memo.viewed_count diff --git a/app/views/memos/_replies_list.json.jbuilder b/app/views/memos/_replies_list.json.jbuilder index 9ec6976c2..9179a9bff 100644 --- a/app/views/memos/_replies_list.json.jbuilder +++ b/app/views/memos/_replies_list.json.jbuilder @@ -15,7 +15,7 @@ json.admin @user.admin? || @user.business? json.children do json.array! memo.children_of_reply do |child| json.id child.id - json.content child.content + json.content content_safe(child.content) json.time time_from_now(child.created_at) json.image_url url_to_avatar(child.author) json.username child.author.full_name From 413ade904c55bb8be768720bfa6388ade59b1def Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Wed, 23 Oct 2019 16:05:29 +0800 Subject: [PATCH 076/126] =?UTF-8?q?xss=E6=94=BB=E5=87=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/memos/_replies_list.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/memos/_replies_list.json.jbuilder b/app/views/memos/_replies_list.json.jbuilder index 9179a9bff..8f86e79a6 100644 --- a/app/views/memos/_replies_list.json.jbuilder +++ b/app/views/memos/_replies_list.json.jbuilder @@ -1,5 +1,5 @@ json.id memo.id -json.content memo.content +json.content content_safe(memo.content) json.time time_from_now(memo.created_at) json.user_id memo.author_id json.image_url url_to_avatar(memo.author) From ff3aac49d1282ee0037bd938b62561d3a531a496 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Wed, 23 Oct 2019 16:17:14 +0800 Subject: [PATCH 077/126] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/discusses/_discuss.json.jbuilder | 2 +- app/views/messages/_content.json.jbuilder | 2 +- app/views/messages/_message_detail.json.jbuilder | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/discusses/_discuss.json.jbuilder b/app/views/discusses/_discuss.json.jbuilder index 400798150..5244414f9 100644 --- a/app/views/discusses/_discuss.json.jbuilder +++ b/app/views/discusses/_discuss.json.jbuilder @@ -2,7 +2,7 @@ json.author do json.partial! 'users/user', user: discuss.user end json.id discuss.id -json.content discuss.content +json.content content_safe(discuss.content) json.time time_from_now(discuss.created_at) json.position discuss.position json.shixun_id discuss.dis_id diff --git a/app/views/messages/_content.json.jbuilder b/app/views/messages/_content.json.jbuilder index 5e1d9088b..760f1670d 100644 --- a/app/views/messages/_content.json.jbuilder +++ b/app/views/messages/_content.json.jbuilder @@ -1 +1 @@ -json.content content \ No newline at end of file +json.content content_safe(content) \ No newline at end of file diff --git a/app/views/messages/_message_detail.json.jbuilder b/app/views/messages/_message_detail.json.jbuilder index 38532429f..35237f732 100644 --- a/app/views/messages/_message_detail.json.jbuilder +++ b/app/views/messages/_message_detail.json.jbuilder @@ -1,6 +1,6 @@ json.partial! "messages/message_simple", message: message json.partial! "commons/like", message: message -json.content message.message_detail.try(:content) +json.content content_safe(message.message_detail.try(:content)) json.author do json.partial! "users/user_simple", user: message.author end \ No newline at end of file From f85583d22e42e6cf3a6711fdd1544587772985a4 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 16:25:48 +0800 Subject: [PATCH 078/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=88=98=E9=98=9F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=A6=96=E9=A1=B5=20=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E8=AF=A6=E6=83=85=E9=A1=B5=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Competitimain/CompetitionsIndex.js | 2 +- .../Competitimain/Competitionsindex.css | 3 +- .../Competition_teams/Competitionteams.js | 179 +++++----- .../Competitioncommon/CompetitionCommon.css | 119 +++++++ .../Competitioncommon/CompetitionCommon.js | 312 ++++++------------ .../src/modules/competitions/Competitions.js | 14 +- 6 files changed, 316 insertions(+), 313 deletions(-) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index f1cd58e79..7f3b4bfce 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -107,6 +107,7 @@ class CompetitionsIndex extends Component{ ` .CompetitionsList{ position: relative; + max-height: 210px; } .competitonimg{ position: absolute; @@ -166,7 +167,6 @@ class CompetitionsIndex extends Component{
    {item.member_count}
    -
    } > diff --git a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css index 3e079be7a..09d6c0fc4 100644 --- a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css +++ b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css @@ -1,3 +1,4 @@ +.teamsLayout{background: transparent !important;} .courses-head{ width: 100%; height: 300px; @@ -109,7 +110,7 @@ .CompetitionsList:hover{ /*box-shadow: 0 2px 6px rgba(51,51,51,.09);*/ - box-shadow: 1px 1px 6px rgba(0,0,0,0.3); + box-shadow:3px 4px 10px 2px rgba(229,229,229,0.5); opacity: 1; border-radius: 2px; } \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js index 583f8ef7f..18b53d86e 100644 --- a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js +++ b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js @@ -24,103 +24,108 @@ class Competitionteams extends Component{ } getshixundata=()=>{ - const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/shixun_detail.json`; - // axios.get(Url).then((response) => { - // if(response.status===200){ - // console.log(response) - // } - // }) - // .catch(function (error) { - // console.log(error); - // }); - - - let data={ - shixuns: [ - { - creator: "黄井泉", // 创建者 - shixun_name: "单链表的学习与应用(I)", // 实训名称 - shixun_identifier: "mnf6b7z3", - forked: false, // false:原创 - myshixuns_count: 179, // 学习人数 - forked_myshixun_count: 0, // 被fork发布的学习人数 - valid_count: 82, // 有效作品数 - score: 1320 // 应用值 - } - ], - shixun_count: 1, // 实训总计 - total_myshixun_count: 179, // 学习人数总计 - total_forked_myshixun_count: 0, // 被fork发布的学习人数总计 - total_valid_count: 82, // 有效作品数总计 - total_shixun_score: 1320 // 应用值总计 - } + const Url =`/competitions/${this.props.match.params.identifier}/competition_teams/${this.props.match.params.competition_team_id}/shixun_detail.json`; + axios.get(Url).then((response) => { + if(response.status===200){ + // let data={ + // shixuns: [ + // { + // creator: "黄井泉", // 创建者 + // shixun_name: "单链表的学习与应用(I)", // 实训名称 + // shixun_identifier: "mnf6b7z3", + // forked: false, // false:原创 + // myshixuns_count: 179, // 学习人数 + // forked_myshixun_count: 0, // 被fork发布的学习人数 + // valid_count: 82, // 有效作品数 + // score: 1320 // 应用值 + // } + // ], + // shixun_count: 1, // 实训总计 + // total_myshixun_count: 179, // 学习人数总计 + // total_forked_myshixun_count: 0, // 被fork发布的学习人数总计 + // total_valid_count: 82, // 有效作品数总计 + // total_shixun_score: 1320 // 应用值总计 + // } + let data=response.data; + + let newarr=data.shixuns; + + let newobj={ + creator:"合计:", + shixun_name:data.shixun_count, + myshixuns_count:data.total_myshixun_count, + forked_myshixun_count:data.total_forked_myshixun_count, + valid_count:data.total_valid_count, + score:data.total_shixun_score + } + newarr.push(newobj) + + this.setState({ + shixundata:newarr + }) - let newarr=data.shixuns; - let newobj={ - creator:"合计:", - shixun_name:data.shixun_count, - myshixuns_count:data.total_myshixun_count, - forked_myshixun_count:data.total_forked_myshixun_count, - valid_count:data.total_valid_count, - score:data.total_shixun_score - } - newarr.push(newobj) + } + }) + .catch(function (error) { + console.log(error); + }); - this.setState({ - shixundata:newarr - }) - } - getcoursedata=()=>{ - const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/course_detail.json`; - // axios.get(Url).then((response) => { - // if(response.status===200){ - // console.log(response) - // } - // }) - // .catch(function (error) { - // console.log(error); - // }); - - let data={ - courses: [ - { - creator: "周海芳", // 创建者 - creator_login: "Nancy", // login - course_name: "大学计算机基础2018年秋季", - course_id: 1502, - students_count: 122, // 学生数量 - shixun_homework_count: 8, // 发布的实训作业数量 - valid_count: 977, // 有效作品数 - score: 29810 // 应用值 - } - ], - total_course_count: 1, // 课堂总计 - total_students_count: 122, // 学生数总计 - total_shixun_homework_count: 8, // 实训作业数总计 - total_valid_count: 977, // 有效作品数总计 - total_course_score: 29810 // 应用值总计 - } + } - let newarr=data.courses; + getcoursedata=()=>{ + const Url =`/competitions/${this.props.match.params.identifier}/competition_teams/${this.props.match.params.competition_team_id}/course_detail.json`; + + axios.get(Url).then((response) => { + if(response.status===200){ + // let data={ + // courses: [ + // { + // creator: "周海芳", // 创建者 + // creator_login: "Nancy", // login + // course_name: "大学计算机基础2018年秋季", + // course_id: 1502, + // students_count: 122, // 学生数量 + // shixun_homework_count: 8, // 发布的实训作业数量 + // valid_count: 977, // 有效作品数 + // score: 29810 // 应用值 + // } + // ], + // total_course_count: 1, // 课堂总计 + // total_students_count: 122, // 学生数总计 + // total_shixun_homework_count: 8, // 实训作业数总计 + // total_valid_count: 977, // 有效作品数总计 + // total_course_score: 29810 // 应用值总计 + // } + + let data=response.data; + + let newarr=data.courses; + + let newobj={ + creator:"合计:", + course_name:data.total_course_count, + students_count:data.total_students_count, + shixun_homework_count:data.total_shixun_homework_count, + valid_count:data.total_valid_count, + score:data.total_course_score + } + newarr.push(newobj) + + this.setState({ + coursedata:newarr + }) - let newobj={ - creator:"合计:", - course_name:data.total_course_count, - students_count:data.total_students_count, - shixun_homework_count:data.total_shixun_homework_count, - valid_count:data.total_valid_count, - score:data.total_course_score - } - newarr.push(newobj) + } + }) + .catch(function (error) { + console.log(error); + }); - this.setState({ - coursedata:newarr - }) } diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css index af1f40aba..4fb11b594 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css @@ -1,4 +1,11 @@ .teamsLayout{background: transparent !important;} +.teamsLayout .ant-layout-sider{ + background: transparent !important; + flex: 0 0 180px !important; + max-width: 180px !important; + min-width: 180px !important; + width: 180px !important; +} .teamsLayout .teamsLayoutitle{ font-size:18px; font-family:PingFangSC-Semibold,PingFang SC; @@ -50,4 +57,116 @@ .teamsLayoucolor-orange { color: #ff6800!important; font-size: 16px; +} + +.CompetitionCommonbanner{ + padding: 20px; + background:rgba(255,255,255,1); + box-shadow:3px 2px 12px 2px rgba(0,0,0,0.05); +} + +.CompetitionCommonbannerfont{ + height:100%; +} + +.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(1){ + max-height:100px; + font-size:25px; + font-weight:400; + color:rgba(5,16,26,1); +} + +.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(2){ + max-height: 70px; + font-size:16px; + font-weight:400; + /*color:rgba(155,155,155,1);*/ + color:#05101A; +} + +.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(3){ + max-height: 70px; + font-size: 16px; + font-weight: 400; + /*color: rgba(155,155,155,1);*/ + color:#05101A; +} + +.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(4),.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(4) button{ + height: 50px; + background: rgba(76,172,255,1); + border-radius: 4px; +} + +.Competitioncolor9b{ + color: #9B9B9B; +} + +.Competitioncolor77{ + color: #777777; + font-size: 14px; +} + +.Competitioncolor516{ + font-size:24px; + color:rgba(5,16,26,1); +} + +.Competitionfontsize22{ + font-size:22px; + font-weight:500; + color:rgba(255,255,255,1); +} + +.Competitionfontsize16{ + font-size: 16px; + font-weight: 400; + color: rgba(102,102,102,1); +} + +.ant-layout-sider { + position: relative; + min-width: 0; + background: #001529; + -webkit-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; +} + +.CompetitionMenu .ant-menu-item::after { + left: 0px !important; + right: auto; + border-right: 5px solid #4CACFF; +} + +.CompetitionMenu .ant-menu-item{ + height: 30px; + line-height: 30px; + background:none; +} + +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: transparent; +} + +.CompetitionMenu .ant-menu-item:not(:last-child){ + margin-bottom: 40px; + background: transparent; + color:#666; +} + +.CompetitionMenu .ant-menu-item{ + font-size: 18px; +} + +.CompetitionMenu .ant-menu-item-selected { + color: rgba(76,172,255,1) !important; +} + +.CompetitionMenu{ + width: 145px; + background: transparent; + border: 1px solid rgba(239,239,239,1); + padding-top: 20px; + padding-bottom: 40px !important; } \ 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 9789841c8..9096e0596 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -1,5 +1,5 @@ import React, { Component } from 'react'; -import { Breadcrumb,Layout,Table, Divider, Tag,Badge,Row, Col} from 'antd'; +import { Breadcrumb,Layout,Table, Divider, Tag,Badge,Row, Col,Button, Menu, Icon} from 'antd'; import axios from 'axios'; import NoneData from "../../courses/shixunHomework/shixunHomework"; @@ -11,235 +11,113 @@ class CompetitionCommon extends Component{ constructor(props) { super(props) this.state={ - shixundata: undefined, - coursedata:undefined, + } } componentDidMount(){ window.document.title = '竞赛'; - - this.getshixundata(); - this.getcoursedata(); + this.getbannerdata() } - getshixundata=()=>{ - const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/shixun_detail.json`; - // axios.get(Url).then((response) => { - // if(response.status===200){ - // console.log(response) - // } - // }) - // .catch(function (error) { - // console.log(error); - // }); - - - let data={ - shixuns: [ - { - creator: "黄井泉", // 创建者 - shixun_name: "单链表的学习与应用(I)", // 实训名称 - shixun_identifier: "mnf6b7z3", - forked: false, // false:原创 - myshixuns_count: 179, // 学习人数 - forked_myshixun_count: 0, // 被fork发布的学习人数 - valid_count: 82, // 有效作品数 - score: 1320 // 应用值 - } - ], - shixun_count: 1, // 实训总计 - total_myshixun_count: 179, // 学习人数总计 - total_forked_myshixun_count: 0, // 被fork发布的学习人数总计 - total_valid_count: 82, // 有效作品数总计 - total_shixun_score: 1320 // 应用值总计 - } - - - let newarr=data.shixuns; - - let newobj={ - creator:"合计:", - shixun_name:data.shixun_count, - myshixuns_count:data.total_myshixun_count, - forked_myshixun_count:data.total_forked_myshixun_count, - valid_count:data.total_valid_count, - score:data.total_shixun_score - } - newarr.push(newobj) - - this.setState({ - shixundata:newarr - }) - - } - - getcoursedata=()=>{ - const Url =`/competitions/${"gcc-course-2019"}/competition_teams/${"2007"}/course_detail.json`; - // axios.get(Url).then((response) => { - // if(response.status===200){ - // console.log(response) - // } - // }) - // .catch(function (error) { - // console.log(error); - // }); - - let data={ - courses: [ - { - creator: "周海芳", // 创建者 - creator_login: "Nancy", // login - course_name: "大学计算机基础2018年秋季", - course_id: 1502, - students_count: 122, // 学生数量 - shixun_homework_count: 8, // 发布的实训作业数量 - valid_count: 977, // 有效作品数 - score: 29810 // 应用值 - } - ], - total_course_count: 1, // 课堂总计 - total_students_count: 122, // 学生数总计 - total_shixun_homework_count: 8, // 实训作业数总计 - total_valid_count: 977, // 有效作品数总计 - total_course_score: 29810 // 应用值总计 - } - - - let newarr=data.courses; - - let newobj={ - creator:"合计:", - course_name:data.total_course_count, - students_count:data.total_students_count, - shixun_homework_count:data.total_shixun_homework_count, - valid_count:data.total_valid_count, - score:data.total_course_score - } - newarr.push(newobj) - - this.setState({ - coursedata:newarr - }) + getbannerdata=()=>{ + let url=`/competitions/${this.props.match.params.identifier}/common_header.json`; + axios.get(url).then((response) => { + console.log(response) + }).catch((error) => { + console.log(error) + }); } render() { - - const shixuncolumns = [ - { - title: '创建者', - dataIndex: 'creator', - key: 'creator', - render: (text, record) =>
    {text}
    , - }, - { - title: '名称', - dataIndex: 'shixun_name', - key: 'shixun_name', - render: (text, record) => -
    {text}{record.forked===true?:""}
    , - }, - { - title: '学习人数', - dataIndex: 'myshixuns_count', - key: 'myshixuns_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '被fork发布的学习人数', - dataIndex: 'forked_myshixun_count', - key: 'forked_myshixun_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '有效作品数', - dataIndex: 'valid_count', - key: 'valid_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '应用值', - dataIndex: 'score', - key: 'score', - render: (text, record) =>
    {text}
    , - }, - ]; - - const coursecolumns = [ - { - title: '创建者', - dataIndex: 'creator', - key: 'creator', - render: (text, record) =>
    {text}
    , - }, - { - title: '名称', - dataIndex: 'course_name', - key: 'course_name', - render: (text, record) =>
    {text}
    , - }, - { - title: '学习人数', - dataIndex: 'students_count', - key: 'students_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '被fork发布的学习人数', - dataIndex: 'shixun_homework_count', - key: 'shixun_homework_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '有效作品数', - dataIndex: 'valid_count', - key: 'valid_count', - render: (text, record) =>
    {text}
    , - }, - { - title: '应用值', - dataIndex: 'score', - key: 'score', - render: (text, record) =>
    {text}
    , - }, - ]; - - - - - console.log(this.state.shixundata) return ( -
    - - 在线竞赛 - 全国高校计算机大赛 - -
    - -
    - col-6 col-push-18 - - - col-18 col-pull-6 - - - - - - 实训项目 - -
    - - 翻转课堂 - -
    - - - - - + + 在线竞赛 + 全国高校计算机大赛 + + +
    + +
    banner + + + 全国计算机系列大赛系列大赛系列大赛 + + + 竞赛时间: + 2019-08-07 24: 00~2019-09-10 24: 00 + + + + + +
    奖金
    + +
    +
    浏览数
    + +
    +
    报名数
    + + + + +
    +
    ¥123
    + +
    +
    4124
    + +
    +
    51234
    + + + + +
    + + + 报名截止时间:2019-08-07 08:10 + + + + + + + + + + + + + + 赛制介绍 + + + + 参赛手册 + + + + 排行榜 + + + + 通知公告 + + + + + + + + Content + + diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index b02befdb1..3d5bcd920 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -45,17 +45,18 @@ class Competitions extends Component {
    - {/*新版竞赛详情页面*/} - () + (props) => () } > - {/*新版竞赛战队详情*/} - () + (props) => () } > @@ -66,7 +67,6 @@ class Competitions extends Component { } > -
    From cf59d7fff7e22c376df89063f5bbc1cc2596723b 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 16:29:59 +0800 Subject: [PATCH 079/126] 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 03117b8b5a3f8b0396f9e1101c06f1fa8b2da7d3 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 16:33:14 +0800 Subject: [PATCH 080/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings/index.js | 10 ++--- .../admins/competition_settings_controller.rb | 11 ++++-- app/models/competition.rb | 17 ++++++-- app/models/competition_module.rb | 12 +++--- ...b => competition_basic_setting_service.rb} | 15 +++++-- .../admins/competition_nav_setting_service.rb | 39 +++++++++++++++++++ .../competitions/common_header.json.jbuilder | 2 +- ...3074837_migrate_competition_module_type.rb | 28 +++++++++++++ 8 files changed, 113 insertions(+), 21 deletions(-) rename app/services/admins/{competition_basic_setting.rb => competition_basic_setting_service.rb} (62%) create mode 100644 app/services/admins/competition_nav_setting_service.rb create mode 100644 db/migrate/20191023074837_migrate_competition_module_type.rb diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js index 366838627..4ee6235eb 100644 --- a/app/assets/javascripts/admins/competition_settings/index.js +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -57,7 +57,7 @@ $(document).on('turbolinks:load', function(){ $basicForm.find('.error').html(''); var valid = $basicForm.valid(); - if ($("input[name='mode'[checked]]").val() == 2) { + if ($("input[name='mode']:checked").val() == 2) { var $courseId = $("input[name='course_id'"); if ($courseId.val() === undefined || $course_id.val().length === 0) { $courseId.addClass('danger text-danger'); @@ -65,7 +65,7 @@ $(document).on('turbolinks:load', function(){ } else { $courseId.removeClass('danger text-danger'); } - } else if ($("input[name='mode'[checked]]").val() == 4) { + } else if ($("input[name='mode']:checked").val() == 4) { var $techStartTime = $("input[name='teach_start_time'"); var $techEndTime = $("input[name='teach_end_time'"); if ($techStartTime.val() === undefined || $techStartTime.val().length === 0) { @@ -85,7 +85,7 @@ $(document).on('turbolinks:load', function(){ if (!valid) return; $.ajax({ - method: 'PUT', + method: 'POST', dataType: 'json', url: $basicForm.attr('action'), data: new FormData($basicForm[0]), @@ -97,10 +97,10 @@ $(document).on('turbolinks:load', function(){ }, error: function (res) { var data = res.responseJSON; - $form.find('.error').html(data.message); + $basicForm.find('.error').html(data.message); }, complete: function () { - $form.find('.submit-btn').attr('disabled', false); + $basicForm.find('.submit-btn').attr('disabled', false); } }); }); diff --git a/app/controllers/admins/competition_settings_controller.rb b/app/controllers/admins/competition_settings_controller.rb index a1ac27d8c..f4863458c 100644 --- a/app/controllers/admins/competition_settings_controller.rb +++ b/app/controllers/admins/competition_settings_controller.rb @@ -4,7 +4,12 @@ class Admins::CompetitionSettingsController < Admins::BaseController end def basic_setting - Admins::CompetitionBasicSettingService.call(current_competition, form_params) + Admins::CompetitionBasicSettingService.call(current_competition, basic_form_params) + render_ok + end + + def nav_setting + Admins::CompetitionNavSettingService.call(current_competition, basic_form_params) render_ok end @@ -14,7 +19,7 @@ class Admins::CompetitionSettingsController < Admins::BaseController @_current_competition ||= Competition.find(params[:competition_id]) end - def form_params - params.permit(:identifier, :name, :nav_logo, :login_logo, :tab_logo, :footer, navbar: %i[name link hidden]) + def basic_form_params + params.permit(:identifier, :name, :sub_title, :start_time, :end_time, :mode, :identifier, :bonus, :awards_count, :description, :course_id, :teach_start_time, :teach_end_time) end end \ No newline at end of file diff --git a/app/models/competition.rb b/app/models/competition.rb index 708af2556..44b38f321 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -100,10 +100,21 @@ class Competition < ApplicationRecord private + def get_module_name type + case type + when 'home' then '首页' + when 'enroll' then '报名' + when 'inform' then '通知公告' + when 'chart' then '排行榜' + when 'resource' then '资料下载' + else '' + end + end + def create_competition_modules - CompetitionModule.bulk_insert(*%i[competition_id name position created_at updated_at]) do |worker| - %w(首页 报名 通知公告 排行榜 资料下载).each_with_index do |name, index| - worker.add(competition_id: id, name: name, position: index + 1) + CompetitionModule.bulk_insert(*%i[competition_id module_type name position created_at updated_at]) do |worker| + %w(home enroll inform chart resource).each_with_index do |type, index| + worker.add(competition_id: id, module_type: type, name: get_module_name(type), position: index + 1, ) end end end diff --git a/app/models/competition_module.rb b/app/models/competition_module.rb index 9579533da..76f7610d2 100644 --- a/app/models/competition_module.rb +++ b/app/models/competition_module.rb @@ -6,16 +6,16 @@ class CompetitionModule < ApplicationRecord has_one :competition_module_md_content, dependent: :destroy def module_url - case name - when "首页", "赛制介绍" + case module_type + when "home" "/competitions/#{competition.identifier}" - when "通知公告" + when "inform" "/competitions/#{competition.identifier}/informs?status=1" - when "参赛手册" + when "manual" "/competitions/#{competition.identifier}/informs?status=2" - when "排行榜" + when "chart" "/competitions/#{competition.identifier}/charts" - when "报名" + when "enroll" "/competitions/#{competition.identifier}/competition_teams" else url || "/competitions/#{competition.identifier}/md_content?md_content_id=#{competition_module_md_content&.id}" diff --git a/app/services/admins/competition_basic_setting.rb b/app/services/admins/competition_basic_setting_service.rb similarity index 62% rename from app/services/admins/competition_basic_setting.rb rename to app/services/admins/competition_basic_setting_service.rb index b8e2c3686..e5a7dd6be 100644 --- a/app/services/admins/competition_basic_setting.rb +++ b/app/services/admins/competition_basic_setting_service.rb @@ -13,7 +13,7 @@ class Admins::CompetitionBasicSettingService < ApplicationService competition.start_time = params[:start_time] competition.end_time = params[:end_time] competition.mode = params[:mode] - competition.identifier = strip params[:indentifier] + competition.identifier = strip params[:identifier] competition.bonus = params[:bonus] competition.awards_count = params[:awards_count] competition.description = strip params[:description] @@ -22,9 +22,18 @@ class Admins::CompetitionBasicSettingService < ApplicationService if competition.mode == 1 || competition.mode == 4 competition.competition_mode_setting.destroy - elsif competition.mode == 2 - + else + setting = competition.competition_mode_setting || CompetitionModeSetting.create!(competition_id: competition.id) + if competition.mode == 2 + setting.course_id = params[:course_id] + elsif competition.mode == 3 + setting.start_time = params[:teach_start_time] + setting.end_time = params[:teach_end_time] + end + setting.save! end + + competition end end end \ No newline at end of file diff --git a/app/services/admins/competition_nav_setting_service.rb b/app/services/admins/competition_nav_setting_service.rb new file mode 100644 index 000000000..1923f4e4c --- /dev/null +++ b/app/services/admins/competition_nav_setting_service.rb @@ -0,0 +1,39 @@ +class Admins::CompetitionNavSettingService < ApplicationService + attr_reader :competition, :params + + def initialize(competition, params) + @params = params + @competition = competition + end + + def call + ActiveRecord::Base.transaction do + competition.name = strip params[:name] + competition.sub_title = strip params[:sub_title] + competition.start_time = params[:start_time] + competition.end_time = params[:end_time] + competition.mode = params[:mode] + competition.identifier = strip params[:identifier] + competition.bonus = params[:bonus] + competition.awards_count = params[:awards_count] + competition.description = strip params[:description] + + competition.save! + + if competition.mode == 1 || competition.mode == 4 + competition.competition_mode_setting.destroy + else + setting = competition.competition_mode_setting || CompetitionModeSetting.create!(competition_id: competition.id) + if competition.mode == 2 + setting.course_id = params[:course_id] + elsif competition.mode == 3 + setting.start_time = params[:teach_start_time] + setting.end_time = params[:teach_end_time] + end + setting.save! + end + + competition + end + end +end \ No newline at end of file diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder index 882d1d1c0..88d7925a7 100644 --- a/app/views/competitions/competitions/common_header.json.jbuilder +++ b/app/views/competitions/competitions/common_header.json.jbuilder @@ -17,7 +17,7 @@ end json.stages -if @competition.mode == 1 +if @competition.mode == 2 json.course_id @competition.competition_mode_setting&.course_id json.member_of_course @user.member_of_course?(@competition.competition_mode_setting&.course) end diff --git a/db/migrate/20191023074837_migrate_competition_module_type.rb b/db/migrate/20191023074837_migrate_competition_module_type.rb new file mode 100644 index 000000000..009b65cc9 --- /dev/null +++ b/db/migrate/20191023074837_migrate_competition_module_type.rb @@ -0,0 +1,28 @@ +class MigrateCompetitionModuleType < ActiveRecord::Migration[5.2] + def change + add_column :competition_modules, :module_type, :string + + Competition.all.each do |competition| + competition.competition_modules.each do |com_module| + mod_type = "" + case com_module.name + when '首页' + mod_type = "home" + when '报名' + mod_type = "enroll" + when '通知公告' + mod_type = "inform" + when '参赛手册' + mod_type = "manual" + when '排行榜' + mod_type = "chart" + when '资料下载 ' + mod_type = "resource" + else + mod_type = "md" + end + com_module.update_attributes!(module_type: mod_type) + end + end + end +end From c72b15d5195ea7d305a2ef4b4e72420b27425075 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 16:39:27 +0800 Subject: [PATCH 081/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompetitionsIndex.js | 0 .../Competitionsindex.css | 0 .../{Competitimain => Competitimains}/courses.jpg | Bin .../{Competitimain => Competitimains}/groups1.png | Bin .../{Competitimain => Competitimains}/groups2.png | Bin .../{Competitimain => Competitimains}/groups3.png | Bin .../react/src/modules/competitions/Competitions.js | 2 +- 7 files changed, 1 insertion(+), 1 deletion(-) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/CompetitionsIndex.js (100%) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/Competitionsindex.css (100%) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/courses.jpg (100%) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/groups1.png (100%) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/groups2.png (100%) rename public/react/src/modules/competitions/{Competitimain => Competitimains}/groups3.png (100%) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimains/CompetitionsIndex.js similarity index 100% rename from public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js rename to public/react/src/modules/competitions/Competitimains/CompetitionsIndex.js diff --git a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css b/public/react/src/modules/competitions/Competitimains/Competitionsindex.css similarity index 100% rename from public/react/src/modules/competitions/Competitimain/Competitionsindex.css rename to public/react/src/modules/competitions/Competitimains/Competitionsindex.css diff --git a/public/react/src/modules/competitions/Competitimain/courses.jpg b/public/react/src/modules/competitions/Competitimains/courses.jpg similarity index 100% rename from public/react/src/modules/competitions/Competitimain/courses.jpg rename to public/react/src/modules/competitions/Competitimains/courses.jpg diff --git a/public/react/src/modules/competitions/Competitimain/groups1.png b/public/react/src/modules/competitions/Competitimains/groups1.png similarity index 100% rename from public/react/src/modules/competitions/Competitimain/groups1.png rename to public/react/src/modules/competitions/Competitimains/groups1.png diff --git a/public/react/src/modules/competitions/Competitimain/groups2.png b/public/react/src/modules/competitions/Competitimains/groups2.png similarity index 100% rename from public/react/src/modules/competitions/Competitimain/groups2.png rename to public/react/src/modules/competitions/Competitimains/groups2.png diff --git a/public/react/src/modules/competitions/Competitimain/groups3.png b/public/react/src/modules/competitions/Competitimains/groups3.png similarity index 100% rename from public/react/src/modules/competitions/Competitimain/groups3.png rename to public/react/src/modules/competitions/Competitimains/groups3.png diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index 3d5bcd920..069858ac8 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -12,7 +12,7 @@ import { SnackbarHOC } from 'educoder'; //新版竞赛首页 const CompetitionsIndex = Loadable({ - loader: () => import('./Competitimain/CompetitionsIndex'), + loader: () => import('./Competitimains/CompetitionsIndex'), loading: Loading, }) From 8d30810f55c4327928eb709f7042c092bdbd3ce9 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 16:40:09 +0800 Subject: [PATCH 082/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompetitionsIndex.js | 0 .../Competitionsindex.css | 0 .../{Competitimains => Competitimain}/courses.jpg | Bin .../{Competitimains => Competitimain}/groups1.png | Bin .../{Competitimains => Competitimain}/groups2.png | Bin .../{Competitimains => Competitimain}/groups3.png | Bin .../react/src/modules/competitions/Competitions.js | 2 +- 7 files changed, 1 insertion(+), 1 deletion(-) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/CompetitionsIndex.js (100%) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/Competitionsindex.css (100%) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/courses.jpg (100%) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/groups1.png (100%) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/groups2.png (100%) rename public/react/src/modules/competitions/{Competitimains => Competitimain}/groups3.png (100%) diff --git a/public/react/src/modules/competitions/Competitimains/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js similarity index 100% rename from public/react/src/modules/competitions/Competitimains/CompetitionsIndex.js rename to public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js diff --git a/public/react/src/modules/competitions/Competitimains/Competitionsindex.css b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css similarity index 100% rename from public/react/src/modules/competitions/Competitimains/Competitionsindex.css rename to public/react/src/modules/competitions/Competitimain/Competitionsindex.css diff --git a/public/react/src/modules/competitions/Competitimains/courses.jpg b/public/react/src/modules/competitions/Competitimain/courses.jpg similarity index 100% rename from public/react/src/modules/competitions/Competitimains/courses.jpg rename to public/react/src/modules/competitions/Competitimain/courses.jpg diff --git a/public/react/src/modules/competitions/Competitimains/groups1.png b/public/react/src/modules/competitions/Competitimain/groups1.png similarity index 100% rename from public/react/src/modules/competitions/Competitimains/groups1.png rename to public/react/src/modules/competitions/Competitimain/groups1.png diff --git a/public/react/src/modules/competitions/Competitimains/groups2.png b/public/react/src/modules/competitions/Competitimain/groups2.png similarity index 100% rename from public/react/src/modules/competitions/Competitimains/groups2.png rename to public/react/src/modules/competitions/Competitimain/groups2.png diff --git a/public/react/src/modules/competitions/Competitimains/groups3.png b/public/react/src/modules/competitions/Competitimain/groups3.png similarity index 100% rename from public/react/src/modules/competitions/Competitimains/groups3.png rename to public/react/src/modules/competitions/Competitimain/groups3.png diff --git a/public/react/src/modules/competitions/Competitions.js b/public/react/src/modules/competitions/Competitions.js index 069858ac8..3d5bcd920 100644 --- a/public/react/src/modules/competitions/Competitions.js +++ b/public/react/src/modules/competitions/Competitions.js @@ -12,7 +12,7 @@ import { SnackbarHOC } from 'educoder'; //新版竞赛首页 const CompetitionsIndex = Loadable({ - loader: () => import('./Competitimains/CompetitionsIndex'), + loader: () => import('./Competitimain/CompetitionsIndex'), loading: Loading, }) From 258c7150ef82b2f88272d6a659a20c347309569e Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Wed, 23 Oct 2019 17:27:15 +0800 Subject: [PATCH 083/126] =?UTF-8?q?python=E6=96=87=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/myshixuns_controller.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index 4e587513a..4b2e3f54f 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -264,11 +264,13 @@ class MyshixunsController < ApplicationController unless @hide_code || (@myshixun.shixun&.vnc_evaluate && params[:evaluate].present?) # 远程版本库文件内容 last_content = GitService.file_content(repo_path: @repo_path, path: path)["content"] - content = if @myshixun.mirror_name.select {|a| a.include?("MachineLearning") || a.include?("Python")}.present? && params[:content].present? - params[:content].gsub(/\t/, ' ').gsub(/ /, ' ') # 这个不是空格,在windows机器上带来的问题 - else - params[:content] - end + + content = + if python_file?(path) + params[:content].gsub(/\t/, ' ').gsub(/ /, ' ') + else + params[:content] + end uid_logger_dubug("###11222333####{content}") uid_logger_dubug("###222333####{last_content}") @@ -374,4 +376,9 @@ class MyshixunsController < ApplicationController @repo_path = @myshixun.try(:repo_path) @path = params[:path] end + + def python_file?(path) + false if path.blank? + path.to_s.split(".").last.downcase == "py" + end end From 5440c2a21e3cb3022371c15648781211c33674cb Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 18:05:42 +0800 Subject: [PATCH 084/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings_controller.rb | 6 ++- .../admins/competition_stages_controller.rb | 26 +++++++++++++ .../competitions/competitions_controller.rb | 3 +- app/models/competition.rb | 6 ++- .../admins/competition_nav_setting_service.rb | 37 +++++++++---------- .../competitions/common_header.json.jbuilder | 2 +- config/routes.rb | 3 ++ 7 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 app/controllers/admins/competition_stages_controller.rb diff --git a/app/controllers/admins/competition_settings_controller.rb b/app/controllers/admins/competition_settings_controller.rb index f4863458c..9fee83c3e 100644 --- a/app/controllers/admins/competition_settings_controller.rb +++ b/app/controllers/admins/competition_settings_controller.rb @@ -9,7 +9,7 @@ class Admins::CompetitionSettingsController < Admins::BaseController end def nav_setting - Admins::CompetitionNavSettingService.call(current_competition, basic_form_params) + Admins::CompetitionNavSettingService.call(current_competition, nav_form_params) render_ok end @@ -22,4 +22,8 @@ class Admins::CompetitionSettingsController < Admins::BaseController def basic_form_params params.permit(:identifier, :name, :sub_title, :start_time, :end_time, :mode, :identifier, :bonus, :awards_count, :description, :course_id, :teach_start_time, :teach_end_time) end + + def nav_form_params + params.permit(:enroll_end_time, competition_staffs: %i[category minimum maximum mutiple_limited], nav_module: %i[module_type name hidden position url]) + end end \ No newline at end of file diff --git a/app/controllers/admins/competition_stages_controller.rb b/app/controllers/admins/competition_stages_controller.rb new file mode 100644 index 000000000..d99cccf27 --- /dev/null +++ b/app/controllers/admins/competition_stages_controller.rb @@ -0,0 +1,26 @@ +class Admins::CompetitionStagesController < Admins::BaseController + + def create + if @competition.competition_stages.exists?(name: params[:stage_name]) + render_error "已存在同名的阶段" + else + @competition.competition_stages << CompetitionStage.new(name: params[:stage_name]) + render_ok + end + end + + def update + current_stage.update_attributes!(name: params[:stage_name], score_rate: params[:score_rate]) + render_ok + end + + private + + def current_competition + @_current_competition ||= Competition.find(params[:competition_id]) + end + + def current_stage + @_current_stage ||= CompetitionStage.find_by!(competition_id: params[:competition_id], id: params[:stage_id]) + end +end \ No newline at end of file diff --git a/app/controllers/competitions/competitions_controller.rb b/app/controllers/competitions/competitions_controller.rb index 659346966..22080190f 100644 --- a/app/controllers/competitions/competitions_controller.rb +++ b/app/controllers/competitions/competitions_controller.rb @@ -34,12 +34,13 @@ class Competitions::CompetitionsController < Competitions::BaseController def update @competition.update_attributes!(introduction: params[:introduction]) + Attachment.associate_container(params[:attachment_ids], @competition.id, @competition.class) if params[:attachment_ids] normal_status("更新成功") end def common_header @competition = current_competition - @competition_modules = @competition.unhidden_competition_modules + @competition_modules = @competition.unhidden_cgenompetition_modules @user = current_user end diff --git a/app/models/competition.rb b/app/models/competition.rb index 44b38f321..d8a8318b3 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -94,6 +94,10 @@ class Competition < ApplicationRecord GROUP BY competition_stage_id order by competition_stage_id") end + def all_module_types + %w[home enroll inform chart resource] + end + # def awards_count # competition_awards.pluck(:num)&.sum > 0 ? competition_awards.pluck(:num)&.sum : 20 # end @@ -113,7 +117,7 @@ class Competition < ApplicationRecord def create_competition_modules CompetitionModule.bulk_insert(*%i[competition_id module_type name position created_at updated_at]) do |worker| - %w(home enroll inform chart resource).each_with_index do |type, index| + all_module_types.each_with_index do |type, index| worker.add(competition_id: id, module_type: type, name: get_module_name(type), position: index + 1, ) end end diff --git a/app/services/admins/competition_nav_setting_service.rb b/app/services/admins/competition_nav_setting_service.rb index 1923f4e4c..13b58a799 100644 --- a/app/services/admins/competition_nav_setting_service.rb +++ b/app/services/admins/competition_nav_setting_service.rb @@ -8,29 +8,26 @@ class Admins::CompetitionNavSettingService < ApplicationService def call ActiveRecord::Base.transaction do - competition.name = strip params[:name] - competition.sub_title = strip params[:sub_title] - competition.start_time = params[:start_time] - competition.end_time = params[:end_time] - competition.mode = params[:mode] - competition.identifier = strip params[:identifier] - competition.bonus = params[:bonus] - competition.awards_count = params[:awards_count] - competition.description = strip params[:description] + competition.competition_modules.where(module_type: 'md').destroy_all - competition.save! + # hidden_module_type = competition.all_module_types - params[:module_type] + # competition.competition_modules.where(module_type: hidden_module_type).update_all(hidden: 1) - if competition.mode == 1 || competition.mode == 4 - competition.competition_mode_setting.destroy - else - setting = competition.competition_mode_setting || CompetitionModeSetting.create!(competition_id: competition.id) - if competition.mode == 2 - setting.course_id = params[:course_id] - elsif competition.mode == 3 - setting.start_time = params[:teach_start_time] - setting.end_time = params[:teach_end_time] + params[:nav_module].each do |nav| + module_type = nav["module_type"] + if competition.all_module_types.include?(module_type) + com_module = competition.competition_modules.find_by(module_type: module_type) + else + com_module = CompetitionModule.create!(competition_id: competition.id, module_type: 'md') + end + com_module.update_attributes!(hidden: nav["hidden"] ? 0 : 1, position: nav["position"], name: nav["name"], url: nav["url"]) + end + + if params[:competition_staffs].present? + competition.competition_staffs.delete_all + params[:competition_staffs].each_with_index do |staff_params, index| + competition.competition_staffs.create!(staff_params.merge(position: index + 1)) end - setting.save! end competition diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder index 88d7925a7..aed776c7f 100644 --- a/app/views/competitions/competitions/common_header.json.jbuilder +++ b/app/views/competitions/competitions/common_header.json.jbuilder @@ -11,7 +11,7 @@ json.published @competition.published? json.nearly_published @competition.published_at.present? json.competition_modules @competition_modules do |com_module| - json.(com_module, :name, :position) + json.(com_module, :name, :position, :module_type) json.module_url com_module.module_url end diff --git a/config/routes.rb b/config/routes.rb index 49e8215ba..1d6a776b8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1026,9 +1026,12 @@ Rails.application.routes.draw do resources :competition_settings, only: [:index] do post :basic_setting, on: :collection end + resources :enroll_lists, only: [:index] do get :export, on: :collection end + + resources :competition_stages, only: [:create, :update] end resources :weapp_carousels, only: [:index, :create, :update, :destroy] do From 1339e0955205cb87b3245231c9c5613ff80d6a71 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 18:07:28 +0800 Subject: [PATCH 085/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/competitions/competitions_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/competitions/competitions_controller.rb b/app/controllers/competitions/competitions_controller.rb index 22080190f..2cae06774 100644 --- a/app/controllers/competitions/competitions_controller.rb +++ b/app/controllers/competitions/competitions_controller.rb @@ -40,7 +40,7 @@ class Competitions::CompetitionsController < Competitions::BaseController def common_header @competition = current_competition - @competition_modules = @competition.unhidden_cgenompetition_modules + @competition_modules = @competition.unhidden_competition_modules @user = current_user end From 00e70575cc6f3f74416f55e375cbcc05dbe009c4 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 18:12:18 +0800 Subject: [PATCH 086/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Competition_teams/Competitionteams.js | 3 +- .../Competitioncommon/CompetitionCommon.css | 4 ++ .../Competitioncommon/CompetitionCommon.js | 65 +++++++++---------- 3 files changed, 37 insertions(+), 35 deletions(-) diff --git a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js index 18b53d86e..34b1d97fc 100644 --- a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js +++ b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js @@ -1,5 +1,6 @@ import React, { Component } from 'react'; import { Breadcrumb,Layout,Table, Divider, Tag,Badge} from 'antd'; + import axios from 'axios'; import NoneData from "../../courses/shixunHomework/shixunHomework"; @@ -211,8 +212,6 @@ class Competitionteams extends Component{ ]; - - console.log(this.state.shixundata) return ( diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css index 4fb11b594..4f05d179e 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css @@ -169,4 +169,8 @@ border: 1px solid rgba(239,239,239,1); padding-top: 20px; padding-bottom: 40px !important; +} + +.teamsLayoutleft{ + background: transparent !important; } \ 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 9096e0596..b209011d3 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -1,17 +1,18 @@ import React, { Component } from 'react'; import { Breadcrumb,Layout,Table, Divider, Tag,Badge,Row, Col,Button, Menu, Icon} from 'antd'; import axios from 'axios'; - +import {markdownToHTML} from 'educoder'; import NoneData from "../../courses/shixunHomework/shixunHomework"; import './CompetitionCommon.css'; + const { Header, Footer, Sider, Content } = Layout; class CompetitionCommon extends Component{ constructor(props) { super(props) this.state={ - + data:undefined } } @@ -23,16 +24,23 @@ class CompetitionCommon extends Component{ getbannerdata=()=>{ let url=`/competitions/${this.props.match.params.identifier}/common_header.json`; axios.get(url).then((response) => { - console.log(response) + if(response.status===200){ + this.setState({ + data:response.data + }) + } }).catch((error) => { console.log(error) - }); + }) } render() { + let {data}=this.state; + console.log(data) return ( -
    + data===undefined?"":
    + 在线竞赛 全国高校计算机大赛 @@ -43,11 +51,11 @@ class CompetitionCommon extends Component{
    banner - 全国计算机系列大赛系列大赛系列大赛 + {data&&data.name} 竞赛时间: - 2019-08-07 24: 00~2019-09-10 24: 00 + {data&&data.start_time}~{data&&data.end_time} @@ -65,13 +73,13 @@ class CompetitionCommon extends Component{ -
    ¥123
    +
    ¥{data&&data.bonus}
    -
    4124
    +
    {data&&data.visits_count}
    -
    51234
    +
    {data&&data.member_count}
    @@ -81,42 +89,33 @@ class CompetitionCommon extends Component{ 立即报名 -
    报名截止时间:2019-08-07 08:10 + {data&&data.enroll_end_time===null?"":"报名截止时间:"+data&&data.enroll_end_time} - - - - - - 赛制介绍 - - - - 参赛手册 - - - - 排行榜 - - - - 通知公告 - + {data&&data.competition_modules.map((item,key)=>{ + return( + + {item.name} + + ) + })} - - - Content + + + + + + 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 087/126] 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 286184bed415067742934769d6c413bbb3312610 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 18:13:43 +0800 Subject: [PATCH 088/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/competitions/competition_teams/index.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/competitions/competition_teams/index.json.jbuilder b/app/views/competitions/competition_teams/index.json.jbuilder index a86bfb30e..70651b4ae 100644 --- a/app/views/competitions/competition_teams/index.json.jbuilder +++ b/app/views/competitions/competition_teams/index.json.jbuilder @@ -29,6 +29,7 @@ json.my_teams @teams.each do |team| json.extract! team, :id, :name, :invite_code json.team_type team.en_team_type json.school_name team.user.school_name + json.created_at team.created_at.strftime("%Y-%m-%d %H:%M") json.manage_permission current_user.id == team.user_id From 94e5f5be4a38a32a346c660c1acac209d16e57ef Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 23 Oct 2019 19:31:52 +0800 Subject: [PATCH 089/126] =?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 --- .../admins/competition_stages_controller.rb | 53 +++++++++++++++++++ config/routes.rb | 8 ++- ...1023103633_add_column_to_stage_sections.rb | 10 ++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20191023103633_add_column_to_stage_sections.rb diff --git a/app/controllers/admins/competition_stages_controller.rb b/app/controllers/admins/competition_stages_controller.rb index d99cccf27..19c400a90 100644 --- a/app/controllers/admins/competition_stages_controller.rb +++ b/app/controllers/admins/competition_stages_controller.rb @@ -14,6 +14,59 @@ class Admins::CompetitionStagesController < Admins::BaseController render_ok end + def destroy + current_stage.destroy! + render_ok + end + + def create_stage_section + ActiveRecord::Base.transaction do + new_section = CompetitionStageSection.create!(competition_id: current_stage.competition_id, competition_stage_id: current_stage.id, + start_time: params[:new_start_time], end_time: params[:new_end_time], + entry: params[:entry], mission_count: params[:mission_count], score_source: params[:score_source]) + unless params[:shixun_identifiers].blank? + params[:shixun_identifiers].each do |identifier| + new_section.competition_entries << CompetitionEntry.new(competition_stage_id: current_stage.id, shixun_identifier: identifier) + end + end + render_ok + end + end + + def update_stage_section + ActiveRecord::Base.transaction do + section = current_stage.competition_stage_sections.find_by!(id: params[:section_id]) + if section.present? + section_entries = section.competition_entries + if !params[:shixun_identifiers] + section_entries.destroy_all + else + if params[:shixun_identifiers].length < section_entries.size + section_entries[params[:shixun_identifiers].length, section_entries.size - 1].each(&:destroy) + end + + params[:shixun_identifiers].each_with_index do |identifier, index| + entry = section_entries[index] + if entry.present? + entry.update_attributes!(shixun_identifier: identifier) + else + section.competition_entries << CompetitionEntry.new(competition_stage_id: current_stage.id, shixun_identifier: identifier) + end + end + end + section.update_attributes!(start_time: params[:new_start_time], end_time: params[:new_end_time], + entry: params[:entry], mission_count: params[:mission_count], score_source: params[:score_source]) + render_ok + end + end + end + + def destroy_stage_section + section = current_stage.competition_stage_sections.find_by!(id: params[:section_id]) + section.destroy! + render_ok + end + private def current_competition diff --git a/config/routes.rb b/config/routes.rb index 1d6a776b8..80e1298cc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1031,7 +1031,13 @@ Rails.application.routes.draw do get :export, on: :collection end - resources :competition_stages, only: [:create, :update] + resources :competition_stages, only: [:create, :update, :destroy] do + collection do + post :create_stage_section + post :update_stage_section + delete :destroy_stage_section + end + end end resources :weapp_carousels, only: [:index, :create, :update, :destroy] do diff --git a/db/migrate/20191023103633_add_column_to_stage_sections.rb b/db/migrate/20191023103633_add_column_to_stage_sections.rb new file mode 100644 index 000000000..baa1754fa --- /dev/null +++ b/db/migrate/20191023103633_add_column_to_stage_sections.rb @@ -0,0 +1,10 @@ +class AddColumnToStageSections < ActiveRecord::Migration[5.2] + def change + def change + add_column :competition_stage_sections, :mission_count, :integer, default: 0 + add_column :competition_stage_sections, :score_source, :integer, default: 0 + + add_column :competition_entries, :shixun_identifier, :string + end + end +end 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 090/126] 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 091/126] 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 092/126] 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 093/126] =?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 094/126] =?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 095/126] 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 096/126] 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 097/126] =?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 098/126] 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 9d3e4bd8fac565f3cbc8cacfb4c0882e8a3840f9 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 09:10:52 +0800 Subject: [PATCH 099/126] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/competitions/competitions/common_header.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder index aed776c7f..c5732a51d 100644 --- a/app/views/competitions/competitions/common_header.json.jbuilder +++ b/app/views/competitions/competitions/common_header.json.jbuilder @@ -11,7 +11,7 @@ json.published @competition.published? json.nearly_published @competition.published_at.present? json.competition_modules @competition_modules do |com_module| - json.(com_module, :name, :position, :module_type) + json.(com_module, :id, :name, :position, :module_type) json.module_url com_module.module_url end From 0aa85d486ea4e1392f74cb08f4db619f6d19ff19 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 09:14:44 +0800 Subject: [PATCH 100/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/competitions/competitions/common_header.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder index c5732a51d..a90ab14ee 100644 --- a/app/views/competitions/competitions/common_header.json.jbuilder +++ b/app/views/competitions/competitions/common_header.json.jbuilder @@ -13,6 +13,7 @@ json.nearly_published @competition.published_at.present? json.competition_modules @competition_modules do |com_module| json.(com_module, :id, :name, :position, :module_type) json.module_url com_module.module_url + json.has_url com_module.url.present? end json.stages From a6af66476b6e022417540be248aadcb7734f1657 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 09:32:51 +0800 Subject: [PATCH 101/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/competition.rb | 11 +++++++++++ .../competitions/competitions/index.json.jbuilder | 1 + 2 files changed, 12 insertions(+) diff --git a/app/models/competition.rb b/app/models/competition.rb index d8a8318b3..39e4f4dfe 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -40,6 +40,17 @@ class Competition < ApplicationRecord end end + def competition_status + if !status + com_status = "nearly_published" + elsif end_time > Time.now + com_status = "progressing" + else + com_status = "ended" + end + com_status + end + def teacher_staff_num teacher_staff ? "#{teacher_staff.minimum}~#{teacher_staff.maximum}" : "--" end diff --git a/app/views/competitions/competitions/index.json.jbuilder b/app/views/competitions/competitions/index.json.jbuilder index 8e99d754d..810cbfd18 100644 --- a/app/views/competitions/competitions/index.json.jbuilder +++ b/app/views/competitions/competitions/index.json.jbuilder @@ -3,6 +3,7 @@ json.competitions do json.array! @competitions.each do |competition| json.extract! competition, :id, :identifier, :name, :sub_title, :bonus, :description, :mode + json.competition_status competition.competition_status json.visits_count competition.visits member_count = @member_count_map&.fetch(competition.id, 0) || competition.team_members.count json.member_count member_count.zero? ? 268 : member_count From 9871042d20cf3fea37a4af43f0453e9a12934825 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 09:33:28 +0800 Subject: [PATCH 102/126] competition: fix form valid bug --- app/forms/competitions/save_team_form.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/forms/competitions/save_team_form.rb b/app/forms/competitions/save_team_form.rb index 10685d260..dd2610083 100644 --- a/app/forms/competitions/save_team_form.rb +++ b/app/forms/competitions/save_team_form.rb @@ -73,10 +73,10 @@ class Competitions::SaveTeamForm # 竞赛是否限制了职业 def check_creator_identity_enrollable - if user.is_teacher? && competition.teacher_enroll_forbidden? + if creator.is_teacher? && competition.teacher_enroll_forbidden? errors.add(:creator, :teacher_enroll_forbidden) return false - elsif !user.is_teacher? && competition.member_enroll_forbidden? + elsif !creator.is_teacher? && competition.member_enroll_forbidden? errors.add(:creator, :member_enroll_forbidden) return false end @@ -86,9 +86,9 @@ class Competitions::SaveTeamForm # 创建者是否能多次报名 def check_creator_multiple_enrollable - return unless competition.enrolled?(user) + return unless competition.enrolled?(creator) - if (user.is_teacher? && competition.teacher_multiple_limited?) || (!user.is_teacher? && competition.member_multiple_limited?) + if (creator.is_teacher? && competition.teacher_multiple_limited?) || (!creator.is_teacher? && competition.member_multiple_limited?) errors.add(:creator, :enrolled) return false end From d48d25197a27d602e0ca641f90d2fdd915236ec6 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 24 Oct 2019 09:39:45 +0800 Subject: [PATCH 103/126] =?UTF-8?q?tpm=E9=A1=B5=E9=9D=A2=E7=9A=84=E8=A2=AB?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E7=9A=84=E8=AF=84=E8=AE=BA=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=9C=89=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/discusses_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/discusses_controller.rb b/app/controllers/discusses_controller.rb index 6ddf71ba4..c0deac091 100644 --- a/app/controllers/discusses_controller.rb +++ b/app/controllers/discusses_controller.rb @@ -7,6 +7,8 @@ class DiscussesController < ApplicationController def index page = params[:page].to_i offset = page * LIMIT + @manger = @container.has_manager?(current_user) || current_user.is_certification_teacher + # 总数,分页使用 if current_user.admin? @disscuss_count = Discuss.where(:dis_id => @container.id, :dis_type => @container.class.to_s, :root_id => nil).count @@ -18,7 +20,6 @@ class DiscussesController < ApplicationController {dis_id: @container.id, dis_type: @container.class.to_s, hidden: false, user_id: current_user.id}) @disscuss_count = disscusses.count("discusses.id") end - @manger = @container.has_manager?(current_user) if @manger @discusses = disscusses.limit(LIMIT).joins("left join games on discusses.challenge_id = games.challenge_id and discusses.user_id = games.user_id") .select("discusses.*, games.identifier").includes(:user, :praise_treads).offset(offset) 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 104/126] 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}

    Date: Thu, 24 Oct 2019 09:56:11 +0800 Subject: [PATCH 105/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competitions/Competitimain/CompetitionsIndex.js | 10 +++++----- .../Competitioncommon/CompetitionCommon.js | 12 +++++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index 7f3b4bfce..9e0561ab4 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -42,7 +42,7 @@ class CompetitionsIndex extends Component{ axios.get(Url,{params:{ category:category, page:page, - per_page:6, + per_page:20, } }).then((response) => { if(response.status===200){ @@ -123,7 +123,7 @@ class CompetitionsIndex extends Component{ size="large" dataSource={datas&&datas} renderItem={(item,key) => ( - +
    {item.description===null||item.description===undefined||item.description===""?:""} + src={item.competition_status==="ended"?groups1:item.competition_status==="nearly_published"?groups2:item.competition_status==="progressing"?groups3:""} /> - {datas===undefined?'none':datas.task_count >6 ?
    20 ?
    { console.log(error) @@ -51,6 +49,10 @@ class CompetitionCommon extends Component{ } + getrightdata=(id,typeid)=>{ +debugger + } + render() { let {data,bannerdata}=this.state; // console.log(bannerdata) @@ -119,7 +121,11 @@ class CompetitionCommon extends Component{ {data&&data.competition_modules.map((item,key)=>{ return( - {item.name} + {item.module_url===null?this.getrightdata(item.id,item.module_type)}>{item.name}:this.getrightdata(item.id,item.module_type)} + >{item.name}} ) })} From a5657c280187e51c512e4e9fe34f0f92fad9d38e Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 24 Oct 2019 09:56:30 +0800 Subject: [PATCH 106/126] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/discusses_controller.rb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/controllers/discusses_controller.rb b/app/controllers/discusses_controller.rb index c0deac091..cbb19cb7f 100644 --- a/app/controllers/discusses_controller.rb +++ b/app/controllers/discusses_controller.rb @@ -10,20 +10,17 @@ class DiscussesController < ApplicationController @manger = @container.has_manager?(current_user) || current_user.is_certification_teacher # 总数,分页使用 - if current_user.admin? + if @manger @disscuss_count = Discuss.where(:dis_id => @container.id, :dis_type => @container.class.to_s, :root_id => nil).count disscusses = Discuss.where(:dis_id => @container.id, :dis_type => @container.class.to_s, :root_id => nil) + @discusses = disscusses.limit(LIMIT).joins("left join games on discusses.challenge_id = games.challenge_id and discusses.user_id = games.user_id") + .select("discusses.*, games.identifier").includes(:user, :praise_treads).offset(offset) else disscusses = Discuss.where("dis_id = :dis_id and dis_type = :dis_type and root_id is null and (discusses.hidden = :hidden or discusses.user_id = :user_id)", {dis_id: @container.id, dis_type: @container.class.to_s, hidden: false, user_id: current_user.id}) @disscuss_count = disscusses.count("discusses.id") - end - if @manger - @discusses = disscusses.limit(LIMIT).joins("left join games on discusses.challenge_id = games.challenge_id and discusses.user_id = games.user_id") - .select("discusses.*, games.identifier").includes(:user, :praise_treads).offset(offset) - else @discusses = disscusses.limit(LIMIT).includes(:user, :praise_treads).offset(offset) end From fcac10f426989c787532140fc4974b2c2631dea7 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 24 Oct 2019 10:06:17 +0800 Subject: [PATCH 107/126] =?UTF-8?q?=E8=B6=85=E7=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98-=E7=AB=9E=E8=B5=9B=E5=AF=BC=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings/index.js | 94 +++++++++++++- .../admins/competition_settings.scss | 21 +++ app/assets/stylesheets/common.scss | 4 + .../competition_settings/index.html.erb | 121 ++++++++++++++++++ .../EcSetting/reachCalculationInfo/index.scss | 3 + 5 files changed, 242 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js index 366838627..2d1ada038 100644 --- a/app/assets/javascripts/admins/competition_settings/index.js +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -105,4 +105,96 @@ $(document).on('turbolinks:load', function(){ }); }); } -}); \ No newline at end of file +}); + + +$(function () { + //MD编辑 + $("#MD_typeFrom").on("click",".add_MD_type",function () { + + var length=$(".MD_type").find(".add_MD_type").length + 1; + var html='
    \n' + + '
    \n' + + ' \n' + + '
    \n' + + '
    \n' + + '
    \n' + + ' \n' + + ' \n' + + '
    '; + $("#MD_typeFrom").append(html); + }) + $("#MD_typeFrom").on("click",".del_MD_type",function () { + $(this).parents(".MD_type").remove(); + }) + + + //链接 + $("#linkForm").on("click",".add_linkBtn",function () { + var length=$("#linkForm").find(".linkFormItem").length + 1; + var html='
    \n' + + '
    \n' + + ' \n' + + '
    \n' + + '
    \n' + + '
    \n' + + '
    \n' + + ' \n' + + ' \n' + + '
    ' + $("#linkForm").append(html) + }) + $("#linkForm").on("click",".del_linkBtn",function () { + $(this).parents(".lineFromItem").remove(); + }) + + //有关报名要求 + $("#addRequireBtn").on("click",function () { + var length=$("#requireForm").find(".requireForm_item").length + 1; + var html='
    \n' + + '
      
    \n' + + '
    \n' + + ' \n' + + '
    \n' + + ' ~\n' + + '
    \n' + + ' \n' + + '
    \n' + + ' \n' + + '
    \n' + + ' \n' + + '
    \n' + + '
    \n' + + ' \n' + + '
    \n' + + '
    \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + '
    \n' + + '
    '; + $("#requireForm").append(html); + }) + + $("#requireForm").on("click",".delRequrieBtn",function () { + $(this).parents(".requireForm_item").remove(); + }) +}) \ No newline at end of file diff --git a/app/assets/stylesheets/admins/competition_settings.scss b/app/assets/stylesheets/admins/competition_settings.scss index 20468aaed..ad1dd14b3 100644 --- a/app/assets/stylesheets/admins/competition_settings.scss +++ b/app/assets/stylesheets/admins/competition_settings.scss @@ -18,4 +18,25 @@ // } //} } + + .col-md-label{ + -webkit-box-flex: 0; + flex: 0 0 10%; + max-width: 10%; + min-width: 30px; + padding-right: 15px; + padding-left: 15px; + position: relative; + } + .col-md-label-s{ + -webkit-box-flex: 0; + flex: 0 0 30px; + padding-right: 15px; + padding-left: 15px; + position: relative; + } + .setBtn_s{ + height: 35px; + line-height: 5px; + } } \ No newline at end of file diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index bb40e7950..9312a694f 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -34,16 +34,20 @@ input.form-control { .font-14 { font-size: 14px !important; } .font-16 { font-size: 16px !important; } .font-18 { font-size: 18px !important; } +.font-20 { font-size: 20px !important; } +.font-24 { font-size: 24px !important; } .padding10-5 { padding: 10px 5px;} .width100 { width: 100%;} .mb10 { margin-bottom: 10px ;} .mt10 { margin-top: 10px ;} .mr10{ margin-right: 10px; } +.ml10{ margin-left: 10px; }.ml20{ margin-left: 20px; } .textarea-width-100{width:100%; resize: none; border: 1px solid #ccc;} .padding10{padding: 10px;} .padding5-10{padding: 5px 10px;} .position-r{position:relative;} .color-grey-c{color:#ccc} +.color-blue{color:#4CACFF} .inline-block{display:inline-block;} .hide{display: none;} .show{display: block;} diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index c0ae8fcdd..5a20cc81e 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -150,5 +150,126 @@
    导航设置
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + 报名 +
    +
    +
    +
      
    +
    + 报名截止时间 +
    +
    +
    +
    +
      
    +
    + 报名要求 +
    +
    + +
    +
    + +
    +
    +
      
    +
    + +
    + ~ +
    + +
    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    + + +
    +
    + +
    +
    排行榜
    +
    +
    +
    +
    +
    + +
    +
    资料下载
    +
    +
    + +
    +
    +
    +
    + +
    +
    获奖证书
    +
    + +
    +
    +
    +
    <%= javascript_void_link '保存', class: 'btn btn-primary submit-btn' %>
    +
    + +
    +
    diff --git a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss index 56a260b5e..324d88ea5 100644 --- a/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss +++ b/public/react/src/modules/ecs/EcSetting/reachCalculationInfo/index.scss @@ -31,6 +31,9 @@ .font-18 { font-size: 18px!important; } +.font-26 { + font-size: 26px!important; +} .fl { float: left!important; } From 8db7af8691c5d0172c77d554654541eeacacad2d Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 10:07:02 +0800 Subject: [PATCH 108/126] fix department can be apply added repeatedly bu --- app/services/create_add_department_apply_service.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/services/create_add_department_apply_service.rb b/app/services/create_add_department_apply_service.rb index 8c3a2127e..e172b001a 100644 --- a/app/services/create_add_department_apply_service.rb +++ b/app/services/create_add_department_apply_service.rb @@ -14,6 +14,7 @@ class CreateAddDepartmentApplyService < ApplicationService school = School.find_by(id: params[:school_id]) raise Error, '学校/单位不存在' if school.blank? + raise Error, '部门已存在' if school.departments.exists?(name: name) department = Department.new department.name = name From afa968d5b35abad551e4315354a52a1090b553b9 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 10:10:38 +0800 Subject: [PATCH 109/126] oauth login: use qq avatar when qq oauth --- app/services/oauth/create_or_find_qq_account_service.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/oauth/create_or_find_qq_account_service.rb b/app/services/oauth/create_or_find_qq_account_service.rb index 200d436ef..91117cf2e 100644 --- a/app/services/oauth/create_or_find_qq_account_service.rb +++ b/app/services/oauth/create_or_find_qq_account_service.rb @@ -26,6 +26,9 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService gender = params.dig('extra', 'raw_info', 'gender') == '女' ? 1 : 0 user.create_user_extension!(gender: gender) + # 下载头像 + avatar_path = Util::FileManage.source_disk_filename(user) + Util.download_file(params.dig('info', 'figureurl_qq_1'), avatar_path) end new_open_user = OpenUsers::QQ.create!(user: user, uid: params['uid'], extra: params.dig('extra', 'raw_info')) From 0e563814d0d36c3b10b43aa672950b885381d901 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 10:11:14 +0800 Subject: [PATCH 110/126] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/competition_stages_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/admins/competition_stages_controller.rb b/app/controllers/admins/competition_stages_controller.rb index 19c400a90..537240bde 100644 --- a/app/controllers/admins/competition_stages_controller.rb +++ b/app/controllers/admins/competition_stages_controller.rb @@ -67,6 +67,10 @@ class Admins::CompetitionStagesController < Admins::BaseController render_ok end + def calculate_stage_score + + end + private def current_competition From c853bbb4c8ce3d4c823eb5fa7a249eee877ed630 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 10:11:56 +0800 Subject: [PATCH 111/126] oauth login: modify qq user login prefix --- app/services/oauth/create_or_find_qq_account_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/oauth/create_or_find_qq_account_service.rb b/app/services/oauth/create_or_find_qq_account_service.rb index 91117cf2e..c258993bd 100644 --- a/app/services/oauth/create_or_find_qq_account_service.rb +++ b/app/services/oauth/create_or_find_qq_account_service.rb @@ -16,7 +16,7 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService if user.blank? || !user.logged? new_user = true # 新用户 - login = User.generate_login('q') + login = User.generate_login('Q') @user = User.new(login: login, nickname: params.dig('info', 'nickname'), type: 'User', status: User::STATUS_ACTIVE) end From 083d32215dbdd427356847109b94a7771be53dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 24 Oct 2019 10:23:42 +0800 Subject: [PATCH 112/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competitions/Competitimain/CompetitionsIndex.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index 9e0561ab4..a57ab8480 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -66,6 +66,12 @@ class CompetitionsIndex extends Component{ this.getdata(e.key,page) }; + setcompetitonurl=(url)=>{ + + if(url!=null){ + this.props.history.replace(url); + } + } render() { let {datas,page,count}=this.state; @@ -123,7 +129,9 @@ class CompetitionsIndex extends Component{ size="large" dataSource={datas&&datas} renderItem={(item,key) => ( - +
    this.setcompetitonurl(item.competition_status==="ended"?null:item.competition_status==="nearly_published"?`/newcompetitions/${item.identifier}/common_header`:item.competition_status==="progressing"?`/newcompetitions/${item.identifier}/common_header`:null)} + + >
    {item.description===null||item.description===undefined||item.description===""?
    @@ -124,7 +143,7 @@ class CompetitionsIndex extends Component{ ` } - :""} + src={item.competition_status==="ended"?getImageUrl(`images/educoder/competitions/groups1.png`):item.competition_status==="nearly_published"?getImageUrl(`images/educoder/competitions/groups2.png`):item.competition_status==="progressing"?getImageUrl(`images/educoder/competitions/groups3.png`):""} /> + />} {datas===undefined?'none':datas.task_count >20 ?
    diff --git a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css index 1c400621e..61fc568aa 100644 --- a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css +++ b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css @@ -1,13 +1,5 @@ .teamsLayout{background: transparent !important;} -.courses-head{ - width: 100%; - height: 300px; - background-image: url(./courses.jpg); - background-color: #081C4B; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} + .competitionstitle{ height:50px !important; border-radius: 6px; @@ -115,4 +107,15 @@ } .endedfont{ color:#000 !important; +} +.zhezhaos{ + + height: 200px; + overflow: hidden; + position: relative; + border: 1px solid rgb(235, 237, 240); + border-radius: 2px; + padding: 48px; + text-align: center; + background: rgb(250, 250, 250); } \ No newline at end of file From 172ae24bf2889f7c467206a50c7937b0ee5c70e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Thu, 24 Oct 2019 11:06:04 +0800 Subject: [PATCH 120/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/competitions/Competitimain/CompetitionsIndex.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index 1a43bbe4c..ba736e03e 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -92,7 +92,6 @@ class CompetitionsIndex extends Component{ .courses-head{ width: 100%; height: 300px; - background-image: url(`getImageUrl(`images/educoder/competitions/courses.png`)`); background-color: #081C4B; background-size: cover; background-position: center; @@ -101,7 +100,7 @@ class CompetitionsIndex extends Component{ ` } -
    +
    From 99e4793fa4c089d1bd5dd1efbb13cc9f8f1d5fc3 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 11:12:49 +0800 Subject: [PATCH 121/126] fix competition error && add user result at weapp --- app/controllers/weapps/code_sessions_controller.rb | 2 +- app/controllers/weapps/sessions_controller.rb | 1 - app/models/competition_team.rb | 2 +- .../weapps/code_sessions/create.json.jbuilder | 3 +++ app/views/weapps/sessions/create.json.jbuilder | 3 +++ app/views/weapps/shared/_user.json.jbuilder | 14 ++++++++++++++ 6 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 app/views/weapps/code_sessions/create.json.jbuilder create mode 100644 app/views/weapps/sessions/create.json.jbuilder create mode 100644 app/views/weapps/shared/_user.json.jbuilder diff --git a/app/controllers/weapps/code_sessions_controller.rb b/app/controllers/weapps/code_sessions_controller.rb index a99a048e2..c92c3cb70 100644 --- a/app/controllers/weapps/code_sessions_controller.rb +++ b/app/controllers/weapps/code_sessions_controller.rb @@ -30,7 +30,7 @@ class Weapps::CodeSessionsController < Weapps::BaseController set_session_openid(result['openid']) set_weapp_session_key(result['session_key']) # weapp session_key写入缓存 后续解密需要 - render_ok(openid: result['openid'], logged: logged) + render_ok(openid: result['openid'], logged: logged) unless logged rescue Wechat::Error => ex render_error(ex.message) end diff --git a/app/controllers/weapps/sessions_controller.rb b/app/controllers/weapps/sessions_controller.rb index f65111399..371a3f7d3 100644 --- a/app/controllers/weapps/sessions_controller.rb +++ b/app/controllers/weapps/sessions_controller.rb @@ -19,6 +19,5 @@ class Weapps::SessionsController < Weapps::BaseController OpenUsers::Wechat.create!(user: user, uid: session_unionid) if user.wechat_open_user.blank? successful_authentication(user) - render_ok end end \ No newline at end of file diff --git a/app/models/competition_team.rb b/app/models/competition_team.rb index 6c2b99859..a05ceb032 100644 --- a/app/models/competition_team.rb +++ b/app/models/competition_team.rb @@ -28,7 +28,7 @@ class CompetitionTeam < ApplicationRecord while self.class.exists?(invite_code: code) code = CODE_CHARS.sample(6).join end - self.code = code + self.invite_code = code code end diff --git a/app/views/weapps/code_sessions/create.json.jbuilder b/app/views/weapps/code_sessions/create.json.jbuilder new file mode 100644 index 000000000..280086948 --- /dev/null +++ b/app/views/weapps/code_sessions/create.json.jbuilder @@ -0,0 +1,3 @@ +json.user do + json.partial! 'weapps/shared/user', locals: { user: current_user } +end \ No newline at end of file diff --git a/app/views/weapps/sessions/create.json.jbuilder b/app/views/weapps/sessions/create.json.jbuilder new file mode 100644 index 000000000..280086948 --- /dev/null +++ b/app/views/weapps/sessions/create.json.jbuilder @@ -0,0 +1,3 @@ +json.user do + json.partial! 'weapps/shared/user', locals: { user: current_user } +end \ No newline at end of file diff --git a/app/views/weapps/shared/_user.json.jbuilder b/app/views/weapps/shared/_user.json.jbuilder new file mode 100644 index 000000000..be67384cc --- /dev/null +++ b/app/views/weapps/shared/_user.json.jbuilder @@ -0,0 +1,14 @@ +json.username user.full_name +json.real_name user.real_name +json.login user.login +json.user_id user.id +json.image_url url_to_avatar(user) +json.admin user.admin? +json.business user.business? +json.is_teacher user.user_extension&.teacher? +json.user_identity user.identity +json.tidding_count 0 +json.user_phone_binded user.phone.present? +json.phone user.phone +json.profile_completed user.profile_completed? +json.professional_certification user.professional_certification \ No newline at end of file From c46e7033402b2f23f16e3f0337b26810a0bacfe8 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 11:25:34 +0800 Subject: [PATCH 122/126] =?UTF-8?q?jingsai.10=20=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/educoder/competition/Noentry.jpg | Bin 0 -> 3125 bytes .../educoder/competition/Rectanglex.png | Bin 0 -> 4529 bytes .../images/educoder/competition/pexjiazai.png | Bin 0 -> 1171 bytes .../educoder/competition}/tipregistit.jpg | Bin .../modules/competition/CompetitionMaxImg.js | 18 ++++--- .../src/modules/competition/RegisListview.js | 4 +- .../modules/competition/RegisListviewdata.js | 4 +- .../src/modules/competition/RegisNodata.js | 4 +- .../src/modules/competition/Registration.js | 2 - .../competition/comcss/competition.css | 2 - .../competition/competmodal/PersonModal.js | 50 ++++++++++++------ .../competmodal/PersonModaltion.js | 1 - .../personal/PersonalCompetititem.js | 5 +- 13 files changed, 54 insertions(+), 36 deletions(-) create mode 100644 public/images/educoder/competition/Noentry.jpg create mode 100755 public/images/educoder/competition/Rectanglex.png create mode 100644 public/images/educoder/competition/pexjiazai.png rename public/{react/src/modules/competition/comcss => images/educoder/competition}/tipregistit.jpg (100%) diff --git a/public/images/educoder/competition/Noentry.jpg b/public/images/educoder/competition/Noentry.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ffc34e17062409c1ce4643c63a0c03a0d03e72b GIT binary patch literal 3125 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 P00000NkvXXu0mjf7PSMa literal 0 HcmV?d00001 diff --git a/public/images/educoder/competition/Rectanglex.png b/public/images/educoder/competition/Rectanglex.png new file mode 100755 index 0000000000000000000000000000000000000000..0aa2a31b159a0476db98bfb47ece71f79598d9a1 GIT binary patch literal 4529 zcmeAS@N?(olHy`uVBq!ia0y~y;LHKCQ#jawq(sGQRR#vZ3Qrfukczmsw+?bLDDbd2 zzTJQB%EAQxciEQ?9Gvj{-Av2Vf(i}|42(=H90K?m2g)0DZ~V&3AxbgOK!1k~PX!4X z3bj~(lVh7whA}}mK$HvQ{3OD?V6`qxO=~%B@erw;CAyAS-%V^t&~7qwCQ|vqY4Z33 z7a9%@4Gt;_H@X&_B@h=d<-j0j9}Qw~(2fQ%EX|CjVpxGTT2PD@6c}~NXhAVrP@q@a zqXoriK`~lT;B2CfwkSqh6zE;3(XI!)%RJhm7;RCYw1HV|(vE;7|;Mr>mdK II;Vst0HmRm0ssI2 literal 0 HcmV?d00001 diff --git a/public/images/educoder/competition/pexjiazai.png b/public/images/educoder/competition/pexjiazai.png new file mode 100644 index 0000000000000000000000000000000000000000..78f56b82aae5b403dfa09cf2d5921807bce8ca42 GIT binary patch literal 1171 zcmV;E1Z?|>P)4Tx04R}TU|_09EGWofVPIg$%_}Jia(7aQh>TKTzr(=Iz{4QKV8tMwm|R@o z7!csYfD?SX#=r=oFYAKLYC5NOcj`vL=woW%va9V}b8zbe1MZa6;$#K}Mh+l5C8any z7sv+b(Mv8UDgmAHma?3IVT(NjgLp7P zOno-cN$(jLc7zus7A3+R&-jgn5WhIh*a*VrabjR#z4!nBXEg=}_DKv3e<%L`|9jE@ z|9=+)?Z3moa3BW&w$y8VEZD>N0008cNklxHQE{(@yS}vAk zv0BLCaFEC2p_`i2mDktT6!;UMTmLN? zjYeJEtroUgElMVn1WPN!5T6gc(OOvldQtzxk#iA#WQZ*Q6tN!$l6;IT%dA?1PusOR$oF*NM3 z5<`##*lxGQKEF{{DC*6cve|6p^ZDrf{9NKcJ3Aw<*Gu>=2u%V*kW>~ZZb3-tNF+iC zJ~FOSsc_+2tyYRgqYMcCL?S`GUXR;bEEeNV^YZdS>2#WAvl+KT)TkiILa~WAP738{ zU2eB~T~Btqoh~je$YS~5)?6+Zi#eT6=EFW(oan8Jq7a54$wDaabUOSE*$NjS@b!9q z-ECl1wOVB*unbKCgdU5M0`TkWD_e(s01I$l<00ts@^TFbr3g0aaWELH`zYL$&*$02 zh|Op;VsW@Wl}hm;aVV@oh^IQHl7)W1pGu_?Gva|$>k&XV6AXN)V+=JRvDC>W#SmAF z`lDL#m^rc=@l;zV0V3dmKtNLl$ACcwhrhqSm&7GNoapZEj_);fW=RrzE|4hUa9HCp z2@tw)D%2lJ;#k6ApPrrwIk8DwZ~Q|qV4>J%wb8@l!`2IUD { type === 1 || type === 2 ? -
    +

    Educoder竞赛平台

    Educoder是一个面向计算机类的互联网IT教育和实战平台,

    提供企业级工程实训,以实现工程化专业教学的自动化和智能化。

    @@ -54,7 +56,8 @@ class CompetitionMaxImg extends React.Component {
    : type === 3 ? -
    +

    Educoder竞赛平台

    高校智能课堂与综合实训平台

    @@ -69,7 +72,8 @@ class CompetitionMaxImg extends React.Component {
    : type === 4 || type === 5 ? -
    +

    Educoder竞赛平台

    高校智能课堂与综合实训平台

    @@ -83,7 +87,8 @@ class CompetitionMaxImg extends React.Component {
    : type === 6 ? -
    +

    Educoder竞赛平台

    Educoder是一个面向计算机类的互联网IT教育和实战平台,

    提供企业级工程实训,以实现工程化专业教学的自动化和智能化。

    @@ -106,7 +111,8 @@ class CompetitionMaxImg extends React.Component {
    : -
    +
    } diff --git a/public/react/src/modules/competition/RegisListview.js b/public/react/src/modules/competition/RegisListview.js index 73f94592c..a1c283220 100644 --- a/public/react/src/modules/competition/RegisListview.js +++ b/public/react/src/modules/competition/RegisListview.js @@ -8,8 +8,8 @@ import axios from 'axios'; import moment from 'moment'; import competition from './comcss/competition.css'; import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; +import {getImageUrl} from 'educoder'; // 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> -import Rectanglex from "../../modules/competition/Rectanglex.png"; class RegisListview extends React.Component { constructor(props) { super(props) @@ -25,7 +25,7 @@ class RegisListview extends React.Component { display: "flex", justifyContent: " space-around", alignItems: "center", - background: `url(${Rectanglex})`, + background: `url(${getImageUrl(`images/educoder/competitions/Rectanglex.png`)})`, height: "50px", backgroundPosition: "center", backgroundSize: "110% 100%", diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index 3bd8fe0b2..397064662 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -9,7 +9,6 @@ import moment from 'moment'; 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'; // 团队竞赛报名无报名子组件团队 竞赛报名-已创建战队 @@ -97,7 +96,8 @@ class RegisListviewdata extends React.Component { - +
    diff --git a/public/react/src/modules/competition/RegisNodata.js b/public/react/src/modules/competition/RegisNodata.js index 3f8835634..a8441f420 100644 --- a/public/react/src/modules/competition/RegisNodata.js +++ b/public/react/src/modules/competition/RegisNodata.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import competition from './comcss/competition.css'; -import Noentry from './Noentry.jpg'; +import {getImageUrl} from 'educoder'; // 团队竞赛报名无报名子组件 class RegisNodata extends React.Component { constructor(props) { @@ -17,7 +17,7 @@ class RegisNodata extends React.Component { height: "80px", width: "125px", marginTop: "107px", - background: `url(${Noentry})`, + background: `url(${getImageUrl(`images/educoder/competitions/Noentry.jpg`)})`, backgroundPosition: "center", backgroundSize: "110% 100%", }}> diff --git a/public/react/src/modules/competition/Registration.js b/public/react/src/modules/competition/Registration.js index d89060173..9bffc492c 100644 --- a/public/react/src/modules/competition/Registration.js +++ b/public/react/src/modules/competition/Registration.js @@ -21,8 +21,6 @@ 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 { /*** diff --git a/public/react/src/modules/competition/comcss/competition.css b/public/react/src/modules/competition/comcss/competition.css index 102f2492d..14e0d788e 100644 --- a/public/react/src/modules/competition/comcss/competition.css +++ b/public/react/src/modules/competition/comcss/competition.css @@ -323,7 +323,6 @@ display: -webkit-flex; flex-direction: column; align-items: center; - background-image: url(./tipregistit.jpg); } .registrationback1 { @@ -331,7 +330,6 @@ width: 1200px; display: flex; flex-direction: column; - background-image: url(./tipregistit.jpg); } .regitem2 { diff --git a/public/react/src/modules/competition/competmodal/PersonModal.js b/public/react/src/modules/competition/competmodal/PersonModal.js index ffa924900..53091d5e5 100644 --- a/public/react/src/modules/competition/competmodal/PersonModal.js +++ b/public/react/src/modules/competition/competmodal/PersonModal.js @@ -65,13 +65,13 @@ class PersonModal extends Component { school_name: this.props.user.user_school, student_id: null, identity: this.props.user.user_identity, - type: "创建者", + type: "导师", }; data.push(datas); - console.log("itemiddata"); - console.log("编辑战队") - console.log(this.props.itemiddata); + // console.log("itemiddata"); + // console.log("编辑战队") + // console.log(this.props.itemiddata); try { if (this.props.Newtit === false) { for (var i = 0; i < this.props.itemiddata.team_members.length; i++) { @@ -126,7 +126,7 @@ class PersonModal extends Component { school_name: this.props.user.user_school, student_id: null, identity: this.props.user.user_identity, - type: "创建者", + type: "导师", }; data.push(datas); this.setState({ @@ -670,11 +670,21 @@ class PersonModal extends Component { textAlign: "center", }} >{item.name === undefined || item.name === null || item.name === "" ? "--" : item.name}

    -

    {item.type === undefined || item.type === null || item.type === "" ? "--" : item.type}

    + { + index === 0 ? +

    创建者

    + : +

    {item.type === undefined || item.type === null || item.type === "" ? "--" : item.type}

    + } +

    {item.identity === undefined || item.identity === null || item.identity === "" ? "--" : item.identity}

    -

    {item.type && item.type === "创建者" ? "" : - this.deletedata(item)}/>}

    + { + index === 0 ? +

    + : +

    this.deletedata(item)}/>

    + }
    ); var cpersondiv1Items = []; diff --git a/public/react/src/modules/competition/competmodal/PersonModaltion.js b/public/react/src/modules/competition/competmodal/PersonModaltion.js index e8e4148ee..680566297 100644 --- a/public/react/src/modules/competition/competmodal/PersonModaltion.js +++ b/public/react/src/modules/competition/competmodal/PersonModaltion.js @@ -9,7 +9,6 @@ import moment from 'moment'; import competition from './comcss/competition.css'; import {Checkbox, Table, Pagination, Menu, Icon} from "antd"; // 团队竞赛报名无报名子组件团队 在线竞赛 > 全国高校计算机大赛-项目挑战> -import Rectanglex from "../../modules/competition/Rectanglex.png"; class PersonModaltion extends React.Component { constructor(props) { diff --git a/public/react/src/modules/competition/personal/PersonalCompetititem.js b/public/react/src/modules/competition/personal/PersonalCompetititem.js index e3863b3a7..bd6a092eb 100644 --- a/public/react/src/modules/competition/personal/PersonalCompetititem.js +++ b/public/react/src/modules/competition/personal/PersonalCompetititem.js @@ -10,8 +10,6 @@ import {SnackbarHOC, WordsBtn, getImageUrl} from 'educoder'; import {TPMIndexHOC} from '../../tpm/TPMIndexHOC'; import competition from '../comcss/competition.css'; import {Button, message} from 'antd'; -import pexjiazai from '../pexjiazai.png' - // 点击按钮复制功能 function jsCopy() { var e = document.getElementById("copy_invite_code"); @@ -126,7 +124,8 @@ class PersonalCompetititem extends React.Component { - +
    From b41f537ae842f7810b4c503010814332632a5501 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 11:26:24 +0800 Subject: [PATCH 123/126] =?UTF-8?q?jingsai.10=20=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/competition/Noentry.jpg | Bin 3125 -> 0 bytes .../react/src/modules/competition/Rectanglex.png | Bin 4529 -> 0 bytes .../react/src/modules/competition/pexjiazai.png | Bin 1171 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/react/src/modules/competition/Noentry.jpg delete mode 100755 public/react/src/modules/competition/Rectanglex.png delete mode 100644 public/react/src/modules/competition/pexjiazai.png diff --git a/public/react/src/modules/competition/Noentry.jpg b/public/react/src/modules/competition/Noentry.jpg deleted file mode 100644 index 5ffc34e17062409c1ce4643c63a0c03a0d03e72b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3125 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 P00000NkvXXu0mjf7PSMa diff --git a/public/react/src/modules/competition/Rectanglex.png b/public/react/src/modules/competition/Rectanglex.png deleted file mode 100755 index 0aa2a31b159a0476db98bfb47ece71f79598d9a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4529 zcmeAS@N?(olHy`uVBq!ia0y~y;LHKCQ#jawq(sGQRR#vZ3Qrfukczmsw+?bLDDbd2 zzTJQB%EAQxciEQ?9Gvj{-Av2Vf(i}|42(=H90K?m2g)0DZ~V&3AxbgOK!1k~PX!4X z3bj~(lVh7whA}}mK$HvQ{3OD?V6`qxO=~%B@erw;CAyAS-%V^t&~7qwCQ|vqY4Z33 z7a9%@4Gt;_H@X&_B@h=d<-j0j9}Qw~(2fQ%EX|CjVpxGTT2PD@6c}~NXhAVrP@q@a zqXoriK`~lT;B2CfwkSqh6zE;3(XI!)%RJhm7;RCYw1HV|(vE;7|;Mr>mdK II;Vst0HmRm0ssI2 diff --git a/public/react/src/modules/competition/pexjiazai.png b/public/react/src/modules/competition/pexjiazai.png deleted file mode 100644 index 78f56b82aae5b403dfa09cf2d5921807bce8ca42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1171 zcmV;E1Z?|>P)4Tx04R}TU|_09EGWofVPIg$%_}Jia(7aQh>TKTzr(=Iz{4QKV8tMwm|R@o z7!csYfD?SX#=r=oFYAKLYC5NOcj`vL=woW%va9V}b8zbe1MZa6;$#K}Mh+l5C8any z7sv+b(Mv8UDgmAHma?3IVT(NjgLp7P zOno-cN$(jLc7zus7A3+R&-jgn5WhIh*a*VrabjR#z4!nBXEg=}_DKv3e<%L`|9jE@ z|9=+)?Z3moa3BW&w$y8VEZD>N0008cNklxHQE{(@yS}vAk zv0BLCaFEC2p_`i2mDktT6!;UMTmLN? zjYeJEtroUgElMVn1WPN!5T6gc(OOvldQtzxk#iA#WQZ*Q6tN!$l6;IT%dA?1PusOR$oF*NM3 z5<`##*lxGQKEF{{DC*6cve|6p^ZDrf{9NKcJ3Aw<*Gu>=2u%V*kW>~ZZb3-tNF+iC zJ~FOSsc_+2tyYRgqYMcCL?S`GUXR;bEEeNV^YZdS>2#WAvl+KT)TkiILa~WAP738{ zU2eB~T~Btqoh~je$YS~5)?6+Zi#eT6=EFW(oan8Jq7a54$wDaabUOSE*$NjS@b!9q z-ECl1wOVB*unbKCgdU5M0`TkWD_e(s01I$l<00ts@^TFbr3g0aaWELH`zYL$&*$02 zh|Op;VsW@Wl}hm;aVV@oh^IQHl7)W1pGu_?Gva|$>k&XV6AXN)V+=JRvDC>W#SmAF z`lDL#m^rc=@l;zV0V3dmKtNLl$ACcwhrhqSm&7GNoapZEj_);fW=RrzE|4hUa9HCp z2@tw)D%2lJ;#k6ApPrrwIk8DwZ~Q|qV4>J%wb8@l!`2IUD Date: Thu, 24 Oct 2019 11:41:32 +0800 Subject: [PATCH 124/126] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Competitimain/CompetitionsIndex.js | 30 ++++---------- .../Competitimain/Competitionsindex.css | 11 ++++- .../Competitioncommon/CompetitionCommon.css | 14 ++++--- .../Competitioncommon/CompetitionCommon.js | 40 +++++++++++++++---- 4 files changed, 60 insertions(+), 35 deletions(-) diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index ba736e03e..61e6419b7 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -78,9 +78,9 @@ class CompetitionsIndex extends Component{ } render() { let {datas,page,count}=this.state; - - - + admin: true + business: false + console.log(this.props.current_user&&this.props.current_user.business) return (
    @@ -100,7 +100,7 @@ class CompetitionsIndex extends Component{ ` } -
    +
    @@ -126,22 +126,7 @@ class CompetitionsIndex extends Component{
    - + {datas===undefined?"":datas.length===0?"": + title={ this.setcompetitonurl(item.competition_status==="ended"?null:item.competition_status==="nearly_published"?`/newcompetitions/${item.identifier}/common_header`:item.competition_status==="progressing"?`/newcompetitions/${item.identifier}/common_header`:null)} + onClick={()=>this.setcompetitonurl(item.competition_status==="ended"?null:item.competition_status==="nearly_published"? this.props.current_user&&this.props.current_user.business===true?`/newcompetitions/${item.identifier}/common_header`:this.props.current_user&&this.props.current_user.admin===true?`/newcompetitions/${item.identifier}/common_header`:null:item.competition_status==="progressing"?`/newcompetitions/${item.identifier}/common_header`:null)} >{item.name}{item.sub_title===null?"":{ item.sub_title }} diff --git a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css index 61fc568aa..c711859c9 100644 --- a/public/react/src/modules/competitions/Competitimain/Competitionsindex.css +++ b/public/react/src/modules/competitions/Competitimain/Competitionsindex.css @@ -14,7 +14,16 @@ background: #fff; width: 1200px; } - +.CompetitionsList{ + position: relative; + max-height: 210px; +} +.competitonimg{ + position: absolute; + right: -5px; + width: 80px; + top: 20px; +} .ant-menu-horizontal { border-bottom:none !important; diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css index e7bd0b0e7..5f6a96173 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css @@ -63,6 +63,7 @@ padding: 20px; background:rgba(255,255,255,1); box-shadow:3px 2px 12px 2px rgba(0,0,0,0.05); + position: relative; } .CompetitionCommonbannerfont{ @@ -92,11 +93,7 @@ color:#05101A; } -.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(4),.CompetitionCommonbannerfont .competitionbannerdiv:nth-child(4) button{ - height: 50px; - background: rgba(76,172,255,1); - border-radius: 4px; -} + .Competitioncolor9b{ color: #9B9B9B; @@ -209,4 +206,11 @@ .Competitiontransparent table{ background: transparent; +} + +.Commonimg{ + position: absolute; + right: -5px; + width:93px; + top: 20px; } \ 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 bc9387c08..f3177cece 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -66,6 +66,8 @@ debugger
    +
    @@ -96,18 +98,42 @@ debugger
    ¥{data&&data.bonus}
    -
    {data&&data.visits_count}
    +
    {data.competition_status==="nearly_published"?"--":data&&data.visits_count}
    -
    {data&&data.member_count}
    +
    {data.competition_status==="nearly_published"?"--":data&&data.member_count}
    + {data.competition_status==="ended"?:}
    + {data.competition_status==="ended"? + : + 立即报名 + } {data&&data.enroll_end_time===null?"":`报名截止时间:${data&&data.enroll_end_time}`} @@ -121,10 +147,10 @@ debugger {data&&data.competition_modules.map((item,key)=>{ return( - {item.module_url===null?this.getrightdata(item.id,item.module_type)}>{item.name}:this.getrightdata(item.id,item.module_type)}>{item.name}:this.getrightdata(item.id,item.module_type)} + href={item.module_url} + // onClick={()=>this.getrightdata(item.id,item.module_type)} >{item.name}} ) From e010ed0a893cbff4036f782348e42d39d27e8b26 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 11:43:48 +0800 Subject: [PATCH 125/126] =?UTF-8?q?jingsai.10=20=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{competition => competitions}/Noentry.jpg | Bin .../Rectanglex.png | Bin .../pexjiazai.png | Bin .../tipregistit.jpg | Bin .../modules/competition/RegisListviewdata.js | 5 ++- .../competition/comcss/competition.css | 30 +++++++++++++++++- 6 files changed, 31 insertions(+), 4 deletions(-) rename public/images/educoder/{competition => competitions}/Noentry.jpg (100%) rename public/images/educoder/{competition => competitions}/Rectanglex.png (100%) rename public/images/educoder/{competition => competitions}/pexjiazai.png (100%) rename public/images/educoder/{competition => competitions}/tipregistit.jpg (100%) diff --git a/public/images/educoder/competition/Noentry.jpg b/public/images/educoder/competitions/Noentry.jpg similarity index 100% rename from public/images/educoder/competition/Noentry.jpg rename to public/images/educoder/competitions/Noentry.jpg diff --git a/public/images/educoder/competition/Rectanglex.png b/public/images/educoder/competitions/Rectanglex.png similarity index 100% rename from public/images/educoder/competition/Rectanglex.png rename to public/images/educoder/competitions/Rectanglex.png diff --git a/public/images/educoder/competition/pexjiazai.png b/public/images/educoder/competitions/pexjiazai.png similarity index 100% rename from public/images/educoder/competition/pexjiazai.png rename to public/images/educoder/competitions/pexjiazai.png diff --git a/public/images/educoder/competition/tipregistit.jpg b/public/images/educoder/competitions/tipregistit.jpg similarity index 100% rename from public/images/educoder/competition/tipregistit.jpg rename to public/images/educoder/competitions/tipregistit.jpg diff --git a/public/react/src/modules/competition/RegisListviewdata.js b/public/react/src/modules/competition/RegisListviewdata.js index 397064662..44fde6a4b 100644 --- a/public/react/src/modules/competition/RegisListviewdata.js +++ b/public/react/src/modules/competition/RegisListviewdata.js @@ -53,7 +53,7 @@ class RegisListviewdata extends React.Component { marginTop: "29px", marginLeft: "37px" }}> -

    - : "" @@ -112,7 +111,7 @@ class RegisListviewdata extends React.Component { width: "134px", marginTop: "29px", }}> -

    Date: Thu, 24 Oct 2019 13:57:54 +0800 Subject: [PATCH 126/126] fix competition enroll api --- app/services/competitions/save_team_service.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/competitions/save_team_service.rb b/app/services/competitions/save_team_service.rb index 1021e6e6d..233648fbb 100644 --- a/app/services/competitions/save_team_service.rb +++ b/app/services/competitions/save_team_service.rb @@ -32,7 +32,7 @@ class Competitions::SaveTeamService < ApplicationService private def update_teacher_team_members! - teacher_ids = Array.wrap(params[:teacher_ids]).map(:to_i) + teacher_ids = Array.wrap(params[:teacher_ids]).map(&:to_i) old_teacher_ids = team.team_members.where(role: 3).pluck(:user_id) destroy_teacher_ids = old_teacher_ids - teacher_ids @@ -49,7 +49,7 @@ class Competitions::SaveTeamService < ApplicationService end def update_member_team_members! - member_ids = Array.wrap(params[:member_ids]).map(:to_i) + member_ids = Array.wrap(params[:member_ids]).map(&:to_i) old_member_ids = team.team_members.where(role: 2).pluck(:user_id) destroy_member_ids = old_member_ids - member_ids