Erupt 项目搭建

创建Spring Boot项目

Maven依赖

Spring Boot版本为 2.7.10,erupt版本为 1.12.14

erupt版本要与Spring Boot版本适配,3.x.x版本Spring Boot暂不适用说是

    <properties>
        <erupt.version>1.12.14</erupt.version>
    </properties>
    <dependencies>
        <!--tomcat-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--test测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--MySql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
            <scope>runtime</scope>
        </dependency>

        <!--核心管理模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-admin</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--后台WEB界面-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-web</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!-- ****** 以下模块不需要可以去掉 ****** -->
        <!--erupt-cloud 云节点分布式控制模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-cloud-server</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--任务管理模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-job</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--代码生成器模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-generator</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--服务监控模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-monitor</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--在线接口开发-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-magic-api</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--自定义页面模块-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-tpl</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--element-ui-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-tpl-ui.element-ui</artifactId>
            <version>${erupt.version}</version>
        </dependency>
        <!--velocity-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>

xxxApplication启动类添加注解

import org.springframework.boot.autoconfigure.domain.EntityScan;
import xyz.erupt.core.annotation.EruptScan;

@EruptScan
@EntityScan

 main方法中加入下列代码,启动后自动打开指定页面

        try {
            System.setProperty("java.awt.headless", "false");
            Desktop.getDesktop().browse(new URI("http://localhost:8088"));
        } catch (Exception ignore) {
        }

yml参数配置

server:
  port: 8081
  # 启用 gzip 压缩
  compression:
    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
    enabled: true
  error:
    includeException: true
    includeStacktrace: ALWAYS
    includeMessage: ALWAYS

spring:
  #当 erupt.redisSession 为 true 时必须配置此项!
  redis:
    database: 0
    timeout: 10000
    host: 127.0.0.1
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/erupt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: ****
  jpa:
    show-sql: false
    generate-ddl: true
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    database: mysql
    properties:
      hibernate:
        format_sql: false
  mail:
    username: xxxx@qq.com
    password: xxxxxxx
    host: smtp.qq.com
    properties:
      mail.smtp.ssl.auth: true
      mail.smtp.ssl.enable: true
      mail.smtp.ssl.required: true
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB
  profiles:
    active: dev
  #避免依赖循环引用
#  main:
#    allow-circular-references: true

erupt-app:
  # 登录失败几次,需要验证码
  verifyCodeCount: 2
  # 是否开启水印,1.12.0 及以上版本支持
  water-mark: true
  # 登录失败几次出现验证码,值为0时表示一直需要登录验证码
  verify-code-count: 2
  # 登录密码是否加密传输,特殊场景如:LDAP登录可关闭该功能获取密码明文
  pwd-transfer-encrypt: true
  # 是否开启密码重置功能,关闭后前端会屏蔽所有重置密码的入口适用于 ldap 等场景,1.12.7 及以上版本支持
  reset-pwd: true
  # 多语言配置
  locales: [
    "zh-CN",      // 简体中文
    "zh-TW",      // 繁体中文
    "en-US",      // English
    "fr-FR",      // En français
    "ja-JP",      // 日本語
    "ko-KR",      // 한국어
    "ru-RU",      // русск
    "es-ES"       // español
  ]
  # 自定义登录页路径,1.10.6 及以上版本支持,支持http网络路径
#  login-page-path: /customer-login.html
erupt:
  # 是否开启csrf防御
    csrf-inspect: true
    # 开启redis方式存储session,默认false,开启后需在配置文件中添加redis配置(同 Spring Boot)
    redis-session: false
    # redis session是否自动续期,1.10.8及以上版本支持
    redis-session-refresh: false
    # 附件上传存储路径, 默认路径为:/opt/erupt-attachment
    upload-path: D:/erupt/annex
    # 是否保留上传文件原始名称
    keep-upload-file-name: false
    # 项目初始化方式,NONE 不执行初始化代码、EVERY 每次启动都进行初始化、FILE 通过标识文件判断是否需要初始化
    init-method-enum: file
    # 默认语言,1.12.3 及以上版本支持
    default-locales: zh-CN
    # 是否开启任务调度(导入erupt-job时有效)
    job.enable: true
    # 是否开启日志采集,开启后可在系统日志中查看实时日志 1.12.14 及以上版本支持
    log-track: true
    # 日志采集最大暂存行数 1.12.14 及以上版本支持
    log-track-cache-size: 1000
    # 是否记录操作日志,默认true,该功能开启后可在【系统管理 → 操作日志】中查看操作日志
    security:
      record-operate-log: true
    upms:
      # 登录 session 时长(redisSession为true时有效)
      # redisSession 为 false 时控制有效期的方法:server.servlet.session.timeout
      expire-time-by-login: 60
      # 严格的角色菜单策略,如果非管理员用户拥有“角色管理权限”则仅能编辑已有权限的角色菜单
      strict-role-menu-legal: false

magic-api:
  web: /magic/web
  # 接口配置文件存放路径
  resource.location: D:/erupt/magic-script
  show-url: false
数据库配置

根据所用数据库类型选择MySQL、SQLServer等进行配置

建立一个数据库(erupt),其他名也行,暂时不用建表,项目启动会自动建立多个基础表

首页配置(home.html)

手动创建,位置:/resources/public/home.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>home</title>
    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1" name="viewport">
