فهرست منبع

[Feat 0000] 关键页面支持携带参数跳转至关联分析页面

houzekong 1 ماه پیش
والد
کامیت
42b3ce14aa
27فایلهای تغییر یافته به همراه289 افزوده شده و 100 حذف شده
  1. 1 0
      src/views/analysis/common/analysis.ts
  2. 1 0
      src/views/analysis/warningAnalysis/airLeakStatus/airLeakStatus.data.ts
  3. 31 12
      src/views/analysis/warningAnalysis/airLeakStatus/index.vue
  4. 1 0
      src/views/analysis/warningAnalysis/autoFireAnalysis/autoFireAnalysis.data.ts
  5. 23 6
      src/views/analysis/warningAnalysis/autoFireAnalysis/index.vue
  6. 4 3
      src/views/analysis/warningAnalysis/autoFireOutAnalysis/autoFireOutAnalysis.data.ts
  7. 23 6
      src/views/analysis/warningAnalysis/autoFireOutAnalysis/index.vue
  8. 5 4
      src/views/analysis/warningAnalysis/connectAnalysis/AnalysisChart.vue
  9. 9 3
      src/views/analysis/warningAnalysis/connectAnalysis/components/checkbox-nav.vue
  10. 1 1
      src/views/analysis/warningAnalysis/connectAnalysis/components/echart-lengend.vue
  11. 14 14
      src/views/analysis/warningAnalysis/connectAnalysis/connectAnalysis.data.ts
  12. 12 3
      src/views/analysis/warningAnalysis/connectAnalysis/hooks/form.ts
  13. 4 1
      src/views/analysis/warningAnalysis/connectAnalysis/index.vue
  14. 1 0
      src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudgeAnalysis.data.ts
  15. 23 6
      src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/index.vue
  16. 23 7
      src/views/analysis/warningAnalysis/overlimitAlarm/index.vue
  17. 1 0
      src/views/analysis/warningAnalysis/overlimitAlarm/overlimitAlarm.data.ts
  18. 23 6
      src/views/analysis/warningAnalysis/overlimitAlarmOut/index.vue
  19. 4 3
      src/views/analysis/warningAnalysis/overlimitAlarmOut/overlimitAlarm.data.ts
  20. 23 6
      src/views/analysis/warningAnalysis/pressureDiffAnalysis/index.vue
  21. 1 0
      src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiffAnalysis.data.ts
  22. 27 8
      src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/index.vue
  23. 1 0
      src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudgeAnalysis.data.ts
  24. 1 1
      src/views/dashboard/basicInfo/dataQuality/index.vue
  25. 2 2
      src/views/dashboard/basicInfo/problemReport/index.vue
  26. 1 0
      src/views/monitor/sealedMonitor/hooks/form.ts
  27. 29 8
      src/views/monitor/sealedMonitor/index.vue

+ 1 - 0
src/views/analysis/common/analysis.ts

@@ -24,6 +24,7 @@ export function useInitForm(ctx?: TableActionType) {
   function initGoafOptions(deptId) {
     return getGoafSelectOption({ deptId }).then(({ options, defaultValue }) => {
       goafOptions.value = options;
+      if (options.some((e) => e.id === goafId.value)) return;
       goafId.value = defaultValue;
     });
   }

+ 1 - 0
src/views/analysis/warningAnalysis/airLeakStatus/airLeakStatus.data.ts

@@ -25,6 +25,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 31 - 12
src/views/analysis/warningAnalysis/airLeakStatus/index.vue

@@ -11,14 +11,19 @@
       <!-- 实时数据表格 -->
       <BasicTable @register="registerRealtimeTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
         <template #action="{ record }">
-          <!-- 操作按钮 -->
-          <!-- <button @click="openModal(record, 'detail')" class="action-btn detail-btn" title="操作">
+          <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)" class="resolved-btn" title="解决">
+            <!-- 已解决按钮 -->
+            <!-- <button @click="openModal(record)" class="resolved-btn" title="解决">
             <SvgIcon name="solved" />
-          </button>
+          </button> -->
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
+          </div>
         </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXlsTime"> 导出 </a-button>
