king
2023-06-23 50821207863ae07b0ab36a604fcbad200a055af9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import React, {Component} from 'react'
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,
    BID: '',
    MenuId: '',
    type: 'CustomPage'
  }
 
  UNSAFE_componentWillMount() {
    const { menuId, loginUid, bid } = this.props.match.params
 
    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})
    })
  }
 
  changeTemp = (MenuID, Template) => {
    this.setState({
      type: Template
    })
  }
 
  render () {
    const { loading, BID, MenuId, type } = this.state
 
    return (
      <div className="main-iframe">
        {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>
    )
  }
}
 
export default MkIframe