Merge branch 'master' of https://gitee.com/anji-plus/report
@@ -5,7 +5,10 @@
|
||||
## 在线体验
|
||||
####   电脑在线体验: [https://report.anji-plus.com/index.html](https://report.anji-plus.com/index.html "链接")  体验账号:guest 密码:guest
|
||||
####   在线文档: [https://report.anji-plus.com/report-doc/](https://report.anji-plus.com/report-doc/ "doc")<br>
|
||||
####   在线提问: [https://gitee.com/anji-plus/report/issues](https://gitee.com/anji-plus/report/issues "issue")
|
||||
####   在线提问: [https://gitee.com/anji-plus/report/issues](https://gitee.com/anji-plus/report/issues "issue")<br>
|
||||
|
||||
## 发行版本
|
||||
####   下载链接:[https://gitee.com/anji-plus/report/releases](https://gitee.com/anji-plus/report/releases "下载链接")<br>
|
||||
|
||||
## 功能概述
|
||||
####   组件介绍
|
||||
|
||||
@@ -1,2 +1,19 @@
|
||||
## 介绍
|
||||
待完善
|
||||
## 新增大屏
|
||||

|
||||
|
||||
## 大屏简介
|
||||

|
||||
|
||||
## 工具简介
|
||||
### 1、文本框
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
### 2、滚动文本
|
||||
### 3、超链接
|
||||
### 4、当前时间
|
||||
### 5、图片
|
||||

|
||||
@@ -1,2 +1,6 @@
|
||||
## 介绍
|
||||
待完善
|
||||
## 1、mysql数据集
|
||||
在数据源处添加了mysql的数据源后,即可使用。
|
||||

