From acebaeae0c57b7300e2aabe4733ec3c2580d0838 Mon Sep 17 00:00:00 2001
From: Pan <panfree23@gmail.com>
Date: Wed, 6 Dec 2017 14:18:28 +0800
Subject: [PATCH] perf(i18n): add generateTitle to utils

---
 src/components/Breadcrumb/index.vue                 | 6 +++---
 src/utils/i18n.js                                   | 3 +++
 src/views/layout/components/Sidebar/SidebarItem.vue | 6 +++---
 src/views/layout/components/TagsView.vue            | 5 +++--
 4 files changed, 12 insertions(+), 8 deletions(-)
 create mode 100644 src/utils/i18n.js

diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
index e50163c1..a30fe0cd 100644
--- a/src/components/Breadcrumb/index.vue
+++ b/src/components/Breadcrumb/index.vue
@@ -10,6 +10,8 @@
 </template>
 
 <script>
+import { generateTitle } from '@/utils/i18n'
+
 export default {
   created() {
     this.getBreadcrumb()
@@ -25,6 +27,7 @@ export default {
     }
   },
   methods: {
+    generateTitle,
     getBreadcrumb() {
       let matched = this.$route.matched.filter(item => item.name)
       const first = matched[0]
@@ -32,9 +35,6 @@ export default {
         matched = [{ path: '/dashboard', meta: { title: 'dashboard' }}].concat(matched)
       }
       this.levelList = matched
-    },
-    generateTitle(title) {
-      return this.$t('route.' + title)
     }
   }
 }
diff --git a/src/utils/i18n.js b/src/utils/i18n.js
new file mode 100644
index 00000000..6c9a8689
--- /dev/null
+++ b/src/utils/i18n.js
@@ -0,0 +1,3 @@
+export function generateTitle(title) {
+  return this.$t('route.' + title) // $t :this method from vue-i18n ,inject in @/lang/index.js
+}
diff --git a/src/views/layout/components/Sidebar/SidebarItem.vue b/src/views/layout/components/Sidebar/SidebarItem.vue
index 4c5a3f5a..c948748d 100644
--- a/src/views/layout/components/Sidebar/SidebarItem.vue
+++ b/src/views/layout/components/Sidebar/SidebarItem.vue
@@ -32,6 +32,8 @@
 </template>
 
 <script>
+import { generateTitle } from '@/utils/i18n'
+
 export default {
   name: 'SidebarItem',
   props: {
@@ -40,9 +42,7 @@ export default {
     }
   },
   methods: {
-    generateTitle(title) {
-      return this.$t('route.' + title)
-    }
+    generateTitle
   }
 }
 </script>
diff --git a/src/views/layout/components/TagsView.vue b/src/views/layout/components/TagsView.vue
index 134efc5f..704f274d 100644
--- a/src/views/layout/components/TagsView.vue
+++ b/src/views/layout/components/TagsView.vue
@@ -1,7 +1,7 @@
 <template>
   <scroll-pane class='tags-view-container' ref='scrollPane'>
     <router-link ref='tag' class="tags-view-item" :class="isActive(tag)?'active':''" v-for="tag in Array.from(visitedViews)" :to="tag.path":key="tag.path">
-      {{$t('route.'+tag.title)}}
+      {{generateTitle(tag.title)}}
       <span class='el-icon-close' @click='closeViewTags(tag,$event)'></span>
     </router-link>
   </scroll-pane>
@@ -9,6 +9,7 @@
 
 <script>
 import ScrollPane from '@/components/ScrollPane'
+import { generateTitle } from '@/utils/i18n'
 
 export default {
   components: { ScrollPane },
@@ -21,6 +22,7 @@ export default {
     this.addViewTags()
   },
   methods: {
+    generateTitle,
     closeViewTags(view, $event) {
       this.$store.dispatch('delVisitedViews', view).then((views) => {
         if (this.isActive(view)) {
@@ -61,7 +63,6 @@ export default {
         }
       })
     }
-
   },
   watch: {
     $route() {
-- 
GitLab