Browse Source

抽取 getQueryPath 方法封装路径和查询参数拼接

pull/1775/merge
yoyo837 8 years ago
committed by 陈帅
parent
commit
c9d71c9102
  1. 10
      src/layouts/UserLayout.js
  2. 8
      src/models/login.js
  3. 5
      src/router.js
  4. 10
      src/utils/utils.js

10
src/layouts/UserLayout.js

@ -5,7 +5,7 @@ import { Icon } from 'antd';
import GlobalFooter from '../components/GlobalFooter';
import styles from './UserLayout.less';
import logo from '../assets/logo.svg';
import { getRoutes, getPageQuery } from '../utils/utils';
import { getRoutes, getPageQuery, getQueryPath } from '../utils/utils';
const links = [
{
@ -32,13 +32,11 @@ const copyright = (
);
function getLoginPathWithRedirectPath() {
const routePath = '/user/login';
const params = getPageQuery();
const { redirect } = params;
if (redirect) {
return `${routePath}?redirect=${encodeURIComponent(redirect)}`;
}
return routePath;
return getQueryPath('/user/login', {
redirect,
});
}
class UserLayout extends React.PureComponent {

8
src/models/login.js

@ -2,7 +2,7 @@ import { routerRedux } from 'dva/router';
import { fakeAccountLogin } from '../services/api';
import { setAuthority } from '../utils/authority';
import { reloadAuthorized } from '../utils/Authorized';
import { getPageQuery } from '../utils/utils';
import { getPageQuery, getQueryPath } from '../utils/utils';
export default {
namespace: 'login',
@ -49,7 +49,11 @@ export default {
});
reloadAuthorized();
yield put(
routerRedux.push(`/user/login?redirect=${encodeURIComponent(window.location.href)}`)
routerRedux.push(
getQueryPath('/user/login', {
redirect: window.location.href,
})
)
);
},
},

5
src/router.js

@ -5,6 +5,7 @@ import zhCN from 'antd/lib/locale-provider/zh_CN';
import dynamic from 'dva/dynamic';
import { getRouterData } from './common/router';
import Authorized from './utils/Authorized';
import { getQueryPath } from './utils/utils';
import styles from './index.less';
const { ConnectedRouter } = routerRedux;
@ -26,7 +27,9 @@ function RouterConfig({ history, app }) {
path="/"
render={props => <BasicLayout {...props} />}
authority={['admin', 'user']}
redirectPath={`/user/login?redirect=${encodeURIComponent(window.location.href)}`}
redirectPath={getQueryPath('/user/login', {
redirect: window.location.href,
})}
/>
</Switch>
</ConnectedRouter>

10
src/utils/utils.js

@ -1,5 +1,5 @@
import moment from 'moment';
import { parse } from 'qs';
import { parse, stringify } from 'qs';
export function fixedZero(val) {
return val * 1 < 10 ? `0${val}` : val;
@ -166,6 +166,14 @@ export function getPageQuery() {
return parse(window.location.href.split('?')[1]);
}
export function getQueryPath(path = '', query = {}) {
const search = stringify(query);
if (search.length) {
return `${path}?${search}`;
}
return path;
}
/* eslint no-useless-escape:0 */
const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;

Loading…
Cancel
Save