Bladeren bron

feature: add pathToRegexp to compile path

Pan 6 jaren geleden
bovenliggende
commit
8c0668d0d3
2 gewijzigde bestanden met toevoegingen van 12 en 1 verwijderingen
  1. 1 0
      package.json
  2. 11 1
      src/components/Breadcrumb/index.vue

+ 1 - 0
package.json

@@ -50,6 +50,7 @@
50 50
     "node-sass": "^4.7.2",
51 51
     "optimize-css-assets-webpack-plugin": "5.0.0",
52 52
     "ora": "3.0.0",
53
+    "path-to-regexp": "2.4.0",
53 54
     "portfinder": "1.0.16",
54 55
     "postcss-import": "12.0.0",
55 56
     "postcss-loader": "2.1.6",

+ 11 - 1
src/components/Breadcrumb/index.vue

@@ -10,6 +10,8 @@
10 10
 </template>
11 11
 
12 12
 <script>
13
+import pathToRegexp from 'path-to-regexp'
14
+
13 15
 export default {
14 16
   data() {
15 17
     return {
@@ -26,7 +28,15 @@ export default {
26 28
   },
27 29
   methods: {
28 30
     getBreadcrumb() {
29
-      let matched = this.$route.matched.filter(item => item.name)
31
+      const { params } = this.$route
32
+      let matched = this.$route.matched.filter(item => {
33
+        if (item.name) {
34
+          // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
35
+          var toPath = pathToRegexp.compile(item.path)
36
+          item.path = toPath(params)
37
+          return true
38
+        }
39
+      })
30 40
       const first = matched[0]
31 41
       if (first && first.name !== 'dashboard') {
32 42
         matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)