提交 6e53be3276406809a65dbb8732b1a06c79394dba

作者 fanwh
1 个父辈 51740c7b

no message

@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
21 "rc-animate": "^2.8.3", 21 "rc-animate": "^2.8.3",
22 "react": "^16.8.6", 22 "react": "^16.8.6",
23 "react-dom": "^16.8.6", 23 "react-dom": "^16.8.6",
  24 + "react-iframe": "^1.8.0",
24 "react-loadable": "^5.5.0", 25 "react-loadable": "^5.5.0",
25 "react-redux": "^7.1.0", 26 "react-redux": "^7.1.0",
26 "react-router": "^5.0.1", 27 "react-router": "^5.0.1",
@@ -105,8 +105,8 @@ class SysMenu extends React.Component { @@ -105,8 +105,8 @@ class SysMenu extends React.Component {
105 }); 105 });
106 } 106 }
107 render() { 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 return ( 110 return (
111 <Menu className={cx('system_wrap')} 111 <Menu className={cx('system_wrap')}
112 onClick={this.handleClick} 112 onClick={this.handleClick}
@@ -146,14 +146,14 @@ class SysMenu extends React.Component { @@ -146,14 +146,14 @@ class SysMenu extends React.Component {
146 const mapState = (state) => { 146 const mapState = (state) => {
147 const { 147 const {
148 router = {}, 148 router = {},
149 - // system: { system_menu_selected_keys: { openKeys, selectedKeys } } 149 + system: { system_menu_selected_keys: { openKeys = [], selectedKeys = [] }, system_menu_perms = [] }
150 } = state; 150 } = state;
151 return { 151 return {
152 router, 152 router,
153 uaa_tenant: {}, 153 uaa_tenant: {},
154 - uaa_perms: [],  
155 - openKeys: [],  
156 - selectedKeys: [] 154 + system_menu_perms,
  155 + openKeys,
  156 + selectedKeys
157 }; 157 };
158 }; 158 };
159 export default connect(mapState)(SysMenu); 159 export default connect(mapState)(SysMenu);
@@ -27,14 +27,6 @@ class Login extends React.Component { @@ -27,14 +27,6 @@ class Login extends React.Component {
27 api.postLogin(values).then(data => { 27 api.postLogin(values).then(data => {
28 console.log(data); 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 backLogin() { 31 backLogin() {
40 const { dispatch } = this.props; 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,4 +6,119 @@
6 width: 100vw; 6 width: 100vw;
7 height: 100vh; 7 height: 100vh;
8 overflow: hidden; 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 }
@@ -7,4 +7,5 @@ export const FETCH_X_REQUEST_ID = 'FETCH_X_REQUEST_ID'; @@ -7,4 +7,5 @@ export const FETCH_X_REQUEST_ID = 'FETCH_X_REQUEST_ID';
7 export const FETCH_FORM_NAME = 'FETCH_FORM_NAME'; 7 export const FETCH_FORM_NAME = 'FETCH_FORM_NAME';
8 8
9 /*系统操作 */ 9 /*系统操作 */
10 -export const SYSTEM_MENU_SELECTED_KEYS = 'SYSTEM_MENU_SELECTED_KEYS';  
  10 +export const SYSTEM_MENU_SELECTED_KEYS = 'SYSTEM_MENU_SELECTED_KEYS';//选中菜单
  11 +export const SYSTEM_MENU_PERMS = 'SYSTEM_MENU_PERMS';//系统菜单权限
@@ -32,9 +32,8 @@ function* handldRouter() { @@ -32,9 +32,8 @@ function* handldRouter() {
32 const { payload = {} } = routerAction; 32 const { payload = {} } = routerAction;
33 const { location = {} } = payload; 33 const { location = {} } = payload;
34 const { pathname = '' } = location; 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,7 +3,18 @@ import * as types from '../actionTypes';
3 import { typeToLowerCase, reducerFactory } from '../../utils/commonUtils'; 3 import { typeToLowerCase, reducerFactory } from '../../utils/commonUtils';
4 4
5 const initialState = { 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 export default reduceReducers(initialState, reducerFactory); 20 export default reduceReducers(initialState, reducerFactory);
@@ -6,12 +6,17 @@ import asyncComponent from '../AsyncComponent'; @@ -6,12 +6,17 @@ import asyncComponent from '../AsyncComponent';
6 const HomeContainer = asyncComponent( 6 const HomeContainer = asyncComponent(
7 () => import(/* webpackChunkName: "home" */'../../containers/home') 7 () => import(/* webpackChunkName: "home" */'../../containers/home')
8 ); 8 );
  9 +//统计
  10 +const StatisticsContainer = asyncComponent(
  11 + () => import(/* webpackChunkName: "home" */'../../containers/home/StatisticsContainer')
  12 +);
9 13
10 const homeRoute = (match) => { 14 const homeRoute = (match) => {
11 return ( 15 return (
12 <Switch> 16 <Switch>
13 {/* 首页 */} 17 {/* 首页 */}
14 <Route exact={true} path={`${match.path}/home`} component={HomeContainer} /> 18 <Route exact={true} path={`${match.path}/home`} component={HomeContainer} />
  19 + <Route exact={true} path={`${match.path}/statistics`} component={StatisticsContainer} />
15 </Switch> 20 </Switch>
16 ); 21 );
17 }; 22 };
@@ -50,7 +50,7 @@ class LayoutRoute extends React.Component { @@ -50,7 +50,7 @@ class LayoutRoute extends React.Component {
50 headcccc 50 headcccc
51 <a href="/signOut">退出</a> 51 <a href="/signOut">退出</a>
52 </Header> 52 </Header>
53 - <Layout className={cx("layout-content-wrap")}> 53 + <Layout className={cx("layout-content-wrap")} >
54 <Sider className="layout-sider-wrap" collapsedWidth={0} collapsible={false} width={180}> 54 <Sider className="layout-sider-wrap" collapsedWidth={0} collapsible={false} width={180}>
55 <div> 55 <div>
56 <SysMenu></SysMenu> 56 <SysMenu></SysMenu>
注册登录 后发表评论