修改注册的按钮

This commit is contained in:
sylor_huang@126.com 2020-04-17 16:47:54 +08:00
parent 30f1a396f3
commit 0f659d7ffe
4 changed files with 618 additions and 115 deletions

View File

@ -3,7 +3,8 @@
<component name="ChangeListManager">
<list default="true" id="9830c5da-176a-4c72-a301-9f6ce98c82fe" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/forge/Index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Index.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/modules/user/usersInfo/Infos.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/modules/user/usersInfo/Infos.js" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -30,8 +31,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/App.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="362">
<caret line="781" column="16" selection-start-line="781" selection-start-column="16" selection-end-line="786" selection-end-column="18" />
<state relative-caret-position="102">
<caret line="762" column="54" lean-forward="true" selection-start-line="762" selection-start-column="54" selection-end-line="762" selection-end-column="54" />
<folding>
<element signature="e#14120#14327#0" />
<element signature="e#14353#14550#0" />
@ -44,11 +45,78 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/modules/user/usersInfo/Infos.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="38" column="31" selection-start-line="38" selection-start-column="31" selection-end-line="38" selection-end-column="31" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/modules/user/usersInfo/InfosProject.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="29" selection-end-line="390" />
<folding>
<element signature="e#0#41#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/modules/tpm/NewHeader.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="1258" column="110" selection-start-line="1258" selection-start-column="98" selection-end-line="1258" selection-end-column="110" />
<folding>
<element signature="e#0#41#0" expanded="true" />
<element signature="e#433#515#0" expanded="true" />
<element signature="e#1358#2042#0" />
<element signature="n#!!block;n#componentDidMount#0;n#NewHeader#0" />
<element signature="e#2353#2665#0" />
<element signature="e#2760#2816#0" />
<element signature="e#2954#2960#0" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="27" selection-start-line="8" selection-start-column="27" selection-end-line="8" selection-end-column="27" />
<folding>
<element signature="n#MergeDetail#0" />
<element signature="e#749#1100#0" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Nodata.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" column="11" lean-forward="true" selection-start-line="7" selection-start-column="11" selection-end-line="7" selection-end-column="11" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="58" column="71" selection-start-line="58" selection-start-column="71" selection-end-line="58" selection-end-column="71" />
<state relative-caret-position="236">
<caret line="32" column="2" lean-forward="true" selection-start-line="32" selection-start-column="2" selection-end-line="32" selection-end-column="2" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -66,11 +134,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>Detail</find>
<find>projects/:projectsId/c</find>
<find>branchList</find>
<find>getProjectRoot</find>
<find>changeBranch</find>
<find>detail</find>
<find>up</find>
<find>update</find>
@ -95,7 +158,12 @@
<find>edu-menu-list</find>
<find>ver</find>
<find>new_header.js</find>
<find>new_course</find>
<find>/projects&quot;</find>
<find>我的</find>
<find>/projects</find>
<find>mygetHelmetapi2.new_course</find>
<find>注册</find>
</findStrings>
<replaceStrings>
<replace>任务</replace>
@ -153,16 +221,20 @@
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js" />
<option value="$PROJECT_DIR$/src/forge/New/Index.js" />
<option value="$PROJECT_DIR$/src/modules/tpm/NewFooter.js" />
<option value="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" />
<option value="$PROJECT_DIR$/src/AppConfig.js" />
<option value="$PROJECT_DIR$/src/forge/Version/version.css" />
<option value="$PROJECT_DIR$/src/forge/Version/version.js" />
<option value="$PROJECT_DIR$/src/App.js" />
<option value="$PROJECT_DIR$/src/forge/Index.js" />
<option value="$PROJECT_DIR$/src/modules/user/Projects.js" />
<option value="$PROJECT_DIR$/src/App.js" />
<option value="$PROJECT_DIR$/src/modules/user/usersInfo/Infos.js" />
<option value="$PROJECT_DIR$/src/modules/user/usersInfo/Projects.js" />
<option value="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" fullScreen="true">
<option name="x" value="233" />
<option name="y" value="23" />
<option name="width" value="1440" />
<option name="height" value="877" />
@ -194,8 +266,22 @@
<item name="forgeplus-react" type="b2602c69:ProjectViewProjectNode" />
<item name="forgeplus-react" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="forge" type="462c0819:PsiDirectoryNode" />
<item name="Main" type="462c0819:PsiDirectoryNode" />
<item name="modules" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="forgeplus-react" type="b2602c69:ProjectViewProjectNode" />
<item name="forgeplus-react" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="modules" type="462c0819:PsiDirectoryNode" />
<item name="user" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="forgeplus-react" type="b2602c69:ProjectViewProjectNode" />
<item name="forgeplus-react" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="modules" type="462c0819:PsiDirectoryNode" />
<item name="user" type="462c0819:PsiDirectoryNode" />
<item name="usersInfo" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
@ -217,6 +303,7 @@
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/modules/user/usersInfo" />
<recent name="$PROJECT_DIR$/build" />
<recent name="$PROJECT_DIR$/src/forge/Images" />
</key>
@ -274,18 +361,18 @@
<workItem from="1587020811560" duration="543000" />
<workItem from="1587021467416" duration="8000" />
<workItem from="1587022017639" duration="2902000" />
<workItem from="1587047814589" duration="1618000" />
<workItem from="1587047814589" duration="6858000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="141644000" />
<option name="totallyTimeSpent" value="146884000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" weight="0.18884121" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18884121" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
@ -298,7 +385,7 @@
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="8" />
<window_info anchor="bottom" id="Version Control" order="9" weight="0.31084338" />
<window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.6325301" />
<window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.46024096" />
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
<window_info anchor="bottom" id="TypeScript" order="12" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@ -361,46 +448,6 @@
</option>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/forge/Order/newMilepost.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="325">
<caret line="90" column="46" lean-forward="true" selection-start-line="90" selection-start-column="46" selection-end-line="90" selection-end-column="46" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/Nav.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="114" lean-forward="true" selection-start-line="15" selection-start-column="75" selection-end-line="15" selection-end-column="114" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/MilepostDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="134">
<caret line="269" column="13" lean-forward="true" selection-start-line="269" selection-start-column="13" selection-end-line="269" selection-end-column="13" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/UpdateMilepost.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="131" column="46" lean-forward="true" selection-start-line="131" selection-start-column="46" selection-end-line="131" selection-end-column="46" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Setting.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-526">
@ -651,16 +698,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="356">
<caret line="319" column="64" lean-forward="true" selection-start-line="319" selection-start-column="64" selection-end-line="319" selection-end-column="64" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootBranch.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
@ -785,20 +822,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/tpm/NewHeader.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="13677">
<caret line="1427" column="71" selection-start-line="1427" selection-start-column="71" selection-end-line="1427" selection-end-column="71" />
<folding>
<element signature="e#1358#2042#0" />
<element signature="n#!!block;n#componentDidMount#0;n#NewHeader#0" />
<element signature="e#2353#2665#0" />
<element signature="e#2760#2816#0" />
<element signature="e#2954#2960#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/tpm/TPMIndex.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1259">
@ -818,21 +841,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/App.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="362">
<caret line="781" column="16" selection-start-line="781" selection-start-column="16" selection-end-line="786" selection-end-column="18" />
<folding>
<element signature="e#14120#14327#0" />
<element signature="e#14353#14550#0" />
<element signature="e#14676#14872#0" />
<element signature="e#14904#15119#0" />
<element signature="e#15483#15669#0" />
<element signature="e#15678#15867#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2242">
@ -845,8 +853,90 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="58" column="71" selection-start-line="58" selection-start-column="71" selection-end-line="58" selection-end-column="71" />
<state relative-caret-position="236">
<caret line="32" column="2" lean-forward="true" selection-start-line="32" selection-start-column="2" selection-end-line="32" selection-end-column="2" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="27" selection-start-line="8" selection-start-column="27" selection-end-line="8" selection-end-column="27" />
<folding>
<element signature="n#MergeDetail#0" />
<element signature="e#749#1100#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Nodata.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" column="11" lean-forward="true" selection-start-line="7" selection-start-column="11" selection-end-line="7" selection-end-column="11" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/App.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="762" column="54" lean-forward="true" selection-start-line="762" selection-start-column="54" selection-end-line="762" selection-end-column="54" />
<folding>
<element signature="e#14120#14327#0" />
<element signature="e#14353#14550#0" />
<element signature="e#14676#14872#0" />
<element signature="e#14904#15119#0" />
<element signature="e#15483#15669#0" />
<element signature="e#15678#15867#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/user/usersInfo/Infos.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="38" column="31" selection-start-line="38" selection-start-column="31" selection-end-line="38" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/user/usersInfo/InfosProject.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="29" selection-end-line="390" />
<folding>
<element signature="e#0#41#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/user/usersInfo/Projects.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="153" column="13" lean-forward="true" selection-start-line="153" selection-start-column="13" selection-end-line="153" selection-end-column="13" />
<folding>
<element signature="e#0#41#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/modules/tpm/NewHeader.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="1258" column="110" selection-start-line="1258" selection-start-column="98" selection-end-line="1258" selection-end-column="110" />
<folding>
<element signature="e#0#41#0" expanded="true" />
<element signature="e#433#515#0" expanded="true" />
<element signature="e#1358#2042#0" />
<element signature="n#!!block;n#componentDidMount#0;n#NewHeader#0" />
<element signature="e#2353#2665#0" />
<element signature="e#2760#2816#0" />
<element signature="e#2954#2960#0" />
</folding>
</state>
</provider>
</entry>

