From a18a3a63d6c62713450c5ef49d82d9de74ecd9f5 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 09:16:38 +0800 Subject: [PATCH 01/60] cannotLink --- public/react/src/modules/courses/busyWork/CommonWorkItem.js | 5 ++--- public/react/src/modules/courses/poll/PollListItem.js | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkItem.js b/public/react/src/modules/courses/busyWork/CommonWorkItem.js index 6521d2add..bde311290 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkItem.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkItem.js @@ -139,10 +139,9 @@ class CommonWorkItem extends Component{ }
this.props.onItemClick(Object.assign({}, item, {id: item.homework_id})) }>

- {/* 放开点击进入,进入后弹框,canNotLink ? () => {} : */} this.onItemClick(item)} + className="fl font-16 font-bd mt2 comnonwidth580" style={{cursor: canNotLink ? 'default' : 'poninter'}} + onClick={ canNotLink ? () => {} : () => this.onItemClick(item)} >{item.name} {/* 只有非课堂成员且作业是私有的情况下才会为true */} diff --git a/public/react/src/modules/courses/poll/PollListItem.js b/public/react/src/modules/courses/poll/PollListItem.js index e456e2ed9..50c471e76 100644 --- a/public/react/src/modules/courses/poll/PollListItem.js +++ b/public/react/src/modules/courses/poll/PollListItem.js @@ -22,8 +22,10 @@ class PollListItem extends Component{ const IsAdmin =this.props.isAdmin(); const isStudent = this.props.isStudent(); const isNotMember = this.props.isNotMember(); + const isAdminOrStudent = this.props.isAdminOrStudent(); let t= item.end_time ? moment(item.end_time) - moment() : 0; + let canNotLink = !isAdminOrStudent && item.lock_status == 0 return(

@@ -35,7 +37,9 @@ class PollListItem extends Component{ }

- {item.polls_name} + { canNotLink ? {item.polls_name} : + {item.polls_name} + } { item.lock_status === 0 ? From a223cd80946cd5ef898085163c66fa4b51b4015e Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 09:18:04 +0800 Subject: [PATCH 02/60] 0 --- public/react/src/modules/courses/members/teacherList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/members/teacherList.js b/public/react/src/modules/courses/members/teacherList.js index 5b2615d8b..92b0e0d4b 100644 --- a/public/react/src/modules/courses/members/teacherList.js +++ b/public/react/src/modules/courses/members/teacherList.js @@ -667,7 +667,7 @@ class studentsList extends Component{ `}

- { course_groups && course_groups.length && Date: Fri, 19 Jul 2019 09:19:59 +0800 Subject: [PATCH 03/60] =?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/tpm/NewHeader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 859c150c0..c31d5d466 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -617,7 +617,7 @@ submittojoinclass=(value)=>{ /> {/* :""*/} {/*}*/} - + { isRenders&&isRenders===true? Date: Fri, 19 Jul 2019 09:41:55 +0800 Subject: [PATCH 04/60] =?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/login/Trialapplication.js | 27 +++++++++----- public/react/src/modules/tpm/NewHeader.js | 37 ++++++++++--------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/public/react/src/modules/login/Trialapplication.js b/public/react/src/modules/login/Trialapplication.js index 7900a68bb..02116ce7d 100644 --- a/public/react/src/modules/login/Trialapplication.js +++ b/public/react/src/modules/login/Trialapplication.js @@ -33,6 +33,8 @@ class Trialapplication extends Component { user_phone_binded: props.user_phone_binded, showTrial: false, user: undefined, + borredss:"bor-reds", + borredssz:"bor-reds fl mr5", } //user_phone_binded 判断是否手机号验证 // console.log("Trialapplication"); @@ -371,7 +373,7 @@ class Trialapplication extends Component { //执行view render() { - let {login, codes, reason, isRenders, user_phone_binded, Phonenumberisnotco, getverificationcodes, Phonenumberisnotcocodes, Phonenumberisnotcoreason, seconds} = this.state; + let {login, codes, reason, isRenders, user_phone_binded,borredss,borredssz, Phonenumberisnotco, getverificationcodes, Phonenumberisnotcocodes, Phonenumberisnotcoreason, seconds} = this.state; // console.log("Trialapplication22222222"); // console.log(this.props); @@ -600,12 +602,13 @@ class Trialapplication extends Component { onChange={this.loginInputonChange} onBlur={(e) => this.inputOnBlur(e)} style={{"height": "38px",}} + className={Phonenumberisnotco && Phonenumberisnotco !== ""?borredss:""} name="myiphone" > { Phonenumberisnotco && Phonenumberisnotco != "" ? -

- {Phonenumberisnotco} +

+ {Phonenumberisnotco}

:
} @@ -617,7 +620,9 @@ class Trialapplication extends Component { user_phone_binded === true ? "" :
- this.getverificationcode()} - size={"large"}>验证码 + size={"large"}>获取验证码 : diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index c31d5d466..15360f6ec 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -169,8 +169,8 @@ class NewHeader extends Component { RadioGroupvalue:undefined, submitapplications:false, isRender:false, - isRenders:false, - showTrial:false, + // isRenders:false, + // showTrial:false, } // console.log("176") // console.log(props); @@ -547,13 +547,13 @@ submittojoinclass=(value)=>{ } } - trialapplications =()=>{ - console.log("点击了") - this.setState({ - isRenders: true, - showTrial:true, - }) - } + // trialapplications =()=>{ + // console.log("点击了") + // this.setState({ + // isRenders: true, + // showTrial:true, + // }) + // } // 关闭 cancelModulationModels = () => { @@ -617,14 +617,15 @@ submittojoinclass=(value)=>{ /> {/* :""*/} {/*}*/} - { - isRenders&&isRenders===true? - this.cancelModulationModels()} - /> - :"" - } + + {/*{*/} + {/* isRenders&&isRenders===true?*/} + {/* this.cancelModulationModels()}*/} + {/* />*/} + {/* :""*/} + {/*}*/} this.cancelModulationModels()} >
{/*<%= link_to image_tag("/images/educoder/logo.png", alt:"高校智能化教学与实训平台", className:"logoimg"), home_path %>*/} @@ -756,7 +757,7 @@ submittojoinclass=(value)=>{
  • 我的项目
  • 账号管理
  • {/*
  • this.educoderlogin()} >登入测试接口
  • */} -
  • this.trialapplications()} >试用申请
  • + {/*
  • this.trialapplications()} >试用申请
  • */} {/*
  • 兴趣页
  • */}
  • From 4bc87cc97f6c0dfa9742a8c7f18d8e970e2650ee Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 10:12:55 +0800 Subject: [PATCH 05/60] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/page/main/CodeEvaluateView.css | 16 +++++++++++++++- .../src/modules/page/main/CodeEvaluateView.js | 7 ++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/page/main/CodeEvaluateView.css b/public/react/src/modules/page/main/CodeEvaluateView.css index 99b08a496..bd0427d7b 100644 --- a/public/react/src/modules/page/main/CodeEvaluateView.css +++ b/public/react/src/modules/page/main/CodeEvaluateView.css @@ -112,4 +112,18 @@ } #evaluating_contents .-text-danger{ padding-bottom: 6px; - } \ No newline at end of file + } + + +.-task-ces-top .description { + color: #616B77; + padding: 0 8px; + font-size: 12px; +} +.-task-ces-top .split { + border-right: 1px solid #616B77; + width: 1px; + display: inline-block; + height: 10px; + margin: 5px 0; +} \ No newline at end of file diff --git a/public/react/src/modules/page/main/CodeEvaluateView.js b/public/react/src/modules/page/main/CodeEvaluateView.js index a738d03fb..48bb0b245 100644 --- a/public/react/src/modules/page/main/CodeEvaluateView.js +++ b/public/react/src/modules/page/main/CodeEvaluateView.js @@ -172,7 +172,7 @@ class CodeEvaluateView extends Component { } else if (item.result == false) { headIconClass = 'fa-exclamation-circle -text-danger' } - + testSetsComponentArray.push(
    @@ -180,8 +180,13 @@ class CodeEvaluateView extends Component { 测试集 {index + 1} + { headIconClass && } { _headLockIconClass && } + + { item.ts_memo && 消耗内存{item.ts_memo}MB } + { item.ts_memo && item.ts_time && } + { item.ts_time && 代码执行时长:{item.ts_time}秒 }

    From 02f1650cd341e89a2a168ffc7dda380d1efc1899 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 11:03:12 +0800 Subject: [PATCH 06/60] id --- .../react/src/modules/courses/Resource/index.js | 2 +- public/react/src/modules/courses/boards/index.js | 2 +- .../modules/courses/busyWork/CommonWorkItem.js | 2 +- .../src/modules/courses/exercise/Exercise.js | 2 +- .../modules/courses/graduation/tasks/index.js | 2 +- .../modules/courses/graduation/topics/index.js | 2 +- .../src/modules/courses/members/studentsList.js | 16 ++-------------- 7 files changed, 8 insertions(+), 20 deletions(-) diff --git a/public/react/src/modules/courses/Resource/index.js b/public/react/src/modules/courses/Resource/index.js index 6501716b7..c755efabd 100644 --- a/public/react/src/modules/courses/Resource/index.js +++ b/public/react/src/modules/courses/Resource/index.js @@ -905,7 +905,7 @@ class Fileslists extends Component{ isAdmin={this.props.isAdmin()} isStudent={this.props.isStudent()} isNotMember={this.props.isNotMember()} - checkBox={this.props.isAdmin()?:""} + checkBox={this.props.isAdmin()?:""} Settingtypes={(id)=>this.Settingtypes(id)} coursesId={this.props.match.params.coursesId} updatafiledfun={()=>this.updatafiled()} diff --git a/public/react/src/modules/courses/boards/index.js b/public/react/src/modules/courses/boards/index.js index 5bf5cadc7..94c8c4c00 100644 --- a/public/react/src/modules/courses/boards/index.js +++ b/public/react/src/modules/courses/boards/index.js @@ -428,7 +428,7 @@ class Boards extends Component{ : ''} + checkBox={ isAdmin ? : ''} onItemClick={this.onItemClick} onSticky={this.onSticky} > diff --git a/public/react/src/modules/courses/busyWork/CommonWorkItem.js b/public/react/src/modules/courses/busyWork/CommonWorkItem.js index bde311290..2610a7782 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkItem.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkItem.js @@ -135,7 +135,7 @@ class CommonWorkItem extends Component{
    { mainList && isAdmin && - + }
    this.props.onItemClick(Object.assign({}, item, {id: item.homework_id})) }>

    diff --git a/public/react/src/modules/courses/exercise/Exercise.js b/public/react/src/modules/courses/exercise/Exercise.js index 5058b5719..4331bdc6f 100644 --- a/public/react/src/modules/courses/exercise/Exercise.js +++ b/public/react/src/modules/courses/exercise/Exercise.js @@ -560,7 +560,7 @@ class Exercise extends Component{ {...this.state} item={item} key={key} - checkBox={ this.onItemClick(item)} >} > diff --git a/public/react/src/modules/courses/graduation/tasks/index.js b/public/react/src/modules/courses/graduation/tasks/index.js index 0a4bd47b4..7bf9b690b 100644 --- a/public/react/src/modules/courses/graduation/tasks/index.js +++ b/public/react/src/modules/courses/graduation/tasks/index.js @@ -730,7 +730,7 @@ debugger isAdmin={this.props.isAdmin()} isStudent={this.props.isStudent()} isNotMember={this.props.isNotMember()} - checkBox={this.props.isAdmin()?:""} + checkBox={this.props.isAdmin()?:""} // onItemClick={this.onItemClick} // onSticky={this.onSticky} funlist={()=>this.fetchAll(search,page,order)} diff --git a/public/react/src/modules/courses/graduation/topics/index.js b/public/react/src/modules/courses/graduation/topics/index.js index 8ed3118b9..6dab02f07 100644 --- a/public/react/src/modules/courses/graduation/topics/index.js +++ b/public/react/src/modules/courses/graduation/topics/index.js @@ -411,7 +411,7 @@ onBoardsNew=()=>{ {...this.props} discussMessage={item} data={data} - checkBox={ this.onItemClick(item)} className="mr15">} + checkBox={ this.onItemClick(item)} className="mr15">} onItemClick={this.onItemClick} index={index} chooseTopic={this.chooseTopic} diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index c073abf4f..acffd8ef4 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -17,19 +17,6 @@ import DownloadMessageysl from "../../modals/DownloadMessageysl"; import CreateGroupByImportModal from './modal/CreateGroupByImportModal' const Search =Input.Search; -const dataSource = [{ - check:, - id: 1, - name: 胡莎莎, - StuNo: 32, - classes: 西湖区湖底公园1号 -}, { - check:, - id: 2, - name: 胡莎莎, - StuNo: 32, - classes: 西湖区湖底公园2号 -}]; const buildColumns = (that) => { const { course_groups } = that.state @@ -100,7 +87,7 @@ const buildColumns = (that) => { dataIndex: 'check', key: 'check', render: (text, item) => { - return + return }, width:"5%" }) @@ -280,6 +267,7 @@ class studentsList extends Component{ } componentDidUpdate(prevProps) { if (prevProps.match.params.course_group_id != this.props.match.params.course_group_id) { + this.setState({checkBoxValues: []}) this.fetchAll(1) } // 加载了2次 From 86340fa35f2e2c5e666ea560d1d844425211b3a6 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 13:49:42 +0800 Subject: [PATCH 07/60] ccc --- public/react/src/App.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/react/src/App.css b/public/react/src/App.css index a9d02d4f0..c41e039c4 100644 --- a/public/react/src/App.css +++ b/public/react/src/App.css @@ -35,6 +35,10 @@ .editormd .CodeMirror-linenumbers { padding: 0; } +.editormd-html-preview hr, .editormd-preview-container hr { + /* 颜色加深 */ + border-top: 1px solid #ccc; +} /* 重置掉antd的一些样式 */ html, body { From 1ca57dcc6aaf36cd2c2fb5c452b0e746d9512cf4 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 13:55:09 +0800 Subject: [PATCH 08/60] css --- public/react/src/modules/user/account/AccountBasicEdit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/user/account/AccountBasicEdit.js b/public/react/src/modules/user/account/AccountBasicEdit.js index 7d1986bd0..e4db50d51 100644 --- a/public/react/src/modules/user/account/AccountBasicEdit.js +++ b/public/react/src/modules/user/account/AccountBasicEdit.js @@ -360,7 +360,7 @@ class AccountBasic extends Component { font-size:14px; } .resetCityStyle .ant-form-item-control{ - width:190px; + width:220px; } `}

    基本信息
    From 7d9d2581d77711edc635239f91ac477b18ed7f52 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 14:10:45 +0800 Subject: [PATCH 09/60] def --- public/react/src/modules/user/account/AccountBasicEdit.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/react/src/modules/user/account/AccountBasicEdit.js b/public/react/src/modules/user/account/AccountBasicEdit.js index e4db50d51..2362437fb 100644 --- a/public/react/src/modules/user/account/AccountBasicEdit.js +++ b/public/react/src/modules/user/account/AccountBasicEdit.js @@ -251,6 +251,9 @@ class AccountBasic extends Component { this.props.form.setFieldsValue({ org2:result.data.departments[0].name }) + this.setState({ + department_id: result.data.departments[0].id + }) } } }).catch((error)=>{ From 38539ad4980179481331f05c25830a574f4010ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 19 Jul 2019 14:16:24 +0800 Subject: [PATCH 10/60] =?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/config/webpack.config.dev.js | 2 +- .../courses/shixunHomework/TraineetraininginformationModal.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/config/webpack.config.dev.js b/public/react/config/webpack.config.dev.js index 093f1d4d8..12d5e437f 100644 --- a/public/react/config/webpack.config.dev.js +++ b/public/react/config/webpack.config.dev.js @@ -29,7 +29,7 @@ const env = getClientEnvironment(publicUrl); module.exports = { // You may want 'eval' instead if you prefer to see the compiled output in DevTools. // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343.s - devtool: "source-map", // 开启调试 + devtool: "eval", // 开启调试 // 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/modules/courses/shixunHomework/TraineetraininginformationModal.js b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js index 8cc79af8f..58a12eff1 100644 --- a/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js +++ b/public/react/src/modules/courses/shixunHomework/TraineetraininginformationModal.js @@ -27,7 +27,7 @@ import '../css/members.css' import "../common/formCommon.css" import '../css/Courses.css' import './style.css' -import ShixunModal from "../coursesPublic/ShixunModal"; + class TraineetraininginformationModal extends Component { constructor(props) { From 413b29ed1a97cbc1b783fc920edc43ba5a32b17d 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, 19 Jul 2019 14:18:26 +0800 Subject: [PATCH 11/60] =?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 | 9 +- .../src/modules/user/FindPasswordComponent.js | 9 ++ .../modules/user/LoginRegisterComponent.js | 121 +++++++++++++++--- public/react/src/search/SearchPage.js | 82 ++++++++++++ public/react/src/search/searchc.css | 74 +++++++++++ 5 files changed, 275 insertions(+), 20 deletions(-) create mode 100644 public/react/src/search/SearchPage.js create mode 100644 public/react/src/search/searchc.css diff --git a/public/react/src/App.js b/public/react/src/App.js index c86498851..293d1baca 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -110,6 +110,11 @@ const CoursesIndex = Loadable({ loader: () => import('./modules/courses/Index'), loading: Loading, }) +const SearchPage = Loadable({ + loader: () => import('./search/SearchPage'), + loading: Loading, +}) + // 课堂讨论 // const BoardIndex = Loadable({ // loader: () => import('./modules/courses/boards/BoardIndex'), @@ -328,9 +333,10 @@ class App extends Component { {/*实训课程(原实训路径)*/} - + {/*课堂*/} + {/* 课堂讨论 */} {/* */} @@ -340,6 +346,7 @@ class App extends Component { {/* */} {/* 兴趣页面*/} {/**/} + diff --git a/public/react/src/modules/user/FindPasswordComponent.js b/public/react/src/modules/user/FindPasswordComponent.js index 76375547f..8a2982465 100644 --- a/public/react/src/modules/user/FindPasswordComponent.js +++ b/public/react/src/modules/user/FindPasswordComponent.js @@ -309,6 +309,15 @@ class LoginRegisterComponent extends Component { //是否验证通过 dragOkCallback = () => { console.log(this.state.login); + if(this.state.login===""||this.state.login.length===0){ + this.setState({ + Phonenumberisnotco: "账号不能为空", + Phonenumberisnotcobool: true, + dragOk:false, + Whethertoverify:this.state.Whethertoverify===true?false:true, + }) + return + } this.Emailphonenumberverification(this.state.login) } diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js index dd2523420..0b4044711 100644 --- a/public/react/src/modules/user/LoginRegisterComponent.js +++ b/public/react/src/modules/user/LoginRegisterComponent.js @@ -51,6 +51,10 @@ class LoginRegisterComponent extends Component { codes: "", Phonenumberisnotco: undefined, Phonenumberisnotcos: undefined, + Phonenumberisnotcosyzm:undefined, + Phonenumberisnotcosymmm:undefined, + Phonenumberisnotcosytdhk:undefined, + Phonenumberisnotcosyfwtk:undefined, Phonenumberisnotcobool: false, Whethertoverify:false, @@ -81,6 +85,10 @@ class LoginRegisterComponent extends Component { codes: "", Phonenumberisnotco: undefined, Phonenumberisnotcos: undefined, + Phonenumberisnotcosyzm:undefined, + Phonenumberisnotcosymmm:undefined, + Phonenumberisnotcosytdhk:undefined, + Phonenumberisnotcosyfwtk:undefined, Phonenumberisnotcobool: false, Whethertoverify:false, @@ -175,6 +183,15 @@ class LoginRegisterComponent extends Component { //是否验证通过 dragOkCallback = () => { console.log(this.state.logins); + if(this.state.logins===""||this.state.logins.length===0){ + this.setState({ + Phonenumberisnotco:"账号不能为空", + Phonenumberisnotcobool: true, + dragOk:false, + Whethertoverify:this.state.Whethertoverify===true?false:true, + }) + return + } this.Emailphonenumberverification(this.state.logins, 2) } @@ -182,8 +199,10 @@ class LoginRegisterComponent extends Component { //是否同意 onChange = (e) => { + this.setState({ Agreetotheterms: e.target.checked, + Phonenumberisnotcosyfwtk:undefined, }) } @@ -225,21 +244,31 @@ class LoginRegisterComponent extends Component { } //注册接口 postregistered = () => { - if (this.state.logins === undefined || this.state.logins === "") { - this.openNotification(`请输入登录手机号码或邮箱`,2); - + if (this.state.logins === undefined || this.state.logins === ""||this.state.logins.length===0) { + this.setState({ + Phonenumberisnotcos:"账号不能为空", + }) return } else if (this.state.dragOk === false) { - this.openNotification(`请拖动滑块验证`,2); + this.setState({ + Phonenumberisnotcosytdhk:"请拖动滑块完成验证", + }) return - } else if (this.state.codes === undefined || this.state.codes == "") { - this.openNotification(`请输入验证码`,2); + } else if (this.state.codes === undefined || this.state.codes == ""||this.state.codes.length===0) { + // this.openNotification(`请输入验证码`,2); + this.setState({ + Phonenumberisnotcosyzm:"验证码不能为空", + }) return - } else if (this.state.passwords === undefined || this.state.passwords == "") { - this.openNotification(`请输入密码`,2); + } else if (this.state.passwords === undefined || this.state.passwords == "" ||this.state.passwords.length===0) { + this.setState({ + Phonenumberisnotcosymmm:"密码不能为空", + }) return } else if (this.state.Agreetotheterms === false) { - this.openNotification(`请同意服务协议条款`,2); + this.setState({ + Phonenumberisnotcosyfwtk:"请同意服务协议条款", + }) return; } var url = "/accounts/register.json"; @@ -249,14 +278,30 @@ class LoginRegisterComponent extends Component { code: this.state.codes, }).then((result) => { if(result){ + if(result.data.status===-2){ + if(response.data.message==="验证码不正确"){ + this.setState({ + Phonenumberisnotcosyzm:"验证码不正确", + }) + + return; + }else if(response.data.message==="验证码已失效"){ this.setState({ - logins: "", - dragOk: false, - codes: "", - passwords: "", - Agreetotheterms: "", + Phonenumberisnotcosyzm:"验证码不正确", }) - this.props.history.push("/interesse"); + + return; + } + }else { + this.setState({ + logins: "", + dragOk: false, + codes: "", + passwords: "", + Agreetotheterms: "", + }) + this.props.history.push("/interesse"); + } } }).catch((error) => { @@ -514,12 +559,14 @@ class LoginRegisterComponent extends Component { } this.setState({ passwords: stirngt, + Phonenumberisnotcosymmm:undefined, }) } //获取code codesonChange = (e) => { this.setState({ - codes: e.target.value + codes: e.target.value, + Phonenumberisnotcosyzm:undefined, }) } //切换tab @@ -565,6 +612,11 @@ class LoginRegisterComponent extends Component { dragOk, Whethertoverify, classpassbool, + Phonenumberisnotcosyzm, + Phonenumberisnotcosymmm, + Phonenumberisnotcosytdhk, + Phonenumberisnotcosyfwtk, + Phonenumberisnotcobool, // 注册 readAgreement, } = this.state @@ -687,6 +739,7 @@ class LoginRegisterComponent extends Component { { @@ -718,10 +771,17 @@ class LoginRegisterComponent extends Component { : "" } + { + Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk != "" ? +

    + {Phonenumberisnotcosytdhk} +

    + :
    + } -
    +
    + { + Phonenumberisnotcosyzm && Phonenumberisnotcosyzm != "" ? +

    + {Phonenumberisnotcosyzm} +

    + :
    + + } - this.Showandhide(key)}> }> + { + Phonenumberisnotcosymmm && Phonenumberisnotcosymmm!== "" ? +

    + {Phonenumberisnotcosymmm} +

    + : "" + + } 我已阅读并同意服务协议条款 + { + Phonenumberisnotcosyfwtk && Phonenumberisnotcosyfwtk!== "" ? +

    + {Phonenumberisnotcosyfwtk} +

    + : "" + + } diff --git a/public/react/src/search/SearchPage.js b/public/react/src/search/SearchPage.js new file mode 100644 index 000000000..076bc9f4d --- /dev/null +++ b/public/react/src/search/SearchPage.js @@ -0,0 +1,82 @@ +import React,{ Component } from "react"; +import {Checkbox,Input,Table, Pagination,Menu,Icon} from "antd"; +import {Link,NavLink} from 'react-router-dom'; +import { WordsBtn ,ActionBtn,SnackbarHOC} from 'educoder'; +const Search = Input.Search; +import axios from 'axios'; +import './searchc.css' +import {TPMIndexHOC} from "../modules/tpm/TPMIndexHOC"; + +class SearchPage extends Component{ + constructor(props) { + super(props); + this.state={ + tab:"0", + count:0, + } + } + //切换tab + changeTab=(e)=>{ + this.setState({ + tab:e.key + }) + + + } + + componentDidMount(){ + // const query =this.props.location.search; + // const type = query.split('?tab='); + // let sum = [] + // sum.push(type[1]) + // // console.log("componentDidMountcomponentDidMount"); + // // console.log(sum); + // this.setState({ + // tab:sum, + // }) + + } + setdatafuns =(value)=>{ + + } + + render(){ + let {tab,count}=this.state; + console.log(tab); + return( +
    +
    +
    + 搜索} + onSearch={ (value)=>this.setdatafuns(value)} /> +
    + +
    + + 开发社区 + 实践课程 + 翻转课堂 + 交流问答 + +
    + +
    +

    共找到相关结果{count}

    +
    + +
    + + + + +
    +
    + + ) + } +} + +export default SnackbarHOC() (TPMIndexHOC ( SearchPage )); \ No newline at end of file diff --git a/public/react/src/search/searchc.css b/public/react/src/search/searchc.css new file mode 100644 index 000000000..9fe8b22a0 --- /dev/null +++ b/public/react/src/search/searchc.css @@ -0,0 +1,74 @@ +.searchinput{ + width: 800px; + margin-top: 53px; +} +.headersear{ + height: 160px; + background: #EAF2F9; + display: flex; + justify-content: center; +} +.packinput .ant-input{ + height: 55px; + width:663px !important; + font-size: 18px; + color: #681616 !important; + border-color: #E1EDF8 !important; +} + +.packinput .ant-input-group-addon .ant-btn{ + width:137px !important; + font-size: 18px; + height: 53px; + background:rgba(76,172,255,1); + +} +.tabtitle{ + width: 100% !important; + height: 62px !important; + box-shadow: 3px 10px 21px 0px rgba(76, 76, 76, 0.15); + border-radius: 6px; + background: #fff; + background: rgb(244, 244, 244); +} + + +.tabtitless{ + height: 62px !important; + line-height: 62px !important; + +} +.tabtitle1{ + margin-left: 181px !important; + +} +.tabtitle2{ + margin-left: 90px !important; + +} + + +.counttit{ + width: 130px; + height: 18px; +} + +.counttittext{ + width: 130px; + height: 18px; + color: #888888; + font-size: 13px; + margin-top: 24px; + padding-bottom: 17px; + margin-left: 343px; + +} +.counttittexts{ + color: #4CACFF !important; + font-size: 13px; +} + +.mainx{ + display: flex; + justify-content: center; +} \ No newline at end of file From 3e648171683162a75e98bc85ea705686cac5d214 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 15:18:58 +0800 Subject: [PATCH 12/60] city --- .../react/src/common/components/form/City.js | 13 +++++-- .../modules/user/account/AccountBasicEdit.js | 35 ++++++++++--------- .../modules/user/modal/ApplyForAddOrgModal.js | 12 ++++--- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/public/react/src/common/components/form/City.js b/public/react/src/common/components/form/City.js index dea65877b..b397c8b59 100644 --- a/public/react/src/common/components/form/City.js +++ b/public/react/src/common/components/form/City.js @@ -1719,6 +1719,10 @@ const options = [{ label: '其他' }], }]; + +function filter(inputValue, path) { + return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1); +} class City extends Component{ constructor(props){ super(props); @@ -1739,11 +1743,16 @@ class City extends Component{ } } render(){ - const { defaultValue } = this.props + const { defaultValue, matchInputWidth, className, popupClassName } = this.props const { value } = this.state + // 这里用请选择所在省市的话,会触发chrome的地址选择 return( - ) } diff --git a/public/react/src/modules/user/account/AccountBasicEdit.js b/public/react/src/modules/user/account/AccountBasicEdit.js index 2362437fb..182730170 100644 --- a/public/react/src/modules/user/account/AccountBasicEdit.js +++ b/public/react/src/modules/user/account/AccountBasicEdit.js @@ -110,11 +110,7 @@ class AccountBasic extends Component { this.props.form.validateFieldsAndScroll((err, values) => { console.log(values); let {basicInfo}=this.props; - // TODO 为什么modal里的form影响到这里的了 - if (err) { - delete err.depart - } - if(!err || Object.keys(err).length == 0){ + if(!err ){ let url=`/users/accounts/${basicInfo.id}.json` axios.put((url),{ nickname:values.nickname, @@ -202,16 +198,18 @@ class AccountBasic extends Component { } //搜索部门 searchDepartment=(e)=>{ - this.props.form.setFieldsValue({ - org2:e - }) - let arr = this.state.departments.filter(function(item){ - return item.name.indexOf(e) > -1 - }) - this.setState({ - filterDepartments:arr, - departmentsName:e - }) + if (e) { + this.props.form.setFieldsValue({ + org2:e + }) + let arr = this.state.departments.filter(function(item){ + return item.name.indexOf(e) > -1 + }) + this.setState({ + filterDepartments:arr, + departmentsName:e + }) + } } // 选择部门、学院 @@ -306,12 +304,15 @@ class AccountBasic extends Component { const { getFieldDecorator } = this.props.form; let{basicInfo}=this.props + // form合并了 + const propsWithoutForm = Object.assign({}, this.props) + delete propsWithoutForm.form return (
    this.applyForAddOrgForm = form} schoolName={school} - {...this.props}> + {...propsWithoutForm}> this.applyForAddChildOrgForm = form} > + {...propsWithoutForm} wrappedComponentRef={(form) => this.applyForAddChildOrgForm = form} >
    + )} From 7aabf036f836a8b6cc320f1cffc8bfb350e7d4c7 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 15:33:41 +0800 Subject: [PATCH 13/60] load --- public/react/src/modules/user/AccountPage.js | 16 +++++++++++ .../src/modules/user/account/AccountNav.js | 2 +- .../react/src/modules/user/account/common.css | 27 +++++-------------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/public/react/src/modules/user/AccountPage.js b/public/react/src/modules/user/AccountPage.js index 25c9f7198..3d34b3e13 100644 --- a/public/react/src/modules/user/AccountPage.js +++ b/public/react/src/modules/user/AccountPage.js @@ -79,6 +79,22 @@ class AccountPage extends Component { .accountPage { display: flex; } + .basicFormWrap{ + flex:1; + width: 0; + } + + /* 左侧 */ + .accountNav { + width: 290px; + box-shadow: 0px 4px 9px 0px rgba(11,62,120,0.21); + border-radius: 2px; + padding-top: 8px; + padding-bottom: 30px; + margin-bottom:30px; + margin-right:20px; + height:418px; + } `}
    diff --git a/public/react/src/modules/user/account/AccountNav.js b/public/react/src/modules/user/account/AccountNav.js index 5117eacc2..1ebbf3355 100644 --- a/public/react/src/modules/user/account/AccountNav.js +++ b/public/react/src/modules/user/account/AccountNav.js @@ -22,7 +22,7 @@ class AccountNav extends Component { return (
    { - basicInfo && + basicInfo && basicInfo.id &&
    diff --git a/public/react/src/modules/user/account/common.css b/public/react/src/modules/user/account/common.css index d84686f59..6d1207325 100644 --- a/public/react/src/modules/user/account/common.css +++ b/public/react/src/modules/user/account/common.css @@ -45,29 +45,14 @@ button.ant-btn.ant-btn-primary.grayBtn { display: none; } -.basicFormWrap{ - flex:1; - width: 0; -} -/* .basicForm .ant-form-item-label { - width: 100px; - padding-right: 10px; -} - .basicForm .ant-form-item-label label { - color: #979797 - } */ - /* 左侧 */ - .accountNav { - width: 290px; - box-shadow: 0px 4px 9px 0px rgba(11,62,120,0.21); - border-radius: 2px; - padding-top: 8px; - padding-bottom: 30px; - margin-bottom:30px; - margin-right:20px; - height:418px; + /* .basicForm .ant-form-item-label { + width: 100px; + padding-right: 10px; } + .basicForm .ant-form-item-label label { + color: #979797 + } */ .accountInfo { text-align: center; display: flex; From 8b6ca86a83c69e0506a24166e33907b29c0294b0 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 15:57:29 +0800 Subject: [PATCH 14/60] hidden --- .../src/modules/user/account/AccountBasic.js | 4 ++-- .../modules/user/account/AccountBasicEdit.js | 21 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/public/react/src/modules/user/account/AccountBasic.js b/public/react/src/modules/user/account/AccountBasic.js index 80eee8fc7..aef66e5c2 100644 --- a/public/react/src/modules/user/account/AccountBasic.js +++ b/public/react/src/modules/user/account/AccountBasic.js @@ -3,7 +3,7 @@ import React, { Component } from 'react'; import { SnackbarHOC, getImageUrl, City } from 'educoder'; import { Form, Button, Input, Radio, Select, Tooltip, Icon } from 'antd' import './common.css' - +import { getHiddenName } from './AccountBasicEdit' const RadioGroup = Radio.Group; const Option = Select.Option @@ -70,7 +70,7 @@ class AccountBasicEdit extends Component { label="姓名" className="display formItemInline" > - {basicInfo && basicInfo.name} + {basicInfo && (basicInfo.show_realname == true ? basicInfo.name : getHiddenName(basicInfo.name))} { this.setState({ realName: name }) - const newName = this.getHiddenName(name) + const newName = getHiddenName(name) this.props.form.setFieldsValue({ name: newName @@ -406,7 +405,7 @@ class AccountBasic extends Component { { showRealName ? '(显示:平台将显示您的真实姓名)' : '(隐藏:平台将显示你的昵称)' } :
    - {showRealName ? this.props.basicInfo.name : this.getHiddenName(this.props.basicInfo.name)} + {showRealName ? this.props.basicInfo.name : getHiddenName(this.props.basicInfo.name)} this.showOrHide(showRealName)}> { showRealName ? '(显示:平台将显示您的真实姓名)' : '(隐藏:平台将显示你的昵称)' } From 95037fa4cb22505f7a4604c01c2710dd462adbd7 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 16:03:16 +0800 Subject: [PATCH 15/60] load --- .../src/modules/user/account/AccountNav.js | 52 +++++++++++++++++++ .../src/modules/user/account/AccountSecure.js | 23 ++++---- .../react/src/modules/user/account/common.css | 50 +----------------- 3 files changed, 65 insertions(+), 60 deletions(-) diff --git a/public/react/src/modules/user/account/AccountNav.js b/public/react/src/modules/user/account/AccountNav.js index 1ebbf3355..b0038e43b 100644 --- a/public/react/src/modules/user/account/AccountNav.js +++ b/public/react/src/modules/user/account/AccountNav.js @@ -21,6 +21,58 @@ class AccountNav extends Component { const isSecure = path.indexOf('secure') != -1 return (
    + { basicInfo && basicInfo.id && diff --git a/public/react/src/modules/user/account/AccountSecure.js b/public/react/src/modules/user/account/AccountSecure.js index 6cff4d901..29abf22e4 100644 --- a/public/react/src/modules/user/account/AccountSecure.js +++ b/public/react/src/modules/user/account/AccountSecure.js @@ -35,6 +35,9 @@ class AccountSecure extends Component { // 获取验证码倒计时 remainTime=()=>{ + this.setState({ + seconds: 60 + }) this.timer = setInterval(() => { let { seconds } =this.state; let s = parseInt(seconds)-1; @@ -53,7 +56,7 @@ class AccountSecure extends Component { // 获取验证码 getCode=(index)=>{ - let url=`/account/get_verification_code.json` + let url=`/accounts/get_verification_code.json` let login = ''; let values=this.props.form.getFieldsValue(); if(index == 3){ @@ -199,9 +202,11 @@ class AccountSecure extends Component { InputNewPassword=(rule,value,callback)=>{ const { form } = this.props; - if (value.length<8 || value.length>12) { - callback("请输入8-12个字符的新密码,区分大小写!"); - }else { + if (!value) { + callback("请输入8-16位字符的新密码,区分大小写!"); + } else if (value.length<8 || value.length>16) { + callback("请输入8-16位字符的新密码,区分大小写!"); + } else { callback(); } } @@ -283,7 +288,7 @@ class AccountSecure extends Component { : 未绑定 } - 绑定手机号码,将获得500金币的奖励哟~,手机号码仅自己可见~ + {basicInfo.phone ? '仅自己可见,可用手机号码登录EduCoder' : '绑定手机号码,将获得500金币的奖励哟~,手机号码仅自己可见~'}
    { updating != PHONE && @@ -305,10 +310,10 @@ class AccountSecure extends Component { rules: [{ // initialValue: this.state.cityDefaultValue, required: true, - message: '请输入要绑定的手机号码', + message: `请输入要${basicInfo.phone ? '更换' : '绑定'}的手机号码`, }], })( - + )} @@ -442,10 +447,6 @@ class AccountSecure extends Component { > {getFieldDecorator('p_new', { rules: [{ - // initialValue: this.state.cityDefaultValue, - required: true, - message: '请输入8~16位的新密码,区分大小写', - },{ validator:this.InputNewPassword }], })( diff --git a/public/react/src/modules/user/account/common.css b/public/react/src/modules/user/account/common.css index 6d1207325..113b39e07 100644 --- a/public/react/src/modules/user/account/common.css +++ b/public/react/src/modules/user/account/common.css @@ -18,9 +18,7 @@ .flexRow { display: flex; } -.color-green-light{ - color: #45E660!important; -} + .mb15{margin-bottom: 15px!important;} /* BUTTOn */ .ant-btn { @@ -53,49 +51,3 @@ button.ant-btn.ant-btn-primary.grayBtn { .basicForm .ant-form-item-label label { color: #979797 } */ - .accountInfo { - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - } - .accountInfo .name { - color: #05101A; - font-size: 24px; - height: 36px; - } - .accountInfo .role { - color: #666666; - font-size: 14px; - } - .accountManagement .title { - color: #05101A; - font-size: 18px; - font-weight: 400; - padding: 10px 28px; - margin-top: 6px; - } - .accountManagement .navItem { - font-size: 16px; - padding: 6px 0px; - padding-left: 30px; - border-left: 2px solid #fff; - cursor: pointer; - color:#4D4D4D; - } - .accountManagement .navItem i{ - margin-top: -4px; - display: inline-block; - margin-right: 7px; - } - .accountManagement .navItem i.status{ - margin-top: 1px; - margin-right: 24px; - } - .accountManagement .navItem.active { - border-left: 2px solid #4CACFF; - background: #E6F3FF; - } - .accountManagement .navItem.active i:first-child{ - color:#4CACFF!important; - } \ No newline at end of file From 26f443203d660f16588db37458e5df0e85df66f0 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 16:35:32 +0800 Subject: [PATCH 16/60] ts_mem --- public/react/src/modules/page/main/CodeEvaluateView.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/page/main/CodeEvaluateView.js b/public/react/src/modules/page/main/CodeEvaluateView.js index 48bb0b245..8be0b8765 100644 --- a/public/react/src/modules/page/main/CodeEvaluateView.js +++ b/public/react/src/modules/page/main/CodeEvaluateView.js @@ -184,8 +184,8 @@ class CodeEvaluateView extends Component { { headIconClass && } { _headLockIconClass && } - { item.ts_memo && 消耗内存{item.ts_memo}MB } - { item.ts_memo && item.ts_time && } + { item.ts_mem && 消耗内存{item.ts_mem}MB } + { item.ts_mem && item.ts_time && } { item.ts_time && 代码执行时长:{item.ts_time}秒 }

    From 25baaa300757f2e6e1830c262958a3a6b6459863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 19 Jul 2019 17:14:41 +0800 Subject: [PATCH 17/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/PathModal.js | 99 +++++++- .../courses/coursesPublic/ShixunModal.js | 107 +++++++-- .../courses/shixunHomework/shixunHomework.js | 222 +++++++----------- 3 files changed, 256 insertions(+), 172 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/PathModal.js b/public/react/src/modules/courses/coursesPublic/PathModal.js index fc6747e08..824c50c78 100644 --- a/public/react/src/modules/courses/coursesPublic/PathModal.js +++ b/public/react/src/modules/courses/coursesPublic/PathModal.js @@ -11,7 +11,10 @@ class PathModal extends Component{ Searchvalue:undefined, type:'all', page:1, - patheditarry:undefined + patheditarry:undefined, + newshixunmodallist:undefined, + hometypepvisible: false, + shixunmodallist:undefined, } } @@ -19,14 +22,78 @@ class PathModal extends Component{ this.props.hidecouseShixunModal() } + componentDidMount(){ + this.setState({ + hometypepvisible: true, + patheditarry: [], + checkBoxValues: [], + + }) + + let coursesId = this.props.match.params.coursesId; + let url = "/courses/" + coursesId + "/homework_commons/subjects.json"; + + axios.get(url).then((result) => { + if (result.status === 200) { + this.setState({ + shixunpath: true, + shixunmodallist: result.data, + hometypepvisible: false, + newshixunmodallist: result.data.subject_list, + }) + } + }).catch((error) => { + console.log(error); + }) + } + funshixunpathlist=(search,type,loading,page)=>{ + let{newshixunmodallist}=this.state; + let newshixunmodallists=[] + if(page>1){ + newshixunmodallists=newshixunmodallist; + } + this.setState({ + hometypepvisible:loading + }) + let coursesId=this.props.match.params.coursesId; + let url ="/courses/"+coursesId+"/homework_commons/subjects.json"; + + axios.get(url, { + params: { + search: search, + type:type, + page:page + } + }).then((result)=>{ + if(result.status===200){ + + let shixun_list=result.data.subject_list; + + for(var i=0; i{ + console.log(error); + }) + } + //tag changeTag=(types)=>{ let {Searchvalue}=this.state; this.setState({ type:types, page:1, + newshixunmodallist:undefined }) - this.props.funshixunpathlist(Searchvalue,types,true,1) + this.funshixunpathlist(Searchvalue,types,true,1) } //搜索 @@ -40,7 +107,7 @@ class PathModal extends Component{ this.setState({ page:1, }) - this.props.funshixunpathlist(value,type,true,1) + this.funshixunpathlist(value,type,true,1) } @@ -59,7 +126,7 @@ class PathModal extends Component{ let {Searchvalue,type,page,shixunpathlist}=this.state; let newpage=page+1 - this.props.funshixunpathlist(Searchvalue,type,true,newpage) + this.funshixunpathlist(Searchvalue,type,true,newpage) this.setState({ page:newpage }) @@ -69,19 +136,24 @@ class PathModal extends Component{ } //提交 savecouseShixunModal=()=>{ + this.setState({ + hometypepvisible:true + }) let {patheditarry}=this.state; - let {coursesId,Coursename,page,order,category_id,datas}=this.props; + let {coursesId}=this.props; let url="/courses/"+coursesId+"/homework_commons/create_subject_homework.json"; if(patheditarry===undefined){ this.setState({ patheditarrytype:true, - patheditarryvalue:"请先选择实践课程" + patheditarryvalue:"请先选择实践课程", + hometypepvisible:false }) return }else if(patheditarry.length===0){ this.setState({ patheditarrytype:true, - patheditarryvalue:"请先选择实践课程" + patheditarryvalue:"请先选择实践课程", + hometypepvisible:false }) return } @@ -114,14 +186,16 @@ class PathModal extends Component{ // this.props.courseshomeworkstart(response.data.category_id,response.data.homework_ids) // } - + this.setState({ + hometypepvisible:false + }) }).catch((error) => { console.log(error) }) } render(){ - let {Searchvalue,type,Modalstype}=this.state; - let {visible,shixunmodallist,hometypepvisible,newshixunmodallist}=this.props; + let {Searchvalue,type,Modalstype,newshixunmodallist,hometypepvisible,shixunmodallist}=this.state; + let {visible}=this.props; const antIcon = ; return( @@ -164,7 +238,7 @@ class PathModal extends Component{ {shixunmodallist === undefined ? "":shixunmodallist.subjects_count} - 个实训 + 个实践课程
    { + newshixunmodallist&&newshixunmodallist.map((item,key)=>{ return(
    @@ -236,4 +311,4 @@ class PathModal extends Component{ ) } } -export default PathModal; \ No newline at end of file +export default PathModal; diff --git a/public/react/src/modules/courses/coursesPublic/ShixunModal.js b/public/react/src/modules/courses/coursesPublic/ShixunModal.js index 2d43439c4..4046a58a4 100644 --- a/public/react/src/modules/courses/coursesPublic/ShixunModal.js +++ b/public/react/src/modules/courses/coursesPublic/ShixunModal.js @@ -6,6 +6,7 @@ import axios from'axios'; const Option = Select.Option; const Search = Input.Search; + class ShixunModal extends Component{ constructor(props){ super(props); @@ -13,13 +14,69 @@ class ShixunModal extends Component{ Searchvalue:undefined, type:'all', category_id:0, - page:1 + page:1, + shixunmodallist:undefined, + hometypepvisible:false, + newshixunmodallist:undefined, } } componentDidMount() { - - + this.setState({ + hometypepvisible:true, + }) + let coursesId=this.props.match.params.coursesId; + let url ="/courses/"+coursesId+"/homework_commons/shixuns.json"; + + axios.get(url).then((result)=>{ + if(result.status===200){ + this.setState({ + shixunmodallist:result.data, + hometypepvisible:false, + newshixunmodallist:result.data.shixun_list, + }) + } + }).catch((error)=>{ + console.log(error); + }) } + setupdatalist=(search,type,loading,page)=>{ + let{newshixunmodallist}=this.state; + let newshixunmodallists=[] + if(page>1){ + newshixunmodallists=newshixunmodallist; + } + this.setState({ + hometypepvisible:loading + }) + let coursesId=this.props.match.params.coursesId; + let url ="/courses/"+coursesId+"/homework_commons/shixuns.json"; + + axios.get(url, { + params: { + search: search, + type:type, + page:page + } + }).then((result)=>{ + if(result.status===200){ + + let shixun_list=result.data.shixun_list; + for(var i=0; i{ + console.log(error); + }) + } //勾选实训 shixunhomeworkedit=(list)=>{ @@ -43,16 +100,13 @@ class ShixunModal extends Component{ contentViewScrolledit=(e)=>{ //滑动到底判断 - if(e.currentTarget.scrollHeight-e.currentTarget.scrollTop===e.currentTarget.clientHeight){ - - let {Searchvalue,type,page}=this.state; - let newpage=page+1 - this.props.funshixunmodallist(Searchvalue,type,true,newpage) - this.setState({ - page:newpage - }) - + let {Searchvalue,type,page}=this.state; + let newpage=page+1 + this.setupdatalist(Searchvalue,type,true,newpage) + this.setState({ + page:newpage + }) } } @@ -69,7 +123,7 @@ class ShixunModal extends Component{ page:1, }) - this.props.funshixunmodallist(value,type,true,1) + this.setupdatalist(value,type,true,1) this.props.funpatheditarry([]) } @@ -79,9 +133,10 @@ class ShixunModal extends Component{ this.setState({ type:types, page:1, + newshixunmodallist:undefined }) - this.props.funshixunmodallist(Searchvalue,types,true,1) + this.setupdatalist(Searchvalue,types,true,1) this.props.funpatheditarry([]) } @@ -91,17 +146,24 @@ class ShixunModal extends Component{ } savecouseShixunModal=()=>{ + this.setState({ + hometypepvisible:true + }) let {coursesId,patheditarry,datas}=this.props; let{category_id}=this.state; if (this.props.chooseShixun) { this.props.chooseShixun(patheditarry) + this.setState({ + hometypepvisible:false + }) return; } if(patheditarry.length===0){ this.setState({ shixunmodelchke:true, - chekicmessage:"请先选择实训" + chekicmessage:"请先选择实训", + hometypepvisible:false }) return @@ -119,7 +181,9 @@ class ShixunModal extends Component{ this.props.courseshomeworkstart(response.data.category_id,response.data.homework_ids) this.props.hidecouseShixunModal() } - + this.setState({ + hometypepvisible:false + }) // category_id: 3 // homework_ids: (5) [9171, 9172, 9173, 9174, 9175] }).catch((error) => { @@ -133,8 +197,8 @@ class ShixunModal extends Component{ }) } render(){ - let {Searchvalue,type,category_id}=this.state; - let {visible,shixunmodallist,hometypepvisible,newshixunmodallist,patheditarry}=this.props; + let {Searchvalue,type,hometypepvisible,shixunmodallist,newshixunmodallist,}=this.state; + let {visible,patheditarry}=this.props; const antIcon = ; // console.log(patheditarry) return( @@ -205,7 +269,7 @@ class ShixunModal extends Component{ ` } -
    +
  • this.changeTag("all")} className={ type==="all" ? "active edu-filter-cir-grey font-12":"edu-filter-cir-grey font-12"}>全部 @@ -277,6 +341,9 @@ class ShixunModal extends Component{ width: 11%; box-sizing: border-box; } + .pl12{ + padding-left: 12px; + } ` } @@ -298,7 +365,7 @@ class ShixunModal extends Component{
  • {item.school}
  • {item.myshixuns_count}
  • -
  • {item.level}
  • +
  • {item.level}
  • 详情
  • diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index 42f5fbf6a..1913b0d2d 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -454,20 +454,6 @@ class ShixunHomework extends Component{ checkBoxValues:[] }) - let coursesId=this.props.match.params.coursesId; - let url ="/courses/"+coursesId+"/homework_commons/shixuns.json"; - - axios.get(url).then((result)=>{ - if(result.status===200){ - this.setState({ - shixunmodallist:result.data, - hometypepvisible:false, - newshixunmodallist:result.data.shixun_list, - }) - } - }).catch((error)=>{ - console.log(error); - }) } @@ -477,24 +463,10 @@ class ShixunHomework extends Component{ this.setState({ hometypepvisible:true, patheditarry:[], - checkBoxValues:[] + checkBoxValues:[], + shixunpath: true, }) - let coursesId=this.props.match.params.coursesId; - let url ="/courses/"+coursesId+"/homework_commons/subjects.json"; - - axios.get(url).then((result)=>{ - if(result.status===200){ - this.setState({ - shixunpath:true, - shixunpathlist:result.data, - hometypepvisible:false, - newshixunpathlist:result.data.subject_list, - }) - } - }).catch((error)=>{ - console.log(error); - }) } @@ -508,116 +480,80 @@ class ShixunHomework extends Component{ }) } - funshixunmodallist=(search,type,loading,page)=>{ - let{newshixunmodallist}=this.state; - let newshixunmodallists=[] - if(page>1){ - newshixunmodallists=newshixunmodallist; - } - this.setState({ - hometypepvisible:loading - }) - let coursesId=this.props.match.params.coursesId; - let url ="/courses/"+coursesId+"/homework_commons/shixuns.json"; - - axios.get(url, { - params: { - search: search, - type:type, - page:page - } - }).then((result)=>{ - if(result.status===200){ - - let shixun_list=result.data.shixun_list; - for(var i=0; i{ - console.log(error); - }) - } - - funshixunpathlist=(search,type,loading,page)=>{ - let{newshixunpathlist}=this.state; - let newshixunmodallists=[] - if(page>1){ - newshixunmodallists=newshixunpathlist; - } - this.setState({ - hometypepvisible:loading - }) - let coursesId=this.props.match.params.coursesId; - let url ="/courses/"+coursesId+"/homework_commons/subjects.json"; - - axios.get(url, { - params: { - search: search, - type:type, - page:page - } - }).then((result)=>{ - if(result.status===200){ - - let shixun_list=result.data.subject_list; - for(var i=0; i{ - console.log(error); - }) - } - - funshixunpathlist=(search,type,loading,page)=>{ - let{newshixunpathlist}=this.state; - let newshixunmodallists=[] - if(page>1){ - newshixunmodallists=newshixunpathlist; - } - this.setState({ - hometypepvisible:loading - }) - let coursesId=this.props.match.params.coursesId; - let url ="/courses/"+coursesId+"/homework_commons/subjects.json"; + // funshixunmodallist=(search,type,loading,page)=>{ + // let{newshixunmodallist}=this.state; + // let newshixunmodallists=[] + // if(page>1){ + // newshixunmodallists=newshixunmodallist; + // } + // this.setState({ + // hometypepvisible:loading + // }) + // let coursesId=this.props.match.params.coursesId; + // let url ="/courses/"+coursesId+"/homework_commons/shixuns.json"; + // + // axios.get(url, { + // params: { + // search: search, + // type:type, + // page:page + // } + // }).then((result)=>{ + // if(result.status===200){ + // + // let shixun_list=result.data.shixun_list; + // for(var i=0; i{ + // console.log(error); + // }) + // } - axios.get(url, { - params: { - search: search, - type:type, - page:page - } - }).then((result)=>{ - if(result.status===200){ - let shixun_list=result.data.subject_list; - for(var i=0; i{ - console.log(error); - }) - } + // funshixunpathlist=(search,type,loading,page)=>{ + // let{newshixunpathlist}=this.state; + // let newshixunmodallists=[] + // if(page>1){ + // newshixunmodallists=newshixunpathlist; + // } + // this.setState({ + // hometypepvisible:loading + // }) + // let coursesId=this.props.match.params.coursesId; + // let url ="/courses/"+coursesId+"/homework_commons/subjects.json"; + // + // axios.get(url, { + // params: { + // search: search, + // type:type, + // page:page + // } + // }).then((result)=>{ + // if(result.status===200){ + // + // let shixun_list=result.data.subject_list; + // for(var i=0; i{ + // console.log(error); + // }) + // } PaginationCourse=(pageNumber)=>{ let {Coursename,order}=this.state; @@ -1012,13 +948,16 @@ class ShixunHomework extends Component{ course_groups={course_groups} getcourse_groupslist={(id)=>this.getcourse_groupslist(id)} />:""} + {/*选择实训*/} {shixunmodal===true?this.funshixunmodallist(search,type,loading,page)} + // funshixunmodallist={(search,type,loading,page)=>this.funshixunmodallist(search,type,loading,page)} hometypepvisible={hometypepvisible} hidecouseShixunModal={this.hidecouseShixunModal} newshixunmodallist={newshixunmodallist} @@ -1027,6 +966,7 @@ class ShixunHomework extends Component{ funpatheditarry={(patheditarry)=>this.funpatheditarry(patheditarry)} patheditarry={patheditarry} />:""} + {shixunmodal===true||shixunpath===true?:""} {/*选择实训路径*/} {shixunpath===true? this.funshixunpathlist(search,type,loading,page)} + // funshixunpathlist={(search,type,loading,page)=>this.funshixunpathlist(search,type,loading,page)} hometypepvisible={hometypepvisible} hidecouseShixunModal={this.hidecouseShixunModal} coursesId={this.props.match.params.coursesId} From 49d3cc2c48b8bf98cc580d21289e007b0d66a48d Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 17:25:52 +0800 Subject: [PATCH 18/60] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=A4=A7=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/common/educoder.js | 1 + .../react/src/common/hooks/ImageLayerHook.js | 47 +++++++++++++++++++ .../members/modal/CourseGroupChooserModal.js | 4 +- .../modules/page/main/CodeEvaluateView.css | 1 + .../user/modal/RealNameCertificationModal.js | 14 ++++-- 5 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 public/react/src/common/hooks/ImageLayerHook.js diff --git a/public/react/src/common/educoder.js b/public/react/src/common/educoder.js index 263e08808..749d2a1e5 100644 --- a/public/react/src/common/educoder.js +++ b/public/react/src/common/educoder.js @@ -50,3 +50,4 @@ export { default as DMDEditor } from './components/markdown/DMDEditor' +export { default as ImageLayerHook } from './hooks/ImageLayerHook' \ No newline at end of file diff --git a/public/react/src/common/hooks/ImageLayerHook.js b/public/react/src/common/hooks/ImageLayerHook.js new file mode 100644 index 000000000..c9f0a14a4 --- /dev/null +++ b/public/react/src/common/hooks/ImageLayerHook.js @@ -0,0 +1,47 @@ +import React, { useState, useEffect, memo } from 'react' +import ImageLayer from '../../modules/page/layers/ImageLayer' +import { isImageExtension } from 'educoder' +function ImageLayerHook(props) { + const [showImage, setShowImage] = useState(false) + const [imageSrc, setImageSrc] = useState('') + + const { parentSel, childSel, watchPropsArray } = props + + const onImageLayerClose = () => { + setShowImage(false) + setImageSrc('') + } + const onDelegateClick = (event) => { + const imageSrc = event.target.src || event.target.getAttribute('src') || event.target.getAttribute('href') + // 判断imageSrc是否是图片 + const fileName = event.target.innerHTML.trim() + if (isImageExtension(imageSrc.trim()) || isImageExtension(fileName) || event.target.tagName == 'IMG' || imageSrc.indexOf('base64,') != -1) { + // 非回复里的头像图片; 非emoticons + if (imageSrc.indexOf('/images/avatars/User') === -1 && + imageSrc.indexOf('kindeditor/plugins/emoticons') === -1 ) { + setShowImage(true) + setImageSrc(imageSrc) + } + event.stopPropagation() + event.preventDefault && event.preventDefault() + event.originalEvent.preventDefault() + // event.originalEvent.stopPropagation() + // event.originalEvent.cancelBubble = true + return false; + } + } + useEffect(() => { + $(parentSel) + .delegate(childSel, "click", onDelegateClick); + + return () => { + $(parentSel).undelegate(childSel, "click", onDelegateClick ) + } + }) + + return ( + + ) +} + +export default memo(ImageLayerHook) \ No newline at end of file diff --git a/public/react/src/modules/courses/members/modal/CourseGroupChooserModal.js b/public/react/src/modules/courses/members/modal/CourseGroupChooserModal.js index dc3044cc0..3f4f1a0ca 100644 --- a/public/react/src/modules/courses/members/modal/CourseGroupChooserModal.js +++ b/public/react/src/modules/courses/members/modal/CourseGroupChooserModal.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useRef, memo } from 'react' +import React, { useState, useEffect, useRef, useMemo } from 'react' import { trigger } from 'educoder' import { Input, Checkbox } from "antd"; import CourseGroupChooser from '../CourseGroupChooser' @@ -105,4 +105,4 @@ function CourseGroupChooserModal({ course_groups = [], isAdminOrCreator, item, i ) } -export default memo(CourseGroupChooserModal) \ No newline at end of file +export default useMemo(CourseGroupChooserModal) \ No newline at end of file diff --git a/public/react/src/modules/page/main/CodeEvaluateView.css b/public/react/src/modules/page/main/CodeEvaluateView.css index bd0427d7b..137174d95 100644 --- a/public/react/src/modules/page/main/CodeEvaluateView.css +++ b/public/react/src/modules/page/main/CodeEvaluateView.css @@ -126,4 +126,5 @@ display: inline-block; height: 10px; margin: 5px 0; + float: right; } \ No newline at end of file diff --git a/public/react/src/modules/user/modal/RealNameCertificationModal.js b/public/react/src/modules/user/modal/RealNameCertificationModal.js index ccb301a32..6c92423cd 100644 --- a/public/react/src/modules/user/modal/RealNameCertificationModal.js +++ b/public/react/src/modules/user/modal/RealNameCertificationModal.js @@ -2,7 +2,7 @@ import React, { Component } from "react"; import { message, Icon, Input, Form, Upload} from "antd"; import axios from 'axios' import ModalWrapper from "../../courses/common/ModalWrapper" -import { City, getUploadActionUrl,getImageUrl } from 'educoder' +import { City, getUploadActionUrl, getImageUrl, ImageLayerHook } from 'educoder' import '../account/common.css' import authImg from '../../../images/account/auth.png' @@ -201,7 +201,11 @@ class RealNameCertificationModal extends Component{ } .applyForModal .ant-form-item-label label { color: #979797 + } + .applyForModal .ant-upload.ant-upload-drag .ant-upload { + padding: 0px; } + .certificationModal .ant-modal-body{ padding:20px; } @@ -295,9 +299,9 @@ class RealNameCertificationModal extends Component{ {imageUrl2 ? - + // avatar - : + :

    @@ -311,7 +315,9 @@ class RealNameCertificationModal extends Component{

    示例图片 - 查看大图 + + 查看大图
    From b89832fe8476840874fe5e639edfe63c88e0538a Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 17:44:52 +0800 Subject: [PATCH 19/60] users --- public/react/src/context/TPIContextProvider.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/context/TPIContextProvider.js b/public/react/src/context/TPIContextProvider.js index 10e9c07e2..449f79a7a 100644 --- a/public/react/src/context/TPIContextProvider.js +++ b/public/react/src/context/TPIContextProvider.js @@ -424,7 +424,7 @@ pop_box_new(htmlvalue, 480, 182); */ let user = resData.user; user.username = resData.user.name; - user.user_url = `/user/${resData.user.login}`; + user.user_url = `/users/${resData.user.login}`; // user.image_url = resData.image_url; user.is_teacher = resData.is_teacher; resData.user = user; From c67050034abe1be4a0dee67cba30587a92f6ab00 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, 19 Jul 2019 17:47:21 +0800 Subject: [PATCH 20/60] =?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/Listofworksstudentone.js | 2 +- public/react/src/search/SearchPage.js | 161 ++++++++++++++++-- public/react/src/search/searchc.css | 63 +++++-- 3 files changed, 203 insertions(+), 23 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 1ba8c85b7..f31cb954d 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -1411,7 +1411,7 @@ class Listofworksstudentone extends Component { // } this.setState({ page: e.current, - teacherlists: teacherlists + // teacherlists: teacherlists }) } diff --git a/public/react/src/search/SearchPage.js b/public/react/src/search/SearchPage.js index 076bc9f4d..14966b670 100644 --- a/public/react/src/search/SearchPage.js +++ b/public/react/src/search/SearchPage.js @@ -1,7 +1,7 @@ import React,{ Component } from "react"; import {Checkbox,Input,Table, Pagination,Menu,Icon} from "antd"; import {Link,NavLink} from 'react-router-dom'; -import { WordsBtn ,ActionBtn,SnackbarHOC} from 'educoder'; +import { WordsBtn ,ActionBtn,SnackbarHOC,markdownToHTML,getImageUrl} from 'educoder'; const Search = Input.Search; import axios from 'axios'; import './searchc.css' @@ -13,6 +13,11 @@ class SearchPage extends Component{ this.state={ tab:"0", count:0, + keywords:"python", + type:"", + page:1, + perpages:20, + data:[], } } //切换tab @@ -34,14 +39,47 @@ class SearchPage extends Component{ // this.setState({ // tab:sum, // }) + this.getdata(this.state.page); } setdatafuns =(value)=>{ } + paginationonChanges = (pageNumber) => { + this.setState({ + page: pageNumber, + loadingstate: true, + }) + this.getdata(pageNumber); + } + //获取数据 + getdata=(pages)=>{ + let url = "/search.json"; + axios.get(url,{params:{ + keyword:this.state.keywords, + type:this.state.types, + page:pages, + per_page:this.state.perpages, + } + }).then((response) => { + if(response === undefined){ + + return + } + console.log("63"); + console.log(response.data); + this.setState({ + count:response.data.count, + data:response.data.results, + }) + }).catch((error) => { + console.log("56"); + console.log(error); + }); + } render(){ - let {tab,count}=this.state; + let {tab,count,data,page,perpages}=this.state; console.log(tab); return(
    @@ -55,24 +93,123 @@ class SearchPage extends Component{
    +
    开发社区 实践课程 翻转课堂 交流问答 +
    + { + JSON.stringify(data) === "[]" ? + +
    +
    +
    + +

    没有数据可以显示!

    +
    +
    + +
    + : +
    +
    +

    共找到相关结果{count}

    +
    + +
    + +
    + {data === undefined ? "" : data.map((item, key) => { + return ( +
    + +
    + {/*标题*/} + + {/*描述*/} +
    + {item.content.content === undefined || item.content.content===0?"": item.content.content.map((item4, key4) => { + return ( + + ) + }) + } +
    + +
    + {/*内容*/} + {item.content.description === undefined || item.content.description===0?"": item.content.description.map((item3, key3) => { + return ( + + ) + }) + } +
    + +
    + +
    + {/*挑战名字*/} + {item.content.challenge_names === undefined || item.content.challenge_names===0?"": item.content.challenge_names.map((item5, key5) => { + return ( + + ) + }) + } +
    + +
    + {/*挑战标签*/} + {item.content.challenge_tag_names === undefined || item.content.challenge_tag_names===0?"": item.content.challenge_tag_names.map((item6, key6) => { + return ( + 1?"markdown-body tzbq ":"markdown-body tzbqx"} + dangerouslySetInnerHTML={{__html:item6}} /> + ) + }) + } +
    + + + + +
    +
    + ) + })} + + +
    + + + + +
    + +
    + +
    +
    + } + + + { + count && count && count> perpages ? +
    + +
    + : "" + } -
    -

    共找到相关结果{count}

    -
    - -
    - - - - -
    ) diff --git a/public/react/src/search/searchc.css b/public/react/src/search/searchc.css index 9fe8b22a0..a3e9fafbd 100644 --- a/public/react/src/search/searchc.css +++ b/public/react/src/search/searchc.css @@ -24,14 +24,18 @@ } .tabtitle{ - width: 100% !important; height: 62px !important; box-shadow: 3px 10px 21px 0px rgba(76, 76, 76, 0.15); border-radius: 6px; background: #fff; - background: rgb(244, 244, 244); + display: flex; + justify-content: center; +} +.tabtitles2{ + background: #fff; + height: 62px !important; + width: 1200px; } - .tabtitless{ height: 62px !important; @@ -39,28 +43,27 @@ } .tabtitle1{ - margin-left: 181px !important; } .tabtitle2{ - margin-left: 90px !important; + margin-left: 30px !important; } .counttit{ - width: 130px; - height: 18px; + display: flex; + justify-content: center; } .counttittext{ - width: 130px; + text-align: left; + width: 1200px; height: 18px; color: #888888; font-size: 13px; margin-top: 24px; - padding-bottom: 17px; - margin-left: 343px; + } .counttittexts{ @@ -71,4 +74,44 @@ .mainx{ display: flex; justify-content: center; + margin-top: 17px; +} +.project-packages-list{ + +} +.project-package-item{ + display: -webkit-flex; + display: flex; + flex-direction:column; + margin-bottom: 20px; + padding: 20px; + background: white; + /* box-shadow: 1px 3px 3px 1px rgba(156,156,156,0.16); */ + +} +.xuxianpro{ + height: 20px; + border-bottom: 1px dashed; + border-color: #EAEAEA; + margin-bottom: 18px; +} +.magr11{ + margin-top: 11px; +} +.highlight{ + color: #4CACFF; +} +.fonttext{ + font-size: 20px; + font-weight:bold; +} + +.fontextcolor{ + color: #777777; +} +.tzbq{ + margin-left: 68px; +} +.tzbqx{ + margin-left: 24px; } \ No newline at end of file From 5f8c43b592109a6b644b414a6c40847bd3cdac9b Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 19 Jul 2019 17:51:36 +0800 Subject: [PATCH 21/60] name --- public/react/src/modules/user/modal/ApplyForAddOrgModal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/user/modal/ApplyForAddOrgModal.js b/public/react/src/modules/user/modal/ApplyForAddOrgModal.js index 76664bfec..95cfa9105 100644 --- a/public/react/src/modules/user/modal/ApplyForAddOrgModal.js +++ b/public/react/src/modules/user/modal/ApplyForAddOrgModal.js @@ -40,7 +40,7 @@ class ApplyForAddOrgModal extends Component{ if(!err){ let url=`/add_school_applies.json`; axios.post(url,{ - schoolName:values.schoolName, + name:values.schoolName, province:values.city && values.city[0], city:values.city && values.city[1], address:values.address, From e990fa51c5f8f914aa32716b8a66eee38c89da73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 19 Jul 2019 17:58:07 +0800 Subject: [PATCH 22/60] =?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 --- .../courses/coursesPublic/ShixunModal.js | 2 +- public/react/src/modules/home/shixunsHome.js | 2 +- .../modules/tpm/TPMsettings/TPMsettings.js | 22 +++++++++--- .../src/modules/tpm/newshixuns/Newshixuns.js | 36 +++++++++++++------ 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/public/react/src/modules/courses/coursesPublic/ShixunModal.js b/public/react/src/modules/courses/coursesPublic/ShixunModal.js index 4046a58a4..f0caef87b 100644 --- a/public/react/src/modules/courses/coursesPublic/ShixunModal.js +++ b/public/react/src/modules/courses/coursesPublic/ShixunModal.js @@ -378,7 +378,7 @@ class ShixunModal extends Component{
    - {this.state.shixunmodelchke===true?{this.state.chekicmessage}:""} + {this.state.chekicmessage}
    取消 确定 diff --git a/public/react/src/modules/home/shixunsHome.js b/public/react/src/modules/home/shixunsHome.js index 9093ec22d..780691e6c 100644 --- a/public/react/src/modules/home/shixunsHome.js +++ b/public/react/src/modules/home/shixunsHome.js @@ -232,7 +232,7 @@ class ShixunsHome extends Component {

    - {item.stages_count} + {item.stages_count} diff --git a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js index abeb18c9f..72bbbe3d0 100644 --- a/public/react/src/modules/tpm/TPMsettings/TPMsettings.js +++ b/public/react/src/modules/tpm/TPMsettings/TPMsettings.js @@ -161,7 +161,20 @@ function updatamakedown(id){ }, 200) } - +function range(start, end) { + const result = []; + for (let i = start; i < end; i++) { + result.push(i); + } + return result; +} +function disabledDateTime() { + return { + // disabledHours: () => range(0, 24).splice(4, 20), + disabledMinutes: () => range(1, 30).concat(range(31, 60)), + // disabledSeconds: () => [0, 60], + }; +} export default class TPMsettings extends Component { constructor(props) { super(props) @@ -1307,7 +1320,7 @@ export default class TPMsettings extends Component {

    - *语言:   @@ -953,6 +967,7 @@ class Newshixuns extends Component {
  • @@ -993,14 +1008,11 @@ class Newshixuns extends Component {
  • - - - this.sendhideModaly()} >取消 - + className="task-btn task-btn-orange">确定
  • @@ -1203,10 +1215,12 @@ class Newshixuns extends Component { showToday={false} showTime locale={locale} + showTime={{ format: 'HH:mm' }} style={{"width": "184px"}} - format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD HH:mm" placeholder="请选择开启时间" onChange={this.onChangeTimePicker} + disabledTime={disabledDateTime} />
    } diff --git a/public/react/src/search/searchc.css b/public/react/src/search/searchc.css index e148505f3..d228a2ba6 100644 --- a/public/react/src/search/searchc.css +++ b/public/react/src/search/searchc.css @@ -117,4 +117,12 @@ } .bjyss{ background: #F8F8F8; +} +.zj{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} +.ziticor{ + color: #777777; } \ No newline at end of file From 88d059aa1a0ccf154b92e861c7a40ee533989af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 19 Jul 2019 19:54:14 +0800 Subject: [PATCH 26/60] =?UTF-8?q?=20=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/tpm/TPMIndex.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/react/src/modules/tpm/TPMIndex.css b/public/react/src/modules/tpm/TPMIndex.css index d55369370..655f58637 100644 --- a/public/react/src/modules/tpm/TPMIndex.css +++ b/public/react/src/modules/tpm/TPMIndex.css @@ -188,3 +188,7 @@ body>.-task-title { .HeaderSearch .ant-input-search .ant-input{ color: #fff; } + +.HeaderSearch .ant-input-search .ant-input-suffix{ + background: transparent !important; +} \ No newline at end of file From 8ec3869815e8bf7c2f397d0e6bf6233964344e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 19 Jul 2019 20:39:51 +0800 Subject: [PATCH 27/60] =?UTF-8?q?=E6=90=9C=E7=B4=A2=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 | 8 ++- public/react/src/modules/tpm/NewHeader.js | 5 +- .../src/modules/tpm/newshixuns/Newshixuns.js | 6 +- public/react/src/search/SearchPage.js | 55 ++++++++++++++----- 4 files changed, 55 insertions(+), 19 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index 293d1baca..b7658450a 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -333,7 +333,13 @@ class App extends Component { {/*实训课程(原实训路径)*/} - + + () + } + > + {/*课堂*/} diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index 3ea3c493c..43152a074 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -384,7 +384,7 @@ class NewHeader extends Component { } onKeywordSearchKeyDown = (e) => { - window.location.href ="/search"+"?value="+e.target.value; + window.location.href ="/search?value="+e.target.value; // let code = e.keyCode; // if(code == 13) { @@ -709,6 +709,7 @@ submittojoinclass=(value)=>{ console.log(value)} + onPressEnter={this.onKeywordSearchKeyDown} style={{ width: 258 }} /> @@ -791,6 +792,8 @@ submittojoinclass=(value)=>{