@@ -29,13 +34,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -65,6 +70,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -103,7 +109,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: false,
-      showActionColumn: false,
+      // showActionColumn: false,
       // actionColumn: {
       //   width: 80,
       //   title: '操作',
@@ -120,7 +126,7 @@
     },
   });
   const [registerRealtimeTable] = ctxRealtime;
-  const { goafOptions, goafId, hiscode, resolveValue, registerModal, openModal, initGoafOptions, handleResolve } = useInitForm();
+  const { goafOptions, goafId, hiscode, resolveValue, registerModal, initGoafOptions, handleResolve } = useInitForm();
   // 注册历史数据表格
   const { tableContext, onExportXls } = useListPage({
     tableProps: {
@@ -191,7 +197,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -215,6 +221,19 @@
     boardData.value[2].value = result.alarmLevel2;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'sourcePressure' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

+ 1 - 0
src/views/analysis/warningAnalysis/autoFireAnalysis/autoFireAnalysis.data.ts

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 23 - 6
src/views/analysis/warningAnalysis/autoFireAnalysis/index.vue

@@ -20,9 +20,12 @@
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
-              <button @click="openModal(record)" class="resolved-btn" title="解决">
+              <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
                 <SvgIcon name="solved" />
               </button>
+              <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+                <SvgIcon name="chart" />
+              </button>
             </div>
           </template>
           <template #resetBefore>
@@ -34,13 +37,13 @@
       <TabPane tab="历史数据" key="history">
         <!-- 历史数据表格 -->
         <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-          <!-- <template #action="{ record }">
+          <template #action="{ record }">
             <div class="action-buttons">
-              <button @click="openModal(record, 'history')" class="action-btn">
-                <SvgIcon name="details" />
+              <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+                <SvgIcon name="chart" />
               </button>
             </div>
-          </template> -->
+          </template>
           <template #resetBefore>
             <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
           </template>
@@ -71,6 +74,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -216,7 +220,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -242,6 +246,19 @@
     boardData.value[4].value = result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,co2Val,ch4Val,c2h2Val,c2h4Val,o2Val,temperature' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

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

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {
@@ -54,17 +55,17 @@ export const columns: BasicColumn[] = [
   },
   {
     title: 'CH4(%)',
-    dataIndex: 'ch4Val',
+    dataIndex: 'ch4ValOut',
     width: 100,
   },
   {
     title: 'CO(ppm)',
-    dataIndex: 'coVal',
+    dataIndex: 'coValOut',
     width: 100,
   },
   {
     title: 'O2(%)',
-    dataIndex: 'o2Val',
+    dataIndex: 'o2ValOut',
     width: 100,
   },
   // {

+ 23 - 6
src/views/analysis/warningAnalysis/autoFireOutAnalysis/index.vue

@@ -20,9 +20,12 @@
           <template #action="{ record }">
             <div class="action-buttons">
               <!-- 操作按钮 -->
-              <button @click="openModal(record)" class="resolved-btn" title="解决">
+              <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
                 <SvgIcon name="solved" />
               </button>
+              <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+                <SvgIcon name="chart" />
+              </button>
             </div>
           </template>
           <template #resetBefore>
@@ -34,13 +37,13 @@
       <TabPane tab="历史数据" key="history">
         <!-- 历史数据表格 -->
         <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-          <!-- <template #action="{ record }">
+          <template #action="{ record }">
             <div class="action-buttons">
-              <button @click="openModal(record, 'history')" class="action-btn">
-                <SvgIcon name="details" />
+              <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+                <SvgIcon name="chart" />
               </button>
             </div>
-          </template> -->
+          </template>
           <template #resetBefore>
             <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
           </template>
@@ -71,6 +74,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -216,7 +220,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -242,6 +246,19 @@
     boardData.value[4].value = result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filterout: 'ch4ValOut,coValOut,o2ValOut,temperatureOut' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

+ 5 - 4
src/views/analysis/warningAnalysis/connectAnalysis/AnalysisChart.vue

@@ -3,7 +3,7 @@
   <div class="connectAnalysis">
     <div class="filter-area">
       <Row style="width: 100%">
-        <Col v-if="!requestParams" :span="7">
+        <Col :span="7">
           <div class="filter-section param-section">
             <span class="filter-label">煤矿名称:</span>
             <div class="param-selector">
@@ -18,7 +18,7 @@
             </div>
           </div>
         </Col>
-        <Col v-if="!requestParams" :span="7">
+        <Col :span="7">
           <!-- 时间选择 -->
           <div class="filter-section param-section">
             <span class="filter-label">老空区永久密闭:</span>
@@ -55,7 +55,7 @@
     <!-- 动态图表区域-->
     <div class="echart-box">
       <div class="check-title">
-        <CheckboxNav :options="checkboxOptions" @check-box-change="checkBoxChange"></CheckboxNav>
+        <CheckboxNav :filters="filters" :options="checkboxOptions" @check-box-change="checkBoxChange"></CheckboxNav>
       </div>
       <div class="check-line">
         <echartDivder></echartDivder>
@@ -120,7 +120,7 @@
     }
   );
 
-  const { goafOptions, goafId, innerValue, loading, initGoafOptions } = useInitForm();
+  const { goafOptions, goafId, innerValue, loading, filters, initGoafOptions } = useInitForm();
 
   // 组件注册
   const RangePicker: any = DatePicker.RangePicker;
@@ -140,6 +140,7 @@
     innerValue.value = val;
     initGoafOptions(val).then(() => {
       if (echartData.flag) {
+        goafId.value;
         generateChart();
       }
     });

+ 9 - 3
src/views/analysis/warningAnalysis/connectAnalysis/components/checkbox-nav.vue

@@ -1,6 +1,8 @@
 <template>
   <div class="check-nav">
-    <Checkbox v-model:checked="state.checkAll" :indeterminate="state.indeterminate" @change="onCheckAllChange"> 全选 </Checkbox>
+    <Checkbox v-model:checked="state.checkAll" :indeterminate="state.indeterminate" class="check-nav__checkall" @change="onCheckAllChange">
+      全选
+    </Checkbox>
     <CheckboxGroup v-model:value="state.checkedList" @change="onChangeGroup">
       <Checkbox v-for="item in options" :key="item.value" :value="item.value">
         {{ item.label }}
@@ -15,13 +17,15 @@
   // import { plainOptions } from '../connectAnalysis.data';
 
   const props = defineProps<{
+    /** 初始状态过滤器,传空数组为不过滤 */
+    filters: string[];
     options: any[];
   }>();
 
   const state = reactive({
     indeterminate: true,
     checkAll: false,
-    checkedList: props.options.map((e) => e.value),
+    checkedList: [],
   });
 
   const $emit = defineEmits(['checkBoxChange']);
@@ -37,6 +41,8 @@
     state.checkedList = val;
     $emit('checkBoxChange', state);
   };
+
+  onChangeGroup(props.filters.length ? props.filters : props.options.map((e) => e.value));
 </script>
 
 <style lang="less" scoped>
@@ -46,7 +52,7 @@
     width: 100%;
     height: 100%;
 
-    .ant-checkbox-wrapper {
+    .check-nav__checkall {
       width: 80px;
     }
 

+ 1 - 1
src/views/analysis/warningAnalysis/connectAnalysis/components/echart-lengend.vue

@@ -27,7 +27,7 @@
     .lengend-box {
       display: flex;
       align-items: center;
-      padding-left: 80px;
+      // padding-left: 80px;
 
       &:nth-child(1) {
         .lengend-icon {

+ 14 - 14
src/views/analysis/warningAnalysis/connectAnalysis/connectAnalysis.data.ts

@@ -1,12 +1,12 @@
 export const plainOptions: any[] = [
   { label: 'CO浓度(ppm)', value: 'coVal', color: '#3bd97a', areaColor: ['rgba(59, 217, 122,0.1)', 'rgba(59, 217, 122,0.8)'] },
-  // { label: 'C2H4浓度(ppm)', value: 'c2h4Val', color: '#d35400', areaColor: ['rgba(211, 84, 0,0.1)', 'rgba(211, 84, 0,0.8)'] },
-  // { label: 'C2H2浓度(ppm)', value: 'c2h2Val', color: '#c0392b', areaColor: ['rgba(192, 57, 43,0.1)', 'rgba(192, 57, 43,0.8)'] },
-  // { label: 'CH4浓度(%)', value: 'ch4Val', color: '#f9c74a', areaColor: ['rgba(249, 199, 74,0.1)', 'rgba(249, 199, 74,0.8)'] },
-  // { label: 'CO2浓度(%)', value: 'co2Val', color: '#1fd0da', areaColor: ['rgba(31, 208, 218,0.1)', 'rgba(31, 208, 218,0.8)'] },
-  // { label: 'O2浓度(%)', value: 'o2Val', color: '#ff6666', areaColor: ['rgba(255, 102, 102,0.1)', 'rgba(255, 102, 102,0.8)'] },
-  // { label: '压差(kPa)', value: 'sourcePressure', color: '#3b4bd9', areaColor: ['rgba(59, 75, 217,0.1)', 'rgba(59, 75, 217,0.8)'] },
-  // { label: '温度(℃)', value: 'temperature', color: '#f18736', areaColor: ['rgba(241, 135, 54,0.1)', 'rgba(241, 135, 54,0.8)'] },
+  { label: 'C2H4浓度(ppm)', value: 'c2h4Val', color: '#d35400', areaColor: ['rgba(211, 84, 0,0.1)', 'rgba(211, 84, 0,0.8)'] },
+  { label: 'C2H2浓度(ppm)', value: 'c2h2Val', color: '#c0392b', areaColor: ['rgba(192, 57, 43,0.1)', 'rgba(192, 57, 43,0.8)'] },
+  { label: 'CH4浓度(%)', value: 'ch4Val', color: '#f9c74a', areaColor: ['rgba(249, 199, 74,0.1)', 'rgba(249, 199, 74,0.8)'] },
+  { label: 'CO2浓度(%)', value: 'co2Val', color: '#1fd0da', areaColor: ['rgba(31, 208, 218,0.1)', 'rgba(31, 208, 218,0.8)'] },
+  { label: 'O2浓度(%)', value: 'o2Val', color: '#ff6666', areaColor: ['rgba(255, 102, 102,0.1)', 'rgba(255, 102, 102,0.8)'] },
+  { label: '压差(kPa)', value: 'sourcePressure', color: '#3b4bd9', areaColor: ['rgba(59, 75, 217,0.1)', 'rgba(59, 75, 217,0.8)'] },
+  { label: '温度(℃)', value: 'temperature', color: '#f18736', areaColor: ['rgba(241, 135, 54,0.1)', 'rgba(241, 135, 54,0.8)'] },
 ];
 
 export const plainOptionsOut: any[] = [
@@ -22,13 +22,13 @@ export const plainOptionsOut: any[] = [
 
 export const lengendTitle = [
   { label: 'CO浓度(ppm)' },
-  // { label: 'C2H4浓度(ppm)' },
-  // { label: 'C2H2浓度(ppm)' },
-  // { label: 'CH4浓度(%)' },
-  // { label: 'CO2浓度(%)' },
-  // { label: 'O2浓度(%)' },
-  // { label: '压差(kPa)' },
-  // { label: '温度(℃)' },
+  { label: 'C2H4浓度(ppm)' },
+  { label: 'C2H2浓度(ppm)' },
+  { label: 'CH4浓度(%)' },
+  { label: 'CO2浓度(%)' },
+  { label: 'O2浓度(%)' },
+  { label: '压差(kPa)' },
+  { label: '温度(℃)' },
 ];
 
 export const lengendTitleOut = [

+ 12 - 3
src/views/analysis/warningAnalysis/connectAnalysis/hooks/form.ts

@@ -3,12 +3,18 @@ import { useRoute } from 'vue-router';
 import { getGoafSelectOption } from '/@/views/monitor/sealedMonitor/monitor.api';
 import { useMineDepartmentStore } from '/@/store/modules/mine';
 
-export function useInitForm({ unlinkGoafId }: { unlinkGoafId?: boolean } = {}) {
+/**
+ * 适用于关联分析页面的表单钩子
+ * @param param.unlink 取消查询采空区后的自动赋值
+ * @returns
+ */
+export function useInitForm({ unlink }: { unlink?: boolean } = {}) {
   const mineStore = useMineDepartmentStore();
   const route = useRoute();
   const loading = ref(false);
   // 默认填充的矿码
   const innerValue = ref<string>('');
+  const filters: string[] = ((route.query?.filter as string) || (route.query?.filterout as string))?.split(',') || [];
 
   if (route.query.deptId) {
     innerValue.value = route.query.deptId as string;
@@ -23,7 +29,7 @@ export function useInitForm({ unlinkGoafId }: { unlinkGoafId?: boolean } = {}) {
   // }
 
   // 采空区选择器
-  const goafId = ref('');
+  const goafId = ref((route.query.goafId as string) || '');
   const goafOptions = ref<any[]>([]);
 
   function initGoafOptions(deptId) {
@@ -31,7 +37,9 @@ export function useInitForm({ unlinkGoafId }: { unlinkGoafId?: boolean } = {}) {
     return getGoafSelectOption({ deptId })
       .then(({ options, defaultValue }) => {
         goafOptions.value = options;
-        if (unlinkGoafId) return;
+        if (unlink) return;
+        if (options.some((e) => e.id === goafId.value)) return;
+
         goafId.value = defaultValue;
       })
       .finally(() => {
@@ -44,6 +52,7 @@ export function useInitForm({ unlinkGoafId }: { unlinkGoafId?: boolean } = {}) {
     goafId,
     innerValue,
     loading,
+    filters,
     initGoafOptions,
   };
 }

+ 4 - 1
src/views/analysis/warningAnalysis/connectAnalysis/index.vue

@@ -16,8 +16,11 @@
   import { plainOptions, lengendTitle, plainOptionsOut, lengendTitleOut } from './connectAnalysis.data';
   import AnalysisChart from './AnalysisChart.vue';
   import { Tabs, TabPane } from 'ant-design-vue';
+  import { useRoute } from 'vue-router';
 
-  const activeTab = ref('in');
+  const route = useRoute();
+
+  const activeTab = ref(route.query?.filterout ? 'out' : 'in');
 </script>
 
 <style lang="less" scoped>

+ 1 - 0
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/fireAreaJudgeAnalysis.data.ts

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 23 - 6
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/index.vue

@@ -19,9 +19,12 @@
         <template #action="{ record }">
           <div class="action-buttons">
             <!-- 已解决按钮 -->
-            <button @click="openModal(record)" class="resolved-btn" title="解决">
+            <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
               <SvgIcon name="solved" />
             </button>
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
           </div>
         </template>
         <template #resetBefore>
@@ -33,13 +36,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -69,6 +72,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -207,7 +211,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -231,6 +235,19 @@
     boardData.value[2].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4 + result.alarmLevel5;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,c2h2Val,c2h4Val,o2Val' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

+ 23 - 7
src/views/analysis/warningAnalysis/overlimitAlarm/index.vue

@@ -19,9 +19,12 @@
         <template #action="{ record }">
           <div class="action-buttons">
             <!-- 操作按钮 -->
-            <button @click="openModal(record)" class="resolved-btn" title="解决">
+            <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
               <SvgIcon name="solved" />
             </button>
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
           </div>
         </template>
         <template #resetBefore>
@@ -33,13 +36,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -69,7 +72,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
-  import { useRoute } from 'vue-router';
+  import { useRoute, useRouter } from 'vue-router';
 
   const route = useRoute();
   // 激活的Tab页签
@@ -210,7 +213,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -236,6 +239,19 @@
     boardData.value[4].value = result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,co2Val,ch4Val,c2h2Val,c2h4Val,o2Val,temperature' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

+ 1 - 0
src/views/analysis/warningAnalysis/overlimitAlarm/overlimitAlarm.data.ts

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 23 - 6
src/views/analysis/warningAnalysis/overlimitAlarmOut/index.vue

@@ -19,9 +19,12 @@
         <template #action="{ record }">
           <div class="action-buttons">
             <!-- 操作按钮 -->
-            <button @click="openModal(record)" class="resolved-btn" title="解决">
+            <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
               <SvgIcon name="solved" />
             </button>
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
           </div>
         </template>
         <template #resetBefore>
@@ -33,13 +36,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -69,6 +72,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -207,7 +211,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -233,6 +237,19 @@
     boardData.value[4].value = result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filterout: 'coValOut,o2ValOut,temperatureOut' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

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

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {
@@ -54,7 +55,7 @@ export const columns: BasicColumn[] = [
   },
   {
     title: 'CO浓度(ppm)',
-    dataIndex: 'coVal',
+    dataIndex: 'coValOut',
     width: 100,
   },
   // {
@@ -64,12 +65,12 @@ export const columns: BasicColumn[] = [
   // },
   {
     title: 'O2浓度(%)',
-    dataIndex: 'o2Val',
+    dataIndex: 'o2ValOut',
     width: 100,
   },
   {
     title: '温度(℃)',
-    dataIndex: 'temperature',
+    dataIndex: 'temperatureOut',
     width: 100,
   },
   {

+ 23 - 6
src/views/analysis/warningAnalysis/pressureDiffAnalysis/index.vue

@@ -23,9 +23,12 @@
               <span class="action-text">详情</span>
             </button> -->
             <!-- 已解决按钮 -->
-            <button @click="openModal(record)" class="resolved-btn" title="解决">
+            <button @click="openModal(record)" class="resolved-btn action-btn" title="解决">
               <SvgIcon name="solved" />
             </button>
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
           </div>
         </template>
         <template #resetBefore>
@@ -37,13 +40,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -84,6 +87,7 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -230,7 +234,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -256,6 +260,19 @@
     boardData.value[4].value = result.alarmLevel4;
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'sourcePressure' },
+    });
+  }
 </script>
 
 <style lang="less" scoped>

+ 1 - 0
src/views/analysis/warningAnalysis/pressureDiffAnalysis/pressureDiffAnalysis.data.ts

@@ -40,6 +40,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 27 - 8
src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/index.vue

@@ -18,9 +18,14 @@
       <BasicTable @register="registerTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
         <!-- 核心:判断record是否有有效数据,无则显示- -->
         <template #action="{ record }">
-          <button @click="openModal(record)" class="resolved-btn" title="解决">
-            <SvgIcon name="chart" />
-          </button>
+          <div class="action-buttons">
+            <button @click="openModal(record)" class="action-btn resolved-btn" title="解决">
+              <SvgIcon name="details" />
+            </button>
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
+          </div>
         </template>
         <template #empty>
           <!-- 无数据时显示-,样式居中对齐 -->
@@ -32,13 +37,13 @@
     <TabPane tab="历史数据" key="history">
       <!-- 历史数据表格 -->
       <BasicTable @register="registerHistoryTable" :scroll="{ x: 'max-content' }" :style="{ padding: 0 }">
-        <!-- <template #action="{ record }">
+        <template #action="{ record }">
           <div class="action-buttons">
-            <button @click="openModal(record, 'history')" class="action-btn">
-              <SvgIcon name="details" />
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
             </button>
           </div>
-        </template> -->
+        </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXls"> 导出 </a-button>
         </template>
@@ -67,6 +72,7 @@
   import { useInitForm } from '../../common/analysis';
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { useRouter } from 'vue-router';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -204,7 +210,7 @@
       useSearchForm: true,
       bordered: true,
       showIndexColumn: true,
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/alarm/exportProvinceAlarmHistory',
@@ -240,6 +246,19 @@
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2 + result.alarmLevel3 + result.alarmLevel4;
   }
 
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,ch4Val,c2h2Val,c2h4Val,o2Val' },
+    });
+  }
+
   // const { pause, resume } = useIntervalFn(() => reload({ silence: true }), 60000);
 </script>
 

+ 1 - 0
src/views/analysis/warningAnalysis/sealRiskJudgeAnalysis/sealRiskJudgeAnalysis.data.ts

@@ -41,6 +41,7 @@ export const columns: BasicColumn[] = [
   {
     title: '老空区永久密闭名称',
     dataIndex: 'devicePos',
+    fixed: 'left',
     width: 200,
   },
   {

+ 1 - 1
src/views/dashboard/basicInfo/dataQuality/index.vue

@@ -50,7 +50,7 @@
             </button>
           </Popconfirm>
           <button @click="handleGoToPage(record)" class="action-btn" title="监测详情">
-            <SvgIcon name="details" />
+            <SvgIcon name="database" />
           </button>
         </template>
       </BasicTable>

+ 2 - 2
src/views/dashboard/basicInfo/problemReport/index.vue

@@ -93,7 +93,7 @@
         </template>
         <template #action="{ record }">
           <button @click="handleOpenModal(record, 'view')" class="action-btn" title="问题详情">
-            <SvgIcon name="details" />
+            <SvgIcon name="database" />
           </button>
         </template>
         <template #form-mine-cascader>
@@ -176,7 +176,7 @@
   // 实例化矿井Store
   const mineStore = useMineDepartmentStore();
 
-  const { goafOptions, goafId, innerValue, initGoafOptions } = useInitForm({ unlinkGoafId: true });
+  const { goafOptions, goafId, innerValue, initGoafOptions } = useInitForm({ unlink: true });
 
   // 响应式数据
   const activeKey = ref('unresolved'); // 激活的Tab键

+ 1 - 0
src/views/monitor/sealedMonitor/hooks/form.ts

@@ -34,6 +34,7 @@ export function useInitForm() {
   function initGoafOptions(deptId) {
     return getGoafSelectOption({ deptId }).then(({ options, defaultValue }) => {
       goafOptions.value = options;
+      if (options.some((e) => e.id === goafId.value)) return;
       goafId.value = defaultValue;
     });
   }

+ 29 - 8
src/views/monitor/sealedMonitor/index.vue

@@ -6,9 +6,14 @@
       <!-- 实时数据表格 -->
       <BasicTable style="padding: 0" @register="registerRealtimeTable">
         <template #action="{ record }">
-          <button @click="openModal(record)" class="action-btn" title="详情">
+          <div class="action-buttons">
+            <button @click="openModal(record)" class="action-btn" title="详情">
+              <SvgIcon name="details" />
+            </button>
+            <!-- <button @click="openModal(record)" class="action-btn" title="详情">
             <SvgIcon name="chart" />
-          </button>
+          </button> -->
+          </div>
         </template>
         <template #resetBefore>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="onExportXlsTime"> 导出 </a-button>
@@ -25,11 +30,13 @@
         <template #form-goaf-select>
           <a-select v-model:value="goafId" :options="goafOptions" placeholder="请选择" />
         </template>
-        <!-- <template #action="{ record }">
-          <button @click="openModal(record)" class="action-btn">
-            <SvgIcon name="details" />
-          </button>
-        </template> -->
+        <template #action="{ record }">
+          <div class="action-buttons">
+            <button @click="handleGoToPageQuery(record, '/warningAnalysis/connectAnalysis')" class="action-btn" title="智能分析数据">
+              <SvgIcon name="chart" />
+            </button>
+          </div>
+        </template>
       </BasicTable>
     </TabPane>
   </Tabs>
@@ -52,6 +59,7 @@
   import { useIntervalFn } from '@vueuse/core';
   import { useInitForm } from './hooks/form';
   import { modalDetailsData } from './monitor.data';
+  import { useRouter } from 'vue-router';
   // import { getGoafList } from '../../system/algorithm/algorithm.api';
 
   // 激活的Tab页签
@@ -150,7 +158,7 @@
       bordered: true,
       showIndexColumn: false,
       scroll: { x: 'max-content' },
-      showActionColumn: false,
+      // showActionColumn: false,
     },
     exportConfig: {
       url: '/province/device/exportGoafHistory',
@@ -178,6 +186,19 @@
     // }
     pause();
   };
+
+  const router = useRouter();
+  /**
+   * 通用页面跳转方法
+   * @param record 当前行数据
+   * @param path 目标路径
+   */
+  function handleGoToPageQuery(record: any, path: string) {
+    router.push({
+      path,
+      query: { deptId: record.deptId, goafId: record.goafId },
+    });
+  }
 </script>
 
 <style lang="less" scoped></style>