forked from Gitlink/forgeplus-react
Merge branch 'develop' of http://git.trustie.net/jasder/forgeplus-react into develop
# Conflicts: # src/modules/tpm/NewHeader.js
This commit is contained in:
commit
969863f5a1
|
@ -2,8 +2,7 @@
|
|||
<project version="4">
|
||||
<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" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -30,8 +29,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" 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 +43,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="220">
|
||||
<caret line="1264" column="133" selection-start-line="1264" selection-start-column="133" selection-end-line="1264" selection-end-column="133" />
|
||||
<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" 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" 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 +132,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 +156,12 @@
|
|||
<find>edu-menu-list</find>
|
||||
<find>ver</find>
|
||||
<find>new_header.js</find>
|
||||
<find>new_course</find>
|
||||
<find>/projects"</find>
|
||||
<find>我的</find>
|
||||
<find>/projects</find>
|
||||
<find>mygetHelmetapi2.new_course</find>
|
||||
<find>注册</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>任务</replace>
|
||||
|
@ -153,16 +219,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 +264,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 +301,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 +359,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="7753000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="141644000" />
|
||||
<option name="totallyTimeSpent" value="147779000" />
|
||||
</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 +383,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.4927711" />
|
||||
<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 +446,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 +696,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 +820,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 +839,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 +851,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" 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" 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" 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="220">
|
||||
<caret line="1264" column="133" selection-start-line="1264" selection-start-column="133" selection-end-line="1264" selection-end-column="133" />
|
||||
<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>
|
||||
|
|
|
@ -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 className="mr5 color-white" 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 className="mr5 color-white" 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">
|
||||
|
@ -1272,7 +1278,7 @@ submittojoinclass=(value)=>{
|
|||
}
|
||||
{
|
||||
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_projects &&
|
||||
<li><a href={`${mygetHelmetapi2.new_course.my_projects}`} target="_blank">我的项目</a></li>
|
||||
<li><Link to={`${mygetHelmetapi2.new_course.my_projects}`} >我的项目</Link></li>
|
||||
}
|
||||
{
|
||||
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_organ &&
|
||||
|
@ -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 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_syllabuses}`} target="_blank">新建课程</a></li>
|
||||
<li><a href={`${mygetHelmetapi2 && mygetHelmetapi2.new_course && 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>
|
||||
|
|
|
@ -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 */}
|
||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue