返回

适配器模式下eova菜单核心改造优化过程

前端

eova(伊娃管理后台)是一款开源免费的后端管理系统,拥有丰富的功能和组件,可以快速搭建出管理后台系统。vue+iview-admin是一个基于Vue.js和iView的管理后台前端框架,集成了常用的管理后台组件和页面模板,可以快速开发出美观的管理后台系统。

本次改造的核心是将eova的菜单数据适配到iview-admin的菜单组件中,从而实现eova的菜单功能在iview-admin中的完美展现。

改造步骤如下:

  1. 安装必要的依赖
npm install vue-router-layout
npm install vue-eova-menu
  1. 在iview-admin的main.js文件中配置vue-router-layout和vue-eova-menu
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueRouterLayout from 'vue-router-layout'
import VueEovaMenu from 'vue-eova-menu'

Vue.use(VueRouter)
Vue.use(VueRouterLayout)
Vue.use(VueEovaMenu)

const router = new VueRouter({
  routes: []
})

const app = new Vue({
  router
}).$mount('#app')
  1. 在iview-admin的src/router/index.js文件中配置eova的菜单数据
import eovaMenuData from 'vue-eova-menu/data/menu.json'

const routes = [
  {
    path: '/',
    component: VueRouterLayout,
    redirect: '/dashboard',
    children: eovaMenuData
  }
]

export default routes
  1. 在iview-admin的src/components/Sidebar/index.vue文件中使用vue-eova-menu组件
<template>
  <div>
    <vue-eova-menu :menuData="menuData" />
  </div>
</template>

<script>
import { mapState } from 'vuex'
import VueEovaMenu from 'vue-eova-menu'

export default {
  components: {
    VueEovaMenu
  },
  computed: {
    ...mapState({
      menuData: state => state.menu.menuData
    })
  }
}
</script>
  1. 在iview-admin的src/store/modules/menu.js文件中配置eova的菜单数据
import eovaMenuData from 'vue-eova-menu/data/menu.json'

const state = {
  menuData: eovaMenuData
}

const mutations = {
  SET_MENU_DATA: (state, menuData) => {
    state.menuData = menuData
  }
}

const actions = {
  setMenuData({ commit }, menuData) {
    commit('SET_MENU_DATA', menuData)
  }
}

export default {
  state,
  mutations,
  actions
}

经过以上步骤,您就可以将eova的菜单数据适配到iview-admin的菜单组件中,从而实现eova的菜单功能在iview-admin中的完美展现。