[vben] 2024/7/8 21:13:18
原有登录页面在src\views\sys\login\Login.vue,可以在默认路由配置页面src\router\routes\index.ts中修改登录页的路由。这里暂不修改,直接修改原有的登录功能。
首先对接用户名密码登录,在src\views\sys\login\LoginForm.vue页面中调整。
登录、登出、获取用户信息功能(对接api)在src\store\modules\user.ts中调整
获取菜单、按钮权限(对接api)在src\store\modules\permission.ts中调整
调整缓存用户信息,vben中有一个userinfo接口,在types\store.d.ts中调整。需要注意,登录接口返回对象接口在src\api\sys\model\userModel.ts中的GetUserInfoModel,不是同一个地方,但是字段差不多,少了homepath。如果需要调整登录接口及返回数据 ,则需要调整这两个地方。不想那么麻烦就直接用any。如果有改动types\store.d.ts中的userinfo接口,则需要全局找找其他调用使用到这个接口的地方。
vben中如果登录用户成功后,就会立马获取菜单(调用获取菜单接口),此处流程在src\store\modules\permission.ts。
获取菜单处理在buildRoutesAction中实现,我们使用的是后台模式,所以找到case PermissionModeEnum.BACK:代码就行了,前面的代码可以不用管。
在调用获取菜单之前,还会获取权限码(按钮权限)的接口changePermissionCode,如果在获取菜单的时候返回菜单及权限码,那么需要在这里统一处理下。
调用api的接口getMenuList在src\api\sys\menu.ts中,这里调用api返回限制数据格式为getMenuListResultModel,在src\api\sys\model\menuModel.ts中定义的接口。这里感觉有点绕,接口返回数据的泛型数据结构和处理菜单的数据结构不一致。因为获取到菜单数据后,又转成了AppRouteRecordRaw数据,定义在src\router\types.ts中。
不要忘记引用扩展出来的接口:
到这一步基本调整完毕,点击登录即可。