king
2024-11-06 e2fd227b24a2d188ef209dc47fabcc8390f2a94b
2024-11-06
1 文件已重命名
6个文件已修改
1个文件已删除
2个文件已添加
241 ■■■■■ 已修改文件
src/components/breadview/index.jsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/sysmessage.jsx 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/sysmessage/icon.jsx 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/sysmessage/index.jsx 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/sysmessage/index.scss 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tabview/index.jsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/data-card/index.scss 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/double-data-card/index.scss 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/main/index.jsx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/breadview/index.jsx
@@ -17,7 +17,6 @@
const TreePage = asyncComponent(() => import('@/tabviews/treepage'))
const Iframe = asyncComponent(() => import('@/tabviews/iframe'))
const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage'))
const SysMessage = asyncComponent(() => import('@/tabviews/sysmessage'))
if (sessionStorage.getItem('lang') === 'zh-CN') {
  moment.locale('zh-cn')
@@ -125,8 +124,6 @@
      return (<Home MenuID={view.MenuID} MenuName={view.MenuName}/>)
    } else if (view.type === 'RolePermission') {
      return (<RoleManage MenuID={view.MenuID}/>)
    } else if (view.type === 'SysMessage') {
      return (<SysMessage />)
    } else if (view.type === 'CommonTable') {
      return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>)
    } else if (view.type === 'TreePage') {
src/components/header/index.jsx
@@ -18,7 +18,7 @@
const Resetpwd = asyncComponent(() => import('@/components/resetPassword'))
const QrCode = asyncComponent(() => import('@/components/qrcode'))
const LoginForm = asyncSpinComponent(() => import('./loginform'))
const SysMessage = asyncComponent(() => import('./sysmessage'))
const SysIcon = asyncComponent(() => import('./sysmessage/icon'))
class Header extends Component {
  state = {
@@ -788,7 +788,7 @@
            <SearchOutlined className="search-menu" />
          </Dropdown> : null
        }
        {window.GLOB.SysNotice ? <SysMessage /> : null}
        {window.GLOB.SysNotice ? <SysIcon /> : null}
        {/* 头像、用户名 */}
        <Dropdown className="header-setting" overlay={menu}>
          <div>
src/components/header/sysmessage.jsx
File was deleted
src/components/header/sysmessage/icon.jsx
New file
@@ -0,0 +1,57 @@
import React, { Component } from 'react'
import { notification } from 'antd'
import { MessageFilled } from '@ant-design/icons'
import Api from '@/api'
import MKEmitter from '@/utils/events.js'
class SysIcon extends Component {
  state = {
    notices: []
  }
  componentDidMount () {
    setTimeout(() => {
      this.getMsgList()
    }, 2000)
  }
  getMsgList = () => {
    let param = {
      func: 's_get_kei'
    }
    Api.getSystemConfig(param).then(result => {
      if (result.status) {
        let notices = result.data || []
        this.setState({ notices })
        MKEmitter.emit('sysMessageChange', notices)
        setTimeout(() => {
          this.getMsgList()
        }, 600000)
      } else {
        notification.warning({
          top: 92,
          message: result.message,
          duration: 5
        })
      }
    })
  }
  open = () => {
    MKEmitter.emit('sysMessageOpen')
  }
  render() {
    const { notices } = this.state
    return (
      <MessageFilled className="mk-msg-icon" data-title={notices.length ? notices.length : ''} onClick={this.open} />
    )
  }
}
export default SysIcon
src/components/header/sysmessage/index.jsx
New file
@@ -0,0 +1,58 @@
import React, { Component } from 'react'
import { CloseOutlined } 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 })
  }
  sysMessageOpen = () => {
    this.setState({ visible: true })
  }
  close = () => {
    this.setState({ visible: false })
  }
  render() {
    const { visible, notices } = this.state
    return (
      <div className={'mk-msg-wrap' + (visible ? ' visible' : '')}>
        <div className="title">
          系统消息
          <CloseOutlined onClick={this.close}/>
        </div>
        <div className="msg-list">{notices.map((item, index) => {
          return <div className="msg-item" key={index}>
            {item.remark}
          </div>
        })}</div>
      </div>
    )
  }
}
export default SysMessage
src/components/header/sysmessage/index.scss
File was renamed from src/components/header/sysmessage.scss
@@ -66,6 +66,15 @@
      color: rgba(0, 0, 0, 0.85);
    }
  }
  .msg-list {
    .msg-item {
      height: 80px;
      background: rgba(0, 0, 0, 0.05);
      margin: 10px 0px;
      padding: 5px;
      border-radius: 2px;
    }
  }
}
.mk-msg-wrap.visible {
  z-index: 3000;
src/components/tabview/index.jsx
@@ -18,7 +18,6 @@
const TreePage = asyncComponent(() => import('@/tabviews/treepage'))
const Iframe = asyncComponent(() => import('@/tabviews/iframe'))
const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage'))
const SysMessage = asyncComponent(() => import('@/tabviews/sysmessage'))
if (sessionStorage.getItem('lang') === 'zh-CN') {
  moment.locale('zh-cn')
@@ -285,8 +284,6 @@
      return (<Home MenuID={view.MenuID} MenuName={view.MenuName}/>)
    } else if (view.type === 'RolePermission') {
      return (<RoleManage MenuID={view.MenuID}/>)
    } else if (view.type === 'SysMessage') {
      return (<SysMessage />)
    } else if (view.type === 'CommonTable') {
      return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} param={view.param} changeTemp={this.changeTemp}/>)
    } else if (view.type === 'TreePage') {
src/tabviews/custom/components/card/data-card/index.scss
@@ -79,6 +79,15 @@
        margin-bottom: 0!important;
      }
    }
    .extend-card:last-child:not(:only-child) {
      position: sticky;
      bottom: 0;
      z-index: 1;
      .card-item-box {
        margin-top: 0!important;
        margin-bottom: 0!important;
      }
    }
    div:last-child {
      .card-item-box {
        border-bottom: none!important;
src/tabviews/custom/components/card/double-data-card/index.scss
@@ -286,6 +286,15 @@
          margin-bottom: 0!important;
        }
      }
      .extend-card:last-child:not(:only-child) {
        position: sticky;
        bottom: 0;
        z-index: 1;
        .card-item-box {
          margin-top: 0!important;
          margin-bottom: 0!important;
        }
      }
      div:last-child {
        .sub-card-wrap {
          .card-item-box {
src/views/main/index.jsx
@@ -1,4 +1,4 @@
import React, {Component} from 'react'
import React, { Component } from 'react'
import asyncComponent from '@/utils/asyncComponent'
import Header from '@/components/header'
@@ -11,6 +11,7 @@
const Tabview = asyncComponent(() => import('@/components/tabview'))
const Breadview = asyncComponent(() => import('@/components/breadview'))
const SysMessage = asyncComponent(() => import('@/components/header/sysmessage/index'))
class Main extends Component {
  state = {
@@ -72,15 +73,18 @@
    if (!this.state.userId) return null
    return (
      <div className="mk-main-view">
        <Header key="header"/>
        {navBar === 'shutter' ? <Sidemenu key="sidemenu"/> : null}
        {navBar === 'shutter' || navBar === 'menu_board_navigation' ?
          <Tabview key="tabview"/> :
          <Breadview key="breadview"/>}
      <>
        <div className="mk-main-view">
          <Header key="header"/>
          {navBar === 'shutter' ? <Sidemenu key="sidemenu"/> : null}
          {navBar === 'shutter' || navBar === 'menu_board_navigation' ?
            <Tabview key="tabview"/> :
            <Breadview key="breadview"/>}
          <ImgScale />
        </div>
        {window.GLOB.systemType === 'production' ? <QueryLog /> : null}
        <ImgScale />
      </div>
        {window.GLOB.SysNotice ? <SysMessage /> : null}
      </>
    )
  }
}