import PeopleComplaint from '../NewHome/NewLeftSidebar/UrbanManagementIssues/PeopleComplaint';
import AdministPunish from './modals/AdministPunish';
import AdministPunishDetails from './modals/AdministPunishDetails';
import AdministPunishList from './modals/AdministPunishList';
import AnalysisCompletionRate from './modals/AnalysisCompletionRate';
import AreaSynergy from './modals/AreaSynergy';
import AreaSynergyDetails from './modals/AreaSynergy/AreaSynergyDetails';
import AreaSynergyList from './modals/AreaSynergy/AreaSynergyList';
import BridgeMaintenanceList from './modals/BridgeMaintenanceList';
import BridgeManage from './modals/BridgeManage';
import Category from './modals/Category';
import CgftEvent from './modals/CgftEvent';
import CollectionEvent from './modals/CollectionEvent';
import ConstructionWaste from './modals/ConstructionWaste';
import DataActivity from './modals/DataActivity';
import DataBase from './modals/DataBase';
import DataGovernance from './modals/DataGovernance';
import DifficultEvents from './modals/DifficultEvents';
import DistrictIndex from './modals/DistrictIndex';
import DyaPatrol from './modals/DyaPatrol';
import DyaPatrolDetails from './modals/DyaPatrol/DyaPatrolDetails';
import DyaPatrolList from './modals/DyaPatrol/DyaPatrolList';
import EquipResource from './modals/EquipResource';
import EventDetail from './modals/EventDetail';
import GeneralSituation from './modals/GeneralSituation';
import IndustrySystem from './modals/IndustrySystem';
import InfluenceSign from './modals/InfluenceSign';
import InfluenceSignNew from './modals/InfluenceSignNew';
import KeyArea from './modals/KeyArea';
import KeyAreaDetail from './modals/KeyAreaDetail';
import LightingAlarmList from './modals/LightingAlarmList';
import LightingDeviceStatus from './modals/LightingDeviceStatus';
import LightingFaultDetails from './modals/LightingFaultDetails';
import LightingFaultDisposal from './modals/LightingFaultDisposal';
import LivingGarbage from './modals/LivingGarbage';
import OtherEvent from './modals/OtherEvent';
import PipeGalleryDetail from './modals/PipeGalleryDetail';
import PipelineAssessment from './modals/PipelineAssessment';
import PipelineAssessmentDetail from './modals/PipelineAssessmentDetail';
import PipelineDefectList from './modals/PipelineDefectList';
import PipelineInspection from './modals/PipelineInspection';
import PipelineInspectionDetail from './modals/PipelineInspectionDetail';
import PipelineMaintenance from './modals/PipelineMaintenance';
import PipelineMaintenanceDetail from './modals/PipelineMaintenanceDetail';
import PipelineMonitor from './modals/PipelineMonitor';
import PipelineMonitorDetail from './modals/PipelineMonitorDetail';
import PipelinePassage from './modals/PipelinePassage';
import SanitationDisp from './modals/SanitationDisp';
import SanitationEvent from './modals/SanitationEvent';
import SanitationResource from './modals/SanitationResource';
import SignModel from './modals/SignModel';
import ToDisposed from './modals/ToDisposed';
import UrbanLighting from './modals/UrbanLighting';
import UrbanOperation from './modals/UrbanOperation';
import type { ModalMapping } from './type';

export type ModalKey = keyof typeof Registry.RegistryList;

