WholeProcessPlatform/frontend/src/utils/popupHtmlGenerator.ts

3590 lines
78 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Popup HTML 生成器 - 从 IconDiv 组件提取的渲染逻辑
// 用于在 map.ol.ts 中直接生成 HTML 字符串,避免 Vue 组件渲染导致的性能问题
/* 1. window.__lyConfigs 不知道是干什么的
2. 生态流量泄放设施 泄洪设施 猴子岩是 7 eqtpList 里面没有7
*/
const isNil = (val: any) => val == null;
/**
* 根据数值大小动态保留小数位数
* - 个位数0-9保留两位小数
* - 两位数10-99保留一位小数
* - 三位及以上100+):不保留小数(四舍五入)
* @param val - 数值
* @returns 格式化后的字符串
*/
const formatNumber = (val: number | string | null | undefined): string => {
if (val == null || val === '') return '-';
const num = Number(val);
if (isNaN(num)) return '-';
const absNum = Math.abs(num);
if (absNum < 10) {
return num.toFixed(2);
} else if (absNum < 100) {
return num.toFixed(1);
} else {
return Math.round(num).toString();
}
};
const transUnitRender = (val: any, type: string, code: string) => {
if (val == null) return '-';
return val;
};
const transUnit = (val: any, type: string, code: string) => {
if (val == null) return '-';
return val;
};
const formatToOneDecimal = (val: any): string => {
if (val == null) return '-';
const num = Number(val);
if (isNaN(num)) return '-';
return (Math.round(num * 10) / 10).toFixed(1);
};
const getUnitConfigByCode = (type: string, code: string) => {
const units: Record<string, string> = {
ZJRL: 'MW',
FDLYKW: '亿kW・h',
QI: 'm³/s',
QO: 'm³/s',
QECLIMIT: 'm³/s',
INTEMP: '℃',
OUTTEMP: '℃',
WTMP: '℃',
WEI: '尾'
};
return { unit: units[code] || '' };
};
const dwtpList: Record<string, string> = {
DW_1: '多层式进水口',
DW_2: '叠梁门式进水口',
DW_3: '翻板门式进水口',
DW_4: '套筒式进水口',
DW_5: '前置挡墙',
DW_6: '隔水幕墙',
DW_9: '其他设施'
};
const fptpList: Record<string, string> = {
FP_1: '鱼道',
FP_2: '仿自然通道',
FP_3: '集运鱼系统',
FP_4: '升鱼机',
FP_5: '其它过鱼方式'
};
const eqtpList: Record<string, string> = {
'1': '生态放流孔',
'2': '生态放流闸',
'3': '生态放流洞',
'4': '生态放流管',
'5': '基荷发电',
'6': '生态机组'
};
const locationList: Record<string, string> = {
'1': '库尾',
'2': '库中',
'3': '坝前',
'4': '坝下'
};
const allYs = [
'CHLA',
'CL',
'CLARITY',
'CODCR',
'CODMN',
'COND',
'CYANO',
'DOX',
'FCG',
'FID',
'LAS',
'NH3N',
'NO3',
'PH',
'S2',
'SE',
'TN',
'TP',
'TU',
'WTMP',
'ZN'
];
const app =
(typeof window !== 'undefined' ? (window as any).__appCode : undefined) ||
'hbb';
const env =
(typeof window !== 'undefined' ? (window as any).__env__ : undefined) || '';
const themecc_list = [
{
fieldName: 'MZGJDDZSL',
name: '闽浙赣基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'GHDZSL',
name: '规划',
nameEn: '',
color: '#96B0B5',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SJNFDL',
name: '年发电量',
nameEn: '',
color: '',
unit: '亿kw·h',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSWZCBSSJ',
name: '未正常报送数据',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'ARS',
name: '砷',
nameEn: 'ARS',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.00006',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SYMJ',
name: '水域面积',
nameEn: '',
color: '',
unit: 'km2',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSWZCYX',
name: '未正常运行',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'WTMP',
name: '水温',
nameEn: '',
color: '#01B5B9',
unit: '℃',
theme: '',
decpos: '6',
mn: '0',
mx: '25',
norm: '18',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'DBJDDZSL',
name: '东北基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSDDSJYQ',
name: '达到设计要求',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'YJDZZJRL',
name: '已建',
nameEn: '',
color: '#78C300',
unit: '万kW',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'OIL',
name: '石油类',
nameEn: 'OIL',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.01',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'FCG',
name: '粪大肠菌群',
nameEn: 'FCG',
color: '',
unit: '个/L',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: '',
name: 'I',
nameEn: '',
color: '#13ADE6',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'DOX',
name: '溶解氧',
nameEn: 'DO',
color: '#9A60B4',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '1',
mx: '15',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'HHSYJDDZSL',
name: '黄河上游基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'DDHJDDZSL',
name: 'ddh基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSZCYX',
name: '正常运行',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'ZN',
name: '锌',
nameEn: 'ZN',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.05',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'NPJJDDZSL',
name: '南盘江&红水河基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'STLLNONE',
name: '无数据',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'LAS',
name: '阴离子表面活性剂',
nameEn: 'LAS',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.05',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'Ⅳ',
name: 'IV',
nameEn: '',
color: '#FF8800',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'BXSW',
name: '坝下水位',
nameEn: '',
color: '',
unit: 'm',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSBDB',
name: '不达标',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CJSYJDDZSL',
name: '长江上游基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: '劣Ⅴ',
name: '劣V',
nameEn: '',
color: '#D9001B',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CKLL',
name: '出库流量',
nameEn: '',
color: '',
unit: 'm3/s',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'TP',
name: '总磷',
nameEn: 'TP',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.01',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'STLLXZ',
name: '生态流量限值',
nameEn: '',
color: '',
unit: 'm3/s',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'FE',
name: '铁',
nameEn: 'FE',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.03',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSYXQT',
name: '其它',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SJZJRL',
name: '装机容量',
nameEn: '',
color: '',
unit: 'MW',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'TN',
name: '总氮',
nameEn: 'TN',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.05',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'TU',
name: '浊度',
nameEn: 'TU',
color: '#91CC75',
unit: 'NTU',
theme: '',
decpos: '1',
mn: '0.1',
mx: '5000',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSSJWJR',
name: '数据未接入',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'NJJDDZSL',
name: '怒江基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'PB',
name: '铅',
nameEn: 'PB',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.01',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'BOD5',
name: '五日生化需氧量',
nameEn: 'BOD',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '2',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'S2',
name: '硫化物',
nameEn: 'S2',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.004',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'pH',
name: 'pH',
nameEn: 'pH',
color: '#73C1DF',
unit: '',
theme: '',
decpos: '1',
mn: '6',
mx: '10',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'QEC_STLL_90AND95',
name: '90%-95%',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '90',
mx: '95',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SE',
name: '硒',
nameEn: 'SE',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.00025',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CL',
name: '氯化物',
nameEn: 'CL',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.02',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SO4',
name: '硫酸盐',
nameEn: 'SO',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.4',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSWSJ',
name: '无数据',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'WJJDDZSL',
name: '乌江基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'HHZYJDDZSL',
name: '黄河中游基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: '',
name: 'V',
nameEn: '',
color: '#E55555',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'QEC_STLL_XY80',
name: '<80%',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '',
mx: '80',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSAYQYX',
name: '按要求运行',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'STLL',
name: '生态流量',
nameEn: '',
color: '',
unit: 'm3/s',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CN',
name: '氰化物',
nameEn: 'CN',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.002',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'COND',
name: '电导率',
nameEn: 'COND',
color: '#C7C402',
unit: 'uS/cm',
theme: '',
decpos: '1',
mn: '300',
mx: '500',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSXYH',
name: '需优化',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'THRD',
name: '总硬度',
nameEn: 'THRD',
color: '',
unit: 'mmol/L',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSWYX',
name: '未运行',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'BSSW',
name: '坝上水位',
nameEn: '',
color: '',
unit: 'm',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CU',
name: '铜',
nameEn: 'CU',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.001',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'Ⅱ',
name: 'II',
nameEn: '',
color: '#4FC64D',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSWAYQYX',
name: '未按要求运行',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'F',
name: '氟化物',
nameEn: 'F',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.02',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'YLJJDDZSL',
name: 'ylj基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CD',
name: '镉',
nameEn: 'CD',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.001',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CODCR',
name: '化学需氧量',
nameEn: 'CODcr',
color: '#02B2FF',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0',
mx: '50',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'YJDZSL',
name: '已建',
nameEn: '',
color: '#78C300',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'HG',
name: '汞',
nameEn: 'HG',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.00005',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'QTJDDZSL',
name: '其他基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'NH3N',
name: '氨氮',
nameEn: '',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.01',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'NO3',
name: '硝氮/硝酸盐氮',
nameEn: 'NO3',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.02',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CODMN',
name: '高锰酸盐指数',
nameEn: 'CODMN',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.5',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'ZJDZZJRL',
name: '在建',
nameEn: '',
color: '#669ECF',
unit: '万kW',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'MN',
name: '锰',
nameEn: 'MN',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.01',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'JSJJDDZSL',
name: '金沙江基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'STLLWYQ',
name: '无要求',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'QEC_STLL_DY95',
name: '≥95%',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '95',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'XXJDDZSL',
name: '湘西基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSYXDB',
name: '达标',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CLARITY',
name: '透明度',
nameEn: 'CLARITY',
color: '',
unit: 'mm',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'GC',
name: '高程',
nameEn: '',
color: '',
unit: 'm',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CR6',
name: '铬(六价)',
nameEn: 'CR6',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.004',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'GHDZZJRL',
name: '规划',
nameEn: '',
color: '#96B0B5',
unit: '万kW',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'RKLL',
name: '入库流量',
nameEn: '',
color: '',
unit: 'm3/s',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'ZJDZSL',
name: '在建',
nameEn: '',
color: '#669ECF',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'QEC_STLL_80AND90',
name: '80%-90%',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '',
mn: '80',
mx: '90',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CYANO',
name: '蓝绿藻',
nameEn: 'CYANO',
color: '',
unit: '个/L',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'CHLA',
name: '叶绿素a',
nameEn: 'CHLA',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'SSYXZ',
name: '运行中',
nameEn: '',
color: '',
unit: '个',
theme: '',
decpos: '',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'VLPH',
name: '挥发酚',
nameEn: 'VLPH',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.002',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'AL',
name: '铝',
nameEn: 'AL',
color: '',
unit: 'mg/L',
theme: '',
decpos: '1',
mn: '0.00231',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'Ⅲ',
name: 'III',
nameEn: '',
color: '#FFCC00',
unit: '',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'LCJGLJDDZSL',
name: '澜沧江干流基地',
nameEn: '',
color: '',
unit: '座',
theme: '',
decpos: '1',
mn: '',
mx: '',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
},
{
fieldName: 'DO',
name: '溶解氧',
nameEn: 'DO',
color: '',
unit: 'mg/L',
theme: '',
decpos: '2',
mn: '1',
mx: '15',
norm: '',
enabled: '',
remark: '',
orderIndex: '',
createUser: '',
createTime: null,
updateUser: '',
updateTime: null,
filterContent: '',
tenantId: '',
isDeleted: '',
deleteUser: '',
deleteTime: null,
systemId: ''
}
];
const getThemee = (fieldName?: string) => {
let themeecList = themecc_list;
let getitem: any = {};
if (fieldName && themeecList.length > 0) {
let getitemList = themeecList.filter(
(i: any) => i.fieldName.toUpperCase() == fieldName.toUpperCase()
);
if (getitemList.length > 0) {
getitem = getitemList[0];
}
}
return getitem;
};
const getImageUrl = (logo: string) => {
if (!logo) return '';
const token = (typeof window !== 'undefined' &&
(window as any).Session?.getToken?.()) || { accessToken: '' };
const fsAddress =
(typeof window !== 'undefined' && (window as any).__fsAddress) || '';
return `${fsAddress}?${logo}&view=jpg&token=${token.accessToken}`;
};
const getStatusHtml = (props: any) => {
const { dtin, stdSstate, stdSstateName, dtinName, lcjStatus, lcjStatusName } =
props;
const _dtin = `${dtin}`;
const baseId = '02';
const _stdSstate = lcjStatus;
const _stdSstateName = lcjStatusName;
if (_dtin == '0') {
return `<span>${dtinName || '未接入'}</span>`;
} else if (_dtin == '1' && _stdSstate == '1') {
return `<span style="color: #76C500">${
_stdSstateName || '正常运行'
}</span>`;
} else if (_dtin == '1' && _stdSstate == '3') {
return `<span style="color: #FF6B6B">${
_stdSstateName || '未正常运行'
}</span>`;
}
return `<span>${_stdSstateName || '最近1年无数据'}</span>`;
};
const getLimitSpanHtml = (minVal: any, maxVal: any) => {
if (!isNil(maxVal) && !isNil(minVal)) {
return `<span style="color: rgba(255,255,255,0.45)">(${minVal}~${maxVal})</span>`;
} else if (!isNil(maxVal)) {
return `<span style="color: rgba(255,255,255,0.45)">(≤${maxVal})</span>`;
} else if (!isNil(minVal)) {
return `<span style="color: rgba(255,255,255,0.45)">(≥${minVal})</span>`;
}
return '';
};
const needNotShow = (minVal: any, maxVal: any, val: any) => {
const _min = isNil(minVal) ? null : Number(minVal);
const _max = isNil(maxVal) ? null : Number(maxVal);
const _val = isNil(val) ? null : Number(val);
if (isNil(_val)) return true;
if (!isNil(_max) && !isNil(_min)) return _val >= _min && _val <= _max;
if (!isNil(_max)) return _val <= _max;
if (!isNil(_min)) return _val >= _min;
return true;
};
const getYsListHtml = (props: any) => {
let html = '';
allYs.forEach((ys: any) => {
const _ys = ys.toLowerCase();
const val = props[_ys];
const ystheme = getThemee(ys);
const ysUpper = ys.toUpperCase();
let minVal, maxVal;
const ysLimit = props;
if (ysLimit?.min) {
if (typeof ysLimit.min === 'string') {
const minArr = JSON.parse(ysLimit.min);
const found = minArr.find(
(el: any) => el?.[ysUpper] !== null && el?.[ysUpper] !== undefined
);
minVal = found?.[ysUpper];
} else {
const found = ysLimit.min.find(
(el: any) => el?.[ysUpper] !== null && el?.[ysUpper] !== undefined
);
minVal = found?.[ysUpper];
}
}
if (ysLimit?.max) {
if (typeof ysLimit.max === 'string') {
const maxArr = JSON.parse(ysLimit.max);
const found = maxArr.find(
(el: any) => el?.[ysUpper] !== null && el?.[ysUpper] !== undefined
);
maxVal = found?.[ysUpper];
} else {
const found = ysLimit.max.find(
(el: any) => el?.[ysUpper] !== null && el?.[ysUpper] !== undefined
);
maxVal = found?.[ysUpper];
}
}
if (!needNotShow(minVal, maxVal, val)) {
const unit =
ysUpper === 'PH'
? ''
: getUnitConfigByCode('WQ_R', ysUpper)?.unit || ystheme?.unit || '';
html += `
<li>
<div class="__label">${ystheme?.name}</div>
<span style="color: #E55555">
${val} ${unit}
${getLimitSpanHtml(minVal, maxVal)}
</span>
</li>
`;
}
});
return html;
};
const getStateClass = (props: any) => {
let setclass = '';
if (props?.anchoPointState) {
if (
props.anchoPointState.includes('large_eng') ||
props.anchoPointState.includes('eef_1')
) {
setclass = 'large_eng';
} else if (
props.anchoPointState.includes('mid_eng') ||
props.anchoPointState.includes('eef_2')
) {
setclass = 'mid_eng';
} else {
setclass = 'large_eng';
}
} else {
setclass = 'large_eng';
}
if (props?.ennm && props.ennm.length > 3) {
setclass += ' smallfont';
}
if (
props?.ttpwr &&
`${transUnitRender(props.ttpwr, 'Other', 'ZJRL')}`.length > 4
) {
setclass += ' leftsmallfont';
}
if (
(props?.yrge &&
`${transUnitRender(props.yrge, 'Other', 'FDLYKW')}`.length > 4) ||
(props?.limit && `${props.limit}`.length > 4)
) {
setclass += ' rightsmallfont';
}
return setclass;
};
/**
* 根据文字长度获取标题 class
* @param title - 标题文字
* @returns class 字符串
*/
const getTitleClass = (title: string) => {
if (!title) return '';
const len = title.length;
if (len > 6) return 'title-xxs'; // 7个字及以上
if (len > 5) return 'title-xs'; // 6个字
if (len > 4) return 'title-sm'; // 5个字
if (len > 3) return 'title-md'; // 4个字
return ''; // 3个字及以下使用默认大小
};
const timegj = [
new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000)
.toISOString()
.slice(5, 10),
new Date().toISOString().slice(5, 10)
];
/**
* 生成 Popup HTML 字符串
* @param props - 锚点数据对象
* @returns HTML 字符串
*/
export function generatePopupHtml(props: any): string {
const p = props;
const dzFdl = getUnitConfigByCode('Other', 'FDLYKW')?.unit;
const dzZjrl = getUnitConfigByCode('Other', 'ZJRL')?.unit;
const title = p?.ennm || p?.stnm;
const titleClass = getTitleClass(title);
let newsttpMap = p.sttpMap;
console.log('newsttpMap', newsttpMap);
if (p.qecInterval) {
newsttpMap = 'eng2';
}
let html = '';
switch (newsttpMap) {
case 'ENG':
html = `
<div class="${'iconEngDiv_' + props.anchoPointState} ${
'iconEngDiv-' + props.anchoPointState + '-' + props?.bldsttCcode
}">
<div class="iconDivTitle ${getTitleClass(titleClass)}">${title}</div>
<div class="iconDivContent">
<div class="iconDivLeft">
<div>${transUnitRender(p?.ttpwr, 'Other', 'ZJRL')}</div>
<div style="font-size: 12px">${dzZjrl || '万kW'}</div>
</div>
<div class="iconDivRight">
<div>${transUnitRender(p?.yrge, 'Other', 'FDLYKW')}</div>
<div style="font-size: 12px;white-space: nowrap;letter-spacing: -1px;">${
dzFdl || `亿kW・h`
}</div>
</div>
</div>
</div>
`;
break;
case 'eng1':
if (
p?.anchoPointState == 'eef_1_none' ||
p?.anchoPointState == 'eef_2_none'
) {
html = `
<div class="iconDiv ${getStateClass(p)} ${p?.anchoPointState || ''}">
<div class="iconDivTitle">${p?.ennm || p?.stnm}</div>
<div class="iconDivContent">暂无数据</div>
</div>
`;
} else {
html = `
<div class="iconDiv ${getStateClass(p)} ${p?.anchoPointState || ''}">
<div class="iconDivTitle">${p?.ennm || p?.stnm}</div>
<div class="iconDivContent">
<div class="iconDivLeft">${transUnitRender(
p?.ttpwr,
'Other',
'ZJRL'
)}</div>
<div class="iconDivRight">${p?.limit}</div>
</div>
</div>
`;
}
break;
case 'eng2': {
let lastTmEngEqDataVo: any = {};
if (typeof p?.lastTmEngEqDataVo == 'string') {
lastTmEngEqDataVo = JSON.parse(p.lastTmEngEqDataVo);
} else {
lastTmEngEqDataVo = p.lastTmEngEqDataVo;
}
if (!lastTmEngEqDataVo?.qo && !lastTmEngEqDataVo?.qi) return '';
const qecLimitVal = lastTmEngEqDataVo?.qecLimit;
let qecLimitDisplay = '-';
if (qecLimitVal == 0 || qecLimitVal == null) {
// qecLimitDisplay = app == 'hbb' ? '-' : '无生态流量要求';
qecLimitDisplay = '无生态流量要求';
} else {
qecLimitDisplay = `${transUnitRender(
qecLimitVal,
'HYDROPW_R',
'QECLIMIT'
)} ${getUnitConfigByCode('HYDROPW_R', 'QECLIMIT')?.unit}`;
}
const vlsrHtml = lastTmEngEqDataVo?.vlsr
? `<li style="border-top: 1px dashed #12aaeb;margin-top: 10px;padding-top: 10px;"><div>限值来源:${lastTmEngEqDataVo?.vlsr}</div></li>`
: '';
html = `
<div class="map-tooltip map-tooltip-middle">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.ennm || p?.stnm}</div>
<div class="map-tooltip-sub">${lastTmEngEqDataVo?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">入库流量:</div>
<div class="__info">
${transUnitRender(
formatNumber(lastTmEngEqDataVo?.qi),
'HYDROPW_R',
'QI'
)} ${getUnitConfigByCode('HYDROPW_R', 'QI')?.unit}
</div>
</li>
<li>
<div class="__label"> 出库流量:</div>
<div class="__info">
${transUnitRender(
lastTmEngEqDataVo?.qo,
'HYDROPW_R',
'QO'
)} ${getUnitConfigByCode('HYDROPW_R', 'QO')?.unit}
</div>
</li>
<li>
<div class="__label">生态流量限值:</div>
<div class="__info">${qecLimitDisplay}</div>
</li>
${vlsrHtml}
</ul>
</div>
</div>
`;
break;
}
case 'eng3':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.ennm || p?.stnm}</div>
<div class="map-tooltip-sub">${p?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">入库水温:</div>
<div class="__info">
${transUnitRender(p?.inTemp, 'WTRV_R', 'INTEMP') ?? '-'} ${
getUnitConfigByCode('WTRV_R', 'INTEMP')?.unit
}
</div>
</li>
<li>
<div class="__label">出库水温:</div>
<div class="__info">
${transUnitRender(p?.outTemp, 'WTRV_R', 'OUTTEMP') ?? '-'} ${
getUnitConfigByCode('WTRV_R', 'OUTTEMP')?.unit
}
</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'eng4': {
let devStatusHtml = '<span>数据未接入</span>';
if (p?.development == '未完成')
devStatusHtml = '<span style="color: #FF6B6B">未完成</span>';
else if (p?.development == '未填报')
devStatusHtml = '<span style="color: #F0CC1D">未填报</span>';
else if (p?.development == '已完成')
devStatusHtml = '<span style="color: #76C500">已完成</span>';
const targetInfo = p.targetNum
? `${p?.targetFtp || '-'}种/${p?.targetNum || '-'}万尾`
: '--';
const actualInfo = p.actualNum
? `${p?.actualFtp || '-'}种/${p?.actualNum || '-'}万尾`
: '--';
html = `
<div class="map-tooltip">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${
p?.ennm || p?.stnm || p?.popName
}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">年份:</div>
<div class="__info">${p?.year || '-'}</div>
</li>
<li>
<div class="__label">目标放流种类/数量:</div>
<div class="__info">${targetInfo}</div>
</li>
<li>
<div class="__label">实际放流种类数量:</div>
<div class="__info">${actualInfo}</div>
</li>
<li>
<div class="__label">工作开展情况:</div>
<div class="__info">${devStatusHtml}</div>
</li>
</ul>
</div>
</div>
`;
break;
}
case 'VA': {
const hbbLi =
app == 'hbb'
? `
<li>
<div class="__label">接入状态:</div>
<div class="__info">${
p?.dtin === 0 ? '未接入' : p?.dtin === 1 ? '已接入' : '-'
}</div>
</li>
`
: '';
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">建设状态:</div>
<div class="__info">
${
p?.bldsttCcode == '0'
? '未建'
: p?.bldsttCcode == '1'
? '在建'
: p?.bldsttCcode == '2'
? '已建'
: '-'
}
</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm}</div>
</li>
${hbbLi}
</ul>
</div>
</div>
`;
break;
}
case 'DW':
case 'DW_1':
case 'DW_2':
case 'DW_3':
case 'DW_4':
case 'DW_5':
case 'DW_6':
case 'DW_9':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">设施类型:</div>
<div class="__info">${
p?.sttpMap ? dwtpList[p.sttpMap] || '-' : '-'
}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm}</div>
</li>
<li>
<div class="__label">运行状态:</div>
<div class="__info">${getStatusHtml(p)}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'FP':
case 'FP_1':
case 'FP_2':
case 'FP_3':
case 'FP_4':
case 'FP_5':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">设施类型:</div>
<div class="__info">${p?.dwtp ? fptpList[p.dwtp] : '-'}</div>
</li>
<li>
<div class="__label">建设状态:</div>
<div class="__info">${
p?.bldstt == '0'
? '未建'
: p?.bldstt == '1'
? '在建'
: p?.bldstt == '2'
? '已建'
: '-'
}</div>
</li>
<li>
<div class="__label">运行状态:</div>
<div class="__info">${getStatusHtml(p)}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'FB':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">建设状态:</div>
<div class="__info">${
p?.bldstt == '0'
? '未建'
: p?.bldstt == '1'
? '在建'
: p?.bldstt == '2'
? '已建'
: '-'
}</div>
</li>
<li>
<div class="__label">运行状态:</div>
<div class="__info">${getStatusHtml(p)}</div>
</li>
<li>
<div class="__label">服务电站:</div>
<div class="__info">${p?.ennm}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'EQ':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.ennm || p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">设施类型:</div>
<div class="__info">${p?.eqtp ? eqtpList[p.eqtp] : '-'}</div>
</li>
<li>
<div class="__label" style="flex: 0 0 110px; width: 110px">生态流量限值:</div>
<div class="__info">${p?.qecLimit || '-'}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'WT': {
let wtvtInfo: any = {};
if (typeof p?.wtvtInfo == 'string') {
wtvtInfo = JSON.parse(p.wtvtInfo);
} else {
wtvtInfo = p.wtvtInfo;
}
const tt = p?.deviceType == '1' ? '水深' : '高程';
const sizeClass = p.enfc === 0 ? 'small' : 'middle';
if (p.enfc === 0) {
html = `
<div class="map-tooltip map-tooltip-${sizeClass}">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm ?? '-'}</div>
<div class="map-tooltip-sub">${p?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">水温:</div>
<div class="__info">
${transUnit(p?.temperature, 'WQ_R', 'WTMP') ?? '-'}
${getUnitConfigByCode('WQ_R', 'WTMP')?.unit}
</div>
</li>
</ul>
</div>
</div>
`;
} else {
html = `
<div class="map-tooltip map-tooltip-${sizeClass}">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<div class="map-tooltip-sub">${wtvtInfo?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">
${tt} ${
transUnit(wtvtInfo?.minWthg, 'WQ_R', 'WTMP') || '-'
}m
</div>
<div class="__info">
${formatToOneDecimal(wtvtInfo?.minWthgWt)}
${getUnitConfigByCode('WQ_R', 'WTMP')?.unit}
</div>
</li>
<li>
<div class="__label">平均水温:</div>
<div class="__info">
${formatToOneDecimal(wtvtInfo?.avgWt)}
${getUnitConfigByCode('WQ_R', 'WTMP')?.unit}
</div>
</li>
<li>
<div class="__label">
${tt} ${
transUnit(wtvtInfo?.maxWthg, 'WQ_R', 'WTMP') || '-'
}m
</div>
<div class="__info">
${formatToOneDecimal(wtvtInfo?.maxWthgWt)}
${getUnitConfigByCode('WQ_R', 'WTMP')?.unit}
</div>
</li>
</ul>
</div>
</div>
`;
}
break;
}
case 'FH': {
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">所在河流:</div>
<div class="__info">${p?.rvcdName || '-'}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm || '-'}</div>
</li>
</ul>
</div>
</div>
`;
break;
}
case 'WQFB':
case 'WQ': {
const wqGrdTheme = getThemee(p.wqGrdName);
const wwqtgTheme = getThemee(p.wwqtgName);
html = `
<div class="map-tooltip">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p.stnm}</div>
<ul class="map-tooltip-sub map-tooltip-list">
<li>
<div class="__label">监测时间:</div>
<div class="__info">${p?.tm ?? '-'}</div>
</li>
<li>
<div class="__label">水质等级:</div>
<div class="__info">
<span style="color: ${wqGrdTheme?.color}">${
wqGrdTheme?.name ?? '-'
}类</span>
(目标等级 <span style="color: ${wwqtgTheme?.color}">${
wwqtgTheme?.name ?? '-'
}类</span>)
</div>
</li>
</ul>
<ul class="map-tooltip-content map-tooltip-list">
${getYsListHtml(p)}
</ul>
</div>
</div>
`;
break;
}
case 'WE': {
const mergedFishList: any[] = [];
const fishList =
typeof p.fishList === 'string' ? JSON.parse(p.fishList) : p.fishList;
fishList?.forEach((item: any) => {
const existingItem = mergedFishList.find(
(mergedItem: any) => mergedItem.fishName === item.fishName
);
if (existingItem) {
existingItem.count += item.count;
} else {
mergedFishList.push({ ...item });
}
});
let fishItemsHtml = '';
if (mergedFishList.length > 0) {
mergedFishList.slice(0, 3).forEach((item: any) => {
fishItemsHtml += `
<li>
<div class="__label">${item.fishName}</div>
<div class="__info">
${transUnitRender(item.count, 'Other', 'WEI')}
${getUnitConfigByCode('Other', 'WEI')?.unit}
</div>
</li>
`;
});
} else {
fishItemsHtml = '<li>暂无数据</li>';
}
if (mergedFishList.length > 3) {
fishItemsHtml += `<li><div style="text-align: center; flex: 0 0 100%; width: 100%">...</div></li>`;
}
html = `
<div class="map-tooltip map-tooltip-middle">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p.stnm}</div>
<ul class="map-tooltip-sub map-tooltip-list __list2">
<li>
<div class="__label">调查时间:</div>
<div class="__info">${p?.tm ?? '-'}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm ?? '-'} </div>
</li>
</ul>
<div class="map-tooltip-sub1">
<span class="__content">调查鱼类</span>
</div>
<ul class="map-tooltip-content map-tooltip-list __noborder __small __list2">
${fishItemsHtml}
</ul>
</div>
</div>
`;
break;
}
case 'WE_FISH': {
const fishData =
typeof p.fishList === 'string' ? JSON.parse(p.fishList) : p.fishList;
const imgUrl = getImageUrl(p.logo);
const imgHtml = p.logo
? `<img style="width: 100px; object-fit: cover; margin-right: 10px" src="${imgUrl}" alt="" />`
: `<div style="width: 100px; object-fit: cover; margin-right: 10px">暂无图片</div>`;
let yearsHtml = '';
fishData?.forEach((item: any) => {
yearsHtml += `
<div class="__label">
${item.year}${transUnitRender(item.count, 'Other', 'WEI')}
${getUnitConfigByCode('Other', 'WEI')?.unit}
</div>
`;
});
html = `
<div class="map-tooltip map-tooltip-middle">
<div class="map-tooltip-box">
<div style="display: flex; justify-content: center">
${imgHtml}
<div style="text-align: left">
<div>${fishData?.[0]?.fishName}</div>
<div>${yearsHtml}</div>
</div>
</div>
</div>
</div>
`;
break;
}
case 'TE': {
let listItemsHtml = '';
if (p.list?.length > 0) {
p.list.slice(0, 3).forEach((item: any) => {
listItemsHtml += `
<li>
<div class="__label">${item.name}</div>
<div class="__info">${item.amount}k㎡</div>
</li>
`;
});
} else {
listItemsHtml = '<li>暂无数据</li>';
}
html = `
<div class="map-tooltip map-tooltip-middle">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p.stnm}</div>
<ul class="map-tooltip-sub map-tooltip-list __list2">
<li>
<div class="__label">调查时间:</div>
<div class="__info">${p?.tm ?? '-'}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p?.ennm ?? '-'} </div>
</li>
</ul>
<div class="map-tooltip-sub1">
<span class="__content">调查结果</span>
</div>
<ul class="map-tooltip-content map-tooltip-list __noborder __small">
${listItemsHtml}
</ul>
</div>
</div>
`;
break;
}
case 'VP':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p.stnm}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">建设状态:</div>
<div class="__info">${
p.bldsttCcode == '0'
? '未建'
: p.bldsttCcode == '1'
? '在建'
: p.bldsttCcode == '2'
? '已建'
: '-'
}</div>
</li>
<li>
<div class="__label">关联电站:</div>
<div class="__info">${p.ennm}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'ENG_ALARM': {
const sizeClass = app === 'hbb' ? 'small' : 'middle';
const timeRange =
app == 'hbb' ? `${p?.yyyy ?? '-'}` : `${timegj[0]}~${timegj[1]}`;
let extraLi = '';
if (
env !== 'ddh' &&
env !== 'ddhpro' &&
app !== 'hbb' &&
env !== 'ylj' &&
env !== 'yljpro'
) {
extraLi += `
<li>
<div class="__label" style="flex: 0 0 100px; width: 100px">水位告警:</div>
<div class="__info${p?.zcount > 0 ? ' __warn' : ''}">${
p?.zcount ?? '-'
} 次</div>
</li>
`;
}
if (app !== 'hbb' && env !== 'ylj' && env !== 'yljpro') {
extraLi += `
<li>
<div class="__label" style="flex: 0 0 100px; width: 100px">水温告警:</div>
<div class="__info${p?.wtCount > 0 ? ' __warn' : ''}">${
p?.wtCount ?? '-'
} 次</div>
</li>
`;
}
html = `
<div class="map-tooltip map-tooltip-${sizeClass}">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p.ennm}</div>
<div class="map-tooltip-sub1">
<span class="__content">电站告警统计</span>
</div>
<ul class="map-tooltip-content map-tooltip-list __noborder">
<li>
<div class="__label" style="flex: 0 0 100px; width: 100px">
${app == 'hbb' ? '统计年份' : '统计时间范围'}
</div>
<div class="__info">${timeRange}</div>
</li>
<li>
<div class="__label" style="flex: 0 0 100px; width: 100px">生态流量告警:</div>
<div class="__info${p?.stqCount > 0 ? ' __warn' : ''}">${
p?.stqCount ?? '-'
} 次</div>
</li>
<li>
<div class="__label" style="flex: 0 0 100px; width: 100px">水质告警:</div>
<div class="__info${p?.wqCount > 0 ? ' __warn' : ''}">${
p?.wqCount ?? '-'
} 次</div>
</li>
${extraLi}
</ul>
</div>
</div>
`;
break;
}
case 'ylfb':
html = `
<div class="map-tooltip">
<div class="map-tooltip-box">${p?.ftp ?? '-'}</div>
</div>
`;
break;
case 'ZQ':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm + '流量站'}</div>
<div class="map-tooltip-sub">${p?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">水位(m)</div>
<div class="__info">${p?.z ?? '-'}</div>
</li>
<li>
<div class="__label">流量(m³/s)</div>
<div class="__info">${p?.q ?? '-'}</div>
</li>
<li>
<div class="__label">流速(m/s)</div>
<div class="__info">${p?.v ?? '-'}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'VD':
case 'AIVD': {
html = `
<div class="map-tooltip">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${
p?.stnm?.endsWith('视频站') ? p?.stnm : p?.stnm + '视频站'
}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">监控内容类型:</div>
<div class="__info">${
newsttpMap == 'VD' ? p?.sttpName : p?.aiSttpName
}</div>
</li>
<li><div class="__label">关联电站:</div><div class="__info">${
p?.ennm
}</div></li>
</ul>
</div>
</div>
`;
break;
}
case 'REACH': {
const wwqtgTheme = getThemee(p?.wwqtgName);
const wqGrdTheme = getThemee(p?.wqGrdName);
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.reachname}</div>
<div class="map-waterQuality-subtitle">
<div class="map-waterQuality-leftType">
水质要求<br/>
<span style="color: ${wwqtgTheme?.color}">${
wwqtgTheme?.name || '-'
}</span> 类
</div>
<div class="map-waterQuality-rightType">
监测结果<br/>
<span style="color: ${wqGrdTheme?.color}">${
wqGrdTheme?.name || '-'
}</span> 类
</div>
</div>
</div>
</div>
`;
break;
}
case 'WT_ALARM':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm || p?.ennm}</div>
<div class="map-tooltip-sub">${p?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">水温:</div>
<div class="__info">${p?.wt ?? '-'} ℃</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'WQ_ALARM': {
let warnItems = '';
p.warnDataList?.forEach((item: any) => {
const theme = getThemee(item.ys);
warnItems += `
<li>
<div class="__label">${theme.name}</div>
<div class="__info">
${item.ssz} ${getUnitConfigByCode('WQ_R', item.ys)?.unit}
</div>
</li>
`;
});
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.stnm || p?.ennm}</div>
<div class="map-tooltip-sub">${p?.warnDataList?.[0]?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
${warnItems}
</ul>
</div>
</div>
`;
break;
}
case 'RZ_ALARM':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.ennm || p?.stnm}</div>
<div class="map-tooltip-sub">${p?.tm ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">水位:</div>
<div class="__info">${p?.rz ?? '-'} m</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'OPERAT_ALARM':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">
<div class="map-tooltip-title">${p?.ennm || p?.stnm}</div>
<div class="map-tooltip-sub">${p?.dtmel ?? ''}</div>
<ul class="map-tooltip-content map-tooltip-list">
<li>
<div class="__label">运行情况:</div>
<div class="__info">${p?.warnStateName ?? '-'}</div>
</li>
</ul>
</div>
</div>
`;
break;
case 'WVA':
case 'FD':
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">${p.stnm}</div>
</div>
`;
break;
case 'TE_ANIMALS': {
let _pic: string[] = [];
if (p.logo) {
_pic = [p]
.filter((item: any) => item.logo !== null)
.map((item: any) => item.logo?.split(','))
.flat();
}
const imgUrl = _pic?.[0] ? getImageUrl(_pic[0]) : '';
const imgHtml = _pic?.[0]
? `<img style="width: 100px; object-fit: cover; margin-right: 10px" src="${imgUrl}" alt="" />`
: `<div style="width: 100px; object-fit: cover; margin-right: 10px">暂无图片</div>`;
html = `
<div class="map-tooltip map-tooltip-middle">
<div class="map-tooltip-box">
<div style="display: flex; justify-content: center">
${imgHtml}
</div>
<div style="text-align: center">
<div>${p?.name}</div>
</div>
</div>
</div>
`;
break;
}
default:
html = `
<div class="map-tooltip map-tooltip-small">
<div class="map-tooltip-box">${p.ennm || p.stnm}</div>
</div>
`;
}
return html ? `<div>${html}</div>` : '';
}