diff --git a/nacos/ruoyi-auth-dev.yml b/nacos/ruoyi-auth-dev.yml new file mode 100644 index 00000000..6f78f3d7 --- /dev/null +++ b/nacos/ruoyi-auth-dev.yml @@ -0,0 +1,5 @@ +spring: + data: + redis: + host: * # 替换自己的ip地址 + port: 6379 \ No newline at end of file diff --git a/nacos/ruoyi-gateway-dev.yml b/nacos/ruoyi-gateway-dev.yml new file mode 100644 index 00000000..f0fc08d1 --- /dev/null +++ b/nacos/ruoyi-gateway-dev.yml @@ -0,0 +1,78 @@ +spring: + data: + redis: + host: * # 替换自己的ip地址 + port: 6379 + cloud: + gateway: + discovery: + locator: + lowerCaseServiceId: true + enabled: true + routes: + # 认证中心 + - id: ruoyi-auth + uri: lb://ruoyi-auth + predicates: + - Path=/auth/** + filters: + # 验证码处理 + - CacheRequestBody + - ValidateCodeFilter + - StripPrefix=1 + # 代码生成 + - id: ruoyi-gen + uri: lb://ruoyi-gen + predicates: + - Path=/code/** + filters: + - StripPrefix=1 + # 定时任务 + - id: ruoyi-job + uri: lb://ruoyi-job + predicates: + - Path=/schedule/** + filters: + - StripPrefix=1 + # 系统模块 + - id: ruoyi-system + uri: lb://ruoyi-system + predicates: + - Path=/system/** + filters: + - StripPrefix=1 + # 文件服务 + - id: ruoyi-file + uri: lb://ruoyi-file + predicates: + - Path=/file/** + filters: + - StripPrefix=1 + +# 安全配置 +security: + # 验证码 + captcha: + enabled: true + type: math + # 防止XSS攻击 + xss: + enabled: true + excludeUrls: + - /system/notice + + # 不校验白名单 + ignore: + whites: + - /auth/logout + - /auth/login + - /auth/register + - /*/v2/api-docs + - /*/v3/api-docs + - /csrf + +# springdoc配置 +springdoc: + webjars: + # 访问前缀 + prefix: \ No newline at end of file diff --git a/nacos/ruoyi-gen-dev.yml b/nacos/ruoyi-gen-dev.yml new file mode 100644 index 00000000..f2f716f4 --- /dev/null +++ b/nacos/ruoyi-gen-dev.yml @@ -0,0 +1,48 @@ +# spring配置 +spring: + data: + redis: + host: * # 替换自己的ip地址 + port: 6379 + password: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://ip:port/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: * # 替换自己的密码 + +# mybatis配置 +mybatis: + # 搜索指定包别名 + typeAliasesPackage: com.ruoyi.gen.domain + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath:mapper/**/*.xml + +# springdoc配置 +springdoc: + gatewayUrl: http://localhost:8080/${spring.application.name} + api-docs: + # 是否开启接口文档 + enabled: true + info: + # 标题 + title: '代码生成接口文档' + # 描述 + description: '代码生成接口描述' + # 作者信息 + contact: + name: RuoYi + url: https://ruoyi.vip + +# 代码生成 +gen: + # 作者 + author: ruoyi + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.ruoyi.system + # 自动去除表前缀,默认是false + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: sys_ + # 是否允许生成文件覆盖到本地(自定义路径),默认不允许 + allowOverwrite: false \ No newline at end of file diff --git a/nacos/ruoyi-system-dev.yml b/nacos/ruoyi-system-dev.yml new file mode 100644 index 00000000..653d22dc --- /dev/null +++ b/nacos/ruoyi-system-dev.yml @@ -0,0 +1,66 @@ +# spring配置 +spring: + data: + redis: + host: * # 替换自己的ip地址 + port: 6379 + datasource: + druid: + stat-view-servlet: + enabled: true + loginUsername: ruoyi + loginPassword: 123456 + dynamic: + druid: + initial-size: 5 + min-idle: 5 + maxActive: 20 + maxWait: 60000 + connectTimeout: 30000 + socketTimeout: 60000 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + filters: stat,slf4j + connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 + datasource: + # 主库数据源 + master: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://ip:port/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: * # 替换自己的密码 + # 从库数据源 + # slave: + # username: + # password: + # url: + # driver-class-name: + +# mybatis配置 +mybatis: + # 搜索指定包别名 + typeAliasesPackage: com.ruoyi.system + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath:mapper/**/*.xml + +# springdoc配置 +springdoc: + gatewayUrl: http://localhost:8080/${spring.application.name} + api-docs: + # 是否开启接口文档 + enabled: true + info: + # 标题 + title: '系统模块接口文档' + # 描述 + description: '系统模块接口描述' + # 作者信息 + contact: + name: RuoYi + url: https://ruoyi.vip \ No newline at end of file diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml index f456b03c..e84b021a 100644 --- a/ruoyi-auth/src/main/resources/bootstrap.yml +++ b/ruoyi-auth/src/main/resources/bootstrap.yml @@ -14,12 +14,16 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + web-application-type: reactive \ No newline at end of file diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml index b6dc98ae..1bb04bc3 100644 --- a/ruoyi-gateway/src/main/resources/bootstrap.yml +++ b/ruoyi-gateway/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 8080 + port: 18080 # Spring spring: @@ -14,27 +14,31 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - sentinel: - # 取消控制台懒加载 - eager: true - transport: - # 控制台地址 - dashboard: 127.0.0.1:8718 - # nacos配置持久化 - datasource: - ds1: - nacos: - server-addr: 127.0.0.1:8848 - dataId: sentinel-ruoyi-gateway - groupId: DEFAULT_GROUP - data-type: json - rule-type: gw-flow +# sentinel: +# # 取消控制台懒加载 +# eager: true +# transport: +# # 控制台地址 +# dashboard: 127.0.0.1:8718 +# # nacos配置持久化 +# datasource: +# ds1: +# nacos: +# server-addr: 43.136.76.125:8848 +# dataId: sentinel-ruoyi-gateway +# groupId: DEFAULT_GROUP +# data-type: json +# rule-type: gw-flow + main: + web-application-type: reactive diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index d7b456ca..0e9f89d5 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -13,6 +13,7 @@ ruoyi-gen ruoyi-job ruoyi-file + ruoyi-user ruoyi-modules diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java index 82db19bc..661daaec 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java @@ -3,6 +3,7 @@ package com.ruoyi.file.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -24,6 +25,7 @@ public class SysFileController private static final Logger log = LoggerFactory.getLogger(SysFileController.class); @Autowired + @Qualifier("minioSysFileService") private ISysFileService sysFileService; /** diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java index 56c6afd2..bdafa076 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java @@ -14,7 +14,7 @@ import com.ruoyi.file.utils.FileUploadUtils; * @author ruoyi */ @Primary -@Service +@Service("localSysFileService") public class LocalSysFileServiceImpl implements ISysFileService { /** diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java index 9afd2910..16ed54ea 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java @@ -17,7 +17,7 @@ import io.minio.RemoveObjectArgs; * * @author ruoyi */ -@Service +@Service("minioSysFileService") public class MinioSysFileServiceImpl implements ISysFileService { @Autowired @@ -36,28 +36,39 @@ public class MinioSysFileServiceImpl implements ISysFileService @Override public String uploadFile(MultipartFile file) throws Exception { - InputStream inputStream = null; - try - { - String fileName = FileUploadUtils.extractFilename(file); - inputStream = file.getInputStream(); - PutObjectArgs args = PutObjectArgs.builder() - .bucket(minioConfig.getBucketName()) - .object(fileName) - .stream(inputStream, file.getSize(), -1) - .contentType(file.getContentType()) - .build(); - client.putObject(args); - return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; - } - catch (Exception e) - { - throw new RuntimeException("Minio Failed to upload file", e); - } - finally - { - IoUtils.closeQuietly(inputStream); - } +// InputStream inputStream = null; +// try +// { +// String fileName = FileUploadUtils.extractFilename(file); +// inputStream = file.getInputStream(); +// PutObjectArgs args = PutObjectArgs.builder() +// .bucket(minioConfig.getBucketName()) +// .object(fileName) +// .stream(inputStream, file.getSize(), -1) +// .contentType(file.getContentType()) +// .build(); +// client.putObject(args); +// return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; +// } +// catch (Exception e) +// { +// throw new RuntimeException("Minio Failed to upload file", e); +// } +// finally +// { +// IoUtils.closeQuietly(inputStream); +// } + String fileName = FileUploadUtils.extractFilename(file); + InputStream inputStream = file.getInputStream(); + PutObjectArgs args = PutObjectArgs.builder() + .bucket(minioConfig.getBucketName()) + .object(fileName) + .stream(inputStream, file.getSize(), -1) + .contentType(file.getContentType()) + .build(); + client.putObject(args); + IoUtils.closeQuietly(inputStream); + return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; } /** diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml index 55ff4112..a04c45c5 100644 --- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml @@ -14,12 +14,16 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + web-application-type: reactive \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml index 0ef5a457..e06bd5fd 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml @@ -14,12 +14,16 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + web-application-type: reactive \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index 40ab7816..dd855348 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -14,12 +14,16 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + web-application-type: reactive \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-user/pom.xml b/ruoyi-modules/ruoyi-user/pom.xml new file mode 100644 index 00000000..6e3e25c3 --- /dev/null +++ b/ruoyi-modules/ruoyi-user/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + + com.ruoyi + ruoyi-modules + 3.6.6 + + + ruoyi-modules-user + + ruoyi-modules-user用户模块 + + + 17 + 17 + UTF-8 + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.ruoyi + ruoyi-common-datasource + + + + + com.ruoyi + ruoyi-common-datascope + + + + + com.ruoyi + ruoyi-common-log + + + + + com.ruoyi + ruoyi-common-swagger + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/RuoYiUserApplication.java b/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/RuoYiUserApplication.java new file mode 100644 index 00000000..34ece350 --- /dev/null +++ b/ruoyi-modules/ruoyi-user/src/main/java/com/ruoyi/user/RuoYiUserApplication.java @@ -0,0 +1,34 @@ +package com.ruoyi.user; + +import com.ruoyi.common.security.annotation.EnableCustomConfig; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author 陈玉青 + * @Email 13795144611@163.com + * @Version JDK17 + * @date 2025/11/30 21:02 + * @description 用户模块 + */ +@EnableCustomConfig +@EnableRyFeignClients +@SpringBootApplication +public class RuoYiUserApplication { + + public static void main(String[] args) + { + SpringApplication.run(RuoYiUserApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 用户模块启动成功 ლ(´ڡ`ლ)゙ \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } +} diff --git a/ruoyi-modules/ruoyi-user/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-user/src/main/resources/banner.txt new file mode 100644 index 00000000..fbd45f53 --- /dev/null +++ b/ruoyi-modules/ruoyi-user/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ + (_) | | + _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ +| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ +| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | +|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| + __/ | __/ | + |___/ |___/ \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-user/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-user/src/main/resources/bootstrap.yml new file mode 100644 index 00000000..b5311b7b --- /dev/null +++ b/ruoyi-modules/ruoyi-user/src/main/resources/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9501 + +# Spring +spring: + application: + # 应用名称 + name: ruoyi-user + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 + config: + # 配置中心地址 + server-addr: 43.136.76.125:8848 + namespace: 1c8ac19f-8d7a-4008-a291-90b162b37fd5 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + main: + web-application-type: reactive \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-user/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-user/src/main/resources/logback.xml new file mode 100644 index 00000000..18d0dd35 --- /dev/null +++ b/ruoyi-modules/ruoyi-user/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 18b2a3ed..2bb399cc 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -1,11 +1,11 @@ -# 页面标题 -VUE_APP_TITLE = 若依管理系统 - -# 开发环境配置 -ENV = 'development' - -# 若依管理系统/开发环境 -VUE_APP_BASE_API = '/dev-api' - -# 路由懒加载 -VUE_CLI_BABEL_TRANSPILE_MODULES = true +# 页面标题 +VUE_APP_TITLE = 星海能源(大连) + +# 开发环境配置 +ENV = 'development' + +# 若依管理系统/开发环境 +VUE_APP_BASE_API = '/dev-api' + +# 路由懒加载 +VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index cb064ec8..74769cb9 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -1,8 +1,8 @@ -# 页面标题 -VUE_APP_TITLE = 若依管理系统 - -# 生产环境配置 -ENV = 'production' - -# 若依管理系统/生产环境 -VUE_APP_BASE_API = '/prod-api' +# 页面标题 +VUE_APP_TITLE = 星海能源(大连) + +# 生产环境配置 +ENV = 'production' + +# 若依管理系统/生产环境 +VUE_APP_BASE_API = '/prod-api' diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging index 730af342..ecce1442 100644 --- a/ruoyi-ui/.env.staging +++ b/ruoyi-ui/.env.staging @@ -1,12 +1,12 @@ -# 页面标题 -VUE_APP_TITLE = 若依管理系统 - -BABEL_ENV = production - -NODE_ENV = production - -# 测试环境配置 -ENV = 'staging' - -# 若依管理系统/测试环境 -VUE_APP_BASE_API = '/stage-api' +# 页面标题 +VUE_APP_TITLE = 星海能源(大连) + +BABEL_ENV = production + +NODE_ENV = production + +# 测试环境配置 +ENV = 'staging' + +# 若依管理系统/测试环境 +VUE_APP_BASE_API = '/stage-api' diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 7335d174..ab621111 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -28,7 +28,7 @@ "axios": "0.28.1", "clipboard": "2.0.8", "core-js": "3.37.1", - "echarts": "5.4.0", + "echarts": "^5.4.0", "element-ui": "2.15.14", "file-saver": "2.0.5", "fuse.js": "6.4.3", diff --git a/ruoyi-ui/src/assets/images/login-background.jpg b/ruoyi-ui/src/assets/images/login-background.jpg index 8a89eb82..bbfbab9e 100644 Binary files a/ruoyi-ui/src/assets/images/login-background.jpg and b/ruoyi-ui/src/assets/images/login-background.jpg differ diff --git a/ruoyi-ui/src/assets/images/str.png b/ruoyi-ui/src/assets/images/str.png new file mode 100644 index 00000000..a855d7e7 Binary files /dev/null and b/ruoyi-ui/src/assets/images/str.png differ diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 3a713556..454585b9 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -1,1033 +1,1141 @@ - - - - - - + + + + + + diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index f979f68b..61a92289 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -1,221 +1,225 @@ - - - - - + + + + + diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index afb5e8e0..cfdb6eac 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -1,129 +1,129 @@ -'use strict' -const path = require('path') - -function resolve(dir) { - return path.join(__dirname, dir) -} - -const CompressionPlugin = require('compression-webpack-plugin') - -const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 - -const port = process.env.port || process.env.npm_config_port || 80 // 端口 - -// vue.config.js 配置说明 -//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions -// 这里只列一部分,具体配置参考文档 -module.exports = { - // 部署生产环境和开发环境下的URL。 - // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 - // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 - publicPath: process.env.NODE_ENV === "production" ? "/" : "/", - // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) - outputDir: 'dist', - // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) - assetsDir: 'static', - // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 - productionSourceMap: false, - transpileDependencies: ['quill'], - // webpack-dev-server 相关配置 - devServer: { - host: '0.0.0.0', - port: port, - open: true, - proxy: { - // detail: https://cli.vuejs.org/config/#devserver-proxy - [process.env.VUE_APP_BASE_API]: { - target: `http://localhost:8080`, - changeOrigin: true, - pathRewrite: { - ['^' + process.env.VUE_APP_BASE_API]: '' - } - } - }, - disableHostCheck: true - }, - css: { - loaderOptions: { - sass: { - sassOptions: { outputStyle: "expanded" } - } - } - }, - configureWebpack: { - name: name, - resolve: { - alias: { - '@': resolve('src') - } - }, - plugins: [ - // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 - new CompressionPlugin({ - cache: false, // 不启用文件缓存 - test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 - filename: '[path][base].gz[query]', // 压缩后的文件名 - algorithm: 'gzip', // 使用gzip压缩 - minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩 - deleteOriginalAssets: false // 压缩后删除原文件 - }) - ], - }, - chainWebpack(config) { - config.plugins.delete('preload') // TODO: need test - config.plugins.delete('prefetch') // TODO: need test - - // set svg-sprite-loader - config.module - .rule('svg') - .exclude.add(resolve('src/assets/icons')) - .end() - config.module - .rule('icons') - .test(/\.svg$/) - .include.add(resolve('src/assets/icons')) - .end() - .use('svg-sprite-loader') - .loader('svg-sprite-loader') - .options({ - symbolId: 'icon-[name]' - }) - .end() - - config.when(process.env.NODE_ENV !== 'development', config => { - config - .plugin('ScriptExtHtmlWebpackPlugin') - .after('html') - .use('script-ext-html-webpack-plugin', [{ - // `runtime` must same as runtimeChunk name. default is `runtime` - inline: /runtime\..*\.js$/ - }]) - .end() - - config.optimization.splitChunks({ - chunks: 'all', - cacheGroups: { - libs: { - name: 'chunk-libs', - test: /[\\/]node_modules[\\/]/, - priority: 10, - chunks: 'initial' // only package third parties that are initially dependent - }, - elementUI: { - name: 'chunk-elementUI', // split elementUI into a single package - test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm - priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app - }, - commons: { - name: 'chunk-commons', - test: resolve('src/components'), // can customize your rules - minChunks: 3, // minimum common number - priority: 5, - reuseExistingChunk: true - } - } - }) - config.optimization.runtimeChunk('single') - }) - } -} +'use strict' +const path = require('path') + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const CompressionPlugin = require('compression-webpack-plugin') + +const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 + +const port = process.env.port || process.env.npm_config_port || 80 // 端口 + +// vue.config.js 配置说明 +//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions +// 这里只列一部分,具体配置参考文档 +module.exports = { + // 部署生产环境和开发环境下的URL。 + // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 + // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 + publicPath: process.env.NODE_ENV === "production" ? "/" : "/", + // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) + outputDir: 'dist', + // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) + assetsDir: 'static', + // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 + productionSourceMap: false, + transpileDependencies: ['quill'], + // webpack-dev-server 相关配置 + devServer: { + host: '0.0.0.0', + port: port, + open: true, + proxy: { + // detail: https://cli.vuejs.org/config/#devserver-proxy + [process.env.VUE_APP_BASE_API]: { + target: `http://localhost:18080`, + changeOrigin: true, + pathRewrite: { + ['^' + process.env.VUE_APP_BASE_API]: '' + } + } + }, + disableHostCheck: true + }, + css: { + loaderOptions: { + sass: { + sassOptions: { outputStyle: "expanded" } + } + } + }, + configureWebpack: { + name: name, + resolve: { + alias: { + '@': resolve('src') + } + }, + plugins: [ + // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 + new CompressionPlugin({ + cache: false, // 不启用文件缓存 + test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 + filename: '[path][base].gz[query]', // 压缩后的文件名 + algorithm: 'gzip', // 使用gzip压缩 + minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩 + deleteOriginalAssets: false // 压缩后删除原文件 + }) + ], + }, + chainWebpack(config) { + config.plugins.delete('preload') // TODO: need test + config.plugins.delete('prefetch') // TODO: need test + + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/assets/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/assets/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() + + config.when(process.env.NODE_ENV !== 'development', config => { + config + .plugin('ScriptExtHtmlWebpackPlugin') + .after('html') + .use('script-ext-html-webpack-plugin', [{ + // `runtime` must same as runtimeChunk name. default is `runtime` + inline: /runtime\..*\.js$/ + }]) + .end() + + config.optimization.splitChunks({ + chunks: 'all', + cacheGroups: { + libs: { + name: 'chunk-libs', + test: /[\\/]node_modules[\\/]/, + priority: 10, + chunks: 'initial' // only package third parties that are initially dependent + }, + elementUI: { + name: 'chunk-elementUI', // split elementUI into a single package + test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm + priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app + }, + commons: { + name: 'chunk-commons', + test: resolve('src/components'), // can customize your rules + minChunks: 3, // minimum common number + priority: 5, + reuseExistingChunk: true + } + } + }) + config.optimization.runtimeChunk('single') + }) + } +}