Merge branch 'develop' of http://git.trustie.net/jasder/forgeplus-react into develop

# Conflicts:
#	src/forge/Order/New.js
This commit is contained in:
caicai8 2020-04-10 16:34:33 +08:00
commit 4ea6c345e6
30 changed files with 1102 additions and 567 deletions

View File

@ -2,7 +2,8 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="9830c5da-176a-4c72-a301-9f6ce98c82fe" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/src/forge/New/Index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/New/Index.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/forge/Activity/Activity.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Activity/Activity.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/forge/Version/version.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Version/version.js" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -10,13 +11,27 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
<option name="GROUP_DATA_SOURCES" value="true" />
<option name="GROUP_SCHEMA" value="true" />
<option name="GROUP_CONTENTS" value="false" />
<option name="SORT_POSITIONED" value="false" />
<option name="SHOW_EMPTY_GROUPS" value="false" />
<option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
<option name="HIDDEN_KINDS">
<set />
</option>
<expand />
<select />
</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/Main/Index.js">
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3247">
<caret line="191" column="38" selection-start-line="191" selection-start-column="38" selection-end-line="191" selection-end-column="38" />
<state relative-caret-position="378">
<caret line="390" column="10" selection-start-line="390" selection-start-column="10" selection-end-line="401" selection-end-column="16" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
@ -25,48 +40,21 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Main/IndexItem.js">
<entry file="file://$PROJECT_DIR$/src/forge/Order/New.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="21" column="10" selection-start-line="21" selection-start-column="10" selection-end-line="21" selection-end-column="10" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
<state relative-caret-position="51">
<caret line="3" selection-start-line="3" selection-end-line="3" selection-end-column="39" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
<entry file="file://$PROJECT_DIR$/src/forge/Order/UpdateDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1462">
<caret line="86" column="60" selection-start-line="86" selection-start-column="24" selection-end-line="86" selection-end-column="60" />
<state relative-caret-position="364">
<caret line="243" selection-start-line="243" selection-end-line="245" selection-end-column="15" />
<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/Merge/MergeItem.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="143">
<caret line="49" column="19" lean-forward="true" selection-start-line="49" selection-start-column="19" selection-end-line="49" selection-end-column="19" />
<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/New/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="290" column="19" lean-forward="true" selection-start-line="290" selection-start-column="19" selection-end-line="290" selection-end-column="19" />
<folding>
<element signature="e#0#42#0" expanded="true" />
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
@ -75,17 +63,29 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Merge/merge.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-111">
<caret line="241" column="45" lean-forward="true" selection-start-line="241" selection-start-column="45" selection-end-line="241" selection-end-column="45" />
<state relative-caret-position="51">
<caret line="3" column="21" lean-forward="true" selection-start-line="3" selection-start-column="21" selection-end-line="3" selection-end-column="21" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
<entry file="file://$PROJECT_DIR$/src/forge/Activity/Activity.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="256" column="25" lean-forward="true" selection-start-line="256" selection-start-column="25" selection-end-line="256" selection-end-column="25" />
<state relative-caret-position="3179">
<caret line="187" column="15" lean-forward="true" selection-start-line="187" selection-start-column="15" selection-end-line="187" selection-end-column="15" />
<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/Version/version.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="70">
<caret line="133" column="55" lean-forward="true" selection-start-line="133" selection-start-column="55" selection-end-line="133" selection-end-column="55" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
@ -94,30 +94,48 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/css/index.css">
<entry file="file://$PROJECT_DIR$/src/forge/Merge/NewMerge.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1411">
<caret line="83" column="7" selection-start-line="83" selection-start-column="7" selection-end-line="83" selection-end-column="7" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/forge/Main/list.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="563" column="28" selection-start-line="563" selection-start-column="28" selection-end-line="563" selection-end-column="28" />
</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="7735">
<caret line="455" column="11" selection-start-line="455" selection-start-column="11" selection-end-line="455" selection-end-column="11" />
<state relative-caret-position="251">
<caret line="256" column="12" selection-start-line="256" selection-start-column="12" selection-end-line="256" selection-end-column="12" />
<folding>
<element signature="e#0#42#0" expanded="true" />
<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/Merge/UpdateMerge.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="195" column="11" lean-forward="true" selection-start-line="195" selection-start-column="11" selection-end-line="195" selection-end-column="11" />
<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/Merge/MergeDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="291">
<caret line="232" lean-forward="true" selection-start-line="232" selection-end-line="232" />
<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/Merge/MessageCount.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="333">
<caret line="483" lean-forward="true" selection-start-line="483" selection-end-line="483" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
@ -127,24 +145,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>&lt;span className=&quot;span_title&quot;&gt;里程碑</find>
<find>分支合并到</find>
<find>Input</find>
<find>新建标签</find>
<find>orderid</find>
<find>deletedetail</find>
<find>onMouseMove</find>
<find>TextArea</find>
<find>body</find>
<find>该合并请求可以进行自动合并操作</find>
<find>title</find>
<find>changbodypr</find>
<find>&lt;Select</find>
<find>commitKey</find>
<find>CoderRootDirectorytext</find>
<find>CoderRootDirectory</find>
<find>创建工单</find>
<find>p-r-photo</find>
<find>没有评论</find>
<find>topWrapper</find>
<find>topWrapper_btn</find>
@ -157,7 +157,28 @@
<find>projectDe</find>
<find>fork</find>
<find>仓库名称</find>
<find>renderList</find>
<find>Paginations</find>
<find>Forked from</find>
<find>.detailHeader-wrapper</find>
<find>工单</find>
<find>已合并请求</find>
<find>f-wrap-alignCenter</find>
<find>commitKey</find>
<find>请在下拉选项中选择正确的gitignore</find>
<find>里程碑</find>
<find>img_m</find>
<find>collaborator</find>
<find>setting/collaborator</find>
<find>.topWrapper_select</find>
<find>topWrapper_select</find>
<find>Issue</find>
<find>NaV</find>
<find>创建</find>
</findStrings>
<replaceStrings>
<replace>任务</replace>
</replaceStrings>
<dirStrings>
<dir>$PROJECT_DIR$</dir>
<dir>$PROJECT_DIR$/src</dir>
@ -172,46 +193,51 @@
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/AppConfig.js" />
<option value="$PROJECT_DIR$/src/forge/Order/newMilepost.js" />
<option value="$PROJECT_DIR$/src/forge/Index.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" />
<option value="$PROJECT_DIR$/src/forge/Order/UpdateDetail.js" />
<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/Settings/Setting.js" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/src/forge/Newfile/UserSubmitComponent.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/Main/CoderRootFileDetail.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/order.css" />
<option value="$PROJECT_DIR$/src/forge/Merge/MergeDetail.js" />
<option value="$PROJECT_DIR$/src/forge/Order/Detail.js" />
<option value="$PROJECT_DIR$/src/forge/Version/NewVersion.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/Main/CoderRootDirectory.js" />
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootDirectorytext.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/MessageCount.js" />
<option value="$PROJECT_DIR$/src/forge/Version/version.css" />
<option value="$PROJECT_DIR$/src/forge/Main/IndexItem.js" />
<option value="$PROJECT_DIR$/src/forge/Order/OrderItem.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/merge.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/MergeItem.js" />
<option value="$PROJECT_DIR$/src/forge/Main/list.css" />
<option value="$PROJECT_DIR$/src/forge/Main/Detail.js" />
<option value="$PROJECT_DIR$/src/forge/Activity/Activity.js" />
<option value="$PROJECT_DIR$/src/forge/Version/NewVersion.js" />
<option value="$PROJECT_DIR$/src/forge/Version/UpdateVersion.js" />
<option value="$PROJECT_DIR$/src/forge/New/Index.js" />
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js" />
<option value="$PROJECT_DIR$/src/forge/Order/UpdateMilepost.js" />
<option value="$PROJECT_DIR$/src/forge/Order/newMilepost.js" />
<option value="$PROJECT_DIR$/src/forge/Order/Milepost.js" />
<option value="$PROJECT_DIR$/src/forge/Main/Detail.js" />
<option value="$PROJECT_DIR$/src/forge/Settings/Index.js" />
<option value="$PROJECT_DIR$/src/forge/Order/Tags.js" />
<option value="$PROJECT_DIR$/src/forge/Settings/new_tags.js" />
<option value="$PROJECT_DIR$/src/forge/Order/order.js" />
<option value="$PROJECT_DIR$/src/forge/Order/Detail.js" />
<option value="$PROJECT_DIR$/src/forge/Order/New.js" />
<option value="$PROJECT_DIR$/src/forge/Order/UpdateDetail.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/UpdateMerge.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/MergeDetail.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/MessageCount.js" />
<option value="$PROJECT_DIR$/src/forge/Merge/merge.js" />
<option value="$PROJECT_DIR$/src/forge/Version/version.js" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
<component name="ProjectFrameBounds" fullScreen="true">
<option name="y" value="23" />
<option name="width" value="1440" />
<option name="height" value="877" />
@ -244,7 +270,21 @@
<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" />
<item name="Merge" 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="Order" 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" />
</path>
</expand>
<select />
@ -262,6 +302,11 @@
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/forge/Images" />
</key>
</component>
<component name="RubyModuleManagerSettings">
<option name="blackListedRootsPaths">
<list>
@ -305,18 +350,19 @@
<workItem from="1585900267463" duration="136000" />
<workItem from="1585902299727" duration="2113000" />
<workItem from="1586153685130" duration="10062000" />
<workItem from="1586245827209" duration="1172000" />
<workItem from="1586245827209" duration="1692000" />
<workItem from="1586330226261" duration="658000" />
<workItem from="1586400014081" duration="15437000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="79602000" />
<option name="totallyTimeSpent" value="96217000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1440" height="900" extended-state="6" />
<editor active="true" />
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17811158" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18025751" />
<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" />
@ -328,8 +374,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.61566263" />
<window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.3421687" />
<window_info anchor="bottom" id="Version Control" order="9" weight="0.20722891" />
<window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.70843375" />
<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" />
@ -391,40 +437,6 @@
</option>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/forge/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</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">
<caret line="46" column="7" selection-start-line="46" selection-start-column="2" selection-end-line="46" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/CopyDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="242" column="24" selection-start-line="242" selection-start-column="24" selection-end-line="242" selection-end-column="24" />
<folding>
<element signature="e#0#40#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="173">
<caret line="178" column="31" selection-start-line="178" selection-start-column="31" selection-end-line="178" selection-end-column="31" />
<folding>
<element signature="e#0#39#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-462">
@ -501,44 +513,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Index.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/Activity/Activity.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="354">
<caret line="166" column="11" selection-start-line="166" selection-start-column="11" selection-end-line="166" selection-end-column="11" />
<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">
<caret line="202" column="10" selection-start-line="202" selection-start-column="10" selection-end-line="202" selection-end-column="10" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/UpdateMerge.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3457">
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/index.css">
<provider selected="true" editor-type-id="text-editor" />
</entry>
@ -549,25 +523,6 @@
</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">
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<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>
<entry file="file://$PROJECT_DIR$/src/forge/Main/DetailTop.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
@ -578,17 +533,6 @@
</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/Settings/setting.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
@ -596,46 +540,6 @@
</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">
<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>
<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/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">
@ -650,16 +554,6 @@
</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="337">
<caret line="179" column="36" lean-forward="true" selection-start-line="179" selection-start-column="36" selection-end-line="179" selection-end-column="36" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build/asset-manifest.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
@ -674,23 +568,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="505">
<caret line="249" column="5" selection-start-line="249" selection-start-column="5" selection-end-line="249" selection-end-column="5" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</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="171">
<caret line="130" selection-start-line="130" selection-end-line="138" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Version/version.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
@ -698,56 +575,9 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Version/version.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="4" column="23" selection-start-line="4" selection-start-column="23" selection-end-line="4" selection-end-column="23" />
</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="289">
<caret line="17" column="28" selection-start-line="17" selection-start-column="28" selection-end-line="17" selection-end-column="28" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/Detail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="466" column="11" selection-start-line="466" selection-start-column="11" selection-end-line="466" 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/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/UpdateDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6647">
<caret line="391" column="26" selection-start-line="391" selection-start-column="26" selection-end-line="391" selection-end-column="26" />
<folding>
<element signature="e#0#40#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="3247">
<state relative-caret-position="3060">
<caret line="191" column="38" selection-start-line="191" selection-start-column="38" selection-end-line="191" selection-end-column="38" />
<folding>
<element signature="e#0#42#0" expanded="true" />
@ -757,7 +587,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/IndexItem.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<state relative-caret-position="255">
<caret line="21" column="10" selection-start-line="21" selection-start-column="10" selection-end-line="21" selection-end-column="10" />
<folding>
<element signature="e#0#42#0" expanded="true" />
@ -767,7 +597,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1462">
<state relative-caret-position="458">
<caret line="86" column="60" selection-start-line="86" selection-start-column="24" selection-end-line="86" selection-end-column="60" />
<folding>
<element signature="e#0#42#0" expanded="true" />
@ -775,51 +605,51 @@
</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="458">
<caret line="49" column="19" selection-start-line="49" selection-start-column="19" selection-end-line="49" selection-end-column="19" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/css/index.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1411">
<state relative-caret-position="458">
<caret line="83" column="7" selection-start-line="83" selection-start-column="7" selection-end-line="83" selection-end-column="7" />
</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="7735">
<caret line="455" column="11" selection-start-line="455" selection-start-column="11" selection-end-line="455" selection-end-column="11" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/list.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="563" column="28" selection-start-line="563" selection-start-column="28" selection-end-line="563" selection-end-column="28" />
<state relative-caret-position="234">
<caret line="239" lean-forward="true" selection-start-line="239" selection-end-line="239" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
<entry file="file://$PROJECT_DIR$/src/forge/Version/UpdateVersion.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="256" column="25" lean-forward="true" selection-start-line="256" selection-start-column="25" selection-end-line="256" selection-end-column="25" />
<state relative-caret-position="494">
<caret line="178" column="62" lean-forward="true" selection-start-line="178" selection-start-column="62" selection-end-line="178" selection-end-column="62" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/merge.js">
<entry file="file://$PROJECT_DIR$/src/forge/Version/NewVersion.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-111">
<caret line="241" column="45" lean-forward="true" selection-start-line="241" selection-start-column="45" selection-end-line="241" selection-end-column="45" />
<state relative-caret-position="-2583">
<caret line="4" column="28" lean-forward="true" selection-start-line="4" selection-start-column="28" selection-end-line="4" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/MergeItem.js">
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootDirectory.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="143">
<caret line="49" column="19" lean-forward="true" selection-start-line="49" selection-start-column="19" selection-end-line="49" selection-end-column="19" />
<state relative-caret-position="166">
<caret line="234" column="32" lean-forward="true" selection-start-line="234" selection-start-column="32" selection-end-line="234" selection-end-column="32" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
@ -828,8 +658,231 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/New/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="290" column="19" lean-forward="true" selection-start-line="290" selection-start-column="19" selection-end-line="290" selection-end-column="19" />
<state relative-caret-position="412">
<caret line="396" column="54" selection-start-line="396" selection-start-column="54" selection-end-line="396" selection-end-column="54" />
<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="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">
<caret line="115" column="22" lean-forward="true" selection-start-line="115" selection-start-column="22" selection-end-line="115" selection-end-column="22" />
<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="270">
<caret line="197" column="45" lean-forward="true" selection-start-line="197" selection-start-column="45" selection-end-line="197" selection-end-column="45" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Settings/Index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="697">
<caret line="38" column="13" lean-forward="true" selection-start-line="38" selection-start-column="13" selection-end-line="38" 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/Milepost.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="280" column="16" lean-forward="true" selection-start-line="280" selection-start-column="16" selection-end-line="280" selection-end-column="16" />
<folding>
<element signature="e#0#40#0" expanded="true" />
<element signature="e#9724#10047#0" />
</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="102">
<caret line="6" column="31" lean-forward="true" selection-start-line="6" selection-start-column="31" selection-end-line="6" selection-end-column="31" />
</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="-4004">
<caret line="130" selection-start-line="130" selection-end-line="138" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Settings/new_tags.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="331" column="28" lean-forward="true" selection-start-line="331" selection-start-column="28" selection-end-line="331" selection-end-column="28" />
<folding>
<element signature="e#0#40#0" expanded="true" />
<element signature="e#6460#6910#0" />
<element signature="e#6923#8163#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="3863">
<caret line="366" column="34" lean-forward="true" selection-start-line="366" selection-start-column="34" selection-end-line="366" selection-end-column="34" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/Detail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="461" column="41" selection-start-line="461" selection-start-column="41" selection-end-line="461" selection-end-column="41" />
<folding>
<element signature="e#0#40#0" expanded="true" />
<element signature="e#8674#13519#0" />
<element signature="e#16700#18374#0" />
</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="251">
<caret line="256" column="12" selection-start-line="256" selection-start-column="12" selection-end-line="256" selection-end-column="12" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Merge/UpdateMerge.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="195" column="11" lean-forward="true" selection-start-line="195" selection-start-column="11" selection-end-line="195" 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/MergeDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="291">
<caret line="232" lean-forward="true" selection-start-line="232" selection-end-line="232" />
<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="333">
<caret line="483" lean-forward="true" selection-start-line="483" selection-end-line="483" />
<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="378">
<caret line="390" column="10" selection-start-line="390" selection-start-column="10" selection-end-line="401" selection-end-column="16" />
<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="51">
<caret line="3" column="21" lean-forward="true" selection-start-line="3" selection-start-column="21" selection-end-line="3" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/UpdateDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="364">
<caret line="243" selection-start-line="243" selection-end-line="245" selection-end-column="15" />
<folding>
<element signature="e#0#40#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Order/New.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="3" selection-start-line="3" selection-end-line="3" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Activity/Activity.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3179">
<caret line="187" column="15" lean-forward="true" selection-start-line="187" selection-start-column="15" selection-end-line="187" selection-end-column="15" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/forge/Version/version.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="70">
<caret line="133" column="55" lean-forward="true" selection-start-line="133" selection-start-column="55" selection-end-line="133" selection-end-column="55" />
<folding>
<element signature="e#0#42#0" expanded="true" />
</folding>

