| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- /**
- * 张家峁煤自燃监测预警页面数据
- *
- * 当前阶段后端接口尚未提供,页面先使用本地模拟数据,
- * 后续接入接口时只需要替换本文件中的模拟常量即可。
- */
- export interface GoafOverviewItem {
- label: string;
- value: number;
- }
- export interface DeviceInstallItem {
- name: string;
- installed: number;
- running: number;
- }
- export interface OverallWarning {
- level: number;
- levelText: string;
- levelName: string;
- total: number;
- color: string;
- }
- export interface WarningRow {
- id: number;
- name: string;
- seam: string;
- level: string;
- status: string;
- }
- export interface AlertItem {
- id: number;
- time: string;
- level: number;
- location: string;
- message: string;
- }
- export interface BundleRow {
- point: string;
- o2: string;
- co: number;
- ch4: string;
- c2h4: string;
- temp: number;
- status: '正常' | '关注' | '预警';
- }
- export interface FiberTrend {
- times: string[];
- maxTemp: number[];
- avgTemp: number[];
- maxValue: number;
- avgValue: number;
- pointCount: number;
- }
- export interface RiskLevel {
- level: number;
- name: string;
- range: string;
- colorName: string;
- color: string;
- }
- export interface ManualOption {
- label: string;
- value: string;
- score: number;
- }
- export interface ManualField {
- key: string;
- label: string;
- value: string;
- options: ManualOption[];
- }
- export interface ManualGroup {
- key: string;
- title: string;
- fields: ManualField[];
- }
- export interface EvaluationResult {
- score: number;
- level: number;
- levelText: string;
- color: string;
- highlightLevel: number;
- target: string;
- time: string;
- source: string;
- suggestion: string;
- }
- export const GOAF_OVERVIEW: GoafOverviewItem[] = [
- { label: '矿井采空区总数', value: 28 },
- { label: '已封闭采空区数', value: 6 },
- { label: '回撤工作面采空区数', value: 4 },
- { label: '回采工作面采空区数', value: 12 },
- { label: '停产工作面采空区数', value: 6 },
- ];
- export const INSTALLED_DEVICES: DeviceInstallItem[] = [
- { name: '束管监测', installed: 15, running: 13 },
- { name: '光纤测温', installed: 15, running: 13 },
- { name: '密闭监测', installed: 15, running: 13 },
- { name: '风速传感器', installed: 15, running: 13 },
- { name: '风量传感器', installed: 15, running: 13 },
- ];
- export const OVERALL_WARNING: OverallWarning = {
- level: 4,
- levelText: 'IV',
- levelName: '高风险',
- total: 12,
- color: '#ff9d1c',
- };
- export const WARNING_ROWS: WarningRow[] = [
- { id: 1, name: '12采空区', seam: '5-2煤', level: '一般风险', status: '回采中' },
- { id: 2, name: '14采空区', seam: '5-2煤', level: '一般风险', status: '回撤中' },
- { id: 3, name: '16采空区', seam: '5-1煤', level: '一般风险', status: '停产' },
- { id: 4, name: '18采空区', seam: '5-2煤', level: '低风险', status: '回采中' },
- { id: 5, name: '20采空区', seam: '5-1煤', level: '中等风险', status: '回采中' },
- { id: 6, name: '22采空区', seam: '5-2煤', level: '低风险', status: '已封闭' },
- { id: 7, name: '24采空区', seam: '4-2煤', level: '一般风险', status: '回采中' },
- { id: 8, name: '26采空区', seam: '4-2煤', level: '低风险', status: '已封闭' },
- { id: 9, name: '28采空区', seam: '5-1煤', level: '中等风险', status: '回撤中' },
- { id: 10, name: '30采空区', seam: '5-2煤', level: '一般风险', status: '停产' },
- { id: 11, name: '32采空区', seam: '4-2煤', level: '低风险', status: '已封闭' },
- { id: 12, name: '34采空区', seam: '5-1煤', level: '一般风险', status: '回采中' },
- ];
- export const ALERTS: AlertItem[] = [
- { id: 1, time: '09:28:16', level: 4, location: '12采空区', message: '束管测点 CO 浓度上升至 24ppm' },
- { id: 2, time: '09:16:42', level: 3, location: '20采空区', message: '密闭内 O₂ 浓度低于 15%,请关注' },
- { id: 3, time: '08:57:03', level: 2, location: '14采空区', message: '光纤测温 3# 测点温度波动 1.8℃' },
- { id: 4, time: '08:35:27', level: 4, location: '28采空区', message: '回风顺槽 CH₄ 浓度达到 0.86%' },
- { id: 5, time: '08:12:51', level: 2, location: '18采空区', message: '风速传感器数据短时中断,已恢复' },
- ];
- export const BUNDLE_ROWS: BundleRow[] = [
- { point: '12采空区-1#', o2: '18.62', co: 16, ch4: '0.42', c2h4: '0.00', temp: 26.4, status: '正常' },
- { point: '12采空区-2#', o2: '17.85', co: 24, ch4: '0.56', c2h4: '0.02', temp: 28.1, status: '关注' },
- { point: '14采空区-1#', o2: '19.04', co: 9, ch4: '0.35', c2h4: '0.00', temp: 25.2, status: '正常' },
- { point: '16采空区-1#', o2: '16.92', co: 31, ch4: '0.63', c2h4: '0.04', temp: 30.6, status: '预警' },
- { point: '20采空区-1#', o2: '18.11', co: 18, ch4: '0.48', c2h4: '0.01', temp: 27.3, status: '正常' },
- { point: '28采空区-1#', o2: '17.36', co: 27, ch4: '0.74', c2h4: '0.03', temp: 29.4, status: '关注' },
- ];
- export const FIBER_TREND: FiberTrend = {
- times: [
- '00:00',
- '01:00',
- '02:00',
- '03:00',
- '04:00',
- '05:00',
- '06:00',
- '07:00',
- '08:00',
- '09:00',
- '10:00',
- '11:00',
- '12:00',
- '13:00',
- '14:00',
- '15:00',
- '16:00',
- '17:00',
- '18:00',
- '19:00',
- '20:00',
- '21:00',
- '22:00',
- '23:00',
- ],
- maxTemp: [
- 24.1, 23.8, 23.6, 23.4, 23.5, 24.0, 25.2, 26.8, 28.4, 30.1, 31.6, 32.6, 33.1, 32.8, 32.2, 31.5, 30.6, 29.4, 28.2, 27.3, 26.6, 26.0, 25.4, 24.8,
- ],
- avgTemp: [
- 22.2, 22.0, 21.9, 21.8, 21.9, 22.1, 22.6, 23.2, 23.9, 24.5, 25.1, 25.6, 25.9, 25.8, 25.6, 25.3, 24.9, 24.5, 24.1, 23.8, 23.4, 23.1, 22.8, 22.5,
- ],
- maxValue: 33.1,
- avgValue: 23.9,
- pointCount: 15,
- };
- export const RISK_LEVELS: RiskLevel[] = [
- { level: 1, name: 'I 低风险', range: '0-20', colorName: '绿色', color: '#7ed321' },
- { level: 2, name: 'II 较低风险', range: '20-40', colorName: '蓝色', color: '#3df6ff' },
- { level: 3, name: 'III 中等风险', range: '40-60', colorName: '黄色', color: '#ffd15c' },
- { level: 4, name: 'IV 高风险', range: '60-80', colorName: '橙色', color: '#ff9d1c' },
- { level: 5, name: 'V 极高风险', range: '80-100', colorName: '红色', color: '#ff4d4f' },
- ];
- export const MANUAL_GROUPS: ManualGroup[] = [
- {
- key: 'pre',
- title: '采前评价',
- fields: [
- {
- key: 'spontaneous',
- label: '自燃倾向性',
- value: '自燃',
- options: [
- { label: '不易自燃', value: '不易自燃', score: 3 },
- { label: '自燃', value: '自燃', score: 10 },
- { label: '容易自燃', value: '容易自燃', score: 18 },
- ],
- },
- {
- key: 'sealQuality',
- label: '封闭质量',
- value: '一般',
- options: [
- { label: '好', value: '好', score: 2 },
- { label: '一般', value: '一般', score: 8 },
- { label: '差', value: '差', score: 15 },
- ],
- },
- {
- key: 'residualCoal',
- label: '遗煤厚度(m)',
- value: '1.0',
- options: [
- { label: '0.5', value: '0.5', score: 3 },
- { label: '1.0', value: '1.0', score: 7 },
- { label: '1.5', value: '1.5', score: 11 },
- { label: '2.0', value: '2.0', score: 15 },
- ],
- },
- {
- key: 'advanceSpeed',
- label: '推进速度(m/d)',
- value: '3.5',
- options: [
- { label: '4.8', value: '4.8', score: 3 },
- { label: '3.5', value: '3.5', score: 7 },
- { label: '2.5', value: '2.5', score: 11 },
- { label: '1.5', value: '1.5', score: 15 },
- ],
- },
- {
- key: 'airLeakage',
- label: '漏风强度',
- value: '中',
- options: [
- { label: '低', value: '低', score: 3 },
- { label: '中', value: '中', score: 8 },
- { label: '高', value: '高', score: 15 },
- ],
- },
- ],
- },
- {
- key: 'condition',
- title: '开采条件',
- fields: [
- {
- key: 'roof',
- label: '顶板岩性',
- value: '泥岩',
- options: [
- { label: '砂岩', value: '砂岩', score: 3 },
- { label: '泥岩', value: '泥岩', score: 8 },
- { label: '复合顶板', value: '复合顶板', score: 12 },
- ],
- },
- {
- key: 'structure',
- label: '地质构造',
- value: '较复杂',
- options: [
- { label: '简单', value: '简单', score: 3 },
- { label: '较复杂', value: '较复杂', score: 8 },
- { label: '复杂', value: '复杂', score: 12 },
- ],
- },
- {
- key: 'miningMethod',
- label: '采煤方法',
- value: '综放',
- options: [
- { label: '综采', value: '综采', score: 4 },
- { label: '综放', value: '综放', score: 10 },
- ],
- },
- {
- key: 'ventMode',
- label: '通风方式',
- value: 'U型',
- options: [
- { label: 'U型', value: 'U型', score: 4 },
- { label: 'W型', value: 'W型', score: 8 },
- { label: 'U+L型', value: 'U+L型', score: 10 },
- ],
- },
- {
- key: 'sealMode',
- label: '封闭方式',
- value: '永久密闭',
- options: [
- { label: '永久密闭', value: '永久密闭', score: 3 },
- { label: '临时密闭', value: '临时密闭', score: 8 },
- { label: '未封闭', value: '未封闭', score: 13 },
- ],
- },
- ],
- },
- {
- key: 'monitor',
- title: '监测数据',
- fields: [
- {
- key: 'o2',
- label: 'O₂浓度(%)',
- value: '15-18',
- options: [
- { label: '≥18', value: '≥18', score: 3 },
- { label: '15-18', value: '15-18', score: 7 },
- { label: '10-15', value: '10-15', score: 12 },
- { label: '<10', value: '<10', score: 16 },
- ],
- },
- {
- key: 'co',
- label: 'CO浓度(ppm)',
- value: '10-24',
- options: [
- { label: '<10', value: '<10', score: 3 },
- { label: '10-24', value: '10-24', score: 7 },
- { label: '24-50', value: '24-50', score: 12 },
- { label: '>50', value: '>50', score: 16 },
- ],
- },
- {
- key: 'ch4',
- label: 'CH₄浓度(%)',
- value: '0.5-1.0',
- options: [
- { label: '<0.5', value: '<0.5', score: 3 },
- { label: '0.5-1.0', value: '0.5-1.0', score: 6 },
- { label: '>1.0', value: '>1.0', score: 10 },
- ],
- },
- {
- key: 'temperature',
- label: '温度(℃)',
- value: '26-30',
- options: [
- { label: '<26', value: '<26', score: 3 },
- { label: '26-30', value: '26-30', score: 7 },
- { label: '30-35', value: '30-35', score: 12 },
- { label: '>35', value: '>35', score: 16 },
- ],
- },
- ],
- },
- ];
- export const SUGGESTIONS: Record<number, string> = {
- 1: '保持现有监测频次,按计划开展日常巡检,关注束管测点气体变化趋势。',
- 2: '关注束管测点变化趋势,定期校验传感器,保持采空区密闭完好。',
- 3: '加密束管采样频次,加强回风顺槽气体分析;对高温测点进行连续测温跟踪;必要时调整推进速度并落实注浆与注氮措施。',
- 4: '立即加密监测并核查高温测点,落实注浆、注氮等综合防灭火措施,必要时调整推进速度。',
- 5: '立即停止作业并撤出受影响区域人员,启动应急预案,实施连续监测与注浆注氮措施。',
- };
- const LEVEL_TEXT: Record<number, string> = {
- 1: 'I 低风险',
- 2: 'II 较低风险',
- 3: 'III 中等风险',
- 4: 'IV 高风险',
- 5: 'V 极高风险',
- };
- export const INITIAL_EVALUATION: EvaluationResult = {
- score: 58.6,
- level: 3,
- levelText: 'III 高风险',
- color: '#ff9d1c',
- highlightLevel: 4,
- target: '12采空区工作面',
- time: '2026-10-12 09:30',
- source: '人工录入',
- suggestion: SUGGESTIONS[3],
- };
- /** 按 0-20 / 20-40 / 40-60 / 60-80 / 80-100 划分风险等级 */
- export function getRiskLevel(score: number): { level: number; name: string; color: string } {
- if (score < 20) return { level: 1, name: LEVEL_TEXT[1], color: RISK_LEVELS[0].color };
- if (score < 40) return { level: 2, name: LEVEL_TEXT[2], color: RISK_LEVELS[1].color };
- if (score < 60) return { level: 3, name: LEVEL_TEXT[3], color: RISK_LEVELS[2].color };
- if (score < 80) return { level: 4, name: LEVEL_TEXT[4], color: RISK_LEVELS[3].color };
- return { level: 5, name: LEVEL_TEXT[5], color: RISK_LEVELS[4].color };
- }
- /** 根据人工录入的各项得分计算 0-100 的风险分值 */
- export function calcManualScore(groups: ManualGroup[]): number {
- let score = 0;
- let maxScore = 0;
- groups.forEach((group) => {
- group.fields.forEach((field) => {
- const selected = field.options.find((option) => option.value === field.value);
- score += selected?.score ?? 0;
- maxScore += Math.max(...field.options.map((option) => option.score));
- });
- });
- if (!maxScore) return 0;
- return Math.round((score / maxScore) * 1000) / 10;
- }
- /** 深度复制人工录入表单,避免多个标签页共享同一份可变数据 */
- export function createManualGroups(): ManualGroup[] {
- return MANUAL_GROUPS.map((group) => ({
- ...group,
- fields: group.fields.map((field) => ({
- ...field,
- options: field.options.map((option) => ({ ...option })),
- })),
- }));
- }
- export interface SelfIgnitionPageData {
- overview: GoafOverviewItem[];
- devices: DeviceInstallItem[];
- overall: OverallWarning;
- warnings: WarningRow[];
- alerts: AlertItem[];
- bundleRows: BundleRow[];
- fiber: FiberTrend;
- }
- /** 生成页面数据副本;数据接口就绪后替换此函数即可 */
- export function createSelfIgnitionData(): SelfIgnitionPageData {
- return {
- overview: GOAF_OVERVIEW.map((item) => ({ ...item })),
- devices: INSTALLED_DEVICES.map((item) => ({ ...item })),
- overall: { ...OVERALL_WARNING },
- warnings: WARNING_ROWS.map((item) => ({ ...item })),
- alerts: ALERTS.map((item) => ({ ...item })),
- bundleRows: BUNDLE_ROWS.map((item) => ({ ...item })),
- fiber: {
- ...FIBER_TREND,
- times: [...FIBER_TREND.times],
- maxTemp: [...FIBER_TREND.maxTemp],
- avgTemp: [...FIBER_TREND.avgTemp],
- },
- };
- }
|