linwenxin 1 年間 前
コミット
4fe89ca552

+ 7 - 0
src/components/template/operation_mixin.js

@@ -19,6 +19,13 @@ function hasCommonElements(arr1, arr2) {
 }
 
 export default {
+  data(){
+    return {
+      pageType:this.$route.params.pageType,
+      pageCode:this.$route.params.pageCode,
+      pagePam:this.$route.params.pagePam
+    }
+  },
   methods: {
     optionsEvensAuth(key, obj) {
       var roleItems = this.$route.meta.roleItems

+ 25 - 4
src/layout/components/AppMain.vue

@@ -16,7 +16,8 @@ export default {
   name: 'AppMain',
   data() {
     return {
-      key: 0
+      key: 0,
+      nameKey:""
     }
   },
   computed: {
@@ -24,11 +25,31 @@ export default {
     str() {
       return this.$store.state?.user?.name
     },
-    nameKey() {
-      return this.$store.state.tagsView.visitedViews.find(item => item?.name === this.$route?.name)?.nameKey || Math.floor(Date.now() / 1000) + ""
+  },
+  watch: {
+    $route(val, oval) {
+      this.setNameKey()
     },
   },
-
+  created(){
+    this.setNameKey()
+  },
+  methods:{
+    setNameKey(){
+      var { name,params } = this.$route
+      var {pageType,pageCode,pagePam} =params
+      var item = this.$store.state.tagsView.visitedViews.find(item => {
+        return !!~item?.nameKey.indexOf(`${name}_${pageType}_${pageCode}_${pagePam}`)
+      })
+      if(!item){
+        setTimeout(()=>{
+          this.setNameKey()
+        },50)
+      }else{
+        this.nameKey = item.nameKey
+      }
+    }
+  }
 }
 </script>
 

+ 3 - 2
src/layout/components/TagsView/index.vue

@@ -111,9 +111,10 @@ export default {
       }
     },
     addTags() {
-      const { name } = this.$route
+      const { name,params } = this.$route
+      const {pageType,pageCode,pagePam} =params
       if (name) {
-        this.$store.dispatch('tagsView/addView', {...this.$route, nameKey:`${this.$route.name}_${Math.floor(Date.now() / 1000)}`})
+        this.$store.dispatch('tagsView/addView', {...this.$route, nameKey:`${name}_${pageType}_${pageCode}_${pagePam}_${Math.floor(Date.now() / 1000)}`})
       }
       return false
     },

+ 2 - 2
src/permission.js

@@ -159,7 +159,7 @@ function buildRoute(route, parentUrl = '', bool = true) {
       item.meta.roleItems = roleItems
 
       if (!pages.find(ite => ite.path === item.path)) {
-        item.path = `${item.path}${bool ? '' : ''}`
+        item.path = `${item.path}${bool?'/:pageType?/:pageCode?/:pagePam?':''}`
         pages.push(item)
       }
 
@@ -181,7 +181,7 @@ function buildRoute(route, parentUrl = '', bool = true) {
         item.component = _import(`${fullUrl}/index`)
         item.component.name = item.name
         if (!pages.find(ite => ite.path === item.path)) {
-          item.path = `${item.path}${bool ? '' : ''}`
+          item.path = `${item.path}${bool?'/:pageType?/:pageCode?/:pagePam?':''}`
           pages.push(item)
         }