CRMEB v4 前端添加頁面

2022-04-07 14:12 更新

側(cè)邊欄菜單 sider.js 配置

側(cè)邊菜單一般較多,所以建議拆分模塊,便于維護。仍然以上一篇的dashboard為例,創(chuàng)建文件src/menu/modules/dashboard.js

  1. // src/menu/modules/dashboard.js
  2. const pre = '/dashboard/';
  3. export default {
  4. path: '/dashboard',
  5. title: 'Dashboard',
  6. header: 'home',
  7. custom: 'i-icon-demo i-icon-demo-dashboard',
  8. children: [
  9. {
  10. path: `${pre}console`,
  11. title: '主控臺'
  12. },
  13. {
  14. path: `${pre}monitor`,
  15. title: '監(jiān)控頁'
  16. }
  17. ]
  18. }

添加路由 /router/modules 模塊,在 /router/routes.js 文件中 children添加模塊,例如添加 product 模塊路由

  1. import BasicLayout from '@/layouts/basic-layout';
  2. const pre = 'product_';
  3. export default {
  4. path: '/admin/product',
  5. name: 'product',
  6. header: 'product',
  7. meta: {
  8. // 授權(quán)標識
  9. auth: ['admin-store-index']
  10. },
  11. redirect: {
  12. name: `${pre}productList`
  13. },
  14. component: BasicLayout,
  15. children: [
  16. {
  17. path: 'product_list',
  18. name: `${pre}productList`,
  19. meta: {
  20. title: '商品管理',
  21. auth: ['admin-store-storeProuduct-index'] //鑒權(quán)后臺添加的時候會有唯一標示
  22. },
  23. component: () => import('@/pages/product/productList')
  24. },
  25. {
  26. path: 'product_classify',
  27. name: `${pre}productClassify`,
  28. meta: {
  29. title: '商品分類',
  30. auth: ['admin-store-storeCategory-index']
  31. },
  32. component: () => import('@/pages/product/productClassify')
  33. },
  34. {
  35. path: 'add_product/:id?',
  36. name: `${pre}productAdd`,
  37. meta: {
  38. auth: ['admin-store-storeProuduct-index'],
  39. title: '商品添加'
  40. },
  41. component: () => import('@/pages/product/productAdd')
  42. },
  43. {
  44. path: 'product_reply/:id?',
  45. name: `${pre}productEvaluate`,
  46. meta: {
  47. auth: ['admin-store-storeProuduct-index'],
  48. title: '商品評論'
  49. },
  50. component: () => import('@/pages/product/productReply')
  51. },
  52. {
  53. path: 'product_attr',
  54. name: `${pre}productAttr`,
  55. meta: {
  56. auth: ['admin-store-storeProuduct-index'],
  57. title: '屬性規(guī)則'
  58. },
  59. component: () => import('@/pages/product/productAttr')
  60. }
  61. ]
  62. };

側(cè)邊欄菜單配置項:

  • path:完整的頁面路徑
  • title:菜單標題
  • icon:(選填)菜單圖標,該選項僅支持 iView 內(nèi)置 icon
  • custom:(選填)菜單自定義圖標,該選項可以使用自定義的 iconfont 圖標,使用該選項,不可以設置 icon 選項
  • img:(選填)菜單圖標,該選項設置的是一個具體的圖片文件,使用該選項,不可以設置 icon 與 custom 選項
  • 1.2.0target:當值設置為_blank時,點擊會在新窗口中打開鏈接
  • 1.2.0divided:設置為 true,則菜單折疊時顯示分割線
  • header:隸屬于哪一個頂部菜單,對應于 header.js 中的 name
  • children:子菜單,支持多級嵌套

添加動態(tài)菜單

后臺設置->權(quán)限設置->添加菜單

隱藏菜單

菜單必須要配置,如果不配置,則刷新后菜單欄不會顯示。如果想要隱藏菜單(頂欄或側(cè)邊欄都支持),需要給菜單項配置一個不存在的鑒權(quán)信息來實現(xiàn),比如:

  1. {
  2. path: '/dashboard/console',
  3. title: '主控臺',
  4. auth: ['hidden'] // 不存在的鑒權(quán),所以不會顯示該菜單
  5. }

帶參菜單2.2.0

如果您的路由是帶參的,比如某個商品詳情,這類對應的菜單往往不顯示在側(cè)邊欄里,只顯示到它的父級,因為商品頁會有無數(shù)個,也預先不知道參數(shù)(如 id)。這種情況需要把菜單path設置與帶參路由一致,并隱藏,比如:

  1. {
  2. path: '/product/:id',
  3. title: '商品詳情',
  4. auth: ['hidden']
  5. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號