3
0
Prechádzať zdrojové kódy

[Feat 0000] 全系页面跳转功能更新

houzekong 2 mesiacov pred
rodič
commit
68870c5f5f

+ 2 - 2
src/components/Configurable/hooks/helper.ts

@@ -1,6 +1,6 @@
 import { get, isNil } from 'lodash-es';
 import { openWindow } from '/@/utils';
-import { router } from '/@/router';
+import { advancedRoutePush } from '/@/utils';
 
 /** 根据配置中的 formatter 将文本格式并返回 */
 export function getFormattedText(data: any, formatter: string = '', trans?: Record<string, string>, defaultValue?: any): string {
@@ -56,6 +56,6 @@ export function redirectTo(path?: string) {
   if (path.endsWith('#')) {
     openWindow(path.slice(0, -1));
   } else {
-    router.push(path);
+    advancedRoutePush(path);
   }
 }

+ 18 - 0
src/utils/index.ts

@@ -6,6 +6,9 @@ import { unref } from 'vue';
 import { isObject, isFunction, isString } from '/@/utils/is';
 import Big from 'big.js';
 import dayjs from 'dayjs';
+import { router } from '../router';
+import { useMineDepartmentStore } from '../store/modules/mine';
+import QueryString from 'qs';
 // 代码逻辑说明: 【VUEN-656】配置外部网址打不开,原因是带了#号,需要替换一下
 export const URL_HASH_TAB = `__AGWE4H__HASH__TAG__PWHRG__`;
 
@@ -76,6 +79,21 @@ export function openWindow(url: string, opt?: { target?: TargetContext | string;
   window.open(url, target, feature.join(','));
 }
 
+export function advancedRoutePush(path: string): Promise<any>;
+export function advancedRoutePush(params: { path?: string; query?: any; name?: string }): Promise<any>;
+export function advancedRoutePush(params: { path?: string; query?: any; name?: string } | string) {
+  let query;
+  if (typeof params === 'string') {
+    query = QueryString.parse(params);
+  } else {
+    query = params.query;
+  }
+  if (query && query.deptId) {
+    useMineDepartmentStore().setDepartById(query.deptId);
+  }
+  return router.push(params);
+}
+
 // dynamic use hook props
 export function getDynamicProps<T, U>(props: T): Partial<U> {
   const ret: Recordable = {};

+ 8 - 10
src/views/analysis/warningAnalysis/airLeakStatus/index.vue

@@ -59,7 +59,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -70,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -131,16 +131,15 @@
   const { tableContext, onExportXls } = useListPage({
     tableProps: {
       columns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -171,10 +170,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -222,14 +221,13 @@
     boardData.value[0].value = result.alarmLevel1 + result.alarmLevel2;
   }
 
-  const router = useRouter();
   /**
    * 通用页面跳转方法
    * @param record 当前行数据
    * @param path 目标路径
    */
   function handleGoToPageQuery(record: any, path: string) {
-    router.push({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'sourcePressure' },
     });

+ 8 - 10
src/views/analysis/warningAnalysis/autoFireAnalysis/index.vue

@@ -63,7 +63,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -74,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -154,16 +154,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -194,10 +193,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -247,14 +246,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,co2Val,ch4Val,c2h2Val,c2h4Val,o2Val,temperature' },
     });

+ 8 - 10
src/views/analysis/warningAnalysis/autoFireOutAnalysis/index.vue

@@ -63,7 +63,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -74,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -154,16 +154,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -194,10 +193,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -247,14 +246,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filterout: 'ch4ValOut,coValOut,o2ValOut,temperatureOut' },
     });

+ 8 - 10
src/views/analysis/warningAnalysis/fireAreaJudgeAnalysis/index.vue

@@ -61,7 +61,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -72,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -145,16 +145,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -185,10 +184,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -236,14 +235,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,c2h2Val,c2h4Val,o2Val' },
     });

+ 9 - 10
src/views/analysis/warningAnalysis/overlimitAlarm/index.vue

@@ -61,7 +61,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   // import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -72,7 +72,8 @@
   import { historicalFormSchema } from '/@/views/monitor/sealedMonitor/monitor.data';
   // import { useIntervalFn } from '@vueuse/core';
   import { useListPage } from '/@/hooks/system/useListPage';
-  import { useRoute, useRouter } from 'vue-router';
+  import { useRoute } from 'vue-router';
+  import { advancedRoutePush } from '/@/utils';
 
   const route = useRoute();
   // 激活的Tab页签
@@ -147,16 +148,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -187,10 +187,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -240,14 +240,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,co2Val,ch4Val,c2h2Val,c2h4Val,o2Val,temperature' },
     });

+ 8 - 10
src/views/analysis/warningAnalysis/overlimitAlarmOut/index.vue

@@ -61,7 +61,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   // import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -72,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -145,16 +145,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -185,10 +184,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -238,14 +237,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filterout: 'coValOut,o2ValOut,temperatureOut' },
     });

