From cc3328b7d1c132be38a3419b4f875d8049ab8106 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, 2 Jul 2019 14:02:41 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=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/user/common.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/react/src/modules/user/common.css b/public/react/src/modules/user/common.css index 762738f70..e9f1d0818 100644 --- a/public/react/src/modules/user/common.css +++ b/public/react/src/modules/user/common.css @@ -46,4 +46,7 @@ } .dragValidator { margin-bottom: 16px; + } + .ysldivhome{ + flex-direction: column; } \ No newline at end of file From 2a10931a61c1a148439073159e6f247545300e01 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, 2 Jul 2019 14:02:59 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=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 | 10 +++- public/react/src/modules/tpm/NewHeader.js | 2 + public/react/src/modules/user/Interestpage.js | 57 +++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 public/react/src/modules/user/Interestpage.js diff --git a/public/react/src/App.js b/public/react/src/App.js index 1a1af02d9..f59f76010 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -207,6 +207,12 @@ const UsersInfo = Loadable({ loading: Loading, }) +// 兴趣页面 +const Interestpage = Loadable({ + loader: () => import('./modules/user/Interestpage'), + loading: Loading, +}) + class App extends Component { constructor(props) { super(props) @@ -324,8 +330,8 @@ class App extends Component { */} {/* */} - - + {/* 兴趣页面*/} + diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 691f8bb1e..7af055314 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -756,6 +756,8 @@ submittojoinclass=(value)=>{
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} {/*
  • this.trialapplications()} >试用申请
  • */} +
  • 兴趣页
  • +
  • {/*退出*/} {/*this.educoderlogin()}>退出*/} diff --git a/public/react/src/modules/user/Interestpage.js b/public/react/src/modules/user/Interestpage.js new file mode 100644 index 000000000..5ac180242 --- /dev/null +++ b/public/react/src/modules/user/Interestpage.js @@ -0,0 +1,57 @@ +import React, {Component} from 'react'; + +import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; + +import {getImageUrl, DragValidator} from 'educoder'; +import {Tabs, Input, Checkbox, Button, notification} from 'antd'; +import axios from 'axios'; +import './common.css' + + +//父组件 EducoderLogin.js +class InterestpageComponent extends Component { + constructor(props) { + super(props) + this.state = { + login: "", + password: "", + passwords: "", + seconds: 60, + codes: "", + getverificationcodes: true, + Phonenumberisnotco: undefined, + Phonenumberisnotcobool: false, + s: 'text', + classpass: "text", + readonlyInput: true, + } + } + + + + + + render() { + const { + } = this.state + // height: 346px; + return ( + +
    + +
    +
    +
    1
    +
    2
    +
    3
    +
    + + +
    + +
    + ); + } +} + +export default (InterestpageComponent); From e3d2a4ae98f2d04d73d96633f8533a885edc1e97 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, 3 Jul 2019 14:58:45 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=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 | 2 +- .../react/src/modules/courses/poll/PollNew.js | 30 +++-- .../Shixunworkdetails/ShixunWorkModal.js | 1 + .../react/src/modules/login/EducoderLogin.js | 74 ++++++----- public/react/src/modules/tpm/NewHeader.js | 2 +- .../src/modules/user/FindPasswordComponent.js | 2 +- public/react/src/modules/user/Interestpage.js | 113 +++++++++++++---- .../modules/user/LoginRegisterComponent.js | 5 +- public/react/src/modules/user/common.css | 119 +++++++++++++++++- public/react/src/modules/user/img/gouxuan.png | Bin 0 -> 462 bytes public/react/src/modules/user/img/hdkf.png | Bin 0 -> 2940 bytes .../react/src/modules/user/img/meigouxuan.png | Bin 0 -> 417 bytes public/react/src/modules/user/img/mytc.png | Bin 0 -> 11814 bytes public/react/src/modules/user/img/qdkf.png | Bin 0 -> 2840 bytes public/react/src/modules/user/img/qita.png | Bin 0 -> 2097 bytes public/react/src/modules/user/img/rgzn.png | Bin 0 -> 2275 bytes public/react/src/modules/user/img/sjk.png | Bin 0 -> 3693 bytes public/react/src/modules/user/img/skzbdx.png | Bin 0 -> 11933 bytes public/react/src/modules/user/img/ydkf.png | Bin 0 -> 2523 bytes public/react/src/modules/user/img/ysj.png | Bin 0 -> 4031 bytes public/react/src/modules/user/img/yunwei.png | Bin 0 -> 3512 bytes public/react/src/modules/user/img/zyrs1.png | Bin 0 -> 9957 bytes 22 files changed, 273 insertions(+), 75 deletions(-) create mode 100644 public/react/src/modules/user/img/gouxuan.png create mode 100755 public/react/src/modules/user/img/hdkf.png create mode 100644 public/react/src/modules/user/img/meigouxuan.png create mode 100755 public/react/src/modules/user/img/mytc.png create mode 100755 public/react/src/modules/user/img/qdkf.png create mode 100755 public/react/src/modules/user/img/qita.png create mode 100755 public/react/src/modules/user/img/rgzn.png create mode 100755 public/react/src/modules/user/img/sjk.png create mode 100755 public/react/src/modules/user/img/skzbdx.png create mode 100755 public/react/src/modules/user/img/ydkf.png create mode 100755 public/react/src/modules/user/img/ysj.png create mode 100755 public/react/src/modules/user/img/yunwei.png create mode 100755 public/react/src/modules/user/img/zyrs1.png diff --git a/public/react/src/App.js b/public/react/src/App.js index f59f76010..15105f749 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -331,7 +331,7 @@ class App extends Component { {/* */} {/* 兴趣页面*/} - + {/**/} diff --git a/public/react/src/modules/courses/poll/PollNew.js b/public/react/src/modules/courses/poll/PollNew.js index 060b8b482..be6b7e5eb 100644 --- a/public/react/src/modules/courses/poll/PollNew.js +++ b/public/react/src/modules/courses/poll/PollNew.js @@ -95,6 +95,12 @@ class PollNew extends Component { // 初始化数据 componentDidMount = () => { // console.log("componentDidMount 50") + if( this.props.isStudent() === true){ + + this.props.history.push("/403") + + return + } if (this.props.match.params.news !== undefined) { if (this.props.match.params.news === "new") { this.state.Newedit === true; @@ -780,19 +786,21 @@ class PollNew extends Component { } } - if (maxtie < 3) { - if (object.question.question_type === 1) { - this.props.showNotification(`选项不能少于3个!`); + if (object.question.question_type === 1) { + if (maxtie < 2) { + this.props.showNotification(`选项不能少于2个!`); return + } } else if (object.question.question_type === 2) { + if (maxtie < 3) { this.props.showNotification(`选项不能少于3个!`); - return + } } - } + if (object.question.question_type === 2) { if (object.question.max_choices > 0) { @@ -1260,17 +1268,19 @@ class PollNew extends Component { } } - if (maxtie < 3) { if (object.question.question_type === 1) { - this.props.showNotification('选项不能少于3个!'); + if (maxtie < 2) { + this.props.showNotification('选项不能少于2个!'); return + } } else if (object.question.question_type === 2) { + if (maxtie < 3) { this.props.showNotification('选项不能少于3个!'); return + } } - } if (object.question.question_type === 2) { if (object.question.max_choices > 0) { @@ -2496,7 +2506,7 @@ class PollNew extends Component { ( {item.question.answers === undefined ? "" : item.question.answers.map((items, i) => { return ( -
    +
    {/*
    {items.answer_text}
    */} @@ -2511,7 +2521,7 @@ class PollNew extends Component { ( {item.question.answers === undefined ? "" : item.question.answers.map((items, i) => { return ( -
    +
    {items.answer_text} diff --git a/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js b/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js index 8b7bbb544..2cb40241d 100644 --- a/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js +++ b/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js @@ -32,6 +32,7 @@ class ShixunWorkModal extends Component{ newgroup_list.push(item) }) if( response.data.ungroup_list!== undefined || response.data.ungroup_list !== null){ + console.log() newgroup_list.push(response.data.ungroup_list) } this.setState({ diff --git a/public/react/src/modules/login/EducoderLogin.js b/public/react/src/modules/login/EducoderLogin.js index f084dec66..7c6dcbe9e 100644 --- a/public/react/src/modules/login/EducoderLogin.js +++ b/public/react/src/modules/login/EducoderLogin.js @@ -25,6 +25,7 @@ import '../courses/css/Courses.css'; import beijintulogontwo from '../../../src/images/login/beijintulogontwo.png'; import educodernet from '../../../src/images/login/educodernet.png'; import LoginRegisterComponent from '../user/LoginRegisterComponent'; +import InterestpageComponent from '../user/Interestpage' import FindPasswordComponent from '../user/FindPasswordComponent'; import passopen from "../../images/login/passopen.png"; //educoder登入页面 @@ -59,26 +60,26 @@ class EducoderLogin extends Component { super(props); if( props.match.url === "/changepassword" ){ this.state = { - showbool: false, + showbool: 3, logini:3, } }else { if(props.match.url === "/login"){ this.state = { - showbool: true, + showbool: 1, loginstatus:true, logini:1, } }else if(props.match.url === "/register"){ this.state = { - showbool: true, + showbool: 1, loginstatus:false, logini:2, } }else{ this.state = { - showbool: true, + showbool: 1, logini:1, } @@ -100,16 +101,18 @@ class EducoderLogin extends Component { }) } - Setshowbool = () => { - - if (this.state.showbool === true) { + Setshowbool = (e) => { + if (e===1) { this.setState({ - showbool: false + showbool: 1 }) - - } else { + } else if(e===2) { + this.setState({ + showbool: 2 + }) + }else if(e===3){ this.setState({ - showbool: true + showbool: 3 }) } } @@ -135,43 +138,53 @@ class EducoderLogin extends Component { "align-items": "center", "width": "100%" }}> -
    +
    { - showbool === true ? + showbool === 1 ?
    -
    +
    + + Setshowbool={(e)=>this.Setshowbool(e)} >
    - : -
    -
    - - -
    -
    - + :showbool === 2 ? +
    + + +
    + : +
    +
    + this.Setshowbool(e)}> + +
    +
    } -
    © 2019 EduCoder湘ICP备17009477号Trustie   &   IntelliDE inside.
    +
    ) diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 7af055314..600f6c803 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -756,7 +756,7 @@ submittojoinclass=(value)=>{
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} {/*
  • this.trialapplications()} >试用申请
  • */} -
  • 兴趣页
  • + {/*
  • 兴趣页
  • */}
  • {/*退出*/} diff --git a/public/react/src/modules/user/FindPasswordComponent.js b/public/react/src/modules/user/FindPasswordComponent.js index e7380c12f..393dbc023 100644 --- a/public/react/src/modules/user/FindPasswordComponent.js +++ b/public/react/src/modules/user/FindPasswordComponent.js @@ -44,7 +44,7 @@ class LoginRegisterComponent extends Component { }); }; StudyMakeMoney = () => { // 调用父组件方法 - this.props.Setshowbool(); + this.props.Setshowbool(1); } diff --git a/public/react/src/modules/user/Interestpage.js b/public/react/src/modules/user/Interestpage.js index 5ac180242..0d01ab563 100644 --- a/public/react/src/modules/user/Interestpage.js +++ b/public/react/src/modules/user/Interestpage.js @@ -1,51 +1,110 @@ import React, {Component} from 'react'; -import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom"; -import {getImageUrl, DragValidator} from 'educoder'; -import {Tabs, Input, Checkbox, Button, notification} from 'antd'; +import {Button} from 'antd'; import axios from 'axios'; import './common.css' - - +import mytc from './img/mytc.png'; +import skzbdx from './img/skzbdx.png'; +import zyrs1 from './img/zyrs1.png'; +import gouxuan from './img/gouxuan.png'; +import meigouxuan from './img/meigouxuan.png'; +import qdkf from './img/qdkf.png'; +import hdkf from './img/hdkf.png'; +import ydkf from './img/ydkf.png'; +import sjk from './img/sjk.png'; +import ysj from './img/ysj.png'; +import yunwei from './img/yunwei.png'; +import rgzn from './img/rgzn.png'; +import qita from './img/qita.png'; //父组件 EducoderLogin.js class InterestpageComponent extends Component { constructor(props) { super(props) this.state = { - login: "", - password: "", - passwords: "", - seconds: 60, - codes: "", - getverificationcodes: true, - Phonenumberisnotco: undefined, - Phonenumberisnotcobool: false, - s: 'text', - classpass: "text", - readonlyInput: true, + gouxuans: 0, + gouxuans2:0, + gouxuans3:[{id:1,name:"前端开发",bool:false,url:qdkf},{id:2,name:"后端开发",bool:false,url:hdkf},{id:3,name:"移动开发",bool:false,url:ydkf},{id:4,name:"数据库",bool:false,url:sjk},{id:5,name:"云计算和大数据",bool:false,url:ysj},{id:6,name:"运维与测试",bool:false,url:yunwei},{id:7,name:"人工智能",bool:false,url:rgzn},{id:8,name:"其他",bool:false,url:qita}], } } + Clickteacher=(e)=>{ + console.log(e); + if(e === 1){ + this.setState({ + gouxuans:1, + }) + }else if(e === 2){ + this.setState({ + gouxuans:2, + }) + }else if(e === 3){ + this.setState({ + gouxuans:3, + }) + } + } + Clickteacher2=(e)=>{ + console.log(e); + let {gouxuans3} =this.state; + for (var i=0;i +
    + +
    +
    请选择你的职业
    +
    +
    +
    this.Clickteacher(1)}>{gouxuans ===1? :}老师
    +
    +
    +
    +
    this.Clickteacher(2)}>{gouxuans===2? :}学生
    +
    +
    +
    +
    this.Clickteacher(3)}>{gouxuans===3?:}专业人士
    +
    +
    +
    +
    选择你可能感兴趣的内容
    + +
    基于你关注的内容推荐
    +
    -
    -
    -
    1
    -
    2
    -
    3
    + {gouxuans3&&gouxuans3.map((item,key)=>{ + return( +
    this.Clickteacher2(item.id)}> + {item.bool===true?:
    } + + {item.name} +
    + ) + })}
    - +
    diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js index c5a2175a9..9d7790ee1 100644 --- a/public/react/src/modules/user/LoginRegisterComponent.js +++ b/public/react/src/modules/user/LoginRegisterComponent.js @@ -138,7 +138,7 @@ class LoginRegisterComponent extends Component { ; StudyMakeMoney = () => { // 调用父组件方法 - this.props.Setshowbool(); + this.props.Setshowbool(3); // this.props.Setlogins(3); this.setState({ login: "", @@ -344,7 +344,8 @@ class LoginRegisterComponent extends Component { passwords: "", Agreetotheterms: "", }) - this.props.history.push(result.data.redirect_uri) + // this.props.history.push(result.data.redirect_uri) + this.props.Setshowbool(2); } catch (e) { diff --git a/public/react/src/modules/user/common.css b/public/react/src/modules/user/common.css index e9f1d0818..d60f59ef0 100644 --- a/public/react/src/modules/user/common.css +++ b/public/react/src/modules/user/common.css @@ -47,6 +47,119 @@ .dragValidator { margin-bottom: 16px; } - .ysldivhome{ - flex-direction: column; - } \ No newline at end of file + .ysldivhome1{ + display: flex; + flex-direction: row; + margin-left: 100px; + margin-right: 129px; + margin-top: 10px; + } + .ysldivhome2{ + display: flex; + flex-flow: row wrap; + align-content:stretch; + margin-top: 10px; + } + .ysldivhomediv{ + width: 101px; + height: 147px; + + } + .ysldivhomediv1{ + width: 110px; + height: 110px; + border-radius:50%; + box-shadow:3px 10px 21px 0px rgba(76,76,76,0.15); + background: #fff; + display: flex; + flex-direction:column; + margin-left: 73px; + margin-top: 15px; + } +.ysldivhomediv2{ + width: 110px; + height: 110px; + border-radius:50%; + box-shadow:3px 10px 21px 0px rgba(76,76,76,0.15); + background: #fff; + display: flex; + flex-direction:column; + margin-left: 73px; + margin-top: 20px; +} + .ysldivhomedivtxt{ + width:101px; + height:27px; + margin-bottom: 10px; + font-size: 14px; + text-align: center; + + } + .ysldivhomedivimg{ + width: 101px; + height: 101px; + } + .ysllogin_register_contents{ + display: flex; + margin-top: 30px; + justify-content: center; + box-shadow:3px 10px 21px 0px rgba(76,76,76,0.15); + border-radius:6px; + background: #fff; + } + .ysllogin_section { + width:800px; + height: 620px; + display: flex; + align-items: center; + flex-direction: column; + } + .yslspans1{ + text-align: center; + font-size: 16px; + color: #111C24; + } + .yslspans2{ + text-align: center; + font-size: 15px; + color: #05101A; + } + .yslspans3{ + text-align: center; + font-size: 13px; + color: #656565; + } + .yslbutton{ + width:255px; + height: 36px; + margin-top:30px; + margin-bottom: 19px; + } + .mt22{ + margin-top: 22px; + } + .gouxuanimg{ + margin-right: 10px; + margin-bottom: 2px; + } + .textall{ + text-align: center; + font-size: 13px; + color: #4B4B4B; + } + .div1img{ + display: flex; + justify-content:center; + width: 60px; + margin-left: 27px; + + } +.yslgouxuanimg{ + width: 20px; + height: 20px; + margin-left: 75px; + +} +.yslgouxuanimg2{ + height: 20px; +} \ No newline at end of file diff --git a/public/react/src/modules/user/img/gouxuan.png b/public/react/src/modules/user/img/gouxuan.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8b0ab6503313d05ee5ad54b177fb324c1972e0 GIT binary patch literal 462 zcmV;<0WtoGP)F%_i z*V066;@oFD8rAIB=2p#Ocv}@C^rb)zB9+b zfe7=VBvqbhaXMJCC)NMofKJuS3s(s1jhs-@QHQOv+Hb)AokMc72+9SFaQ7m07*qoM6N<$ Ef`N(BO8@`> literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/hdkf.png b/public/react/src/modules/user/img/hdkf.png new file mode 100755 index 0000000000000000000000000000000000000000..a1dd25d53703fbeba60e69460ee528f05ac5d31d GIT binary patch literal 2940 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 UmOTL-4FCWD07*qoM6N<$g3c#}kN^Mx literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/qdkf.png b/public/react/src/modules/user/img/qdkf.png new file mode 100755 index 0000000000000000000000000000000000000000..ef214dcddfb186427adb02307c6e5728f5520663 GIT binary patch literal 2840 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 bpLhQYN+hYy{R8in00000NkvXXu0mjfR?_1E literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/rgzn.png b/public/react/src/modules/user/img/rgzn.png new file mode 100755 index 0000000000000000000000000000000000000000..7f1616f4a78d980145c107e5c98a495f0e8b2db5 GIT binary patch literal 2275 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 LNkvXXu0mjf?-~tV literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/skzbdx.png b/public/react/src/modules/user/img/skzbdx.png new file mode 100755 index 0000000000000000000000000000000000000000..7aadff97ccc0b7acc430ae1621634d8984f3b121 GIT binary patch literal 11933 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 literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/ydkf.png b/public/react/src/modules/user/img/ydkf.png new file mode 100755 index 0000000000000000000000000000000000000000..f770ed94002a023674148098ce687adc1c4f76e2 GIT binary patch literal 2523 zcmV<12_*K3P)XB~_)WRnms0B{YQa zGA~1UHUScXO(7HvsS1?Pv`R?(t=|$7FweT;v0m?bchY&UjU`52 z?fCA_dhgHw^FQ}-M&RyIk$||%r80rLV5%r%Ou_7WPd=lFo)!X4mHr+PEFr*uQvo2Q zUVc%~zj$&&+gPf9Ou_7U*SR1BW&yhM z<%fU*Aq_$n0u3O9i6}!#^pa8v3WBL9?zjs@!(s-KEK*blC2C3WxeG^XaHOQ_e(ndg z_xcvh&i5P}K%~kS%n)cB6ix$J1z-+HyeUYv5rxu94p@WN4Vbe$3&{orA;J>!dywL3 zQZzw>kp$9Un4HKx_rrM9&tS3us(ryUkyuMoo$(+ zHP37{3=N{(bd~WL@G~ogeaDds137Lpzq4X~_2XLqD~7*+BnZrzF3=D)3_LiRnA_l~ zNk4mUDtRVNv*cPA@Xdt6KmL`6ZIcGgih2Gg;{c3QKs*dAm?bc+)_Ce5oKYBoaMgG1 zKN4@9wUO>8@TZf6{p+9B`Cl=^z=#sB86z+!-nNlWDFa3c`!_!uM_}g95}00Vjfq-3 zo~)XyJrXC*lz<_!m;HRw_)ttN1kC@8K+~rI=HC*>PuobRSuxtI?H8UM4`3t^3lZku zYmEwwWdW=Zow7NTakgW{T$kuNl{KNnuPd^b|FYiaiXlWD3B)}xb^m`TW~efP0iZXj@cRBVdU_<9 zn*;dncWNMllb~4xnjb^-!v& zj0tgpTelVV>`md;ErrHL3r~K(4h;ESO1H5d+=N@iLuWJUt!$dP`e zlHNE5_Np~L2J^c!28=e}umRItZy^u_5{Z$AOf@hK^%i)Hbm?*dM-G>RS-sBBU`{ib zVkj+|Qv}o7JMxgZBbZACym^ShNWHoaMfU3Tjs6X#t)~V|C~;N_0*k&JLUV&r%$S2Y zm@W&YH5+{lX3NQeEXiUhwU&UX7D_j6Rt~XB?d(Z9l)4Kz+{s|vbWLQh-8|L5irMlf zRt$#{dyK#%_qmF>gZT~};d-V#Y~(x1jAJfcEZ|UQ3aQ?r`L5gIV=(Qjz7h}&H--52sW^m+)L2+N&jk}0J(!s@gIMB$`7n>pJ;hK0gW2O_Fl`+rU?Kub=G9=vbYs4} z^_m|b6!hNoCsT|Lr65ofF`;zvqdYoa=|i$4D{b1_-+PKNS!we=KZALV!KkQ{H|D!!egrK|pMuAHkVnVvJ|q(k0(yi8 zd-H2P2D5f=rc5#4dT8vxlzGetc^ufqig5YGxAuZ zYo0;~_LvVDOcF_V9K-3l{f%b-dd%wG{YEjIt|Jy6TV%j^MKGf!Qj4UYBgaq#UQV5gl-B5CCcuT9N%(+{8S6Vs6 zRhe35Ug=eNea(#?2j|XYkm+})1bzqeQagiDQC&Bu2tlq^;C`1@S$d_Yx}A#=2|Vf4 z^>qrm5J)reYVO>@p)Q1W>-dyI7|5AgJ$Gv1Z^f+Gl+udfN=k;K95q-}$kmvY0C8ty zQGrN}KsKY$pHdo%t`c{Pp*0YFUQ`%or;_=W&%ta+WtCD<{omGQrb7#ri*UH&l0i*t z45D>O49zV;T)*PrR96N)*9vY`XR(alD8?QDQZI&kP)z5GkOoyC3A~sU z3IPwyi(=uUam3>SnGE4CCo(v9Hlstu6a~2<GNIyL*BfqcD8pm`S*UMJFVZ2r`Jcg l@;aWnG&bM$E|@AD{|jaJ@1b0oE-?TA002ovPDHLkV1iQ?u>t@9 literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/ysj.png b/public/react/src/modules/user/img/ysj.png new file mode 100755 index 0000000000000000000000000000000000000000..17c08446a634da35dae89ac02c7800735d1aa0c7 GIT binary patch literal 4031 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 literal 0 HcmV?d00001 diff --git a/public/react/src/modules/user/img/yunwei.png b/public/react/src/modules/user/img/yunwei.png new file mode 100755 index 0000000000000000000000000000000000000000..4e0265efec6ced2c56da29ff513ccc23b0967c23 GIT binary patch literal 3512 zcmV;p4M*~cP)AOpmJmv4^YlRz;KATxEISF(=*fE@0)s$?sMf3;-)hX^;x8Mgd3addETKXpBQl( zAmTgvZ~T-DW_^p>4ua9*m+J>smNMv?Zw=f60_%_m51{zg;e*JB#qafDiPzBs1kM86 zjc4PGHZevj0OJo%N5$bqiwM8td;gRUrqxXWNb2t5yHBBOfh%ZGd?31Y$ZG}Q33pQ0 zJ!yH2u>%Hi7WCNhOr^orF-9H+^;$v5?+)#){$%rJ;(cE-R|bY5DPa`Wm5|Q(hw`nU zfOSZXQC6gb@L};|`j4gc955Vbft`q@%?w*h7#bNRpd6UTe(w#8*tKX8ala3o(!sR2 zDaN?PNOuk(_#&AnzJpxGx110#4T=sZ|8Wk`fvoE+KsJ^(V{9!b8X1EHk5R^O6dqgD zSy8iX%@ZVZrEp3H^ZdWKD>2QLd^lPJ^0i0lOW-m?X-uIA#NW%)T#Pa#p5y%H5G(`!o z28eMm)LD?}k7tqzZyk@4jKXBXqJ(=hO7Rt=bd_tzUtO}Ks-sjmrGwe)C|4>FmGlUt zh3RjNKzgp?!&MeCD2L(ZAO(283-{4Xf6PwCJsy=7g2Li71Q!K}QPN2n)@25=FEllc zYcB;($zay)krq>O1kyA}99V_lkf>?`J1C#gU~!S9hV}EVlV5k$P8fBcLCkr8SH?V0 zF630gCXBI|0kpeW^3NqpMz%x?X1DH2%J=<@_evsAF|qX%zTn%}+=}8j9QMeQzpeTA z`t>Y!`qHKHWP%V}4j(<8CWMfF!*Q&1Q`5MCXu<6AUFkbO$&WyKSk}XDC={#Et%qpc zJ>ke_2EUlXoEtn6o zGAb3QfkI)q5D2{<@-;(&qzZs(FvKkaCqt3RYDHurK;I_PnsqV?XX&!Kc(h>N&&sHz zesQke(X!WKS#F_fS!oQn5{m#gPPTCK^)Z||@1k{o7U{IKp1}GBg>bDB=a37*Vz8Gk zuPcuf%-Z*|DbQR=pcjUI`=D5U5*$u15><$I9g51Nf%$V2xORetwssG1yq!YNWeUq6 zp!~qfN<|ho6d>O^rOVn&n?^?rW@k3Vs4NLWP}E`b3q#5?RelKBM*-n~^n%gj;Z@!< zuFk;12g*=UZs7A%4&L3B#y~$67UTae&sF-PvTK>MaCpe#W!Z%zW!CR-RtF>HP(h4UA$O{VZ=r64tU5Y- zC_Xyk;KW%EuEW1*`FdYe8z!1~WL{FZ%l<=I>~2jXZSztYh?@jcr&ySCM;Yqs4EcVY z6fG?_jvjTC4oUqA6`g+R!C)_66E&D^nG|Czm&d3?O+cXxm1P7oCYhMtV4*Te#I^Hn z6#EWmap4;Zk86Y0=;k2fCUEC1aq-V_8Mf|BI*xFLq?CUBu7urmxN z&bs*In1ik!3f^VomJ&<_JSIR?mK&HquM7>>Sm?gwVPkU&U7enAM?Wl6PriOst%2Eh zCNOPU92FIYaHUfxve>!9M%&k}utEVRJb|#A)io5!31(4wS!^hv~;2E=N_BffJ`3ytCa#f4|frz4{hb$w5{SOrI9V z?Ac`)InogBbL>bKTi)zPUoVBpf$C!!#_Xo&#zw0#&%B+M37+~9(OR1lA+j7%Jh)V4`~u$+LRc6a(5Ys0qki>nN^K z)l~#@=9FRfoFozng3b;P>(^dJcc%->lv)$CHyG@vpN|^M-_v;-!{E6xPxF*MX0 z!j?O_xvn@keclVwdXd;E&ESAsm!d3gVD4QB+%z>Na-28+krGiy&vW#AhZmXLVrJaL zEhZUQ%+bSHY}w2$#)D~)(4Y<+%=(DIta^)Uj1*u08xa}MMlPB=m+`HvWhsXEJX7-}jFJU+i1S+OB%Fk86BsLWRzf^pa4fJRmUw@!^=$~6{}34%2L z;AdTYc+f#d7tjBtTlv-W)e}rKKA1$ZjNrhb4Bq=7gH(zN7n6yiY=#>qaP?Id?!C7R zlP1Lwvj}?oC_devM(Z9M-CeSD@P*g!F#37Sia(8uR%2E+OIH%D$-FF+AC~7O6$yeH zud^_7Y78SPiO7P_U!-W+pTW8Fp3n(?SjzziJ-cljJ(R^jp9exz4d&0s{V|UGoc78Wq6YIO2Sa5ZQ(#cW zzhQo$n8`4y-o&h1;uu?JfDquqMT+LFvSQ|7%gYJo-(QZ&4Kegw_OS7d0bKmXgDE0d zF8P}{(Za%o6&N+j6adehcJTfV8)r{DaI#c`lA9<5qhjgu_R1F{2D4(bEnF!)84Qc6 zEFPKA6CR3Z-IBnBaRxfOD7L(7i;{pRd3B>q{GzcOH6u)%{KCOoZx5iim%<{lj`A(0 zzTQM*Vb@_HVd(s$PxATXKDw5ENEA*yVICse{4lvlOA_w!jvKYM)6g<}IC#{nvdbq+hWI4c}CldzlyE}oIH^pJ| zF#WdyoIc|Q>mz!#%(Gt(h`)!>AE75&Gd_RMCR9+$M%Aj9#z!l@O`Gf#sMMIy>?brm z)C)}2ZPQwzPL`pnf}ru?a$MIC!^JiiuWjl__a)w~lWvjU1q{ZtYMCH6#M1%gvTJ?C zgy%7u82k*LUa zRlbhoH{yK_RAJkG=9P%SEPpMf#wTjzkv|YC*trjHGf0;LEQ@#NfQ-$+lRZDTDYRxb zcz-4@0;%yyZUse-Q`GbS0hm{~#c1KW*u=09pgfW0mLnkf8L?k7Xl>6yE>mPa9#rfB zjGT*cS9<2vh%IK>%L6i8`#DUpiJ^Z04UpK&^Ign8e4&V@H_Lr(@>fa*h2{J(9o8A& zl~%tNHJFzqn9$CORv7wKcW&cAne$M9imjRD@8u1SIQcDxV3|oGnK!fxX-t0ZqCMAiMFA3pmw z(1k5SMIc|dRJSmwuo>E)-Bdp|(h=<+*Z02y#^%Fg)uD8JC{fMdyv!ez`K81l;T_`6Ux9Yck^Y*snLFCS(Pl`U{zMxMj;pSjxr;I8 zt$wuyfSwxv|M+pmpNs!Jc73AXQaKlY4gF0=>|ODH$Nv_4SEAo)pG!2Sx_+a3rs2osjgRSUa|M>n}`3U=SSqH4~Lp}G#VV2T=HlL3~FNsQZG&{z+wQa4OT|xRuh2X*|TqPGq6w>A02Si(6~OX$5Qi7C-yA`>P2<*T;Xdb+LuoQ;xnjA@`_F#YAkeHv5Rb zCmDI_V`B-<@khtcGx{$2YUt~!UQ=jGK6+G1_V#4w8x4+OBgXp-J>sSZITU&S_to{a z$Fsy_qpa_IJzpO`l}N-SdUrCelSg=+wtYPZIDFqmxjeSj% zfg|WE$E}y0kBHU|j>ZzDA@@t7fMx62FgQ|C?i;eO$?j>c_a+-xO#P-WToeQ>|EUBk zHg3sG&N23?^AT?69I4Q>$*&>K@x}MW`0~fCkfaO~E1^I+9=?OXVK({1+aH*G1tgK- z!!Jv)XxSFXat4B9%9!&JinN0xIVqd|3R$wjv1IucNErtXe>tYyksde%q3IW?H9gTx z<2#cihD8L9ueW5NSVv)&esJoX!?sq6v1IwyOtewiA~#fLY8HyiUJC6`+XreT`Ck=f~IRY_lyB}Z1P>u8Z2UJk276+CT`po zAg95|G8-IeiWN%C`L(3HEHaEOd>Ajk_BI5Eih|C$7WF|-FT#;9KAbTdqTotMwN&{+Q-~INSC2!|6)UYoAtgV@juJqW znqnzac!p)5ue=hl;@q-C0hfZ?pLiQDzWo_`cJyM}bJGDN$Y@L96-{{wVYi@l_&F%q zCp{+^P2Qx`kAxpbUEgRjo)Yh2;Kp*4UUpV*PRVkx+Ps!x7Aw11(T^@Jr7 zI8xCUQXOY1*VWDmB=0e0Ri_5I%+@*51qUgldLqYh%moy`D)qUQ5+z#3>kM|HrpZL) zZC?S=+CLd7V3_!1^(LHq;=$O{;RHaak8|u##JX!B>LP4i&xl=bpO>O(+o`~#+LX;m zKS!G2h>4Y7%YANG0(weok{3Z-5aA zf@xu3;2&T(@_9f|j{yEE3(b{~L}JC8o36FeO8guRq-~>aqXm~00SdEVZ2T7CRiA)4 zJsb>XC;-pkKOrb*fr$dverI6X%Q~Ei{b4mM%y{&rH$A;*i0+M*-gKBGwSzwSxB zqA`O_S<*Qw(n|Je6qOrzvm!A(_V63H?Y7G(eIMGkO^B@d1V&XQl!K3iQKcn}-XXCI#&xYI86{cxH zuj#o<7pry4m|9P2FgP+ZpCkS3^Tw@g;=5IeArubdv(LW88*ePY>ecIE7zVsqZn&i^ zl$TfHjoJ60OGg*>l&r^|NzZXtZO4l)K&Oj_LJ%z6cIO-T@rM$GLS+a9N@1EhJf6298WEO$d}>%9!SJf)VjPS@1b-89fCZ zxblfGzdwkpZ@2_kUp0uI+qQHuwm}!z35?t!*zfok&Rm0#^nR6dlk|JM`q`cHnT!Xy2ih5 zc?3)6e+i|d?YrRFW|qmpp-N6T9d3kzVO%)k9E`s8VosS~-kgE*86O~j$T=wZ+h6!^ zAAkA-#{K&>Xu<6;jR+Wv=70zc5uYEj?83#DzXC0yrH}Cx%vgG8y5MN{kk&&A0>{W< zqfzqnHi&KoOr}ygjt=mlPCM%)jKB9v{F3Do*h(|| zIUK5pvroJdp+Fc+Vi267EmnwraRngWtd2PRm_sr3@te5k;>Y{$gZ5J~1h)%EJ@qID z$4jp+#j7tbfYaqbpt2N!s$HCW5C_u2Vdz>AmyCP~l9X%1HJM&fTQN;`eSv6H9PKi*RkN1Ey)h>+JwRkkF%NH$4CH9iT+3?{B{Y z=B_eM_@iI^F9cb}qmO@p_uu&fszXKT_O;dEGBgdQt|Jt##6=^Xg3Hx&-vCl^eAUG< zVo!+!O}d;T!`G1CVQ8dd*s?>9DxjJc zz= z79bj2m*5r)EJ%`yoV*?|Oam{y{vTu;<=8O#Zb&W{EW<$Fz|&B0%~klnTVKRCUoD5P zd@BTQ#u5u))!Fi-=;n1e6hkh!AK_3OIFk7{V#;g0c#NOo=1cnVF%!7C^#}SWS?HeTT`wlf#c7^$6(Wj&DFs$ z$``ey@IEt^TeTJx#RZ3}BOZJDHgxlE#g>PjvcbWXSO<>!?_>DK4UglC#YGS)xWW&M za}5@sn9LYPjGV#U>H8h^StThds|^K5X7&V2!IW)EK*T?b3Z;h(xCT`f{_3Ae53$4` z%$Tnudd9R2xINu5<%!YgRrw3HKRX?Q%idss%+zCFei~O_Js#gK{{}*|CzWaG@MIkX zU&VH?Xx^Z%g>dN=uR;)P>!?nEq&w;Ad=3k@+?j4BSf(nZ%_vr65jf+RKh_|F;!t3U zK}5Lu87CdM&qKju&)tjO+gD-FoP}V~hW@(GkE5TQf`5*C4$D6M$_57jO$*}G)5qfD z#S@@9?5$$XT{=iI?mU*8#fg1w=s^t%8!ShorI${eT9n8zvVfjbm$e8_|3#ZjCnGg0R|ut2;ug-{{~S3CKf&cx68TjgJz6}?Qg#4R{U<& zB1B5dtIt`wj!r|)!R(L+Pe1Ss91gp-MRnw0_=p$qJemlZRK$9o(jD7)&nq^fh#W?T@4zWZ!iQyVO)8` zUvP0(KYVX31&fL!t+En*?z_?syPxkBf5-m!}ghy5vcG_1TN~am^fvlEQ;} zx%s_u-mpnEeI50IBo(d^y+2)Wv~!LG3r`NPXC9x0=cm2_hr@P&3FI+dJsq2iw_)g6 zf2)qS*hwA?k%)$iF24}}9(M)SKlcpuCEvi%BIs2(26@LEhb2qD!Hw744Ufmgbq=q$ z2hJP%5H@XCijNlG4^_?L?@`rk48QETx_upKfT8x(8U~JHWM*fdX3{yx$1!g7R4gj` ztl9w<3Wc%Y%NOy(n)Uem-|ptR2v-H7;Gj~2LFfGrlPBMZpccUT$ETuT(D}$c`WQ~5 z?|&@8$cslsy{#6!*#}|hum|w*qN&)l@k1WjC2^DG?T%r?A4RCPmy{k-J9biA7fF)z zlP)+i+kM_lrYwQu+AHqH53AQ#H)e4-ReZGa6-=D)0%p%Bf=vA-nVsebCcw}Q3>f%Z zOnq#WZKaqRq`00Od&&YhZ_ststr)UA-EiSW4`Rl&YY`0W;rCDguUq$%Fz}o^>i3e? z#XagWeWSoi7aW-_R+`C_Rb>H}47v$Bx0hCPX4R?S4GD(IY%>z6^9~X(8+&Az!wXx16_M`#;ddM$C;;I2~|~Wucjc_0Eu#Z zk(tQNwIINOtQ^WM4MEop4xH~+u7%s1jhy^0obZz5#HszS!Mn3>hr^j;!+;66?2oTQ zqs@nS3Skr-wX?nwfhGlqS-RlJ?0k-90*4|q3_RwKyc&%TO6KW*`tca~*Yk1ppZ|@# z4!L}52A(9$#fpuNs*1fR-MR%QoN_dleY%SGCZ(fuw|s;{8hn8u3Jy7($4&?wopX-G zhIJo65GC089M_=F;TLi+)i_d#%*Jl0hm$l69GSY`N;84Oh=lRG6aHfB6`b8iaNW(9 zL3D_C_NkdrT~3>G#DEbcOjX$)?A@^)$DDWswr<`5iMKVhkk>H>#T&LF7!0DIPhTFg zr)DqV@=BP7oo%k^Azc2a889vBfK|Pv3yyZNl7K~5?k&gQ{#V28wjEuS6+TRQY!v=C zb3RH+c0@&rojq<>zu6L?a_=rg{63z{!&3|Sd4ZQX>Y8C^k2zd$dAyt(h0DtMv#5sU z&^|-(+X2@@i$p8l($FPRQB7U}2#0W-Q@frjno9nj; zlRQ(=JCdNJVc^KrsBANVPX7pf9X zDP#{5g2#`43RGrxJrN7=)W||1;LF--J7FyAO=~7o=$Fb}6H%IHFbaHSJGo zHz~*t4j>K}E`q4Effw7t>2l$JZ@!FRFiFFf1B-z=pH43SuYM@TvY#?=kGFuY45Kd_ zipa0Lm%V8U$jRLSmxCb?@F5)TiBMSJrH+?fbW!zUk|jdK7bJ40OSN`SV9>*UNUEK` zVe^t$g+A52kSGx_{f$?kYxPvtHxn?p&LId`_ERxdY}`uG>EZ`(9?+|?!)dhi95eOv zkZGDKagH$~n`kflXuE^>9Wm;fsKppOp|xNR1EwUPBGMZ&qZ-pNE**9W-?ob%1P)2% z;1EQ)x|I{96cU%<;83XPXf5LNf+(Ovejc8G@gY=IHFAroB%%6-5|p|nezmp)%QkF* zlxg7bRh1(csIu3#7UcG=huxnmu|gMTCB$w>2;F@iCi<%?Vqx@YD*EMUu(S}~-vrFu zySV?dYcsw0Cq1Q?Mp+_P$#$T=M zM(?YhYYM)MI(s+Nx;K6~$V;<7fB{KX;LXX0EGtBU%;6lCWvLXP+OL6HB2QtADXqWItTd zxJAjX1I{RLP{v$C*fOb`PsY9E}D?Bi^0%ts^i(6fW%g&)iO3x`?89h^ZSr!Pwe8RU1#3GVBed@Wo@EMT&xhml{j!j!U2RhILMhQa5I-QRciI5I!JNlzK>}O z7f$+f3#WD3!*5aG7;(x7XTX_V!2p@W09g)_EW_#XAS)*as?&vF#K)D(Yi(%rlB zOLy%?MR^5GkT$PE;W~$>nsbn)67ui07fulEvI7nd398crNut^nbIgYeCOw$;>bCG3 zS}Zu?*F6RlvMyYnEM({Bb1|W75m3toL)Wlz!xmVU5LHM?tVle=D-x>W)(ZC>2(~Fm z;Gk!zjx3%(Y8d8uixy3q*TQL?_V8N;IBElhbO~3ET^h;le^Eqn@eY`#$hih7rJ^8n z;6wry93XTLqMlQ_Pn2ai9Ja}8nR=gv3m;sc_Ug9q8(JMWqKJSq+ivB=2`vgJ{$(dj z5IC~n!g43V(kHf7_$At{Q@IYhO}>s_BaYu2pHjJO>@0Ja@)6z_xu8LBfI zit6U#!!UJ({R9pl&kp03N;Cn8d>pDux{30|{P`2@Ef(6?(PqF=QoIWmlcBnDcwaCA z0kxl`rZc3Jl30m>gB)NA_i<#Af8^N(^X|L8jp4#(z%6Og@zzSc<7R9>u~Jg98x~XG zaAx!V8Uz4RR7n}N!C^bu2sBjk=x}92mYnqawe#nXf4(KHQ&Ww#Rf2<*P)9cTC+uY+ zorAyuL51q{^3FUQ99jgSpbZZGrBI%SKza#v9L(iX*}oWlkOMPwNdx`l$3(82@`iV%@0D{-zt$|!>n4hE64bZKFzB@wl$#@Z^u zVRMds)(SOq*|N3F1_xOnGDT!5`zye^0&0;!wHK8ATc)FZD!MjAaBSON1tvN;;dxsI3!{Vn((5Dsias{yPkRU zNunTL#YADGJKLRO7$%D~lG|Mxf+$D9AqZO*%%50rYX561BEfPmRlQLPp~IEKbq+B0 z@A*aJCnkGeYd_!OIY%M_jX3iLPf5kD3pCC6AKzU`B>#qsJHUu@0OH(0pyFES!Of9S zg+M_!Dt2>7UTZ(!M!;d4u%uH+RFWWAmxlxX zNs{c7znNIbt*3y$9&JNyFEvN;Fo6BLc5 zf4r8|Vh=~c{>56T;{6a$E(T=P16NiD$g*?Qym|K?*EZo$bJndE9EWs2`-0s3ocG8r z&XrAP4v(ww(gVwUDiR5ogadmgg@YB`(pN)U000J{Nkl+&Puj zI@X=HKXlIQnG4^|&Clcd1evMabxtjyEH*Oi-@7{;uJ|w#@^f&gu59iA69l>4Qi-m9 zDqrCN`-q4ul$MryOw)83hO;{L-|zP`x7)oB1XO}zXYxf4AF8SVua_~)a$Ead4<8MB090G^x;*nNawH;tug!R_6@?Md^-bK{3h4MHYZt`*DL14 zK@V$+jozUPH!-#q@E zw-&t>;~XSbY;XuBES4Mc?>;T)ulPXMf;?QWdh+0O{0js2Kqc zn%9ygOQf8f&IdDQd30USleNOobwe;s%O}guDj?EB)0h^!hdMLOd2`-Tvt}%KJtsGh z2h>Qc@Z3>B+*vfYu*<;HZX6y8l)q)@A>J#D9AHj&PTBl<_tD0&?MEh-CVcYA*9RGf z-kVxyh@xm2hQR?G|96aXjLD2K(k6(Dl7JA5HLhy}WRmbPguS=+-TJ@!&y+ zUGeZkZ(k&sfu{|V!u56$lf#w!>Vo+buWScLhJzzUpeLW4d8lQDFJw%JSS-=bDA9?K zKSU5Um}S!$%js17^R|Dy|IR13d9u8`aGE%WVKMaW+xdm#j_JH|){IX&lg2478bsgBT3=QA)q_6tU3#f7_*o~`~}ui@67(FzZN#; zO4M4?;o+Qtw!%2^q%IHTW-Gf_fBVbeAHVzQY}(OUknLh8MfKjeXwl@S+QHF+z!4+X zm@!i>1dO2;LnXEFs*8x!c;%yo%Rh{S^&;vwYI6>XtH|1M$7MYNK`?*%Vavecjhj!Q zEHP3@$wR8Do{@_dJ@iI9I9eb$XvjC+G`@E@5*b6uUJ#g;z`f2}l?VL6{O`Zn^n2Ci z=2dPy@TMwT3VPxlSWNtR!|u~}Z`*k!)y(n~L8k|*>KwFa(W4)>gQJClgN8k9*mW+K z$9vVvXM>hnmLDO(BoK?JG*I;TWM>!gbBOBgq<3mXfhXuxh0e>WK^M>tbi8AB) z9*UX`rTs-#FzB@eP(-Jyt%vG0C1`ugJ%1fU=u+A-1gWDN9#A{N)*E{Bf`zF`f+V z6%VDBl8WR;ma7Y7$rFfJ=D`a-zkOF*Abzqrws>&Z6D$;tJK>u8`Hn@K1;0G+%YXls?l|_?3%XlOnl6X322%4lmm{D569wh1_ddP#l4J|l z7S6X4aM+~!&2I*sYM9om3}Q~ca!_7&Rsj^5`fSia;D{_L`r^)W_7V0>>4d|(&lDgG zmqaHVYA&2=4ov9h&Hv)AHrHCRHsD(oIB0SQ9duf*ZsLg^*@s=>adw8yIVd&IKt%K3 zw_sV}xY~=*?>AT6%mnH00+YL`vioaAbzin<+5LOk0(Yoyj;#(HvB@5B$nS5+b$6Mf z$X Date: Wed, 3 Jul 2019 16:10:24 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/courses/css/Courses.css | 4 +- public/react/src/modules/tpm/SiderBar.js | 2 +- .../modules/tpm/TPMsettings/TPMsettings.js | 4 +- .../tpm/TPMsettings/css/TPMsettings.css | 6 +- .../tpm/challengesnew/TPMevaluation.js | 12 +- .../challengesnew/css/TPMchallengesnew.css | 530 ++++++------ .../react/src/modules/tpm/component/TPMNav.js | 2 +- .../modules/tpm/newshixuns/css/Newshixuns.css | 758 +++++++++--------- 8 files changed, 661 insertions(+), 657 deletions(-) diff --git a/public/react/src/modules/courses/css/Courses.css b/public/react/src/modules/courses/css/Courses.css index 83d5ebbde..11ba24c5d 100644 --- a/public/react/src/modules/courses/css/Courses.css +++ b/public/react/src/modules/courses/css/Courses.css @@ -369,13 +369,13 @@ a.white-btn.use_scope-btn:hover{ } #memoMD .CodeMirror { - width: 576px !important; + /*width: 576px !important;*/ margin-top: 31px !important; height: 364px !important; } #memoMD .editormd-preview { - width: 567px !important; + width: 578px !important; top: 40px !important; height: 364px !important; } diff --git a/public/react/src/modules/tpm/SiderBar.js b/public/react/src/modules/tpm/SiderBar.js index bc5800153..14aeeb5ae 100644 --- a/public/react/src/modules/tpm/SiderBar.js +++ b/public/react/src/modules/tpm/SiderBar.js @@ -106,7 +106,7 @@ class SiderBar extends Component {

    - +

    微信扫一扫

    关注公众号

    diff --git a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js index 788002b4a..949b0a949 100644 --- a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js +++ b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js @@ -1553,7 +1553,7 @@ export default class TPMsettings extends Component {
    -
    +
    {/**/} { // this.props.identity<4&&this.props.status==0? - this.props.identity<4? + this.props.identity<5?
    保存 diff --git a/public/react/src/modules/tpm/TPMsettings/css/TPMsettings.css b/public/react/src/modules/tpm/TPMsettings/css/TPMsettings.css index 0df6110be..015174c44 100644 --- a/public/react/src/modules/tpm/TPMsettings/css/TPMsettings.css +++ b/public/react/src/modules/tpm/TPMsettings/css/TPMsettings.css @@ -10,24 +10,22 @@ line-height: 30px; } #shixundescription .CodeMirror{ - width: 570px !important; margin-top: 31px !important; height: 364px !important; } #shixundescription .editormd-preview{ - width: 567px !important; + width:578px !important; top: 40px !important; height: 364px !important; } #shixunmemoMD .CodeMirror{ - width: 548px !important; margin-top: 31px !important; height: 578px !important; } #shixunmemoMD .editormd-preview{ - width: 544px !important; + width: 578px !important; top: 40px !important; height: 578px !important; } diff --git a/public/react/src/modules/tpm/challengesnew/TPMevaluation.js b/public/react/src/modules/tpm/challengesnew/TPMevaluation.js index ccd34f1ee..80e8b3f43 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMevaluation.js +++ b/public/react/src/modules/tpm/challengesnew/TPMevaluation.js @@ -951,7 +951,7 @@ export default class TPMevaluation extends Component {
    -
    + {pathoptionvalue===1?

    待处理图片路径

    @@ -970,10 +970,10 @@ export default class TPMevaluation extends Component {
    -
    +
    :""} -
    + {pathoptionvalue===1?

    标准答案图片路径

    @@ -992,10 +992,10 @@ export default class TPMevaluation extends Component {
    -
    +
    :""} -
    + {pathoptionvalue===1||pathoptionvalue===-1?"":

    学员答案文件路径

    @@ -1013,7 +1013,7 @@ export default class TPMevaluation extends Component {
    -
    +
    }
    diff --git a/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css b/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css index 9a09ab1be..9a8af13e7 100644 --- a/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css +++ b/public/react/src/modules/tpm/challengesnew/css/TPMchallengesnew.css @@ -1,263 +1,269 @@ -.CodeMirror-scroll { - overflow: auto !important; - margin-bottom: -30px; - margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; - position: relative; -} -a.white-btn.orange-btn:hover { - border: 1px solid #F06200; - color: #FFF !important; -} -.flex1 a.white-btn.orange-btn:hover { - border: 1px solid #F06200; - color: #FFF !important; -} - -/*.challenge_nav li a{*/ - /*color:#000 !important;*/ -/*}*/ - -.questionli{ - width: 95%; - margin-left: 37px; -} -#directory_file{ - height:200px; - overflow-y:auto; - background:#f5f5f5; - padding:10px; -} -.directory_filepath{ - width:120px; - text-align:left; -} - -a{ - text-decoration: none; - color: #05101a; -} -.repository_url_tippostion{ - position: absolute; - left: 22%; - width: 500px; - top: 100%; -} - -.top-black-trangleft { - display: block; - border-width: 8px; - position: absolute; - top: -16px; - /* right: 4px; */ - border-style: dashed solid dashed dashed; - border-color: transparent transparent rgba(5,16,26,0.6) transparent; - font-size: 0; - line-height: 0; -} - -#exercisememoMD .CodeMirror { - margin-top: 31px !important; - height: 700px !important; - width: 579px !important; -} - -#exercisememoMD .editormd-preview { - top: 40px !important; - height: 700px !important; -} -#exercisememoMD{ - height: 700px !important; -} -#questioMD{ - /*width: 95% !important;*/ - height: 586px !important; - margin-left: 0% !important; -} - - -#questioMD .CodeMirror { - width: 550.5px !important; - margin-top: 31px !important; - height: 550px !important; -} - -#questioMD .editormd-preview { - top: 40px !important; - height: 550px !important; -} - -#newquestioMD .CodeMirror { - width: 549px !important; - margin-top: 31px !important; - height: 364px !important; -} - -#newquestioMD .editormd-preview { - top: 40px !important; - height: 364px !important; -} - -#challenge_choose_answer .CodeMirror { - margin-top: 31px !important; - height: 364px !important; - width: 578px !important; -} - - -#challenge_choose_answer .editormd-preview { - top: 40px !important; - height: 364px !important; -} - -#neweditanswer .CodeMirror { - margin-top: 31px !important; - height: 364px !important; - width: 549.5px !important; -} - -#neweditanswer .editormd-preview { - top: 40px !important; - height: 364px !important; -} - -#repository_url_tip { - top: 30px !important; - left: 249px !important; - width: 292px !important; -} - -#editanswers .CodeMirror{ - width: 548px !important; - height: 358px !important; - margin-top: 30px !important; -} -#editanswers .editormd-preview{ - width: 569px !important; - height: 358px !important; -} -#newquestioMDs .CodeMirror{ - width: 510px !important; - height: 358px !important; - margin-top: 30px !important; -} - -#newquestioMDs .editormd-preview{ - width: 569px !important; - height: 358px !important; -} - -.choose_names{ - width: 80px; - margin-left: 20px; -} - -#answerMD .CodeMirror{ - width: 569px !important; - height: 600px !important; - margin-top: 30px !important; -} - -#answerMD .editormd-preview{ - width: 569px !important; - height: 600px !important; -} - -#answerMD { - height: 600px !important; -} - -.textareavalue{ - width: 100%; - padding: 5px; - - box-sizing: border-box; -} -.greyInput{ - width: 107%; -} -.greyInpus{ - width: 100%; -} - -.pdr20{ - padding-right:20px; -} - -.winput-240-40s { - background-color: #F5F5F5; -} - - -.winput-240-40s:focus{ - background-color: #fff; -} -.input-100-45{ - background-color: #F5F5F5; -} -.input-100-45:focus{ - background-color: #fff; - } - -.wind100{ - width:100% !important; -} - -.color-bule-tip { - color: #5485f7 !important; -} -.martopf4{ - margin-top:-4px; -} - -.headdfgf{ - display: block; - width: 100px; - height: 30px; - line-height: 30px; - float: left; -} - -.color979797{ - color: #979797 !important; -} - -.border-left{ - width: 0; - height: 0; - border-bottom: 6px solid transparent; - border-right: 6px solid #cccbcb; - border-top: 6px solid transparent; - position: absolute; - left: 30px; - top: 12px; -} -.border-left span{ - display: block; - width: 0; - height: 0; - border-bottom: 6px solid transparent; - border-right: 6px solid #fff; - border-top: 6px solid transparent; - position: absolute; - left: 1px; - top: -6px; - z-index: 10; -} -.fillTip{ - position: absolute; - left: 36px; - top: 2px; - width: 125px; - font-size: 12px; - display: block; - padding: 5px; - border: 1px solid #eaeaea; - border-radius: 5px; - box-sizing: border-box; - height: 32px; - line-height: 20px; - font-family: "微软雅黑","宋体"; +.CodeMirror-scroll { + overflow: auto !important; + margin-bottom: -30px; + margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: none; + position: relative; +} +a.white-btn.orange-btn:hover { + border: 1px solid #F06200; + color: #FFF !important; +} +.flex1 a.white-btn.orange-btn:hover { + border: 1px solid #F06200; + color: #FFF !important; +} + +/*.challenge_nav li a{*/ + /*color:#000 !important;*/ +/*}*/ + +.questionli{ + width: 95%; + margin-left: 37px; +} +#directory_file{ + height:200px; + overflow-y:auto; + background:#f5f5f5; + padding:10px; +} +.directory_filepath{ + width:120px; + text-align:left; +} + +a{ + text-decoration: none; + color: #05101a; +} +.repository_url_tippostion{ + position: absolute; + left: 22%; + width: 500px; + top: 100%; +} + +.top-black-trangleft { + display: block; + border-width: 8px; + position: absolute; + top: -16px; + /* right: 4px; */ + border-style: dashed solid dashed dashed; + border-color: transparent transparent rgba(5,16,26,0.6) transparent; + font-size: 0; + line-height: 0; +} + +#exercisememoMD .CodeMirror { + margin-top: 31px !important; + height: 700px !important; + /*width: 579px !important;*/ +} + +#exercisememoMD .editormd-preview { + top: 40px !important; + height: 700px !important; + width: 578px !important; +} +#exercisememoMD{ + height: 700px !important; +} +#questioMD{ + /*width: 95% !important;*/ + height: 586px !important; + margin-left: 0% !important; +} + + +#questioMD .CodeMirror { + /*width: 550.5px !important;*/ + margin-top: 31px !important; + height: 550px !important; +} + +#questioMD .editormd-preview { + top: 40px !important; + height: 550px !important; + width: 578px !important; +} + +#newquestioMD .CodeMirror { + /*width: 549px !important;*/ + margin-top: 31px !important; + height: 364px !important; +} + +#newquestioMD .editormd-preview { + top: 40px !important; + height: 364px !important; + width: 578px !important; +} + +#challenge_choose_answer .CodeMirror { + margin-top: 31px !important; + height: 364px !important; + /*width: 578px !important;*/ +} + + +#challenge_choose_answer .editormd-preview { + top: 40px !important; + height: 364px !important; + width: 578px !important; +} + +#neweditanswer .CodeMirror { + margin-top: 31px !important; + height: 364px !important; + /*width: 549.5px !important;*/ +} + +#neweditanswer .editormd-preview { + top: 40px !important; + height: 364px !important; + width: 578px !important; +} + +#repository_url_tip { + top: 30px !important; + left: 249px !important; + width: 292px !important; +} + +#editanswers .CodeMirror{ + /*width: 548px !important;*/ + height: 358px !important; + margin-top: 30px !important; +} +#editanswers .editormd-preview{ + width: 578px !important; + height: 358px !important; + +} +#newquestioMDs .CodeMirror{ + /*width: 510px !important;*/ + height: 358px !important; + margin-top: 30px !important; +} + +#newquestioMDs .editormd-preview{ + width: 578px !important; + height: 358px !important; +} + +.choose_names{ + width: 80px; + margin-left: 20px; +} + +#answerMD .CodeMirror{ + /*width: 569px !important;*/ + height: 600px !important; + margin-top: 30px !important; +} + +#answerMD .editormd-preview{ + width: 578px !important; + height: 600px !important; +} + +#answerMD { + height: 600px !important; +} + +.textareavalue{ + width: 100%; + padding: 5px; + + box-sizing: border-box; +} +.greyInput{ + width: 107%; +} +.greyInpus{ + width: 100%; +} + +.pdr20{ + padding-right:20px; +} + +.winput-240-40s { + background-color: #F5F5F5; +} + + +.winput-240-40s:focus{ + background-color: #fff; +} +.input-100-45{ + background-color: #F5F5F5; +} +.input-100-45:focus{ + background-color: #fff; + } + +.wind100{ + width:100% !important; +} + +.color-bule-tip { + color: #5485f7 !important; +} +.martopf4{ + margin-top:-4px; +} + +.headdfgf{ + display: block; + width: 100px; + height: 30px; + line-height: 30px; + float: left; +} + +.color979797{ + color: #979797 !important; +} + +.border-left{ + width: 0; + height: 0; + border-bottom: 6px solid transparent; + border-right: 6px solid #cccbcb; + border-top: 6px solid transparent; + position: absolute; + left: 30px; + top: 12px; +} +.border-left span{ + display: block; + width: 0; + height: 0; + border-bottom: 6px solid transparent; + border-right: 6px solid #fff; + border-top: 6px solid transparent; + position: absolute; + left: 1px; + top: -6px; + z-index: 10; +} +.fillTip{ + position: absolute; + left: 36px; + top: 2px; + width: 125px; + font-size: 12px; + display: block; + padding: 5px; + border: 1px solid #eaeaea; + border-radius: 5px; + box-sizing: border-box; + height: 32px; + line-height: 20px; + font-family: "微软雅黑","宋体"; } \ No newline at end of file diff --git a/public/react/src/modules/tpm/component/TPMNav.js b/public/react/src/modules/tpm/component/TPMNav.js index fa0623ae1..5af04e8e7 100644 --- a/public/react/src/modules/tpm/component/TPMNav.js +++ b/public/react/src/modules/tpm/component/TPMNav.js @@ -43,7 +43,7 @@ class TPMNav extends Component { {/* target="_blank"*/} 3||this.props.identity===undefined ? "none" : 'block'}} + style={{display: this.props.identity >4||this.props.identity===undefined ? "none" : 'block'}} >配置
    ); diff --git a/public/react/src/modules/tpm/newshixuns/css/Newshixuns.css b/public/react/src/modules/tpm/newshixuns/css/Newshixuns.css index 5e09db11a..b902c94ae 100644 --- a/public/react/src/modules/tpm/newshixuns/css/Newshixuns.css +++ b/public/react/src/modules/tpm/newshixuns/css/Newshixuns.css @@ -1,379 +1,379 @@ -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; - color: black; - direction: ltr; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror-cursor { - border-left: 1px solid black; - border-right: none; - width: 0; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.cm-fat-cursor .CodeMirror-cursor { - width: auto; - border: 0 !important; - background: #7e7; -} -.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} -.cm-fat-cursor-mark { - background-color: rgba(20, 255, 20, 0.5); - -webkit-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7; -} -@-webkit-keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} -@keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} - -/* Can style cursor different in overwrite (non-insert) mode */ -.CodeMirror-overwrite .CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-rulers { - position: absolute; - left: 0; right: 0; top: -50px; bottom: -20px; - overflow: hidden; -} -.CodeMirror-ruler { - border-left: 1px solid #ccc; - top: 0; bottom: 0; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -.CodeMirror-composing { border-bottom: 2px solid; } - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - position: relative; - overflow: hidden; - background: white; -} - -.CodeMirror-scroll { - overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actual scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - min-height: 100%; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - vertical-align: top; - margin-bottom: -30px; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - background: none !important; - border: none !important; -} -.CodeMirror-gutter-background { - position: absolute; - top: 0; bottom: 0; - z-index: 4; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} -.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } -.CodeMirror-gutter-wrapper ::selection { background-color: transparent } -.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; - -webkit-font-variant-ligatures: contextual; - font-variant-ligatures: contextual; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - padding: 0.1px; /* Force widget margins to stay inside of the container */ -} - -.CodeMirror-widget {} - -.CodeMirror-rtl pre { direction: rtl; } - -.CodeMirror-code { - outline: none; -} - -/* Force content-box sizing for the elements where we expect it */ -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -webkit-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} - -.CodeMirror-cursor { - position: absolute; - pointer-events: none; -} -.CodeMirror-measure pre { position: static; } - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -div.CodeMirror-dragcursors { - visibility: visible; -} - -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } -.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } -.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } -.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } - -.cm-searching { - background-color: #ffa; - background-color: rgba(255, 255, 0, .4); -} - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } - - - - -.radioStyle{ - display: block; - height: 30px; - } -a.white-btn.use_scope-btn:hover{ - -} -.shixunScopeInput{ - width:218px; - height:33px; - display:block; - margin-bottom:15px; -} - -#memoMD .CodeMirror { - width: 576px !important; - margin-top: 31px !important; - height: 364px !important; -} - -#memoMD .editormd-preview { - width: 567px !important; - top: 40px !important; - height: 364px !important; -} - -.ml36{ - margin-left: 26px; -} -#person-unit a.white-btn.use_scope-btn:hover { - border: 1px solid #F06200; - color:#FFF !important; -} - - +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: monospace; + height: 300px; + color: black; + direction: ltr; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + white-space: nowrap; +} + +.CodeMirror-guttermarker { color: black; } +.CodeMirror-guttermarker-subtle { color: #999; } + +/* CURSOR */ + +.CodeMirror-cursor { + border-left: 1px solid black; + border-right: none; + width: 0; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.cm-fat-cursor .CodeMirror-cursor { + width: auto; + border: 0 !important; + background: #7e7; +} +.cm-fat-cursor div.CodeMirror-cursors { + z-index: 1; +} +.cm-fat-cursor-mark { + background-color: rgba(20, 255, 20, 0.5); + -webkit-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; +} +.cm-animate-fat-cursor { + width: auto; + border: 0; + -webkit-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; + background-color: #7e7; +} +@-webkit-keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} +@keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} + +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror-overwrite .CodeMirror-cursor {} + +.cm-tab { display: inline-block; text-decoration: inherit; } + +.CodeMirror-rulers { + position: absolute; + left: 0; right: 0; top: -50px; bottom: -20px; + overflow: hidden; +} +.CodeMirror-ruler { + border-left: 1px solid #ccc; + top: 0; bottom: 0; + position: absolute; +} + +/* DEFAULT THEME */ + +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-link {text-decoration: underline;} +.cm-strikethrough {text-decoration: line-through;} + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable, +.cm-s-default .cm-punctuation, +.cm-s-default .cm-property, +.cm-s-default .cm-operator {} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-s-default .cm-error {color: #f00;} +.cm-invalidchar {color: #f00;} + +.CodeMirror-composing { border-bottom: 2px solid; } + +/* Default styles for common addons */ + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} +.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } +.CodeMirror-activeline-background {background: #e8f2ff;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + position: relative; + overflow: hidden; + background: white; +} + +.CodeMirror-scroll { + overflow: scroll !important; /* Things will break if this is overridden */ + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actual scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + min-height: 100%; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + display: inline-block; + vertical-align: top; + margin-bottom: -30px; +} +.CodeMirror-gutter-wrapper { + position: absolute; + z-index: 4; + background: none !important; + border: none !important; +} +.CodeMirror-gutter-background { + position: absolute; + top: 0; bottom: 0; + z-index: 4; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} +.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } +.CodeMirror-gutter-wrapper ::selection { background-color: transparent } +.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } + +.CodeMirror-lines { + cursor: text; + min-height: 1px; /* prevents collapsing before first draw */ +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; + -webkit-tap-highlight-color: transparent; + -webkit-font-variant-ligatures: contextual; + font-variant-ligatures: contextual; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} + +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + padding: 0.1px; /* Force widget margins to stay inside of the container */ +} + +.CodeMirror-widget {} + +.CodeMirror-rtl pre { direction: rtl; } + +.CodeMirror-code { + outline: none; +} + +/* Force content-box sizing for the elements where we expect it */ +.CodeMirror-scroll, +.CodeMirror-sizer, +.CodeMirror-gutter, +.CodeMirror-gutters, +.CodeMirror-linenumber { + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.CodeMirror-cursor { + position: absolute; + pointer-events: none; +} +.CodeMirror-measure pre { position: static; } + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 3; +} +div.CodeMirror-dragcursors { + visibility: visible; +} + +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } +.CodeMirror-crosshair { cursor: crosshair; } +.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } +.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } +.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } + +.cm-searching { + background-color: #ffa; + background-color: rgba(255, 255, 0, .4); +} + +/* Used to force a border model for a node */ +.cm-force-border { padding-right: .1px; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror div.CodeMirror-cursors { + visibility: hidden; + } +} + +/* See issue #2901 */ +.cm-tab-wrap-hack:after { content: ''; } + +/* Help users use markselection to safely style text background */ +span.CodeMirror-selectedtext { background: none; } + + + + +.radioStyle{ + display: block; + height: 30px; + } +a.white-btn.use_scope-btn:hover{ + +} +.shixunScopeInput{ + width:218px; + height:33px; + display:block; + margin-bottom:15px; +} + +#memoMD .CodeMirror { + /*width: 576px !important;*/ + margin-top: 31px !important; + height: 364px !important; +} + +#memoMD .editormd-preview { + width: 578px !important; + top: 40px !important; + height: 364px !important; +} + +.ml36{ + margin-left: 26px; +} +#person-unit a.white-btn.use_scope-btn:hover { + border: 1px solid #F06200; + color:#FFF !important; +} + + From eebc428d42d7cc0f03c08b580d26bf79c9a50f59 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, 3 Jul 2019 16:17:27 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react/src/modules/tpm/challengesnew/TPManswer.js | 2 +- .../react/src/modules/tpm/challengesnew/TPManswer2.js | 4 ++-- .../src/modules/tpm/challengesnew/TPMchallengesnew.js | 6 +++--- .../src/modules/tpm/challengesnew/TPMevaluation.js | 6 +++--- .../react/src/modules/tpm/challengesnew/TPMquestion.js | 10 +++++----- public/react/src/modules/tpm/component/TPMNav.js | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/public/react/src/modules/tpm/challengesnew/TPManswer.js b/public/react/src/modules/tpm/challengesnew/TPManswer.js index c44b74966..d29516422 100644 --- a/public/react/src/modules/tpm/challengesnew/TPManswer.js +++ b/public/react/src/modules/tpm/challengesnew/TPManswer.js @@ -352,7 +352,7 @@ export default class TPManswer extends Component {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 提交 取消 diff --git a/public/react/src/modules/tpm/challengesnew/TPManswer2.js b/public/react/src/modules/tpm/challengesnew/TPManswer2.js index 67b0e7fe9..98c615065 100644 --- a/public/react/src/modules/tpm/challengesnew/TPManswer2.js +++ b/public/react/src/modules/tpm/challengesnew/TPManswer2.js @@ -339,7 +339,7 @@ export default class TPManswer extends Component { }) } -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 新增
    @@ -347,7 +347,7 @@ export default class TPManswer extends Component {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 提交 取消 diff --git a/public/react/src/modules/tpm/challengesnew/TPMchallengesnew.js b/public/react/src/modules/tpm/challengesnew/TPMchallengesnew.js index e0944cac6..024f49589 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMchallengesnew.js +++ b/public/react/src/modules/tpm/challengesnew/TPMchallengesnew.js @@ -575,12 +575,12 @@ export default class TPMchallengesnew extends Component { 3||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} data-tip-down="新增代码编辑类型的任务">+ 实践类型 3||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} data-tip-down="新增选择题类型的任务">+ 选择题类型
    @@ -739,7 +739,7 @@ export default class TPMchallengesnew extends Component {
    3||this.props.identity===undefined?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined?"none":'block'}} > {checkpointId===undefined?提交: 提交} diff --git a/public/react/src/modules/tpm/challengesnew/TPMevaluation.js b/public/react/src/modules/tpm/challengesnew/TPMevaluation.js index 80e8b3f43..036197229 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMevaluation.js +++ b/public/react/src/modules/tpm/challengesnew/TPMevaluation.js @@ -777,11 +777,11 @@ export default class TPMevaluation extends Component { 3||this.props.identity===undefined||this.props.status===2||this.props.status===1? "none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1? "none":'block'}} data-tip-down="新增代码编辑类型的任务">+ 实践类型 3||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} data-tip-down="新增选择题类型的任务">+ 选择题类型
    @@ -1119,7 +1119,7 @@ export default class TPMevaluation extends Component {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 提交 取消
    diff --git a/public/react/src/modules/tpm/challengesnew/TPMquestion.js b/public/react/src/modules/tpm/challengesnew/TPMquestion.js index e917b425a..c1d310ce2 100644 --- a/public/react/src/modules/tpm/challengesnew/TPMquestion.js +++ b/public/react/src/modules/tpm/challengesnew/TPMquestion.js @@ -1251,10 +1251,10 @@ editanswersMD=(initValue, id)=> { 3||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} data-tip-down="新增代码编辑类型的任务">+ 实践类型 3||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} + style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}} data-tip-down="新增选择题类型的任务">+ 选择题类型
    @@ -1345,7 +1345,7 @@ editanswersMD=(initValue, id)=> {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 提交 取消 @@ -1545,7 +1545,7 @@ editanswersMD=(initValue, id)=> {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> 提交 {
    -
    3||this.props.identity===undefined||power===false?"none":"block"}}> +
    4||this.props.identity===undefined||power===false?"none":"block"}}> this.answer_subit("edit",challenge_choose_id)}>提交 3||this.props.identity===undefined ? "none" : 'block'}} + style={{display: this.props.identity >4||this.props.identity===undefined ? "none" : 'block'}} className={`${match.url.indexOf('repository') != -1 ? 'active' : ''} fl mr40`}>版本库 Date: Wed, 3 Jul 2019 16:33:04 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shixunHomework/Homeworddescription.js | 9 +- .../Shixunworkdetails/ShixunWorkModal.js | 146 +++++++++--------- .../shixunHomework/Workquestionandanswer.js | 38 +++-- 3 files changed, 101 insertions(+), 92 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Homeworddescription.js b/public/react/src/modules/courses/shixunHomework/Homeworddescription.js index 405490f38..472d76d2c 100644 --- a/public/react/src/modules/courses/shixunHomework/Homeworddescription.js +++ b/public/react/src/modules/courses/shixunHomework/Homeworddescription.js @@ -41,7 +41,7 @@ class Homeworddescription extends Component { super(props); this.state = { props: props, - description:undefined, + description:props.description, } @@ -74,10 +74,8 @@ class Homeworddescription extends Component {
    {/* - { - this.state.Newedit === true || this.state.mysave === true ? -
    - - {cancellation === false ? - - : ""} + + { + this.state.Newedit === true || this.state.mysave === true ? +
    + + {cancellation === false ? + + : ""} + +
    + : "" + } + +
    + +
    :"" + } -
    - : "" - } -
    -

    @@ -2507,7 +2526,7 @@ class PollNew extends Component { {item.question.answers === undefined ? "" : item.question.answers.map((items, i) => { return (

    - + {/*
    {items.answer_text}
    */} {/*
    {items.answer_text}
    */} diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 11017259a..8837b83c3 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1715,8 +1715,8 @@ class Trainingjobsetting extends Component { {/*发布设置*/}
    ) From 24f1f9e86e86062644586495ad912124522371b3 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, 3 Jul 2019 18:30:03 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=88=90=E7=BB=A9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/Resource/Fileslistitem.js | 2 +- .../courses/exercise/Exercisesetting.js | 6 +- .../courses/shixunHomework/Listofworks.js | 2 +- .../shixunHomework/Listofworksstudentone.js | 64 +- .../shixunHomework/Trainingjobsetting.js | 2 +- .../shixunHomework/Workquestionandanswer.js | 2 +- .../paths/PathDetail/PathDetailIndex.js | 1026 ++++++++--------- public/react/src/modules/paths/PathNew.js | 546 ++++----- 8 files changed, 844 insertions(+), 806 deletions(-) diff --git a/public/react/src/modules/courses/Resource/Fileslistitem.js b/public/react/src/modules/courses/Resource/Fileslistitem.js index e69cdb4d5..382283fee 100644 --- a/public/react/src/modules/courses/Resource/Fileslistitem.js +++ b/public/react/src/modules/courses/Resource/Fileslistitem.js @@ -300,7 +300,7 @@ class Fileslistitem extends Component{ :""} - {this.props.current_user.login===discussMessage.author.login? + {this.props.isStudent===true&&this.props.current_user.login===discussMessage.author.login? diff --git a/public/react/src/modules/courses/exercise/Exercisesetting.js b/public/react/src/modules/courses/exercise/Exercisesetting.js index d07258ab3..1e151b654 100644 --- a/public/react/src/modules/courses/exercise/Exercisesetting.js +++ b/public/react/src/modules/courses/exercise/Exercisesetting.js @@ -131,9 +131,9 @@ class Exercisesetting extends Component{ // end_timetype:false // }) // }else{ - this.setState({ - end_timetype:true - }) + // this.setState({ + // end_timetype:true + // }) // } } diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js index 30a0af582..94dab0b63 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworks.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js @@ -1440,7 +1440,7 @@ class Listofworks extends Component { 作业问答 {this.props.isAdmin() ? - this.state.code_review === true ? "" : 代码查重 : ""} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 2974bf6ac..148b4b2e3 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -748,11 +748,12 @@ class Listofworksstudentone extends Component { } setComputeTime=()=>{ + let {teacherdata}=this.state; this.setState({ computeTimetype:false }) let homeworkid = this.props.match.params.homeworkid; - let url = "/homework_commons/"+homeworkid+"/update_student_score.json"; + let url = "/homework_commons/"+homeworkid+"/update_student_score.json?shixun_id="+teacherdata.shixun_id; axios.get(url).then((response) => { this.props.showNotification(`${response.data.message}`); @@ -925,13 +926,13 @@ class Listofworksstudentone extends Component {
    计算成绩时间:{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')} - + {teacherdata&&teacherdata.task_operation[0]==="开启挑战"?"": {computeTimetype===true?
    计算成绩
    :
    计算成绩
    } -
    +
    }
    @@ -1079,22 +1080,61 @@ class Listofworksstudentone extends Component { {teacherdata.left_time.time}} +
    + +
    -
    - - 计算成绩时间:{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')} - + 计算成绩时间:{teacherdata&&teacherdata.calculation_time==null?"--": moment(teacherdata&&teacherdata.calculation_time).format('YYYY-MM-DD HH:mm')} + {teacherdata&&teacherdata.task_operation[0]==="开启挑战"?"": {computeTimetype===true?
    计算成绩
    :
    计算成绩
    } -
    - -
    - - + } +
    {/*因为计算按钮占了和这个位置,和设计沟通学生视角取消这个按钮*/} {/*
    */} {/*
      */} diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 11017259a..064b17d2f 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1676,7 +1676,7 @@ class Trainingjobsetting extends Component { } 作业问答 - {this.props.isAdmin()?this.state.code_review===true?"": 代码查重 : ""} {this.props.isAdmin?:""} From 5b7e71d303e94df1c656c742623ac89b303b7b71 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, 4 Jul 2019 00:39:42 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shixunHomework/ShixunStudentWork.js | 4 +-- .../shixunHomework/ShixunWorkDetails.js | 31 +++++++++++-------- .../Shixunworkdetails/ShixunWorkModal.js | 4 +-- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js index c7ae7292d..7188c65bd 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js @@ -94,7 +94,6 @@ class ShixunStudentWork extends Component { let url = "/homework_commons/" + homeworkid + "/code_review_results.json"; axios.get(url).then((response) => { - debugger if (response.data.status === undefined || response.data.status === 0) { if(response.data!=undefined){ if(response.data.status!=-2){ @@ -688,6 +687,7 @@ class ShixunStudentWork extends Component { 分班情况: this.groupgroup([])} className={this.state.group_infolist.length===0?"pl10 pr10 mr20 check_on":"pl10 pr10 mr20 "}> 不限 @@ -756,7 +756,7 @@ class ShixunStudentWork extends Component { dataSource={datalist} columns={columns} pagination={{ //分页 - total: data&&data.all_reviews_count, //数据总数量 + total: datalist.length===0?0:data&&data.all_reviews_count, //数据总数量 pageSize: 10, //显示几条一页 current:page, }} diff --git a/public/react/src/modules/courses/shixunHomework/ShixunWorkDetails.js b/public/react/src/modules/courses/shixunHomework/ShixunWorkDetails.js index ba3eea530..c1233ed3f 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunWorkDetails.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunWorkDetails.js @@ -51,13 +51,17 @@ class ShixunWorkDetails extends Component { }) } - goback=()=>{ - window.history.go(-1) + goback=(sum)=>{ + let{data}=this.state + if(sum===1){ + window.location.href = "/courses/"+data.course_id+"/students"; + }else{ + window.history.go(-1) + } + } render() { - let{data}=this.state; - console.log(data) return ( {data===undefined? "":
      @@ -65,17 +69,18 @@ class ShixunWorkDetails extends Component {

      - - - {data&&data.course_name} - - + this.goback(1)} + > + {data&&data.course_name}123 + > - - + 实训作业 - - + > {data&&data.username}

      diff --git a/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js b/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js index 715ffb7e8..5a4ad673c 100644 --- a/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js +++ b/public/react/src/modules/courses/shixunHomework/Shixunworkdetails/ShixunWorkModal.js @@ -221,7 +221,7 @@ class ShixunWorkModal extends Component{ let {course_groups,group_ids,onChangetype,group_list}=this.state; // let {data}=this.props; // console.log(group_list) - // console.log(course_groups) + console.log(group_list) return(
      : - group_list&&group_list.map((item,key)=>{ + group_list&&group_list.length===0?"":group_list[0]===undefined?"":group_list.map((item,key)=>{ return( item.work_count===0?"":
    • From bf8af06de2d81f023012dc842dea7cd3183f621f 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, 4 Jul 2019 01:00:44 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exercise/Studentshavecompletedthelist.js | 340 +++++++++--------- .../courses/shixunHomework/Listofworks.js | 103 +++--- .../shixunHomework/Listofworksstudentone.js | 34 +- .../shixunHomework/Workquestionandanswer.js | 31 +- .../src/modules/user/FindPasswordComponent.js | 35 +- .../modules/user/LoginRegisterComponent.js | 53 ++- 6 files changed, 349 insertions(+), 247 deletions(-) diff --git a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js index c2930bcdf..09cfdf947 100644 --- a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js +++ b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js @@ -1246,43 +1246,43 @@ class Studentshavecompletedthelist extends Component { this.Generatenewdatas(response.data.exercise_users); if (response.data.exercise_types.subjective === 0) { if (this.state.noclassroom === undefined || this.state.noclassroom === "" || this.state.noclassroom === null) { - this.state.columnss.map((item,key)=>{ + var arr =[]; + for(var i=0;i{ + var arr =[]; + for(var i=0;i{ + var arr =[]; + for(var i=0;i{ + else{ + arr.push(item); + } + } + + var arr2 =[]; + for(var i=0;i{ + + var arr =[]; + for(var i=0;i{ - if(item.title==="客观题得分"){ - this.state.columns.splice(key,1) + else{ + arr.push(item); } - if(item.title==="主观题得分"){ - this.state.columns.splice(key,1) + } + var arr2 =[]; + for(var i=0;i{ + + var arr =[]; + for(var i=0;i{ + else{ + arr.push(item); + } + } + + var arr2 =[]; + for(var i=0;i{ + // this.state.columnsys.map((item,key)=>{ + // + // }) + var arr =[]; + for(var i=0;i{ + + var arr =[]; + for(var i=0;i 0) { //显示分班 //8ge - this.state.columnsys.map((item,key)=>{ + + var arr =[]; + for(var i=0;i{ + var arr =[]; + for(var i=0;i 0) { - this.state.columnsys.map((item,key)=>{ - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnsys.splice(key,1) - } + var arr =[]; + for(var i=0;i{ + var arr =[]; + for(var i=0;i{ + var arr =[]; + for(var i=0;i{ + for(var i=0;i< this.state.columns.length;i++){ + var item = this.state.columns[i]; if(item.title==="分班"){ - columns.splice(key,1) } - if(item.title==="关卡得分"){ - columns.splice(key,1) + else if(item.title==="关卡得分"){ } - if(item.title==="效率分"){ - columns.splice(key,1) + else if(item.title==="效率分"){ } - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnss.splice(key,1) - } + else if(this.props.isNotMember()===true&&item.title==="学号") { + + }else{ + columns.push(item); } - }) + } + + }else{ if(course_group_info.length < 2){ - - columns.map((item,key)=>{ + for(var i=0;i< this.state.columns.length;i++){ + var item = this.state.columns[i]; if(item.title==="分班"){ - columns.splice(key,1) } - if(item.title==="关卡得分"){ - columns.splice(key,1) + else if(item.title==="关卡得分"){ } - if(item.title==="效率分"){ - columns.splice(key,1) + else if(item.title==="效率分"){ } - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnss.splice(key,1) - } + else if(this.props.isNotMember()===true&&item.title==="学号") { + + }else{ + columns.push(item); } - }) - }else { + } - columns.map((item,key)=>{ - if(item.title==="关卡得分"){ - columns.splice(key,1) + }else { + for(var i=0;i< this.state.columns.length;i++){ + var item = this.state.columns[i]; + if(item.title==="关卡得分"){ } - if(item.title==="效率分"){ - columns.splice(key,1) + else if(item.title==="效率分"){ } - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnss.splice(key,1) - } + else if(this.props.isNotMember()===true&&item.title==="学号") { + + }else{ + columns.push(item); } - }) + } } } }else { if(JSON.stringify(course_group_info) === "[]"|| course_group_info === undefined || course_group_info === null){ - columns.map((item,key)=>{ - if(item.title==="分班"){ - columns.splice(key,1) + + for(var i=0;i< this.state.columns.length;i++){ + var item = this.state.columns[i]; + if(item.title==="分班"){ } - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnss.splice(key,1) - } + else if(this.props.isNotMember()===true&&item.title==="学号") { + + }else{ + columns.push(item); } - }) + } + + + + }else { if(course_group_info.length < 2) { - - columns.map((item,key)=>{ + for(var i=0;i< this.state.columns.length;i++){ + var item = this.state.columns[i]; if(item.title==="分班"){ - columns.splice(key,1) } - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columnss.splice(key,1) - } + else if(this.props.isNotMember()===true&&item.title==="学号") { + + }else{ + columns.push(item); } - }) + } } columns=this.state.columnss; } diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 2974bf6ac..cac639d13 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -391,16 +391,16 @@ class Listofworksstudentone extends Component { let datalist = []; let datalists = []; var styletable = {"display": "none"} + var arr =[]; + for(var i=0;i{ - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columns.splice(key,1) - } + }else{ + arr.push(item); } - }) - let columns2=this.state.columns; - + } + let columns2= arr; var teacherlist = undefined; var teacherlists = undefined; if (teacherdata !== undefined) { @@ -509,14 +509,18 @@ class Listofworksstudentone extends Component { // 设置数据 seacthdata = (teacherdata) => { let datalist = []; - this.state.columns.map((item,key)=>{ - if(this.props.isNotMember()===true) { - if(item.title==="学号"){ - this.state.columns.splice(key,1) - } + + + var arr =[]; + for(var i=0;i设置 {/*导出成绩*/} - {this.props.isAdmin() ? 导出 : ""} + + {this.props.isAdmin() ?
    • + 导出 + +
    • : ""} {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.end_immediately===true? 立即截止:"" : ""} {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.publish_immediately===true? diff --git a/public/react/src/modules/user/FindPasswordComponent.js b/public/react/src/modules/user/FindPasswordComponent.js index 393dbc023..2fe5df943 100644 --- a/public/react/src/modules/user/FindPasswordComponent.js +++ b/public/react/src/modules/user/FindPasswordComponent.js @@ -185,27 +185,44 @@ class LoginRegisterComponent extends Component { }; loginInputonChange = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - login: e.target.value, + login: stirngt, }) - - } loginInputonChanges = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - password: e.target.value, + password: stirngt, }) - } loginInputonChangess = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - passwords: e.target.value, + passwords: stirngt, }) - } //获取code codesonChange = (e) => { @@ -380,12 +397,12 @@ class LoginRegisterComponent extends Component { { Phonenumberisnotco && Phonenumberisnotco != "" ?

      - {Phonenumberisnotco} + {Phonenumberisnotco}

      :
      } diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js index 9d7790ee1..12afd7831 100644 --- a/public/react/src/modules/user/LoginRegisterComponent.js +++ b/public/react/src/modules/user/LoginRegisterComponent.js @@ -468,11 +468,17 @@ class LoginRegisterComponent extends Component { //获取登入 loginInputonChange = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - login: e.target.value, + login: stirngt, }) - } //失去焦点判断 inputOnBlur = (e, id) => { @@ -482,23 +488,48 @@ class LoginRegisterComponent extends Component { //获取登入密码 passwordonChange = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - password: e.target.value + password: stirngt, }) + // this.setState({ + // password: e.target.value + // }) } //获取注册登入 loginInputonChanges = (e) => { // console.log(e.target.value); + + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - logins: e.target.value, + logins: stirngt, }) } //获取注册密码 passwordonChanges = (e) => { // console.log(e.target.value); + var stirngt; + if(e.target.value.length>0){ + var str= e.target.value.replace(/\s*/g,"") + stirngt=str; + }else{ + stirngt= e.target.value; + } this.setState({ - passwords: e.target.value + passwords: stirngt, }) } //获取code @@ -527,6 +558,12 @@ class LoginRegisterComponent extends Component { // this.props.history.push(`/courses/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/student_exercise_list?tab=`+e.key) } + loginonkeyup =(e)=>{ + if(e.keyCode==32){ + + return false; + } + } render() { const { activeKey, @@ -612,7 +649,7 @@ class LoginRegisterComponent extends Component { { Phonenumberisnotco && Phonenumberisnotco != "" ?

      - {Phonenumberisnotco} + {Phonenumberisnotco}

      :
      } @@ -669,14 +706,14 @@ class LoginRegisterComponent extends Component { { Phonenumberisnotcos && Phonenumberisnotcos != "" ?

      - {Phonenumberisnotcos} + {Phonenumberisnotcos}

      :
      }