提交 6e53be3276406809a65dbb8732b1a06c79394dba

作者 fanwh
1 个父辈 51740c7b

no message

... ... @@ -21,6 +21,7 @@
21 21 "rc-animate": "^2.8.3",
22 22 "react": "^16.8.6",
23 23 "react-dom": "^16.8.6",
  24 + "react-iframe": "^1.8.0",
24 25 "react-loadable": "^5.5.0",
25 26 "react-redux": "^7.1.0",
26 27 "react-router": "^5.0.1",
... ...
... ... @@ -105,8 +105,8 @@ class SysMenu extends React.Component {
105 105 });
106 106 }
107 107 render() {
108   - const { uaa_perms, openKeys, selectedKeys } = this.props;
109   - const menus = formatMenu(uaa_perms);
  108 + const { system_menu_perms, openKeys, selectedKeys } = this.props;
  109 + const menus = formatMenu(system_menu_perms);
110 110 return (
111 111 <Menu className={cx('system_wrap')}
112 112 onClick={this.handleClick}
... ... @@ -146,14 +146,14 @@ class SysMenu extends React.Component {
146 146 const mapState = (state) => {
147 147 const {
148 148 router = {},
149   - // system: { system_menu_selected_keys: { openKeys, selectedKeys } }
  149 + system: { system_menu_selected_keys: { openKeys = [], selectedKeys = [] }, system_menu_perms = [] }
150 150 } = state;
151 151 return {
152 152 router,
153 153 uaa_tenant: {},
154   - uaa_perms: [],
155   - openKeys: [],
156   - selectedKeys: []
  154 + system_menu_perms,
  155 + openKeys,
  156 + selectedKeys
157 157 };
158 158 };
159 159 export default connect(mapState)(SysMenu);
\ No newline at end of file
... ...
... ... @@ -27,14 +27,6 @@ class Login extends React.Component {
27 27 api.postLogin(values).then(data => {
28 28 console.log(data);
29 29 })
30   - console.log("#########:::::::", values);
31   - // if (values.grant_type == 'password') { //密码登录
32   - // dispatch(login(values));
33   - // } else if (values.grant_type == 'smscode') {//验证码登录
34   - // dispatch(login(values));
35   - // } else if (values.grant_type == 'change_tenant') {//选择tenant
36   - // dispatch(changeTenant(values));
37   - // }
38 30 }
39 31 backLogin() {
40 32 const { dispatch } = this.props;
... ...
  1 +import React from 'react';
  2 +import Iframe from 'react-iframe'
  3 +import { connect } from 'react-redux';
  4 +import { Layout } from 'antd';
  5 +import cx from 'classnames';
  6 +
  7 +class StatisticsContainer extends React.Component {
  8 + static propTypes = {
  9 + }
  10 + constructor(props) {
  11 + super(props);
  12 + }
  13 + componentDidMount() {
  14 + }
  15 + render() {
  16 + return (
  17 + <div className={cx('statistics_wrap')} style={{ width: '100%', height: '100%', overflowY: 'hidden' }}>
  18 + <Iframe url="https://www.baidu.com"
  19 + width="100%"
  20 + height="100%"
  21 + id="myId"
  22 + className="myClassname"
  23 + display="initial"
  24 + frameBorder={0}
  25 + position="relative" />
  26 + </div>
  27 + );
  28 + }
  29 +}
  30 +
  31 +
  32 +
  33 +const mapState = (state) => {
  34 + const { router: { location = {} } } = state;
  35 + return {
  36 + location
  37 + };
  38 +};
  39 +export default connect(mapState)(StatisticsContainer);
... ...
... ... @@ -6,4 +6,119 @@
6 6 width: 100vw;
7 7 height: 100vh;
8 8 overflow: hidden;
  9 +}
  10 +.layout-header-wrap{
  11 + height: 52px;
  12 + line-height: 52px;
  13 +}
  14 +.layout-content-wrap{
  15 + position:absolute;
  16 + left: 0;
  17 + right: 0;
  18 + bottom: 0;
  19 + top: 52px;
  20 + overflow: hidden;
  21 +}
  22 +.layout-sider-wrap{
  23 + height: 100%;
  24 + position: relative;
  25 + overflow-y: hidden;
  26 + overflow-x: hidden;
  27 + background: #ffffff;
  28 +}
  29 +.layout-sider-wrap:hover{
  30 + overflow-y: auto;
  31 +}
  32 +.app-routes-wrap{
  33 + width: 100%;
  34 + height: 100%;
  35 + background-color: transparent;
  36 +}
  37 +
  38 +
  39 +//loading
  40 +.sk-folding-cube {
  41 + margin: 20px auto;
  42 + width: 40px;
  43 + height: 40px;
  44 + position: relative;
  45 + -webkit-transform: rotateZ(45deg);
  46 + transform: rotateZ(45deg);
  47 +}
  48 +.sk-folding-cube .sk-cube {
  49 + float: left;
  50 + width: 50%;
  51 + height: 50%;
  52 + position: relative;
  53 + -webkit-transform: scale(1.1);
  54 + -ms-transform: scale(1.1);
  55 + transform: scale(1.1);
  56 +}
  57 +.sk-folding-cube .sk-cube:before {
  58 + content: '';
  59 + position: absolute;
  60 + top: 0;
  61 + left: 0;
  62 + width: 100%;
  63 + height: 100%;
  64 + background-color: #333;
  65 + -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;
  66 + animation: sk-foldCubeAngle 2.4s infinite linear both;
  67 + -webkit-transform-origin: 100% 100%;
  68 + -ms-transform-origin: 100% 100%;
  69 + transform-origin: 100% 100%;
  70 +}
  71 +.sk-folding-cube .sk-cube2 {
  72 + -webkit-transform: scale(1.1) rotateZ(90deg);
  73 + transform: scale(1.1) rotateZ(90deg);
  74 +}
  75 +.sk-folding-cube .sk-cube3 {
  76 + -webkit-transform: scale(1.1) rotateZ(180deg);
  77 + transform: scale(1.1) rotateZ(180deg);
  78 +}
  79 +.sk-folding-cube .sk-cube4 {
  80 + -webkit-transform: scale(1.1) rotateZ(270deg);
  81 + transform: scale(1.1) rotateZ(270deg);
  82 +}
  83 +.sk-folding-cube .sk-cube2:before {
  84 + -webkit-animation-delay: 0.3s;
  85 + animation-delay: 0.3s;
  86 +}
  87 +.sk-folding-cube .sk-cube3:before {
  88 + -webkit-animation-delay: 0.6s;
  89 + animation-delay: 0.6s;
  90 +}
  91 +.sk-folding-cube .sk-cube4:before {
  92 + -webkit-animation-delay: 0.9s;
  93 + animation-delay: 0.9s;
  94 +}
  95 +@-webkit-keyframes sk-foldCubeAngle {
  96 + 0%, 10% {
  97 + -webkit-transform: perspective(140px) rotateX(-180deg);
  98 + transform: perspective(140px) rotateX(-180deg);
  99 + opacity: 0;
  100 + } 25%, 75% {
  101 + -webkit-transform: perspective(140px) rotateX(0deg);
  102 + transform: perspective(140px) rotateX(0deg);
  103 + opacity: 1;
  104 + } 90%, 100% {
  105 + -webkit-transform: perspective(140px) rotateY(180deg);
  106 + transform: perspective(140px) rotateY(180deg);
  107 + opacity: 0;
  108 + }
  109 +}
  110 +@keyframes sk-foldCubeAngle {
  111 + 0%, 10% {
  112 + -webkit-transform: perspective(140px) rotateX(-180deg);
  113 + transform: perspective(140px) rotateX(-180deg);
  114 + opacity: 0;
  115 + } 25%, 75% {
  116 + -webkit-transform: perspective(140px) rotateX(0deg);
  117 + transform: perspective(140px) rotateX(0deg);
  118 + opacity: 1;
  119 + } 90%, 100% {
  120 + -webkit-transform: perspective(140px) rotateY(180deg);
  121 + transform: perspective(140px) rotateY(180deg);
  122 + opacity: 0;
  123 + }
9 124 }
\ No newline at end of file
... ...
... ... @@ -7,4 +7,5 @@ export const FETCH_X_REQUEST_ID = 'FETCH_X_REQUEST_ID';
7 7 export const FETCH_FORM_NAME = 'FETCH_FORM_NAME';
8 8
9 9 /*系统操作 */
10   -export const SYSTEM_MENU_SELECTED_KEYS = 'SYSTEM_MENU_SELECTED_KEYS';
\ No newline at end of file
  10 +export const SYSTEM_MENU_SELECTED_KEYS = 'SYSTEM_MENU_SELECTED_KEYS';//选中菜单
  11 +export const SYSTEM_MENU_PERMS = 'SYSTEM_MENU_PERMS';//系统菜单权限
\ No newline at end of file
... ...
... ... @@ -32,9 +32,8 @@ function* handldRouter() {
32 32 const { payload = {} } = routerAction;
33 33 const { location = {} } = payload;
34 34 const { pathname = '' } = location;
35   - // const { uaa: { uaa_perms = [] } } = state;
36   - // yield selectSysMenus(uaa_perms);
37   - yield selectSysMenus([]);
  35 + const { system: { system_menu_perms = [] } } = state;
  36 + yield selectSysMenus(system_menu_perms);
38 37 }
39 38 }
40 39
... ...
... ... @@ -3,7 +3,18 @@ import * as types from '../actionTypes';
3 3 import { typeToLowerCase, reducerFactory } from '../../utils/commonUtils';
4 4
5 5 const initialState = {
6   - [typeToLowerCase(types.SYSTEM_MENU_SELECTED_KEYS)]: { openKeys: [], selectedKeys: [] }
  6 + [typeToLowerCase(types.SYSTEM_MENU_SELECTED_KEYS)]: { openKeys: [], selectedKeys: [] },
  7 + [typeToLowerCase(types.SYSTEM_MENU_PERMS)]: [{
  8 + module: "home",
  9 + module_name: "首页",
  10 + parent_module: "",
  11 + parent_module_name: ""
  12 + }, {
  13 + module: "statistics",
  14 + module_name: "统计",
  15 + parent_module: "",
  16 + parent_module_name: ""
  17 + }]
7 18 };
8 19
9 20 export default reduceReducers(initialState, reducerFactory);
\ No newline at end of file
... ...
... ... @@ -6,12 +6,17 @@ import asyncComponent from '../AsyncComponent';
6 6 const HomeContainer = asyncComponent(
7 7 () => import(/* webpackChunkName: "home" */'../../containers/home')
8 8 );
  9 +//统计
  10 +const StatisticsContainer = asyncComponent(
  11 + () => import(/* webpackChunkName: "home" */'../../containers/home/StatisticsContainer')
  12 +);
9 13
10 14 const homeRoute = (match) => {
11 15 return (
12 16 <Switch>
13 17 {/* 首页 */}
14 18 <Route exact={true} path={`${match.path}/home`} component={HomeContainer} />
  19 + <Route exact={true} path={`${match.path}/statistics`} component={StatisticsContainer} />
15 20 </Switch>
16 21 );
17 22 };
... ...
... ... @@ -50,7 +50,7 @@ class LayoutRoute extends React.Component {
50 50 headcccc
51 51 <a href="/signOut">退出</a>
52 52 </Header>
53   - <Layout className={cx("layout-content-wrap")}>
  53 + <Layout className={cx("layout-content-wrap")} >
54 54 <Sider className="layout-sider-wrap" collapsedWidth={0} collapsible={false} width={180}>
55 55 <div>
56 56 <SysMenu></SysMenu>
... ...
注册登录 后发表评论