forked from Gitlink/forgeplus-react
Merge branch 'develop' of http://git.trustie.net/jasder/forgeplus-react into develop
# Conflicts: # src/forge/Main/Detail.js
This commit is contained in:
commit
ac5cf6bde7
|
@ -10,116 +10,11 @@
|
|||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Setting.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="145" column="58" selection-start-line="145" selection-start-column="58" selection-end-line="145" selection-end-column="58" />
|
||||
<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/Order/Milepost.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-513">
|
||||
<caret line="97" selection-start-line="97" selection-end-line="97" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Collaborator.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="253">
|
||||
<caret line="17" column="37" lean-forward="true" selection-start-line="17" selection-start-column="37" selection-end-line="17" selection-end-column="37" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MessageCount.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="65" column="28" lean-forward="true" selection-start-line="65" selection-start-column="28" selection-end-line="65" selection-end-column="28" />
|
||||
<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/Main/CoderRootFileDetail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="98">
|
||||
<caret line="110" column="77" selection-start-line="110" selection-start-column="67" selection-end-line="110" selection-end-column="77" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/New/Index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="199">
|
||||
<caret line="245" column="59" lean-forward="true" selection-start-line="245" selection-start-column="59" selection-end-line="245" selection-end-column="59" />
|
||||
<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/Version/version.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="61">
|
||||
<caret line="91" column="34" selection-start-line="91" selection-start-column="34" selection-end-line="91" selection-end-column="34" />
|
||||
<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/Order/order.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2193">
|
||||
<caret line="352" column="14" selection-start-line="352" selection-start-column="14" selection-end-line="352" selection-end-column="14" />
|
||||
<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/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="461">
|
||||
<caret line="41" column="22" selection-start-line="41" selection-start-column="22" selection-end-line="41" selection-end-column="22" />
|
||||
<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/Order/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="246">
|
||||
<caret line="504" column="20" selection-start-line="504" selection-start-column="20" selection-end-line="504" selection-end-column="20" />
|
||||
<state relative-caret-position="206">
|
||||
<caret line="594" lean-forward="true" selection-start-line="594" selection-end-line="594" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
|
@ -131,36 +26,36 @@
|
|||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>Educoder</find>
|
||||
<find>title</find>
|
||||
<find>textcount</find>
|
||||
<find>forks</find>
|
||||
<find>commentCtx</find>
|
||||
<find>上传文件</find>
|
||||
<find>subFileType</find>
|
||||
<find>.ide</find>
|
||||
<find>.idea</find>
|
||||
<find>deleteUser</find>
|
||||
<find>axios.delete</find>
|
||||
<find>style=</find>
|
||||
<find>width75f</find>
|
||||
<find>max-width</find>
|
||||
<find>请输入合并</find>
|
||||
<find>journal-list-item</find>
|
||||
<find>issue-tag-show</find>
|
||||
<find>创建</find>
|
||||
<find>.map((item,key)=>{</find>
|
||||
<find>.map((item,key)</find>
|
||||
<find>评论成</find>
|
||||
<find>该合并请求可以进行自动合并操作</find>
|
||||
<find>没有</find>
|
||||
<find>创建工单</find>
|
||||
<find>可读权限</find>
|
||||
<find>sub_entries</find>
|
||||
<find>可读</find>
|
||||
<find>icon-bianji</find>
|
||||
<find>readOnly</find>
|
||||
<find>isRe</find>
|
||||
<find>icon-bianji</find>
|
||||
<find>可读</find>
|
||||
<find>journals_count ></find>
|
||||
<find>readOnly</find>
|
||||
<find>Fork</find>
|
||||
<find>forked</find>
|
||||
<find>.OptionsUl</find>
|
||||
<find>tyle=</find>
|
||||
<find>overflo</find>
|
||||
<find><span className="span_title">里程碑</span></find>
|
||||
<find><span className="span_title">里程碑</find>
|
||||
<find>分支合并到</find>
|
||||
<find>Input</find>
|
||||
<find>新建标签</find>
|
||||
<find>orderid</find>
|
||||
<find>deletedetail</find>
|
||||
<find>onMouseMove</find>
|
||||
<find>commitKey</find>
|
||||
<find>TextArea</find>
|
||||
<find>body</find>
|
||||
<find>该合并请求可以进行自动合并操作</find>
|
||||
<find>title</find>
|
||||
<find>changbodypr</find>
|
||||
</findStrings>
|
||||
<dirStrings>
|
||||
<dir>$PROJECT_DIR$</dir>
|
||||
|
@ -176,10 +71,8 @@
|
|||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/src/AppConfig.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/NewVersion.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/newMilepost.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Index.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Tags.js" />
|
||||
<option value="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/New.js" />
|
||||
|
@ -187,35 +80,42 @@
|
|||
<option value="$PROJECT_DIR$/src/forge/Order/CopyDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/NewMerge.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/MergeSubmit.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Settings/Setting.js" />
|
||||
<option value="$PROJECT_DIR$/.gitignore" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Newfile/UserSubmitComponent.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Settings/Collaborator.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/merge.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Activity/Activity.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/merge.css" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/version.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Milepost.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/New/Index.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Settings/Collaborator.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Settings/setting.css" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/OrderItem.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/merge.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/order.css" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/MergeDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/version.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/MessageCount.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Milepost.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/New/Index.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/NewVersion.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/MergeItem.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/UpdateVersion.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Branch/branch.css" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/MessageCount.js" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" fullScreen="true">
|
||||
<option name="y" value="23" />
|
||||
<option name="width" value="1440" />
|
||||
<option name="height" value="900" />
|
||||
<option name="height" value="877" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
|
@ -239,19 +139,13 @@
|
|||
<item name="forgeplus-react" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="forge" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="New" 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="forge" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Settings" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Merge" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
|
@ -300,18 +194,19 @@
|
|||
<workItem from="1585217705353" duration="104000" />
|
||||
<workItem from="1585217834609" duration="4000" />
|
||||
<workItem from="1585217980103" duration="3406000" />
|
||||
<workItem from="1585288258489" duration="15174000" />
|
||||
<workItem from="1585288258489" duration="17495000" />
|
||||
<workItem from="1585732642767" duration="10719000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="50215000" />
|
||||
<option name="totallyTimeSpent" value="63255000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.16881259" />
|
||||
<window_info content_ui="combo" id="Project" order="0" weight="0.17095852" />
|
||||
<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" />
|
||||
|
@ -323,8 +218,8 @@
|
|||
<window_info anchor="bottom" id="TODO" order="6" />
|
||||
<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.4566265" />
|
||||
<window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.38795182" />
|
||||
<window_info anchor="bottom" id="Version Control" order="9" weight="0.61566263" />
|
||||
<window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.48433736" />
|
||||
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||
|
@ -370,27 +265,22 @@
|
|||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="RECENT_FILTERS">
|
||||
<map>
|
||||
<entry key="Branch">
|
||||
<value>
|
||||
<list />
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="User">
|
||||
<value>
|
||||
<list />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/UpdateVersion.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-755">
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/NewVersion.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="698">
|
||||
<caret line="67" column="25" lean-forward="true" selection-start-line="67" selection-start-column="25" selection-end-line="67" selection-end-column="25" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/newMilepost.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="87">
|
||||
|
@ -453,17 +343,6 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Tags.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
<caret line="319" column="18" selection-start-line="319" selection-start-column="18" selection-end-line="319" selection-end-column="18" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#6599#6910#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/quillForEditor/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="125">
|
||||
|
@ -549,34 +428,6 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/DetailTop.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</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="-3990">
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="4777">
|
||||
<caret line="303" column="11" selection-start-line="303" selection-start-column="11" selection-end-line="303" selection-end-column="11" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.idea/workspace.xml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-9766" />
|
||||
|
@ -628,15 +479,6 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-12">
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/NewMerge.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1216">
|
||||
|
@ -666,43 +508,6 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="204">
|
||||
<caret line="464" column="1" lean-forward="true" selection-start-line="464" selection-start-column="1" selection-end-line="464" selection-end-column="1" />
|
||||
</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="143">
|
||||
<caret line="244" column="11" selection-start-line="244" selection-start-column="11" selection-end-line="244" selection-end-column="11" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MessageCount.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="63">
|
||||
<caret line="580" column="22" selection-start-line="580" selection-start-column="22" selection-end-line="580" selection-end-column="22" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#16273#18539#0" />
|
||||
<element signature="e#17250#18162#0" />
|
||||
<element signature="e#18177#18487#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/merge.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="432">
|
||||
<caret line="299" column="61" selection-start-line="299" selection-start-column="61" selection-end-line="299" selection-end-column="61" />
|
||||
</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="-3903">
|
||||
|
@ -722,20 +527,10 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/New/Index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2193">
|
||||
<caret line="352" column="14" selection-start-line="352" selection-start-column="14" selection-end-line="352" selection-end-column="14" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="461">
|
||||
<caret line="41" column="22" selection-start-line="41" selection-start-column="22" selection-end-line="41" selection-end-column="22" />
|
||||
<state relative-caret-position="199">
|
||||
<caret line="245" column="59" selection-start-line="245" selection-start-column="59" selection-end-line="245" selection-end-column="59" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
|
@ -744,24 +539,76 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="246">
|
||||
<caret line="504" column="20" selection-start-line="504" selection-start-column="20" selection-end-line="504" selection-end-column="20" />
|
||||
<state relative-caret-position="235">
|
||||
<caret line="102" column="27" selection-start-line="102" selection-start-column="27" selection-end-line="102" selection-end-column="27" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/version.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/DetailTop.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="61">
|
||||
<caret line="91" column="34" selection-start-line="91" selection-start-column="34" selection-end-line="91" selection-end-column="34" />
|
||||
<state relative-caret-position="306">
|
||||
<caret line="18" column="10" selection-start-line="18" selection-start-column="10" selection-end-line="18" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</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="267">
|
||||
<caret line="188" column="19" selection-start-line="188" selection-start-column="19" selection-end-line="188" selection-end-column="19" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Collaborator.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="109">
|
||||
<caret line="189" column="35" lean-forward="true" selection-start-line="189" selection-start-column="35" selection-end-line="189" selection-end-column="35" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
<element signature="e#4421#5690#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="225">
|
||||
<caret line="245" column="39" lean-forward="true" selection-start-line="245" selection-start-column="39" selection-end-line="245" selection-end-column="39" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/merge.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="246">
|
||||
<caret line="295" column="142" selection-start-line="295" selection-start-column="142" selection-end-line="295" selection-end-column="142" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Settings/setting.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="47" column="22" selection-start-line="47" selection-start-column="22" selection-end-line="47" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="150">
|
||||
<caret line="166" column="16" selection-start-line="166" selection-start-column="16" selection-end-line="166" selection-end-column="16" />
|
||||
</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="144">
|
||||
|
@ -772,39 +619,116 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Collaborator.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/version.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="253">
|
||||
<caret line="17" column="37" lean-forward="true" selection-start-line="17" selection-start-column="37" selection-end-line="17" selection-end-column="37" />
|
||||
<state relative-caret-position="354">
|
||||
<caret line="145" column="6" selection-start-line="145" selection-start-column="6" selection-end-line="145" selection-end-column="6" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Tags.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="284">
|
||||
<caret line="354" column="57" selection-start-line="354" selection-start-column="43" selection-end-line="354" selection-end-column="57" />
|
||||
<folding>
|
||||
<element signature="e#0#40#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="182">
|
||||
<caret line="257" column="23" selection-start-line="257" selection-start-column="23" selection-end-line="257" selection-end-column="23" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="427" column="36" selection-start-line="427" selection-start-column="36" selection-end-line="427" selection-end-column="36" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-40">
|
||||
<caret line="63" column="21" selection-start-line="63" selection-start-column="21" selection-end-line="63" selection-end-column="21" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="308">
|
||||
<caret line="80" column="26" selection-start-line="80" selection-start-column="26" selection-end-line="80" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/NewVersion.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="256">
|
||||
<caret line="163" column="58" selection-start-line="163" selection-start-column="44" selection-end-line="163" selection-end-column="58" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Version/UpdateVersion.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="115">
|
||||
<caret line="155" column="20" selection-start-line="155" selection-start-column="20" selection-end-line="155" selection-end-column="20" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Branch/branch.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="291">
|
||||
<caret line="27" column="15" selection-start-line="27" selection-start-column="15" selection-end-line="27" selection-end-column="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="98">
|
||||
<caret line="110" column="77" selection-start-line="110" selection-start-column="67" selection-end-line="110" selection-end-column="77" />
|
||||
<state relative-caret-position="252">
|
||||
<caret line="91" column="17" lean-forward="true" selection-start-line="91" selection-start-column="17" selection-end-line="91" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/New/Index.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="199">
|
||||
<caret line="245" column="59" lean-forward="true" selection-start-line="245" selection-start-column="59" selection-end-line="245" selection-end-column="59" />
|
||||
<state relative-caret-position="282">
|
||||
<caret line="241" column="69" lean-forward="true" selection-start-line="241" selection-start-column="69" selection-end-line="241" selection-end-column="69" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MessageCount.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="65" column="28" lean-forward="true" selection-start-line="65" selection-start-column="28" selection-end-line="65" selection-end-column="28" />
|
||||
<state relative-caret-position="206">
|
||||
<caret line="594" lean-forward="true" selection-start-line="594" selection-end-line="594" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
|
|
@ -15,7 +15,8 @@ class CloneAddress extends Component{
|
|||
const { http_url , downloadUrl } = this.props;
|
||||
return(
|
||||
<div className="gitAddressClone">
|
||||
<span className={"addressType active"} onClick={()=>this.changeAddress("http")}>HTTP</span>
|
||||
{/* onClick={()=>this.changeAddress("http")} */}
|
||||
<span>HTTP</span>
|
||||
{/* <span className={address ==="ssh" ? "addressType active":"addressType"} onClick={()=>this.changeAddress("ssh")}>SSH</span> */}
|
||||
<input type="text" id="copy_rep_content" value={ http_url }/>
|
||||
<Tooltip title="复制链接">
|
||||
|
|
|
@ -17,20 +17,22 @@
|
|||
box-shadow: 0px 0px 1px 1px rgba(134, 134, 134, 0.1);
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
max-height: 200px;
|
||||
max-height: 300px;
|
||||
}
|
||||
.OptionsUl{
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.OptionsUl li{
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
cursor: pointer;;
|
||||
height: 30px;
|
||||
/*line-height: 22px;*/
|
||||
cursor: pointer;
|
||||
}
|
||||
.OptionsUl li a{
|
||||
display: block;
|
||||
padding-left: 2px;
|
||||
padding: 4px;
|
||||
/*padding-left: 2px;*/
|
||||
}
|
||||
.OptionsInput{
|
||||
height: 32px;
|
||||
|
|
|
@ -48,6 +48,7 @@ class CoderRootDirectory extends Component{
|
|||
}
|
||||
|
||||
componentDidMount=()=>{
|
||||
|
||||
let { search } = this.props.history.location;
|
||||
let branchName = undefined;
|
||||
if(search && search.indexOf("branch")>-1){
|
||||
|
@ -63,7 +64,6 @@ class CoderRootDirectory extends Component{
|
|||
// 获取根目录
|
||||
getProjectRoot=(branch)=>{
|
||||
const { projectsId } = this.props.match.params;
|
||||
console.log(this.props);
|
||||
const url = `/repositories/${projectsId}/entries.json`;
|
||||
axios.get((url),{
|
||||
params:{
|
||||
|
@ -89,6 +89,7 @@ class CoderRootDirectory extends Component{
|
|||
|
||||
ChangeFile=(arr,index)=>{
|
||||
this.renderUrl(arr.name,arr.path,arr.type);
|
||||
//点击直接跳转页面 加载一次路由
|
||||
this.getFileDetail(arr);
|
||||
this.setState({
|
||||
subFileType:arr.type
|
||||
|
@ -125,8 +126,6 @@ class CoderRootDirectory extends Component{
|
|||
getFileDetail=(arr)=>{
|
||||
const { projectsId } = this.props.match.params;
|
||||
const { branch } = this.state;
|
||||
|
||||
|
||||
const url =`/repositories/${projectsId}/sub_entries.json`;
|
||||
|
||||
axios.get(url,{
|
||||
|
@ -142,6 +141,10 @@ class CoderRootDirectory extends Component{
|
|||
rootList:undefined
|
||||
})
|
||||
}else{
|
||||
if(arr.type===""){
|
||||
this.props.showNotification('该文件夹下已无文件')
|
||||
return
|
||||
}
|
||||
this.setState({
|
||||
fileDetail:undefined
|
||||
})
|
||||
|
|
|
@ -0,0 +1,333 @@
|
|||
import React , { Component } from 'react';
|
||||
import {Menu, Spin} from 'antd';
|
||||
import { getImageUrl , markdownToHTML } from 'educoder';
|
||||
import { Router , Route , Link } from 'react-router-dom';
|
||||
import Top from './DetailTop';
|
||||
|
||||
import './list.css';
|
||||
|
||||
import SelectBranch from '../Branch/SelectBranch';
|
||||
import CloneAddress from '../Branch/CloneAddress';
|
||||
import RootTable from './RootTable';
|
||||
import CoderRootFileDetail from './CoderRootFileDetail';
|
||||
import NullData from './NullData';
|
||||
|
||||
import axios from 'axios';
|
||||
/**
|
||||
* address:http和SSH,http_url(对应git地址)
|
||||
* branch:当前分支
|
||||
* filePath:点击目录时当前目录的路径
|
||||
* subfileType:保存当前点击目录的文件类型(显示目录列表时才显示新建文件,如果点击的是文件就不显示新建文件按钮)
|
||||
* readMeContent:根目录下面的readme文件内容
|
||||
*/
|
||||
class CoderRootDirectorytext extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
address:"http",
|
||||
branch:"master",
|
||||
filePath:[],
|
||||
http_url:undefined,
|
||||
subFileType:"",
|
||||
readMeContent:undefined,
|
||||
|
||||
isSpin:true,
|
||||
|
||||
branchList:undefined,
|
||||
fileDetail:undefined,
|
||||
branchLastCommit:undefined,
|
||||
|
||||
rootData:undefined
|
||||
}
|
||||
}
|
||||
changeAddress=(address)=>{
|
||||
this.setState({
|
||||
address
|
||||
})
|
||||
}
|
||||
|
||||
componentDidMount=()=>{
|
||||
|
||||
let { search } = this.props.history.location;
|
||||
let branchName = undefined;
|
||||
if(search && search.indexOf("branch")>-1){
|
||||
branchName = search.split("=")[1];
|
||||
this.setState({
|
||||
branch:branchName
|
||||
})
|
||||
}
|
||||
const { branch } = this.state;
|
||||
this.getProjectRoot(branchName || branch);
|
||||
}
|
||||
|
||||
// 获取根目录
|
||||
getProjectRoot=(branch)=>{
|
||||
const { projectsId } = this.props.match.params;
|
||||
const url = `/repositories/${projectsId}/entries.json`;
|
||||
axios.get((url),{
|
||||
params:{
|
||||
branch
|
||||
}
|
||||
}).then((result)=>{
|
||||
if(result){
|
||||
if(result && result.data && result.data.length > 0){
|
||||
this.setState({
|
||||
filePath:[],
|
||||
fileDetail:undefined,
|
||||
isSpin: false
|
||||
})
|
||||
this.renderData(result.data);
|
||||
}
|
||||
this.setState({
|
||||
rootData:result.data
|
||||
})
|
||||
}
|
||||
|
||||
}).catch((error)=>{})
|
||||
}
|
||||
|
||||
ChangeFile=(arr,index)=>{
|
||||
this.renderUrl(arr.name,arr.path,arr.type);
|
||||
//点击直接跳转页面 加载一次路由
|
||||
this.getFileDetail(arr);
|
||||
this.setState({
|
||||
subFileType:arr.type
|
||||
})
|
||||
}
|
||||
|
||||
renderUrl=(name,path,type)=>{
|
||||
let list =[];
|
||||
const { filePath } = this.state;
|
||||
if(path.indexOf("/")){
|
||||
const array = path.split("/");
|
||||
let str = "";
|
||||
array.map((i,k)=>{
|
||||
str += '/'+i;
|
||||
return list.push({
|
||||
index:k,
|
||||
name:i,
|
||||
path:str.substr(1),
|
||||
type:(filePath && filePath.length>0) ? (filePath[k] ? filePath[k].type : type) : type
|
||||
})
|
||||
})
|
||||
}else{
|
||||
list.push({
|
||||
index:0,
|
||||
name,path,type
|
||||
})
|
||||
}
|
||||
this.setState({
|
||||
filePath:list
|
||||
})
|
||||
}
|
||||
|
||||
// 获取子目录
|
||||
getFileDetail=(arr)=>{
|
||||
const { projectsId } = this.props.match.params;
|
||||
const { branch } = this.state;
|
||||
const url =`/repositories/${projectsId}/sub_entries.json`;
|
||||
|
||||
axios.get(url,{
|
||||
params:{
|
||||
filepath:arr.path,
|
||||
ref:branch
|
||||
}
|
||||
}).then((result)=>{
|
||||
if(result && result.data && result.data.length > 0){
|
||||
if(arr.type==="file"){
|
||||
this.setState({
|
||||
fileDetail:result.data[0],
|
||||
rootList:undefined
|
||||
})
|
||||
}else{
|
||||
if(arr.type===""){
|
||||
this.props.showNotification('该文件夹下已无文件')
|
||||
return
|
||||
}
|
||||
this.setState({
|
||||
fileDetail:undefined
|
||||
})
|
||||
this.renderData(result.data)
|
||||
}
|
||||
}
|
||||
}).catch((error)=>{
|
||||
console.log(error);
|
||||
})
|
||||
}
|
||||
|
||||
renderData=(data)=>{
|
||||
const rootList = [];
|
||||
const readMeContent = [];
|
||||
data && data.map((item,key)=>{
|
||||
rootList.push({
|
||||
key,
|
||||
...item
|
||||
})
|
||||
if(item.name === 'README.md'){
|
||||
readMeContent.push({...item})
|
||||
}
|
||||
})
|
||||
this.setState({
|
||||
rootList:rootList,
|
||||
readMeContent
|
||||
})
|
||||
}
|
||||
|
||||
// readme文件内容
|
||||
renderReadMeContent=(readMeContent)=>{
|
||||
const { fileDetail } = this.state;
|
||||
if(fileDetail){return;}
|
||||
if(readMeContent && readMeContent.length > 0){
|
||||
return(
|
||||
<div className="commonBox">
|
||||
<div className="commonBox-title">{readMeContent[0].name}</div>
|
||||
<div className="commonBox-info">
|
||||
{
|
||||
readMeContent[0].content ?
|
||||
<div className={"markdown-body"} dangerouslySetInnerHTML={{__html: markdownToHTML(readMeContent[0].content).replace(/▁/g, "▁▁▁")}}></div>
|
||||
:
|
||||
<span>暂无~</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// 选择分支
|
||||
changeBranch=(value)=>{
|
||||
const { branchList } = this.props;
|
||||
|
||||
let branchLastCommit = branchList && branchList.length >0 && branchList.filter(item=>item.name === value)[0];
|
||||
this.setState({
|
||||
branch:branchLastCommit && branchLastCommit.name,
|
||||
branchLastCommit,
|
||||
http_url:branchLastCommit && branchLastCommit.http_url,
|
||||
isSpin: true
|
||||
})
|
||||
this.getProjectRoot(branchLastCommit.name);
|
||||
|
||||
}
|
||||
render(){
|
||||
const { rootList , branch ,filePath , fileDetail , subFileType , readMeContent, isSpin , rootData } = this.state;
|
||||
const { branchLastCommit , http_url , isManager , isDeveloper } = this.props;
|
||||
const { projectsId } = this.props.match.params;
|
||||
|
||||
const columns = [
|
||||
{
|
||||
dataIndex: 'name',
|
||||
width:"100%",
|
||||
render: (text,item) => (
|
||||
<a onClick={()=>this.ChangeFile(item)}>
|
||||
<i className={ item.type === "file" ? "iconfont icon-zuoye font-15 color-blue mr5":"iconfont icon-wenjian font-15 color-blue mr5"}></i>{text}
|
||||
</a>
|
||||
),
|
||||
}
|
||||
];
|
||||
const title = () =>{
|
||||
if(branchLastCommit && branchLastCommit.last_commit){
|
||||
return(
|
||||
<div className="f-wrap-alignCenter">
|
||||
{
|
||||
branchLastCommit.author ?
|
||||
<React.Fragment>
|
||||
<img src={getImageUrl(`images/${branchLastCommit.author.image_url}`)} className="radius mr10" width="32" height="32" alt=""/>
|
||||
<span className="mr15">{branchLastCommit.author.login}</span>
|
||||
</React.Fragment>
|
||||
:""
|
||||
}
|
||||
<Link to={``} className="commitKey">{branchLastCommit.last_commit.id}</Link>
|
||||
<span className="color-blue flex-1 hide-1">{branchLastCommit.last_commit.message}</span>
|
||||
<span>{branchLastCommit.last_commit.time_from_now}</span>
|
||||
</div>
|
||||
)
|
||||
}else{
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
const downloadUrl = ()=>{
|
||||
if(branchLastCommit && branchLastCommit.zip_url){
|
||||
return(
|
||||
<Menu>
|
||||
<Menu.Item><a href={branchLastCommit.zip_url}>ZIP</a></Menu.Item>
|
||||
<Menu.Item><a href={branchLastCommit.tar_url}>TAR.GZ</a></Menu.Item>
|
||||
</Menu>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const urlRoot = filePath && filePath.length > 0 ? `/${filePath[filePath.length - 1].path}` : "";
|
||||
return(
|
||||
<React.Fragment>
|
||||
{
|
||||
rootData &&
|
||||
<React.Fragment>
|
||||
{
|
||||
rootData.length > 0 ?
|
||||
<div>
|
||||
<Top { ...this.props } {...this.state} />
|
||||
<div className="f-wrap-between mt20">
|
||||
<div className="f-wrap-alignCenter">
|
||||
<SelectBranch branch={branch} changeBranch={this.changeBranch} {...this.props} {...this.state}></SelectBranch>
|
||||
{
|
||||
filePath && filePath.length > 0 &&
|
||||
<span className="ml20 font-16">
|
||||
<a onClick={()=>this.getProjectRoot(branch)} className="color-blue">{projectsId}</a>
|
||||
{
|
||||
filePath.map((item,key)=>{
|
||||
return(
|
||||
<React.Fragment>
|
||||
{
|
||||
key === filePath.length-1 ?
|
||||
<span className="color-grey-6 subFileName" key={key}>{item.name}</span>
|
||||
:
|
||||
<a onClick={()=>this.ChangeFile(item,key)} className="color-blue subFileName" key={key}>{item.name}</a>
|
||||
}
|
||||
</React.Fragment>
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
</span>
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="f-wrap-alignCenter">
|
||||
{
|
||||
subFileType !== "file" && (isManager || isDeveloper) &&
|
||||
<p className="addFile mr30">
|
||||
<Link to={`/projects/${projectsId}/coders/${branch}/newfile${urlRoot}`} >新建文件</Link>
|
||||
{/* <Link to={``}>上传文件</Link> */}
|
||||
</p>
|
||||
}
|
||||
{
|
||||
filePath && filePath.length === 0 && <CloneAddress http_url={http_url} downloadUrl={downloadUrl} showNotification={this.props.showNotification}></CloneAddress>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<Spin spinning={isSpin}>
|
||||
{/* 文件夹-子目录列表 */}
|
||||
{
|
||||
rootList && <RootTable columns = {columns} data={rootList} title={() => title()}></RootTable>
|
||||
}
|
||||
|
||||
{
|
||||
fileDetail &&
|
||||
<CoderRootFileDetail detail = {fileDetail} {...this.props} {...this.state}></CoderRootFileDetail>
|
||||
}
|
||||
|
||||
{/* readme.txt */}
|
||||
{ this.renderReadMeContent(readMeContent) }
|
||||
</Spin>
|
||||
</div>
|
||||
:
|
||||
<NullData {...this.props} {...this.state} http_url={http_url} ></NullData>
|
||||
}
|
||||
</React.Fragment>
|
||||
}
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default CoderRootDirectorytext;
|
|
@ -21,6 +21,7 @@ const CoderRootBranch = Loadable({
|
|||
loader: () => import('./CoderRootBranch'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
class CoderRootIndex extends Component{
|
||||
|
||||
render(){
|
||||
|
|
|
@ -251,9 +251,19 @@ class Detail extends Component{
|
|||
isSpin:false
|
||||
})
|
||||
} else {
|
||||
this.props.showNotification(`服务器开小差了`);
|
||||
if(result.data.status !== 401){
|
||||
this.props.showNotification(result.data.message);
|
||||
}else{
|
||||
this.setState({
|
||||
isSpin:false
|
||||
})
|
||||
this.props.showNotification(`服务器开小差了`);
|
||||
}
|
||||
}
|
||||
}).catch(error=>{
|
||||
this.setState({
|
||||
isSpin:false
|
||||
})
|
||||
console.log(error);
|
||||
})
|
||||
}
|
||||
|
|
|
@ -255,12 +255,18 @@ class MergeDetail extends Component{
|
|||
</div>
|
||||
</p>
|
||||
<p className="mt15">{ data && data.issue.description}</p>
|
||||
<p className="mt10 color-grey-c">
|
||||
<p className="mt10">
|
||||
<div className={data&&data.issue_status==="关闭"?"closedetail":"opendetail"}>{data&&data.issue_status==="关闭"?"关闭中!":"开启中!"} </div>
|
||||
由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
|
||||
<span className="color-grey-c">
|
||||
由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
|
||||
</span>
|
||||
|
||||
<span className="span_title ml10">
|
||||
请求从<strong> {data && data.pull_request.head} </strong>分支合并到<strong> {data && data.pull_request.base} </strong>分支
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="detailHeader-wrapper">
|
||||
<div className="normal f-wrap-between">
|
||||
|
@ -313,9 +319,9 @@ class MergeDetail extends Component{
|
|||
<span className="span_title">指派给</span>
|
||||
<span>{data && data.issue.assign_user_name}</span>
|
||||
</p>
|
||||
<p>
|
||||
<p style={{display: "inline-block",'white-space': "nowrap" }}>
|
||||
<span className="span_title">里程碑</span>
|
||||
<span>{data&&data.issue.version===null?"未添加里程碑":data&&data.issue.version.length===0?data.issue.version:'未添加里程碑'}</span>
|
||||
<span className="title_overflow">{data&&data.issue.version===null?"未添加里程碑":data&&data.issue.version.length===0?data.issue.version:'未添加里程碑'}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,29 @@
|
|||
import React , { Component } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import {Popconfirm} from "antd";
|
||||
|
||||
class MergeItem extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
//显示 隐藏
|
||||
isdisplay:false,
|
||||
orderid:'',
|
||||
}
|
||||
}
|
||||
|
||||
onMouseMove=(type)=>{
|
||||
this.setState({
|
||||
isdisplay:true,
|
||||
orderid:type
|
||||
})
|
||||
}
|
||||
|
||||
onMouseOut=()=>{
|
||||
this.setState({
|
||||
isdisplay:false
|
||||
})
|
||||
}
|
||||
|
||||
set_issue_tags =(issue_tags)=>{
|
||||
if(issue_tags && issue_tags.length > 0){
|
||||
|
@ -41,12 +63,23 @@ class MergeItem extends Component{
|
|||
}
|
||||
</p>
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<ul className="topWrapper_select" onMouseMove={()=>this.onMouseMove(item.id)} onMouseOut={()=>this.onMouseOut()}>
|
||||
<li>{this.set_issue_tags(item.issue_tags)}</li>
|
||||
{/*<li>{item.issue_type || "--"}</li>*/}
|
||||
<li>{item.version || "--"}</li>
|
||||
<li>{item.assign_user_name || "--"}</li>
|
||||
<li>{ item.journals_count ? <span><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</span> : "" }</li>
|
||||
<li>
|
||||
<div className="flex-1">
|
||||
<p>
|
||||
{ item.journals_count ? <Link to={`/projects/${projectsId}/merge/${item.pull_request_id}/Messagecount`}><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</Link> : "" }
|
||||
</p>
|
||||
<div className="milepostleft" style={{display:this.state.orderid===item.id&&this.state.isdisplay?'flex':'none'}}>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<Link to={`/projects/${projectsId}/merge/${item.pull_request_id}/updatemerge`} className="color-grey-9"><i className="iconfont icon-bianji3 font-14 mr5"></i></Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
|
|
|
@ -11,7 +11,7 @@ import './merge.css';
|
|||
import QuillForEditor from '../quillForEditor';
|
||||
import MergeSubmit from './MergeSubmit';
|
||||
|
||||
// const TextArea = Input.TextArea;
|
||||
const TextArea = Input.TextArea;
|
||||
|
||||
const options = [
|
||||
['bold', 'italic', 'underline'],
|
||||
|
@ -20,6 +20,7 @@ const options = [
|
|||
['link', 'image'],
|
||||
['formula']
|
||||
];
|
||||
|
||||
class MessageCount extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
|
@ -182,7 +183,7 @@ class MessageCount extends Component{
|
|||
project_id:projectsId,
|
||||
id:data.pull_request.id,
|
||||
do:mergekey,
|
||||
body:JSON.stringify(body),
|
||||
body:body,
|
||||
title:title,
|
||||
}).then(result=>{
|
||||
if(result){
|
||||
|
@ -250,9 +251,9 @@ class MessageCount extends Component{
|
|||
})
|
||||
}
|
||||
|
||||
changbodypr=(value)=>{
|
||||
changbodypr=(e)=>{
|
||||
this.setState({
|
||||
body:value
|
||||
body:e.target.value
|
||||
})
|
||||
}
|
||||
editdetail=(count,status)=>{
|
||||
|
@ -502,9 +503,13 @@ class MessageCount extends Component{
|
|||
}
|
||||
<p className="mt10 color-grey-c">
|
||||
<span className={data&&data.issue.issue_status==="关闭"?"closedetail":data&&data.pull_request.status===0?"opendetail":"prdetail"}>{data&&data.issue.issue_status==="关闭"?"关闭中":data&&data.pull_request.status===0?"开启中":"已合并"} </span>
|
||||
<span className="ml10 lineH32">
|
||||
<span className="color-grey-c ml10">
|
||||
由 { data && data.issue.author_name} 于 { data && data.issue.created_at }创建{ data && data.issue.journals_count && data.issue.journals_count > 0 ?` · ${data.issue.journals_count} 条评论`:""}
|
||||
</span>
|
||||
|
||||
<span className="span_title ml10">
|
||||
请求从<strong> {data && data.pull_request.head} </strong>分支合并到<strong> {data && data.pull_request.base} </strong>分支
|
||||
</span>
|
||||
<span className="pull-right lineH32">
|
||||
{
|
||||
data && data.issue.user_permission ?
|
||||
|
@ -562,21 +567,21 @@ class MessageCount extends Component{
|
|||
|
||||
<div style={{display:this.state.ismesrge,marginTop:15}}>
|
||||
<Input placeholder="标题" value={this.state.title} onChange={this.changtitlepr}/>
|
||||
<div className="quillContent" style={{marginTop:"20px"}}>
|
||||
<QuillForEditor
|
||||
value = {this.state.body}
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
}}
|
||||
// autoFocus={true}
|
||||
style={{ height: '170px' }}
|
||||
placeholder="请输入合并请求描述..."
|
||||
options={options}
|
||||
onContentChange={this.changbodypr}
|
||||
/>
|
||||
</div>
|
||||
{/* <TextArea placeholder="请输入合并描述..." style={{height:"300px",marginTop:15}} value={this.state.body} onChange={this.changbodypr} /> */}
|
||||
{/*<div className="quillContent" style={{marginTop:"20px"}}>*/}
|
||||
{/*<QuillForEditor*/}
|
||||
{/*value = {this.state.body}*/}
|
||||
{/*wrapStyle={{*/}
|
||||
{/*height: '220px',*/}
|
||||
{/*opacity:1,*/}
|
||||
{/*}}*/}
|
||||
{/*// autoFocus={true}*/}
|
||||
{/*style={{ height: '170px' }}*/}
|
||||
{/*placeholder="请输入合并请求描述..."*/}
|
||||
{/*options={options}*/}
|
||||
{/*onContentChange={this.changbodypr}*/}
|
||||
{/*/>*/}
|
||||
{/*</div>*/}
|
||||
<TextArea placeholder="请输入合并描述..." style={{height:"170px",marginTop:20}} value={this.state.body} onChange={this.changbodypr} />
|
||||
</div>
|
||||
<p className="clearfix mt15" style={{display:this.state.buttonshow}}>
|
||||
<a className="topWrapper_btn " type="submit" onClick={()=>this.prmerge()}>合并请求</a>
|
||||
|
@ -634,9 +639,9 @@ class MessageCount extends Component{
|
|||
data && data.issue.issue_tags ? <span className="issue-tag-show" style={{background: data.issue.issue_tags[0].color}}>{data.issue.issue_tags[0].name}</span> : "--"
|
||||
}</span>
|
||||
</p>
|
||||
<p>
|
||||
<p style={{display: "inline-block",'white-space': "nowrap" }}>
|
||||
<span className="span_title">里程碑</span>
|
||||
<span>{
|
||||
<span className="title_overflow">{
|
||||
data && data.issue.version ? data.issue.version : "--"
|
||||
}</span>
|
||||
</p>
|
||||
|
|
|
@ -167,6 +167,7 @@ class merge extends Component{
|
|||
this.setState({
|
||||
status_type:'1',
|
||||
closeselect:undefined,
|
||||
openselect:'123',
|
||||
issue_tag_ids:'标签',
|
||||
fixed_version_ids:'里程碑',
|
||||
assigned_to_ids:'指派人',
|
||||
|
@ -178,6 +179,8 @@ class merge extends Component{
|
|||
this.setState({
|
||||
status_type:'2',
|
||||
openselect:undefined,
|
||||
closeselect:'123',
|
||||
|
||||
issue_tag_ids:'标签',
|
||||
fixed_version_ids:'里程碑',
|
||||
assigned_to_ids:'指派人',
|
||||
|
|
|
@ -329,7 +329,7 @@ class Detail extends Component{
|
|||
|
||||
commentCtx = (ctx) => {
|
||||
let _ctx = null;
|
||||
|
||||
|
||||
try {
|
||||
_ctx = JSON.parse(ctx);
|
||||
} catch (e) {
|
||||
|
@ -574,9 +574,9 @@ class Detail extends Component{
|
|||
data && data.issue_tags ? <span className="issue-tag-show" style={{background: data.issue_tags[0].color}}>{data.issue_tags[0].name}</span> : "--"
|
||||
}</span>
|
||||
</p>
|
||||
<p>
|
||||
<p style={{display: "inline-block",'white-space': "nowrap" }}>
|
||||
<span className="span_title">里程碑</span>
|
||||
<span>{
|
||||
<span className="title_overflow">{
|
||||
data && data.version ? data.version : "--"
|
||||
}</span>
|
||||
</p>
|
||||
|
|
|
@ -41,6 +41,7 @@ class Milepost extends Component{
|
|||
}
|
||||
}).then((result)=>{
|
||||
if(result){
|
||||
|
||||
this.setState({
|
||||
data:result.data
|
||||
})
|
||||
|
@ -173,10 +174,10 @@ class Milepost extends Component{
|
|||
if(data && data.versions && data.versions.length>0 ){
|
||||
return(
|
||||
<div>
|
||||
|
||||
<div className="tagList">
|
||||
{
|
||||
data.versions.map((item,key)=>{
|
||||
|
||||
data.versions.length===0?<NoneData></NoneData>:data.versions.map((item,key)=>{
|
||||
return(
|
||||
<div style={{display:'block'}}>
|
||||
<div className="milepostdiv">
|
||||
|
@ -279,20 +280,20 @@ class Milepost extends Component{
|
|||
</div>
|
||||
</div>
|
||||
<div className="topWrapper">
|
||||
<div className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.opneMilelist(1)}>{data && data.open_count ? data.open_count : 0}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.opneMilelist(2)}>{data && data.closed_count ? data.closed_count : 0}个已关闭</li>
|
||||
{/* <span onClick={this.opneMilelist}>{ data && data.open_count }开启中</span>
|
||||
<div className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.opneMilelist(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.opneMilelist(2)}>{data && data.closed_count}个已关闭</li>
|
||||
{/* <span onClick={this.opneMilelist}>{ data && data.open_count }开启中</span>
|
||||
<span onClick={this.closeMilelist}>{ data && data.closed_count }已关闭</span> */}
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>排序<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>排序<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{ renderList()}
|
||||
{ Paginations }
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
import React , { Component } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
class OrderItem extends Component{
|
||||
set_issue_tags =(issue_tags)=>{
|
||||
if(issue_tags && issue_tags.length > 0){
|
||||
return(
|
||||
issue_tags.map((item,key)=>{
|
||||
return(
|
||||
<span className="issue-tag-show" style={{background: item.color}}>{item.name}</span>
|
||||
)
|
||||
})
|
||||
)
|
||||
}else{
|
||||
return("--")
|
||||
}
|
||||
}
|
||||
|
||||
render(){
|
||||
const { issues , search_count , page , limit } = this.props;
|
||||
const { projectsId } = this.props.match.params;
|
||||
|
||||
const renderList =()=>{
|
||||
data.versions.map((item,key)=>{
|
||||
return(
|
||||
<div style={{display:'block'}}>
|
||||
<div className="milepostdiv">
|
||||
<div className="milepostwidth">
|
||||
<div className="grid-item width100">
|
||||
<i className="iconfont icon-lubiaosignpost3 font-12 mr3"></i>
|
||||
<Link to={`/projects/${projectsId}/orders/${item.id}/MilepostDetail`} className="font-16">{item.name}</Link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="milepostdiv" style={{marginTop:5}}>
|
||||
<div className="milepostrighe">
|
||||
|
||||
<div className="grid-item mr10">
|
||||
<i className="iconfont icon-rili font-14 mr5">
|
||||
</i>
|
||||
{
|
||||
item.effective_date ?
|
||||
<span className="color-red">{item.effective_date}</span>
|
||||
:
|
||||
<span className="color-grey-c">暂无截止时间</span>
|
||||
}
|
||||
</div>
|
||||
<div className="grid-item mr10 color-grey-9">
|
||||
<i className="iconfont icon-issue font-14 mr5"></i>
|
||||
<span>
|
||||
{item.open_issues_count}个开启
|
||||
</span>
|
||||
</div>
|
||||
<div className="grid-item mr10 color-grey-9">
|
||||
<i className="iconfont icon-shanchudiao font-14 mr5"></i>
|
||||
<span>
|
||||
{item.close_issues_count}个关闭
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="milepostleft">
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-bianji3 font-14 mr5"></i>
|
||||
<Link to={`/projects/${projectsId}/orders/${item.id}/meilpost`} className="color-grey-9">编辑</Link>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>
|
||||
<a onClick={()=>this.updatestatusemile(this.state.status==="closed"?"open":"closed",item)} className="color-grey-9">{this.state.status==="closed"?"开启":"关闭"}</a>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-lajitong font-14 mr5" ></i>
|
||||
<Popconfirm placement="bottom" title={'是否删除里程碑?'} okText="是" cancelText="否" onConfirm={()=>this.closemile(item)}>
|
||||
<a className="color-grey-9">删除</a>
|
||||
</Popconfirm>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
: ''
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="milepostdiv"style={{marginTop:5}}>
|
||||
<div className="textwidth">
|
||||
<Text
|
||||
type="secondary"
|
||||
ellipsis={{rows: 30, expandable: false, onExpand: Function}}
|
||||
>
|
||||
{item.description}</Text>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})
|
||||
}
|
||||
return(
|
||||
<div>
|
||||
{renderList()}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default OrderItem;
|
|
@ -1,7 +1,18 @@
|
|||
import React , { Component } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Popconfirm} from 'antd'
|
||||
|
||||
|
||||
|
||||
class OrderItem extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
//显示 隐藏
|
||||
isdisplay:false,
|
||||
orderid:'',
|
||||
}
|
||||
}
|
||||
set_issue_tags =(issue_tags)=>{
|
||||
if(issue_tags && issue_tags.length > 0){
|
||||
return(
|
||||
|
@ -16,6 +27,23 @@ class OrderItem extends Component{
|
|||
}
|
||||
}
|
||||
|
||||
deletedetail=(id)=>{ // 学习挣钱,调用父组件方法
|
||||
this.props.deletedetail(id);
|
||||
}
|
||||
|
||||
onMouseMove=(type)=>{
|
||||
this.setState({
|
||||
isdisplay:true,
|
||||
orderid:type
|
||||
})
|
||||
}
|
||||
|
||||
onMouseOut=()=>{
|
||||
this.setState({
|
||||
isdisplay:false
|
||||
})
|
||||
}
|
||||
|
||||
render(){
|
||||
const { issues , search_count , page , limit } = this.props;
|
||||
const { projectsId } = this.props.match.params;
|
||||
|
@ -41,15 +69,33 @@ class OrderItem extends Component{
|
|||
}
|
||||
</p>
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<ul className="topWrapper_select" onMouseMove={()=>this.onMouseMove(item.id)} onMouseOut={()=>this.onMouseOut()} >
|
||||
<li>{this.set_issue_tags(item.issue_tags)}</li>
|
||||
{/*<li>{item.issue_type || "--"}</li>*/}
|
||||
<li>{item.tracker || "--"}</li>
|
||||
<li>{item.author_name || "--"}</li>
|
||||
<li>{item.assign_user_name || "--"}</li>
|
||||
<li>{item.priority || "--"}</li>
|
||||
<li><p style={{width:60,height:25,margin:'auto', paddingTop:2,background:item.priority==='高'?'#e67e22':item.priority==='正常'?'#28be6c':item.priority==='低'?'#1abc9c':'#e74c3c',color:'#ffffff',borderRadius:4}}>{item.priority|| "--"}</p></li>
|
||||
<li>{item.done_ratio || "--"}</li>
|
||||
<li>{ item.journals_count ? <Link to={`/projects/${projectsId}/orders/${item.id}/detail`}><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</Link> : "" }</li>
|
||||
<li>
|
||||
<div className="flex-1">
|
||||
<p>
|
||||
{ item.journals_count ? <Link to={`/projects/${projectsId}/orders/${item.id}/detail`}><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</Link> : "" }
|
||||
</p>
|
||||
<div className="milepostleft" style={{display:this.state.orderid===item.id&&this.state.isdisplay?'flex':'none'}}>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<Link to={`/projects/${projectsId}/orders/${item.id}/updatedetail`} className="color-grey-9"><i className="iconfont icon-bianji3 font-14 mr5"></i></Link>
|
||||
</div>
|
||||
<div className="grid-item color-grey-9">
|
||||
<Popconfirm placement="bottom" title={'您确定要删除吗'} okText="是" cancelText="否" onConfirm={()=>this.deletedetail(item.id)}>
|
||||
<i className="iconfont icon-yiguanbi1 font-14"></i>
|
||||
</Popconfirm>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
|
|
|
@ -164,6 +164,15 @@
|
|||
.topWrapper .ant-btn.ant-input-search-button{
|
||||
height: 30px;
|
||||
}
|
||||
.title_overflow{
|
||||
max-width: 220px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
display: inline-flex;
|
||||
white-space: nowrap;
|
||||
-o-text-overflow: ellipsis;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.topWrapper_select li{
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
|
|
@ -217,12 +217,14 @@ class order extends Component{
|
|||
|
||||
openorder=(type)=>{
|
||||
if(type){
|
||||
|
||||
console.log(this.state.closeselect+"|"+this.state.openselect)
|
||||
const { current_user } = this.props;
|
||||
if(type===1){
|
||||
this.setState({
|
||||
status_type:'1',
|
||||
closeselect:undefined,
|
||||
openselect:1,
|
||||
|
||||
issue_tag_ids:'标签',
|
||||
tracker_ids:'所有分类',
|
||||
author_ids:'发布人',
|
||||
|
@ -237,6 +239,8 @@ class order extends Component{
|
|||
this.setState({
|
||||
status_type:'2',
|
||||
openselect:undefined,
|
||||
closeselect:1,
|
||||
|
||||
issue_tag_ids:'标签',
|
||||
tracker_ids:'所有分类',
|
||||
author_ids:'发布人',
|
||||
|
@ -260,12 +264,13 @@ class order extends Component{
|
|||
this.setState({
|
||||
isSpin:true
|
||||
})
|
||||
console.log(current_user)
|
||||
|
||||
if(type){
|
||||
if(current_user===undefined){
|
||||
this.setState({
|
||||
isSpin:false
|
||||
})
|
||||
alert("请登录后查看")
|
||||
return;
|
||||
}
|
||||
if(type===1){
|
||||
|
@ -314,6 +319,22 @@ class order extends Component{
|
|||
this.getIssueList(1,limit,search,undefined,undefined,status_type);
|
||||
}
|
||||
}
|
||||
deletedetail=(id)=>{
|
||||
const { projectsId} = this.props.match.params;
|
||||
const url = `/projects/${projectsId}/issues/${id}.json`;
|
||||
axios.delete(url,{ data: {
|
||||
project_id: projectsId,
|
||||
id:id
|
||||
}
|
||||
}).then((result)=>{
|
||||
if(result){
|
||||
this.getIssueList()
|
||||
}
|
||||
}).catch((error)=>{
|
||||
console.log(error);
|
||||
})
|
||||
console.log(id)
|
||||
}
|
||||
|
||||
render(){
|
||||
const { current_user } = this.props;
|
||||
|
@ -373,8 +394,8 @@ class order extends Component{
|
|||
<ul className="topWrapper_type">
|
||||
<li className={!author_id && !assigned_to_id ? "active":""} onClick={()=>this.ChangeAssign()}>全部</li>
|
||||
{}
|
||||
<li style={{display:current_user===undefined?'none':'flex'}} className={assigned_to_id ? "active":""} onClick={ ()=>this.ChangeAssign(1)}>指派给我</li>
|
||||
<li style={{display:current_user===undefined?'none':'flex'}} className={author_id ? "active":""} onClick={()=>this.ChangeAssign(2)}>由我创建</li>
|
||||
<li style={{display:current_user&¤t_user.login===""?'none':'flex'}} className={assigned_to_id ? "active":""} onClick={ ()=>this.ChangeAssign(1)}>指派给我</li>
|
||||
<li style={{display:current_user&¤t_user.login===""?'none':'flex'}} className={author_id ? "active":""} onClick={()=>this.ChangeAssign(2)}>由我创建</li>
|
||||
{/* <li>@我的</li> */}
|
||||
</ul>
|
||||
<ul className="topWrapper_select">
|
||||
|
@ -424,7 +445,7 @@ class order extends Component{
|
|||
search_count === 0 ?
|
||||
<NoneData _html="暂时还没有相关数据哦!" />
|
||||
:
|
||||
<OrderItem issues={issues} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state}></OrderItem>
|
||||
<OrderItem issues={issues} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state} deletedetail={this.deletedetail}></OrderItem>
|
||||
}
|
||||
{ Paginations }
|
||||
</Spin>
|
||||
|
|
|
@ -191,6 +191,16 @@ class Collaborator extends Component{
|
|||
<div className="normalBox-title font-16">
|
||||
协作者
|
||||
</div>
|
||||
<div className="addPanel">
|
||||
<AutoComplete
|
||||
dataSource={source}
|
||||
style={{ width: 200 }}
|
||||
onChange={this.changeInputUser}
|
||||
onSelect={this.selectInputUser}
|
||||
placeholder="搜索用户"
|
||||
/>
|
||||
<a className="small_submitBtn ml20" onClick={this.addCollaborator}>增加协作者</a>
|
||||
</div>
|
||||
<Spin spinning={isSpin}>
|
||||
<div className="collaboratorList">
|
||||
{
|
||||
|
@ -224,16 +234,7 @@ class Collaborator extends Component{
|
|||
|
||||
</div>
|
||||
</Spin>
|
||||
<div className="addPanel">
|
||||
<AutoComplete
|
||||
dataSource={source}
|
||||
style={{ width: 200 }}
|
||||
onChange={this.changeInputUser}
|
||||
onSelect={this.selectInputUser}
|
||||
placeholder="搜索用户"
|
||||
/>
|
||||
<a className="small_submitBtn ml20" onClick={this.addCollaborator}>增加协作者</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{
|
||||
total_count && total_count > LIMIT ?
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
}
|
||||
.collaboratorItem{
|
||||
display: flex;
|
||||
border-bottom: 1px solid #f4f4f4;
|
||||
border-top: 1px solid #f4f4f4;
|
||||
padding:15px;
|
||||
}
|
||||
.collaboratorItem>span{
|
||||
|
|
|
@ -145,7 +145,7 @@ class NewVersion extends Component{
|
|||
<h5 style={{marginLeft:15}}>版本发布组织项目的版本。</h5>
|
||||
<Divider/>
|
||||
<div style={{display:'flex'}}>
|
||||
<Input placeholder="标签名称" style={{width:180,marginLeft:15}} value={tag_name} onChange={this.changmodelname}/>
|
||||
<Input placeholder="标签名称" style={{width:180,marginLeft:15}} value={tag_name} onChange={this.changmodelname} />
|
||||
<div style={{marginLeft:20,marginRight:20,lineHeight: '32px'}}>@ </div>
|
||||
<Dropdown overlay={this.renderMenu(branches &&branches,'pull')} trigger={['click']} placement="bottomCenter">
|
||||
<Button style={{width:180}}>{pull}</Button>
|
||||
|
@ -161,7 +161,7 @@ class NewVersion extends Component{
|
|||
required: true, message: '请输入标题'
|
||||
}],
|
||||
})(
|
||||
<Input placeholder="标题"/>
|
||||
<Input placeholder="标题" maxLength="32"/>
|
||||
)}
|
||||
</Form.Item>
|
||||
</div>
|
||||
|
|
|
@ -152,7 +152,7 @@ class NewVersion extends Component{
|
|||
initialValue:this.state.data&&this.state.data.name
|
||||
|
||||
})(
|
||||
<Input placeholder="标题"/>
|
||||
<Input placeholder="标题" maxLength="32"/>
|
||||
)}
|
||||
</Form.Item>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue