前端常见问题
App端–后端常见问题
下面是根据app进行区分的,查找的时候请根据App:
1.Base和多租户APP
1.1 线上环境菜单和产品线丢失
- 先查看ui_menu表,找到对应菜单的is_delete字段,判断是否为1,如果为1,改为0,再重启即可;
- 如果is_delete字段值是正确的,判断app_ids字段值是否正确,该值对应的是meta_app表的id,如果不正确,重置种子数据,再重启即可;
- 如果上述数据是正确的,登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限;
- 如果刷新权限,没有效果,查看tenant_permission表的数据是否正确,即app_name是否正确,code是否重复导致,父子级是否正确;
- 如果上述步骤仍然不能解决,可以重启全部容器,其他恢复操作,请参考:产品线与菜单丢失问题
1.2 测试环境数据库迁移到本地,菜单和产品线丢失
- 如果平台租户管理员没有菜单显示,参考别的环境的重置base的种子数据接口,使用postman调用,传参为meta_app中base的id;
- 调用接口重置种子数据成功后,重启服务;
- 如果上述步骤还不能解决问题,请参考1.1问题的排查步骤
1.3 新增或更新的视图不显示
- 查看loadview返回的内容是否正确,如果为null或错误,重置该视图的种子数据;
- 如果返回的内容和后端配置的视图是一致的,请查看isDisplay的字段值是否为true,如果为false代表未授权,需要重新授权;
- 如果授权不生效,查看tenant_permission表是否存在该视图的权限点,根据name进行查询;
- 如果不存在,请点击刷新权限(登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限);
- 如果还不能恢复,请联系项目支持人员进行恢复
1.4 作用域失效
- 首先排查在作用范围选择的模型及字段是否正确,可以查看tenant_action_rule表,根据选择的model_name字段进行查看数据是否正确;
- 目前作用域不支持,作用域字段选择ManyToOne,ManyToMany字段,例如主子表都需要作用域,那么两个表都需要配置相应的作用域;
- 如果上述内容正确,请检查该用户是否分配相应的作用域及是否关联维度;
- 配置信息都是对的,请登录平台租户管理员,在多租户-》多租户管理-》点击同步维度,进行内存数据的同步
1.5 作用域如何开发及使用
1.6 后端视图扩展
1.7 loadView返回结果为null,数据错误或报错
- 重置视图的种子数据;
- 如果重置后无效果,查看后端日志是否有报错,以及排查使用jsonpath扩展后端视图的内容是否正确;
- 如果后端无报错,请查看菜单管理里面对应的模型及视图是否正确
1.8 租户授权失效
- 先检查该App是否安装;
- 如果已安装,请重新取消授权,再次授权试一下;
1.9 普通用户授权失效
- 首先检查在用户角色的权限配置是否分配其权限;
- 如果已分配,可以尝试取消授权,再次授权保存
1.10 新增的视图在用户角色-》权限配置显示的权限名字为null
- 检查视图是否配置name,和最外层的type在同一层级别
1.11 更换模型名字,导致前端页面报错
- 修改菜单视图绑定的模型;
- 修改视图绑定的模型
1.12 更换APP名字,菜单丢失
- delete from tenant_permission where app_name = '旧app的名字'
- 登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限,或重新安装
1.13 平台管理员的账号被锁定,如何处理
- 登录数据库;
- 修改rbac_user表的status为0,login_count为0
1.14 租户管理员的账号被锁定,如何处理
- 登录平台租户管理员的账号;
- 在多租户-》租户管理进行解锁
1.15 普通用户的账号被锁定,如何处理
- 登录相应的租户管理员账号;
- 在用户权限-》用户管理,选择相应的用户账号进行解锁
1.16 前端扩展包不生效,如何处理
- 打开F12查看prepareListApps接口,根据前端app的名字找到其返回内容,对比和正常app返回的内容,如果内容格式不同,即为前端扩展包解压失败导致;
- 方法一:下载下来前端扩展包,在本地重新解压,压缩,上传,上架,更新;
- 方法二:如果方法一没有效果,cd /usr/share/nginx/html/umdComps, rm -rf tech-mbm-common tech-mbm-common.zip,然后在meta_app表将该app的md5置为null,点击更新
1.16 用户绑定多个角色,只显示个别角色的菜单
- select * from rbac_user_prefer where user_id = '' and sign_type = 'CURRULE';
- 查看sign_content的内容,保存的角色是否为当前已授权的角色id