|
||||
目前,查询参数和数据转化功能待补全中,建议等完善了再使用。
|
||||
|
||||
|
||||
BIN
doc/docs/picture/dashboard/img.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
doc/docs/picture/dashboard/img_2.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
doc/docs/picture/dashboard/img_3.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
doc/docs/picture/dashboard/img_4.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
doc/docs/picture/dashboard/img_5.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
doc/docs/picture/dashboard/img_6.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
doc/docs/picture/dashboard/img_7.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
doc/docs/picture/dateset/img_1.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
54
pom.xml
@@ -22,59 +22,16 @@
|
||||
|
||||
<properties>
|
||||
<gaea.version>2.0.1.RELEASE</gaea.version>
|
||||
<gaea.security.version>1.0.0-SNAPSHOT</gaea.security.version>
|
||||
<gaea.export.version>1.0.0.RELEASE</gaea.export.version>
|
||||
<gaea.generator.version>1.0.0-SNAPSHOT</gaea.generator.version>
|
||||
<gaea.log.version>1.0.0.RELEASE</gaea.log.version>
|
||||
<maven.test.skip>true</maven.test.skip>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.anjiplus.template.gaea</groupId>
|
||||
<artifactId>template-gaea-auth</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.anjiplus.template.gaea</groupId>
|
||||
<artifactId>template-gaea-business</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.anjiplus.template.gaea</groupId>
|
||||
<artifactId>template-gaea-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anjiplus.template.gaea</groupId>
|
||||
<artifactId>template-gaea-generator</artifactId>
|
||||
<version>${gaea.generator.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-gaea</artifactId>
|
||||
<version>${gaea.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-starter-gaea-security</artifactId>
|
||||
<version>${gaea.security.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-starter-gaea-export</artifactId>
|
||||
<version>${gaea.export.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-starter-gaea-log</artifactId>
|
||||
<version>${gaea.log.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
@@ -90,15 +47,4 @@
|
||||
</activation>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>nexus-releases</id>
|
||||
<url>http://nexus.anji-plus.com:8081/repository/maven-releases/</url>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>nexus-snapshots</id>
|
||||
<url>http://nexus.anji-plus.com:8081/repository/maven-snapshots/</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
</project>
|
||||
|
||||
@@ -65,14 +65,14 @@
|
||||
<version>2.10.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-starter-gaea-export</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>spring-boot-starter-gaea-log</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.anji-plus</groupId>-->
|
||||
<!-- <artifactId>spring-boot-starter-gaea-export</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.anji-plus</groupId>-->
|
||||
<!-- <artifactId>spring-boot-starter-gaea-log</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.flywaydb</groupId>
|
||||
@@ -81,18 +81,6 @@
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpcore</artifactId>
|
||||
<version>4.4.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.anjiplus.template.gaea.business.modules.file.service.impl;
|
||||
|
||||
import com.alibaba.excel.util.FileUtils;
|
||||
import com.anji.plus.gaea.constant.BaseOperationEnum;
|
||||
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
|
||||
import com.anji.plus.gaea.exception.BusinessException;
|
||||
import com.anji.plus.gaea.exception.BusinessExceptionBuilder;
|
||||
import com.anjiplus.template.gaea.business.modules.file.util.StringPatternUtil;
|
||||
import com.anjiplus.template.gaea.business.code.ResponseCode;
|
||||
import com.anjiplus.template.gaea.business.modules.file.dao.GaeaFileMapper;
|
||||
import com.anjiplus.template.gaea.business.modules.file.entity.GaeaFile;
|
||||
import com.anjiplus.template.gaea.business.modules.file.service.GaeaFileService;
|
||||
import com.anjiplus.template.gaea.business.modules.file.util.FileUtils;
|
||||
import com.anjiplus.template.gaea.business.modules.file.util.StringPatternUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.anjiplus.template.gaea.business.modules.file.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* Created by raodeming on 2021/7/8.
|
||||
*/
|
||||
@Slf4j
|
||||
public class FileUtils {
|
||||
public static byte[] readFileToByteArray(File file) {
|
||||
byte[] buffer = null;
|
||||
try {
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
byte[] b = new byte[1024];
|
||||
int n;
|
||||
while ((n = fis.read(b)) != -1) {
|
||||
bos.write(b, 0, n);
|
||||
}
|
||||
fis.close();
|
||||
bos.close();
|
||||
buffer = bos.toByteArray();
|
||||
} catch (IOException e) {
|
||||
log.error("{}", e);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,6 +46,8 @@ spring:
|
||||
user: ${spring.datasource.username}
|
||||
password: ${spring.datasource.password}
|
||||
placeholder-replacement: false
|
||||
init-sqls:
|
||||
- CREATE DATABASE IF NOT EXISTS `aj_report` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
generator:
|
||||
enabled: true
|
||||
workspace: /workspace/gaea
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div class="index-container">
|
||||
<div class="left-top"></div>
|
||||
<!-- <div class="left-top"></div>
|
||||
<div class="left-bottom"></div>
|
||||
<div class="right-top"></div>
|
||||
<div class="right-bottom"></div>
|
||||
<div class="right-bottom"></div> -->
|
||||
<el-row align="middle" justify="center">
|
||||
<el-col :span="24" :offset="0" class="position">
|
||||
<div class="center"></div>
|
||||
@@ -13,86 +13,96 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'index1',
|
||||
data() {
|
||||
return {
|
||||
}
|
||||
return {}
|
||||
},
|
||||
components:{},
|
||||
components: {},
|
||||
watch: {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
|
||||
}
|
||||
methods: {},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style rel="stylesheet/scss" lang="scss">
|
||||
.index-container{
|
||||
.index-container {
|
||||
width: 100%;
|
||||
height:calc(100vh - 50px);
|
||||
height: calc(100vh - 50px);
|
||||
overflow: hidden;
|
||||
background:#fff;
|
||||
background: -webkit-linear-gradient(75deg, #3d37b5 , #5bc4ef); /* Safari 5.1 - 6.0 */
|
||||
background: -o-linear-gradient(75deg, #3d37b5, #5bc4ef); /* Opera 11.1 - 12.0 */
|
||||
background: -moz-linear-gradient(75deg, #3d37b5, #5bc4ef); /* Firefox 3.6 - 15 */
|
||||
background: linear-gradient(75deg,#3d37b5, #5bc4ef);
|
||||
.position{
|
||||
background: #fff;
|
||||
background: -webkit-linear-gradient(
|
||||
75deg,
|
||||
#e9f0fb,
|
||||
#5bc4ef
|
||||
); /* Safari 5.1 - 6.0 */
|
||||
background: -o-linear-gradient(
|
||||
75deg,
|
||||
#e9f0fb,
|
||||
#5bc4ef
|
||||
); /* Opera 11.1 - 12.0 */
|
||||
background: -moz-linear-gradient(
|
||||
75deg,
|
||||
#e9f0fb,
|
||||
#5bc4ef
|
||||
); /* Firefox 3.6 - 15 */
|
||||
background: linear-gradient(75deg, #e9f0fb, #e9f0fb);
|
||||
.position {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
margin-bottom: 0;
|
||||
position: absolute;
|
||||
top: 67px;
|
||||
}
|
||||
.left-top,.left-bottom,.right-top,.right-bottom{
|
||||
position:absolute;
|
||||
|
||||
.left-top,
|
||||
.left-bottom,
|
||||
.right-top,
|
||||
.right-bottom {
|
||||
position: absolute;
|
||||
}
|
||||
.left-top{
|
||||
.left-top {
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
width: 223px;
|
||||
height: 291px;
|
||||
background: url("../../../static/index-top-left.png");
|
||||
background: url('../../../static/index-top-left.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.left-bottom{
|
||||
.left-bottom {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 2;
|
||||
width: 461px;
|
||||
height: 236px;
|
||||
background: url("../../../static/index-bottom-left.png");
|
||||
background: url('../../../static/index-bottom-left.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.right-top{
|
||||
.right-top {
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 31;
|
||||
width: 346px;
|
||||
height: 309px;
|
||||
background: url("../../../static/index-top-right.png");
|
||||
background: url('../../../static/index-top-right.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.right-bottom{
|
||||
.right-bottom {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 4;
|
||||
width: 463px;
|
||||
height: 320px;
|
||||
background: url("../../../static/index-bottom-right.png");
|
||||
background: url('../../../static/index-bottom-right.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.center{
|
||||
.center {
|
||||
width: 100%;
|
||||
height: 93vh;
|
||||
bottom: 0;
|
||||
position:relative;
|
||||
position: relative;
|
||||
max-width: 1893px;
|
||||
background: url("../../../static/index-center.png");
|
||||
background: url('../../../static/index-center.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,38 +190,6 @@ export default {
|
||||
this.options = Object.assign({}, this.options);
|
||||
},
|
||||
// 数据解析
|
||||
setOptionsData () {
|
||||
const optionsSetup = this.optionsSetup;
|
||||
console.log(optionsSetup);
|
||||
const optionsData = this.optionsData; // 数据类型 静态 or 动态
|
||||
console.log(optionsData);
|
||||
optionsData.dataType == "staticData"
|
||||
? this.staticDataFn(optionsData.staticData, optionsSetup)
|
||||
: this.dynamicDataFn(optionsData.dynamicData, optionsSetup);
|
||||
},
|
||||
// 静态数据
|
||||
staticDataFn (val, optionsSetup) {
|
||||
const staticData = JSON.parse(val);
|
||||
// x轴
|
||||
if (optionsSetup.verticalShow) {
|
||||
this.options.xAxis.data = [];
|
||||
this.options.yAxis.data = staticData.categories;
|
||||
this.options.xAxis.type = "value";
|
||||
this.options.yAxis.type = "category";
|
||||
} else {
|
||||
this.options.xAxis.data = staticData.categories;
|
||||
this.options.yAxis.data = [];
|
||||
this.options.xAxis.type = "category";
|
||||
this.options.yAxis.type = "value";
|
||||
}
|
||||
// series
|
||||
const series = this.options.series;
|
||||
for (const i in series) {
|
||||
if (series[i].type == "bar") {
|
||||
series[i].data = staticData.series[0].data;
|
||||
}
|
||||
}
|
||||
},
|
||||
setOptionsData() {
|
||||
const optionsData = this.optionsData; // 数据类型 静态 or 动态
|
||||
optionsData.dataType == "staticData"
|
||||
|
||||
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 862 KiB |