当前位置:   article > 正文

EL-ADMIN单模块操作

el-admin

前言

基于对应专栏前一篇继续写,实现eladmin的CRUD功能。假设已经将redis、后台、前端都正产启动了。

创建数据表

先新建一个数据表,基于最前面几篇介绍javamail获取邮箱简历,创建一个表,维护所有相关的邮箱账号密码,方便定时任务逐个邮箱获取邮件。

创建的表email_account:
在这里插入图片描述
其中,创建日期和更新日期使用了datetime格式,框架支持自动生成这两个数据;添加了是否删除代码,不使用物理删除形式,所以框架生成的删除功能需要都改成更新(is_delete字段更新为1)。

生成代码

左侧目录系统工具–代码生成,点开以后可以看到上面创建的数据表email_account,点击配置。
在这里插入图片描述

配置页面有上下两部分,上面是字段的配置,下面是的生成的配置。
字段配置中:

字段描述:从数据库读取的备注,如果数据库维护的好,这里就省事了
列表:列表要查询展示哪些字段,比如不展示更新时间和是否删除,则直接取消勾选
表单:添加和编辑的时候对应的字段,我取消掉了主键、两个时间、删除标志
表单类型:查询条件是输入框还是日期框等情况
查询方式:精准查询、模糊查询等
日期注解:创建时候、更新时候是否更新字段
关联字段:使用配置好的字段数据,这个后面再单独介绍
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

生成配置:

作者名称:会显示在代码注释里,作者是谁
模块名称:就是自己Module的名称
置于包下:生成代码对应的包名
接口名称:生成的swagger会使用这个名称显示
前端路径:可以找到自己前端代码,看下要放到哪里,一般是views下新建一个目录,我使用的是 /Users/admin/Documents/workspace/eladmin-web/src/views/xingchenlie/basedata/
去表前缀:可以为空
是否覆盖:选择否,因为生成代码的时候,前端vue文件命名都是index.vue,如果多个文件放到views下同一个文件夹中,需要把后面的手动重命名,所以不要覆盖,不然之前的就没了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

填写完成后点击保存,然后看到字段配置上方绿色按钮是生成&保存,点击。然后返回到代码生成列表,点击下载。

代码移动

生成代码压缩包解压后又两个文件夹,分别对应前端和后端代码。

前端代码:如果配置的时候填写的路径没有文件,那么前端代码可以不用管了,因为刷新前端代码会发现文件已经自动生成了。但是这里有个问题,如果配置的文件夹(本例是views下的xingchenglie/basedata/)已经有了index.vue,那么这个文件就没有办法自动生成,需要从代码里找到index.vue重命名,比如emailAccount.vue,然后复制到对应项目文件夹中。
其他的文件,诸如调用的js等都会自动生成。

后端代码:一步步点开,从java下目录点击后复制(如果没有修改包名,文件夹名称就是me),然后粘贴到项目的src/main/java文件夹中。
如果已经有这个包了,只要没有java文件,提示是否覆盖的时候直接点是。复制后代码样式:
在这里插入图片描述
代码移动完成后,前端的无需重启,会自动刷新部署上;后端Java的需要重启一下。必须重启,不然配置的菜单也不能访问。

配置菜单

左侧目录系统管理–菜单管理
在这里插入图片描述
点击添加,先给自己的业务添加一个目录,名称用招聘管理,然后点击确定。
在这里插入图片描述
在已经创建的目录里面再添加个菜单,名称就用邮箱账号。其中组件路径输入的是生成代码修改过的vue文件位置,比如本例的是xingchenglie/basedata/emailAccount,如果没有修改过文件名,那么应该是xingchenlie/basedata/index
在这里插入图片描述

角色授权

左侧目录的系统管理–角色管理,点击超级管理员的,然后左右菜单树打开,将邮箱账号的勾选上。并点击保存。
在这里插入图片描述
完成后退出重新登录,或者直接刷新网页,可以看到左侧多出来了对应的功能目录。点击后效果如下
在这里插入图片描述

代码调整

因为本例没有使用物理删除,所以删除部分的代码需要进行修改,改为编辑的逻辑(is_delete修改为1)。如果没有这种逻辑的直接略过本部分。

1、me.zhengjie.xingchenlie.basedata.service.dto.EmailAccountQueryCriteria.java
增加请求参数is_delete=0,这样查询出来的都是没有删除的数据。

package me.zhengjie.xingchenlie.basedata.service.dto;

import lombok.Data;
import java.util.List;
import me.zhengjie.annotation.Query;

/**
* @author lootaa
* @date 2022-05-08
**/
@Data
public class EmailAccountQueryCriteria{

    /** 模糊 */
    @Query(type = Query.Type.INNER_LIKE)
    private String account;
    
    /** 精确 */
    @Query
    private Integer isDelete = 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2、me.zhengjie.xingchenlie.basedata.domain.EmailAccount.EmailAccountServiceImpl
修改添加(is_delete赋值为0)、删除(使用更新逻辑)方法

    @Override
    @Transactional(rollbackFor = Exception.class)
    public EmailAccountDto create(EmailAccount resources) {
        Snowflake snowflake = IdUtil.createSnowflake(1, 1);
        resources.setZid(snowflake.nextId()); 
        resources.setIsDelete(0);
        return emailAccountMapper.toDto(emailAccountRepository.save(resources));
    }
        @Override
    public void deleteAll(Long[] ids) {
        for (Long zid : ids) {
//        	emailAccountRepository.deleteById(zid);
        	EmailAccount emailAccount = emailAccountRepository.findById(zid).orElseGet(EmailAccount::new);
        	emailAccount.setIsDelete(1);
            emailAccountRepository.save(emailAccount);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

代码调整后需要重启后台。

最终实现

可以实现数据的CRUD导出等操作,其中样式如果不美观可以对vue文件进行调整。
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/367923
推荐阅读
相关标签
  

闽ICP备14008679号