Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
pro-blocks
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
duanledexianxianxian
pro-blocks
Commits
d1b424df
Commit
d1b424df
authored
Jun 25, 2018
by
yoyo837
Committed by
陈帅
Jun 26, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix some other eslint error , close #1722
parent
494a4681
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
292 additions
and
187 deletions
+292
-187
src/components/Charts/Bar/index.js
src/components/Charts/Bar/index.js
+8
-8
src/components/Charts/Pie/index.js
src/components/Charts/Pie/index.js
+36
-27
src/components/Charts/Radar/index.js
src/components/Charts/Radar/index.js
+2
-1
src/components/Charts/TagCloud/index.js
src/components/Charts/TagCloud/index.js
+2
-1
src/components/CountDown/index.js
src/components/CountDown/index.js
+6
-5
src/components/EditableItem/index.js
src/components/EditableItem/index.js
+11
-6
src/components/Ellipsis/index.js
src/components/Ellipsis/index.js
+2
-1
src/components/HeaderSearch/index.js
src/components/HeaderSearch/index.js
+27
-19
src/components/Login/LoginItem.js
src/components/Login/LoginItem.js
+9
-5
src/components/Login/LoginTab.js
src/components/Login/LoginTab.js
+3
-2
src/components/Login/index.js
src/components/Login/index.js
+18
-11
src/components/NoticeIcon/index.js
src/components/NoticeIcon/index.js
+6
-5
src/components/PageHeader/index.js
src/components/PageHeader/index.js
+18
-8
src/components/SiderMenu/SiderMenu.js
src/components/SiderMenu/SiderMenu.js
+9
-6
src/components/SiderMenu/index.js
src/components/SiderMenu/index.js
+7
-5
src/components/StandardTable/index.js
src/components/StandardTable/index.js
+7
-4
src/components/TagSelect/index.js
src/components/TagSelect/index.js
+11
-6
src/layouts/BasicLayout.js
src/layouts/BasicLayout.js
+14
-8
src/routes/Dashboard/Analysis.js
src/routes/Dashboard/Analysis.js
+8
-5
src/routes/Dashboard/Monitor.js
src/routes/Dashboard/Monitor.js
+2
-1
src/routes/Exception/triggerException.js
src/routes/Exception/triggerException.js
+4
-2
src/routes/Forms/AdvancedForm.js
src/routes/Forms/AdvancedForm.js
+4
-2
src/routes/Forms/BasicForm.js
src/routes/Forms/BasicForm.js
+5
-4
src/routes/Forms/TableForm.js
src/routes/Forms/TableForm.js
+31
-19
src/routes/List/Applications.js
src/routes/List/Applications.js
+2
-1
src/routes/List/Articles.js
src/routes/List/Articles.js
+2
-1
src/routes/List/BasicList.js
src/routes/List/BasicList.js
+2
-1
src/routes/List/CardList.js
src/routes/List/CardList.js
+2
-1
src/routes/List/Projects.js
src/routes/List/Projects.js
+2
-1
src/routes/List/TableList.js
src/routes/List/TableList.js
+10
-5
src/routes/Profile/AdvancedProfile.js
src/routes/Profile/AdvancedProfile.js
+2
-2
src/routes/User/Login.js
src/routes/User/Login.js
+4
-3
src/routes/User/Register.js
src/routes/User/Register.js
+16
-11
No files found.
src/components/Charts/Bar/index.js
View file @
d1b424df
...
...
@@ -19,6 +19,14 @@ class Bar extends Component {
window
.
removeEventListener
(
'
resize
'
,
this
.
resize
);
}
handleRoot
=
n
=>
{
this
.
root
=
n
;
};
handleRef
=
n
=>
{
this
.
node
=
n
;
};
@
Bind
()
@
Debounce
(
400
)
resize
()
{
...
...
@@ -46,14 +54,6 @@ class Bar extends Component {
}
}
handleRoot
=
n
=>
{
this
.
root
=
n
;
};
handleRef
=
n
=>
{
this
.
node
=
n
;
};
render
()
{
const
{
height
,
...
...
src/components/Charts/Pie/index.js
View file @
d1b424df
...
...
@@ -25,12 +25,14 @@ export default class Pie extends Component {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
this
.
props
.
data
!==
nextProps
.
data
)
{
const
{
data
}
=
this
.
props
;
if
(
data
!==
nextProps
.
data
)
{
// because of charts data create when rendered
// so there is a trick for get rendered time
const
{
legendData
}
=
this
.
state
;
this
.
setState
(
{
legendData
:
[...
this
.
state
.
legendData
],
legendData
:
[...
legendData
],
},
()
=>
{
this
.
getLegendData
();
...
...
@@ -67,28 +69,6 @@ export default class Pie extends Component {
});
};
// for window resize auto responsive legend
@
Bind
()
@
Debounce
(
300
)
resize
()
{
const
{
hasLegend
}
=
this
.
props
;
if
(
!
hasLegend
||
!
this
.
root
)
{
window
.
removeEventListener
(
'
resize
'
,
this
.
resize
);
return
;
}
if
(
this
.
root
.
parentNode
.
clientWidth
<=
380
)
{
if
(
!
this
.
state
.
legendBlock
)
{
this
.
setState
({
legendBlock
:
true
,
});
}
}
else
if
(
this
.
state
.
legendBlock
)
{
this
.
setState
({
legendBlock
:
false
,
});
}
}
handleRoot
=
n
=>
{
this
.
root
=
n
;
};
...
...
@@ -111,6 +91,29 @@ export default class Pie extends Component {
});
};
// for window resize auto responsive legend
@
Bind
()
@
Debounce
(
300
)
resize
()
{
const
{
hasLegend
}
=
this
.
props
;
if
(
!
hasLegend
||
!
this
.
root
)
{
window
.
removeEventListener
(
'
resize
'
,
this
.
resize
);
return
;
}
const
{
legendBlock
}
=
this
.
state
;
if
(
this
.
root
.
parentNode
.
clientWidth
<=
380
)
{
if
(
!
legendBlock
)
{
this
.
setState
({
legendBlock
:
true
,
});
}
}
else
if
(
legendBlock
)
{
this
.
setState
({
legendBlock
:
false
,
});
}
}
render
()
{
const
{
valueFormat
,
...
...
@@ -135,10 +138,16 @@ export default class Pie extends Component {
[
styles
.
legendBlock
]:
legendBlock
,
});
const
{
data
:
d
,
selected
:
s
,
tooltip
:
t
}
=
this
.
props
;
let
data
=
d
||
[];
let
selected
=
s
||
true
;
let
tooltip
=
t
||
true
;
const
defaultColors
=
colors
;
let
data
=
this
.
props
.
data
||
[];
let
selected
=
this
.
props
.
selected
||
true
;
let
tooltip
=
this
.
props
.
tooltip
||
true
;
//
let data = this.props.data || [];
//
let selected = this.props.selected || true;
//
let tooltip = this.props.tooltip || true;
let
formatColor
;
const
scale
=
{
...
...
src/components/Charts/Radar/index.js
View file @
d1b424df
...
...
@@ -16,7 +16,8 @@ export default class Radar extends Component {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
this
.
props
.
data
!==
nextProps
.
data
)
{
const
{
data
}
=
this
.
props
;
if
(
data
!==
nextProps
.
data
)
{
this
.
getLengendData
();
}
}
...
...
src/components/Charts/TagCloud/index.js
View file @
d1b424df
...
...
@@ -25,7 +25,8 @@ class TagCloud extends Component {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
JSON
.
stringify
(
nextProps
.
data
)
!==
JSON
.
stringify
(
this
.
props
.
data
))
{
const
{
data
}
=
this
.
props
;
if
(
JSON
.
stringify
(
nextProps
.
data
)
!==
JSON
.
stringify
(
data
))
{
this
.
renderChart
(
nextProps
);
}
}
...
...
src/components/CountDown/index.js
View file @
d1b424df
...
...
@@ -5,6 +5,10 @@ function fixedZero(val) {
}
class
CountDown
extends
Component
{
timer
=
0
;
interval
=
1000
;
constructor
(
props
)
{
super
(
props
);
...
...
@@ -20,7 +24,8 @@ class CountDown extends Component {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
this
.
props
.
target
!==
nextProps
.
target
)
{
const
{
target
}
=
this
.
props
;
if
(
target
!==
nextProps
.
target
)
{
clearTimeout
(
this
.
timer
);
const
{
lastTime
}
=
this
.
initTime
(
nextProps
);
this
.
setState
(
...
...
@@ -38,10 +43,6 @@ class CountDown extends Component {
clearTimeout
(
this
.
timer
);
}
timer
=
0
;
interval
=
1000
;
initTime
=
props
=>
{
let
lastTime
=
0
;
let
targetTime
=
0
;
...
...
src/components/EditableItem/index.js
View file @
d1b424df
...
...
@@ -3,10 +3,13 @@ import { Input, Icon } from 'antd';
import
styles
from
'
./index.less
'
;
export
default
class
EditableItem
extends
PureComponent
{
state
=
{
value
:
this
.
props
.
value
,
editable
:
false
,
};
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
value
:
props
.
value
,
editable
:
false
,
};
}
handleChange
=
e
=>
{
const
{
value
}
=
e
.
target
;
...
...
@@ -15,8 +18,10 @@ export default class EditableItem extends PureComponent {
check
=
()
=>
{
this
.
setState
({
editable
:
false
});
if
(
this
.
props
.
onChange
)
{
this
.
props
.
onChange
(
this
.
state
.
value
);
const
{
onChange
}
=
this
.
props
;
const
{
value
}
=
this
.
state
;
if
(
onChange
)
{
onChange
(
value
);
}
};
...
...
src/components/Ellipsis/index.js
View file @
d1b424df
...
...
@@ -84,7 +84,8 @@ export default class Ellipsis extends Component {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
this
.
props
.
lines
!==
nextProps
.
lines
)
{
const
{
lines
}
=
this
.
props
;
if
(
lines
!==
nextProps
.
lines
)
{
this
.
computeLine
();
}
}
...
...
src/components/HeaderSearch/index.js
View file @
d1b424df
...
...
@@ -27,10 +27,13 @@ export default class HeaderSearch extends PureComponent {
defaultOpen
:
false
,
};
state
=
{
searchMode
:
this
.
props
.
defaultOpen
,
value
:
''
,
};
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
searchMode
:
props
.
defaultOpen
,
value
:
''
,
};
}
onKeyDown
=
e
=>
{
if
(
e
.
key
===
'
Enter
'
)
{
...
...
@@ -40,24 +43,16 @@ export default class HeaderSearch extends PureComponent {
onChange
=
value
=>
{
this
.
setState
({
value
});
if
(
this
.
props
.
onChange
)
{
this
.
props
.
onChange
();
const
{
onChange
}
=
this
.
props
;
if
(
onChange
)
{
onChange
();
}
};
// NOTE: 不能小于500,如果长按某键,第一次触发auto repeat的间隔是500ms,小于500会导致触发2次
@
Bind
()
@
Debounce
(
500
,
{
leading
:
true
,
trailing
:
false
,
})
debouncePressEnter
()
{
this
.
props
.
onPressEnter
(
this
.
state
.
value
);
}
enterSearchMode
=
()
=>
{
this
.
setState
({
searchMode
:
true
},
()
=>
{
if
(
this
.
state
.
searchMode
)
{
const
{
searchMode
}
=
this
.
state
;
if
(
searchMode
)
{
this
.
input
.
focus
();
}
});
...
...
@@ -70,11 +65,24 @@ export default class HeaderSearch extends PureComponent {
});
};
debouncePressEnter
()
{
const
{
onPressEnter
}
=
this
.
props
;
const
{
value
}
=
this
.
state
;
onPressEnter
(
value
);
}
// NOTE: 不能小于500,如果长按某键,第一次触发auto repeat的间隔是500ms,小于500会导致触发2次
@
Bind
()
@
Debounce
(
500
,
{
leading
:
true
,
trailing
:
false
,
})
render
()
{
const
{
className
,
placeholder
,
...
restProps
}
=
this
.
props
;
const
{
searchMode
,
value
}
=
this
.
state
;
delete
restProps
.
defaultOpen
;
// for rc-select not affected
const
inputClass
=
classNames
(
styles
.
input
,
{
[
styles
.
show
]:
this
.
state
.
searchMode
,
[
styles
.
show
]:
searchMode
,
});
return
(
<
span
className
=
{
classNames
(
className
,
styles
.
headerSearch
)}
onClick
=
{
this
.
enterSearchMode
}
>
...
...
@@ -83,7 +91,7 @@ export default class HeaderSearch extends PureComponent {
key
=
"
AutoComplete
"
{...
restProps
}
className
=
{
inputClass
}
value
=
{
this
.
state
.
value
}
value
=
{
value
}
onChange
=
{
this
.
onChange
}
>
<
Input
...
...
src/components/Login/LoginItem.js
View file @
d1b424df
...
...
@@ -23,8 +23,10 @@ function generator({ defaultProps, defaultRules, type }) {
}
componentDidMount
()
{
if
(
this
.
context
.
updateActive
)
{
this
.
context
.
updateActive
(
this
.
props
.
name
);
const
{
updateActive
}
=
this
.
context
;
const
{
name
}
=
this
.
props
;
if
(
updateActive
)
{
updateActive
(
name
);
}
}
...
...
@@ -35,8 +37,9 @@ function generator({ defaultProps, defaultRules, type }) {
onGetCaptcha
=
()
=>
{
let
count
=
59
;
this
.
setState
({
count
});
if
(
this
.
props
.
onGetCaptcha
)
{
this
.
props
.
onGetCaptcha
();
const
{
onGetCaptcha
}
=
this
.
props
;
if
(
onGetCaptcha
)
{
onGetCaptcha
();
}
this
.
interval
=
setInterval
(()
=>
{
count
-=
1
;
...
...
@@ -48,7 +51,8 @@ function generator({ defaultProps, defaultRules, type }) {
};
render
()
{
const
{
getFieldDecorator
}
=
this
.
context
.
form
;
const
{
form
}
=
this
.
context
;
const
{
getFieldDecorator
}
=
form
;
const
options
=
{};
let
otherProps
=
{};
const
{
onChange
,
defaultValue
,
rules
,
name
,
...
restProps
}
=
this
.
props
;
...
...
src/components/Login/LoginTab.js
View file @
d1b424df
...
...
@@ -25,8 +25,9 @@ export default class LoginTab extends Component {
}
componentWillMount
()
{
if
(
this
.
context
.
tabUtil
)
{
this
.
context
.
tabUtil
.
addTab
(
this
.
uniqueId
);
const
{
tabUtil
}
=
this
.
context
;
if
(
tabUtil
)
{
tabUtil
.
addTab
(
this
.
uniqueId
);
}
}
...
...
src/components/Login/index.js
View file @
d1b424df
...
...
@@ -28,27 +28,32 @@ class Login extends Component {
onSubmit
:
()
=>
{},
};
state
=
{
type
:
this
.
props
.
defaultActiveKey
,
tabs
:
[],
active
:
{},
};
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
type
:
props
.
defaultActiveKey
,
tabs
:
[],
active
:
{},
};
}
getChildContext
()
{
const
{
tabs
}
=
this
.
state
;
const
{
form
}
=
this
.
props
;
return
{
tabUtil
:
{
addTab
:
id
=>
{
this
.
setState
({
tabs
:
[...
t
his
.
state
.
t
abs
,
id
],
tabs
:
[...
tabs
,
id
],
});
},
removeTab
:
id
=>
{
this
.
setState
({
tabs
:
t
his
.
state
.
t
abs
.
filter
(
currentId
=>
currentId
!==
id
),
tabs
:
tabs
.
filter
(
currentId
=>
currentId
!==
id
),
});
},
},
form
:
this
.
props
.
form
,
form
,
updateActive
:
activeItem
=>
{
const
{
type
,
active
}
=
this
.
state
;
if
(
active
[
type
])
{
...
...
@@ -64,18 +69,20 @@ class Login extends Component {
}
onSwitch
=
type
=>
{
const
{
onTabChange
}
=
this
.
props
;
this
.
setState
({
type
,
});
this
.
props
.
onTabChange
(
type
);
onTabChange
(
type
);
};
handleSubmit
=
e
=>
{
e
.
preventDefault
();
const
{
active
,
type
}
=
this
.
state
;
const
{
form
,
onSubmit
}
=
this
.
props
;
const
activeFileds
=
active
[
type
];
this
.
props
.
form
.
validateFields
(
activeFileds
,
{
force
:
true
},
(
err
,
values
)
=>
{
this
.
props
.
onSubmit
(
err
,
values
);
form
.
validateFields
(
activeFileds
,
{
force
:
true
},
(
err
,
values
)
=>
{
onSubmit
(
err
,
values
);
});
};
...
...
src/components/NoticeIcon/index.js
View file @
d1b424df
...
...
@@ -37,11 +37,12 @@ export default class NoticeIcon extends PureComponent {
onTabChange
=
tabType
=>
{
this
.
setState
({
tabType
});
this
.
props
.
onTabChange
(
tabType
);
const
{
onTabChange
}
=
this
.
state
;
onTabChange
(
tabType
);
};
getNotificationBox
()
{
const
{
children
,
loading
,
locale
}
=
this
.
props
;
const
{
children
,
loading
,
locale
,
onClear
}
=
this
.
props
;
if
(
!
children
)
{
return
null
;
}
...
...
@@ -56,7 +57,7 @@ export default class NoticeIcon extends PureComponent {
{...
child
.
props
}
data
=
{
child
.
props
.
list
}
onClick
=
{
item
=>
this
.
onItemClick
(
item
,
child
.
props
)}
onClear
=
{()
=>
this
.
props
.
onClear
(
child
.
props
.
title
)}
onClear
=
{()
=>
onClear
(
child
.
props
.
title
)}
title
=
{
child
.
props
.
title
}
locale
=
{
locale
}
/
>
...
...
@@ -73,7 +74,7 @@ export default class NoticeIcon extends PureComponent {
}
render
()
{
const
{
className
,
count
,
popupAlign
,
onPopupVisibleChange
}
=
this
.
props
;
const
{
className
,
count
,
popupAlign
,
onPopupVisibleChange
,
popupVisible
}
=
this
.
props
;
const
noticeButtonClass
=
classNames
(
className
,
styles
.
noticeButton
);
const
notificationBox
=
this
.
getNotificationBox
();
const
trigger
=
(
...
...
@@ -88,7 +89,7 @@ export default class NoticeIcon extends PureComponent {
}
const
popoverProps
=
{};
if
(
'
popupVisible
'
in
this
.
props
)
{
popoverProps
.
visible
=
this
.
props
.
popupVisible
;
popoverProps
.
visible
=
popupVisible
;
}
return
(
<
Popover
...
...
src/components/PageHeader/index.js
View file @
d1b424df
...
...
@@ -36,23 +36,32 @@ export default class PageHeader extends PureComponent {
}
componentDidUpdate
(
preProps
)
{
if
(
preProps
.
tabActiveKey
!==
this
.
props
.
tabActiveKey
)
{
const
{
tabActiveKey
}
=
this
.
props
;
if
(
preProps
.
tabActiveKey
!==
tabActiveKey
)
{
this
.
getBreadcrumbDom
();
}
}
onChange
=
key
=>
{
if
(
this
.
props
.
onTabChange
)
{
this
.
props
.
onTabChange
(
key
);
const
{
onTabChange
}
=
this
.
props
;
if
(
onTabChange
)
{
onTabChange
(
key
);
}
};
getBreadcrumbProps
=
()
=>
{
const
{
routes
,
params
,
location
,
breadcrumbNameMap
}
=
this
.
props
;
const
{
routes
:
croutes
,
params
:
cparams
,
location
:
clocation
,
breadcrumbNameMap
:
cbreadcrumbNameMap
,
}
=
this
.
context
;
return
{
routes
:
this
.
props
.
routes
||
this
.
context
.
routes
,
params
:
this
.
props
.
params
||
this
.
context
.
params
,
routerLocation
:
this
.
props
.
location
||
this
.
context
.
location
,
breadcrumbNameMap
:
this
.
props
.
breadcrumbNameMap
||
this
.
context
.
breadcrumbNameMap
,
routes
:
routes
||
c
routes
,
params
:
params
||
c
params
,
routerLocation
:
location
||
c
location
,
breadcrumbNameMap
:
breadcrumbNameMap
||
c
breadcrumbNameMap
,
};
};
...
...
@@ -185,6 +194,7 @@ export default class PageHeader extends PureComponent {
tabDefaultActiveKey
,
tabBarExtraContent
,
}
=
this
.
props
;
const
{
breadcrumb
}
=
this
.
state
;
const
clsString
=
classNames
(
styles
.
pageHeader
,
className
);
const
activeKeyProps
=
{};
...
...
@@ -197,7 +207,7 @@ export default class PageHeader extends PureComponent {
return
(
<
div
className
=
{
clsString
}
>
{
this
.
state
.
breadcrumb
}
{
breadcrumb
}
<
div
className
=
{
styles
.
detail
}
>
{
logo
&&
<
div
className
=
{
styles
.
logo
}
>
{
logo
}
<
/div>
}
<
div
className
=
{
styles
.
main
}
>
...
...
src/components/SiderMenu/SiderMenu.js
View file @
d1b424df
...
...
@@ -59,7 +59,8 @@ export default class SiderMenu extends PureComponent {
}
componentWillReceiveProps
(
nextProps
)
{
if
(
nextProps
.
location
.
pathname
!==
this
.
props
.
location
.
pathname
)
{
const
{
location
}
=
this
.
props
;
if
(
nextProps
.
location
.
pathname
!==
location
.
pathname
)
{
this
.
setState
({
openKeys
:
this
.
getDefaultCollapsedSubMenus
(
nextProps
),
});
...
...
@@ -97,15 +98,16 @@ export default class SiderMenu extends PureComponent {
<
/a
>
);
}
const
{
location
,
isMobile
,
onCollapse
}
=
this
.
props
;
return
(
<
Link
to
=
{
itemPath
}
target
=
{
target
}
replace
=
{
itemPath
===
this
.
props
.
location
.
pathname
}
replace
=
{
itemPath
===
location
.
pathname
}
onClick
=
{
this
.
props
.
isMobile
isMobile
?
()
=>
{
this
.
props
.
onCollapse
(
true
);
onCollapse
(
true
);
}
:
undefined
}
...
...
@@ -186,8 +188,9 @@ export default class SiderMenu extends PureComponent {
// permission to check
checkPermissionItem
=
(
authority
,
ItemDom
)
=>
{
if
(
this
.
props
.
Authorized
&&
this
.
props
.
Authorized
.
check
)
{
const
{
check
}
=
this
.
props
.
Authorized
;
const
{
Authorized
}
=
this
.
props
;
if
(
Authorized
&&
Authorized
.
check
)
{
const
{
check
}
=
Authorized
;
return
check
(
authority
,
ItemDom
);
}
return
ItemDom
;
...
...
src/components/SiderMenu/index.js
View file @
d1b424df
...
...
@@ -3,24 +3,26 @@ import React from 'react';
import
DrawerMenu
from
'
rc-drawer
'
;
import
SiderMenu
from
'
./SiderMenu
'
;
const
SiderMenuWrapper
=
props
=>
props
.
isMobile
?
(
const
SiderMenuWrapper
=
props
=>
{
const
{
isMobile
,
collapsed
}
=
props
;
return
isMobile
?
(
<
DrawerMenu
getContainer
=
{
null
}
level
=
{
null
}
handleChild
=
{
<
i
className
=
"
drawer-handle-icon
"
/>
}
onHandleClick
=
{()
=>
{
props
.
onCollapse
(
!
props
.
collapsed
);
props
.
onCollapse
(
!
collapsed
);
}}
open
=
{
!
props
.
collapsed
}
open
=
{
!
collapsed
}
onMaskClick
=
{()
=>
{
props
.
onCollapse
(
true
);
}}
>
<
SiderMenu
{...
props
}
collapsed
=
{
props
.
isMobile
?
false
:
props
.
collapsed
}
/
>
<
SiderMenu
{...
props
}
collapsed
=
{
isMobile
?
false
:
collapsed
}
/
>
<
/DrawerMenu
>
)
:
(
<
SiderMenu
{...
props
}
/
>
);
};
export
default
SiderMenuWrapper
;
src/components/StandardTable/index.js
View file @
d1b424df
...
...
@@ -36,7 +36,9 @@ class StandardTable extends PureComponent {
}
handleRowSelectChange
=
(
selectedRowKeys
,
selectedRows
)
=>
{
let
needTotalList
=
[...
this
.
state
.
needTotalList
];
const
{
needTotalList
:
list
}
=
this
.
state
;
const
{
onSelectRow
}
=
this
.
props
;
let
needTotalList
=
[...
list
];
needTotalList
=
needTotalList
.
map
(
item
=>
{
return
{
...
item
,
...
...
@@ -46,15 +48,16 @@ class StandardTable extends PureComponent {
};
});
if
(
this
.
props
.
onSelectRow
)
{
this
.
props
.
onSelectRow
(
selectedRows
);
if
(
onSelectRow
)
{
onSelectRow
(
selectedRows
);
}
this
.
setState
({
selectedRowKeys
,
needTotalList
});
};
handleTableChange
=
(
pagination
,
filters
,
sorter
)
=>
{
this
.
props
.
onChange
(
pagination
,
filters
,
sorter
);
const
{
onChange
}
=
this
.
props
;
onChange
(
pagination
,
filters
,
sorter
);
};
cleanSelectedKeys
=
()
=>
{
...
...
src/components/TagSelect/index.js
View file @
d1b424df
...
...
@@ -15,10 +15,13 @@ const TagSelectOption = ({ children, checked, onChange, value }) => (
TagSelectOption
.
isTagSelectOption
=
true
;
class
TagSelect
extends
Component
{
state
=
{
expand
:
false
,
value
:
this
.
props
.
value
||
this
.
props
.
defaultValue
||
[],
};
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
expand
:
false
,
value
:
props
.
value
||
props
.
defaultValue
||
[],
};
}
componentWillReceiveProps
(
nextProps
)
{
if
(
'
value
'
in
nextProps
&&
nextProps
.
value
)
{
...
...
@@ -54,7 +57,8 @@ class TagSelect extends Component {
}
handleTagChange
=
(
value
,
checked
)
=>
{
const
checkedTags
=
[...
this
.
state
.
value
];
const
{
value
:
v
}
=
this
.
state
;
const
checkedTags
=
[...
v
];
const
index
=
checkedTags
.
indexOf
(
value
);
if
(
checked
&&
index
===
-
1
)
{
...
...
@@ -66,8 +70,9 @@ class TagSelect extends Component {
};
handleExpand
=
()
=>
{
const
{
expand
}
=
this
.
state
;
this
.
setState
({
expand
:
!
this
.
state
.
expand
,
expand
:
!
expand
,
});
};
...
...
src/layouts/BasicLayout.js
View file @
d1b424df
...
...
@@ -108,7 +108,8 @@ class BasicLayout extends React.PureComponent {
isMobile
:
mobile
,
});
});
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
user/fetchCurrent
'
,
});
}
...
...
@@ -156,7 +157,8 @@ class BasicLayout extends React.PureComponent {
};
handleMenuCollapse
=
collapsed
=>
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
global/changeLayoutCollapsed
'
,
payload
:
collapsed
,
});
...
...
@@ -164,27 +166,30 @@ class BasicLayout extends React.PureComponent {
handleNoticeClear
=
type
=>
{
message
.
success
(
`清空了
${
type
}
`
);
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
global/clearNotices
'
,
payload
:
type
,
});
};
handleMenuClick
=
({
key
})
=>
{
const
{
dispatch
}
=
this
.
props
;
if
(
key
===
'
triggerError
'
)
{
this
.
props
.
dispatch
(
routerRedux
.
push
(
'
/exception/trigger
'
));
dispatch
(
routerRedux
.
push
(
'
/exception/trigger
'
));
return
;
}
if
(
key
===
'
logout
'
)
{
this
.
props
.
dispatch
({
dispatch
({
type
:
'
login/logout
'
,
});
}
};
handleNoticeVisibleChange
=
visible
=>
{
const
{
dispatch
}
=
this
.
props
;
if
(
visible
)
{
this
.
props
.
dispatch
({
dispatch
({
type
:
'
global/fetchNotices
'
,
});
}
...
...
@@ -200,6 +205,7 @@ class BasicLayout extends React.PureComponent {
match
,
location
,
}
=
this
.
props
;
const
{
isMobile
:
mb
}
=
this
.
state
;
const
bashRedirect
=
this
.
getBaseRedirect
();
const
layout
=
(
<
Layout
>
...
...
@@ -212,7 +218,7 @@ class BasicLayout extends React.PureComponent {
menuData
=
{
getMenuData
()}
collapsed
=
{
collapsed
}
location
=
{
location
}
isMobile
=
{
this
.
state
.
isMobile
}
isMobile
=
{
mb
}
onCollapse
=
{
this
.
handleMenuCollapse
}
/
>
<
Layout
>
...
...
@@ -223,7 +229,7 @@ class BasicLayout extends React.PureComponent {
fetchingNotices
=
{
fetchingNotices
}
notices
=
{
notices
}
collapsed
=
{
collapsed
}
isMobile
=
{
this
.
state
.
isMobile
}
isMobile
=
{
mb
}
onNoticeClear
=
{
this
.
handleNoticeClear
}
onCollapse
=
{
this
.
handleMenuCollapse
}
onMenuClick
=
{
this
.
handleMenuClick
}
...
...
src/routes/Dashboard/Analysis.js
View file @
d1b424df
...
...
@@ -44,8 +44,8 @@ for (let i = 0; i < 7; i += 1) {
const
Yuan
=
({
children
})
=>
(
<
span
dangerouslySetInnerHTML
=
{{
__html
:
yuan
(
children
)
}}
/>
/
*
eslint
-
disable
-
line
react
/
no
-
danger
*
/
dangerouslySetInnerHTML
=
{{
__html
:
yuan
(
children
)
}}
/* eslint-disable-line react/no-danger */
/
>
);
@
connect
(({
chart
,
loading
})
=>
({
...
...
@@ -60,7 +60,8 @@ export default class Analysis extends Component {
};
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
chart/fetch
'
,
});
}
...
...
@@ -89,7 +90,8 @@ export default class Analysis extends Component {
rangePickerValue
,
});
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
chart/fetchSalesData
'
,
});
};
...
...
@@ -99,7 +101,8 @@ export default class Analysis extends Component {
rangePickerValue
:
getTimeDistance
(
type
),
});
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
chart/fetchSalesData
'
,
});
};
...
...
src/routes/Dashboard/Monitor.js
View file @
d1b424df
...
...
@@ -25,7 +25,8 @@ const havePermissionAsync = new Promise(resolve => {
}))
export
default
class
Monitor
extends
PureComponent
{
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
monitor/fetchTags
'
,
});
}
...
...
src/routes/Exception/triggerException.js
View file @
d1b424df
...
...
@@ -15,7 +15,8 @@ export default class TriggerException extends PureComponent {
this
.
setState
({
isloading
:
true
,
});
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
error/query
'
,
payload
:
{
code
,
...
...
@@ -24,9 +25,10 @@ export default class TriggerException extends PureComponent {
};
render
()
{
const
{
isloading
}
=
this
.
state
;
return
(
<
Card
>
<
Spin
spinning
=
{
this
.
state
.
isloading
}
wrapperClassName
=
{
styles
.
trigger
}
>
<
Spin
spinning
=
{
isloading
}
wrapperClassName
=
{
styles
.
trigger
}
>
<
Button
type
=
"
danger
"
onClick
=
{()
=>
this
.
triggerError
(
401
)}
>
触发401
<
/Button
>
...
...
src/routes/Forms/AdvancedForm.js
View file @
d1b424df
...
...
@@ -73,12 +73,14 @@ class AdvancedForm extends PureComponent {
resizeFooterToolbar
=
()
=>
{
const
sider
=
document
.
querySelectorAll
(
'
.ant-layout-sider
'
)[
0
];
const
width
=
`calc(100% -
${
sider
.
style
.
width
}
)`
;
if
(
this
.
state
.
width
!==
width
)
{
const
{
width
:
w
}
=
this
.
state
;
if
(
w
!==
width
)
{
this
.
setState
({
width
});
}
};
render
()
{
const
{
width
:
w
}
=
this
.
state
;
const
{
form
,
dispatch
,
submitting
}
=
this
.
props
;
const
{
getFieldDecorator
,
validateFieldsAndScroll
,
getFieldsError
}
=
form
;
const
validate
=
()
=>
{
...
...
@@ -287,7 +289,7 @@ class AdvancedForm extends PureComponent {
initialValue
:
tableData
,
})(
<
TableForm
/>
)}
<
/Card
>
<
FooterToolbar
style
=
{{
width
:
this
.
state
.
width
}}
>
<
FooterToolbar
style
=
{{
width
:
w
}}
>
{
getErrorInfo
()}
<
Button
type
=
"
primary
"
onClick
=
{
validate
}
loading
=
{
submitting
}
>
提交
...
...
src/routes/Forms/BasicForm.js
View file @
d1b424df
...
...
@@ -27,9 +27,10 @@ const { TextArea } = Input;
export
default
class
BasicForms
extends
PureComponent
{
handleSubmit
=
e
=>
{
e
.
preventDefault
();
this
.
props
.
form
.
validateFieldsAndScroll
((
err
,
values
)
=>
{
const
{
form
,
dispatch
}
=
this
.
props
;
form
.
validateFieldsAndScroll
((
err
,
values
)
=>
{
if
(
!
err
)
{
this
.
props
.
dispatch
({
dispatch
({
type
:
'
form/submitRegularForm
'
,
payload
:
values
,
});
...
...
@@ -38,8 +39,8 @@ export default class BasicForms extends PureComponent {
};
render
()
{
const
{
submitting
}
=
this
.
props
;
const
{
getFieldDecorator
,
getFieldValue
}
=
this
.
props
.
form
;
const
{
submitting
,
form
}
=
this
.
props
;
const
{
getFieldDecorator
,
getFieldValue
}
=
form
;
const
formItemLayout
=
{
labelCol
:
{
...
...
src/routes/Forms/TableForm.js
View file @
d1b424df
...
...
@@ -3,6 +3,10 @@ import { Table, Button, Input, message, Popconfirm, Divider } from 'antd';
import
styles
from
'
./style.less
'
;
export
default
class
TableForm
extends
PureComponent
{
index
=
0
;
cacheOriginData
=
{};
constructor
(
props
)
{
super
(
props
);
...
...
@@ -21,16 +25,14 @@ export default class TableForm extends PureComponent {
}
getRowByKey
(
key
,
newData
)
{
return
(
newData
||
this
.
state
.
data
).
filter
(
item
=>
item
.
key
===
key
)[
0
];
const
{
data
}
=
this
.
state
;
return
(
newData
||
data
).
filter
(
item
=>
item
.
key
===
key
)[
0
];
}
index
=
0
;
cacheOriginData
=
{};
toggleEditable
=
(
e
,
key
)
=>
{
e
.
preventDefault
();
const
newData
=
this
.
state
.
data
.
map
(
item
=>
({
...
item
}));
const
{
data
}
=
this
.
state
;
const
newData
=
data
.
map
(
item
=>
({
...
item
}));
const
target
=
this
.
getRowByKey
(
key
,
newData
);
if
(
target
)
{
// 进入编辑状态时保存原始数据
...
...
@@ -42,14 +44,9 @@ export default class TableForm extends PureComponent {
}
};
remove
(
key
)
{
const
newData
=
this
.
state
.
data
.
filter
(
item
=>
item
.
key
!==
key
);
this
.
setState
({
data
:
newData
});
this
.
props
.
onChange
(
newData
);
}
newMember
=
()
=>
{
const
newData
=
this
.
state
.
data
.
map
(
item
=>
({
...
item
}));
const
{
data
}
=
this
.
state
;
const
newData
=
data
.
map
(
item
=>
({
...
item
}));
newData
.
push
({
key
:
`NEW_TEMP_ID_
${
this
.
index
}
`
,
workId
:
''
,
...
...
@@ -62,6 +59,14 @@ export default class TableForm extends PureComponent {
this
.
setState
({
data
:
newData
});
};
remove
(
key
)
{
const
{
data
}
=
this
.
state
;
const
{
onChange
}
=
this
.
props
;
const
newData
=
data
.
filter
(
item
=>
item
.
key
!==
key
);
this
.
setState
({
data
:
newData
});
onChange
(
newData
);
}
handleKeyPress
(
e
,
key
)
{
if
(
e
.
key
===
'
Enter
'
)
{
this
.
saveRow
(
e
,
key
);
...
...
@@ -69,7 +74,8 @@ export default class TableForm extends PureComponent {
}
handleFieldChange
(
e
,
fieldName
,
key
)
{
const
newData
=
this
.
state
.
data
.
map
(
item
=>
({
...
item
}));
const
{
data
}
=
this
.
state
;
const
newData
=
data
.
map
(
item
=>
({
...
item
}));
const
target
=
this
.
getRowByKey
(
key
,
newData
);
if
(
target
)
{
target
[
fieldName
]
=
e
.
target
.
value
;
...
...
@@ -96,9 +102,11 @@ export default class TableForm extends PureComponent {
});
return
;
}
const
{
data
}
=
this
.
state
;
const
{
onChange
}
=
this
.
props
;
delete
target
.
isNew
;
this
.
toggleEditable
(
e
,
key
);
this
.
props
.
onChange
(
this
.
state
.
data
);
onChange
(
data
);
this
.
setState
({
loading
:
false
,
});
...
...
@@ -108,7 +116,8 @@ export default class TableForm extends PureComponent {
cancel
(
e
,
key
)
{
this
.
clickedCancel
=
true
;
e
.
preventDefault
();
const
newData
=
this
.
state
.
data
.
map
(
item
=>
({
...
item
}));
const
{
data
}
=
this
.
state
;
const
newData
=
data
.
map
(
item
=>
({
...
item
}));
const
target
=
this
.
getRowByKey
(
key
,
newData
);
if
(
this
.
cacheOriginData
[
key
])
{
Object
.
assign
(
target
,
this
.
cacheOriginData
[
key
]);
...
...
@@ -183,7 +192,8 @@ export default class TableForm extends PureComponent {
title
:
'
操作
'
,
key
:
'
action
'
,
render
:
(
text
,
record
)
=>
{
if
(
!!
record
.
editable
&&
this
.
state
.
loading
)
{
const
{
loading
}
=
this
.
state
;
if
(
!!
record
.
editable
&&
loading
)
{
return
null
;
}
if
(
record
.
editable
)
{
...
...
@@ -219,12 +229,14 @@ export default class TableForm extends PureComponent {
},
];
const
{
loading
,
data
}
=
this
.
state
;
return
(
<
Fragment
>
<
Table
loading
=
{
this
.
state
.
loading
}
loading
=
{
loading
}
columns
=
{
columns
}
dataSource
=
{
this
.
state
.
data
}
dataSource
=
{
data
}
pagination
=
{
false
}
rowClassName
=
{
record
=>
{
return
record
.
editable
?
styles
.
editable
:
''
;
...
...
src/routes/List/Applications.js
View file @
d1b424df
...
...
@@ -36,7 +36,8 @@ const formatWan = val => {
}))
export
default
class
FilterCardList
extends
PureComponent
{
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
list/fetch
'
,
payload
:
{
count
:
8
,
...
...
src/routes/List/Articles.js
View file @
d1b424df
...
...
@@ -30,7 +30,8 @@ export default class SearchList extends Component {
};
fetchMore
=
()
=>
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
list/appendFetch
'
,
payload
:
{
count
:
pageSize
,
...
...
src/routes/List/BasicList.js
View file @
d1b424df
...
...
@@ -30,7 +30,8 @@ const { Search } = Input;
}))
export
default
class
BasicList
extends
PureComponent
{
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
list/fetch
'
,
payload
:
{
count
:
5
,
...
...
src/routes/List/CardList.js
View file @
d1b424df
...
...
@@ -13,7 +13,8 @@ import styles from './CardList.less';
}))
export
default
class
CardList
extends
PureComponent
{
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
list/fetch
'
,
payload
:
{
count
:
8
,
...
...
src/routes/List/Projects.js
View file @
d1b424df
...
...
@@ -21,7 +21,8 @@ const FormItem = Form.Item;
}))
export
default
class
CoverCardList
extends
PureComponent
{
componentDidMount
()
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
list/fetch
'
,
payload
:
{
count
:
8
,
...
...
src/routes/List/TableList.js
View file @
d1b424df
...
...
@@ -117,8 +117,9 @@ export default class TableList extends PureComponent {
};
toggleForm
=
()
=>
{
const
{
expandForm
}
=
this
.
state
;
this
.
setState
({
expandForm
:
!
this
.
state
.
expandForm
,
expandForm
:
!
expandForm
,
});
};
...
...
@@ -184,7 +185,8 @@ export default class TableList extends PureComponent {
};
handleAdd
=
fields
=>
{
this
.
props
.
dispatch
({
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'
rule/add
'
,
payload
:
{
description
:
fields
.
desc
,
...
...
@@ -198,7 +200,8 @@ export default class TableList extends PureComponent {
};
renderSimpleForm
()
{
const
{
getFieldDecorator
}
=
this
.
props
.
form
;
const
{
form
}
=
this
.
props
;
const
{
getFieldDecorator
}
=
form
;
return
(
<
Form
onSubmit
=
{
this
.
handleSearch
}
layout
=
"
inline
"
>
<
Row
gutter
=
{{
md
:
8
,
lg
:
24
,
xl
:
48
}}
>
...
...
@@ -236,7 +239,8 @@ export default class TableList extends PureComponent {
}
renderAdvancedForm
()
{
const
{
getFieldDecorator
}
=
this
.
props
.
form
;
const
{
form
}
=
this
.
props
;
const
{
getFieldDecorator
}
=
form
;
return
(
<
Form
onSubmit
=
{
this
.
handleSearch
}
layout
=
"
inline
"
>
<
Row
gutter
=
{{
md
:
8
,
lg
:
24
,
xl
:
48
}}
>
...
...
@@ -308,7 +312,8 @@ export default class TableList extends PureComponent {
}
renderForm
()
{
return
this
.
state
.
expandForm
?
this
.
renderAdvancedForm
()
:
this
.
renderSimpleForm
();
const
{
expandForm
}
=
this
.
state
;
return
expandForm
?
this
.
renderAdvancedForm
()
:
this
.
renderSimpleForm
();
}
render
()
{
...
...
src/routes/Profile/AdvancedProfile.js
View file @
d1b424df
...
...
@@ -226,7 +226,7 @@ export default class AdvancedProfile extends Component {
}
render
()
{
const
{
stepDirection
}
=
this
.
state
;
const
{
stepDirection
,
operationkey
}
=
this
.
state
;
const
{
profile
,
loading
}
=
this
.
props
;
const
{
advancedOperation1
,
advancedOperation2
,
advancedOperation3
}
=
profile
;
const
contentList
=
{
...
...
@@ -343,7 +343,7 @@ export default class AdvancedProfile extends Component {
tabList
=
{
operationTabList
}
onTabChange
=
{
this
.
onOperationTabChange
}
>
{
contentList
[
this
.
state
.
operationkey
]}
{
contentList
[
operationkey
]}
<
/Card
>
<
/PageHeaderLayout
>
);
...
...
src/routes/User/Login.js
View file @
d1b424df
...
...
@@ -23,8 +23,9 @@ export default class LoginPage extends Component {
handleSubmit
=
(
err
,
values
)
=>
{
const
{
type
}
=
this
.
state
;
const
{
dispatch
}
=
this
.
props
;
if
(
!
err
)
{
this
.
props
.
dispatch
({
dispatch
({
type
:
'
login/login
'
,
payload
:
{
...
values
,
...
...
@@ -46,7 +47,7 @@ export default class LoginPage extends Component {
render
()
{
const
{
login
,
submitting
}
=
this
.
props
;
const
{
type
}
=
this
.
state
;
const
{
type
,
autoLogin
}
=
this
.
state
;
return
(
<
div
className
=
{
styles
.
main
}
>
<
Login
defaultActiveKey
=
{
type
}
onTabChange
=
{
this
.
onTabChange
}
onSubmit
=
{
this
.
handleSubmit
}
>
...
...
@@ -67,7 +68,7 @@ export default class LoginPage extends Component {
<
Captcha
name
=
"
captcha
"
/>
<
/Tab
>
<
div
>
<
Checkbox
checked
=
{
this
.
state
.
autoLogin
}
onChange
=
{
this
.
changeAutoLogin
}
>
<
Checkbox
checked
=
{
autoLogin
}
onChange
=
{
this
.
changeAutoLogin
}
>
自动登录
<
/Checkbox
>
<
a
style
=
{{
float
:
'
right
'
}}
href
=
""
>
...
...
src/routes/User/Register.js
View file @
d1b424df
...
...
@@ -35,9 +35,10 @@ export default class Register extends Component {
};
componentWillReceiveProps
(
nextProps
)
{
const
account
=
this
.
props
.
form
.
getFieldValue
(
'
mail
'
);
const
{
form
,
dispatch
}
=
this
.
props
;
const
account
=
form
.
getFieldValue
(
'
mail
'
);
if
(
nextProps
.
register
.
status
===
'
ok
'
)
{
this
.
props
.
dispatch
(
dispatch
(
routerRedux
.
push
({
pathname
:
'
/user/register-result
'
,
state
:
{
...
...
@@ -78,13 +79,15 @@ export default class Register extends Component {
handleSubmit
=
e
=>
{
e
.
preventDefault
();
this
.
props
.
form
.
validateFields
({
force
:
true
},
(
err
,
values
)
=>
{
const
{
form
,
dispatch
}
=
this
.
props
;
form
.
validateFields
({
force
:
true
},
(
err
,
values
)
=>
{
const
{
prefix
}
=
this
.
state
;
if
(
!
err
)
{
this
.
props
.
dispatch
({
dispatch
({
type
:
'
register/submit
'
,
payload
:
{
...
values
,
prefix
:
this
.
state
.
prefix
,
prefix
,
},
});
}
...
...
@@ -93,7 +96,8 @@ export default class Register extends Component {
handleConfirmBlur
=
e
=>
{
const
{
value
}
=
e
.
target
;
this
.
setState
({
confirmDirty
:
this
.
state
.
confirmDirty
||
!!
value
});
const
{
confirmDirty
}
=
this
.
state
;
this
.
setState
({
confirmDirty
:
confirmDirty
||
!!
value
});
};
checkConfirm
=
(
rule
,
value
,
callback
)
=>
{
...
...
@@ -116,7 +120,8 @@ export default class Register extends Component {
this
.
setState
({
help
:
''
,
});
if
(
!
this
.
state
.
visible
)
{
const
{
visible
,
confirmDirty
}
=
this
.
state
;
if
(
!
visible
)
{
this
.
setState
({
visible
:
!!
value
,
});
...
...
@@ -125,7 +130,7 @@ export default class Register extends Component {
callback
(
'
error
'
);
}
else
{
const
{
form
}
=
this
.
props
;
if
(
value
&&
this
.
state
.
confirmDirty
)
{
if
(
value
&&
confirmDirty
)
{
form
.
validateFields
([
'
confirm
'
],
{
force
:
true
});
}
callback
();
...
...
@@ -159,7 +164,7 @@ export default class Register extends Component {
render
()
{
const
{
form
,
submitting
}
=
this
.
props
;
const
{
getFieldDecorator
}
=
form
;
const
{
count
,
prefix
}
=
this
.
state
;
const
{
count
,
prefix
,
help
,
visible
}
=
this
.
state
;
return
(
<
div
className
=
{
styles
.
main
}
>
<
h3
>
注册
<
/h3
>
...
...
@@ -178,7 +183,7 @@ export default class Register extends Component {
],
})(
<
Input
size
=
"
large
"
placeholder
=
"
邮箱
"
/>
)}
<
/FormItem
>
<
FormItem
help
=
{
this
.
state
.
help
}
>
<
FormItem
help
=
{
help
}
>
<
Popover
content
=
{
<
div
style
=
{{
padding
:
'
4px 0
'
}}
>
...
...
@@ -191,7 +196,7 @@ export default class Register extends Component {
}
overlayStyle
=
{{
width
:
240
}}
placement
=
"
right
"
visible
=
{
this
.
state
.
visible
}
visible
=
{
visible
}
>
{
getFieldDecorator
(
'
password
'
,
{
rules
:
[
...
...
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