Просмотр исходного кода

订单审核查询订单轨迹后返回上级页面设置指定路由

@dongkboy 1 месяц назад
Родитель
Сommit
61e9e0e289
2 измененных файлов с 19 добавлено и 6 удалено
  1. 4 1
      src/views/finance/index.vue
  2. 15 5
      src/views/insurancePolicy/viewDetail.vue

+ 4 - 1
src/views/finance/index.vue

@@ -975,7 +975,10 @@ const handleTrack = (scope) => {
 const viewDetail = (row) => {
   myRouter.push({
     name: 'InsurancePolicyViewDetail',
-    query: row,
+    query: {
+      info:JSON.stringify(row),
+      activeindex: activeName.value
+    }
   })
 }
 // 数据导出// 数据导出

+ 15 - 5
src/views/insurancePolicy/viewDetail.vue

@@ -37,7 +37,7 @@
 
 <script setup lang="ts">
 import api from '@/api'
-import { useRoute, useRouter } from 'vue-router'
+import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router'
 import { ElMessage } from "element-plus";
 import { onMounted, onUnmounted } from 'vue'
 
@@ -47,7 +47,8 @@ const myRouter = useRouter()
 let detailData = ref(undefined)
 
 let moduleName = ref('')
-
+const activeName = ref(myRoute.query.activeindex || '')
+const activeindex = myRoute.query.activeindex
 // 格式化换行符,将 \r\n 和 \r 统一转换为 \n
 const formatLineBreaks = (text) => {
   if (!text) return ''
@@ -105,9 +106,8 @@ const optTypeMAP = (optType) => {
   }
 }
 onBeforeMount(() => {
-  console.log(myRoute.query)
 
-  detailData.value = myRoute.query;
+  detailData.value = JSON.parse(myRoute.query.info);
   console.log(detailData.value)
   if (detailData.value.module && detailData.value.subModule) {
     moduleName.value = `${detailData.value.module}/${detailData.value.subModule}`
@@ -118,6 +118,16 @@ onBeforeMount(() => {
   }
 })
 
+// 离开页面时,将 activeindex 传回上一页
+onBeforeRouteLeave((to) => {
+  if (activeindex && !to.query.activeindex) {
+    return {
+      path: to.path,
+      query: { ...to.query, activeindex: activeindex as string }
+    }
+  }
+})
+
 const handleEscKey = (event: KeyboardEvent) => {
   if (event.key === 'Escape' || event.keyCode === 27) {
     myRouter.back()
@@ -205,4 +215,4 @@ onUnmounted(() => {
     width: 50%;
   }
 }
-</style>
+</style>