View File

@ -1248,12 +1248,18 @@ submittojoinclass=(value)=>{
{ user===undefined?
<span className="font-15 fr mt17 ml5 mr25">
<a onClick={()=>this.educoderlogin()} className="mr5 color-white">登录</a>
<em className="vertical-line"></em>
<a href={"/register"} className="mr5 color-white">注册</a>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url &&
<span><em className="vertical-line"></em><a href={`${mygetHelmetapi2.new_course.register_url}`} target="_blank"></a></span>
}
</span> :user.login===""?<span className="font-15 fr mt17 ml5 mr25">
<a onClick={()=>this.educoderlogin()} className="mr5 color-white">登录</a>
<em className="vertical-line"></em>
<a href={"/register"} className="mr5 color-white">注册</a>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url &&
<span><em className="vertical-line"></em><a href={`${mygetHelmetapi2.new_course.register_url}`} target="_blank"></a></span>
}
{/*<em className="vertical-line"></em>*/}
{/*<a href={"/register"} className="mr5 color-white">注册</a>*/}
</span>:
<div className="fr edu-menu-panel mr25" style={{height:'60px'}}>
<a href={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`} className="fl ml15">
@ -1263,19 +1269,19 @@ submittojoinclass=(value)=>{
</a>
<ul className="edu-menu-list" style={{top:'60px', 'text-align': 'center'}}>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course.edit_account &&
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.edit_account &&
<li><a href={`${mygetHelmetapi2.new_course.edit_account}`} target="_blank">修改资料</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course.my_courses &&
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_courses &&
<li><a href={`${mygetHelmetapi2.new_course.my_courses}`} target="_blank">我的课程</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course.my_projects &&
<li><a href={`${mygetHelmetapi2.new_course.my_projects}`} target="_blank">我的项目</a></li>
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_projects &&
<li><Link to={`${mygetHelmetapi2.new_course.my_projects}`} >我的项目</Link></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course.my_organ &&
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_organ &&
<li><a href={`${mygetHelmetapi2.new_course.my_organ}`} target="_blank">我的组织</a></li>
}
{/*<span className="bor-bottom-greyE currentName task-hide">{user.username}</span>*/}
@ -1344,8 +1350,14 @@ submittojoinclass=(value)=>{
{/*pathstype===true?"":this.props.user&&this.props.user.admin===true||this.props.user&&this.props.user.is_teacher===true||this.props.user&&this.props.user.business===true?<li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li>:""*/}
{/*}*/}
{/*{this.props.user&&this.props.user.login?<li><a onClick={(url)=>this.getUser("/projects/new","projects")} target="_blank">新建开发项目</a></li>:""}*/}
<li><a href={`${mygetHelmetapi2.new_course.new_syllabuses}`} target="_blank">新建课程</a></li>
<li><a href={`${mygetHelmetapi2.new_course.new_course}`} target="_blank">新建班级</a></li>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_syllabuses &&
<li><a href={`${mygetHelmetapi2.new_course.new_syllabuses}`} target="_blank">新建课程</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_course &&
<li><a href={`${mygetHelmetapi2.new_course.new_course}`} target="_blank">新建班级</a></li>
}
</ul>
{coursestypes===true&&this.props.user&&this.props.user.main_site===false?"":<ul className="fl with50 edu-txt-center">
<li><Link to={"/projects/mirror/new"}>新建镜像项目</Link></li>

View File

@ -47,6 +47,10 @@ const InfosTopics=Loadable({
loader: () => import('./InfosTopics'),
loading:Loading,
})
const UserProjects = Loadable({
loader: () => import('./Projects'),
loading: Loading,
})
const $ = window.$;
class Infos extends Component{
@ -295,11 +299,16 @@ class Infos extends Component{
></Route>
{/* 开发项目 */}
<Route exact path="/users/:username/projects"
render={
(props) => (<InfosProject {...this.props} {...props} {...this.state} {..._commonProps}/>)
}
></Route>
{/*<Route exact path="/users/:username/projects"*/}
{/*render={*/}
{/*(props) => (<InfosProject {...this.props} {...props} {...this.state} {..._commonProps}/>)*/}
{/*}*/}
{/*></Route>*/}
<Route exact path="/users/:username/projects"
render={
(props) => (<UserProjects {...this.props} {...props} {...this.state} {..._commonProps}/>)
}
></Route>
{/* 众包 */}
{/* http://localhost:3007/courses/1309/homework/9300/setting */}

View File

@ -0,0 +1,392 @@
import React, { Component } from 'react';
import { SnackbarHOC } from 'educoder';
import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
import {Tooltip, Pagination, Spin, Dropdown, Menu} from 'antd';
import axios from 'axios';
import NoneData from '../../courses/coursesPublic/NoneData'
import {getImageUrl} from 'educoder';
import "./usersInfo.css"
import Create from './publicCreatNew'
class Projects extends Component{
constructor(props){
super(props);
this.state={
category:undefined,
status:undefined,
page:1,
per_page:16,
sort_by: "updated_on",
sort_direction: "desc",
totalCount:undefined,
data:undefined,
isSpin:false
}
}
componentDidMount=()=>{
this.setState({
isSpin:true
})
let {category, status, page, sort_by, sort_direction} = this.state;
this.getCourses(category, status, page, sort_by, sort_direction);
}
getCourses = (category, status, page, sort_by, sort_direction) => {
let url=`/users/projects.json`;
axios.get((url),{params:{
category,
status,
page,
sort_by,
sort_direction,
per_page:this.props.is_current && category && page ==1?17:16
}}).then((result)=>{
if(result){
if (result.data.status === 403||result.data.status === 401||result.data.status === 500||result.data.status === 404) {
this.setState({
isSpin:false,
totalCount:0
})
}else{
this.setState({
totalCount:result.data.count,
data:result.data,
sort_by: sort_by,
sort_direction: sort_direction,
isSpin:false
})
}
}
}).catch((error)=>{
console.log(error);
this.setState({
isSpin: false
})
})
}
//切换种类
changeCategory=(cate)=>{
this.setState({
category:cate,
page:1,
isSpin:true
})
let {status, sort_by, sort_direction} = this.state;
this.getCourses(cate, status, 1, sort_by,
sort_direction);
}
//切换状态
changeStatus=(status)=>{
this.setState({
status:status,
page:1,
isSpin:true
})
let {
category, sort_by,
sort_direction
} = this.state;
this.getCourses(category, status, 1, sort_by,
sort_direction);
}
//切换页数
changePage=(page)=>{
this.setState({
page,
isSpin:true
})
let {
category, status, sort_by,
sort_direction
} = this.state;
this.getCourses(category, status, page, sort_by,
sort_direction);
}
// 进入项目
turnToCourses=(url,flag)=>{
if(flag){
window.location.href=url;
}
}
//切换种类
updatedlist(sort_by) {
//按照什么样子排序
this.setState({
isSpin: true
});
let {category, status, page, sort_direction} = this.state;
this.getCourses(category, status, 1, sort_by, "desc");
}
//排序
updatedlists(sort_directions) {
//是否是倒序
this.setState({
isSpin: true
});
let {category, status, page, sort_by, sort_direction} = this.state;
let sort_directiony = sort_directions;
if (sort_directions === "asc") {
if (sort_directions === sort_direction) {
sort_directiony = "desc"
}
} else if (sort_directions === "desc") {
if (sort_directions === sort_direction) {
sort_directiony = "asc"
}
}
this.getCourses(category, status, page, sort_by, sort_directiony);
}
render(){
let{
category,
status,
page,
data,
totalCount,
isSpin,
sort_by,
sort_direction
} = this.state;
let isStudent = this.props.isStudent();
let is_current=this.props.is_current;
const {current_user} = this.props
console.log("current_user", current_user)
const menu = (
<Menu>
<Menu.Item onClick={() => this.updatedlist("updated_on")}>
最新动态
</Menu.Item>
<Menu.Item onClick={() => this.updatedlist("created_on")}>
最新创建
</Menu.Item>
</Menu>
);
return(
<div className="educontent">
<Spin size="large" spinning={isSpin}>
<style>
{
`
.whitepanelyslli {
width: 32px !important;
height: 48px !important;
line-height: 46px !important;
}
.whitepanelyslliss {
width: 32px !important;
height: 48px !important;
line-height: 46px !important;
}
.whitepanelysllis {
width: 66px !important;
height: 48px !important;
line-height: 46px !important;
margin-left: 40px !important;
}
.whitepanelysllisyt {
width: 60px !important;
height: 48px !important;
line-height: 46px !important;
margin-left: 40px !important;
}
.white-panel li.active {
border-radius: 24px;
border: none !important;
color: #4CACFF;
}
`
}
</style>
<div className="white-panel edu-back-white pt20 pb20 clearfix ">
<li className={category ? " font-16 whitepanelyslli" : "active font-16 whitepanelyslli"}><a
href="javascript:void(0)" onClick={() => this.changeCategory()} className="font-16 w32">全部</a></li>
<li className={category == "manage" ? "active font-16 whitepanelysllis" : "font-16 whitepanelysllis"}><a
href="javascript:void(0)" onClick={() => this.changeCategory("manage")}
className={is_current ? "font-16 w66" : "font-16 w80"}>{is_current ? "我" : "TA"}管理的</a></li>
<li className={category == "study" ? "active font-16 whitepanelysllis" : "font-16 whitepanelysllis"}><a
href="javascript:void(0)" onClick={() => this.changeCategory("study")}
className={is_current ? "font-16 w66" : "font-16 w80"}>{is_current ? "我" : "TA"}学习的</a></li>
</div>
<style>
{
` .secondNavs li {
color: #676767;
/* margin: 0px 20px; */
float: left;
}
.secondNavs li a:hover{
color: #4CACFF
}
.secondNavs li.active a{
color: #4CACFF
}
`
}
</style>
{
is_current &&
<div className="edu-back-white padding10-30 clearfix secondNavs bor-top-greyE">
<li className={status ? "whitepanelyslliss" : "active whitepanelyslliss"}><a href="javascript:void(0)"
onClick={() => this.changeStatus()}
className=" w32">全部</a></li>
<li className={status == "publicly" ? "active whitepanelysllisyt" : "whitepanelysllisyt"}><a
href="javascript:void(0)" onClick={() => this.changeStatus("publicly")} className=" w60">公开</a></li>
<li className={status == "personal" ? "active whitepanelysllisyt" : "whitepanelysllisyt"}><a
href="javascript:void(0)" onClick={() => this.changeStatus("personal")} className=" w60">私有</a></li>
</div>
}
<p className="clearfix font-12 " style={{
lineHeight: "41px",
marginTop: "10px",
}}>
<span className="fl color-grey-9">共参与{totalCount}{category?category=="manage"?"发布":"学习":"项目"}</span>
<sapn className="relativef color-grey-9 fr"
style={{
display: "flex",
flexDirection: "column",
height: "40px",
lineHeight: "40px",
}}
>
<span
style={{
flexDirection: "column",
textAlign: "center",
height: "10px",
lineHeight: "10px",
display: "table",
marginTop: "9px",
}}
>
<i className={sort_direction === "asc" ?
"iconfont icon-sanjiaoxing-up font-12 color-blue h10 " : "iconfont icon-sanjiaoxing-up font-12 h10"}
onClick={() => this.updatedlists("asc")}></i>
</span>
<span
style={{
flexDirection: "column",
height: "10px",
lineHeight: "10px",
textAlign: "center",
display: "table",
}}
>
<i className={sort_direction === "desc" ?
"iconfont icon-sanjiaoxing-down font-12 yslbottomsj color-blue h10" : "iconfont icon-sanjiaoxing-down font-12 yslbottomsj h10"}
onClick={() => this.updatedlists("desc")}></i>
</span>
</sapn>
<Dropdown overlay={menu}>
<span className="fr color-grey-9 mr10 pointer " style={{
display: "flex",
flexDirection: "initial",
}}>
<span>{sort_by === "updated_on" ? '最近更新' : sort_by === "created_on" ? '最新创建' : ""}</span>
</span>
</Dropdown>
</p>
<style>
{
`
.square-list{width: 100%;box-sizing: border-box;margin-top:10px}
`
}
</style>
<div className="square-list clearfix">
{/* 289 */}
{
page == 1 && is_current ?
<Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建开发项目"} index="4" Createtype={"projects"}
{...this.props} {...this.state}
></Create>:""
}
{
(!data || (data && data.projects.length==0)) && category && <NoneData></NoneData>
}
{
data===undefined||data.projects.length===0?category=="manage"||category=="study"?"":<NoneData></NoneData>:""
}
{
data && data.projects && data.projects.map((item,key)=>{
return(
<div className="square-Item" onClick={()=>this.turnToCourses(`/projects/${item.id}`,item.can_visited)} style={{"cursor": "pointer","height":"289px"}}>
{
item.is_public==1 &&
<React.Fragment>
<div className="publicpart"></div>
<span className="smalltrangle"></span>
<span className="publicword">公开</span>
</React.Fragment>
}
{
item.can_visited ==false?
<div className="closeSquare">
<img src={getImageUrl("images/educoder/icon/lockclose.svg")} className="mt80 mb25"/>
<p className="font-14 color-white">非成员不能访问</p>
</div>:""
}
<div className="substance">
<p className="subName font-16">
<span>{item.name}</span>
</p>
<span><img alt="用户" className="radius mt15" height="60" src={getImageUrl(`images/${item.owner.avatar_url}`)} width="60"/></span>
<p className="font-14 mt10 task-hide"><span>{item.owner.real_name}</span></p>
<p className="font-16 mb15 mt10 task-hide"><span className="color-grey-9">{item.owner.school_name}</span></p>
</div>
<div className="edu-txt-center course-bottom">
<div className="inline color-grey-6">
{
item.members_count > 0 &&
<span className="mr10 ml10 fl squareIconSpan">
<i className="iconfont icon-chengyuan fl mr3" data-tip-down="成员"></i>{item.members_count}</span>
}
{
item.issues_count > 0 &&
<span className="mr10 ml10 fl squareIconSpan">
<i className="iconfont icon-issue fl mr3" data-tip-down="issues数"></i>{item.issues_count}</span>
}
{
item.changesets_count > 0 &&
<span className="mr10 ml10 fl squareIconSpan">
<i className="iconfont icon-banbenku fl mr3" data-tip-down="版本库"></i>{item.changesets_count}</span>
}
</div>
</div>
</div>
)
})
}
</div>
{
totalCount > 15 &&
<div className="mt30 mb50 edu-txt-center">
<Pagination showQuickJumper total={totalCount} onChange={this.changePage} pageSize={16} current={page}/>
</div>
}
</Spin>
</div>
)
}
}
export default Projects;