View File

@ -138,25 +138,25 @@ class Activity extends Component{
<p className="percent_red" style={{width:`${third_per}`}}></p>
<p className="percent_green" style={{width:`${fourth_per}`}}></p>
</div>
<span>{data && data.issues_count}工单</span>
<span>{data && data.issues_count}任务</span>
</div>
</div>
<ul className="percentBox">
<li>
<span className="purple">{data && data.pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","close")}>合并请求</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","close")}>处理的合并请求</span>
</li>
<li>
<span className="green">{data && data.new_pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","create")}>合并请求</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","create")}>未处理的合并请求</span>
</li>
<li>
<span className="red">{data && data.close_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","close")}>已关闭工单</span>
<span className="change" onClick={()=>this.changeTrends("Issue","close")}>已关闭的任务</span>
</li>
<li>
<span className="green">{data && data.open_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","create")}>创建的工单</span>
<span className="change" onClick={()=>this.changeTrends("Issue","create")}>未处理的任务</span>
</li>
</ul>
</div>

View File

@ -18,7 +18,7 @@ class ActivityItem extends Component{
<span className="activity_type">{item.trend_type}</span>
</p >
:
// 如果是工单
// 如果是任务
item.trend_type==="Issue"?
<p className="itemLine">
<Link to={`/projects/${projectsId}/orders/${item.trend_id}/detail`} className="color-blue font-16">{item.name}</Link>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -238,9 +238,10 @@ class CoderRootDirectory extends Component{
</React.Fragment>
:""
}
<span className="commitKey">{truncateCommitId(branchLastCommit.last_commit.id)}</span>
{/*<Link to={``} className="commitKey">{truncateCommitId(branchLastCommit.last_commit.id)}</Link>*/}
<span className="color-blue flex-1 hide-1">{branchLastCommit.last_commit.message}</span>
<span className="commitKey">{truncateCommitId(branchLastCommit.last_commit.id)}</span>
<span>{branchLastCommit.last_commit.time_from_now}</span>
</div>
)

View File

@ -21,6 +21,7 @@ import img_focus from '../Images/focus.png';
import img_parised from '../Images/parised.png';
import img_focused from '../Images/focused.png';
import img_fork from '../Images/fork.png';
import img_milepost from '../Images/milepost.png';
const FileNew = Loadable({
loader: () => import('../Newfile/Index'),
loading: Loading,
@ -292,7 +293,7 @@ class Detail extends Component{
<Spin spinning={isSpin}>
<div className="detailHeader-wrapper">
<div className="normal">
<div className="f-wrap-between mb25" style={{position:"relative"}}>
<div className="f-wrap-between mb30" style={{position:"relative"}}>
<p className="font-18 color-white df flex-1 lineH2 mt15" style={{alignItems:"center"}}>
{
projectDetail && projectDetail.forked_from_project_id ?
@ -311,7 +312,7 @@ class Detail extends Component{
{
projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ?
<div className="fork-css font-14 color-grey-ccc df flex-1 lineH2" style={{alignItems:"center"}}>
<span className="mr10">Forked from</span>
<span className="mr10">forked from</span>
{projectDetail.fork_info.fork_project_user_name}
<span className="ml5 mr5">/</span>
@ -326,15 +327,17 @@ class Detail extends Component{
</div>
<div className="f-wrap-between">
<ul className="headerMenu-wrapper">
<li className={(url.indexOf("coders")>-1 || urlFlag) ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/coders`,state}}><img alt="" src={img_1} width="18" />代码</Link></li>
<li className={url.indexOf("orders")>-1 ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/orders`,state}}><img alt="" src={img_2} width="12" />工单{projectDetail&&projectDetail.issues_count===0?"":projectDetail&&projectDetail.issues_count===0?projectDetail.issues_count:""}</Link></li>
<li className={(url.indexOf("coders")>-1 || urlFlag) ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/coders`,state}}><img alt="" src={img_1} width="18" />代码</Link></li>
<li className={(url.indexOf("orders")>-1 && !(url.indexOf("Milepost")>0 || url.indexOf("meilpost")>0 || url.indexOf("tags")>0))? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/orders`,state}}><img alt="" src={img_2} width="12" />任务{projectDetail&&projectDetail.issues_count===0?"":projectDetail&&projectDetail.issues_count===0?projectDetail.issues_count:""}</Link></li>
<li className={url.indexOf("merge")>-1 ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/merge`,state}}><img alt="" src={img_3} width="13" />合并请求{projectDetail&&projectDetail.pull_requests_count===0?"":projectDetail&&projectDetail.pull_requests_count===0?projectDetail.pull_requests_count:""}</Link></li>
<li className={url.indexOf("version")>-1 ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/version`,state}}><img alt="" src={img_4} width="16" />版本发布</Link></li>
<li className={url.indexOf("trends")>-1 ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/trends`,state}}><img alt="" src={img_6} width="16" />动态</Link></li>
<li className={(url.indexOf("Milepost")>-1 || url.indexOf("meilpost")>-1) ? "active" : ""}><Link to={{pathname:`/projects/${projectsId}/orders/Milepost`,state}}><img alt="" src={img_milepost} width="16" />里程碑</Link></li>
{
isManager &&
<li className={url.indexOf("setting")>0 ? "active" : ""}><Link to={`/projects/${projectsId}/setting`}><img alt="" src={img_7} width="19" />仓库设置</Link></li>
}
</ul>
<span className="df">
<span className="detail_tag_btn">
@ -386,7 +389,7 @@ class Detail extends Component{
(props) => (<Setting {...this.props} {...props} {...this.state} getDetail={this.getDetail}/>)
}
></Route>
{/* 工单详情 */}
{/* 任务详情 */}
<Route path="/projects/:projectsId/orders/:orderId/detail"
render={
(props) => (<OrderDetail {...this.props} {...props} {...this.state}/>)
@ -418,7 +421,7 @@ class Detail extends Component{
></Route>
{/* 新建工单 */}
{/* 新建任务 */}
<Route path="/projects/:projectsId/orders/new"
render={

View File

@ -242,7 +242,7 @@ body,#root{
.detailHeader-wrapper{
background:url(../Images/banner_sub.png) no-repeat center;
background-size: 100% 100%;
height: 120px;
height: 125px;
}
.headerMenu-wrapper{
font-size: 16px;

View File

@ -108,7 +108,7 @@ class MergeDetail extends Component{
})
}
//关闭工单
//关闭任务
closedetail=(id)=>{
const {projectsId,orderId} = this.props.match.params;
const url = `/projects/${projectsId}/issues/${orderId}/close_issue.json`;
@ -233,15 +233,15 @@ class MergeDetail extends Component{
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
{
data && data.issue.user_permission ?
<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>
: ''
}
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*{*/}
{/*data && data.issue.user_permission ?*/}
{/*<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>*/}
{/*: ''*/}
{/*}*/}
</div>
{/*</div>*/}
<div>
<div className="detailContent">
<p>

View File

@ -156,7 +156,7 @@ class MessageCount extends Component{
}
//关闭工单
//关闭任务
closedetail=(id)=>{
const {projectsId,orderId} = this.props.match.params;
const {data } = this.state;
@ -484,14 +484,14 @@ class MessageCount extends Component{
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
{
data && data.issue.user_permission ?
<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>
: ''
}
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*{*/}
{/*data && data.issue.user_permission ?*/}
{/*<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>*/}
{/*: ''*/}
{/*}*/}
{/*</div>*/}
<div>
<div className="detailContent">
{

View File

@ -195,9 +195,9 @@ class UpdateMerge extends Component{
const { issue_tag_ids , fixed_version_id , assigned_to_id , issue_chosen , subject, textcount,get_attachments } = this.state;
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*</div>*/}
<div>
<Form>
<div className="f-wrap-between mt20" style={{alignItems:"flex-start"}}>
@ -207,7 +207,7 @@ class UpdateMerge extends Component{
<Form.Item>
{getFieldDecorator('title', {
rules: [{
required: true, message: '请填写工单标题'
required: true, message: '请填写任务标题'
}],
initialValue: subject
})(
@ -219,7 +219,7 @@ class UpdateMerge extends Component{
rules: [],
initialValue: textcount
})(
<TextArea placeholder="请输入工单的描述..." style={{height:"300px"}} onChange={this.changmodelcount}/>
<TextArea placeholder="请输入任务的描述..." style={{height:"300px"}} onChange={this.changmodelcount}/>
)}
</Form.Item> */}
<QuillForEditor

View File

@ -259,12 +259,12 @@ class merge extends Component{
)
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
{
<a className="topWrapper_btn" onClick={()=>this.islogin()}>创建合并请求</a>
}
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*{*/}
{/*<a className="topWrapper_btn" onClick={()=>this.islogin()}>创建合并请求</a> */}
{/*}*/}
{/*</div>*/}
<div className="topWrapper" style={{borderBottom:"none"}}>
<p className="topWrapper_type">
<li className={openselect ? "active":""} onClick={()=>this.openorder(1)}>{data && data.open_count ? data.open_count : 0}个开启中</li>
@ -272,13 +272,17 @@ class merge extends Component{
{/* <span onClick={this.openorder} className={author_id ? "active":""}>{data && data.open_count}</span>
<span onClick={this.closeorder} className={author_id ? "active":""}>{data && data.close_count}个已关闭</span> */}
</p>
<div>
<Search
placeholder="搜索"
enterButton
onSearch={this.searchFunc}
style={{ width: 300 }}
/>
<div className="topWrapper_select">
<div>
<Search
placeholder="搜索"
enterButton
onSearch={this.searchFunc}
style={{ width: 300 }}
/>
</div>
<a className="topWrapper_btn ml10" onClick={()=>this.islogin()}>创建合并请求</a>
</div>
</div>
{

View File

@ -278,7 +278,7 @@ class Index extends Component{
required: true, message: '请填写项目简介'
}],
})(
<Input.TextArea autoSize={{ minRows: 2, maxRows: 6 }}/>
<Input.TextArea placeholder="项目的介绍" autoSize={{ minRows: 2, maxRows: 6 }}/>
)}
</Form.Item>
<Form.Item
@ -347,11 +347,13 @@ class Index extends Component{
>
{getFieldDecorator('ignore',{
rules: [{
required: true, message: '请选择gitignore'
},{
validator:(rule, value, callback)=>this.checkId(rule, value, callback,GitignoreList,'gitignore')
}],
})(
<AutoComplete
placeholder="请选择gitignore"
placeholder="请选择gitignore,用来定义哪些文件不需要添加到版本管理中"
onChange={(value,e)=>this.ChangePlatform(value,e,'ignore',GitignoreList)}
className="plateAutoComplete"
onBlur={(value)=>this.blurCategory(value,GitignoreList,"ignore")}
@ -366,6 +368,8 @@ class Index extends Component{
>
{getFieldDecorator('license',{
rules: [{
required: true, message: '请选择开源许可证'
},{
validator:(rule, value, callback)=>this.checkId(rule, value, callback,LicensesList,'开源许可证')
}],
})(
@ -387,10 +391,19 @@ class Index extends Component{
style={{marginBottom:"0px"}}
>
{getFieldDecorator('private')(
<Checkbox value="limit">将项目设为私有</Checkbox>
<Checkbox value="limit">将项目设为私有<span className="ml15 font-13 color-grey-9">(只有项目所有人或拥有权限的项目成员才能看到)</span></Checkbox>
)}
</Form.Item >
<p className="formTip">只有企业所有人或拥有权限的企业成员才能看到</p>
<div className="ant-row ant-form-item">
<div className="ant-col ant-form-item-label">
</div>
<div className="ant-col ant-form-item-control-wrapper color-grey-9">
<div className="ant-form-item-control">
<span className="ant-form-item-required"></span>
</div>
</div>
</div>
<Form.Item className="formTip">
<Button type="primary" onClick={this.subMitFrom} className="mr20">创建项目</Button>
<Link to={'/projects'} className="btn_32">取消</Link>

View File

@ -117,7 +117,7 @@ class CopyDetail extends Component{
return _value
}
//删除工单
//删除任务
deleteorder=(id)=>{
const { projectsId , orderId } = this.props.match.params;
const url = `/projects/${projectsId}/issues/${orderId}.json`;
@ -227,7 +227,7 @@ class CopyDetail extends Component{
<Form.Item>
{getFieldDecorator('subject', {
rules: [{
required: true, message: '请填写工单标题'
required: true, message: '请填写任务标题'
}],
initialValue: subject
})(
@ -243,7 +243,7 @@ class CopyDetail extends Component{
}}
// autoFocus={true}
style={{ height: '170px' }}
placeholder="请输入工单的描述..."
placeholder="请输入任务的描述..."
options={options}
onContentChange={this.onContentChange}
/>
@ -253,7 +253,7 @@ class CopyDetail extends Component{
rules: [],
initialValue: textcount
})(
<TextArea placeholder="请输入工单的描述..." style={{height: "300px"}} onChange={this.changmodelcount}/>
<TextArea placeholder="请输入任务的描述..." style={{height: "300px"}} onChange={this.changmodelcount}/>
)}
</Form.Item> */}
<UploadComponent load={this.UploadFunc}

View File

@ -142,7 +142,7 @@ class Detail extends Component{
})
}
//删除工单信息
//删除任务信息
deletedetail=(id)=>{
const { projectsId , orderId } = this.props.match.params;
const url = `/projects/${projectsId}/issues/${orderId}.json`;
@ -159,7 +159,7 @@ class Detail extends Component{
})
}
//关闭工单
//关闭任务
closedetail=(id)=>{
const {projectsId,orderId} = this.props.match.params;
const url = `/projects/${projectsId}/issues/${orderId}/close_issue.json`;
@ -458,15 +458,15 @@ class Detail extends Component{
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
{
data && data.user_permission ?
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建工单</Link>
: ''
}
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*{*/}
{/*data && data.user_permission ?*/}
{/*<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建任务</Link>*/}
{/*: ''*/}
{/*}*/}
</div>
{/*</div>*/}
<div>
<div className="detailContent">
<p>

View File

@ -154,8 +154,8 @@ class Milepost extends Component{
<Menu.Item key={'created_on'} value="asc">到期日从远到近</Menu.Item>
<Menu.Item key={'percent'} value="desc">完成度从低到高</Menu.Item>
<Menu.Item key={'percent'} value="asc">完成度从高到低</Menu.Item>
<Menu.Item key={'issues_count'} value="desc">工单从多到少</Menu.Item>
<Menu.Item key={'issues_count'} value="asc">工单从少到多</Menu.Item>
<Menu.Item key={'issues_count'} value="desc">任务从多到少</Menu.Item>
<Menu.Item key={'issues_count'} value="asc">任务从少到多</Menu.Item>
</Menu>
)
@ -265,15 +265,15 @@ class Milepost extends Component{
return(
<div className="main">
<div>
<div className="topWrapper">
<Nav {...this.props} {...this.state} />
{
data && data.user_admin_or_member ?
<Link to={`/projects/${projectsId}/orders/meilpost`} className="topWrapper_btn">新的里程碑</Link>
: ''
}
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state} />*/}
{/*{*/}
{/*data && data.user_admin_or_member ?*/}
{/*<Link to={`/projects/${projectsId}/orders/meilpost`} className="topWrapper_btn">新的里程碑</Link>*/}
{/*: ''*/}
{/*}*/}
</div>
{/*</div>*/}
<div style={{display: this.state.display}}>
<div className="tagdiv" >
<span>里程碑{ data && data.issue_tags_count }已创建</span>
@ -286,6 +286,8 @@ class Milepost extends Component{
{/* <span onClick={this.opneMilelist}>{ data && data.open_count }</span>
<span onClick={this.closeMilelist}>{ data && data.closed_count }已关闭</span> */}
</div>
<div className="topWrapper_select">
<ul className="topWrapper_select">
<li>
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
@ -293,6 +295,13 @@ class Milepost extends Component{
</Dropdown>
</li>
</ul>
{
data && data.user_admin_or_member ?
<Link to={`/projects/${projectsId}/orders/meilpost`} className="topWrapper_btn">新的里程碑</Link>
: ''
}
</div>
</div>
{ renderList()}

View File

@ -287,7 +287,7 @@ class MilepostDetail extends Component{
<p>{data&&data.name}</p>
<div className="milepostdiv">
<Link to={`/projects/${projectsId}/orders/${meilid}/meilpost`} className="topWrapper_btn" style={{marginRight:15}} >编辑里程碑</Link>
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建工单</Link>
<Link to={`/projects/${projectsId}/orders/new`} className="topWrapper_btn">创建任务</Link>
</div>
</div>
<div className="grid-item mr10">

View File

@ -114,7 +114,7 @@ class New extends Component{
attachment_ids:fileList
}).then(result=>{
if(result){
this.props.showNotification("工单创建成功!");
this.props.showNotification("任务创建成功!");
this.props.history.push(`/projects/${projectsId}/orders`);
}
}).catch(error=>{
@ -146,9 +146,9 @@ class New extends Component{
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state} />
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state} />*/}
{/*</div>*/}
<Form>
<div className="f-wrap-between mt20" style={{alignItems:"flex-start"}}>
<div className="list-right df">
@ -157,7 +157,7 @@ class New extends Component{
<Form.Item>
{getFieldDecorator('subject', {
rules: [{
required: true, message: '请填写工单标题'
required: true, message: '请填写任务标题'
}],
})(
<Input placeholder="标题"/>
@ -172,14 +172,14 @@ class New extends Component{
}}
// autoFocus={true}
style={{ height: '180px' }}
placeholder="请输入工单的描述..."
placeholder="请输入任务的描述..."
options={options}
onContentChange={this.onContentChange}
/>
</div>
<UploadComponent load={this.UploadFunc} showNotification={this.props.showNotification} isComplete={true}></UploadComponent>
<p className="clearfix mt15">
<a className="topWrapper_btn fr" type="submit" onClick={this.handleSubmit}>创建Issue</a>
<a className="topWrapper_btn fr" type="submit" onClick={this.handleSubmit}>创建任务</a>
</p>
</div>
</div>

View File

@ -301,7 +301,7 @@ class Tags extends Component{
{item.name}
</span>
<span className="hide-1 width50 mr10">{item.description}</span>
<span className="width15 mr10">{item.issues_count}个开启的工单</span>
<span className="width15 mr10">{item.issues_count}个开启的任务</span>
{
data && data.user_admin_or_member ?
<div className="width15 text-right">

View File

@ -241,9 +241,9 @@ class UpdateDetail extends Component{
issue_chosen , branches, subject, textcount,get_attachments } = this.state;
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*</div>*/}
<div>
<Form>
<div className="f-wrap-between mt20" style={{alignItems:"flex-start"}}>
@ -253,7 +253,7 @@ class UpdateDetail extends Component{
<Form.Item>
{getFieldDecorator('subject', {
rules: [{
required: true, message: '请填写工单标题'
required: true, message: '请填写任务标题'
}],
initialValue: subject
})(
@ -269,7 +269,7 @@ class UpdateDetail extends Component{
}}
// autoFocus={true}
style={{ height: '170px' }}
placeholder="请输入工单的描述..."
placeholder="请输入任务的描述..."
options={options}
onContentChange={this.onContentChange}
/>

View File

@ -109,14 +109,14 @@ class UpdateMilepost extends Component{
return(
<div className="main">
<Form>
<div className="topWrapper">
<Nav {...this.props} {...this.state} />
{/* <a onClick={this.newshow} className="topWrapper_btn" >新建里程碑</a> */}
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state} />*/}
{/*/!* <a onClick={this.newshow} className="topWrapper_btn" >新建里程碑</a> *!/*/}
{/*</div>*/}
<div style={{marginLeft:15, marginTop: 24}}>
<h1 >编辑里程碑</h1>
<h5 className="mt-5 color-grey-9">里程碑组织工单合并请求和跟踪进度.</h5>
<h5 className="mt-5 color-grey-9">里程碑可以组织任务和合并请求跟踪进度.</h5>
</div>
<Divider/>
<div style={{display:'flex'}}>
@ -140,7 +140,7 @@ class UpdateMilepost extends Component{
required: true, message: '请输入描述内容'
}],
})(
<TextArea placeholder="添加一个可选的扩展描述。。。" style={{height:"300px"}} />
<TextArea placeholder="请输入描述内容..." style={{height:"150px"}} />
)}
</Form.Item>

View File

@ -77,14 +77,14 @@ class NewMilepost extends Component{
return(
<div className="main">
<Form>
<div className="topWrapper">
<Nav {...this.props} {...this.state} />
{/* <a onClick={this.newshow} className="topWrapper_btn" >新建里程碑</a> */}
</div>
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state} />*/}
{/*/!* <a onClick={this.newshow} className="topWrapper_btn" >新建里程碑</a> *!/*/}
{/*</div>*/}
<div style={{marginLeft:15, marginTop: 24}}>
<h1 >新的里程碑</h1>
<h5 className="mt-5 color-grey-9">里程碑组织工单合并请求和跟踪进度.</h5>
<h5 className="mt-5 color-grey-9">里程碑可以组织任务和合并请求跟踪进度.</h5>
</div>
<Divider/>
<div style={{display:'flex'}}>
@ -108,7 +108,7 @@ class NewMilepost extends Component{
required: true, message: '请输入描述内容'
}],
})(
<TextArea placeholder="添加一个可选的扩展描述。。。" style={{height:"300px"}}/>
<TextArea placeholder="请输入描述内容..." style={{height:"150px"}}/>
)}
</Form.Item>

View File

@ -266,7 +266,7 @@
margin-bottom: 0px;
}
/*编辑工单*/
/*编辑任务*/
.editingsheet{
background: #ffffff;
color: #21ba45!important;
@ -361,7 +361,7 @@
top: 14px;
right: 100%;
}
/* 工单标签列表 */
/* 任务标签列表 */
.tagList > div{
border-bottom: 1px dashed #f4f4f4;
display: flex;
@ -433,7 +433,7 @@
padding: 15px;
width: 30%;
}
/* 工单详情 */
/* 任务详情 */
.detailContent{
padding:15px 0px;
border-bottom: 1px solid #f4f4f4;

View File

@ -372,13 +372,13 @@ class order extends Component{
)
return(
<div className="main">
<div className="topWrapper">
<Nav {...this.props} {...this.state}/>
{
<a className="topWrapper_btn" onClick={()=>this.islogin()} >创建工单</a>
}
{/*<div className="topWrapper">*/}
{/*<Nav {...this.props} {...this.state}/>*/}
{/*{*/}
{/*<a className="topWrapper_btn" onClick={()=>this.islogin()} >创建任务</a>*/}
{/*}*/}
</div>
{/*</div>*/}
<div className="topWrapper" style={{borderBottom:"none"}}>
<p className="topWrapper_type">
@ -387,13 +387,18 @@ class order extends Component{
{/* <span onClick={this.openorder} className={author_id ? "active":""}>{data && data.open_count}</span>
<span onClick={this.closeorder} className={author_id ? "active":""}>{data && data.close_count}个已关闭</span> */}
</p>
<div className="target-detail-search">
<Search
placeholder="搜索"
enterButton
onSearch={this.searchFunc}
style={{ width: 300 }}
/>
<div className="topWrapper_select">
<div className="target-detail-search">
<Search
placeholder="搜索"
enterButton
onSearch={this.searchFunc}
style={{ width: 300 }}
/>
</div>
<a className="topWrapper_btn ml10" onClick={()=>this.islogin()} >创建任务</a>
</div>
</div>
<Spin spinning={isSpin}>

View File

@ -19,6 +19,10 @@ const Collaborator = Loadable({
loader: () => import('./Collaborator'),
loading: Loading,
})
const Tags = Loadable({
loader: () => import('./new_tags'),
loading: Loading,
})
class Index extends Component{
render(){
const { projectsId } = this.props.match.params;
@ -30,6 +34,7 @@ class Index extends Component{
<ul className="settingNav">
<li className={flag?"active":""}><Link to={`/projects/${projectsId}/setting`}>仓库</Link></li>
<li className={pathname.indexOf('setting/collaborator')>-1?"active":""}><Link to={`/projects/${projectsId}/setting/collaborator`}>协作者</Link></li>
<li className={pathname.indexOf('setting/tags')>-1?"active":""}><Link to={`/projects/${projectsId}/setting/tags`}>项目标签</Link></li>
{/* <li className={pathname.indexOf('setting/branch')>-1?"active":""}><Link to={`/projects/${projectsId}/setting/branch`}>分支列表</Link></li> */}
</ul>
<div className="main">
@ -41,11 +46,18 @@ class Index extends Component{
}
></Route>
{/* 修改仓库信息 */}
<Route path="/projects/:projectsId/setting/tags"
render={
(props) => (<Tags {...this.props} {...props} {...this.state}/>)
}
></Route>
{/* 修改仓库信息 */}
<Route path="/projects/:projectsId/setting"
render={
(props) => (<Setting {...this.props} {...props} {...this.state}/>)
}
></Route>
</Switch>
</div>
</div>

View File

@ -199,7 +199,7 @@ class Setting extends Component{
<div className="flex-a-center padding15-10">
<div>
<p className="font-bd font-16">删除本仓库</p>
<p className="mt10">删除仓库是永久性的, 无法撤消且删除后与仓库关联的项目/工单/合并请求/版本发布等均会被删除</p>
<p className="mt10">删除仓库是永久性的, 无法撤消且删除后与仓库关联的项目/任务/合并请求/版本发布等均会被删除</p>
</div>
<a onClick={this.deleteProject} className="red_deleteBtn">删除本仓库</a>
</div>

View File

@ -0,0 +1,434 @@
import React , {Component} from 'react';
import { Dropdown , Icon , Menu , Pagination, Modal,Input,Popconfirm,Form } from 'antd';
import { Link } from 'react-router-dom';
import '../Order/order.css'
import NoneData from '../Nodata';
import { SketchPicker } from 'react-color'
import reactCSS from 'reactcss'
import axios from 'axios';
class NewTags extends Component{
constructor(props){
super(props);
this.state={
data:undefined,
limit:15,
page:1,
order_name:undefined,
order_type:undefined,
//新建标签区域是否显示 none 隐藏 block 显示
display:'none',
//调色盘颜色
displayColorPicker: false,
color: {
r: '241',
g: '112',
b: '19',
a: '1',
},
textcolor:'#F17013',
isShow:false,
newcolor:'',
name:'',
description:'',
id:'',
modelname:''
}
}
componentDidMount=()=>{
this.getList();
}
getList=(page,order_name,order_type)=>{
const { projectsId } = this.props.match.params;
const { limit } = this.state;
const url = `/projects/${projectsId}/issue_tags.json`;
axios.get(url,{
params:{
page,limit,order_name,order_type
}
}).then((result)=>{
if(result){
this.setState({
data:result.data
})
}
}).catch((error)=>{
console.log(error);
})
}
createtagpost=()=>{
this.props.form.validateFieldsAndScroll((err, values) => {
if(!err){
const { projectsId } = this.props.match.params;
const url = `/projects/${projectsId}/issue_tags.json`;
axios.post(url,{
...values,
project_id:projectsId,
color:this.state.textcolor
}).then(result=>{
if(result){
this.props.form.setFieldsValue({
name: "",
description: ""
});
this.setState({
color: {
r: '241',
g: '112',
b: '19',
a: '1',
},
textcolor:'#F17013',
display:'none'
});
this.getList()
}
}).catch(error=>{
console.log(error);
})
}
})
}
ChangePage=(page)=>{
this.setState({
page
})
this.getList(page);
}
// 排序
arrayList=(e)=>{
this.setState({
order_name:e.key,
order_type:e.item.props.value
})
this.getList(1,e.key,e.item.props.value);
}
handleClick = () => {
this.setState({ displayColorPicker: !this.state.displayColorPicker })
};
handleClose = () => {
this.setState({ displayColorPicker: false })
};
handleChange = (color) => {
this.setState({
color: color.rgb,
textcolor:color.hex,
newcolor:color.hex,
})
};
//控制新建标签页是否显示
newshow=()=>{
this.setState({
display:'block'
});
};
newclose=()=>{
this.setState({
display:'none'
});
};
handleok=()=>{
this.updatetag();
}
updatetag=()=>{
const { projectsId } = this.props.match.params;
let id=this.state.id;
const url = `/projects/${projectsId}/issue_tags/${id}.json`;
let name=this.state.name;
let description=this.state.description;
let modalcolor=this.state.newcolor
axios.put(url,{
project_id:projectsId,
id:id,
name:name,
description:description,
color:modalcolor
}).then((result)=>{
if(result){
this.setState({
isShow:false
});
this.getList()
}
}).catch((error)=>{
console.log(error);
})
}
deletetag=(id)=>{
const { projectsId } = this.props.match.params;
const url = `/projects/${projectsId}/issue_tags/${id}.json`;
axios.delete(url,{ data: {
project_id: projectsId,
id: id
}
}).then((result)=>{
if(result){
this.getList()
}
}).catch((error)=>{
console.log(error);
})
}
handleCancel=()=>{
this.setState({
isShow:false
});
}
changmodelname=(e)=>{
this.setState({
name:e.target.value
})
}
changdescription=(e)=>{
this.setState({
description:e.target.value
})
}
editshow=(arr)=>{
this.setState({
isShow:true,
newcolor:arr.color,
name:arr.name,
description:arr.description,
id:arr.id
});
};
render(){
const { data , limit , page } = this.state;
const { projectsId } = this.props.match.params;
const { getFieldDecorator } = this.props.form;
const menu = (
<Menu onClick={this.arrayList}>
<Menu.Item key={'created_at'} value="desc">按创建时间降序排序</Menu.Item>
<Menu.Item key={'created_at'} value="asc">按创建时间升序排序</Menu.Item>
<Menu.Item key={'issues_count'} value="desc">按issue个数降序排序</Menu.Item>
<Menu.Item key={'issues_count'} value="asc">按issue个数升序排序</Menu.Item>
</Menu>
)
const styles = reactCSS({
'default': {
color: {
width: '20px',
height: '20px',
borderRadius: '2px',
background: `rgba(${ this.state.color.r }, ${ this.state.color.g }, ${ this.state.color.b }, ${ this.state.color.a })`,
},
swatch: {
padding: '5px',
background: '#fff',
borderRadius: '1px',
width:'100px',
marginTop:'5px',
height:'28px',
boxShadow: '0 0 0 1px rgba(0,0,0,.1)',
display: 'flex',
cursor: 'pointer',
},
popover: {
position: 'absolute',
zIndex: '2',
},
cover: {
position: 'fixed',
top: '0px',
right: '0px',
bottom: '0px',
left: '0px',
},
modalcolor:{
width: '20px',
height: '20px',
borderRadius: '2px',
background: this.state.newcolor,
}
},
});
const Paginations = (
<React.Fragment>
{
data && data.issue_tags_count > limit ?
<div className="mt30 mb50 edu-txt-center">
<Pagination simple defaultCurrent={page} total={data && data.issue_tags_count} pageSize={limit} onChange={this.ChangePage}></Pagination>
</div>:""
}
</React.Fragment>
)
const renderList =()=>{
if(data && data.issue_tags && data.issue_tags.length>0 ){
return(
<div>
<div className="topWrapper">
<span>{ data && data.issue_tags_count }个标签</span>
<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>
<div className="tagList">
{
data.issue_tags.map((item,key)=>{
return(
<div>
<span className="width20 mr10">
<span style={{backgroundColor:`${item.color}`}} className="tagColor"></span>
{item.name}
</span>
<span className="hide-1 width50 mr10">{item.description}</span>
<span className="width15 mr10">{item.issues_count}个开启的任务</span>
{
data && data.user_admin_or_member ?
<div className="width15 text-right">
<a onClick={()=>this.editshow(item)} className="topWrapper_btn fr" >编辑</a>
<Popconfirm placement="bottom" title={'删除标签会将其从所有引用中删除。继续?'} okText="是" cancelText="否" onConfirm={()=>this.deletetag(item.id)}>
<a className="a_btn delete_btn fr" >删除</a>
</Popconfirm>
</div>
: ''
}
</div>
)
})
}
</div>
</div>
)
}else{
return(
<NoneData _html="暂时还没有相关数据哦!" />
)
}
}
return(
<div className="main">
<div className="normalBox">
<div className="normalBox-title font-16 topWrapper_select" style={{"justify-content":"space-between"}}>
<span className="topWrapper_select">项目标签</span>
{
data && data.user_admin_or_member ?
<div className="topWrapper_select">
<a onClick={this.newshow} className="topWrapper_btn" >创建标签</a>
</div>
: ''
}
</div>
<div style={{display: this.state.display}} className="padding15">
<Form>
<div className="tagdiv" >
<Form.Item
className="inptwidth"
>
{getFieldDecorator('name', {
rules: [{
required: true, message: '请填写标签名字'
}],
})(
<Input placeholder="标签名字" maxLength="10"/>
)}
</Form.Item>
<Form.Item
className="inputcount"
>
{getFieldDecorator('description', {
rules: [{
required: true, message: '描述不能为空'
}],
})(
<Input placeholder="描述, 30字以内" maxLength="30"/>
)}
</Form.Item>
<div>
<div style={ styles.swatch } onClick={ this.handleClick }>
<div style={ styles.color }>
<p style={{paddingLeft:25}}>{this.state.textcolor}</p>
</div>
</div>
{ this.state.displayColorPicker ? <div style={ styles.popover }>
<div style={ styles.cover } onClick={ this.handleClose }/>
<SketchPicker color={ this.state.color } onChange={ this.handleChange } />
</div> :
null }
</div>
<div className="fr" style={{marginTop:5}}>
<a onClick={this.createtagpost} className="topWrapper_btn fr" >创建标签</a>
<a onClick={this.newclose} className="a_btn cancel_btn fr" >取消</a>
</div>
</div>
</Form>
</div>
<div className="padding15">
{ renderList() }
{ Paginations }
</div>
</div>
<Modal
title="编辑标签"
onCancel={this.handleCancel}
visible={this.state.isShow}
onOk={this.handleok}
mask={true}
width="60%"
>
<div className="dialogdiv">
<Input placeholder="标签名字" maxLength="10" className="inptwidth" value={this.state.name} onChange={this.changmodelname}/>
<Input placeholder="描述, 30字以内" maxLength="30" className="inputcount" value={this.state.description} onChange={this.changdescription}/>
<div>
<div style={ styles.swatch } onClick={ this.handleClick }>
<div style={ styles.modalcolor }>
<p style={{paddingLeft:25,width:100}}>{this.state.newcolor}</p>
</div>
</div>
{ this.state.displayColorPicker ? <div style={ styles.popover }>
<div style={ styles.cover } onClick={ this.handleClose }/>
<SketchPicker color={ this.state.color } onChange={ this.handleChange } />
</div> :
null }
</div>
</div>
</Modal>
</div>
)
}
}
const WrappedTags = Form.create({ name: 'tageFrom' })(NewTags);
export default WrappedTags;

View File

@ -142,7 +142,7 @@ class NewVersion extends Component{
<div className="main">
<Form>
<h1 style={{marginLeft:15,marginTop:20}}>发布新版</h1>
<h5 style={{marginLeft:15}}>版本发布组织项目的版本</h5>
<h5 style={{marginLeft:15}}>发布一个特定的打包好的项目版本</h5>
<Divider/>
<div style={{display:'flex'}}>
<Input placeholder="标签名称" style={{width:180,marginLeft:15}} value={tag_name} onChange={this.changmodelname} />
@ -172,7 +172,7 @@ class NewVersion extends Component{
required: true, message: '请输入描述内容'
}],
})(
<TextArea placeholder="添加描述内容..." style={{height:"300px"}}/>
<TextArea placeholder="添加描述内容..." style={{'min-height':"150px"}}/>
)}
</Form.Item>
@ -181,9 +181,8 @@ class NewVersion extends Component{
</div>
<Divider/>
<div className="fr">
<Checkbox onChange={this.RedieonChange}>标记为预行版</Checkbox>
<p>标记此版本不适合生产使用</p>
<div className="fr mb15">
<Checkbox onChange={this.RedieonChange}>标记为预行版<span className="ml15 color-grey-9 font-13">(此版本不适合生产使用)</span></Checkbox>
</div>
<div className="clearfix mt15" style={{marginTop:5}} >
<a className='topWrapper_btn_close fr' onClick={()=>this.handleSubmit(true)} style={{marginLeft:15}} >保存草稿</a> <a className='topWrapper_btn fr' onClick={()=>this.handleSubmit(false)} style={{marginRight:15}}></a>

View File

@ -134,8 +134,8 @@ class NewVersion extends Component{
return(
<div className="main">
<Form>
<h1 style={{marginLeft:15,marginTop:20}}>发布新版</h1>
<h5 style={{marginLeft:15}}>版本发布组织项目的版本</h5>
<h1 style={{marginLeft:15,marginTop:20}}>编辑版本</h1>
<h5 style={{marginLeft:15}}>编辑这个特定的打包好的项目版本</h5>
<Divider/>
<div style={{display:'flex',marginLeft:15}}>
{this.state.data&&this.state.data.tag_name}@{this.state.data&&this.state.data.target_commitish}
@ -164,7 +164,7 @@ class NewVersion extends Component{
}],
initialValue:this.state.data&&this.state.data.body
})(
<TextArea placeholder="添加一个可选的扩展描述。。。" style={{height:"300px"}}/>
<TextArea placeholder="添加描述内容..." style={{'min-height':"150px"}}/>
)}
</Form.Item>
@ -174,12 +174,11 @@ class NewVersion extends Component{
<Divider/>
<div style={{textAlign:"right"}}>
<Checkbox onChange={this.RedieonChange}>标记为预行版</Checkbox>
<p className="mt5">标记此版本不适合生产使用</p>
<Checkbox onChange={this.RedieonChange}>标记为预行版<span className="ml15 color-grey-9 font-13">(此版本不适合生产使用)</span></Checkbox>
</div>
<div className="clearfix mt15" style={{marginTop:5}} >
<a className='topWrapper_btn_delete fr' onClick={()=>this.deleteversion()} style={{marginLeft:15}}>删除发布</a>
<a className='topWrapper_btn fr' onClick={()=>this.handleSubmit()} style={{marginRight:15}}>保存发布信息</a>
<a className='topWrapper_btn fr' onClick={()=>this.handleSubmit()} style={{marginRight:15}}>发布版本</a>
<Link to={`/projects/${projectsId}/version`} style={{marginRight:30}} className='topWrapper_btn fr'>取消</Link>
</div>
</Form>

View File

@ -3,7 +3,7 @@ import {Link} from 'react-router-dom';
import { Input } from 'antd';
import NoneData from '../Nodata';
import './version.css';
import { getImageUrl } from 'educoder';
import axios from 'axios';
/**
@ -58,93 +58,96 @@ class version extends Component{
})
}
render(){
const { projectsId } = this.props.match.params;
const{data}=this.state
const renderList =()=>{
if(data && data.releases){
if( data.releases.length>0 ){
return(
<div>{
data.releases.map((item,key)=>{
return(
<div key={key}>
{
item && item.id ?
<div>
<div style={{display:'flex'}}>
<div className="versionleft">
<div className="versionrighe"></div><span  className={item&&item.draft===""?"opendversionetail":"closedversionetail"} style={{marginTop:5,margin:'auto',marginRight:15}}>{item.draft} </span>
</div>
<div className="version_line_one">
<p className="versionrectangle"> </p>
</div>
<div className="versionrighe">
<h1 style={{marginLeft:15,marginTop:5}}>{item.name}
{
data && data.user_permission ?
<Link to={`/projects/${projectsId}/version/${item.version_id}/upversion`} style={{color:'blue',fontSize:10,marginLeft:5}}>(编辑)</Link>
: ''
}
</h1>
</div>
if(data && data.releases && data.releases.length>0 ){
return(
<div>{
data.releases.map((item,key)=>{
return(
<div key={key}>
{
item && item.id ?
<div>
<div style={{display:'flex'}}>
<div className="versionleft">
<div className="versionrighe"></div><span  className={item&&item.draft===""?"opendversionetail":"closedversionetail"} style={{marginTop:5,margin:'auto',marginRight:15}}>{item.draft} </span>
</div>
<div className="version_line_one">
<p className="versionrectangle"> </p>
</div>
<div className="versionrighe">
<h1 style={{marginLeft:15,marginTop:5}}>{item.name}
{
data && data.user_permission ?
<Link to={`/projects/${projectsId}/version/${item.version_id}/upversion`} style={{color:'blue',fontSize:10,marginLeft:5}}>(编辑)</Link>
: ''
}
</h1>
</div>
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,margin:'auto',marginRight:15}}>{item.tag_name} </span>
</div>
<div className="version_line_one">
<p style={{width:4}}> </p>
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,margin:'auto',marginRight:15}}>{item.tag_name} </span>
</div>
<div className="version_line_one">
<p style={{width:4}}> </p>
</div>
<div className="versionrighe">
<h5 style={{marginLeft:15,marginTop:10}}>{item.body} </h5>
</div>
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,marginRight:15}}></span>
</div>
<div className="version_line_tpw">
<p style={{width:4}}> </p>
</div>
<div className="versionrighe">
<h1 style={{marginLeft:15,marginTop:10}}>下载附件
</h1>
<a href={item.zipball_url} download="源代码(ZIP)" style={{color:'blue',marginLeft:15}}>源代码(ZIP)</a>
<a href={item.tarball_url} download="源文件(TAR.GZ)" style={{color:'blue',marginLeft:15}}>源文件(TAR.GZ)</a>
</div>
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,marginRight:15}}></span>
</div>
<div className="version_line_tpw">
<p style={{width:4}}> </p>
</div>
<div className="versionrighe">
</div>
</div>
<div className="versionrighe">
<h5 style={{marginLeft:15,marginTop:10}}>{item.body} </h5>
<div className="ml15">
<img src={getImageUrl(`images/${item.image_url}`)} alt="" width="28px" height="28px" className="mr3 radius"/>
<span className="mr10">{item.user_name}</span>
<span className="color-grey-9">发布于{item.created_at}</span>
</div>
</div>
:
""
}
</div>
)
})
}
</div>
)
}else{
return(
<NoneData _html="暂时还没有相关数据哦!" />
)
}
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,marginRight:15}}></span>
</div>
<div className="version_line_tpw">
<p style={{width:4}}> </p>
</div>
<div className="versionrighe">
<h1 style={{marginLeft:15,marginTop:10}}>下载附件
</h1>
<a href={item.zipball_url} download="源代码(ZIP)" style={{color:'blue',marginLeft:15}}>源代码(ZIP)</a>
<a href={item.tarball_url} download="源文件(TAR.GZ)" style={{color:'blue',marginLeft:15}}>源文件(TAR.GZ)</a>
</div>
</div>
<div style={{display:'flex'}}>
<div className="versionleft">
<span style={{marginTop:5,marginRight:15}}></span>
</div>
<div className="version_line_tpw">
<p style={{width:4}}> </p>
</div>
<div className="versionrighe">
</div>
</div>
</div>
:
""
}
</div>
)
})
}
</div>
)
}else{
return(
<NoneData _html="暂时还没有相关数据哦!" />
)
}
}
@ -158,12 +161,12 @@ class version extends Component{
: ''
}
</div>
<div>
{renderList()}
</div>
</div>
<div>
{renderList()}
</div>
</div>
)
}
}

View File

@ -6,7 +6,7 @@ let _path = isDev() ? 'public' : 'build'
let _testHost = '' ; // 'http://192.168.2.63:3001/api' ; // '' ;
let login = 'innov'
// 工单注释
// 任务注释
// https://workorder.console.aliyun.com/console.htm#/ticket/detail/?ticketId=FLASELR
// https://workorder.console.aliyun.com/console.htm#/ticket/detail/?ticketId=1FB4APN
// https://help.aliyun.com/document_detail/52204.html?spm=5176.2020520165.120.d52204.19a47029YWhro7#%E4%B8%8A%E4%BC%A0%E5%9C%B0%E5%9D%80%E5%92%8C%E5%87%AD%E8%AF%81%E6%96%B9%E5%BC%8F(%E6%8E%A8%E8%8D%90%E4%BD%BF%E7%94%A8)