</head>
<style>
    body {
        /* 设置背景图片 */
        background-image: url('login-img-BlackSilk.jpg');
        /* 背景图片覆盖整个元素 */
        background-size: cover;
        /* 背景图片不重复 */
        background-repeat: no-repeat;
        /* 背景图片居中显示 */
        background-position: center;
        /* 可选:设置背景图片固定,滚动页面时不移动 */
        background-attachment: fixed;
        /* 可选:设置边距,根据需要调整 */
        margin: 0;
        padding: 0;
        /* 确保整个页面都有背景图片 */
        height: 100vh; /* 视口高度 */
        width: 100vw; /* 视口宽度,但通常不需要设置,因为body默认就是100%宽度 */
    }
</style>
<body>
</body>
</html>

 前端配置(app.js)

手动创建,位置:/resources/public/app.js

window.eruptSiteConfig = {
    //erupt接口地址,在前后端分离时指定
    domain: "",
    //附件地址,一般情况下不需要指定,如果自定义对象存储空间,则需在此指定附件资源访问地址
    fileDomain: "",
    //登录页中间标题
    title: "風華絕代",
    //登录页中间标题描述
    desc: "風華絕代-Leslie",
    //是否展示版权信息
    copyright: true,
    //自定义版权内容,1.12.8及以上版本支持,值可以是方法也可以是字符串
    copyrightTxt: function() {
        return "風華絕代-Cheung Kowk Wing"
    },
    //高德地图 api key,使用地图组件须指定此属性,amapKey获取地址:https://lbs.amap.com (服务平台为:Web端(JS API))
    amapKey: "xxxx",
    //高德地图 SecurityJsCode
    amapSecurityJsCode: "xxxxx",
    //登录页logo路径
    logoPath: "log-Leslie.jpg",
    //登录后左上角logo旁边的文字
    logoText: "風華絕代",
    //注册页地址,会在登录页面增加一个链接 (仅是一个链接,需要自定义实际样式)
    registerPage: "",
    //自定义导航栏按钮,配置后将会出现在页面右上角
    r_tools: [{
        text: "自定义功能按钮",
        icon: "fa-eercast",
        mobileHidden: true,
        click: function (event) {
            alert("Function button");
        }
    }],
    //登录成功事件 1.12.3 及以上版本移动至window.eruptEvent中声明
    login: function(user){

    },
    //注销事件 1.12.3 及以上版本移动至window.eruptEvent中声明
    logout: function(user){

    }
};

//路由回调函数
window.eruptRouterEvent = {
    //key表示要监听的路由切换地址,为url hash地址最后一段
    //例如:http://www.erupt.xyz:9999/#/build/table/demo中demo为回调key
    demo: {
        //路由载入事件
        load: function (e) {

        },
        //路由退出事件
        unload: function (e) {

        }
    },
    //$ 为全路径通配符,在任何路由切换时都会执行load与unload事件
    $: {
        load: function (e) {

        },
        unload: function (e) {
        }
    }
};

//erupt生命周期函数
window.eruptEvent = {
    //页面加载完成后回调
    startup: function () {

    },
    //登录成功
    login: function(user){

    },
    //注销事件
    logout: function(user){

    }
}

前端样式(app.css)

手动创建,位置:/resources/public/app.css

/* 例:修改登录页样式 */
layout-passport > .container {
    background-position: center !important;
    background-repeat: repeat !important;
    background-size: cover !important;
    background-color: #fff !important;
    background-image: url(login-img-BlackSilk.jpg) !important;
    /*background-image: url(https://www.erupt.xyz/demo/login-bg.svg) !important;*/
}

启动项目

访问地址:localhost:8081

默认账号:erupt

默认密码:erupt

登录

默认有以下菜单栏

新建菜单

新建下级菜单(表格视图)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Erupt 是一个快速开发企业级后台管理系统的开源框架,它提供了丰富的组件和工具,可以快速搭建出功能强大、易于维护的后台管理系统。其中,自定义按钮是 Erupt 非常实用的一个组件,可以自定义按钮的样式、文本、点击事件等属性,实现自定义的功能。下面是一个实现自定义按钮的示例: 首先,在 Erupt 的实体类中添加一个按钮属性: ```java @EruptField( views = @View(title = "操作", sortable = false), edit = @Edit(title = "操作"), search = @Search, actions = { @Action(title = "自定义按钮", name = "customButton") } ) private String button; public String getButton() { return button; } public void setButton(String button) { this.button = button; } ``` 这里使用了 `@Action` 注解来定义一个名为 "customButton" 的自定义按钮。 然后,在 Erupt 的页面中添加按钮的 HTML 代码: ```html <div class="btn-group"> <button class="btn btn-success" onclick="erupt.handleButtonClick(this, 'customButton')">自定义按钮</button> </div> ``` 这里使用了 Bootstrap 框架的样式来渲染按钮,并且通过 `erupt.handleButtonClick` 函数来触发按钮的点击事件。 最后,在 Erupt 的 Controller 中处理按钮的点击事件: ```java @RequestMapping("/erupt/customButton") @ResponseBody public Object customButton() { // 处理按钮的点击事件,返回响应结果 return "自定义按钮被点击了"; } ``` 这里使用了 `@RequestMapping` 注解来定义按钮的访问路径,并在方法中处理按钮的点击事件。返回的响应结果将在页面上显示出来。 这样就完成了自定义按钮的实现。你可以根据实际需求来定义按钮的样式、文本、点击事件等属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值