Commit 11ac5abf authored by superman's avatar superman

update

parent e404de17
......@@ -2,7 +2,18 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="ec208c71-5ff8-4642-a786-fad4f24be9b8" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/entries/index.less" afterPath="$PROJECT_DIR$/src/entries/index.less" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/containers/Users/Additem.jsx" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/containers/Users/List.jsx" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/proxy.config.js" afterPath="$PROJECT_DIR$/proxy.config.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/containers/App/App.jsx" afterPath="$PROJECT_DIR$/src/containers/App/App.jsx" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/containers/App/App.less" afterPath="$PROJECT_DIR$/src/containers/App/App.less" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/containers/index.js" afterPath="$PROJECT_DIR$/src/containers/index.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/reducers/user.js" afterPath="$PROJECT_DIR$/src/reducers/user.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/index.js" afterPath="$PROJECT_DIR$/src/routes/index.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/sagas/user.js" afterPath="$PROJECT_DIR$/src/sagas/user.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/services/user.js" afterPath="$PROJECT_DIR$/src/services/user.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/services/xFetch.js" afterPath="$PROJECT_DIR$/src/services/xFetch.js" />
</list>
<ignored path="shuniu-admin.iws" />
<ignored path=".idea/workspace.xml" />
......@@ -25,77 +36,79 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="index.less" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/entries/index.less">
<file leaf-file-name="List.jsx" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/containers/Users/List.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="118" column="50" selection-start-line="118" selection-start-column="50" selection-end-line="118" selection-end-column="50" />
<folding />
<state relative-caret-position="210">
<caret line="51" column="18" selection-start-line="51" selection-start-column="18" selection-end-line="51" selection-end-column="18" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AddItem.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/CustomMessage/AddItem.jsx">
<file leaf-file-name="user.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/services/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="69" column="99" selection-start-line="67" selection-start-column="12" selection-end-line="69" selection-end-column="99" />
<state relative-caret-position="330">
<caret line="22" column="27" selection-start-line="22" selection-start-column="27" selection-end-line="22" selection-end-column="27" />
<folding>
<element signature="e#0#50#0" expanded="true" />
<element signature="e#0#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BaseUpload.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/BaseFunction/BaseUpload.jsx">
<file leaf-file-name="xFetch.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/services/xFetch.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="53" column="33" selection-start-line="53" selection-start-column="33" selection-end-line="53" selection-end-column="33" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
<state relative-caret-position="165">
<caret line="25" column="35" selection-start-line="25" selection-start-column="35" selection-end-line="25" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="BaseInfoForm.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/components/ProductForm/BaseInfoForm.jsx">
<file leaf-file-name="user.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/sagas/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="104" column="21" selection-start-line="104" selection-start-column="21" selection-end-line="104" selection-end-column="21" />
<state relative-caret-position="300">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" />
<folding>
<element signature="e#0#50#0" expanded="true" />
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Product.less" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Product/Product.less">
<file leaf-file-name="index.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="28" column="38" selection-start-line="28" selection-start-column="38" selection-end-line="28" selection-end-column="38" />
<state relative-caret-position="360">
<caret line="24" column="16" selection-start-line="24" selection-start-column="7" selection-end-line="24" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AddItem.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Announcement/AddItem.jsx">
<file leaf-file-name="index.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492">
<caret line="65" column="10" selection-start-line="50" selection-start-column="8" selection-end-line="65" selection-end-column="10" />
<folding />
<state relative-caret-position="570">
<caret line="80" column="72" selection-start-line="80" selection-start-column="72" selection-end-line="80" selection-end-column="72" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="EditItem.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Announcement/EditItem.jsx">
<file leaf-file-name="App.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/App/App.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="567">
<caret line="85" column="50" selection-start-line="85" selection-start-column="50" selection-end-line="85" selection-end-column="50" />
<state relative-caret-position="447">
<caret line="110" column="70" selection-start-line="110" selection-start-column="70" selection-end-line="110" selection-end-column="70" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
......@@ -103,34 +116,36 @@
</provider>
</entry>
</file>
<file leaf-file-name="List.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Product/List.jsx">
<file leaf-file-name="App.less" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/App/App.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="82" />
<state relative-caret-position="423">
<caret line="31" column="23" selection-start-line="31" selection-start-column="23" selection-end-line="31" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="List.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Trade/List.jsx">
<file leaf-file-name="user.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/reducers/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="495">
<caret line="84" column="14" selection-start-line="84" selection-start-column="14" selection-end-line="84" selection-end-column="14" />
<state relative-caret-position="447">
<caret line="39" column="83" selection-start-line="39" selection-start-column="83" selection-end-line="39" selection-end-column="83" />
<folding>
<element signature="e#0#50#0" expanded="true" />
<element signature="e#0#44#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="List.jsx" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/containers/Announcement/List.jsx">
<file leaf-file-name="trade.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/sagas/trade.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="297">
<caret line="138" column="10" selection-start-line="122" selection-start-column="8" selection-end-line="138" selection-end-column="10" />
<folding />
<state relative-caret-position="147">
<caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -148,27 +163,18 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/services/withdraw.js" />
<option value="$PROJECT_DIR$/src/services/remittance.js" />
<option value="$PROJECT_DIR$/src/sagas/remittance.js" />
<option value="$PROJECT_DIR$/src/reducers/remittance.js" />
<option value="$PROJECT_DIR$/src/containers/Remittance/Audit/List.jsx" />
<option value="$PROJECT_DIR$/src/containers/Remittance/Audit/PassItem.jsx" />
<option value="$PROJECT_DIR$/src/containers/Remittance/PassItem.jsx" />
<option value="$PROJECT_DIR$/src/containers/Withdraw/PassItem.jsx" />
<option value="$PROJECT_DIR$/src/sagas/withdraw.js" />
<option value="$PROJECT_DIR$/src/reducers/withdraw.js" />
<option value="$PROJECT_DIR$/src/services/user.js" />
<option value="$PROJECT_DIR$/src/reducers/__tests__/todos-test.js" />
<option value="$PROJECT_DIR$/src/reducers/costomMessage.js" />
<option value="$PROJECT_DIR$/proxy.config.js" />
<option value="$PROJECT_DIR$/src/services/customMessage.js" />
<option value="$PROJECT_DIR$/src/sagas/customMessage.js" />
<option value="$PROJECT_DIR$/src/components/ProductForm/HuikuanInfoForm.jsx" />
<option value="$PROJECT_DIR$/src/containers/CustomMessage/Item.jsx" />
<option value="$PROJECT_DIR$/src/containers/Trade/Item.jsx" />
<option value="$PROJECT_DIR$/src/containers/index.js" />
<option value="$PROJECT_DIR$/src/routes/index.js" />
<option value="$PROJECT_DIR$/src/components/CopyToClipboard.jsx" />
<option value="$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.less" />
<option value="$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.jsx" />
......@@ -179,14 +185,12 @@
<option value="$PROJECT_DIR$/src/containers/Product/AddItem.jsx" />
<option value="$PROJECT_DIR$/src/reducers/product.js" />
<option value="$PROJECT_DIR$/src/components/ProductForm/ShouyiYongjingForm.jsx" />
<option value="$PROJECT_DIR$/src/containers/App/App.jsx" />
<option value="$PROJECT_DIR$/src/components/MainHeader.jsx" />
<option value="$PROJECT_DIR$/src/components/MainHeader/MainHeader.jsx" />
<option value="$PROJECT_DIR$/src/containers/Remittance/List.jsx" />
<option value="$PROJECT_DIR$/src/variable.less" />
<option value="$PROJECT_DIR$/src/containers/Withdraw/List.jsx" />
<option value="$PROJECT_DIR$/src/containers/CustomMessage/List.jsx" />
<option value="$PROJECT_DIR$/src/containers/App/App.less" />
<option value="$PROJECT_DIR$/src/containers/CustomMessage/AddItem.jsx" />
<option value="$PROJECT_DIR$/src/components/Layout/Layout.less" />
<option value="$PROJECT_DIR$/src/components/MainHeader/MainHeader.less" />
......@@ -199,6 +203,17 @@
<option value="$PROJECT_DIR$/src/containers/Product/Product.less" />
<option value="$PROJECT_DIR$/src/containers/Trade/List.jsx" />
<option value="$PROJECT_DIR$/src/entries/index.less" />
<option value="$PROJECT_DIR$/proxy.config.js" />
<option value="$PROJECT_DIR$/src/containers/Users/Additem.jsx" />
<option value="$PROJECT_DIR$/src/reducers/user.js" />
<option value="$PROJECT_DIR$/src/sagas/user.js" />
<option value="$PROJECT_DIR$/src/containers/index.js" />
<option value="$PROJECT_DIR$/src/routes/index.js" />
<option value="$PROJECT_DIR$/src/containers/App/App.less" />
<option value="$PROJECT_DIR$/src/containers/App/App.jsx" />
<option value="$PROJECT_DIR$/src/services/xFetch.js" />
<option value="$PROJECT_DIR$/src/services/user.js" />
<option value="$PROJECT_DIR$/src/containers/Users/List.jsx" />
</list>
</option>
</component>
......@@ -283,7 +298,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="entries" />
<option name="myItemId" value="services" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -301,7 +316,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="containers" />
<option name="myItemId" value="sagas" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -319,11 +334,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="containers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Withdraw" />
<option name="myItemId" value="routes" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -341,11 +352,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="containers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Trade" />
<option name="myItemId" value="reducers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -363,11 +370,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="containers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Remittance" />
<option name="myItemId" value="entries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -388,10 +391,6 @@
<option name="myItemId" value="containers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Product" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
......@@ -411,7 +410,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CustomMessage" />
<option name="myItemId" value="Users" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -433,7 +432,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="BaseFunction" />
<option name="myItemId" value="Trade" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -1056,12 +1055,12 @@
<workItem from="1468394206076" duration="1879000" />
<workItem from="1468396235889" duration="33823000" />
<workItem from="1468540294765" duration="94258000" />
<workItem from="1468995021353" duration="165529000" />
<workItem from="1468995021353" duration="168772000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="295489000" />
<option name="totallyTimeSpent" value="298732000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1074,7 +1073,7 @@
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1280" height="800" extended-state="0" />
<editor active="false" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.329235" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
......@@ -1084,7 +1083,7 @@
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32876712" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32739726" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32739726" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24071082" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
......@@ -1146,102 +1145,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/reducers/announcement.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="495">
<caret line="33" column="6" selection-start-line="0" selection-start-column="0" selection-end-line="46" selection-end-column="0" />
<folding>
<element signature="e#0#44#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/proxy.config.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="642">
<caret line="78" column="2" selection-start-line="78" selection-start-column="2" selection-end-line="78" selection-end-column="2" />
<folding>
<element signature="n#!!doc" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/xFetch.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="22" column="53" selection-start-line="22" selection-start-column="53" selection-end-line="22" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/customMessage.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="28" selection-start-line="4" selection-start-column="28" selection-end-line="4" selection-end-column="28" />
<folding>
<element signature="e#0#30#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/ProductForm/HuikuanInfoForm.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="402">
<caret line="77" column="79" selection-start-line="77" selection-start-column="79" selection-end-line="77" selection-end-column="79" />
<folding>
<element signature="e#0#50#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/sagas/customMessage.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="11" column="39" selection-start-line="11" selection-start-column="39" selection-end-line="11" selection-end-column="39" />
<folding>
<element signature="e#0#38#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/reducers/customMessage.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="32" column="14" selection-start-line="32" selection-start-column="14" selection-end-line="32" selection-end-column="14" />
<folding>
<element signature="e#0#44#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/CustomMessage/Item.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1500">
<caret line="100" column="38" selection-start-line="100" selection-start-column="30" selection-end-line="100" selection-end-column="38" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="22" column="17" selection-start-line="22" selection-start-column="7" selection-end-line="22" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492">
<caret line="74" column="58" selection-start-line="74" selection-start-column="58" selection-end-line="74" selection-end-column="58" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
......@@ -1384,16 +1287,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/App/App.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="567">
<caret line="112" column="34" selection-start-line="112" selection-start-column="34" selection-end-line="112" selection-end-column="34" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/MainHeader/MainHeader.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
......@@ -1478,14 +1371,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/App/App.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="573">
<caret line="113" column="27" selection-start-line="113" selection-start-column="27" selection-end-line="113" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/Layout/Layout.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
......@@ -1568,40 +1453,152 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Product/List.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="82" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/entries/index.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="118" column="50" selection-start-line="118" selection-start-column="50" selection-end-line="118" selection-end-column="50" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Announcement/AddItem.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492">
<caret line="65" column="10" selection-start-line="50" selection-start-column="8" selection-end-line="65" selection-end-column="10" />
<state relative-caret-position="387">
<caret line="58" column="10" selection-start-line="0" selection-start-column="0" selection-end-line="90" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Product/List.jsx">
<entry file="file://$PROJECT_DIR$/proxy.config.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="82" />
<state relative-caret-position="45">
<caret line="3" column="18" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Users/Additem.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="38" column="54" selection-start-line="38" selection-start-column="54" selection-end-line="38" selection-end-column="54" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Trade/List.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="495">
<caret line="84" column="14" selection-start-line="84" selection-start-column="14" selection-end-line="84" selection-end-column="14" />
<state relative-caret-position="510">
<caret line="98" column="22" selection-start-line="0" selection-start-column="0" selection-end-line="238" selection-end-column="0" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/entries/index.less">
<entry file="file://$PROJECT_DIR$/src/reducers/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="118" column="50" selection-start-line="118" selection-start-column="50" selection-end-line="118" selection-end-column="50" />
<state relative-caret-position="447">
<caret line="39" column="83" selection-start-line="39" selection-start-column="83" selection-end-line="39" selection-end-column="83" />
<folding>
<element signature="e#0#44#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/sagas/trade.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="147">
<caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/sagas/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="24" column="16" selection-start-line="24" selection-start-column="7" selection-end-line="24" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="570">
<caret line="80" column="72" selection-start-line="80" selection-start-column="72" selection-end-line="80" selection-end-column="72" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/App/App.less">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="423">
<caret line="31" column="23" selection-start-line="31" selection-start-column="23" selection-end-line="31" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/App/App.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="447">
<caret line="110" column="70" selection-start-line="110" selection-start-column="70" selection-end-line="110" selection-end-column="70" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/xFetch.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="25" column="35" selection-start-line="25" selection-start-column="35" selection-end-line="25" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="22" column="27" selection-start-line="22" selection-start-column="27" selection-end-line="22" selection-end-column="27" />
<folding>
<element signature="e#0#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/containers/Users/List.jsx">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="51" column="18" selection-start-line="51" selection-start-column="18" selection-end-line="51" selection-end-column="18" />
<folding>
<element signature="e#0#50#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
......
......@@ -2,78 +2,6 @@
// - https://github.com/dora-js/dora-plugin-proxy#规则定义
module.exports = {
'/api/todos': function (req, res) {
setTimeout(function () {
res.json({
status: 1,
result: [
{
id: 1,
text: 'Learn antd',
isComplete: true,
},
{
id: 2,
text: 'Learn ant-tool',
},
{
id: 3,
text: 'Learn dora',
},
],
});
}, 500);
},
'/api/catessddsd': function (req, res) {
setTimeout(()=>{
res.json({
status:1,
result:[
{
value:1,
label:'信托',
children:[
{
value:101,
label:'房产'
},{
value:102,
label:'政府'
},{
value:103,
label:'企业流贷'
}
]
},{
value:2,
label:'资管',
children:[
{
value:201,
label:'房产'
},{
value:202,
label:'政府'
},{
value:203,
label:'企业流贷'
}
]
},{
value:3,
label:'私募',
children:[
{
value:301,
label:'契约型'
}
]
}
]
})
},100);
},
'/api/*': 'http://react.yanky.cn/',
// '/api/*': 'http://192.168.1.126:8080/'
// '/api/*': 'http://react.yanky.cn/',
'/api/*': 'http://192.168.1.126:8080/'
};
......@@ -107,6 +107,16 @@ export default class App extends Component {
<MenuItemContent to="/upload" cn="图片上传" en="Upload Images"/>
</Menu.Item>
</SubMenu>
<SubMenu key="sub3" title={<span><Icon type="folder" /><span>管理员</span></span>}>
<MenuItemGroup title='用户管理' key='users'>
<Menu.Item>
<MenuItemContent to="/admin/users" cn="用户列表" en="Users"/>
</Menu.Item>
<Menu.Item>
<MenuItemContent to="/admin/users/create" cn="创建用户" en="Create users"/>
</Menu.Item>
</MenuItemGroup>
</SubMenu>
</Menu>
</section>
<footer>
......
......@@ -29,6 +29,7 @@
}
& > section {
flex: 1;
overflow: auto;
}
:global {
......
import React, {Component, PropTypes} from 'react';
import {connect} from 'react-redux';
import {
Row,
Col,
Form,
Input,
Button,
Checkbox,
Select,
message,
Tabs,
Cascader,
Radio,
Upload,
Icon,
Modal,
DatePicker,
Table,
Spin
} from 'antd';
import Layout from '../../components/Layout/Layout';
import MainHeader from '../../components/MainHeader/MainHeader';
import {formItemLayout, footerFormSubmitLayout} from '../../utils';
@connect(state=>({
loading: state.user.loading,
}))
@Form.create()
export default class AddItem extends Component {
constructor(props, content) {
super(props, content);
}
handleSubmit(e) {
e.preventDefault();
const data = this.props.form.getFieldsValue();
console.log(data);
this.props.dispatch({
type: 'CREATE_USER_ITEM',
data
});
}
render = ()=> {
const {loading, form:{getFieldProps}, location:{query}} = this.props;
const operation = (
<div style={{textAlign:'right'}}>
<Button.Group>
<Button type="ghost" onClick={e=>{e.preventDefault(); this.props.history.goBack();}}>
<Icon type="rollback"/>
</Button>
</Button.Group>
</div>
);
const header = (
<MainHeader breadcrumb={['用户管理', '添加用户']}
title="添加用户"
operation={operation}
/>
);
return (
<Layout header={header}>
<Spin spinning={loading}>
<Form className="main-form" horizontal onSubmit={this.handleSubmit.bind(this)}>
<Form.Item label="用户名" help="请使用手机号" {...formItemLayout}>
<Input placeholder="用户名" {...getFieldProps('username')} />
</Form.Item>
<Form.Item label="密码" {...formItemLayout}>
<Input placeholder="密码" type="password"
{...getFieldProps('password')} />
</Form.Item>
<Form.Item {...footerFormSubmitLayout} style={{marginTop:30}}>
<Button type="primary" htmlType="submit" loading={loading}><Icon type="save"/>创建</Button>
<Button onClick={e=>{e.preventDefault(); this.props.history.goBack();}}
style={{marginLeft:'1em'}}>
<Icon type="rollback"/>返回
</Button>
</Form.Item>
</Form>
</Spin>
</Layout>
);
}
}
import React, {Component, PropTypes} from 'react';
import {connect} from 'react-redux';
import {Table, Icon, Row, Col, Button, Form, Input, Cascader, Select} from 'antd';
import {Link} from 'react-router';
import {serialize, formatDateTime, tradeStatusToString} from '../../utils';
import Layout from '../../components/Layout/Layout';
import MainHeader from '../../components/MainHeader/MainHeader';
const columns = [
{
title: '用户ID',
dataIndex: 'id',
key: 'id',
width: 70,
// fixed:'left'
}, {
title: '用户名',
dataIndex: 'shortTitle',
key: 'shortTitle',
render: (shortTitle, record)=>(<span title={shortTitle}>{(shortTitle + '').substring(0, 15)}</span>)
}, {
title: '预约时间',
dataIndex: 'reservationTime',
key: 'reservationTime',
width: 150,
className: 'tac',
render: (reservationTime, record)=>(
<span>
{reservationTime && formatDateTime(reservationTime)}
</span>
)
}, {
title: '投资人',
dataIndex: 'buyerName',
key: 'buyerName',
width: 80,
className: 'tac',
}, {
title: '预约额度',
dataIndex: 'reservationAmount',
key: 'reservationAmount',
width: 100,
className: 'tac',
}, {
title: '实际打款',
dataIndex: 'remittanceAmount',
key: 'remittanceAmount',
width: 100,
className: 'tac',
}, {
title: '状态',
dataIndex: 'status',
key: 'status',
width: 160,
className: 'tac',
render: (status, record)=>(<span data-status={status}>{tradeStatusToString(status)}</span>)
}, {
title: '操作',
key: 'operation',
width: 140,
// fixed:'right',
className: 'tac',
render: (text, record)=>(
<span>
<Link to={'/trades/contract/'+ record.id} onClick={e=>e.stopPropagation()}>合同</Link>
{
(record.status == 11 || record.status == 21) &&
<span>
<span className="ant-divider"></span>
<Link to={'/trades/commission/'+ record.id} onClick={e=>e.stopPropagation()}>佣金</Link>
</span>
}
</span>
)
}
];
@connect(state=>({
items: state.user.items,
loading: state.user.loading,
total: state.user.total,
}))
@Form.create()
export default class List extends Component {
constructor(props, context) {
super(props, context);
this.state = {
filterVisible: false,
}
}
componentWillMount() {
this.fetchList(this.props.location.query);
};
fetchList(query) {
this.props.dispatch({
type: 'FETCH_USER_LIST',
query
});
}
handleRowClick({id}) {
this.props.history.push('/admin/users/' + id);
}
handleFilterVisible() {
this.setState({
filterVisible: !this.state.filterVisible
});
}
handleFilterSubmit(e) {
e.preventDefault();
// const formData = this.props.form.getFieldsValue();
// if (formData.categoryId && formData.categoryId[1]) {
// formData.categoryId = formData.categoryId[1];
// }
// const searchQuery = {...this.props.location.query, ...formData};
// console.log(searchQuery);
// this.props.history.replace(this.props.location.pathname + '?' + serialize(searchQuery));
// this.fetchList(searchQuery);
}
handleResetFilterForm(e) {
e.preventDefault();
// this.props.form.setFieldsValue({
// id: undefined,
// status: undefined,
// categoryId: undefined,
// title: undefined
// });
}
render() {
const {
total,
items,
loading,
history:{replace},
form:{getFieldProps},
location:{pathname, query}
} = this.props;
const pagination = {
total: total,
pageSize: parseInt(query.s, 10) || 10,
current: parseInt(query.p, 10) || 1,
showSizeChanger: true,
onShowSizeChange: (current, pageSize)=> {
console.log('Current: ', current, '; PageSize: ', pageSize);
query.p = current;
query.s = pageSize;
replace(pathname + '?' + serialize(query));
this.fetchList(query);
},
onChange: (current) => {
console.log('Current: ', current);
query.p = current;
replace(pathname + '?' + serialize(query));
this.fetchList(query);
}
};
const operation = (
<div style={{textAlign:'right'}}>
<Button.Group>
<Button type="ghost" onClick={this.handleFilterVisible.bind(this)}>
<Icon type="filter"/>
</Button>
</Button.Group>
</div>
);
const header = (
<MainHeader breadcrumb={['用户管理', '用户列表']}
operation={operation}
title="用户列表">
{
this.state.filterVisible &&
<Form className="filterForm" inline onSubmit={this.handleFilterSubmit.bind(this)}>
<Form.Item label="ID">
<Input placeholder="请输入搜索ID" {...searchStyle} {...getFieldProps('id')}/>
</Form.Item>
<Form.Item label="类目">
{
cates &&
<Cascader options={cates} placeholder="请选产品类目" {...searchStyle}
{...getFieldProps('categoryId')}
/>
}
</Form.Item>
<Form.Item label="标题">
<Input placeholder="请输入搜索标题" {...searchStyle} {...getFieldProps('title')}/>
</Form.Item>
<Form.Item label="状态">
<Select placeholder="请选择状态" {...searchStyle} {...getFieldProps('status')}>
<Select.Option key="status-option-default"
value={null}>请选择</Select.Option>
</Select>
</Form.Item>
<Form.Item>
<Button.Group size="default">
<Button type="primary" size="default" htmlType="submit" loading={loading}><Icon
type="search"/>筛选</Button>
<Button type="ghost" size="default" htmlType="reset"
onClick={this.handleResetFilterForm.bind(this)}><Icon
type="cross-circle-o"/>清空</Button>
</Button.Group>
</Form.Item>
</Form>
}
</MainHeader>
);
return (
<Layout header={header}>
<Table className="list-table" columns={columns}
dataSource={Array.isArray(items)?items:[]}
loading={loading}
pagination={pagination}
scroll={{ y: window.innerHeight-(this.state.filterVisible? 203 :150) }}
onRowClick={this.handleRowClick.bind(this)}
/>
</Layout>
);
}
}
......@@ -21,3 +21,6 @@ export CustomMessageList from './CustomMessage/List';
export CustomMessageAddItem from './CustomMessage/AddItem';
export CustomMessageItem from './CustomMessage/Item';
export BaseUpload from './BaseFunction/BaseUpload';
export UsersAddItem from './Users/Additem';
export UsersList from './Users/List';
......@@ -2,9 +2,9 @@ import {handleActions} from 'redux-actions';
import {combineReducer} from 'redux';
let _user = sessionStorage.getItem('user');
try{
try {
_user = JSON.parse(_user);
}catch(ex){
} catch (ex) {
_user = {};
}
......@@ -21,10 +21,30 @@ const user = handleActions({
},
['LOGOUT'](state) {
return {...state, auth: {}, loading: false};
},
['CREATE_USER_ITEM'](state){
return {...state, loading: true};
},
['CREATE_USER_ITEM_SUCCESS'](state, action){
return {...state, loading: false};
},
['CREATE_USER_ITEM_FAILED'](state, action){
return {...state, loading: false, err: action.err};
},
['FETCH_USER_LIST'](state){
return {...state, loading: true};
},
['FETCH_USER_LIST_SUCCESS'](state, action){
return {...state, loading: false, items: action.items, total: action.total};
},
['FETCH_USER_LIST_FAILED'](state, action){
return {...state, loading: false, err: action.err};
}
}, {
..._user,
loading: false
loading: false,
});
export default user;
......@@ -23,7 +23,9 @@ import {
CustomMessageList,
CustomMessageAddItem,
CustomMessageItem,
BaseUpload
BaseUpload,
UsersAddItem,
UsersList
} from '../containers/index';
export default (store)=> {
......@@ -72,7 +74,13 @@ export default (store)=> {
<Route path="create" component={CustomMessageAddItem}/>
<Route path=":id" component={CustomMessageItem}/>
</Route>
<Route path="upload" component={BaseUpload} />
<Route path="upload" component={BaseUpload}/>
<Route path="admin">
<Route path="users">
<IndexRoute component={UsersList} />
<Route path="create" component={UsersAddItem} />
</Route>
</Route>
</Route>
<Route path="/login" component={Login}/>
<Route path="*" component={NotFound}/>
......
import {takeLatest} from 'redux-saga';
import {take, call, put, fork, cancel} from 'redux-saga/effects';
import {fetch, clear, save} from '../services/user';
import {fetch, clear, save, create, fetchList} from '../services/user';
import {message} from 'antd';
function* authorize(username, password, push) {
......@@ -10,8 +10,8 @@ function* authorize(username, password, push) {
yield put({type: 'LOGIN_SUCCESS', user});
console.log('login ok');
push('/');
} catch (error) {
yield put({type: 'LOGIN_ERROR', error})
} catch (err) {
yield put({type: 'LOGIN_ERROR', err})
}
}
......@@ -25,7 +25,49 @@ function* loginFlow() {
}
}
function* addItem(data) {
try{
yield call(create, data);
yield put({type: 'CREATE_USER_ITEM_SUCCESS'});
}catch(err){
console.log(err);
message.error(err);
yield put({type: 'CREATE_USER_ITEM_FAILED', err});
}
}
function* watchAddItem(){
while(true){
const {data} = yield take('CREATE_USER_ITEM');
yield fork(addItem, data);
}
}
function* getList(query){
try{
const {items, total} = yield call(fetchList, query);
yield put({
type:'FETCH_USER_LIST_SUCCESS',
items: items,
total
});
}catch(err){
console.log(err);
message.error(err);
yield put({type: 'FETCH_USER_LIST_FAILED', err});
}
}
function* watchList() {
while(true){
const {query} = yield take('FETCH_USER_LIST');
yield fork(getList, query);
}
}
export default function* () {
yield fork(loginFlow);
yield fork(watchAddItem);
yield fork(watchList);
}
......@@ -8,6 +8,17 @@ export async function fetch(username, password) {
});
}
export async function create(data) {
return xFetch('/api/users', {
method:'POST',
body: serialize(data)
});
}
export async function fetchList(query){
return xFetch('/api/admin/users' + '?' + serialize(query));
}
export async function clear() {
sessionStorage.clear();
return Promise.resolve();
......
......@@ -20,7 +20,11 @@ function check404(res) {
}
function jsonParse(res) {
return res.json().then(json => ({...res, json}));
try {
return res.json().then(json => ({...res, json}));
}catch(err){
return Promise.reject(err);
}
}
function errorMessageParse(res) {
......@@ -34,21 +38,20 @@ function errorMessageParse(res) {
function xFetch(url, options) {
const opts = {...options};
let user;
try{
try {
user = JSON.parse(sessionStorage.getItem('user')) || {};
}catch(ex){
} catch (ex) {
user = {};
}
opts.headers = {
...opts.headers,
authorization: user.token || '',
};
if(opts.method!='GET'){
if (opts.method != 'GET') {
opts.headers['content-type'] = 'application/x-www-form-urlencoded';
}
return fetch(url, opts)
.then(check401)
.then(check404)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment