king
8 天以前 a1e9b18a4dbfd21e1bf4d5cb60974ac2f0115efd
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
import React, { Component } from 'react'
import { CloseOutlined, SoundOutlined } from '@ant-design/icons'
 
import MKEmitter from '@/utils/events.js'
 
import './index.scss'
 
class SysMessage extends Component {
  state = {
    visible: false,
    notices: []
  }
 
  componentDidMount() {
    MKEmitter.addListener('sysMessageChange', this.sysMessageChange)
    MKEmitter.addListener('sysMessageOpen', this.sysMessageOpen)
  }
 
  componentWillUnmount () {
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('sysMessageChange', this.sysMessageChange)
    MKEmitter.removeListener('sysMessageOpen', this.sysMessageOpen)
  }
 
  sysMessageChange = (notices) => {
    this.setState({ notices })
 
    if (notices.length === 0) {
      this.setState({ visible: false })
    }
  }
 
  sysMessageOpen = () => {
    this.setState({ visible: true })
  }
 
  close = () => {
    this.setState({ visible: false })
  }
 
  toMenu = () => {
    let menu = {
      MenuID: '1731250110643ivgpv9gdgiif5lggh4e',
      MenuName: '内部邮箱',
      type: 'CustomPage',
      param: {$BID: ''}
    }
 
    if (window.GLOB.mkThdMenus.has(menu.MenuID)) {
      menu.MenuName = window.GLOB.mkThdMenus.get(menu.MenuID).MenuName
    }
 
    MKEmitter.emit('modifyTabs', menu)
 
    this.setState({ visible: false })
  }
 
  render() {
    const { visible, notices } = this.state
 
    return (
      <div className={'mk-msg-wrap' + (visible ? ' visible' : '')}>
        <div className="title">
          <SoundOutlined />
          <CloseOutlined onClick={this.close}/>
        </div>
        <div className="msg-list">{notices.map((item, index) => {
          return <div className={'msg-item ' + (item.urgent_type === 'Y' ? 'red' : '')} key={index} onClick={this.toMenu}>
            <span>{item.createstaff}</span><span className="time">{item.time}</span>
            <span>{item.title}</span>
          </div>
        })}</div>
        <span className="jump" onClick={this.toMenu}>详情&nbsp;&nbsp;&gt;</span>
      </div>
    )
  }
}
 
export default SysMessage