浏览代码

Merge branch 'master' of http://39.97.59.228:8013/hrx/goaf-monitoring-system

wangkeyi 4 月之前
父节点
当前提交
c87aefbb2f
共有 19 个文件被更改,包括 1555 次插入688 次删除
  1. 0 48
      public/js/global.js
  2. 32 0
      src/views/analysis/warningAnalysis/airLeakStatus/airLeak.api.ts
  3. 7 9
      src/views/analysis/warningAnalysis/airLeakStatus/airLeakStatus.data.ts
  4. 300 93
      src/views/analysis/warningAnalysis/airLeakStatus/index.vue
  5. 18 0
      src/views/analysis/warningAnalysis/autoFireAnalysis/autoFire.api.ts
  6. 3 2
      src/views/analysis/warningAnalysis/autoFireAnalysis/autoFireAnalysis.data.ts
  7. 220 104
      src/views/analysis/warningAnalysis/autoFireAnalysis/index.vue
  8. 18 0
      src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudge.api.ts
  9. 3 2
      src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudgeAnalysis.data.ts
  10. 219 104
      src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/index.vue
  11. 219 103
      src/views/analysis/warningAnalysis/overlimitAlarm/index.vue
  12. 18 0
      src/views/analysis/warningAnalysis/overlimitAlarm/overlimit.api.ts
  13. 4 3
      src/views/analysis/warningAnalysis/overlimitAlarm/overlimitAlarm.data.ts
  14. 233 113
      src/views/analysis/warningAnalysis/pressureDiffAnalysis/index.vue
  15. 18 0
      src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiff.api.ts
  16. 3 2
      src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiffAnalysis.data.ts
  17. 219 103
      src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/index.vue
  18. 18 0
      src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudge.api.ts
  19. 3 2
      src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudgeAnalysis.data.ts

+ 0 - 48
public/js/global.js

@@ -201,54 +201,6 @@ const __STATIC_ROUTES__ = [
                 },
                 name: 'pressureDiffAnalysis',
             },
-            {
-                path: '/warning-analysis/fahuo',
-                component: '/demo/table/Basic',
-                meta: {
-                    keepAlive: true,
-                    internalOrExternal: false,
-                    icon: '',
-                    componentName: 'index',
-                    title: '自然发火隐患分级分析',
-                },
-                name: 'fahuo',
-            },
-            {
-                path: '/warning-analysis/qifeng',
-                component: '/demo/table/Basic',
-                meta: {
-                    keepAlive: true,
-                    internalOrExternal: false,
-                    icon: '',
-                    componentName: 'index',
-                    title: '火区密闭启封判定分析',
-                },
-                name: 'qifeng',
-            },
-            {
-                path: '/warning-analysis/weixianxing',
-                component: '/demo/table/Basic',
-                meta: {
-                    keepAlive: true,
-                    internalOrExternal: false,
-                    icon: '',
-                    componentName: 'index',
-                    title: '密闭爆炸危险性判定',
-                },
-                name: 'weixianxing',
-            },
-            {
-                path: '/warning-analysis/chaoxian',
-                component: '/demo/table/Basic',
-                meta: {
-                    keepAlive: true,
-                    internalOrExternal: false,
-                    icon: '',
-                    componentName: 'index',
-                    title: '超限报警分析',
-                },
-                name: 'chaoxian',
-            },
             {
                 path: '/warningAnalysis/autoFire-analysis',
                 component: '/analysis/warningAnalysis/autoFireAnalysis/index',

+ 32 - 0
src/views/analysis/warningAnalysis/airLeakStatus/airLeak.api.ts

@@ -0,0 +1,32 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+  getGoafData = '/province/device/getGoafData',
+  getProvinceAlarmHistory = '/province/device/getProvinceAlarmHistory',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询密闭列表
+export const getGoafData = (params) =>
+  defHttp.post({
+    url: Api.getGoafData,
+    params,
+  });
+//查询预警历史数据
+export const getProvinceAlarmHistory = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarmHistory,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 7 - 9
src/views/analysis/warningAnalysis/airLeakStatus/airLeakStatus.data.ts

@@ -1,8 +1,6 @@
 import { BasicColumn } from '/@/components/Table';
 import { FormSchema } from '/@/components/Table';
 import { TreeItem } from '/@/components/Tree/index';
-
-
 export const boardData = [
   {
     label: '存在风险情况数量',
@@ -16,12 +14,13 @@ export const boardData = [
     label: '闭外气体涌出',
     value: '27',
   },
-]
+];
 // 实时数据相关
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -33,7 +32,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',
@@ -65,7 +64,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '是否解决',
-    dataIndex: 'isResolved'
+    dataIndex: 'isResolved',
   },
 ];
 
