vue后台管理集成管理设想

324 阅读1分钟

背景

公司开发了很多产品,分别对外销售,当购买了A产品的用户也想购买B产品,那就需要将B产品的代码复制到A产品的项目里来完成?那如果可以将每个产品都当作成npm包,购买哪个产品,只需要在main.js里install -> ues。就可以拥有该产品的功能。

要求后台

  1. 后台接口集成,能够互相调用,甚至和前端一样,引入就行了。
  2. 用户权限统一管理,控制返回有权限的功能菜单。

要求前端

  1. 组件化,去除每个页面都需要定义路由这步骤,统一简化

    {path: '/login', name: 'login', component: Login},{path: '/**', name: 'main', component: Main}
    
  2. 也是因为组件化,每个页面对应专门的id(集成后,各个产品里也不可重复),导出npm包temp

    import TempIndexPage from './index/index.vue';const Loading = {    install: function (Vue) {        Vue.component("temp-index-page", TempIndexPage);    },    // mmUI是集成这些页面的框架,同样也是可以封装成npm的包
        load: function (mmUI) {        mmUI.component('temp.index', TempIndexPage, {            title: '模板管理'        });    }};export default Loading;
    
  3. 引入

    import mmUI from 'mmUI'
    import temp from 'temp'
    import router from './router/index';import store from './store/index';
    
    Vue.use(mmUI);mmUI.use(temp);
    mmUI.mount(App, "#app", {    router,    store});window.$mmui = mmUI;
    

大概就这样,已经测试出可行