+ 8 - 10
src/views/analysis/warningAnalysis/pressureDiffAnalysis/index.vue

@@ -76,7 +76,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -87,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -168,16 +168,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -208,10 +207,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -261,14 +260,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'sourcePressure' },
     });

+ 3 - 3
src/views/analysis/warningAnalysis/reportAnalysis/index.vue

@@ -117,15 +117,15 @@
       // columns: historyColumns,
       api: getProvinceAlarmHistory,
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {

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

@@ -60,7 +60,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable, useTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   import MiniBoard from '/@/components/Configurable/detail/MiniBoard.vue';
   import { SvgIcon } from '/@/components/Icon';
   // 引入模拟数据
@@ -72,7 +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';
+  import { advancedRoutePush } from '/@/utils';
 
   // 激活的Tab页签
   const activeTab = ref('realtime');
@@ -144,16 +144,15 @@
     tableProps: {
       columns,
       // columns: historyColumns,
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(params.deptId);
         }
         params.goafId = goafId.value;
         return getProvinceAlarmHistory(params);
       },
       formConfig: {
-        model: { customField: hiscode },
+        model: { deptId: hiscode },
         labelWidth: 120,
         schemas: [
           // {
@@ -184,10 +183,10 @@
           // },
           {
             label: '煤矿名称',
-            field: 'customField',
+            field: 'deptId',
             component: 'MineCascader', // 自定义组件名
             componentProps: {
-              initFromStore: false,
+              initFromStore: true,
               syncToStore: false,
               changeOnSelect: false,
               onChange: (e) => {
@@ -246,14 +245,13 @@
     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({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId, filter: 'coVal,ch4Val,c2h2Val,c2h4Val,o2Val' },
     });

+ 3 - 5
src/views/dashboard/basicInfo/accessStatistics/index.vue

@@ -15,12 +15,11 @@
   import { accessStatisticsColumns } from './access.data';
   import { getGoafAccessCount } from '../basicInfo.api';
   import type { BasicColumn } from '/@/components/Table/src/types/table';
-  import { useRouter } from 'vue-router';
   import SvgIcon from '/@/components/Icon/src/SvgIcon.vue';
   import { ref, watch } from 'vue';
   import { useMineDepartmentStore } from '/@/store/modules/mine';
+  import { advancedRoutePush } from '/@/utils';
 
-  const router = useRouter();
   const deptId = ref();
 
   // 封装接口调用,获取数据后手动添加「总计」行
@@ -104,10 +103,9 @@
    * @param path 目标路径
    */
   function handleGoToPageQuery(record: any, path: string) {
-    const deptId = record.deptId;
-    router.push({
+    advancedRoutePush({
       path,
-      query: { deptId },
+      query: { deptId: record.deptId },
     });
   }
 

+ 2 - 3
src/views/dashboard/basicInfo/closedStatistics/index.vue

@@ -12,16 +12,15 @@
 </template>
 
 <script setup lang="ts">
-  import { useRouter } from 'vue-router';
   import { BasicTable, useTable } from '/@/components/Table';
   import { dataColumns } from './closed.data';
   import { getClosedAccessCount } from '../basicInfo.api';
   import { SvgIcon } from '/@/components/Icon';
   import { useMineDepartmentStore } from '/@/store/modules/mine';
   import { ref, watch } from 'vue';
+  import { advancedRoutePush } from '/@/utils';
 
   // 路由实例
-  const router = useRouter();
   const mineStore = useMineDepartmentStore();
   const deptId = ref();
 
@@ -56,7 +55,7 @@
    */
   function handleGoToPage(record: any, path: string) {
     // 跳转时携带当前煤矿的编号作为参数(根据实际需求调整携带的参数)
-    router.push({
+    advancedRoutePush({
       path,
       // query: {
       //   orderNo: record.orderNo, // 煤矿编号

+ 2 - 4
src/views/dashboard/basicInfo/dataQuality/index.vue

@@ -119,7 +119,6 @@
 
 <script setup lang="ts">
   import { ref, nextTick, computed, onMounted, reactive } from 'vue';
-  import { useRouter } from 'vue-router';
   import { BasicTable } from '/@/components/Table';
   import { useModal } from '/@/components/Modal';
   import { Tabs, TabPane, Popconfirm, message, Modal, DatePicker } from 'ant-design-vue';
@@ -133,9 +132,8 @@
   // import { getDictItemsByCode } from '/@/utils/dict';
   import dayjs, { Dayjs } from 'dayjs';
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { advancedRoutePush } from '/@/utils/index.js';
 
-  // 路由实例
-  const router = useRouter();
   // 实例化矿井Store
   const mineStore = useMineDepartmentStore();
   // 响应式数据
@@ -427,7 +425,7 @@
       }
 
       // 跳转页面(可携带拼接后的矿名/路径等参数)
-      router.push({ path: `/sealed/${minePath}`, query: { id: targetNode.id } });
+      advancedRoutePush({ path: `/sealed/${minePath}`, query: { deptId: targetNode.id } });
     } catch (error) {
       console.error('矿节点定位失败:', error);
       message.error('矿节点定位失败,请稍后重试');

+ 3 - 3
src/views/dashboard/basicInfo/minesInfo/index.vue

@@ -29,7 +29,7 @@
 </template>
 
 <script setup lang="ts">
-  import { useRouter, useRoute } from 'vue-router';
+  import { useRoute } from 'vue-router';
   import { BasicTable } from '/@/components/Table';
   import { SvgIcon } from '/@/components/Icon';
   // 引入动态列/表单配置函数 + 类型
@@ -37,11 +37,11 @@
   import { getMineData } from '../basicInfo.api';
   // 引入字典获取方法
   import { useListPage } from '/@/hooks/system/useListPage';
+  import { advancedRoutePush } from '/@/utils';
   // import { useIntervalFn } from '@vueuse/core';
   // import { useModal } from '/@/components/Modal';
 
   // 路由实例
-  const router = useRouter();
   const route = useRoute();
 
   // ========== 表格注册 ==========
@@ -80,7 +80,7 @@
    */
   function handleGoToPageQuery(record: any, path: string) {
     const deptId = record.deptId;
-    router.push({
+    advancedRoutePush({
       path,
       query: { deptId },
     });

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

@@ -154,7 +154,6 @@
 
 <script setup lang="ts">
   import { ref, nextTick, computed, onMounted, reactive } from 'vue';
-  import { useRouter } from 'vue-router';
   import { BasicTable } from '/@/components/Table';
   import { useModal } from '/@/components/Modal';
   import { Tabs, TabPane, Popconfirm, message, Modal, DatePicker } from 'ant-design-vue';
@@ -170,9 +169,8 @@
   import { useListPage } from '/@/hooks/system/useListPage';
   import { useInitForm } from '/@/views/analysis/warningAnalysis/connectAnalysis/hooks/form';
   import MineCascader from '@/components/Form/src/jeecg/components/MineCascader/MineCascader.vue';
+  import { advancedRoutePush } from '/@/utils/index.js';
 
-  // 路由实例
-  const router = useRouter();
   // 实例化矿井Store
   const mineStore = useMineDepartmentStore();
 
@@ -488,7 +486,7 @@
       }
 
       // 跳转页面(可携带拼接后的矿名/路径等参数)
-      router.push({ path: `/sealed/${minePath}`, query: { id: targetNode.id } });
+      advancedRoutePush({ path: `/sealed/${minePath}`, query: { deptId: targetNode.id } });
     } catch (error) {
       console.error('矿节点定位失败:', error);
       message.error('矿节点定位失败,请稍后重试');

+ 6 - 7
src/views/monitor/sealedMonitor/index.vue

@@ -48,7 +48,7 @@
 <script setup lang="ts">
   import { ref } from 'vue';
   import { BasicTable } from '/@/components/Table';
-  import { Tabs, TabPane, message } from 'ant-design-vue';
+  import { Tabs, TabPane } from 'ant-design-vue';
   // 引入模拟数据
   import { columns, historicalColumns, historicalFormSchema, searchFormSchema } from './monitor.data';
   import HistoricalDetailsModal from './components/HistoricalDetailsModal.vue';
@@ -59,13 +59,14 @@
   import { useIntervalFn } from '@vueuse/core';
   import { useInitForm } from './hooks/form';
   import { modalDetailsData } from './monitor.data';
-  import { useRouter } from 'vue-router';
+  import { advancedRoutePush } from '/@/utils';
   // import { getGoafList } from '../../system/algorithm/algorithm.api';
 
   // 激活的Tab页签
 
   // 处理矿名选择器相关的逻辑
   const { departId, goafOptions, goafId, rawcode, hiscode, route, initGoafOptions } = useInitForm();
+
   const activeTab = ref('realtime');
   const tableQueryParams = ref({}); // 存储表格查询参数的响应式变量
 
@@ -118,10 +119,9 @@
   // 注册历史数据表格
   const { tableContext: ctxHistory, onExportXls } = useListPage({
     tableProps: {
-      api: (params) => {
+      api: async (params) => {
         if (!goafId.value) {
-          message.info('请先选择煤矿及老空区');
-          return Promise.reject();
+          await initGoafOptions(departId);
         }
         params.goafId = goafId.value;
         return getGoafHistory(params);
@@ -187,14 +187,13 @@
     pause();
   };
 
-  const router = useRouter();
   /**
    * 通用页面跳转方法
    * @param record 当前行数据
    * @param path 目标路径
    */
   function handleGoToPageQuery(record: any, path: string) {
-    router.push({
+    advancedRoutePush({
       path,
       query: { deptId: record.deptId, goafId: record.goafId },
     });