Skip to content
目录

组件升级指南

1、关于数据仓库的改动

如果项目中没有使用到vuex中的module模块,可以使用Vue.observable代替vuex,在index.js中导出普通对象即可。

js
// store/index.js
import state from './state';
import mutations from './mutations';
import * as actions from './actions';
import * as getters from './getters';

export default {
    state,
    mutations,
    actions,
    getters
}

同时,在使用到mapGetters、mapMutations时,要去掉对应的module名

js
...mapGetters("login",["userInfo"])=>...mapGetters(["userInfo"])

如果使用到了vuex中的module模块,在index.js中导出vuex实例即可(按照正常的vuex方式使用)

如果模块中使用了命名空间namespaced:true,使用vuex中的相关的模块时就需要加上模块名称了。(登录模块可以不加,组件内有默认值),为了保证数据隔离,自定义模块和man.js中的namcespace请配置为true。

特别注意

Vue.observable只能实现简单的数据响应,让传入的对象变成可响应的,但是没法按照module来做隔离,而且Vue.observable中的数据在vue devtool中无法跟踪调试,不方便排查,所以还是建议直接使用的vuex来做数据存储。

2、关于用户中台相关接口的改动


  • 用户中台接口主要包括获取权限菜单、验证码、登录、修改密码、退出等。
  • 老版本这些公共接口都放在utils/interface.js中,然后通过在main.js中serviceMap配置对应的请求映射,再在页面中引入调用相关的方法。
  • 而在新版本这些公共接口直接封装在actions中,不需要在serviceMap中配置,在页面直接通过mapActions引入调用即可。

3、多服务配置

一般情况下,后台管理项目只用到了两种接口服务,用户中台接口和项目接口,项目接口固定为各环境变量中的VUE_APP_BASE_API配置,用户中台接口在main.js中project下面直接配置service即可。 如果使用到多个接口服务,则需要在project的serviceMap中配置多个接口映射。

4、关于接口权限和按钮权限


  • 在开发联调阶段,一般都是本地mock菜单数据,在列表tableConfig中通过url配置接口地址;
  • 在其他环境,tableConfig中的url需要换成moduleName配置,并且在data中配置moduleName,页面中的请求地址全部通过module获取;
  • 在操作按钮上通过powerLiist.opName判断是否显示。

5、登录、忘记密码、退出操作

这些操作公共库中已有封装相关的组件和方法,在项目中直接替换成组件和方法即可。