import React from 'react'; import _ from 'lodash'; // eslint-disable-next-line import/no-unresolved import classNames from 'classnames'; import { findPathByWidget, isJSON } from '@wisdom-utils/components/lib/AppLayout/helpers'; import '../styles/common.less'; import './index.less'; import { ConfigProvider } from 'antd'; import { getMessageTypeIcon } from '../../utils'; /* eslint-disable */ export class AlarmContent { constructor({ alarmType, deviceCode, alarmDevice, alarmContent, alarmValue, alarmThreshold, time, } = content) { this.alarmType = alarmType; this.deviceCode = deviceCode; this.alarmDevice = alarmDevice; this.alarmContent = alarmContent; this.alarmValue = alarmValue; this.alarmThreshold = alarmThreshold; this.time = time; } } const Alarm = ({ message, confirmRead, config, handlerUnknowDetail }) => { const { getPrefixCls } = React.useContext(ConfigProvider.ConfigContext); const prefixCls = getPrefixCls(); const alarmType = message?.infoContent?.alarmType; const alarmTitle = message?.infoContent?.title?.split(' ')?.splice(1)?.join(' ') ?? ''; // const alarmDevice = message?.infoContent?.alarmDevice; const content = message?.infoContent?.alarmContent; const alarmValue = message?.infoContent?.alarmValue; const alarmThreshold = message?.infoContent?.alarmThreshold; const goPath = (item) => { if(handlerUnknowDetail && handlerUnknowDetail(message, 'civweb4')) { const widgetID = 'widget_city_综合运营_管网监控_实时监控_报警监控'; const webPath = 'product/scada/AlertMonitoring/AlertMonitoring'; const widget = findPathByWidget( 'productex/water/IOTMonitor/RealTimeAlarm/RealTimeAlarm', config.widgets, '', 'url', ); if (window?.share?.event?._events?.listenerMointer) { window.share.event.emit('listenerMointer', { widgetId: widgetID, label: '实时报警', url: widget.url || webPath, }); } else { handlerUnknowDetail(message, null, 'alarm'); } } confirmRead(false, [message.id]); }; return ( <div className={classNames(`${prefixCls}-notifier-message_scada`, `${prefixCls}-notifier-message-container`)} title="点击查看详情" onClick={() => goPath(message)} style={{ backgroundImage: `url(${getMessageTypeIcon(message)})` }} > <div className={`${prefixCls}-notifier-message-title`}> <span>{alarmType}</span> <img className={`${prefixCls}-notifier-message-confirm`} title="点击标为已读" onClick={(e) => { e.stopPropagation(); confirmRead(false, [message.id]); }} alt="" src={require('../../images/oper/ok_line.png')} /> </div> <div className={`${prefixCls}-notifier-message-content`}> <p> {alarmTitle} {/* <span className={`${prefixCls}-notifier-message_scada-deviceinfo`}>{alarmDevice ? `${alarmDevice}: ` : ''}</span> */} <span className={`${prefixCls}-notifier-message_scada-deviceinfo`}> {message?.infoContent?.deviceCode}</span> </p> <p> <span style={{ color: '#888' }}>{content}</span> { alarmThreshold && (<span className={`${prefixCls}-notifier-message_scada-threshold-value`}>预设值:{alarmThreshold}</span>)} { alarmValue && (<span className={`${prefixCls}-notifier-message_scada-alarm-value`}>报警值:{alarmValue}</span>)} </p> </div> <p className={`${prefixCls}-notifier-message-time`}>{message.time}</p> </div> ); }; export default Alarm;