LOADING
diff --git a/src/components/Loader/Loader.less b/src/components/Loader/Loader.less
index 723402d..fed0403 100644
--- a/src/components/Loader/Loader.less
+++ b/src/components/Loader/Loader.less
@@ -1,68 +1,68 @@
-.loader_fullScreen {
- position: fixed !important;
-}
-
-.loader {
- display: block;
- background-color: #fff;
- width: 100%;
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- z-index: 100000;
- display: flex;
- justify-content: center;
- align-items: center;
- opacity: 1;
- text-align: center;
-
- .warpper {
- width: 100px;
- height: 100px;
- display: inline-flex;
- flex-direction: column;
- justify-content: space-around;
- }
-
- .inner {
- width: 48px;
- height: 48px;
- margin: 0 auto;
- text-indent: -12345px;
- border-top: 1px solid rgba(0, 0, 0, 0.08);
- border-right: 1px solid rgba(0, 0, 0, 0.08);
- border-bottom: 1px solid rgba(0, 0, 0, 0.08);
- border-left: 1px solid rgba(0, 0, 0, 0.7);
- border-radius: 50%;
- z-index: 100001;
-
- :local {
- animation: spinner 600ms infinite linear;
- }
- }
-
- .text {
- width: 100px;
- height: 20px;
- text-align: center;
- font-size: 12px;
- letter-spacing: 4px;
- color: #000;
- }
-
- &.hidden {
- z-index: -1;
- opacity: 0;
- transition: opacity 1s ease 0.5s, z-index 0.1s ease 1.5s;
- }
-}
-@keyframes spinner {
- 0% {
- transform: rotate(0deg);
- }
-
- 100% {
- transform: rotate(360deg);
- }
-}
+.loader {
+ display: block;
+ background-color: #fff;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 100000;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ opacity: 1;
+ text-align: center;
+
+ &.fullScreen {
+ position: fixed;
+ }
+
+ .warpper {
+ width: 100px;
+ height: 100px;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: space-around;
+ }
+
+ .inner {
+ width: 48px;
+ height: 48px;
+ margin: 0 auto;
+ text-indent: -12345px;
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
+ border-right: 1px solid rgba(0, 0, 0, 0.08);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
+ border-left: 1px solid rgba(0, 0, 0, 0.7);
+ border-radius: 50%;
+ z-index: 100001;
+
+ :local {
+ animation: spinner 600ms infinite linear;
+ }
+ }
+
+ .text {
+ width: 100px;
+ height: 20px;
+ text-align: center;
+ font-size: 12px;
+ letter-spacing: 4px;
+ color: #000;
+ }
+
+ &.hidden {
+ z-index: -1;
+ opacity: 0;
+ transition: opacity 1s ease 0.5s, z-index 0.1s ease 1.5s;
+ }
+}
+@keyframes spinner {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+}
diff --git a/src/components/Page/Page.js b/src/components/Page/Page.js
new file mode 100644
index 0000000..fc2eb45
--- /dev/null
+++ b/src/components/Page/Page.js
@@ -0,0 +1,34 @@
+import React, { Component } from 'react'
+import PropTypes from 'prop-types'
+import classnames from 'classnames'
+import Loader from '../Loader'
+import styles from './Page.less'
+
+export default class Page extends Component {
+ render () {
+ const { className, children, loading = false, inner = false } = this.props
+ const loadingStyle = {
+ height: 'calc(100vh - 184px)',
+ overflow: 'hidden',
+ }
+ return (
+
+ {loading ? : ''}
+ {children}
+
+ )
+ }
+}
+
+
+Page.propTypes = {
+ className: PropTypes.string,
+ children: PropTypes.node,
+ loading: PropTypes.bool,
+ inner: PropTypes.bool,
+}
diff --git a/src/components/Page/Page.less b/src/components/Page/Page.less
new file mode 100644
index 0000000..5a1e1b5
--- /dev/null
+++ b/src/components/Page/Page.less
@@ -0,0 +1,14 @@
+@import "~themes/vars";
+
+.contentInner{
+ background: #fff;
+ padding: 24px;
+ box-shadow: @shadow-1;
+ min-height: e("calc(100vh - 184px)");
+}
+@media (max-width: 767px) {
+ .contentInner {
+ padding: 12px;
+ min-height: e("calc(100vh - 160px)");
+ }
+}
diff --git a/src/components/Page/package.json b/src/components/Page/package.json
new file mode 100644
index 0000000..a3811bd
--- /dev/null
+++ b/src/components/Page/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "Page",
+ "version": "0.0.0",
+ "private": true,
+ "main": "./Page.js"
+}
diff --git a/src/components/index.js b/src/components/index.js
index 2c8a0d6..492e40c 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -6,7 +6,7 @@ import Editor from './Editor'
import FilterItem from './FilterItem'
import Loader from './Loader'
import * as Layout from './Layout/index.js'
-import LinkWrapper from './LinkWrapper'
+import Page from './Page'
import layer from './layer'
@@ -20,5 +20,5 @@ export {
FilterItem,
Loader,
layer,
- LinkWrapper,
+ Page,
}
diff --git a/src/models/app.js b/src/models/app.js
index 5e2f7a0..711b13f 100644
--- a/src/models/app.js
+++ b/src/models/app.js
@@ -98,10 +98,10 @@ export default {
}
} else if (config.openPages && config.openPages.indexOf(locationPathname) < 0) {
yield put(routerRedux.push({
- pathname: 'login',
- query: {
+ pathname: '/login',
+ search: queryString.stringify({
from: locationPathname,
- },
+ }),
}))
}
},
diff --git a/src/models/user.js b/src/models/user.js
index cfaf1fa..fb61317 100644
--- a/src/models/user.js
+++ b/src/models/user.js
@@ -3,8 +3,8 @@ import modelExtend from 'dva-model-extend'
import { config } from 'utils'
import { create, remove, update } from 'services/user'
import * as usersService from 'services/users'
-import { pageModel } from './common'
import queryString from 'query-string'
+import { pageModel } from './common'
const { query } = usersService
const { prefix } = config
diff --git a/src/router.js b/src/router.js
index 4aef55a..066d672 100644
--- a/src/router.js
+++ b/src/router.js
@@ -1,9 +1,8 @@
import React from 'react'
import PropTypes from 'prop-types'
-import { Router, Switch, Route, Redirect, routerRedux } from 'dva/router'
+import { Switch, Route, Redirect, routerRedux } from 'dva/router'
import dynamic from 'dva/dynamic'
import App from 'routes/app'
-import { Loader } from 'components'
const { ConnectedRouter } = routerRedux
@@ -70,14 +69,17 @@ const Routers = function ({ history, app }) {
- ()} />
+ ()} />
{
routes.map(({ path, ...dynamics }, key) => (
- (),
- ...dynamics
- })} />
+
))
}
diff --git a/src/routes/app.js b/src/routes/app.js
index 5569caa..658278c 100644
--- a/src/routes/app.js
+++ b/src/routes/app.js
@@ -7,10 +7,10 @@ import { connect } from 'dva'
import { Layout, Loader } from 'components'
import { classnames, config } from 'utils'
import { Helmet } from 'react-helmet'
+import { withRouter } from 'dva/router'
import '../themes/index.less'
import './app.less'
import Error from './error'
-import { withRouter } from 'dva/router'
const { prefix, openPages } = config
@@ -37,20 +37,21 @@ const App = ({ children, dispatch, app, loading, location }) => {
const headerProps = {
menu,
user,
+ location,
siderFold,
isNavbar,
menuPopoverVisible,
navOpenKeys,
- switchMenuPopover() {
+ switchMenuPopover () {
dispatch({ type: 'app/switchMenuPopver' })
},
- logout() {
+ logout () {
dispatch({ type: 'app/logout' })
},
- switchSider() {
+ switchSider () {
dispatch({ type: 'app/switchSider' })
},
- changeOpenKeys(openKeys) {
+ changeOpenKeys (openKeys) {
dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } })
},
}
@@ -61,10 +62,10 @@ const App = ({ children, dispatch, app, loading, location }) => {
siderFold,
darkTheme,
navOpenKeys,
- changeTheme() {
+ changeTheme () {
dispatch({ type: 'app/switchTheme' })
},
- changeOpenKeys(openKeys) {
+ changeOpenKeys (openKeys) {
window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(openKeys))
dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } })
},
diff --git a/src/routes/dashboard/index.js b/src/routes/dashboard/index.js
index 8466d54..fd9b8ee 100644
--- a/src/routes/dashboard/index.js
+++ b/src/routes/dashboard/index.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Row, Col, Card } from 'antd'
import { color } from 'utils'
-import { Loader } from 'components'
+import { Page } from 'components'
import { NumberCard, Quote, Sales, Weather, RecentSales, Comments, Completed, Browser, Cpu, User } from './components'
import styles from './index.less'
@@ -21,8 +21,7 @@ function Dashboard ({ dashboard, loading }) {
))
return (
-
-
+
{numberCards}
@@ -97,7 +96,7 @@ function Dashboard ({ dashboard, loading }) {
-
+
)
}
diff --git a/src/routes/post/index.js b/src/routes/post/index.js
index 40be20d..b30af7e 100644
--- a/src/routes/post/index.js
+++ b/src/routes/post/index.js
@@ -4,6 +4,7 @@ import { connect } from 'dva'
import { Tabs } from 'antd'
import { routerRedux } from 'dva/router'
import List from './List'
+import queryString from 'query-string'
const TabPane = Tabs.TabPane
@@ -24,11 +25,11 @@ const Index = ({ post, dispatch, loading, location }) => {
onChange (page) {
dispatch(routerRedux.push({
pathname,
- query: {
+ search: queryString.stringify({
...query,
page: page.current,
pageSize: page.pageSize,
- },
+ }),
}))
},
}
@@ -36,9 +37,9 @@ const Index = ({ post, dispatch, loading, location }) => {
const handleTabClick = (key) => {
dispatch(routerRedux.push({
pathname,
- query: {
+ search: queryString.stringify({
status: key,
- },
+ }),
}))
}
diff --git a/src/routes/user/List.js b/src/routes/user/List.js
index 8f43f5d..abf1c03 100644
--- a/src/routes/user/List.js
+++ b/src/routes/user/List.js
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types'
import { Table, Modal } from 'antd'
import classnames from 'classnames'
import { DropOption } from 'components'
-import { LinkWrapper } from 'components'
-import AnimTableBody from '../../components/DataTable/AnimTableBody'
+import { Link } from 'react-router-dom'
import queryString from 'query-string'
+import AnimTableBody from 'components/DataTable/AnimTableBody'
import styles from './List.less'
const confirm = Modal.confirm
@@ -38,7 +38,7 @@ const List = ({ onDeleteItem, onEditItem, isMotion, location, ...tableProps }) =
title: 'Name',
dataIndex: 'name',
key: 'name',
- render: (text, record) => {text},
+ render: (text, record) => {text},
}, {
title: 'NickName',
dataIndex: 'nickName',
diff --git a/src/routes/user/index.js b/src/routes/user/index.js
index 258899d..7758d7b 100644
--- a/src/routes/user/index.js
+++ b/src/routes/user/index.js
@@ -3,10 +3,12 @@ import PropTypes from 'prop-types'
import { routerRedux } from 'dva/router'
import { connect } from 'dva'
import { Row, Col, Button, Popconfirm } from 'antd'
+import { Page } from 'components'
+import queryString from 'query-string'
import List from './List'
import Filter from './Filter'
import Modal from './Modal'
-import queryString from 'query-string'
+
const User = ({ location, dispatch, user, loading }) => {
location.query = queryString.parse(location.search)
@@ -43,11 +45,11 @@ const User = ({ location, dispatch, user, loading }) => {
const { query, pathname } = location
dispatch(routerRedux.push({
pathname,
- query: {
+ search: queryString.stringify({
...query,
page: page.current,
pageSize: page.pageSize,
- },
+ }),
}))
},
onDeleteItem (id) {
@@ -86,20 +88,20 @@ const User = ({ location, dispatch, user, loading }) => {
onFilterChange (value) {
dispatch(routerRedux.push({
pathname: location.pathname,
- query: {
+ search: queryString.stringify({
...value,
page: 1,
pageSize,
- },
+ }),
}))
},
onSearch (fieldsValue) {
fieldsValue.keyword.length ? dispatch(routerRedux.push({
pathname: '/user',
- query: {
+ search: queryString.stringify({
field: fieldsValue.field,
keyword: fieldsValue.keyword,
- },
+ }),
})) : dispatch(routerRedux.push({
pathname: '/user',
}))
@@ -127,7 +129,7 @@ const User = ({ location, dispatch, user, loading }) => {
}
return (
-
+
{
selectedRowKeys.length > 0 &&
@@ -142,7 +144,7 @@ const User = ({ location, dispatch, user, loading }) => {
}
{modalVisible && }
-
+
)
}