Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
shuniu-admin-react
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
superman
shuniu-admin-react
Commits
11ac5abf
Commit
11ac5abf
authored
Jul 27, 2016
by
superman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
e404de17
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
649 additions
and
299 deletions
+649
-299
workspace.xml
.idea/workspace.xml
+209
-212
proxy.config.js
proxy.config.js
+2
-74
App.jsx
src/containers/App/App.jsx
+10
-0
App.less
src/containers/App/App.less
+1
-0
Additem.jsx
src/containers/Users/Additem.jsx
+89
-0
List.jsx
src/containers/Users/List.jsx
+238
-0
index.js
src/containers/index.js
+3
-0
user.js
src/reducers/user.js
+23
-3
index.js
src/routes/index.js
+10
-2
user.js
src/sagas/user.js
+45
-3
user.js
src/services/user.js
+11
-0
xFetch.js
src/services/xFetch.js
+8
-5
No files found.
.idea/workspace.xml
View file @
11ac5abf
...
@@ -2,7 +2,18 @@
...
@@ -2,7 +2,18 @@
<project
version=
"4"
>
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"ec208c71-5ff8-4642-a786-fad4f24be9b8"
name=
"Default"
comment=
""
>
<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>
</list>
<ignored
path=
"shuniu-admin.iws"
/>
<ignored
path=
"shuniu-admin.iws"
/>
<ignored
path=
".idea/workspace.xml"
/>
<ignored
path=
".idea/workspace.xml"
/>
...
@@ -25,77 +36,79 @@
...
@@ -25,77 +36,79 @@
</component>
</component>
<component
name=
"FileEditorManager"
>
<component
name=
"FileEditorManager"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<file
leaf-file-name=
"
index.less
"
pinned=
"false"
current-in-tab=
"true"
>
<file
leaf-file-name=
"
List.jsx
"
pinned=
"false"
current-in-tab=
"true"
>
<entry
file=
"file://$PROJECT_DIR$/src/
entries/index.less
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/Users/List.jsx
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"510"
>
<state
relative-caret-position=
"210"
>
<caret
line=
"118"
column=
"50"
selection-start-line=
"118"
selection-start-column=
"50"
selection-end-line=
"118"
selection-end-column=
"50"
/>
<caret
line=
"51"
column=
"18"
selection-start-line=
"51"
selection-start-column=
"18"
selection-end-line=
"51"
selection-end-column=
"18"
/>
<folding
/>
<folding>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
AddItem.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
user.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/CustomMessage/AddItem.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
services/user.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"3
42
"
>
<state
relative-caret-position=
"3
30
"
>
<caret
line=
"
69"
column=
"99"
selection-start-line=
"67"
selection-start-column=
"12"
selection-end-line=
"69"
selection-end-column=
"99
"
/>
<caret
line=
"
22"
column=
"27"
selection-start-line=
"22"
selection-start-column=
"27"
selection-end-line=
"22"
selection-end-column=
"27
"
/>
<folding>
<folding>
<element
signature=
"e#0#
5
0#0"
expanded=
"true"
/>
<element
signature=
"e#0#
3
0#0"
expanded=
"true"
/>
</folding>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
BaseUpload.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
xFetch.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/BaseFunction/BaseUpload.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
services/xFetch.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"162"
>
<state
relative-caret-position=
"165"
>
<caret
line=
"53"
column=
"33"
selection-start-line=
"53"
selection-start-column=
"33"
selection-end-line=
"53"
selection-end-column=
"33"
/>
<caret
line=
"25"
column=
"35"
selection-start-line=
"25"
selection-start-column=
"35"
selection-end-line=
"25"
selection-end-column=
"35"
/>
<folding>
<folding
/>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
BaseInfoForm.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
user.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
components/ProductForm/BaseInfoForm.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
sagas/user.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"3
75
"
>
<state
relative-caret-position=
"3
00
"
>
<caret
line=
"
104"
column=
"21"
selection-start-line=
"104"
selection-start-column=
"21"
selection-end-line=
"104"
selection-end-column=
"21
"
/>
<caret
line=
"
51"
column=
"17"
selection-start-line=
"51"
selection-start-column=
"17"
selection-end-line=
"51"
selection-end-column=
"17
"
/>
<folding>
<folding>
<element
signature=
"e#0#
50
#0"
expanded=
"true"
/>
<element
signature=
"e#0#
38
#0"
expanded=
"true"
/>
</folding>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
Product.les
s"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
index.j
s"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/
Product/Product.les
s"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/
index.j
s"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
42
0"
>
<state
relative-caret-position=
"
36
0"
>
<caret
line=
"2
8"
column=
"38"
selection-start-line=
"28"
selection-start-column=
"38"
selection-end-line=
"28"
selection-end-column=
"38
"
/>
<caret
line=
"2
4"
column=
"16"
selection-start-line=
"24"
selection-start-column=
"7"
selection-end-line=
"24"
selection-end-column=
"16
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
AddItem.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
index.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/Announcement/AddItem.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
routes/index.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"492"
>
<state
relative-caret-position=
"570"
>
<caret
line=
"65"
column=
"10"
selection-start-line=
"50"
selection-start-column=
"8"
selection-end-line=
"65"
selection-end-column=
"10"
/>
<caret
line=
"80"
column=
"72"
selection-start-line=
"80"
selection-start-column=
"72"
selection-end-line=
"80"
selection-end-column=
"72"
/>
<folding
/>
<folding>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
EditItem
.jsx"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
App
.jsx"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/A
nnouncement/EditItem
.jsx"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/A
pp/App
.jsx"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
56
7"
>
<state
relative-caret-position=
"
44
7"
>
<caret
line=
"
85"
column=
"50"
selection-start-line=
"85"
selection-start-column=
"50"
selection-end-line=
"85"
selection-end-column=
"5
0"
/>
<caret
line=
"
110"
column=
"70"
selection-start-line=
"110"
selection-start-column=
"70"
selection-end-line=
"110"
selection-end-column=
"7
0"
/>
<folding>
<folding>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
</folding>
</folding>
...
@@ -103,34 +116,36 @@
...
@@ -103,34 +116,36 @@
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
List.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
App.less
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/
Product/List.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/
App/App.less
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
30
"
>
<state
relative-caret-position=
"
423
"
>
<caret
line=
"
2"
column=
"0"
selection-start-line=
"2"
selection-start-column=
"0"
selection-end-line=
"2"
selection-end-column=
"82
"
/>
<caret
line=
"
31"
column=
"23"
selection-start-line=
"31"
selection-start-column=
"23"
selection-end-line=
"31"
selection-end-column=
"23
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
List.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
user.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/Trade/List.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
reducers/user.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"4
95
"
>
<state
relative-caret-position=
"4
47
"
>
<caret
line=
"
84"
column=
"14"
selection-start-line=
"84"
selection-start-column=
"14"
selection-end-line=
"84"
selection-end-column=
"14
"
/>
<caret
line=
"
39"
column=
"83"
selection-start-line=
"39"
selection-start-column=
"83"
selection-end-line=
"39"
selection-end-column=
"83
"
/>
<folding>
<folding>
<element
signature=
"e#0#
50
#0"
expanded=
"true"
/>
<element
signature=
"e#0#
44
#0"
expanded=
"true"
/>
</folding>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
List.jsx
"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"
trade.js
"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/src/
containers/Announcement/List.jsx
"
>
<entry
file=
"file://$PROJECT_DIR$/src/
sagas/trade.js
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"297"
>
<state
relative-caret-position=
"147"
>
<caret
line=
"138"
column=
"10"
selection-start-line=
"122"
selection-start-column=
"8"
selection-end-line=
"138"
selection-end-column=
"10"
/>
<caret
line=
"11"
column=
"19"
selection-start-line=
"11"
selection-start-column=
"19"
selection-end-line=
"11"
selection-end-column=
"19"
/>
<folding
/>
<folding>
<element
signature=
"e#0#38#0"
expanded=
"true"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
...
@@ -148,27 +163,18 @@
...
@@ -148,27 +163,18 @@
<component
name=
"IdeDocumentHistory"
>
<component
name=
"IdeDocumentHistory"
>
<option
name=
"CHANGED_PATHS"
>
<option
name=
"CHANGED_PATHS"
>
<list>
<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/Audit/PassItem.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Remittance/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/containers/Withdraw/PassItem.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/sagas/withdraw.js"
/>
<option
value=
"$PROJECT_DIR$/src/sagas/withdraw.js"
/>
<option
value=
"$PROJECT_DIR$/src/reducers/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/__tests__/todos-test.js"
/>
<option
value=
"$PROJECT_DIR$/src/reducers/costomMessage.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/services/customMessage.js"
/>
<option
value=
"$PROJECT_DIR$/src/sagas/customMessage.js"
/>
<option
value=
"$PROJECT_DIR$/src/sagas/customMessage.js"
/>
<option
value=
"$PROJECT_DIR$/src/components/ProductForm/HuikuanInfoForm.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/components/ProductForm/HuikuanInfoForm.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/CustomMessage/Item.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/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.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.less"
/>
<option
value=
"$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.less"
/>
<option
value=
"$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.jsx"
/>
...
@@ -179,14 +185,12 @@
...
@@ -179,14 +185,12 @@
<option
value=
"$PROJECT_DIR$/src/containers/Product/AddItem.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Product/AddItem.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/reducers/product.js"
/>
<option
value=
"$PROJECT_DIR$/src/reducers/product.js"
/>
<option
value=
"$PROJECT_DIR$/src/components/ProductForm/ShouyiYongjingForm.jsx"
/>
<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.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/components/MainHeader/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/containers/Remittance/List.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/variable.less"
/>
<option
value=
"$PROJECT_DIR$/src/variable.less"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Withdraw/List.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Withdraw/List.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/CustomMessage/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/containers/CustomMessage/AddItem.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/components/Layout/Layout.less"
/>
<option
value=
"$PROJECT_DIR$/src/components/Layout/Layout.less"
/>
<option
value=
"$PROJECT_DIR$/src/components/MainHeader/MainHeader.less"
/>
<option
value=
"$PROJECT_DIR$/src/components/MainHeader/MainHeader.less"
/>
...
@@ -199,6 +203,17 @@
...
@@ -199,6 +203,17 @@
<option
value=
"$PROJECT_DIR$/src/containers/Product/Product.less"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Product/Product.less"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Trade/List.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/containers/Trade/List.jsx"
/>
<option
value=
"$PROJECT_DIR$/src/entries/index.less"
/>
<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>
</list>
</option>
</option>
</component>
</component>
...
@@ -283,7 +298,7 @@
...
@@ -283,7 +298,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"
entri
es"
/>
<option
name=
"myItemId"
value=
"
servic
es"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -301,7 +316,7 @@
...
@@ -301,7 +316,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"
container
s"
/>
<option
name=
"myItemId"
value=
"
saga
s"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -319,11 +334,7 @@
...
@@ -319,11 +334,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"containers"
/>
<option
name=
"myItemId"
value=
"routes"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"Withdraw"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -341,11 +352,7 @@
...
@@ -341,11 +352,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"containers"
/>
<option
name=
"myItemId"
value=
"reducers"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"Trade"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -363,11 +370,7 @@
...
@@ -363,11 +370,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"containers"
/>
<option
name=
"myItemId"
value=
"entries"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
<PATH_ELEMENT>
<option
name=
"myItemId"
value=
"Remittance"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -388,10 +391,6 @@
...
@@ -388,10 +391,6 @@
<option
name=
"myItemId"
value=
"containers"
/>
<option
name=
"myItemId"
value=
"containers"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</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>
<PATH>
<PATH_ELEMENT>
<PATH_ELEMENT>
...
@@ -411,7 +410,7 @@
...
@@ -411,7 +410,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<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"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -433,7 +432,7 @@
...
@@ -433,7 +432,7 @@
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
<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"
/>
<option
name=
"myItemType"
value=
"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode"
/>
</PATH_ELEMENT>
</PATH_ELEMENT>
</PATH>
</PATH>
...
@@ -1056,12 +1055,12 @@
...
@@ -1056,12 +1055,12 @@
<workItem
from=
"1468394206076"
duration=
"1879000"
/>
<workItem
from=
"1468394206076"
duration=
"1879000"
/>
<workItem
from=
"1468396235889"
duration=
"33823000"
/>
<workItem
from=
"1468396235889"
duration=
"33823000"
/>
<workItem
from=
"1468540294765"
duration=
"94258000"
/>
<workItem
from=
"1468540294765"
duration=
"94258000"
/>
<workItem
from=
"1468995021353"
duration=
"16
5529
000"
/>
<workItem
from=
"1468995021353"
duration=
"16
8772
000"
/>
</task>
</task>
<servers
/>
<servers
/>
</component>
</component>
<component
name=
"TimeTrackingManager"
>
<component
name=
"TimeTrackingManager"
>
<option
name=
"totallyTimeSpent"
value=
"29
5489
000"
/>
<option
name=
"totallyTimeSpent"
value=
"29
8732
000"
/>
</component>
</component>
<component
name=
"TodoView"
>
<component
name=
"TodoView"
>
<todo-panel
id=
"selected-file"
>
<todo-panel
id=
"selected-file"
>
...
@@ -1074,7 +1073,7 @@
...
@@ -1074,7 +1073,7 @@
</component>
</component>
<component
name=
"ToolWindowManager"
>
<component
name=
"ToolWindowManager"
>
<frame
x=
"0"
y=
"0"
width=
"1280"
height=
"800"
extended-state=
"0"
/>
<frame
x=
"0"
y=
"0"
width=
"1280"
height=
"800"
extended-state=
"0"
/>
<editor
active=
"
fals
e"
/>
<editor
active=
"
tru
e"
/>
<layout>
<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=
"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"
/>
<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 @@
...
@@ -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=
"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=
"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=
"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=
"tru
e"
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=
"fals
e"
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=
"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=
"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"
/>
<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 @@
...
@@ -1146,102 +1145,6 @@
<watches-manager
/>
<watches-manager
/>
</component>
</component>
<component
name=
"editorHistoryManager"
>
<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"
>
<entry
file=
"file://$PROJECT_DIR$/src/components/CopyToClipboard/CopyToClipboard.less"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"210"
>
<state
relative-caret-position=
"210"
>
...
@@ -1384,16 +1287,6 @@
...
@@ -1384,16 +1287,6 @@
</state>
</state>
</provider>
</provider>
</entry>
</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"
>
<entry
file=
"file://$PROJECT_DIR$/src/components/MainHeader/MainHeader.jsx"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"480"
>
<state
relative-caret-position=
"480"
>
...
@@ -1478,14 +1371,6 @@
...
@@ -1478,14 +1371,6 @@
</state>
</state>
</provider>
</provider>
</entry>
</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"
>
<entry
file=
"file://$PROJECT_DIR$/src/components/Layout/Layout.less"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"150"
>
<state
relative-caret-position=
"150"
>
...
@@ -1568,40 +1453,152 @@
...
@@ -1568,40 +1453,152 @@
</state>
</state>
</provider>
</provider>
</entry>
</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"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/Announcement/AddItem.jsx"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
492
"
>
<state
relative-caret-position=
"
387
"
>
<caret
line=
"
65"
column=
"10"
selection-start-line=
"50"
selection-start-column=
"8"
selection-end-line=
"65"
selection-end-column=
"1
0"
/>
<caret
line=
"
58"
column=
"10"
selection-start-line=
"0"
selection-start-column=
"0"
selection-end-line=
"90"
selection-end-column=
"
0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</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"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"30"
>
<state
relative-caret-position=
"45"
>
<caret
line=
"2"
column=
"0"
selection-start-line=
"2"
selection-start-column=
"0"
selection-end-line=
"2"
selection-end-column=
"82"
/>
<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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/src/containers/Trade/List.jsx"
>
<entry
file=
"file://$PROJECT_DIR$/src/containers/Trade/List.jsx"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
495
"
>
<state
relative-caret-position=
"
510
"
>
<caret
line=
"
84"
column=
"14"
selection-start-line=
"84"
selection-start-column=
"14"
selection-end-line=
"84"
selection-end-column=
"14
"
/>
<caret
line=
"
98"
column=
"22"
selection-start-line=
"0"
selection-start-column=
"0"
selection-end-line=
"238"
selection-end-column=
"0
"
/>
<folding>
<folding>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
<element
signature=
"e#0#50#0"
expanded=
"true"
/>
</folding>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/src/
entries/index.les
s"
>
<entry
file=
"file://$PROJECT_DIR$/src/
reducers/user.j
s"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"510"
>
<state
relative-caret-position=
"447"
>
<caret
line=
"118"
column=
"50"
selection-start-line=
"118"
selection-start-column=
"50"
selection-end-line=
"118"
selection-end-column=
"50"
/>
<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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</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>
<component
name=
"masterDetails"
>
<component
name=
"masterDetails"
>
<states>
<states>
...
...
proxy.config.js
View file @
11ac5abf
...
@@ -2,78 +2,6 @@
...
@@ -2,78 +2,6 @@
// - https://github.com/dora-js/dora-plugin-proxy#规则定义
// - https://github.com/dora-js/dora-plugin-proxy#规则定义
module
.
exports
=
{
module
.
exports
=
{
'/api/todos'
:
function
(
req
,
res
)
{
// '/api/*': 'http://react.yanky.cn/',
setTimeout
(
function
()
{
'/api/*'
:
'http://192.168.1.126:8080/'
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/'
};
};
src/containers/App/App.jsx
View file @
11ac5abf
...
@@ -107,6 +107,16 @@ export default class App extends Component {
...
@@ -107,6 +107,16 @@ export default class App extends Component {
<
MenuItemContent
to=
"/upload"
cn=
"图片上传"
en=
"Upload Images"
/>
<
MenuItemContent
to=
"/upload"
cn=
"图片上传"
en=
"Upload Images"
/>
</
Menu
.
Item
>
</
Menu
.
Item
>
</
SubMenu
>
</
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
>
</
Menu
>
</
section
>
</
section
>
<
footer
>
<
footer
>
...
...
src/containers/App/App.less
View file @
11ac5abf
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
}
}
& > section {
& > section {
flex: 1;
flex: 1;
overflow: auto;
}
}
:global {
:global {
...
...
src/containers/Users/Additem.jsx
0 → 100644
View file @
11ac5abf
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
>
);
}
}
src/containers/Users/List.jsx
0 → 100644
View file @
11ac5abf
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
>
);
}
}
src/containers/index.js
View file @
11ac5abf
...
@@ -21,3 +21,6 @@ export CustomMessageList from './CustomMessage/List';
...
@@ -21,3 +21,6 @@ export CustomMessageList from './CustomMessage/List';
export
CustomMessageAddItem
from
'./CustomMessage/AddItem'
;
export
CustomMessageAddItem
from
'./CustomMessage/AddItem'
;
export
CustomMessageItem
from
'./CustomMessage/Item'
;
export
CustomMessageItem
from
'./CustomMessage/Item'
;
export
BaseUpload
from
'./BaseFunction/BaseUpload'
;
export
BaseUpload
from
'./BaseFunction/BaseUpload'
;
export
UsersAddItem
from
'./Users/Additem'
;
export
UsersList
from
'./Users/List'
;
src/reducers/user.js
View file @
11ac5abf
...
@@ -2,9 +2,9 @@ import {handleActions} from 'redux-actions';
...
@@ -2,9 +2,9 @@ import {handleActions} from 'redux-actions';
import
{
combineReducer
}
from
'redux'
;
import
{
combineReducer
}
from
'redux'
;
let
_user
=
sessionStorage
.
getItem
(
'user'
);
let
_user
=
sessionStorage
.
getItem
(
'user'
);
try
{
try
{
_user
=
JSON
.
parse
(
_user
);
_user
=
JSON
.
parse
(
_user
);
}
catch
(
ex
)
{
}
catch
(
ex
)
{
_user
=
{};
_user
=
{};
}
}
...
@@ -21,10 +21,30 @@ const user = handleActions({
...
@@ -21,10 +21,30 @@ const user = handleActions({
},
},
[
'LOGOUT'
](
state
)
{
[
'LOGOUT'
](
state
)
{
return
{...
state
,
auth
:
{},
loading
:
false
};
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
,
...
_user
,
loading
:
false
loading
:
false
,
});
});
export
default
user
;
export
default
user
;
src/routes/index.js
View file @
11ac5abf
...
@@ -23,7 +23,9 @@ import {
...
@@ -23,7 +23,9 @@ import {
CustomMessageList
,
CustomMessageList
,
CustomMessageAddItem
,
CustomMessageAddItem
,
CustomMessageItem
,
CustomMessageItem
,
BaseUpload
BaseUpload
,
UsersAddItem
,
UsersList
}
from
'../containers/index'
;
}
from
'../containers/index'
;
export
default
(
store
)
=>
{
export
default
(
store
)
=>
{
...
@@ -72,7 +74,13 @@ export default (store)=> {
...
@@ -72,7 +74,13 @@ export default (store)=> {
<
Route
path
=
"create"
component
=
{
CustomMessageAddItem
}
/
>
<
Route
path
=
"create"
component
=
{
CustomMessageAddItem
}
/
>
<
Route
path
=
":id"
component
=
{
CustomMessageItem
}
/
>
<
Route
path
=
":id"
component
=
{
CustomMessageItem
}
/
>
<
/Route
>
<
/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
>
<
Route
path
=
"/login"
component
=
{
Login
}
/
>
<
Route
path
=
"/login"
component
=
{
Login
}
/
>
<
Route
path
=
"*"
component
=
{
NotFound
}
/
>
<
Route
path
=
"*"
component
=
{
NotFound
}
/
>
...
...
src/sagas/user.js
View file @
11ac5abf
import
{
takeLatest
}
from
'redux-saga'
;
import
{
takeLatest
}
from
'redux-saga'
;
import
{
take
,
call
,
put
,
fork
,
cancel
}
from
'redux-saga/effects'
;
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'
;
import
{
message
}
from
'antd'
;
function
*
authorize
(
username
,
password
,
push
)
{
function
*
authorize
(
username
,
password
,
push
)
{
...
@@ -10,8 +10,8 @@ function* authorize(username, password, push) {
...
@@ -10,8 +10,8 @@ function* authorize(username, password, push) {
yield
put
({
type
:
'LOGIN_SUCCESS'
,
user
});
yield
put
({
type
:
'LOGIN_SUCCESS'
,
user
});
console
.
log
(
'login ok'
);
console
.
log
(
'login ok'
);
push
(
'/'
);
push
(
'/'
);
}
catch
(
err
or
)
{
}
catch
(
err
)
{
yield
put
({
type
:
'LOGIN_ERROR'
,
err
or
})
yield
put
({
type
:
'LOGIN_ERROR'
,
err
})
}
}
}
}
...
@@ -25,7 +25,49 @@ function* loginFlow() {
...
@@ -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
*
()
{
export
default
function
*
()
{
yield
fork
(
loginFlow
);
yield
fork
(
loginFlow
);
yield
fork
(
watchAddItem
);
yield
fork
(
watchList
);
}
}
src/services/user.js
View file @
11ac5abf
...
@@ -8,6 +8,17 @@ export async function fetch(username, password) {
...
@@ -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
()
{
export
async
function
clear
()
{
sessionStorage
.
clear
();
sessionStorage
.
clear
();
return
Promise
.
resolve
();
return
Promise
.
resolve
();
...
...
src/services/xFetch.js
View file @
11ac5abf
...
@@ -20,7 +20,11 @@ function check404(res) {
...
@@ -20,7 +20,11 @@ function check404(res) {
}
}
function
jsonParse
(
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
)
{
function
errorMessageParse
(
res
)
{
...
@@ -34,21 +38,20 @@ function errorMessageParse(res) {
...
@@ -34,21 +38,20 @@ function errorMessageParse(res) {
function
xFetch
(
url
,
options
)
{
function
xFetch
(
url
,
options
)
{
const
opts
=
{...
options
};
const
opts
=
{...
options
};
let
user
;
let
user
;
try
{
try
{
user
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'user'
))
||
{};
user
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'user'
))
||
{};
}
catch
(
ex
)
{
}
catch
(
ex
)
{
user
=
{};
user
=
{};
}
}
opts
.
headers
=
{
opts
.
headers
=
{
...
opts
.
headers
,
...
opts
.
headers
,
authorization
:
user
.
token
||
''
,
authorization
:
user
.
token
||
''
,
};
};
if
(
opts
.
method
!=
'GET'
)
{
if
(
opts
.
method
!=
'GET'
)
{
opts
.
headers
[
'content-type'
]
=
'application/x-www-form-urlencoded'
;
opts
.
headers
[
'content-type'
]
=
'application/x-www-form-urlencoded'
;
}
}
return
fetch
(
url
,
opts
)
return
fetch
(
url
,
opts
)
.
then
(
check401
)
.
then
(
check401
)
.
then
(
check404
)
.
then
(
check404
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment