在線預覽vue
components/Index.vue
文件第 31 行代碼的 v-show="isShowAsideTitle"
會形成側邊欄收縮時二級菜單隱藏,目前已修復。ios
增長頁面進度條git
在頁面跳轉時增長進度條github
修復路由表衝突問題ajax
退出當前用戶,換帳號從新登錄時,上個帳號和如今的帳號路由表會有衝突的問題,解決辦法是在退出登錄時重置路由表。vue-router
具體實現請查看 router/index.js
、Login.vue
和 Index.vue
的退出登錄回調方法。vuex
優化動態添加路由功能npm
之前的動態路由功能並不完善,首先要將全部的路由都添加到路由表裏,而後根據後臺返回的菜單欄數據來生成菜單。axios
致使的問題就是,雖然有頁面在菜單欄上不顯示,但因爲已經添加到路由表裏了,因此能夠在地址欄上手動輸入在菜單欄上不存在(但在路由表存在)的頁面,進而能夠越權訪問。緩存
如今除了必要的頁面須要在一開始添加到路由表裏,其餘的頁面均可以根據後臺數據來自動生成。並且菜單欄上沒有的頁面,在地址欄上輸入地址也是訪問不了的。
另外,若是在未登錄時要訪問某一指定頁面,會重定向到登錄頁,登錄成功後會自動跳到這個指定頁面。
具體實現請看 permission.js
和 util
目錄下的 index.js
文件
增長404頁面
假如跳轉到一個不存在的頁面時會重定向到404頁面
增長麪包屑功能
用於展現當前頁面的路徑
增長權限控制功能
若是未登錄,訪問全部頁面都重定向到登錄頁
增長動態菜單欄功能
icon
使用的是iview
組件的icon
組件。
數據格式:
// 左側菜單欄數據 menuItems: [ { name: 'Home', // 要跳轉的路由名稱 不是路徑 size: 18, // icon大小 非必填 type: 'md-home', // icon類型 非必填 text: '主頁' // 文本內容 }, { text: '二級菜單', type: 'ios-paper', children: [ { type: 'ios-grid', name: 'T1', text: '表格' }, { text: '三級菜單', type: 'ios-paper', children: [ { type: 'ios-notifications-outline', name: 'Msg', text: '查看消息' }, { type: 'md-lock', name: 'Password', text: '修改密碼' }, { type: 'md-person', name: 'UserInfo', text: '基本資料', } ] } ] } ]
注意: 組件的名稱和路由的名稱必定要一致,例如 Home.vue
組件名稱 name: home
,則在路由文件中也要給它設置爲 name: home
,不然頁面內容不能緩存
// 在router文件中 { path: 'home', name: 'home', component: () => import('../views/Home.vue') } // 在Home.vue中 export default { name: 'home' }
axios
攔截器 實現了ajax
請求前展現loading
請求結束關閉loading
Index
組件通常狀況下只須要傳數據就行 其餘不用關注
市面上有大量的vue後臺管理系統模板 可是功能都太豐富了 並且有不少組件用不上 因此寫了這麼一個最基礎的 只有必要功能的模板
UI庫使用的是iView
有大量的組件可用
// xxx爲你想跳轉的子組件name this.$parent.gotoPage('xxx')
this.gotoPage('userinfo', { id: id, }) // 在userinfo組件裏取參 this.$route.params.id
git clone git@github.com:woai3c/vue-admin-template.git cd vue-admin-template npm i
npm run serve
npm run build