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;