From 2998f413a5e196e99df887787aa4b250cd9f3b78 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 24 十二月 2024 14:56:23 +0800 Subject: [PATCH] Merge branch 'positec' into dms --- src/components/header/sysmessage/icon.jsx | 86 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 79 insertions(+), 7 deletions(-) diff --git a/src/components/header/sysmessage/icon.jsx b/src/components/header/sysmessage/icon.jsx index a60199f..fd813a8 100644 --- a/src/components/header/sysmessage/icon.jsx +++ b/src/components/header/sysmessage/icon.jsx @@ -1,13 +1,14 @@ import React, { Component } from 'react' import { notification } from 'antd' -import { MessageFilled } from '@ant-design/icons' +import moment from 'moment' import Api from '@/api' import MKEmitter from '@/utils/events.js' +import url from './msg.png' class SysIcon extends Component { state = { - notices: [] + notices: null } componentDidMount () { @@ -18,15 +19,60 @@ getMsgList = () => { let param = { - func: 's_get_kei' + func: 's_get_unread_oa_mail_v1' } - Api.getSystemConfig(param).then(result => { + Api.genericInterface(param).then(result => { if (result.status) { let notices = result.data || [] + notices.forEach(item => { + let time = new Date(item.submitdate).getTime() + let _val = item.submitdate + if (!isNaN(time)) { + time = parseInt(time / 60000) // 鏃堕棿鍊� + let now = parseInt(new Date().getTime() / 60000) // 褰撳墠鏃堕棿鍊� + let start = new Date(new Date().toDateString()).getTime() / 60000 // 浠婂ぉ闆剁偣鏃堕棿鍊� + let split = now - time + + if (split < 0) { // 鏃堕棿鍊煎湪褰撳墠鏃堕棿涔嬪悗 + _val = moment(_val).format('MM鏈圖D鏃� HH:mm') + } else if (split < 3) { + _val = '鍒氬垰' + } else if (split < 5) { + _val = '3鍒嗛挓鍓�' + } else if (split < 10) { + _val = '5鍒嗛挓鍓�' + } else if (split < 20) { + _val = '10鍒嗛挓鍓�' + } else if (split < 30) { + _val = '20鍒嗛挓鍓�' + } else if (split < 60) { + _val = '30鍒嗛挓鍓�' + } else if (split < 420 || time > start) { // 7灏忔椂鍐呮垨鏃堕棿鍊煎湪浠婂ぉ闆剁偣鍚� + _val = parseInt(split / 60) + '灏忔椂鍓�' + } else { // 鏃堕棿鍊煎湪浠婂ぉ闆剁偣涔嬪墠 + let _day = parseInt((start - time) / (24 * 60)) + 1 + if (_day === 1) { + _val = '鏄ㄥぉ' + } else if (_day <= 30) { + _val = _day + '澶╁墠' + } else { + _val = moment(_val).format('MM鏈圖D鏃� HH:mm') + } + } + } + item.time = _val + }) this.setState({ notices }) - MKEmitter.emit('sysMessageChange', notices) + + MKEmitter.emit('sysMessageChange', notices.slice(0, 5)) + + if (notices.length > 0) { + setTimeout(() => { + MKEmitter.emit('sysMessageOpen') + }, 50) + } setTimeout(() => { this.getMsgList() @@ -42,14 +88,40 @@ } open = () => { - MKEmitter.emit('sysMessageOpen') + const { notices } = this.state + + if (notices.length === 0) { + this.toMenu() + } else { + MKEmitter.emit('sysMessageOpen') + } + } + + 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) } render() { const { notices } = this.state + if (!notices) return null + return ( - <MessageFilled className="mk-msg-icon" data-title={notices.length ? notices.length : ''} onClick={this.open} /> + <span className="mk-msg-icon" onClick={this.open}> + <img src={url} alt=""/> + <span>{notices.length ? notices.length : ''}</span> + </span> ) } } -- Gitblit v1.8.0