云尚办公BUG解决

角色管理前端

1.登录不跳转

将原本的mock服务器改到本地(localhost端口后)发现服务器返回200,但是登录不跳转的情况,寻找问题两小时后终于找到了解决方案:

云尚办公BUG解决_第1张图片

Result类中返回的应该是data而不是date,在vue-admin-template中接收的数据都是用的data所以导致了登录返回成功,却不跳转的问题。

2.分页插件点击不跳转

之前用element的时候并没有出现这个问题,猜测可能试导入的版本不是最新版本,或者其他问题导致的,查阅后得到

云尚办公BUG解决_第2张图片
// 在current-page后加入.sync
:current-page.sync="currentPage"

3.删除最后一页的所有数据后页面不跳转至前一页

删除最后一页的所有数据后页面不跳转至前一页,而是展示No Data,log后发现currentPage没有改变。也是一个之前没碰到过的BUG。

云尚办公BUG解决_第3张图片

在删除后进行一个简单的逻辑判断,判断按照逻辑应该存在的页数 和 当前变量存储的页数,进行比较,即可判断是否需要更新当前页。

        // 计算出一共有多少页
        this.totalPage = Math.ceil((this.total - 1) / this.pageSize)
        // 当前页码数大于了总页码数,就进行如下处理
        if (this.currentPage > this.totalPage) {
          this.currentPage = this.totalPage
          this.fetchData()
        }

4.批量删除最后一页跳转问题

        // 计算出一共有多少页
        this.totalPage = Math.ceil((this.total - this.selections.length) / this.pageSize)
        // 当前页码数大于了总页码数,就进行如下处理
        if (this.currentPage > this.totalPage) {
          this.currentPage = this.totalPage
          this.fetchData()
        }

和删除单条记录相似,主要是删除后总页数的更新

用户管理

1.SysUser::getUsername报错

云尚办公BUG解决_第4张图片

如图所示,爆了红,简单排查后发现是在new之后快捷键生成变量名时,自动生成的泛型出现了问题,自动生成的是Object而代码中需要的是实体类的泛型

LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();

将传入的泛型修改为SysUser后即可成功

菜单管理

  1. 树形查询

树形菜单结构分析_qq_53303697的博客-CSDN博客

2.登录权限管理

(权限管理)根据登录用户角色权限获取对应菜单_qq_53303697的博客-CSDN博客

前端权限对接

1.登录不跳转问题

在根据md文档修改完前端代码逻辑之后,点击登录无法登录。

网络请求是正常发送和响应的,但是分析了后端程序代码逻辑上应该是正确的

云尚办公BUG解决_第5张图片

根据前端报错,发现是permission中的问题,定位到代码如下

云尚办公BUG解决_第6张图片
云尚办公BUG解决_第7张图片
云尚办公BUG解决_第8张图片

发现menu属性接收的是routers属性,但是我们分析后发现

返回的是router所以报错,将后端代码改为routers即可

云尚办公BUG解决_第9张图片

2. 创建文件夹

文档中遗漏了一些文件夹的创建,导致了登录时候会报错,自己额外加上即可

云尚办公BUG解决_第10张图片

3.系统管理中没有任何菜单

云尚办公BUG解决_第11张图片

如图所示,只有系统管理中没有任何的子菜单,但是其他管理中都有,同时在网络请求info中也没有children的数据,那么就排除了前后端代码逻辑的问题,一定是数据库数据存储错误。

云尚办公BUG解决_第12张图片

经过对parent_id的分析,我发现一开始将系统管理的id设置为了1,可能是一不小心设置的,将id改为2后,即可正常显示。

4.Redis报错

之前学习过Redis,再项目视频中使用的是redisTemplate,我的建议是使用StringRedisTemplate,所以我将所有的redisTemplate都改为了StringRedisTemplate,但是在启动项目的时候出现报错如下:

云尚办公BUG解决_第13张图片
云尚办公BUG解决_第14张图片

看了报错后,简单分析是stringRedisTemplate的注入出现了问题。显而易见的问题出来了找不到commons pool2,可能是因为stringRedisTemplate和这个连接池的某种绑定?不清楚,不过在翻看之前的Redis学习项目中确实是这样引入的,同时百度后发现另一种解决方案,这边提供两种。

  1. 引入commons-pool2依赖

        
            org.apache.commons
            commons-pool2
        

2.引入RedisCilent

        
        
            redis.clients
            jedis
        

Something Todo

  1. 视频中将Bean转换为实体类非常的丑陋,后续重构此模块

云尚办公BUG解决_第15张图片
  1. 对于token的过期,退出有待完善

token过期、token自动续约、退出token失效的完善主要再Redis中完成。

  1. 权限完善

后端的每个接口都需要加上对权限的判断,实例如下

云尚办公BUG解决_第16张图片

前端的按钮也需要进行权限的判断,实例如下:

云尚办公BUG解决_第17张图片

项目改造与完善

有打算写入毕设或建立 需要更加完善 可以私信大大哦!

你可能感兴趣的:(bug)