From 50821207863ae07b0ab36a604fcbad200a055af9 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 23 六月 2023 00:11:38 +0800 Subject: [PATCH] 2023-06-23 --- src/views/mkiframe/index.jsx | 118 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 75 insertions(+), 43 deletions(-) diff --git a/src/views/mkiframe/index.jsx b/src/views/mkiframe/index.jsx index 6cfd00d..e443da7 100644 --- a/src/views/mkiframe/index.jsx +++ b/src/views/mkiframe/index.jsx @@ -1,66 +1,98 @@ import React, {Component} from 'react' -import { Spin } from 'antd' +import { Spin, notification } from 'antd' import Api from '@/api' +import asyncComponent from '@/utils/asyncLoadComponent' import './index.scss' + +const CustomPage = asyncComponent(() => import('@/tabviews/custom')) +const BaseTable = asyncComponent(() => import('@/tabviews/basetable')) class MkIframe extends Component { state = { - loading: true + loading: true, + BID: '', + MenuId: '', + type: 'CustomPage' } UNSAFE_componentWillMount() { - const { menuId, userId, loginUid, bid } = this.props.match.params + const { menuId, loginUid, bid } = this.props.match.params - sessionStorage.setItem('LoginUID', '202306221645124938E53FE0520A64CE2B486') - // sessionStorage.setItem('LoginUID', loginUid) - console.log(userId) - Api.getTouristMsg('login_check', 'http://demo.mk9h.cn/erp_new/webapi/dostars').then(res => { - console.log(res) - if (res.status) { - - } else { - + if (sessionStorage.getItem('UserID')) { + this.getPermRole() + } else { + sessionStorage.setItem('LoginUID', loginUid) + + Api.getTouristMsg('login_check').then(res => { + if (res.status) { + sessionStorage.setItem('UserID', res.UserID) + sessionStorage.setItem('LoginUID', res.LoginUID) + sessionStorage.setItem('User_Name', res.UserName) + sessionStorage.setItem('Full_Name', res.FullName) + sessionStorage.setItem('avatar', res.icon || '') + sessionStorage.setItem('dataM', res.dataM ? 'true' : '') + sessionStorage.setItem('debug', res.debug || '') + sessionStorage.setItem('role_id', res.role_id || '') + sessionStorage.setItem('departmentcode', res.departmentcode || '') + sessionStorage.setItem('organization', res.organization || '') + sessionStorage.setItem('mk_user_type', res.mk_user_type || '') + this.getPermRole() + } else { + sessionStorage.clear() + sessionStorage.setItem('iframe', `/iframe/${menuId}/@loginuid@/${bid || ''}`) + this.props.history.replace('/login') + } + }) + } + + this.setState({BID: bid || '', MenuId: menuId}) + } + + getPermRole = () => { + Api.getSystemConfig({ + func: 's_Get_TrdMenu_Role', + edition_type: 'A', + pro_sys: window.GLOB.systemType === 'production' ? 'Y' : '' + }).then(result => { + if (!result.status) { + notification.error({ + top: 92, + message: result.message, + duration: 10 + }) + return } + + let _permAction = {loaded: true} // 鎸夐挳鏉冮檺 + + if (result.UserRoles_Menu) { + result.UserRoles_Menu.forEach(menu => { + if (!menu.MenuID) return + _permAction[menu.MenuID] = true + }) + } + + window.GLOB.mkActions = _permAction + + this.setState({loading: false}) }) } - componentDidMount() { - // sessionStorage.setItem('ThirdMenu', this.props.match.params.menuId) - - // if (sessionStorage.getItem('UserID')) { - // this.props.history.replace('/main') - // } else { - // localStorage.setItem('getSessionStorage', window.GLOB.appkey) - - // window.addEventListener('storage', function(event) { - // if (event.key === 'sessionStorage' && event.newValue && !sessionStorage.getItem('UserID')) { - // let values = event.newValue - // values = JSON.parse(values) - - // Object.keys(values).forEach(key => { - // sessionStorage.setItem(key, values[key]) - // }) - // } - // }) - - // setTimeout(() => { - // localStorage.removeItem('getSessionStorage') - // localStorage.removeItem('sessionStorage') - - // if (sessionStorage.getItem('UserID')) { - // this.props.history.replace('/main') - // } else { - // this.props.history.replace('/login') - // } - // }, 20) - // } + changeTemp = (MenuID, Template) => { + this.setState({ + type: Template + }) } render () { + const { loading, BID, MenuId, type } = this.state + return ( <div className="main-iframe"> - <Spin size="large" /> + {loading ? <Spin size="large" /> : null} + {!loading && type === 'CustomPage' ? <CustomPage MenuID={MenuId} param={{$BID: BID}} changeTemp={this.changeTemp}/> : null} + {!loading && type === 'BaseTable' ? <BaseTable MenuID={MenuId} param={{$BID: BID}} changeTemp={this.changeTemp}/> : null} </div> ) } -- Gitblit v1.8.0