@@ -203,8 +202,7 @@ export const minesData = [
     interPressure: '10',
     outerPressure: '20',
   },
-]
-
+];
 
 export const historicalMinesData = [
   {
@@ -273,4 +271,4 @@ export const historicalMinesData = [
     interPressure: '10',
     outerPressure: '20',
   },
-]
+];

+ 300 - 93
src/views/analysis/warningAnalysis/airLeakStatus/index.vue

@@ -9,7 +9,7 @@
           </div>
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <button @click="openModal(record, 'realtime')" class="action-btn">
@@ -37,104 +37,311 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  import { SvgIcon } from '/@/components/Icon';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './airLeakStatus.data';
+import { onMounted, ref } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+import { SvgIcon } from '/@/components/Icon';
+import { getMineData, getProvinceAlarm, getGoafData, getProvinceAlarmHistory } from './airLeak.api';
+// 引入模拟数据
+import { columns, boardData, searchFormSchema, historicalMinesData } from './airLeakStatus.data';
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
+// 激活的Tab页签
+const activeTab = ref('realtime');
+//煤矿列表数据
+const deviceOptions = ref([]);
+const goafOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+const mineCode = ref('');
+const goafId = ref('');
+const alarmFiled = ref('');
+const historyData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  title: '密闭漏风状态判定',
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+  },
+});
 
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
-
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historyData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            mineCode.value = e;
+            await getGoafDataList(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        label: '采空区查询',
+        field: 'goafId',
+        component: 'Select',
+        defaultValue: goafOptions.value[0] ? goafOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: goafOptions,
+          onChange: async (e, option) => {
+            goafId.value = e;
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'alarmFiled',
+        label: '预警字段',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '甲烷', value: 'ch4Val' },
+            { label: '氧气', value: 'o2Val' },
+            { label: '一氧化碳', value: 'coVal' },
+            { label: '二氧化碳', value: 'co2Val' },
+            { label: '乙烯', value: 'c2h4Val' },
+            { label: '乙炔', value: 'c2h2Val' },
+            { label: '压差', value: 'sourcePressure' },
+            { label: '温度', value: 'temperature' },
+          ],
+          onChange: async (e, option) => {
+            alarmFiled.value = e;
+            await getAlarmHistory(e);
+          },
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+async function fetchAlarmData(id) {
+  const params = {
+    // 填写所需参数
+    alarmType: 'leakageAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
+  };
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+async function getAlarmHistory(id) {
+  const params = {
+    // 填写所需参数
+    alarmType: 'leakageAlarm',
+    mineCode: mineCode.value,
+    goafId: goafId.value,
+    alarmFiled: id,
+  };
+  const result = await getProvinceAlarmHistory(params);
+  historyData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
+  };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+const getGoafDataList = async (mineId) => {
+  const params = {
+    mineCode: mineId,
   };
+  const response = await getGoafData(params);
+  goafOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['devicePos'],
+      value: item['goafId'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: flex;
-    padding: 10px;
-    background-color: #fff;
-    margin: 0 10px;
-    gap: 10px;
-    box-sizing: border-box;
-  }
-  .board-item {
-    flex: 1;
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: flex;
+  padding: 10px;
+  background-color: #fff;
+  margin: 0 10px;
+  gap: 10px;
+  box-sizing: border-box;
+}
+.board-item {
+  flex: 1;
+  box-sizing: border-box;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
 </style>

+ 18 - 0
src/views/analysis/warningAnalysis/autoFireAnalysis/autoFire.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 3 - 2
src/views/analysis/warningAnalysis/autoFireAnalysis/autoFireAnalysis.data.ts

@@ -27,7 +27,8 @@ export const boardData = [
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -39,7 +40,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',

+ 220 - 104
src/views/analysis/warningAnalysis/autoFireAnalysis/index.vue

@@ -15,7 +15,7 @@
           />
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
@@ -55,115 +55,231 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './autoFireAnalysis.data';
-  import { SvgIcon } from '/@/components/Icon';
+import { ref, onMounted } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+// 引入模拟数据
+import { boardData, columns, searchFormSchema, historicalMinesData } from './autoFireAnalysis.data';
+import { SvgIcon } from '/@/components/Icon';
+import { getMineData, getProvinceAlarm } from './autoFire.api';
+// 激活的Tab页签
+const activeTab = ref('realtime');
+const visibleModal = ref(false);
+//煤矿列表数据
+const deviceOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
-  const visibleModal = ref(false);
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
-
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historicalMinesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else if (type === 'detail') {
-      visibleModal.value = true;
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
-  };
-  const handleOkEdit = () => {
-    visibleModal.value = false;
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else if (type === 'detail') {
+    visibleModal.value = true;
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+const handleOkEdit = () => {
+  visibleModal.value = false;
+};
+const handleCancelEdit = () => {
+  visibleModal.value = false;
+};
+async function fetchAlarmData(id) {
+  const params = {
+    // 填写所需参数
+    alarmType: 'fireAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
   };
-  const handleCancelEdit = () => {
-    visibleModal.value = false;
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
   };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: grid;
-    grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
-    gap: auto;
-    justify-content: start;
-    flex-wrap: wrap;
-    box-sizing: border-box;
-    background-color: #fff;
-    padding: 10px;
-    margin: 0 10px;
-    gap: 100px;
-  }
-  .board-item {
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: grid;
+  grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
+  gap: auto;
+  justify-content: start;
+  flex-wrap: wrap;
+  box-sizing: border-box;
+  background-color: #fff;
+  padding: 10px;
+  margin: 0 10px;
+  gap: 100px;
+}
+.board-item {
+  box-sizing: border-box;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
 </style>

+ 18 - 0
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudge.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 3 - 2
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudgeAnalysis.data.ts

@@ -27,7 +27,8 @@ export const boardData = [
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -39,7 +40,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',

+ 219 - 104
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/index.vue

@@ -15,7 +15,7 @@
           />
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
@@ -55,115 +55,230 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  import { SvgIcon } from '/@/components/Icon';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './fireAreaJudgeAnalysis.data';
+import { onMounted, ref } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+import { SvgIcon } from '/@/components/Icon';
+// 引入模拟数据
+import { boardData, columns, searchFormSchema, historicalMinesData } from './fireAreaJudgeAnalysis.data';
+import { getMineData, getProvinceAlarm } from './fireAreaJudge.api';
+// 激活的Tab页签
+const activeTab = ref('realtime');
+const visibleModal = ref(false);
+//煤矿列表数据
+const deviceOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 120,
+    title: '详情',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
-  const visibleModal = ref(false);
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 120,
-      title: '详情',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
-
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historicalMinesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else if (type === 'detail') {
-      visibleModal.value = true;
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
-  };
-  const handleOkEdit = () => {
-    visibleModal.value = false;
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else if (type === 'detail') {
+    visibleModal.value = true;
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+const handleOkEdit = () => {
+  visibleModal.value = false;
+};
+const handleCancelEdit = () => {
+  visibleModal.value = false;
+};
+async function fetchAlarmData(id) {
+  const params = {
+    alarmType: 'unsealAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
   };
-  const handleCancelEdit = () => {
-    visibleModal.value = false;
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
   };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: grid;
-    grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
-    gap: auto;
-    justify-content: start;
-    flex-wrap: wrap;
-    box-sizing: border-box;
-    background-color: #fff;
-    padding: 10px;
-    margin: 0 10px;
-    gap: 100px;
-  }
-  .board-item {
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: grid;
+  grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
+  gap: auto;
+  justify-content: start;
+  flex-wrap: wrap;
+  box-sizing: border-box;
+  background-color: #fff;
+  padding: 10px;
+  margin: 0 10px;
+  gap: 100px;
+}
+.board-item {
+  box-sizing: border-box;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
 </style>

+ 219 - 103
src/views/analysis/warningAnalysis/overlimitAlarm/index.vue

@@ -15,7 +15,7 @@
           />
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
@@ -55,115 +55,231 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  import { SvgIcon } from '/@/components/Icon';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './overlimitAlarm.data';
+import { ref, onMounted } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+import { SvgIcon } from '/@/components/Icon';
+// 引入模拟数据
+import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './overlimitAlarm.data';
+import { getMineData, getProvinceAlarm } from './overlimit.api';
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
-  const visibleModal = ref(false);
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 120,
-      title: '详情',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 激活的Tab页签
+const activeTab = ref('realtime');
+const visibleModal = ref(false);
+//煤矿列表数据
+const deviceOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 120,
+    title: '详情',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historicalMinesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else if (type === 'detail') {
-      visibleModal.value = true;
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
-  };
-  const handleOkEdit = () => {
-    visibleModal.value = false;
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else if (type === 'detail') {
+    visibleModal.value = true;
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+const handleOkEdit = () => {
+  visibleModal.value = false;
+};
+const handleCancelEdit = () => {
+  visibleModal.value = false;
+};
+async function fetchAlarmData(id) {
+  const params = {
+    alarmType: 'unsealAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
   };
-  const handleCancelEdit = () => {
-    visibleModal.value = false;
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
   };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: grid;
-    grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
-    gap: auto;
-    justify-content: start;
-    flex-wrap: wrap;
-    box-sizing: border-box;
-    background-color: #fff;
-    padding: 10px;
-    margin: 0 10px;
-    gap: 100px;
-  }
-  .board-item {
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: grid;
+  grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
+  gap: auto;
+  justify-content: start;
+  flex-wrap: wrap;
+  box-sizing: border-box;
+  background-color: #fff;
+  padding: 10px;
+  margin: 0 10px;
+  gap: 100px;
+}
+.board-item {
+  box-sizing: border-box;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
 </style>

+ 18 - 0
src/views/analysis/warningAnalysis/overlimitAlarm/overlimit.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 4 - 3
src/views/analysis/warningAnalysis/overlimitAlarm/overlimitAlarm.data.ts

@@ -27,7 +27,8 @@ export const boardData = [
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -39,7 +40,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',
@@ -71,7 +72,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '风险分析',
-    dataIndex: 'riskAnalysis',
+    dataIndex: 'alarmName',
   },
   {
     title: '预警时间',

+ 233 - 113
src/views/analysis/warningAnalysis/pressureDiffAnalysis/index.vue

@@ -15,14 +15,13 @@
           />
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
               <button @click="openModal(record, 'detail')" class="action-btn detail-btn" title="操作">
                 <span class="action-text">详情</span>
               </button>
-
               <!-- 已解决按钮 -->
               <button @click="openModal(record, 'resolved')" class="action-btn resolved-btn" title="已解决">
                 <span class="action-text">已解决</span>
@@ -72,124 +71,245 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  import { SvgIcon } from '/@/components/Icon';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './pressureDiffAnalysis.data';
+import { ref, onMounted } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+import { SvgIcon } from '/@/components/Icon';
+// 引入模拟数据
+import { boardData, columns, searchFormSchema, historicalMinesData } from './pressureDiffAnalysis.data';
+import { getMineData, getProvinceAlarm } from './pressureDiff.api';
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
-  const visibleModal = ref(false);
-  const visibleresolveModal = ref(false);
-  const resolveValue = ref('');
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 120,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 激活的Tab页签
+const activeTab = ref('realtime');
+const visibleModal = ref(false);
+const visibleresolveModal = ref(false);
+const resolveValue = ref('');
+//煤矿列表数据
+const deviceOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 120,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 120,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historicalMinesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 120,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else if (type === 'resolved') {
-      visibleresolveModal.value = true;
-      record.isResolved = resolveValue.value || '';
-    } else if (type === 'detail') {
-      visibleModal.value = true;
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
-  };
-  const handleOkEdit = () => {
-    visibleresolveModal.value = false;
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else if (type === 'resolved') {
+    visibleresolveModal.value = true;
+    record.isResolved = resolveValue.value || '';
+  } else if (type === 'detail') {
+    visibleModal.value = true;
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+const handleOkEdit = () => {
+  visibleresolveModal.value = false;
+};
+const handleCancelEdit = () => {
+  visibleresolveModal.value = false;
+};
+async function fetchAlarmData(id) {
+  const params = {
+    // 填写所需参数
+    alarmType: 'leakageAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
   };
-  const handleCancelEdit = () => {
-    visibleresolveModal.value = false;
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
   };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: grid;
-    grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
-    gap: auto;
-    justify-content: start;
-    flex-wrap: wrap;
-    box-sizing: border-box;
-    background-color: #fff;
-    padding: 10px;
-    margin: 0 10px;
-    gap: 100px;
-  }
-  .board-item {
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
-  .action-text {
-    font-size: 12px;
-    color: #6398fc;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: grid;
+  grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
+  gap: auto;
+  justify-content: start;
+  flex-wrap: wrap;
+  box-sizing: border-box;
+  background-color: #fff;
+  padding: 10px;
+  margin: 0 10px;
+  gap: 100px;
+}
+.board-item {
+  box-sizing: border-box;
+}
+.action-buttons {
+  display: flex;
+  gap: 8px;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
+.action-text {
+  font-size: 12px;
+  color: #6398fc;
+}
 </style>

+ 18 - 0
src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiff.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 3 - 2
src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiffAnalysis.data.ts

@@ -27,7 +27,8 @@ export const boardData = [
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -39,7 +40,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',

+ 219 - 103
src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/index.vue

@@ -15,7 +15,7 @@
           />
         </div>
         <!-- 实时数据表格 -->
-        <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }">
+        <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }">
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
@@ -55,115 +55,231 @@
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
-  import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane } from 'ant-design-vue';
-  import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
-  import { SvgIcon } from '/@/components/Icon';
-  // 引入模拟数据
-  import { boardData, columns, searchFormSchema, minesData, historicalMinesData } from './sealRiskJudgeAnalysis.data';
+import { ref, onMounted } from 'vue';
+import { BasicTable, useTable } from '/@/components/Table';
+import { Tabs, TabPane } from 'ant-design-vue';
+import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
+import { SvgIcon } from '/@/components/Icon';
+// 引入模拟数据
+import { boardData, columns, searchFormSchema, historicalMinesData } from './sealRiskJudgeAnalysis.data';
+import { getMineData, getProvinceAlarm } from './sealRiskJudge.api';
 
-  // 激活的Tab页签
-  const activeTab = ref('realtime');
-  const visibleModal = ref(false);
-  // 注册实时数据表格
-  const [registerRealtimeTable] = useTable({
-    dataSource: minesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 120,
-      title: '详情',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 激活的Tab页签
+const activeTab = ref('realtime');
+const visibleModal = ref(false);
+//煤矿列表数据
+const deviceOptions = ref([]);
+const mineID = ref('');
+const minesData = ref([]);
+// 注册实时数据表格
+const [registerTable] = useTable({
+  dataSource: minesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: [
+      {
+        label: '查询煤矿',
+        field: 'mineCode',
+        component: 'Select',
+        defaultValue: deviceOptions.value[0] ? deviceOptions.value[0]['value'] : '',
+        componentProps: {
+          showSearch: true,
+          filterOption: (input: string, option: any) => {
+            return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+          },
+          options: deviceOptions,
+          onChange: async (e, option) => {
+            await fetchAlarmData(e);
+          },
+        },
+        colProps: {
+          span: 6,
+        },
+      },
+      {
+        field: 'mineName',
+        label: '所属执法处',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '所属区域',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '执法一处', value: '0' },
+            { label: '执法二处', value: '1' },
+            { label: '执法三处', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineName',
+        label: '煤矿名称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'mineNameAbbr',
+        label: '煤矿简称',
+        component: 'Input',
+        colProps: { span: 6 },
+      },
+      {
+        field: 'productStatus',
+        label: '生产状态',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: '拟建矿井', value: '0' },
+            { label: '正常生产矿井', value: '1' },
+            { label: '长期停产矿井', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+      {
+        field: 'riskLevel',
+        label: '自燃情况',
+        component: 'Select',
+        componentProps: {
+          options: [
+            { label: 'Ⅰ类容易自燃', value: '0' },
+            { label: 'Ⅱ类自燃', value: '1' },
+            { label: 'Ⅲ类不易自燃', value: '2' },
+          ],
+        },
+        colProps: { span: 6 },
+      },
+    ],
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+  },
+});
 
-  // 注册历史数据表格
-  const [registerHistoryTable] = useTable({
-    dataSource: historicalMinesData,
-    columns,
-    formConfig: {
-      labelWidth: 120,
-      schemas: searchFormSchema,
-      showAdvancedButton: false,
-    },
-    pagination: false,
-    striped: false,
-    useSearchForm: true,
-    bordered: true,
-    showIndexColumn: false,
-    canResize: false,
-    actionColumn: {
-      width: 60,
-      title: '操作',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: undefined,
-    },
-  });
+// 注册历史数据表格
+const [registerHistoryTable] = useTable({
+  dataSource: historicalMinesData,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+    showAdvancedButton: false,
+  },
+  pagination: false,
+  striped: false,
+  useSearchForm: true,
+  bordered: true,
+  showIndexColumn: false,
+  canResize: false,
+  actionColumn: {
+    width: 60,
+    title: '操作',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  },
+});
 
-  // 弹窗引用
-  const realtimeModalRef = ref(null);
-  const historyModalRef = ref(null);
+// 弹窗引用
+const realtimeModalRef = ref(null);
+const historyModalRef = ref(null);
 
-  // 打开弹窗方法(区分实时/历史)
-  const openModal = (record, type) => {
-    if (type === 'realtime') {
-      // 可向实时弹窗传递当前记录数据
-      realtimeModalRef.value?.showModal(record);
-    } else if (type === 'detail') {
-      visibleModal.value = true;
-    } else {
-      // 可向历史弹窗传递当前记录数据
-      historyModalRef.value?.showModal(record);
-    }
-  };
-  const handleOkEdit = () => {
-    visibleModal.value = false;
+// 打开弹窗方法(区分实时/历史)
+const openModal = (record, type) => {
+  if (type === 'realtime') {
+    // 可向实时弹窗传递当前记录数据
+    realtimeModalRef.value?.showModal(record);
+  } else if (type === 'detail') {
+    visibleModal.value = true;
+  } else {
+    // 可向历史弹窗传递当前记录数据
+    historyModalRef.value?.showModal(record);
+  }
+};
+const handleOkEdit = () => {
+  visibleModal.value = false;
+};
+const handleCancelEdit = () => {
+  visibleModal.value = false;
+};
+async function fetchAlarmData(id) {
+  const params = {
+    // 填写所需参数
+    alarmType: 'leakageAlarm',
+    mineId: id,
+    pageNo: 1,
+    pageSize: 50,
   };
-  const handleCancelEdit = () => {
-    visibleModal.value = false;
+  const result = await getProvinceAlarm(params);
+  minesData.value = result.records;
+}
+const getMineDataList = async () => {
+  const params = {
+    pageNo: 1,
+    pageSize: 50,
   };
+  const response = await getMineData(params);
+  deviceOptions.value = response.records.map((item, index) => {
+    return {
+      label: item['mineName'],
+      value: item['mineCode'],
+    };
+  });
+};
+onMounted(() => {
+  // 页面挂载时的逻辑
+  getMineDataList();
+});
 </script>
 
 <style lang="less" scoped>
-  .monitoring-page {
-    padding: 16px;
-  }
-  .board-info {
-    display: grid;
-    grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
-    gap: auto;
-    justify-content: start;
-    flex-wrap: wrap;
-    box-sizing: border-box;
-    background-color: #fff;
-    padding: 10px;
-    margin: 0 10px;
-    gap: 100px;
-  }
-  .board-item {
-    box-sizing: border-box;
-  }
-  .action-btn {
-    cursor: pointer;
-    border: none;
-    padding: 4px;
-  }
-  .action-icon {
-    width: 16px;
-    height: 16px;
-  }
+.monitoring-page {
+  padding: 16px;
+}
+.board-info {
+  display: grid;
+  grid-template-columns: repeat(5, auto); /* 3列:改5则为5列 */
+  gap: auto;
+  justify-content: start;
+  flex-wrap: wrap;
+  box-sizing: border-box;
+  background-color: #fff;
+  padding: 10px;
+  margin: 0 10px;
+  gap: 100px;
+}
+.board-item {
+  box-sizing: border-box;
+}
+.action-btn {
+  cursor: pointer;
+  border: none;
+  padding: 4px;
+}
+.action-icon {
+  width: 16px;
+  height: 16px;
+}
 </style>

+ 18 - 0
src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudge.api.ts

@@ -0,0 +1,18 @@
+import { defHttp } from '/@/utils/http/axios';
+
+enum Api {
+  getProvinceAlarm = '/province/alarm/getProvinceAlarm',
+  getMineData = '/province/mineData/getMineData',
+}
+//查询煤矿列表
+export const getMineData = (params) =>
+  defHttp.post({
+    url: Api.getMineData,
+    params,
+  });
+//查询预警数据
+export const getProvinceAlarm = (params) =>
+  defHttp.post({
+    url: Api.getProvinceAlarm,
+    params,
+  });

+ 3 - 2
src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudgeAnalysis.data.ts

@@ -27,7 +27,8 @@ export const boardData = [
 export const columns: BasicColumn[] = [
   {
     title: '序号',
-    dataIndex: 'orderNo',
+    align: 'center',
+    customRender: ({ index }: { index: number }) => `${index + 1}`,
   },
   {
     title: '区域',
@@ -39,7 +40,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '密闭名称',
-    dataIndex: 'sealedName',
+    dataIndex: 'devicePos',
   },
   {
     title: '所属煤层',