index.js 2.62 KB
Newer Older
叶飞's avatar
叶飞 committed
1
import React from 'react';
邓晓峰's avatar
邓晓峰 committed
2

叶飞's avatar
叶飞 committed
3
import classNames from 'classnames';
邓晓峰's avatar
邓晓峰 committed
4
import { findPathByWidget, isJSON } from '../../../../utils/utils';
邓晓峰's avatar
邓晓峰 committed
5 6
import commonStyles from '../common.less';
import styles from './index.less';
邓晓峰's avatar
邓晓峰 committed
7
/* eslint-disable */
叶飞's avatar
叶飞 committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
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;
  }
}

邓晓峰's avatar
邓晓峰 committed
28
const Alarm = ({ message, confirmRead, config }) => {
邓晓峰's avatar
邓晓峰 committed
29
  const alarmContent = (config.mqtt_mess.MessageLevel === "2.0" && isJSON(message.infoContent)) ? JSON.parse(message.infoContent): message.infoContent;
叶飞's avatar
叶飞 committed
30 31
  const goPath = item => {
    confirmRead(false, [message.id]);
邓晓峰's avatar
邓晓峰 committed
32
    const widgetID = 'widget_city_综合运营_管网监控_实时监控_报警监控';
邓晓峰's avatar
邓晓峰 committed
33 34
    const webPath = 'product/scada/AlertMonitoring/AlertMonitoring';
    const widget = findPathByWidget("productex/water/IOTMonitor/RealTimeAlarm/RealTimeAlarm", config.widgets, "", "url");
邓晓峰's avatar
邓晓峰 committed
35

邓晓峰's avatar
邓晓峰 committed
36
    window.share.event.emit('listenerMointer', {
邓晓峰's avatar
邓晓峰 committed
37
      widgetId: widgetID,
邓晓峰's avatar
邓晓峰 committed
38
      label: '实时报警',
邓晓峰's avatar
邓晓峰 committed
39
      url: widget.url || webPath,
邓晓峰's avatar
邓晓峰 committed
40
    });
叶飞's avatar
叶飞 committed
41
  };
邓晓峰's avatar
邓晓峰 committed
42
  const alarmValue = alarmContent && alarmContent.alarmValue && alarmContent.alarmValue.split(' ');
邓晓峰's avatar
邓晓峰 committed
43 44
  let alarmTitle = alarmContent && alarmContent.title && alarmContent.title.split(' ') || alarmContent.alarmDevice;
  alarmTitle = Array.isArray(alarmTitle) ? alarmTitle[1]: alarmTitle;
叶飞's avatar
叶飞 committed
45
  return (
叶飞's avatar
叶飞 committed
46 47 48 49 50
    <div
      className={classNames(styles.scada, commonStyles.messageContainer)}
      title="点击查看详情"
      onClick={() => goPath(message)}
    >
叶飞's avatar
叶飞 committed
51 52 53 54 55
      <div className={commonStyles.title}>
        <span>消息</span>
        <img
          className={commonStyles.confirm}
          title="点击标为已读"
叶飞's avatar
叶飞 committed
56 57 58
          onClick={e => {
            e.stopPropagation();
            confirmRead(false, [message.id]);
叶飞's avatar
叶飞 committed
59
          }}
邓晓峰's avatar
邓晓峰 committed
60
          alt=""
叶飞's avatar
叶飞 committed
61 62 63 64 65 66
          src="https://panda-water.cn/Web4/assets/images/message/%E5%8B%BE%E6%B5%85.png"
        />
      </div>
      <div className={commonStyles.content}>
        <p>
          <i>{alarmContent.alarmType}</i>
邓晓峰's avatar
邓晓峰 committed
67
          {alarmTitle}
叶飞's avatar
叶飞 committed
68
        </p>
邓晓峰's avatar
邓晓峰 committed
69 70 71 72 73 74
        <p style={{color: '#888'}}>{alarmContent.alarmContent}</p>
        <p style={{color: '#888'}} >

          {
            alarmContent && alarmContent.content.split(",")[1]
          }
叶飞's avatar
叶飞 committed
75 76 77 78 79 80 81 82
        </p>
        <p className={commonStyles.messageTime}>{message.time}</p>
      </div>
    </div>
  );
};

export default Alarm;