/** @see ModalMapping 弹窗注册在这里 */
export default class Registry {
  static readonly RegistryList = {
    /**
     * 行业指数弹窗
     * @module DistrictIndex
     * @see DistrictIndex.RightBox
     */
    districtIndex: {
      defaultConfig: {
        w: 2756,
        h: 846,
        title: '行业指数',
      },
      defaultProps: {},
      modal: DistrictIndex,
    },
    /**
     * 行业指数弹窗
     * @module DistrictIndex
     * @see DistrictIndex.RightBox
     */
    InfluenceSign: {
      defaultConfig: {
        w: 1470,
        h: 846,
        title: '影响指标',
      },
      defaultProps: {},
      modal: InfluenceSign,
    },
    /**
     * 行业指数弹窗(new)
     * @module DistrictIndex
     * @see DistrictIndex.RightBox
     */
    InfluenceSignNew: {
      defaultConfig: {
        w: 1470,
        h: 846,
      },
      defaultProps: {},
      modal: InfluenceSignNew,
    },
    /**
     * 体征模型
     * @module overview
     * @see NewHome - > NewLeftSidebar -> CityRealTimeCQI
     */
    SignModel: {
      defaultConfig: {
        w: 1470,
        h: 846,
        title: '体征模型',
      },
      defaultProps: {},
      modal: SignModel,
    },
    /**
     * 诚管24高速通道
     * @module overview
     * @see
     */
    CgftEvent: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {
        singleType: '1',
      },
      modal: CgftEvent,
    },
    /**
     * 智慧蓉城提级通道
     * @module overview
     * @see
     */
    UrbanOperation: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {
        eventType: '5',
      },
      modal: UrbanOperation,
    },
    /**
     * 行业自闭环通道处置情况
     * @module overview
     * @see
     */
    OtherEvent: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {
        isOther: '1',
      },
      modal: OtherEvent,
    },
    /**
     * 待处置
     * @module overview
     * @see
     */
    ToDisposed: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {},
      modal: ToDisposed,
    },
    /**
     * 完成率
     * @module overview
     * @see
     */
    CompletionRate: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {},
      modal: AnalysisCompletionRate,
    },
    /**
     * 整体情况
     * @module overview
     * @see
     */
    GeneralSituation: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {},
      modal: GeneralSituation,
    },
    /**
     * 整体情况
     * @module overview
     * @see
     */
    CollectionEvent: {
      defaultConfig: {
        w: 1772,
        h: 846,
      },
      defaultProps: {},
      modal: CollectionEvent,
    },
    /**
     * 疑难问题
     * @module overview
     * @see
     */
    DifficultEvents: {
      defaultConfig: {
        w: 2000,
        h: 800,
      },
      defaultProps: {},
      modal: DifficultEvents,
    },

    /**
     * EventDetail
     * @module Event
     * @see Event -> EventDetail
     */
    EventDetail: {
      defaultConfig: {
        // w: 1465,
        h: 950,
        title: '事件详情',
      },
      defaultProps: {},
      modal: EventDetail,
    },

    /**
     * 行业系统接入清单
     * @module IndustryOperationNew
     * @see Event -> EventDetail
     */
    IndustrySystem: {
      defaultConfig: {
        w: 1104,
        h: 935,
        title: '行业系统',
      },
      defaultProps: {},
      modal: IndustrySystem,
    },

    /**
     * 体征模型
     * @module overview
     * @see NewHome - > NewLeftSidebar -> CityRealTimeCQI
     */
    Category: {
      defaultConfig: {
        w: 1470,
        h: 846,
      },
      defaultProps: {},
      modal: Category,
    },

    keyArea: {
      defaultConfig: {
        w: 2771,
        h: 846,
        title: '重点区域',
        keepalive: true,
      },
      defaultProps: {},
      modal: KeyArea,
    },

    KeyAreaDetail: {
      defaultConfig: {
        w: 2771,
        h: 846,
        title: '重点区域详情',
      },
      defaultProps: {},
      modal: KeyAreaDetail,
    },
    DataBase: {
      defaultConfig: {
        w: 2343,
        h: 846,
        title: '数据仓库',
      },
      defaultProps: {},
      modal: DataBase,
    },
    DataActivity: {
      defaultConfig: {
        w: 1616,
        h: 935,
        title: '城市管理数据标签体系',
      },
      defaultProps: {},
      modal: DataActivity,
    },
    DataGovernance: {
      defaultConfig: {
        w: 1822, // 1790
        // w: 1920,  // 1790
        h: 846,
        title: '城管数据治理概况',
      },
      defaultProps: {},
      modal: DataGovernance,
    },
    AdministPunish: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '行政处罚',
      },
      defaultProps: {},
      modal: AdministPunish,
    },
    AdministPunishList: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '行政处罚列表',
      },
      defaultProps: {},
      modal: AdministPunishList,
    },
    AdministPunishDetails: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '行政处罚详情',
      },
      defaultProps: {},
      modal: AdministPunishDetails,
    },

    DyaPatrol: {
      defaultConfig: {
        w: 1380,
        h: 880,
        title: '巡查处置',
      },
      defaultProps: {},
      modal: DyaPatrol,
    },
    DyaPatrolList: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '巡查处置列表',
      },
      defaultProps: {},
      modal: DyaPatrolList,
    },
    DyaPatrolDetails: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '巡查处置问题详情',
      },
      defaultProps: {},
      modal: DyaPatrolDetails,
    },
    AreaSynergy: {
      defaultConfig: {
        w: 1380,
        h: 858,
        title: '市区协同处置',
      },
      defaultProps: {},
      modal: AreaSynergy,
    },
    AreaSynergyList: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '市区协同处置事件列表',
      },
      defaultProps: {},
      modal: AreaSynergyList,
    },
    AreaSynergyDetails: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '市区协同问题详情',
      },
      defaultProps: {},
      modal: AreaSynergyDetails,
    },
    EquipResource: {
      defaultConfig: {
        w: 1380,
        h: 865,
        title: '总队执法装备资源分配情况',
      },
      defaultProps: {},
      modal: EquipResource,
    },
    SanitationDisp: {
      defaultConfig: {
        w: 1320,
        h: 865,
        title: '环境卫生问题处置情况',
      },
      defaultProps: {},
      modal: SanitationDisp,
    },
    SanitationEvent: {
      defaultConfig: {
        w: 1320,
        h: 865,
        title: '问题列表',
      },
      defaultProps: {},
      modal: SanitationEvent,
    },
    SanitationResource: {
      defaultConfig: {
        w: 1450,
        h: 885,
        title: '环卫资源',
      },
      defaultProps: {},
      modal: SanitationResource,
    },
    PeopleComplaint: {
      defaultConfig: {
        w: 1450,
        h: 885,
        title: '老百姓投诉情况',
      },
      defaultProps: {},
      modal: PeopleComplaint,
    },
    /**
     * 管廊柱特弹窗
     * @module IndustryOperationNew
     * @see IndustryOperationNew.MunicipalFacilities
     */
    PipelinePassage: {
      defaultConfig: {
        w: 3268,
        h: 858,
        title: '综合管廊',
      },
      defaultProps: {},
      modal: PipelinePassage,
    },

    /**
     * 管廊详情弹窗
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipeGalleryDetail: {
      defaultConfig: {
        w: 2052,
        h: 858,
        title: '保水沟综合管廊',
      },
      defaultProps: {},
      modal: PipeGalleryDetail,
    },
    /**
     * 管廊-监测信息弹窗
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineMonitor: {
      defaultConfig: {
        w: 2035,
        h: 858,
        title: '监测信息',
      },
      defaultProps: {},
      modal: PipelineMonitor,
    },
    /**
     * 管廊维护列表
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineMaintenance: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '管廊维护列表',
      },
      defaultProps: {},
      modal: PipelineMaintenance,
    },
    /**
     * 管廊日常维修详情
     * @module PipelineMaintenance
     * @see PipelineMaintenance
     */
    PipelineMaintenanceDetail: {
      defaultConfig: {
        w: 1151,
        h: 858,
        title: '日常维修详情',
      },
      defaultProps: {},
      modal: PipelineMaintenanceDetail,
    },
    /**
     * 管廊巡检列表
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineInspection: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '管廊巡检列表',
      },
      defaultProps: {},
      modal: PipelineInspection,
    },
    /**
     * 管廊巡检详情
     * @module PipelineInspection
     * @see PipelineInspection
     */
    PipelineInspectionDetail: {
      defaultConfig: {
        w: 1190,
        h: 858,
        title: '管廊巡检详情',
      },
      defaultProps: {},
      modal: PipelineInspectionDetail,
    },
    /**
     * 管廊检测评估列表
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineAssessment: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '检测评估列表',
      },
      defaultProps: {},
      modal: PipelineAssessment,
    },
    /**
     * 管廊本体检测评估详情
     * @module PipelineInspection
     * @see PipelineInspection
     */
    PipelineAssessmentDetail: {
      defaultConfig: {
        w: 1190,
        h: 858,
        title: '管廊本体检测评估详情',
      },
      defaultProps: {},
      modal: PipelineAssessmentDetail,
    },
    /**
     * 巡检发现病害列表
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineDefectList: {
      defaultConfig: {
        w: 1613,
        h: 858,
        title: '巡检发现病害列表',
      },
      defaultProps: {},
      modal: PipelineDefectList,
    },
    /**
     * 管廊-监控中心详情
     * @module PipelinePassage
     * @see PipelinePassage.Overview
     */
    PipelineMonitorDetail: {
      defaultConfig: {
        w: 1335,
        h: 858,
        title: '监控中心详情',
      },
      defaultProps: {},
      modal: PipelineMonitorDetail,
    },
    /**
     * 城市照明2级弹窗
     * @module IndustryOperationNew
     * @see IndustryOperationNew.CityLighting
     */
    UrbanLighting: {
      defaultConfig: {
        w: 2957,
        h: 858,
        title: '城市照明',
      },
      defaultProps: {},
      modal: UrbanLighting,
    },

    /**
     * 固废处置2级弹窗
     * @module IndustryOperationNew
     * @see IndustryOperationNew.WasteDisposal
     */
    ConstructionWaste: {
      defaultConfig: {
        w: 2501,
        h: 1004,
        title: '建筑垃圾',
      },
      defaultProps: {},
      modal: ConstructionWaste,
    },

    /**
     * 道桥监管2级弹窗
     * @module IndustryOperationNew
     * @see IndustryOperationNew.MunicipalFacilities
     */
    BridgeManage: {
      defaultConfig: {
        title: '道桥监管',
        w: 2841,
        h: 858,
      },
      defaultProps: {},
      modal: BridgeManage,
    },

    /**
     * 道桥维护信息列表
     * @module IndustryOperationNew
     * @see IndustryOperationNew.MunicipalFacilities
     */
    BridgeMaintenanceList: {
      defaultConfig: {
        title: '道桥维护信息列表',
        w: 1480,
        h: 858,
      },
      defaultProps: {},
      modal: BridgeMaintenanceList,
    },

    /**
     * 市管照明故障处置情况
     * @module IndustryOperationNew
     * @see IndustryOperationNew.CityLighting
     */
    LightingFaultDisposal: {
      defaultConfig: {
        title: '市管照明故障处置情况',
        w: 2106,
        h: 858,
      },
      defaultProps: {},
      modal: LightingFaultDisposal,
    },

    /**
     * 生活垃圾弹窗 - 固废处置
     * @module IndustryOperationNew
     * @see IndustryOperationNew.WasteDisposal
     */
    LivingGarbage: {
      defaultConfig: {
        title: '生活垃圾',
        w: 2115,
        h: 1004,
      },
      defaultProps: {},
      modal: LivingGarbage,
    },

    /**
     * 照明故障详情弹窗
     * @module IndustryOperationNew
     * @see IndustryOperationNew.CityLighting
     */
    LightingFaultDetails: {
      defaultConfig: {
        title: '故障详情',
        w: 1286,
        h: 858,
      },
      defaultProps: {},
      modal: LightingFaultDetails,
    },
    /**
     * 照明-感知设备运行态势
     * @module UrbanLighting
     * @see UrbanLighting.SensingDevice
     */
    LightingDeviceStatus: {
      defaultConfig: {
        w: 2006,
        h: 858,
        title: '感知设备运行态势',
      },
      defaultProps: {},
      modal: LightingDeviceStatus,
    },
    /**
     * 告警列表
     * @module UrbanLighting
     * @see UrbanLighting.LatestWarning
     */
    LightingAlarmList: {
      defaultConfig: {
        w: 1480,
        h: 858,
        title: '告警列表',
      },
      defaultProps: {},
      modal: LightingAlarmList,
    },
  };

  static get(modalKey: ModalKey) {
    return Registry.RegistryList[modalKey];
  }
}
