MY-SH\lenovo 12 months ago
commit cab92c5987

10
.gitignore vendored

@ -0,0 +1,10 @@
.DS_Store
.idea
target
*.iml
/view/flutter/**/gen/*
**/*.log
dist
logs
cache
build

@ -0,0 +1,204 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [2021] anji-plus.com, All rights reserved.
[Official website] https://gitee.com/anji-plus/report
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

171
NOTICE

@ -0,0 +1,171 @@
Copyright [2021] anji-plus.com
[Official website] https://gitee.com/anji-plus/report
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------
This product has a bundle logback, which is available under the EPL v1.0 License.
The source code of logback can be found at https://github.com/qos-ch/logback.
Logback: the reliable, generic, fast and flexible logging framework.
Copyright (C) 1999-2015, QOS.ch. All rights reserved.
This program and the accompanying materials are dual-licensed under
either the terms of the Eclipse Public License v1.0 as published by
the Eclipse Foundation
or (per the licensee's choosing)
under the terms of the GNU Lesser General Public License version 2.1
as published by the Free Software Foundation.
------
This product has a bundle fastjson, which is available under the ASL2 License.
The source code of fastjson can be found at https://github.com/alibaba/fastjson.
Copyright 1999-2016 Alibaba Group Holding Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------
This product has a bundle mybatis-plus
The source code of mybatis-plus can be found at https://github.com/baomidou/mybatis-plus.
Copyright (c) 2011-${year}, baomidou (jobob@qq.com).
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------
This product has a bundle vue-router
The source code of vue-router can be found at https://github.com/vuejs/vue-router.
MIT License
Copyright (c) 2013-present Evan You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
------
This product has a bundle vue-cli
The source code of vue-cli can be found at https://github.com/vuejs/vue-cli.
The MIT License (MIT)
Copyright (c) 2017-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
------
This product has a bundle avue
The source code of avue can be found at https://github.com/nmxiaowei/avue.
The MIT License (MIT)
Copyright (c) 2018 Smallwei
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------
This product has a bundle Luckysheet
The source code of Luckysheet can be found at https://gitee.com/mengshukeji/Luckysheet.
The MIT License (MIT)
Copyright (c) 2020-present, Mengshukeji
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

@ -0,0 +1,61 @@
## Online experience
####   Computer online experience: [https://ajreport.beliefteam.cn/](https://ajreport.beliefteam.cn/ "链接")  accountguest passwordguest
#### &emsp; Online documents: [https://ajreport.beliefteam.cn/report-doc/](https://ajreport.beliefteam.cn/report-doc/ "doc")<br>
#### &emsp; issues: [https://gitee.com/anji-plus/report/issues](https://gitee.com/anji-plus/report/issues "issue")
## Function overview
#### &emsp; Component introduction
&emsp;&emsp; AJ-Reportis a visual drag edit, intuitive, cool, with a sense of science and technology chart tool full
open source project.
The built-in basic functions include data source, data set, report management, and some screenshots of the project are
shown below.。<br>
## Packaging directory
```
├── bin
│ ├── logs
│ ├── cache
│ ├── startup.cmd
│ ├── shutdown.cmd
│ ├── startup.sh
│ └── shutdown.sh
├── config
├── lib
├── target
```
## System directory
```
├── doc
│ ├── docs
│ ├── package.json
│ └── README.md
├── pom.xml
├── report-core
│ ├── pom.xml
│ └── README.md
├── report-ui
├── LICENSE
├── README.md
```
## Short term plan
#### &emsp; Enrich more chart components
## technical support
If you have any questions, please submit to [Issue](https://gitee.com/anji-plus/report/issues)
#### Open source is not easy, please, star ☺

@ -0,0 +1,271 @@
# 企微可添加人数已满上限目前正在申请扩充现有问题可直接提Issue
## 简介
&emsp; &emsp; AJ-Report是全开源的一个BI平台酷炫大屏展示能随时随地掌控业务动态让每个决策都有数据支撑。<br>
&emsp; &emsp;
多数据源支持内置mysql、elasticsearch、kudu驱动支持自定义数据集省去数据接口开发目前已支持30+种大屏组件/图表,不会开发,照着设计稿也可以制作大屏。<br>
&emsp; &emsp; 三步轻松完成大屏设计:配置数据源---->写SQL配置数据集---->拖拽配置大屏---->保存发布。欢迎体验。
## 在线体验
#### &emsp; [在线体验](https://ajreport.beliefteam.cn/index.html "链接"): https://ajreport.beliefteam.cn/index.html &emsp;体验账号guest 密码guest
#### &emsp; [在线文档](https://ajreport.beliefteam.cn/report-doc/ "doc"): https://ajreport.beliefteam.cn/report-doc/ <br>
#### &emsp; [在线提问](https://gitee.com/anji-plus/report/issues "issue"): https://gitee.com/anji-plus/report/issues <br>
## 发行版本
#### &emsp; [下载链接](https://gitee.com/anji-plus/report/releases "下载链接"): https://gitee.com/anji-plus/report/releases <br>
## 功能概述
#### &emsp; 组件介绍
&emsp;&emsp; 大屏设计AJ-Report是一个可视化拖拽编辑的直观酷炫具有科技感的图表工具全开源项目。
内置的基础功能包括数据源,数据集,报表管理,项目部分截图如下。<br>
![操作](https://images.gitee.com/uploads/images/2021/0703/094742_c0243f70_1728982.gif "2021-07-03_09-43-50.gif")
## 数据流程图
![An image](https://images.gitee.com/uploads/images/2021/0630/160451_31bb9052_1728982.png)
## 打包目录build
```
├── bin 启动命令脚本
│ ├── restart.sh
│ ├── start.bat
│ ├── start.sh
│ └── stop.sh
├── conf 配置文件目录
│ └── bootstrap.yml
├── logs 启动日志目录
├── cache 本地缓存目录
├── lib 自定义扩展包&report-core核心包
```
## 系统目录
```
├── doc 文档源码
│ ├── docs
│ ├── package.json
│ └── README.md
├── pom.xml 父pomjar版本管理
├── report-core java源码
│ ├── pom.xml gaea父pomjar版本管理
│ └── README.md
├── report-ui 前端vue源码
├── LICENSE
├── README.md
```
## 核心技术
### 依赖
- [Mysql] 5.7
- [Jdk] 1.8
### 后端
- [Spring Boot2.3.5.RELEASE](https://spring.io/projects/spring-boot/): Spring Boot是一款开箱即用框架让我们的Spring应用变的更轻量化、更快的入门。
在主程序执行main函数就可以运行。你也可以打包你的应用为jar并通过使用java -jar来运行你的Web应用
- [Mybatis-plus3.3.2](https://mp.baomidou.com/): MyBatis-plus简称 MP是一个 MyBatis (opens new window) 的增强工具。
- [flyway5.2.1](https://flywaydb.org/): 主要用于在你的应用版本不断升级的同时,升级你的数据库结构和里面的数据
### 前端
- [npm](https://www.npmjs.com/)node.js的包管理工具用于统一管理我们前端项目中需要用到的包、插件、工具、命令等便于开发和维护。
- [webpack](https://webpack.docschina.org/):用于现代 JavaScript 应用程序的静态模块打包工具。
- [ES6](https://es6.ruanyifeng.com/)JavaScript的新版本ECMAScript6的简称。利用ES6我们可以简化我们的JS代码同时利用其提供的强大功能来快速实现JS逻辑。
- [vue-cli](https://cli.vuejs.org/)Vue的脚手架工具用于自动生成Vue项目的目录及文件。
- [vue-router](https://router.vuejs.org/) Vue提供的前端路由工具利用其我们实现页面的路由控制局部刷新及按需加载构建单页应用实现前后端分离。
- [element-ui](https://element.eleme.cn/#/zh-CN)基于MVVM框架Vue开源出来的一套前端ui组件。
- [avue](https://www.avuejs.com/): 用该组件包裹后可以变成拖拽组件,采用相对于父类绝对定位,用键盘的上下左右也可以控制移动。
- [vue-echarts](https://www.npmjs.com/package/vue-echarts/): vue-echarts是封装后的vue插件基于 ECharts v4.0.1+ 开发。
- [vue-superslide](https://www.npmjs.com/package/vue-super-slider/): Vue-SuperSlide(Github) 是 SuperSlide 的 Vue 封装版本。
- [vuedraggable](https://github.com/SortableJS/Vue.Draggable/): 是一款基于Sortable.js实现的vue拖拽插件。
- [luckysheet](https://gitee.com/mengshukeji/Luckysheet): Luckysheet 一款纯前端类似excel的在线表格功能强大、配置简单、完全开源。
## 部署方式
**[运行环境参考文档](https://ajreport.beliefteam.cn/report-doc/guide/quicklyDevelop.html)** <br>
**注意版本兼容性** <br>
源码 doc -> docs -> guide 目录下即所有文档。<br>
启动文档(在线文档图片多,打开很慢可以本地启动文档,方便查看) <br>
```
cd .\doc\
npm run docs:dev
```
### 发行版部署
**[发行版部署详细文档](https://ajreport.beliefteam.cn/report-doc/guide/quicklyDistribution.html)** <br>
简易步骤
```
下载最新发行版,解压
cd aj-report-xxxx
vim conf/bootstrap.yml 修改数据库连接、上传下载地址等信息
sh bin/start.sh Linux启动
bin/start.bat Windows修改第4行的JAVA_HOME后(去掉rem注释),双击启动
启动后访问
http://serverip:9095
用户名密码admin/123456
```
### 源码编译部署
**[源码编译部署详细文档](https://ajreport.beliefteam.cn/report-doc/guide/quicklySource.html)** <br>
在Linux上先准备好maven、node.js、jdk
- [Apache Maven] 3.5 <br>
- [Node.js] v14.16.0 <br>
- [Jdk] 1.8
简易步骤
```
git clone https://gitee.com/anji-plus/report.git
cd report
sh build.sh
编译完成放在build文件夹 aj-report-xxxx.zip
unzip aj-report-xxxx.zip
cd aj-report-xxxx
vim conf/bootstrap.yml 修改数据库连接、上传下载地址等信息
sh bin/start.sh Linux启动
bin/start.bat Windows修改第4行的JAVA_HOME后(去掉rem注释),双击启动
启动后访问
http://serverip:9095
用户名密码admin/123456
```
### 前后端分离部署
**[前后端分离部署参考文档](https://ajreport.beliefteam.cn/report-doc/guide/quicklySeparate.html)** <br>
## 快速入门
**[快速入门](https://ajreport.beliefteam.cn/report-doc/guide/quicklyUse.html)** <br>
**[更多社区大屏](https://ajreport.beliefteam.cn/report-doc/guide/bigScreenCase.html)** <br>
**[社区大屏下载链接](https://ajreport.beliefteam.cn/download/)** <br>
## SQL初始化
sql文件的目录在report-core --> src --> main --> resources -- > db.migration <br>
系统初始化时flyway会自动的将该目录下的sql文件执行不需要手动执行sql文件执行完将会创建
aj_report存放系统基础数据数据库 <br>
## 谁在使用
感谢关注并使用AJ-Report的朋友如果贵公司、组织、学校等正在使用AJ-Report希望可以按照此[Issue](https://gitee.com/anji-plus/report/issues/I3ZXT4)
登记并提供贵公司、组织、学校的logo我们将把贵方的logo放在项目首页进行展示并优先进行技术支持 <br>
<a href='http://www.anji-plus.com/'> <img src="https://ajreport.beliefteam.cn/file/download/d287d4d3-d30b-4850-9bac-a6c991409251" width = "130" height = "50" align=left/> </a>
<a href='https://www.yunstech.cn/'><img src="https://ajreport.beliefteam.cn/file/download/d9020e78-cd51-404d-9996-ef32a3654beb" width = "130" height = "50" /> </a>
<a href='http://www.fgkb.net/'><img src="https://ajreport.beliefteam.cn/file/download/9ee5b709-5033-4cd5-a784-ebd2877fd373" width = "130" height = "50" /> </a>
<a href='http://www.turingoal.com/'><img src="https://ajreport.beliefteam.cn/file/download/cda7bf68-376b-45dc-9a55-c52b21e4a8c8" width = "130" height = "50" /> </a>
<br>
<a href='https://www.gykjweb.com/'><img src="https://ajreport.beliefteam.cn/file/download/d13b03f5-0c20-4878-9a79-f3c76b44bfd9" width = "130" height = "130" /> </a>
<img src="https://ajreport.beliefteam.cn/file/download/7fb4731c-a697-4049-b386-396a6c1f9270" width = "130" height = "130" />
<img src="https://foruda.gitee.com/images/1694349610486939594/f2cd89ab_7349845.png" width = "130" height = "130" />
<a href='https://soft.pusdn.com/'><img src="https://foruda.gitee.com/images/1694967000938437067/9f2f7fcf_868742.png" width = "130" height = "130" /> </a>
<br>
<a href='http://www.plian.net/'><img src="https://ajreport.beliefteam.cn/file/download/7838f2c2-fdce-4ca7-8373-14d13dcda5cc" width = "130" height = "50" /> </a>
<a href='https://www.zjjcl.cn/'><img src="https://ajreport.beliefteam.cn/file/download/8df07663-60c9-4e32-a0f2-0ea7d5c46ff9" width = "130" height = "50" /> </a>
<a href='http://www.jiuyinkj.com/'><img src="https://ajreport.beliefteam.cn/file/download/5889f0e6-ba08-4990-ac89-eabfbb8af8bd" width = "130" height = "50" /> </a>
<a href='http://www.yourongyun.cn/'><img src="https://ajreport.beliefteam.cn/file/download/90e15ed9-5594-4c14-b318-72aeb6816fb9" width = "130" height = "50" /> </a>
</br>
<a href='https://www.wenkai.net/'><img src="https://ajreport.beliefteam.cn/file/download/ec788c55-bffd-4809-ae3c-0ce2cbd1a9d0" width = "130" height = "50" /> </a>
<a href='http://www.sungcor.com/'><img src="https://ajreport.beliefteam.cn/file/download/0514a4a6-787b-4e25-be94-03ff94309553" width = "130" height = "50" /> </a>
<a href='http://www.jtit.com.cn/'><img src="https://ajreport.beliefteam.cn/file/download/1dc47a36-a515-4775-af44-262225b3662b" width = "130" height = "50" /> </a>
<img src="https://foruda.gitee.com/images/1674127216326288249/5a251727_10057706.png" width = "130" height = "50" />
<br>
<img src="https://foruda.gitee.com/images/1691410310696414681/4d929a1f_9924966.png" width = "130" height = "50" />
<img src="https://foruda.gitee.com/images/1699350359035432620/d6f9fe27_12173106.jpeg" width = "130" height = "50" />
<br>
<img src="https://foruda.gitee.com/images/1696254998043055555/67afe17a_4817562.png" width = "130" height = "130" />
<img src="https://ajreport.beliefteam.cn/file/download/38efc241-02db-404e-a181-e5f7632ff2f6" width = "130" height = "130" />
## 已知问题
- IE白屏兼容性问题
## 版本问题
已知以下版本存在兼容性问题,请不要使用
- Node.js V16及以上
- openJdk
- Jdk 1.7及以下/11及以上jdk11部分版本有问题
- Mysql 8.08.0.23/26版本没有问题8.0.21版本存在问题)
**[常见问题](https://ajreport.beliefteam.cn/report-doc/guide/question.html)**
## 商业授权
AJ-Report使用[Apache2.0开源协议](http://www.apache.org/licenses/LICENSE-2.0.html)
允许商业使用但务必保留类作者、Copyright信息。 <br>
个人和企业,在直接使用、二次开发后商业使用,需要遵守:
- 包含Apache LICENSE文件
- 如果修改了代码,需要在被修改的文件中说明
- 在修改和有源代码衍生的代码中,需要带有原来代码中的协议,商标
- 在二次开发后商业发布的产品中使用了多个开源软件则必须包含一个Notice文件在Notice文件中需要带有Apache
LICENSE。你可以在Notice中增加自己的许可但不可以表现为对Apache
LICENSE构成更改。
## 技术支持
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
个人企业微信:加微信进群备注 **AJ-Report** 或者 **Report****一定要加备注 **<br>
如果不是为了进群,请直接说明来意,每天加群的都很多,企微也是我们自己的工作企微,会有很多消息会被刷下去,如果半天没有回复你,请过段时间再发送。 <br>
<img src="https://images.gitee.com/uploads/images/2021/0729/130901_1672e6c5_7492051.jpeg" width = "300" height = "300" align=left/>
AJ-Report技术交流五群新群可直接加<br>
<img src="https://images.gitee.com/uploads/images/2021/1101/130421_caa25124_7492051.jpeg" width = "300" height = "300" align=left/> <br>
## 更多支持
联系方式 <br>
<img src="https://foruda.gitee.com/images/1681893479845506596/859934b5_1950629.png" width = "300" height = "300" align=left/>
## 加入我们
- 提交PR是最快的加入方式:<br>
· PR可以包含新功能、现有功能的改进。<br>
. PR请提交到dev分支 <br>
- 提供文档原文或者文档链接:<br>
. 文档原文的话请放在doc/docs/guide/community目录下可直接提交pr <br>
. 文档链接的话,文档需要完全的公开,不掺杂收费等相关内容,审核通过会放在首页 <br>
- 提供大屏模板:<br>
. 可将自己设计好的大屏进行导出(不包含数据集),将导出产生的压缩包提供给我们(加个人企微) <br>
. 提供的大屏将会在AJ-Report在线演示环境进行展示和供其他人下载 <br>
#### 开源不易劳烦各位star ☺
## 感谢JetBrains 的支持
#### JetBrains:[https://www.jetbrains.com/?from=AJ-Report](https://www.jetbrains.com/?from=AJ-Report"链接")
<br>
## Stargazers over time
[![Stargazers over time](https://starchart.cc/anji-plus/report.svg)](https://starchart.cc/anji-plus/report)

@ -0,0 +1,38 @@
#!/bin/bash
echo "判断node.js mvn是否存在"
command -v npm || { echo >&2 "I require node.js v14.16.0+ but it's not installed. Aborting."; sleep 5; exit 1; }
command -v mvn || { echo >&2 "I require maven 3.5 + but it's not installed. Aborting."; sleep 5; exit 1; }
cd `dirname $0`
BuildDir=`pwd` #工程根目录
echo "build web"
cd $BuildDir/report-ui
echo "npm install"
npm install
echo ""
echo "npm run build"
npm run build:prod
echo "publish web to springboot src/main/resources/static"
mkdir -p $BuildDir/report-core/src/main/resources/static
mv $BuildDir/report-ui/dist/* $BuildDir/report-core/src/main/resources/static/
echo ""
echo "build springboot"
cd $BuildDir/report-core
echo "mvn clean"
mvn clean
echo ""
echo "mvn package"
mvn package -Dmaven.test.skip=true
echo "zip finish in build dir"
if [ ! -d "$BuildDir/build" ]; then
mkdir $BuildDir/build
fi
mv $BuildDir/report-core/target/aj-report-*.zip $BuildDir/build/
rm -rf $BuildDir/report-core/src/main/resources/static/*
echo "Finish"

@ -0,0 +1,34 @@
#!/bin/bash
#该脚本为私有化脚本打包成内含网页的product-report-starter放在内网私服
#判断node.js mvn是否存在
command -v npm >/dev/null 2>&1 || { echo >&2 "I require node.js v14.16.0+ but it's not installed. Aborting."; sleep 5; exit 1; }
command -v mvn >/dev/null 2>&1 || { echo >&2 "I require maven 3.5 + but it's not installed. Aborting."; sleep 5; exit 1; }
cd `dirname $0`
BuildDir=`pwd` #工程根目录
#重置pom和index.js
cat $BuildDir/build/index.js > $BuildDir/report-ui/config/index.js
cat $BuildDir/build/pom.xml > $BuildDir/report-core/pom.xml
echo "build web"
cd $BuildDir/report-ui
rm -rf dist
npm install >/dev/null 2>&1
npm run build:prod
echo "publish web to springboot src/main/resources/static"
rm -rf $BuildDir/report-core/src/main/resources/db/migration
rm -rf $BuildDir/report-core/src/main/resources/static
mkdir -p $BuildDir/report-core/src/main/resources/static
mv $BuildDir/report-ui/dist/* $BuildDir/report-core/src/main/resources/static/
echo "build springboot"
cd $BuildDir/report-core
mvn clean deploy -DskipTests
rm -rf $BuildDir/report-core/src/main/resources/static
git reset --hard

17
doc/.gitignore vendored

@ -0,0 +1,17 @@
.DS_Store
node_modules/
dist/
../.idea/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
yarn.lock
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

@ -0,0 +1,8 @@
## 文档
文档基于vue-press实现运行步骤
1. npm install
2. npm run docs:dev
3. http://localhost:8080

@ -0,0 +1,103 @@
module.exports = {
base: '/report-doc/',
title: 'AJ-Report',
description: '使用拖拽快速生成动态大屏报表',
dest: 'dist',
lastUpdated: 'Last Updated',
theme: '',
themeConfig: {
logo: '/logo.png',
smoothScroll: true,
sidebarDepth: 2,
nav: [
{text: '首页', link: '/'},
{text: '指南', link: '/guide/'},
{text: 'GitHub', link: 'https://github.com/anji-plus/report'},
{text: 'Gitee', link: 'https://gitee.com/anji-plus/report'},
{text: '谁在使用', link: '/guide/briefUsing'},
{text: '更多大屏', link: '/guide/bigScreenCase'},
],
sidebar: {
'/guide/': [
{
title: '介绍',
collapsable: false,
children: [
{title: '简介', path: '/guide/'},
{title: '谁在使用', path: '/guide/briefUsing'},
{title: '技术支持', path: '/guide/briefSupport'},
{title: '更多大屏', path: '/guide/bigScreenCase'},
]
},
{
title: 'Releases',
collapsable: false,
children: [
{title: 'V1.0.0', path: '/guide/releases/1.0.0'},
{title: 'V1.1.0', path: '/guide/releases/1.1.0'},
{title: 'V1.2.0', path: '/guide/releases/1.2.0'},
]
},
{
title: '快速入门',
collapsable: false,
children: [
{title: '开发环境', path: '/guide/quicklyDevelop'},
{title: '发行版部署', path: '/guide/quicklyDistribution'},
{title: '源码部署', path: '/guide/quicklySource'},
{title: '前后端分离', path: '/guide/quicklySeparate'},
{title: '快速使用', path: '/guide/quicklyUse'},
]
},
{
title: '用户权限',
collapsable: false,
children: [
{title: '权限管理', path: '/guide/authManager'},
]
},
{
title: '操作手册',
collapsable: false,
children: [
{title: '数据源', path: '/guide/datasource'},
{title: '数据集', path: '/guide/dataset'},
{title: '报表管理', path: '/guide/reportManager'},
{title: '大屏报表', path: '/guide/dashboard'},
{title: '表格报表', path: '/guide/excel'},
{title: '导入导出', path: '/guide/importExport'},
{title: '报表分享', path: '/guide/reportShare'},
{title: '图表配置项', path: '/guide/chartsConfig'},
{title: '图表组件', path: '/guide/charts'},
{title: '图表联动', path: '/guide/chartsLinkage'},
]
},
{
title: '其他',
collapsable: false,
children: [
{title: '常见问题', path: '/guide/question'}
]
},
{
title: '社区提供',
collapsable: false,
children: [
{title: '说明', path: '/guide/community/report'},
{title: '搭建AJ-Report开发环境', path: '/guide/community/AC1688/搭建aj-report开发环境'}
]
}
],
}
},
plugins: [
['@vuepress/back-to-top', true],
],
configureWebpack: {
resolve: {
alias: {
'@': '/.vuepress/public'
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@ -0,0 +1,23 @@
// placeholder for test, dont't remove it.
//.content {
// font-size 30px;
//}
pre.vue-container
border-left-width: .5rem;
border-left-style: solid;
border-color: #42b983;
border-radius: 0px;
& > code
font-size: 14px !important;
& > p
margin: -5px 0 -20px 0;
code
background-color: #42b983 !important;
padding: 3px 5px;
border-radius: 3px;
color #000
em
color #808080
font-weight light

@ -0,0 +1,25 @@
---
home: true
heroImage: /logo.png
actionText: 快速开始 →
actionLink: /guide/
footer: Apache 2.0 Licensed | Copyright © 2021 Anji-Plus Report All Rights Reserved
---
<div style="text-align: center">
</div>
<div class="features">
<div class="feature">
<h2>技术先进</h2>
<p>使用最流行的技术SpringBoot、Vue、Element。</p>
</div>
<div class="feature">
<h2>丰富组件</h2>
<p>是一个包含前后端代码实现,同时支持动态扩展数据源.</p>
</div>
<div class="feature">
<h2>功能完善</h2>
<p>支持多数据源,多数据集,丰富的大屏组件实现拖拽生成大屏</p>
</div>
</div>

@ -0,0 +1,70 @@
## 简介
&emsp; &emsp; AJ-Report是一个完全开源的BI平台酷炫大屏展示能随时随地掌控业务动态让每个决策都有数据支撑。<br>
&emsp; &emsp;
多数据源支持内置mysql、elasticsearch、kudu等多种驱动支持自定义数据集省去数据接口开发目前已支持30+种大屏组件/图表,不会开发,照着设计稿也可以制作大屏。<br>
&emsp; &emsp; 三步轻松完成大屏设计:配置数据源---->写SQL配置数据集---->拖拽配置大屏---->保存发布。欢迎体验。
## 系统特性
1. 最新最稳定的技术栈
2. 支持多数据源配置
3. 丰富的大屏组件。拖拽配置实现动态大屏
## 在线体验
#### &emsp; [在线体验](https://ajreport.beliefteam.cn/index.html "链接"): https://ajreport.beliefteam.cn/index.html &emsp;体验账号guest 密码guest
#### &emsp; [在线提问](https://gitee.com/anji-plus/report/issues "issue"): https://gitee.com/anji-plus/report/issues <br>
## 发行版本
#### &emsp; [下载链接](https://gitee.com/anji-plus/report/releases "下载链接"): https://gitee.com/anji-plus/report/releases <br>
## 功能概述
#### &emsp; 组件介绍
&emsp;&emsp; 大屏设计AJ-Report是一个可视化拖拽编辑的直观酷炫具有科技感的图表工具全开源项目。
内置的基础功能包括数据源,数据集,报表管理,项目部分截图如下。<br>
![shipin](../picture/shipin.gif)
## 数据流程图
![liucheng](../picture/liucheng.png)
## 打包目录
```
├── bin 启动命令脚本
│ ├── restart.sh
│ ├── start.bat
│ ├── start.sh
│ └── stop.sh
├── conf 配置文件目录
│ └── bootstrap.yml
├── logs 启动日志目录
├── cache 本地缓存目录
├── lib 自定义扩展包&report-core核心包
```
## 系统目录
```
├── doc 文档源码
│ ├── docs
│ ├── package.json
│ └── README.md
├── pom.xml 父pomjar版本管理
├── report-core java源码
│ ├── pom.xml gaea父pomjar版本管理
│ └── README.md
├── report-ui 前端vue源码
├── LICENSE
├── README.md
```

@ -0,0 +1,37 @@
## 新增用户
![img](../picture/authmanager/img.png) <br>
![img](../picture/authmanager/img_1.png) <br>
新增用户的默认密码是在bootstrap.yml文件中配置的 <br>
![img](../picture/authmanager/img_2.png) <br>
## 用户授权
**注意**:新建用户完成后需要给用户授权,否则新用户登陆是啥也看不到。<br>
![img](../picture/authmanager/img_3.png) <br>
![img](../picture/authmanager/img_4.png) <br>
**注**:这里没有给新用户赋予默认角色的原因是,在角色管理中角色是可以被删除和修改的,因此在新建用户时需要手动的去授权角色 <br>
## 角色管理
![img](../picture/authmanager/img_5.png) <br>
## 权限分配
为角色分配权限,可看已有角色示例 <br>
![img](../picture/authmanager/img_6.png) <br>
## 导入导出权限
**注**现在guest用户的权限是底层写死只有访问权限无实质操作权限。<br>
导入导出的权限是在 角色 --> 分配权限中控制。 <br>
![img](../picture/authmanager/img_7.png) <br>
用户绑定了角色,角色则绑定了权限,是这样一层关系。 <br>

@ -0,0 +1,45 @@
## 社区提供
### **[~无痕~@tengzhouboy](https://gitee.com/tengzhouboy)** 提供 <br>
[AJ-Report分享链接](https://ajreport.beliefteam.cn/index.html#/aj/mtwbjPot) <br>
![img.png](../picture/bigScreenCase/img.png) <br>
### **[心瘾丶 @yi_shan_liu](https://gitee.com/yi_shan_liu)** 提供 <br>
[AJ-Report分享链接](https://ajreport.beliefteam.cn/index.html#/aj/hkBJgLW0) <br>
![img1](../picture/bigScreenCase/img1.png) <br>
[AJ-Report分享链接](https://ajreport.beliefteam.cn/index.html#/aj/Hgfi4pj5) <br>
![img2](../picture/bigScreenCase/img2.png) <br>
[AJ-Report分享链接](https://ajreport.beliefteam.cn/index.html#/aj/zJa5Wwey) <br>
![img3](../picture/bigScreenCase/img3.png) <br>
[AJ-Report分享链接](https://ajreport.beliefteam.cn/index.html#/aj/D0cpO4re) <br>
![img4](../picture/bigScreenCase/img4.png) <br>
## 大屏下载
**注在线体验环境因为服务器配置问题点击导出反应较慢因此推荐直接下载你想要的大屏zip包即可** <br>
- 通过[下载链接](https://ajreport.beliefteam.cn/download/)下载 <br>
1、下载对应大屏的zip包 <br>
![img1](../picture/bigScreenCase/img_1.png) <br>
![img2](../picture/bigScreenCase/img_2.png) <br>
2、在自己的服务环境通过“报表管理”菜单新建一个大屏点击设计进入大屏设计界面。<br>
![img3](../picture/bigScreenCase/img_3.png) <br>
<br>
- 通过在线体验环境导出大屏 <br>
1、进入对应大屏的设计界面 <br>
![img4](../picture/bigScreenCase/img_4.png) <br>
2、在自己的服务环境通过“报表管理”菜单新建一个大屏点击设计进入大屏设计界面。<br>
![img3](../picture/bigScreenCase/img_3.png) <br>

@ -0,0 +1,9 @@
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
个人企业微信加微信进群备注AJ-Report或者Report <br>
如果不是为了进群,请直接说明来意,每天加群的都很多,企微也是我们自己的工作企微,会有很多消息会被刷下去,如果半天没有回复你,请发送多次 <br>
![weixin.png](../picture/weixin.jpg)
#### 开源不易劳烦各位star ☺

@ -0,0 +1,17 @@
希望你们的logo出现在此[请点此Issue进行登记](https://gitee.com/anji-plus/report/issues/I3ZXT4) <br>
<a href='http://www.anji-plus.com/'> <img src="https://ajreport.beliefteam.cn/file/download/d287d4d3-d30b-4850-9bac-a6c991409251" width = "130" height = "50" align=left/> </a>
<a href='https://www.yunstech.cn/'><img src="https://www.yunstech.cn/images/logo.png" width = "130" height = "50" /> </a>
<a href='http://www.fgkb.net/'><img src="https://ajreport.beliefteam.cn/file/download/9ee5b709-5033-4cd5-a784-ebd2877fd373" width = "130" height = "50" /> </a>
<a href='http://www.turingoal.com/'><img src="https://ajreport.beliefteam.cn/file/download/cda7bf68-376b-45dc-9a55-c52b21e4a8c8" width = "130" height = "50" /> </a>
<a href='http://www.plian.net/'><img src="https://ajreport.beliefteam.cn/file/download/7838f2c2-fdce-4ca7-8373-14d13dcda5cc" width = "130" height = "50" /> </a>
<a href='https://www.gykjweb.com/'><img src="https://ajreport.beliefteam.cn/file/download/d13b03f5-0c20-4878-9a79-f3c76b44bfd9" width = "130" height = "130" /> </a>
<img src="https://ajreport.beliefteam.cn/file/download/7fb4731c-a697-4049-b386-396a6c1f9270" width = "130" height = "130" /> <br>
<a href='https://www.zjjcl.cn/'><img src="https://ajreport.beliefteam.cn/file/download/8df07663-60c9-4e32-a0f2-0ea7d5c46ff9" width = "130" height = "50" /> </a>
<a href='http://www.jiuyinkj.com/'><img src="https://ajreport.beliefteam.cn/file/download/5889f0e6-ba08-4990-ac89-eabfbb8af8bd" width = "130" height = "50" /> </a>
<a href='http://www.yourongyun.cn/'><img src="https://ajreport.beliefteam.cn/file/download/90e15ed9-5594-4c14-b318-72aeb6816fb9" width = "130" height = "50" /> </a>
<a href='https://www.wenkai.net/'><img src="https://ajreport.beliefteam.cn/file/download/ec788c55-bffd-4809-ae3c-0ce2cbd1a9d0" width = "130" height = "50" /> </a>
<a href='http://www.sungcor.com/'><img src="https://ajreport.beliefteam.cn/file/download/0514a4a6-787b-4e25-be94-03ff94309553" width = "130" height = "50" /> </a> <br>
<a href='http://www.jtit.com.cn/'><img src="https://ajreport.beliefteam.cn/file/download/1dc47a36-a515-4775-af44-262225b3662b" width = "130" height = "50" /> </a>
<img src="https://foruda.gitee.com/images/1674127216326288249/5a251727_10057706.png" width = "130" height = "50" />
<img src="https://foruda.gitee.com/images/1691410310696414681/4d929a1f_9924966.png" width = "130" height = "50" />

@ -0,0 +1,380 @@
## 图表和数据集之间的关系
图表和数据集是强关联关系一个图表需要什么样的数据才能进行展示下面都有说明以柱状图举例只能用两个字段的数据集进行数据展示那使用数据集有2个以上字段那肯定图表无法正常展示反之有个数据集是3个字段那就找能展示3个字段的图表千万别搞小聪明定了好多个字段的数据集然后从里面挑几个字段进行展示不要这么干。<br>
## 文本栏
### 文本框
![img_6.png](../picture/dashboard/img_6.png) <br>
#### 数据格式
![img1](../picture/charts/img.png) <br>
### 滚动文本
同文本框,操作无异。 <br>
### 超链接
![img2](../picture/charts/img_1.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 当前时间
已支持多种时间格式,其他格式请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>
![img_1.png](../picture/dashboard/img_1.png) <br>
### 图片
![img_7.png](../picture/dashboard/img_7.png) <br>
**注:** 如果没有在bootstrap.yml配置文件中没有正确配置上传下载的路径这里肯定是失败的。 <br>
### 视频
**注:** 视频的地址应是直接可以访问的,不需要登录之类。 <br>
**暂不支持视频循环播放**<br>
### 表格
![img](../picture/dashboard/img_22.png) <br>
表格字段对应的数据只选择“文本数字”。<br>
![img14](../picture/dashboard/img_23.png) <br>
**注意:**
多个字段的时候,需要在“配置-新增”添加你选择数据集所对应的字段即“配置”中“表体设置”的“key值”要和你“动态数据对应的字段名”保持一致类似于映射关系。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 内联框架
当超链接和视频链接无效的时候,请尝试使用内联框架。 <br>
## 样式组件
### 边框
![img42](../picture/charts/img_42.png) <br>
### 流光直线
![img44](../picture/charts/img_44.png) <br>
### 装饰
![img43](../picture/charts/img_43.png) <br>
### 装饰饼图
![img12](../picture/charts/img_12.png) <br>
## 柱状图
### 柱状图
柱状图数据集对应字典值需要选择一个“X轴”、“柱状”只需要2个字段。 <br>
![img_13](../picture/charts/img_13.png) <br>
#### 数据格式
![img3](../picture/charts/img_2.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱状图-渐变色
同上柱状图,颜色调整为支持渐变色。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱状堆叠图
动态的数据集对应字典值需要选择一个“X轴”、“Y轴”、“柱状”也就是说需要3个字段不明白可以看看静态数据。 <br>
![img.17](../picture/dashboard/img_17.png) <br>
#### 数据格式
![img4](../picture/charts/img_3.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱状对比图
数据集需要3个字段其中一个作为对比的字段只能为2种值只有2种值作为对比的字段要选择“y轴字段”字典。因为底层的解析用的是堆叠图的解析这里的y轴字段并不是指的图表上面的y轴还请注意有强迫症可以自行修改源码的解析剩下的2个字段对应字典看图。 <br>
![img18](../picture/dashboard/img_18.png) <br>
#### 数据格式
![img11](../picture/charts/img_11.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 双Y柱图
数据集需要3个字段其中一个字段作为“X轴”另外两个数值字段选择“柱状”左右Y轴分别代表选择柱状的俩种数值。 <br>
![img33](../picture/charts/img_33.png) <br>
#### 数据格式
![img34](../picture/charts/img_34.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 折线图
### 折线图
折线图数据集对应字典值需要选择一个“X轴”、“折线”只需要2个字段。 <br>
![img14.png](../picture/charts/img_14.png) <br>
#### 数据格式
同柱形图数据格式一致。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 折线堆叠图
动态的数据集对应字典值需要选择一个“X轴”、“Y轴”、“折线”也就是说需要3个字段不明白可以看看静态数据。 <br>
![img.32](../picture/charts/img_32.png) <br>
#### 数据格式
同柱状堆叠图数据格式一致。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 折线对比图
数据集需要3个字段其中一个作为对比的字段只能为2种值只有2种值作为对比的字段要选择“y轴字段”字典剩下的字典对应看图。 <br>
![img19](../picture/dashboard/img_19.png) <br>
**注**如果提示语设置选择“十字形”请注意需要选择“X轴颜色、上Y轴颜色、下Y轴颜色”不然预览图表鼠标选择是全白色还请注意。<br>
![img20](../picture/dashboard/img_20.png) <br>
#### 数据格式
同柱状对比图数据格式一致。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 柱线图
### 柱线图
柱线图数据集对应字典值需要选择一个“X轴”、“柱状”、“折线”需要3个字段图例名称用 | 进行分隔。<br>
![img15](../picture/charts/img_15.png) <br>
#### 数据格式
![img5](../picture/charts/img_4.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 多柱线图
多柱线图对应数据字典需要选择一个“X轴”剩下的字段可任意选择为“柱状”、“折线”图例名称用 | 进行分隔。<br>
![img16](../picture/charts/img_16.png) <br>
#### 数据格式
![img17](../picture/charts/img_17.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱线堆叠图
图表的基本操作和柱状堆叠图、折线堆叠并无大区别需要在意的是数据格式的区别绑定动态数据的时候需要你数据集有4个字段其中两个字段作为xy区分字段另外俩个作为数值字段。<br>
![img29](../picture/charts/img_29.png) <br>
![img30](../picture/charts/img_30.png) <br>
#### 数据格式
和另外俩个堆叠图相比,多了查询的一列数据,比如 "select a,b,sum(c),sum(d) from aa group by a,b" 。
![img31](../picture/charts/img_31.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 饼图
### 饼图
饼图的数据集选择的时候只能选择饼图对应的字典即“Name”、“Value”不明白可以参考静态数据。 <br>
![img8](../picture/charts/img_8.png) <br>
![img9](../picture/charts/img_9.png) <br>
#### 数据格式
![img6](../picture/charts/img_5.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 南丁格尔玫瑰图
![img71](../picture/charts/img_7.png) <br>
![img10](../picture/charts/img_10.png) <br>
#### 数据格式
同饼图数据格式一致。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 漏斗图
### 漏斗图
![img18](../picture/charts/img_18.png) <br>
#### 数据格式
同饼图数据格式一致。<br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 百分比
### 仪表盘
![img21](../picture/dashboard/img_21.png) <br>
#### 数据格式
![img7](../picture/charts/img_6.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 百分百图
![img19](../picture/charts/img_19.png) <br>
#### 数据格式
同仪表盘数据格式一致。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 中国地图
### 路线地图
路线图的动态数据集需要3个字段“源端”代表起点“目标端”代表终点“数值”代表俩点之间的值。 <br>
![img24](../picture/charts/img_24.png) <br>
#### 数据格式
可以参考静态数据,目前路线地图仅能显示“市”级别,注意地图数据名称要和地图底层数据名称保持一致,即完整的市名,可以看静态数据,如果和你提供的动态数据名称有差异,请参考源码自行修改。 <br>
![img25](../picture/charts/img_25.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 气泡地图
气泡地图动态数据集和饼图一样对应字典值需要选择一个“Name”、“Value”且name的字段值要和echarts图表里面的值能对应上可参考静态数据。 <br>
![img15](../picture/dashboard/img_15.png) <br>
#### 数据格式
可参考静态数据,目前气泡地图仅能显示“省”级别,注意动态数据的名称要和地图底层数据名称保持一致,即完整的省名,可以看静态数据,如果和你提供的动态数据名称有差异,请参考源码自行修改。 <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 柱形地图
底层解析增加了经纬度,字典值为“地址名称”、“经度坐标”、“维度坐标”、“数值” ,相对于气泡地图可在地图上显示非省会坐标。<br>
![img45](../picture/charts/img_45.png)
#### 数据格式
可参考静态数据,目前也是全国总览。
![img46](../picture/charts/img_46.png) <br>
## 词云图
### 词云图
最大最小角度都为0时则文字显示为”正“。所有词云颜色皆是随机产生动态数据每请求一次数据所有词云颜色皆改变一次。<br>
![img20](../picture/charts/img_20.png) <br>
#### 数据格式
同饼图、南丁格尔玫瑰图数据一致。<br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 热力图
### 热力图
热力图是类似坐标轴一样的数据当前的热力图数据集需要3个字段值对应的字典是选择“X轴”“Y轴”“数值”不明白可以看静态数据。 <br>
![img21](../picture/charts/img_21.png) <br>
**注意:**
图设置功能中的最大最小值将会对热力图中的数值产生反应,主要根据设定的颜色来反应,数值越靠近最大值,颜色将更深。 <br>
![img22](../picture/charts/img_22.png) <br>
#### 数据格式
![img23](../picture/charts/img_23.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 雷达图
### 雷达图
基本操作和表格一致通过配置栏的新增按钮和操作按钮对雷达顶点数量进行修改可生成5边雷达6边雷达等等”key值“和”雷达顶点“保持一致从最上端顶点逆时针规划其他顶点。<br>
![img26](../picture/charts/img_26.png) <br>
#### 数据格式
数据格式和柱线、多柱线都是类似的注意实际作为”名称“的字段比如时间字段有且只能有1个其余是”雷达顶点“字段不明白可以看静态数据格式。<br>
![img27](../picture/charts/img_27.png) <br>
![img28](../picture/charts/img_28.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
## 刻度尺
### 竖刻度尺
刻度尺数值的颜色来源于配置的渐变色渐变色分为0%-30%-50%-70%-100%数值颜色的变化会随着数值所在颜色区间的变化而变化。通过刻度设定可以调整最大刻度默认刻度是100。<br>
![img35](../picture/charts/img_35.png) <br>
![img36](../picture/charts/img_36.png) <br>
#### 数据格式
单一的数值字段,可看静态数据。
### 横刻度尺
同竖刻度尺。<br>
![img37](../picture/charts/img_37.png) <br>
#### 数据格式
单一的数值字段,可看静态数据。
## 表单
### 下拉框
下拉框组件联动的使用方式请看图表联动里面的详细描述。<br>
![img38](../picture/charts/img_38.png) <br>
#### 数据格式
“提交值”指的是下拉框提交给联动的组件字段名和字段值“显示值”是指下拉框自身下拉按钮显示的值。动态数据需要至少1个字段如果只有一个字段请选择“提交值”最多2个字段“提交值”“显示值”只能选择一个不能同时都选。<br>
注意下拉框的静态数据只是作为参考用的,并不参与解析。<br>
![img39](../picture/charts/img_39.png) <br>
**如有问题,请提交 [Issue](https://gitee.com/anji-plus/report/issues) <br>**
### 时间筛选器
默认支持的时间格式是"yyyy-MM-dd HH:mm:ss",其他日期格式暂不支持,需要自己把自己数据集中时间字段格式化成同种格式。<br>
时间筛选器组件联动的使用方式请看图表联动里面的详细描述。<br>
![img40](../picture/charts/img_40.png) <br>
![img41](../picture/charts/img_41.png) <br>

@ -0,0 +1,124 @@
## 简要说明
图表配置项的中文名称基本都是直接使用Echarts图表组件对应定义的名称非Echarts图表组件则根据功能进行命名。<br>
每个图表组件的配置项都不尽相同,配置项的作用在于调整图表、数据的展示样式,这里着重说明一些共有的配置项和特殊的配置项,因为并不是按照一个图表一个配置项介绍的,没有介绍的部分请自行尝试了。
## 通用配置项
### 图层名称
定义:定义该组件在图层中显示的名称。<br>
使用建议:
- 因为图层名称是可以重复的,所以在图层中无法准确判断该图层具体对应哪个组件,且在大屏画布中有的图表组件因为置底或者上层覆盖了别的组件,导致很难选到这个图表,如果修改了图层名称,则可以通过图层快速定位并选中该组件。<br>
![img](../picture/chartsConfig/img.png)
### 标题设置
定义:给图表组件添加标题/表头/title。 <br>
使用建议:
- 一般没有图例功能的图表组件可以直接使用这个功能,因为可能会和图例重叠。有图例的图表组件要定义图表的话,可用文本框拖动到图表上方,作为标题。<br>
![img1](../picture/chartsConfig/img_1.png)
### 柱体设置
定义:修改柱体的形状等,涉及柱状图、柱线图 <br>
使用建议:
- 当数据条目数很少时比如默认的静态数据是5条放大宽度柱体变得更粗搭配"竖展示"配置项可以得到更好的展示效果当只有一个值的时候通过XY不展示可以得到单独的一根柱子。
- V1.2.0版本增加配置项“背景显示”,可达到类似进度条的效果。<br>
![img2](../picture/chartsConfig/img_2.png)
### 折线设置
定义:修改点/折线的展示效果,涉及折线图、柱线图 <br>
使用建议:
- 当折线的量少的时候,可以选择拉大"面积厚度",折线多了,就会相关覆盖,效果反而不好。<br>
![img3](../picture/chartsConfig/img_3.png)
### X轴设置
定义定义坐标轴中的X轴的相关设置项。<br>
使用建议:
- 可以修改坐标轴的颜色,因为默认是纯白色,所以部分浏览器可能显示不出来;可以设置坐标名(柱状对比图不存在此配置项);如果数值相对密集的话,可以调整"数值间隔"。
- V1.2.0版本默认X轴数值自动换行X轴的label能显示的值的量是估算的因此给了“数值行数”配置项方便进行调整。当“数值行数”有值时默认的自动换行规则不会生效。
- V1.2.1版本取消默认X轴数值自动换行改为由配置项控制。<br>
![img4](../picture/chartsConfig/img_4.png)
### Y轴设置
定义定义坐标轴中的Y轴的相关设置项。 <br>
使用建议:
- 可以修改坐标轴的颜色,因为默认是纯白色,所以部分浏览器可能显示不出来;如果数值相对密集的话,可以调整"均分"。注意"缩放"配置项只会对那些数据差距较大时才会生效。
- V1.2.0版本新增“最大值”配置项,注意“最大值”配置项,目前只有柱状图相关的图表中有这个配置项。<br>
![img5](../picture/chartsConfig/img_5.png)
### 图例操作
定义:图例的直接来源是数据中的数值,比如在堆叠图中,图例的值就是"动态数据-Y轴字段"字典选择的字段数值,可以简单的认为是“数据分类”。<br>
使用建议:
- 填写图例名称,修改图例的值,使用"|"进行分隔,相当于别名。<br>
![img6](../picture/chartsConfig/img_6.png)
### 数值设定
定义:设定数据在图表中的显示配置。<br>
使用建议:
- 对于堆叠图、柱线图等等柱体、折线数据多的,不建议显示。<br>
![img7](../picture/chartsConfig/img_7.png)
### 提示语设置
定义:设定提示,主要用于当鼠标选中/滑动时,显示数据对应的值。<br>
使用建议:
- 设定和对应图表相反的颜色,鼠标滑动时则会醒目;注意此配置项必须保存预览鼠标选中后才能看到效果,在画布设计是看不到效果的。<br>
![img8](../picture/chartsConfig/img_8.png)
### 自定义配色
使用建议:如果不设置的话,默认就是大红色;默认按顺序给数值赋予颜色。<br>
## 专用配置项
### 文本框--文本内容
文本框和滚动文本这两个组件,修改数据--静态数据,是不会生效的,文本内容配置项中写的内容才是真正的静态数据。<br>
### 超链接--跳转方式
使用建议:
- 默认的跳转方式是本窗口,实际使用还是请选择新窗口。<br>
### 图片/图片地址
定义图片对应的url链接 <br>
使用建议:
- 这里图片的url因为只要是链接能打开就行了所以适用性范围很广但一般考虑到网络传输、安全性等问题建议自行上传图片然后用系统生成的链接地址注意目前系统赞不支持svg图片因此图片可能存在畸变要注意缩放比例。
- V1.2.0版本支持.svg格式图片上传。 <br>
### 表格--滚动间隔
定义:表格数据滚动的间隔,受到"开启滚动"、"动效时间"、"滚动个数"、"数据--动态数据--刷新时间"影响。 <br>
使用建议:
- 表格动态数据默认是5s请求一次数据因此每隔5s图表就会刷新一次这时就会重置滚动时间会出现滚动到某个值时回到开头重新滚动。想让表格把每个值都滚动显示到的话可以减少滚动间隔时间去掉动效时间增大滚动个数提高动态数据刷新时间。<br>
### 柱状图--竖展示
定义:改变柱状图的展示样式 <br>
![img9](../picture/chartsConfig/img_9.png)
### 饼图--饼图样式/模式
定义:定义饼图显示的样式、模式,涉及饼图、南丁格尔玫瑰图。<br>
使用建议:
- 按数据量多少进行选择样式。<br>

@ -0,0 +1,216 @@
## 简要说明
现有系统联动的本质是数据集查询参数“示例值”的替换, 现在联动有两种。<br>
除下文介绍的示例外,还可去数据集、体验地址去查看示例。<br>
- 表单联动 <br>
目前支持的有下拉框、时间筛选器。<br>
V1.0.0 支持被联动的组件有:<br>
- 文本栏 - V1.1.0
- 文本
- 滚动文本
- 表格
- 柱状图(包含全部)
- 折线图(包含全部)
- 柱线图(包含全部)
- 饼图(包含全部)
- 漏斗图(包含全部)
- 百分比(包含全部)-V1.1.0
- 中国地图(包含全部)
- 词云图(包含全部)-V1.1.0
- 热力图(包含全部)
- 雷达图(包含全部)
- 刻度尺(包含全部)-V1.1.0
- 图表联动:<br>
目前联动主要集中在柱状图、折线图、饼图等这种二维图表二维图表是指图表只支持2个字段的数据集当然并不是说需要3个字段的堆叠图柱状/折线)不支持联动,而是这种三维图表去联动二维图表会带来一些问题,反之二维的去联动三维的同样存在问题,因此目前源代码中只添加了部分二维图表的联动。<br>
V1.0.0 支持联动的组件有:<br>
- 柱状图
- 柱状图
- 柱状图-渐变色
- 折线图
- 折线图
- 饼图
- 饼图
- 南丁格尔玫瑰图
**注:**
没有多级联动联动都是一对一的。例如时间筛选器绑定了A柱图A柱图绑定了B饼图当使用时间筛选器更改时间后只会更新绑定的A柱图A绑定的B饼图并不会更新数据。<br>
## 表单联动
### 下拉框
- 简介-数据格式 <br>
下拉框最多两个字段数据字典对应“显示值label”、“提交值value“提交值”是必须选择的当动态数据只有一个字段的时候选择“提交值”也会将其默认展示为“显示值”。<br>
- 联动说明 <br>
被联动的组件:当前大屏中除自身以外的其他图表组件,这里获取的是图表的图层名称,每个图表都有默认的图层名称,因此有相同图表存在的话,记得修改图层名称。<br>
![img](../picture/chartsLinkage/img.png) <br>
参数配置label和value是下拉框自身字典属性。<br>
![img1](../picture/chartsLinkage/img_1.png) <br>
选择联动的图表后可以获得该图表配置的数据集并获得数据集中的查询参数然后将该查询参数进行绑定label、value。 <br>
![img2](../picture/chartsLinkage/img_2.png) <br>
下拉联动的时候就是将下拉框label/value的数据提交给联动图表的查询参数绑定label就是将下拉框label的值传递给图表的查询参数同理value只有一个查询参数的情况下肯定不能同时绑定label、value。<br>
![img3](../picture/chartsLinkage/img_3.png) <br>
- **使用注意 ** <br>
首先每个有查询参数的数据集都有对应查询参数的示例值,那么此数据集的数据则是根据此查询参数执行后的结果; <br>
下拉框在使用时,则是将下拉选择的值传递给此查询参数来获得新的数据; <br>
当使用下拉框后,已经将值传递给了某数据集的查询参数,这时候将下拉框的值清空并不会意味着传了空值给查询参数,且当数据集的刷新时间到了后也只会按下拉框传递的参数值进行查询; <br>
那么在使用下拉框查询后,想恢复原本数据集的数据只需要刷新浏览器即可。<br>
- 示例 <br>
示例中的数据集相关的sql写在 aj_report_init.sql文件中请自行查看。<br>
1、先准备两个数据集 <br>
按城市名称过滤筛选的数据集,可用于柱图、折线图等二字段图表。<br>
![img5](../picture/chartsLinkage/img_5.png) <br>
```
SELECT DATE_FORMAT(create_time,'%Y-%m-%d') create_time,sum(nums) sum_nums FROM aj_report_city where city_name ='${city_name}' group by create_time ;
```
获得城市名称对应的数据集,用于下拉框筛选。<br>
![img4](../picture/chartsLinkage/img_4.png) <br>
```
SELECT DISTINCT(city_code)city_code ,city_name FROM aj_report_city group by city_code,city_name;
```
<br>
2、给下拉框配置动态数据并设置好“提交值”、“显示值”字段 <br>
![img6](../picture/chartsLinkage/img_6.png) <br>
3、联动配置-参数配置 <br>
下拉框数据集绑定的是“提交值”也就是label这里也就是将label的值传递给柱状图数据集的查询参数city_name。<br>
当然在给下拉框绑定数据集的时候因为只绑定了“提交值”这一个字段因此这个字段的值同时作为“label、value”参数配置的时候选择value绑定city_name也是有结果。<br>
![img7](../picture/chartsLinkage/img_7.png) <br>
4、使用 <br>
注意内容看上面说明。<br>
![img8](../picture/chartsLinkage/img_8.png) <br>
<br>
### 时间筛选器
- 简介 <br>
时间筛选器组件底层定义了“startTime、endTime”字典值即开始时间、结束时间和下拉框一样使用时也是传值给绑定图表的查询参数。<br>
- 联动说明 <br>
和下拉框的操作是一样的,这里也是绑定查询参数。<br>
![img9](../picture/chartsLinkage/img_9.png) <br>
- **注意事项!!!** <br>
1、绑定的数据集的查询参数的时间格式目前必须是 "yyyy-MM-dd HH:mm:ss",其他日期格式,暂不支持。<br>
2、绑定的数据集的查询参数至少有一个是和时间有关最多两个和时间有关。<br>
3、注意sql里面时间的比较比如时间筛选器的今天是指当天的00:00:00 ~ 23:59:59 。<br>
4、如果数据集的查询参数只有开始时间/结束时间其一,那么在用时间筛选器绑定的时候注意只绑定一个。<br>
5、使用后的情况和下拉框使用后情况一致。<br>
<br>
- 数据集示例-查近7天数据并进行联动 <br>
![img10](../picture/chartsLinkage/img_10.png) <br>
```
SELECT city_name,sum(nums) sum_nums FROM aj_report_city where create_time>='${startTime}' and create_time < '${endTime}' group by city_name
```
startTime、endTime的示例值不用带上时分秒
```js
// startTime
function verification(data) {
//自定义脚本内容
//可返回true/false单纯校验键入的data正确性
//可返回文本,实时替换,比如当前时间等
//return "2099-01-01 00:00:00";
//设置日期,当前日期的前七天\
data = data.sampleItem;
//示例值不能为空,因此这里判断示例值,保证示例值和时间筛选器返回值不一样就行,
if (data.length == 10) {
// 获取7天前日期
return getDay(-7);
}
return data;
}
// 时间处理公用方法
function getDay(day) {
var today = new Date();
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds); //注意,这行是关键代码
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate);
return tYear + "-" + tMonth + "-" + tDate + " 00:00:00";
}
function doHandleMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
}
return m;
}
```
```js
// endTime
function verification(data) {
//自定义脚本内容
//可返回true/false单纯校验键入的data正确性
//可返回文本,实时替换,比如当前时间等
//return "2099-01-01 00:00:00";
//设置日期,当前日期的前七天
data = data.sampleItem;
if (data.length == 10) {
return getDay(1);
}
return data;
}
function getDay(day) {
var today = new Date();
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds); //注意,这行是关键代码
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate);
return tYear + "-" + tMonth + "-" + tDate + " 00:00:00";
}
function doHandleMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
}
return m;
}
```
## 图表联动
- 简介 <br>
图表联动即联动图表的某些数据替换掉被联动图表动态数据集的查询参数,和上面表单联动本质上是一回事。<br>
- 联动参数说明 <br>
图表联动的界面和表单联动界面都是一样的不同的在于参数配置名称的不同。在二维的图表中比如name在柱状图中代表柱图动态数据集的X轴字段value则代表数值在饼图中name对应饼图动态数据集的namevalue同样对应数值。<br>
![img11](../picture/chartsLinkage/img_11.png) <br>
- **注意事项!!!** <br>
1、用于被联动的动态数据集比如上面的示例数据集查询参数在sql里面需要用 '' 或者 ""
因为时间筛选器格式传递的数据中间有空格的。当然如果不绑定时间筛选器那么sql里面直接使用数据库时间函数就行例如DATE_FORMAT。<br>
2、联动与被联动的图表必须有相同的数据格式。理论上多维向低维填充数据是没问题的但实际操作时带来的问题会很多因此当前版本高维图表都不支持图表组件联动。<br>
3、被联动的图表的动态数据集必须得有查询参数。说的简单一点就是联动始终都是数据集参数的传递图表只是数据的载体表象。<br>
4、使用后的情况和表单组件使用后情况一致。<br>

@ -0,0 +1,244 @@
**搭建aj-report开发环境**
# 工具版本
参考
[Mysql] 5.7
[Jdk] 1.8
[Spring Boot] 2.3.5
[Mybatis-plus] 3.3.2
[flyway] 5.2.1
[Apache Maven] 3.5
[Node.js] 14.16.0
[Windows 10]
实际
Mysql 5.7.34
JDK 1.8u291
IdeaJ 2020.2.1
Spring Boot DTD
Maven 3.5.4
Windows7
Git 2.33.0 x64
Node 13.14.0-x64
Vscode 1.59.0
# 环境准备
共分前端、公共、后端。
## 后端
### Mysql
下载mysql数据库
下载地址
<https://dev.mysql.com/downloads/installer/>
步骤【选择安装类型】即Choosing a Setup Type选择【仅服务器】即Server
only
步骤【类型和网络】即Type and Networking选择【开发电脑】即Development
Computer
步骤【账户和角色】即Account and Rolesroot密码设置为root。
步骤【Windows服务】即Windows
Service勾选【配置MySQL服务作为一个Windows服务】即Configure MySQL Server as
a Windows Service
除以上外,都采用默认,一直下一步,直至安装完成。
### JDK
采用默认安装,一直下一步,直至完成。
配置环境变量
JAVA_HOME C:\\Program Files\\Java\\jdk1.8.0_291
### IdeaJ
采用默认安装,一直下一步,直至完成。
### Maven
下载地址
https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/
将压缩包解压到路径C:\\Program Files\\
添加环境变量M2_HOME C:\\Program Files\\apache-maven-3.5.4
旧版变量写法MAVEN_HOME
调整Path环境变量增加 ;%M2_HOME%C:\\bin
### 插件
IdeaJ安装spring boot开发插件
已自带,不用再安装。
安装lombok
## 公共
### Git
#### 安装
采用默认安装,一直下一步,直至完成。
#### 拉代码
为idea指定git路径
默认情况下IDEA是不自带git运行程序的所以需要通过
菜单-\>settings-\>Version Control-\>Git-\>Path to Git executable:
设置为安装git中所安装的git.exe
获取gitee上面的要拉取项目的url即页面左上方【可隆/下载】单击选择【复制】即可获得url。
在ideaj中选择路径file -\> new -\> Project from Version Control -\> Git
将url复制到URL后的方框
选择本地目录即Directory
点击【Clone】开始拉代码。
## 前端
### Node
采用默认安装,一直下一步,直至完成。
### Vscode
步骤【选择附件任务】勾选【添加到PATH重启后生效
其余采用默认安装,一直下一步,直至完成。
# 开发环境
## 后端
新建文件夹用于存放后端代码C:\\ijproj将git下载的代码解压至该目录。
### 下载源码
具体步骤见Git2.2.1.2拉代码
### 依赖插件
下载依赖和插件。Git完代码后会自动下载依赖和插件。如果pom中的依赖和插件爆红。可设置mavenFile
——\> Settings。找到Maven相关的三项设置包括Maven home directory、User
settings file、Local repository可直接使用默认设置。
遇到个别顽固爆红的依赖和插件,可以直接在本地资料库.m2\\repository中查找确认是否已经下载。确认已经下载的话则可以尝试在该依赖或者插件中增加版本号与资料库中的一致org.springframework.boot对应的路径
资料库路径\\org\\springframework\\bootspring-boot-maven-plugin对应上述路径的子文件夹spring-boot-maven-plugin此文件夹即spring-boot-maven-plugin的子文件夹是版本号2.3.5.RELEASE打开2.3.5.RELEASE就是对应的jar包等内容
### 设置Mysql
设置好mysql以便运行时自动进行初始化。
配置文件路径:/src/main/resources/bootstrap.yml在此文件中找到datasource
mysql的配置信息修改IP地址为mysql所在机器的IP调整用户密码。本文中为本地即localhost或者用127.0.0.1用户为root密码为root。
### 运行后端
确认启动了Mysql服务
然后运行后端程序
## 前端
### 下载源码
新建文件夹C:\\vsproj用于存放前端项目源码
下载源码在vscode使用【ctrl】+【\`】或者【Terminal】-\>【New
Terminal】。用cd命令进入相应的文件夹。
执行git clone https://gitee.com/anji-plus/report.git拉代码。
### 设置环境
调整配置文件配置文件路径REPORT-UI/config/dev.env.js调整BASE_API后URL地址中的IP、端口。若都在同一台电脑直接使用IP127.0.0.1端口使用默认9095。
连接后端的IP改为后端API代码所在的IP、所使用的端口。
### 编译运行
在vscode使用【ctrl】+【\`】或者【Terminal】-\>【New
Terminal】。用cd命令进入前端代码文件夹执行如下命令
命令一cd C:\\vsproj\\report\\report-ui
命令二npm init -y
命令三npm install
命令四npm run dev
命令四执行后启动了前端在浏览器中输入http://localhost:9528/\#/login
## 启动
启动顺序:确保数据库启动、确保后端启动、最后启动前端
1确保mysql已经启动
2运行后端代码
3运行前端代码
4浏览器输入http://localhost:9528/\#/login
用户admin
密码123456
# 错误
## 问题一
遇到Error creating bean with name 'flywayInitializer' defined in class path
resource解决办法
将这个Resolved
locally后面的**版本号复制**下来,连着符号一起复制,然后找到你数据库中的**flyway_schema
\_history**这个表,在最下面那一行数据中把刚刚复制的版本号替换进去就可以了。
## 问题二
问题现象:报表设计界面中看不到图表,
查看日志Access denied for user 'ajreport'@'localhost' (using password: YES)
在系统【数据源】中调整设置将IP、用户、密码等调整为在用的。
默认用户ajreport密码ajreport
改为初始化时的用户root密码root

@ -0,0 +1,14 @@
# 社区用户提交文档PR的简易说明
## 提交位置
doc -- > docs --> guide -- > community 目录 <br>
![img](../../guide/community/report/img.png) <br>
## 具体操作
- 请在community目录下新建属于你自己的文件目录命名方式可以使用自己在gitee的名字作为命名注意中文命名可能会存在的一些问题。<br>
- 在你的个人目录下你可以新建MD文件需要用到图片可以直接放一个目录如果md多图片也多建议再建下级目录存放。<br>
最后别忘了在config.js中添加配置如图示。<br>
![img](../../guide/community/report/img_1.png) <br>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,15 @@
## 设计大屏
进入大屏设计方法1 <br>
从报表管理模块选择需要设计的大屏,按图示进入大屏设计界面 <br>
![img](../picture/dashboard/img22.png) <br>
进入大屏设计方法2 <br>
从大屏报表模块选择需要设计的大屏,按图示进入大屏设计界面 <br>
![img](../picture/dashboard/img23.png) <br>
## 大屏简介
左侧为工具栏和图层,上方为功能栏,右侧为配置栏,中间为画布。<br>
![img_2.png](../picture/dashboard/img_2.png) <br>

@ -0,0 +1,160 @@
## 简介
根据选中的数据源+查询 sql 或请求体完成数据的查询。<br>
![img5](../picture/dateset/img_5.png) <br>
[数据源数据集用法总结](https://my.oschina.net/u/4517014/blog/5270828) <br>
## SQL数据集
尽量不要使用 “select *”,以及展示很大的数据量,图表不一定能展示、页面可能会卡死。 <br>
### Mysql数据集
在数据源处添加了mysql的数据源后即可使用。<br>
![img_1.png](../picture/dateset/img_1.png) <br>
### ES数据集
**注**es是通过调用xpack-sql注意写法数据源亦有说明。 <br>
![es.png](../picture/dateset/img.png) <br>
### Kudu数据集
![kudu.png](../picture/dateset/img_2.png) <br>
## HTTP数据集
即原有Http数据源的功能请注意Http接口返回类型必须是Json、不能是texttext无法解析。 <br>
支持请求路径和请求头中存在动态数据,采用 ${} 方式进行动态替换,具体看下面查询参数的相关说明。 <br>
![http.png](../picture/dateset/img_7.png) <br>
## 功能栏
**可以看在线环境,有示例参考** <br>
### 查询参数
[数据源数据集用法总结](https://my.oschina.net/u/4517014/blog/5270828) <br>
注意参数名要和sql(请求体)中变量名保持一致sql(请求体)中的变量用 ${} 表示。 <br>
![img3](../picture/dateset/img_3.png) <br>
如图所示,查询 sql 中定义了两个变量startTime 和 endTime。那需要我们在查询参数中添加对应的两个参数。 参数名保持和查询 sql
中 ${param} 保持一致。<br>
数据类型可以不填,暂时未用到。
#### 数据类型
暂时无用写了也不生效目前统一都是string处理。 <br>
#### 高级规则
自定义JS这里的JS是java的scriptengine执行的支持ES5的写法。
- 示例一 <br>
返回yyyyy-MM-dd类型的当前时间
```js
// 返回yyyyy-MM-dd类型的当前时间
function verification(data) {
//自定义脚本内容
//获取当前时间
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
var nowDate = year + "-" + month + "-" + day;
return nowDate;
}
```
- 示例二 <br>
不传参则查询全部
```sql
// sql可以这么写
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') create_time, sum(nums) sum_nums
FROM aj_report_city ${city_name}
group by create_time;
```
```js
// 不传参则查询全部
function verification(data) {
// 获取示例值
data = data.sampleItem;
if (data == null || data == '') {
return ''
}
data = 'where city_name = "' + data + '" '
return data;
}
```
**注:** 当前V1.0.0版本示例值是不可为空的,所以实际使用可能会麻烦点
### 数据转换
数据转换是在执行完 sql 之后进行的数据清洗操作。
#### js脚本
![img4](../picture/dateset/img_4.png) <br>
入参是data返回值也必须是data中间是JS的处理过程注意入参返回都是``List<JSONObject>``
```js
// 根据sql查询出的结果进行数据清洗
function dataTransform(data) {
//自定义脚本内容
//1.遍历测试预览中的java.util.ArrayList<java.lang.Object>
for (j = 0, len = data.length; j < len; j++) {
//获取一行数据
var row = data[j]
//比如对brand字段进行拆分,例如A-100B-50
var brand = row['brand']
var split = brand.split('-')
//新增两个字段
var model = split[0]
var series = split[1]
//对原始对象赋值
data[j]['model'] = model
data[j]['series'] = series
}
return data;
}
```
#### java脚本
通过Groovy来进行实现的[Groovy用法参考](https://my.oschina.net/u/4517014/blog/5526324) <br>
如下图所示: <br>
建议在 idea 写好复制整个类到此处,位置 report-core/src/test/java/com/DemoGroovyHandler.java <br>
出入参皆为 ``List<JSONObject>`` data
![img8](../picture/dateset/img_8.png) <br>
#### 字典项
针对查询结果某一项 key 值,做一个翻译。<br>
![img6.png](../picture/dateset/img_6.png) <br>
### 数据预览
针对此次数据集,进行数据预览,尽量不要使用 select * from table <br>
## URL传参
写法就是就URL链接后面拼接参数唯一要注意的就是**参数名**要和数据集配置的**查询参数名**一致,多个参数则用 & 号。
例如:原始的大屏链接
https://xxx.xxx.xxx/index.html#/bigscreen/viewer?reportCode=testForm
假设大屏里面部分数据集查询参数名是 startTime
https://xxx.xxx.xxx/index.html#/bigscreen/viewer?reportCode=testForm&startTime=2023-05-05

@ -0,0 +1,95 @@
## 介绍
[数据源数据集用法总结](https://my.oschina.net/u/4517014/blog/5270828) <br>
- 支持多数据源内置mysql、elasticsearch、kudu等多种驱动 <br>
- 可动态扩展(见下文)
![source.png](../picture/datasource/img_1.png)
## 类型
查看已有的数据源类型。 <br>
![img2](../picture/datasource/img_2.png) <br>
![img3](../picture/datasource/img_3.png) <br>
```text
可以在此页面进行新增数据源配置,也可以去数据库中增加你需要的数据源类型。
表aj_report.gaea_dict_item字段dict_codeSOURCE_TYPE
表aj_report.gaea_dict_item, item_extend字段是下拉选择后动态表单渲染的json数据
```
## 操作
- 只有测试通过的数据源才可以保存。<br>
![An image](../picture/datasource/img.png) <br>
## 内置数据源
### JDBC数据源
适用于JDBC驱动类数据库驱动类、连接串、用户名、密码必须填写正确。<br>
![img6](../picture/datasource/img_6.png) <br>
### elasticsearch_sql数据源
目前只支持 elasticsearch 的 x-pack sql。<br>
固定写法:<br>
- 请求路径http://127.0.0.1:9200/_xpack/sql?format=json
- 请求方式POST
- 请求头:{"Content-Type":"application/json"}
- 请求体:{"query":"select 1"}
![img7](../picture/datasource/img_7.png) <br>
### HTTP数据源
针对http最好得返回结果是``List<JSONObject>``目前而言http 数据源操作上可能过于繁琐了些。<br>
支持请求路径和请求头中存在动态数据,采用 ${} 方式进行动态替换,具体操作看数据集的相关说明。<br>
![img8](../picture/datasource/img_8.png) <br>
**注:** Http数据源功能已经移动到Http数据集中原功能不变有Http接口数据请直接使用Http数据集请注意Http接口数据返回格式必须是Json。
## 扩展
### JDBC驱动类数据源添加
**发行版**
```text
1、将jar包上传到 "aj-report.xxx/lib"目录下
2、启动项目(重启项目)
3、前端页面数据源类型选择"jdbc",填上对应的驱动类、连接串、用户名密码
```
![img4](../picture/datasource/img_4.png) <br>
![img5](../picture/datasource/img_5.png) <br>
**源码**
源码推荐使用第二种方式。<br>
- 第一种在report-core/lib目录下添加 <br>
按照同样的层级将驱动包放置使用build.sh脚本进行打包前端页面数据源类型选择"jdbc"
,填上对应的驱动类、连接串、用户名密码。<br>
**注意:** 此方式添加的jar包只能使用build.sh进行编译后才会生效。<br>
<br>
- 第二种在pom.xml中添加 <br>
使用build.sh脚本编译或者maven package编译都可以前端页面数据源类型选择"jdbc"
,填上对应的驱动类、连接串、用户名密码。<br>
<br>
### 非JDBC驱动类数据源添加
例如原生ES、Redis之类。<br>
```text
1、在源码中编写解析代码(datasource)
2、生成数据字典可在数据字典页面找到"数据源类型",在"操作"栏中选择"编辑字典项"
3、添加对应驱动包
```

@ -0,0 +1,34 @@
## 简介
Excel报表基于Luckysheet开发[Luckysheet](https://gitee.com/mengshukeji/Luckysheet)
一款纯前端类似excel的在线表格功能强大、配置简单、完全开源。<br>
**注意:** Excel报表目前只是简单集成如果你遇到了一些问题请在此[Issue](https://gitee.com/anji-plus/report/issues/I4CEWV)
下面进行回复。<br>
## 进入
进入表格设计方法1 <br>
从报表管理模块选择需要设计的大屏,按图示进入大屏设计界面。 <br>
![img](../picture/excel/img.png) <br>
进入大屏设计方法2 <br>
从表格报表模块选择需要设计的大屏,按图示进入大屏设计界面。 <br>
![img2](../picture/excel/img_1.png) <br>
## 设计界面
![img3](../picture/excel/img_2.png) <br>
**注**:不建议一列中同时存在两个字段数据,同时一列值也建议不要存到超大数据量,肯定无法显示的。 <br>
![img4](../picture/excel/img_3.png) <br>
## 保存
点击保存,则会将数据写入到库中。<br>
点击预览,则进入预览界面。<br>
![img](../picture/excel/img_4.png) <br>
## 预览
可以进行导出操作。<br>
![img](../picture/excel/img_5.png) <br>

@ -0,0 +1,29 @@
## 说明
导入导出快慢都是很正常的,不需要重复点击,没那么快就能处理完导入导出操作。<br>
使用导入导出,需要确定好自己是否在 bootstrap.yml 配置文件里面配置好了上传下载的地址,否则当有图片导入时会无法正常显示。<br>
## 导出
![img](../picture/imexport/img.png) <br>
导出会生成zip文件包含图表、样式、图片等不会带有该大屏的名称和code。<br>
### 导出数据集
适用于同一系统内部使用。<br>
**注:**
作为导入的新系统必须也要有相同的数据集才可以正常显示,导出数据集并不是说将你当前大屏用到的数据集也一并导出了,仅是导出包含了动态数据等相关配置而已。<br>
### 导出不含有数据集
导出的图表会使用默认的静态数据集,适用于跨系统,请注意,如果你的大屏图表有部分图表是在对方系统不存在的,那么目前整个大屏是不会显示出来的,后续会进行兼容,不存在的图表留空。<br>
## 导入
![img1](../picture/imexport/img_1.png) <br>
选择一个导出的zip文件导入即可。注意导入会覆盖当前大屏请新建一个空白的大屏进行导入。<br>
**注:** 如果你导入的大屏中含有你当前系统不存在的图表,整个大屏是不会显示的。<br>
## 导入导出权限
请查看权限控制模块中关于导入导出权限的说明。 <br>

@ -0,0 +1,130 @@
## 其他
- 禁用flyway及切换底层数据库方案 <br>
[链接](https://my.oschina.net/u/4517014/blog/5269319) <br>
- 数据源数据集用法总结 <br>
[链接](https://my.oschina.net/u/4517014/blog/5270828) <br>
- 使用Maven Install打包时报错 <br>
![img.png](../picture/qusetion/img.png) <br>
使用Maven Package进行打包 <br>
<br>
## 版本问题
[开发环境参考](https://ajreport.beliefteam.cn/report-doc/guide/quicklyDevelop.html)
- 底层数据库为Mysql8.0+时flyway执行SQL报错<br>
- Node.js是V16版本时 npm install失败 <br>
- jdk使用1.7或者11及以上时编译打包不过 <br>
<br>
![img](../picture/qusetion/img_4.png) <br>
<br>
## 访问相关
- 浏览器兼容性 <br>
当前未对部分浏览器做兼容性适配,推荐使用谷歌浏览器进行访问。<br>
已知IE白屏、部分版本的火狐浏览器拖动组件出现跳转新页面及无法返回的情况 <br>
<br>
- 部署完进入系统点击预览大屏大屏提示“执行sql失败“ <br>
![img](../picture/qusetion/img_3.png) <br>
请先重置mysql数据源将mysql数据源的账号密码修改为你当前系统的账号密码。<br>
<br>
- 页面提示“404” <br>
1、确保访问地址无误根据部署方式的不同 9095/9528 端口皆可以进入项目,如果一个不行试另一个端口 <br>
2、确定前端(端口号9528)是否启动 <br>
3、确定后端(端口号9095)是否启动 <br>
4、如果你是前后端分离部署看看你前端config配置文件中的BASE_API有没有改成你后端的IP端口 <br>
5、使用nginx转发遇到问题也是同上 <br>
<br>
## 前端npm install失败
1、使用node -v检查你的node.js版本不要使用Node.js16及以上版本。<br>
2、使用npm get registry查看npm镜像源将npm镜像设置为淘宝镜像源(百度查具体步骤)。<br>
3、使用cnpm install命令替换npm install命令进行编译。<br>
如果以上3步皆无法解决npm编译问题请直接使用**发行版**。<br>
## 执行源码编译脚本build.sh报错
- 提示:“*** report-ui/dist/* *** No such file or directory” <br>
前端编译失败。<br>
大部分原因是Node.js版本过高高于V14导致前端编译失败(npm install失败),可参考上面**前端npm install失败**进行解决。 <br>
另一部分是Nodejs在编译执行初始化时会去下载一些依赖如果依赖下载不下来也会导致失败。<br>
<br>
- 提示“report-core/target/aj-report-*.zip *** No such file or directory” <br>
后端编译失败。<br>
可能原因有Maven版本过低/过高,导致后端编译失败。可尝试重新执行编译脚本 <br>
<br>
- 使用eclipse进行源码编译时失败 <br>
失败的提示有很多这里建议换成IDEA <br>
<br>
- 使用IDEA进行源码编译时提示“*** openjdk-***” <br>
请使用jdk1.8
<br>
## 启动服务相关
- 提示“xxx The driver has not received any packets from the server” <br>
连不上mysql。<br>
1、确保软件打包正常 <br>
2、mysql版本不兼容详细看上面关于版本兼容性 <br>
3、bootstrap.yml中配置的mysql地址ip不对 <br>
<br>
- flyway执行sql相关错误 <br>
错误提示:**Error creating bean with name 'flywayInitializer' defined in class XXX migration to version V1.0.XXX.sql
failed** <br>
解析flyway在执行某个版本里面包含的sql时报错了 <br>
可能原因:<br>
1、mysql版本问题在不同版本的mysql中部分语法可能存在异同 <br>
2、mysql配置问题 <br>
解决方案:<br>
一、禁用flyway手动执行已有的各版本sql文件 <br>
1、在bootstrap.yml配置文件中找到flyway配置项如图示 <br>
![img6.png](../picture/qusetion/img_6.png) <br>
2、将report-core/src/main/resources/db.migration目录下所有的sql文件都执行一次遇到报错手动修改sql文件。<br>
3、sql文件中只有** aj_report **数据库相关的sql是必须的依赖在确保和aj_report数据库相关sql都执行后在启动服务。<br>
二、保持flyway开启状态手动执行报错的那个版本sql文件 <br>
1、在report-core/src/main/resources/db.migration目录下找到报错的那个版本sql <br>
2、根据报错提示找到sql文件中具体报错的那一段sql或者和数据库已有的数据对比找到没有执行成功的那部分sql <br>
3、手动执行flyway没执行成功的那部分根据提示对sql进行修改调整 <br>
4、执行完毕后在aj_report数据库下flyway_schema_history表中找到报错对应的sql文件版本将对应的success改完1 <br>
![img7.png](../picture/qusetion/img_7.png) <br>
<br>
## 数据集相关
## 大屏图表组件相关
- 访问大屏发现图表X轴、Y轴等显示不出来但数值、柱子、折线又能显示 <br>
问题原因每个图表比如X轴、Y轴颜色默认就是白色当背景色也设置为白色时就无法显示其他同理。<br>
<br>

@ -0,0 +1,55 @@
## 核心技术
### 底层依赖
- [Mysql] 5.7
- [Jdk] 1.8
### 后端
- [Spring Boot](https://spring.io/projects/spring-boot/): Spring Boot是一款开箱即用框架让我们的Spring应用变的更轻量化、更快的入门。
在主程序执行main函数就可以运行。你也可以打包你的应用为jar并通过使用java -jar来运行你的Web应用
- [Mybatis-plus](https://mp.baomidou.com/): MyBatis-plus简称 MP是一个 MyBatis (opens new window) 的增强工具。
- [flyway](https://flywaydb.org/): 主要用于在你的应用版本不断升级的同时,升级你的数据库结构和里面的数据
### 前端
- [npm](https://www.npmjs.com/)node.js的包管理工具用于统一管理我们前端项目中需要用到的包、插件、工具、命令等便于开发和维护。
- [webpack](https://webpack.docschina.org/):用于现代 JavaScript 应用程序的_静态模块打包工具
- [ES6](https://es6.ruanyifeng.com/)Javascript的新版本ECMAScript6的简称。利用ES6我们可以简化我们的JS代码同时利用其提供的强大功能来快速实现JS逻辑。
- [vue-cli](https://cli.vuejs.org/)Vue的脚手架工具用于自动生成Vue项目的目录及文件。
- [vue-router](https://router.vuejs.org/) Vue提供的前端路由工具利用其我们实现页面的路由控制局部刷新及按需加载构建单页应用实现前后端分离。
- [vuex](https://vuex.vuejs.org/)Vue提供的状态管理工具用于统一管理我们项目中各种数据的交互和重用存储我们需要用到数据对象。
- [element-ui](https://element.eleme.cn/#/zh-CN)基于MVVM框架Vue开源出来的一套前端ui组件。
- [avue](https://www.avuejs.com/): 用该组件包裹后可以变成拖拽组件,采用相对于父类绝对定位;用键盘的上下左右也可以控制移
## 开发环境
这里提供我们的开发环境版本进行参考
- [CentOs] 7.5
- [Mysql] 5.7
- [Jdk] 1.8
- [Spring Boot] 2.3.5
- [Mybatis-plus] 3.3.2
- [flyway] 5.2.1
- [Apache Maven] 3.5
- [Node.js] 14.16.0
- [Windows 10]
## 版本问题
已知以下版本存在兼容性问题,请不要使用
- Node.js V16及以上
- openJdk
- Jdk 1.7及以下/11及以上jdk11部分版本有问题
- Mysql 8.08.0.23/26版本没有问题8.0.21版本存在问题)
## SQL初始化
sql文件的地址是report-core --> src --> main --> resources -- > db.migration <br>
![sql](../picture/quickly/img_13.png)
系统初始化时flyway会自动的将该目录下的sql文件执行不需要手动执行sql文件执行完将会创建
aj_report存放系统基础数据数据库 <br>

@ -0,0 +1,58 @@
```
第一步下载zip包解压
第二步conf->bootstrap.yml修改数据库连接、上传下载地址等信息
第三步启动bin目录下start.sh
第四步,访问 http://localhost:9095 admin 123456
```
## 版本问题
已知以下版本存在兼容性问题,请不要使用
- Node.js V16及以上
- openJdk
- Jdk 1.7及以下/11及以上jdk11部分版本有问题
- Mysql 8.08.0.23/26版本没有问题8.0.21版本存在问题)
## 下载发行版
[下载地址](https://gitee.com/anji-plus/report/releases) https://gitee.com/anji-plus/report/releases <br>
![img.png](../picture/quickly/img_16.png) <br>
## 修改mysql连接
解压下载好的Zip包找到bootstrap.yml <br>
![img_1.png](../picture/quickly/img_17.png) <br>
将图中关于mysql的连接配置信息换成你使用的IP <br>
**注**aj_report库是存放底层基础信息的库flyway启动时会自动建立如果你在这里修改了库将会出错 <br>
![bootstrap.png](../picture/quickly/img_2.png) <br>
**注**请确认你的Mysql是否支持远程连接登陆用户是否有DDL权限 <br>
## OSS配置
OSS底层已支持minio、amazonS3、nfs都配置的情况下优先级minio->amazonS3->nfs <br>
![file.png](../picture/quickly/img.png) <br>
## 启动
linux启动<br>
aj-report-XXX --> bin -->sh start.sh <br>
windows启动<br>
aj-report-XXX --> bin --> start.bat <br>
![img18](../picture/quickly/img_18.png) <br>
如果start.bat启动有问题的话可以尝试以下方法解决。<br>
修改第4行的JAVA_HOME改成你自己的JAVA_HOME并去掉**rem**注释,双击启动<br>
![java.png](../picture/quickly/img_7.png)
## 访问
http://localhost:9095 <br>
默认密码admin 123456 <br>

@ -0,0 +1,110 @@
**前后端分离部署**
- 需要有一定的动手能力和排错能力
- 需要对nginx有一定了解
- 同一台机器部署前后端真心不需要分离部署
- **请根据自己的实际情况对下面的步骤和内容进行调整**
```
linux
git clone https://gitee.com/anji-plus/report.git
后端report-code
修改bootstrap.yml 修改数据库连接、上传下载地址等信息
maven package
java -jar
前端report-ui
修改前端config连接
BASE_API: '"./"'改成自己后端服务所在机器的ip地址
npm install
npm run build
使用nginx转发
```
## linux部署后端
### 编译环境
- [Apache Maven] 3.5 <br>
- [Node.js] v14.16.0 <br>
- [Jdk] 1.8 <br>
### 版本问题
已知以下版本存在兼容性问题,请不要使用
- Node.js V16及以上
- openJdk
- Jdk 1.7及以下/11及以上jdk11部分版本有问题
- Mysql 8.08.0.23/26版本没有问题8.0.21版本存在问题)
### 克隆源码
git clone https://gitee.com/anji-plus/report.git <br>
![img9.png](../picture/quickly/img_9.png) <br>
**注**:不要下载发行版里面的 Source Code.zip <br>
### 修改mysql连接
report-core --> src --> main --> resources --> bootstrap.yml <br>
将图中关于mysql的连接配置信息换成你使用的IP <br>
![bootstrap.png](../picture/quickly/img_2.png) <br>
**注 **
```
1、aj_report库是存放底层基础信息的库flyway启动时会自动建立如果你在这里修改了库将会出错
2、请确认你的Mysql是否支持远程连接登陆用户是否有DDL权限
```
### OSS配置
OSS底层已支持minio、amazonS3、nfs都配置的情况下优先级minio->amazonS3->nfs <br>
![file.png](../picture/quickly/img.png) <br>
### maven打包
直接使用 maven package 打包,打包完成如图所示<br>
![img10](../picture/quickly/img_10.png) <br>
**注 **
```
1、打包之前如果系统用的不止mysql数据源需要自己在pom文件中加入对应的数据库的驱动登陆系统之后数据源提示无驱动则选择通用JDBC数据源这里不做演示了
2、不要使用 maven install
3、此方式不会打包 lib目录下的驱动详情可查看 "数据源->扩展"
```
### linux启动jar包
将上步生成的jar包上传至linux使用java -jar命令启动 <br>
**注**请确保你的linux有jdk1.8 <br>
## 前端编译
### install
进入前端目录report-ui <br>
![img11](../picture/quickly/img_11.png) <br>
执行 npm install <br>
### 修改config
目录地址report-ui --> config --> prod.env.js <br>
将BASE_API地址改成自己后端服务所在机器的ip地址 <br>
### build
执行 npm run build <br>
生成的前端dist目录文件在report-ui下面 <br>
![img12](../picture/quickly/img_12.png) <br>
### 前端部署
使用nginx做转发

@ -0,0 +1,87 @@
```
git clone https://gitee.com/anji-plus/report.git
cd report
sh build.sh
编译完成放在build文件夹 aj-report-xxxx.zip
unzip aj-report-xxxx.zip
cd aj-report-xxxx
vim conf/bootstrap.yml 修改数据库连接、上传下载地址等信息
sh bin/start.sh
访问http://serverip:9095
admin 123456
```
## 编译环境
请在Linux上先准备好maven、node.js、jdk <br>
如果在Win10上部署还需要下载一个 Git 软件,软件名就是 Git <br>
以下内容需要特别注意的地方会有对应提示。<br>
- [Apache Maven] 3.5 <br>
- [Node.js] v14.16.0 <br>
- [Jdk] 1.8 <br>
## 版本问题
已知以下版本存在兼容性问题,请不要使用
- Node.js V16及以上
- openJdk
- Jdk 1.7及以下/11及以上jdk11部分版本有问题
- Mysql 8.08.0.23/26版本没有问题8.0.21版本存在问题)
## 克隆源码
git clone https://gitee.com/anji-plus/report.git <br>
![img9.png](../picture/quickly/img_9.png) <br>
**注**:不要下载发行版里面的 Source Code.zip <br>
## build
进入report目录启动build.sh <br>
![img_4.png](../picture/quickly/img_4.png) <br>
编译完成后是放在当前目录下的build文件夹中aj-report-xxxx.zip <br>
**注:** 如果Win10编译的话如图用git执行sh build.sh就行了。Linux就直接去report目录下执行sh build.sh就行。 <br>
**特别注意:**
在Win10上用git执行build.sh编译几个启动脚本的文本格式都是Unix在win10上启动需要将start.bat转格式转格式的方法有很多实在搞不定的话可以下载发行版用发行版里面的启动脚本替换掉你编译后的脚本。 <br>
同样的在linux下编译然后在win10启动也需要转格式。<br>
## 修改mysql连接
解压aj-report-xxxx.zip找到bootstrap.yml <br>
![img_1.png](../picture/quickly/img_17.png) <br>
将图中关于mysql的连接配置信息换成你使用的IP <br>
**注**aj_report库是存放底层基础信息的库flyway启动时会自动建立如果你在这里修改了库将会出错 <br>
![bootstrap.png](../picture/quickly/img_2.png) <br>
**注**请确认你的Mysql是否支持远程连接登陆用户是否有DDL权限 <br>
## OSS配置
OSS底层已支持minio、amazonS3、nfs都配置的情况下优先级minio->amazonS3->nfs <br>
![file.png](../picture/quickly/img.png) <br>
## 启动
linux启动 <br>
aj-report-XXX --> bin --> start.sh <br>
sh bin/start.sh <br>
win10启动<br>
aj-report-XXX --> bin --> start.bat <br>
双击start.bat启动 <br>
## 日志位置
日志的位置是report-xxx/logs/aj-report.log <br>
## 访问
http://serverip:9095 <br>
默认密码admin 123456 <br>

@ -0,0 +1,32 @@
以下示例数据存在于aj_report_init.sql文件中该文件在源码doc/example目录下
## 新增数据源
![img](../picture/quickly/img_14.png) <br>
![img_6.png](../picture/quickly/img_6.png) <br>
## 新增数据集
![img_1.png](../picture/dateset/img_1.png) <br>
## 新增报表
根据报表类型区分大屏报表、Excel报表
![img](../picture/reportmanager/img.png) <br>
### 大屏设计
![img_2.png](../picture/dashboard/img_2.png) <br>
![img1](../picture/quickly/img_1.png) <br>
### 大屏预览
![img15](../picture/quickly/img_15.png) <br>
### Excel设计
![img3](../picture/excel/img_2.png) <br>
### Excel预览
![img](../picture/excel/img_5.png) <br>

@ -0,0 +1,79 @@
## 注意事项
- 之前版本更新至本版本时,可能会遇到图表不显示静态、动态数据,需对该图表重新配置;如果已对旧版本进行二次开发,请谨慎更新。<br>
跨版本更新可查对应版本的[releases](https://gitee.com/anji-plus/report/releases)。<br>
- 1.0版本调整了底层sql具体位置是report-core/src/main/resource/db.migration
删除了过往所有的sql现在此目录下sql仅包含aj_report基础信息库的相关sqlsql文件的命名也会和版本号保持一致
提供的示例数据aj_report_init数据库的sqlaj_report_init_example.sql 文件放置在 doc/example目录下。
- 如果需要将之前版本的示例数据删除delete_aj_report_init_example.sql 文件放置在 doc/example目录下。
- 对于从之前版本升级到1.0.0版本必须解决新旧sql的冲突问题因为V1.0.0版本同样默认启用flyway如果不解决冲突代码启动flyway就会报错
从0.9.9版本更新到1.0.0版本的更新sql请参照下面的步骤内容进行操作
如果从更低的版本升级到V1.0.0请先升级到V0.9.9版本,可查对应版本的[releases](https://gitee.com/anji-plus/report/releases)。
**如果从V0.9.9版本更新至V1.0.0版本后需要继续使用flyway功能必须解决新旧sql的冲突问题**
- 1、将自己系统的数据库数据进行备份
- 2、手动执行V0.9.9更新的V1.0.0增量sql <br>
这样就可以使用V1.0.0全部的功能。
```
INSERT INTO `aj_report`.`gaea_dict`(`dict_name`, `dict_code`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES ('下拉框属性', 'SELECT_PROPERTIES', '下拉框属性', 'admin', NOW(), 'admin', NOW(), 1);
INSERT INTO `aj_report`.`gaea_dict_item`(`dict_code`, `item_name`, `item_value`, `item_extend`, `enabled`, `locale`, `remark`, `sort`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES ('SELECT_PROPERTIES', '显示值', 'label', NULL, 1, 'zh', NULL, NULL, 'admin', NOW(), 'admin', NOW(), 1);
INSERT INTO `aj_report`.`gaea_dict_item`(`dict_code`, `item_name`, `item_value`, `item_extend`, `enabled`, `locale`, `remark`, `sort`, `create_by`, `create_time`, `update_by`, `update_time`, `version`) VALUES ('SELECT_PROPERTIES', '提交值', 'value', NULL, 1, 'zh', NULL, NULL, 'admin', NOW(), 'admin', NOW(), 1);
```
- 3.清空flyway_schema_history表并插入一条数据到表中 <br>
这样可以解决flyway的冲突问题如果flyway一直都是禁用的那这步可以不做。
```
truncate table aj_report.flyway_schema_history;
INSERT INTO aj_report.flyway_schema_history (installed_rank, version, description, type, script, checksum, installed_by, installed_on, execution_time, success)
VALUES (1, '1.0.0', 'init', 'SQL', 'V1.0.0__init.sql', -1762151859, 'root', '2023-05-05 15:39:07', 588, 1);
```
<br>
**如果是直接使用V1.0.0版本,以上都不需要处理**
## 新增/修复
### 新增
- 1、图层唯一标识页面不显示
- 2、下拉框数据联动
- 3、时间筛选器联动
- 4、大屏设计器图表联动 --贡献人 程序员世林@cxysl
- 5、大屏设计器支持缩放
- 6、大屏设计器标尺更新
- 7、图层支持锁定、解锁
- 8、admin账号增加重置密码功能
- 9、增加双Y柱图
- 10、增加刻度尺
### 修复
- 1、柱状图渐变色提示语未生效
- 2、柱线图图例固定先柱后折
- 3、swagger界面ip:port/swagger-ui.html
- 4、雷达图动态数据不显示
- 5、权限管理查询不生效
- 6、刻度尺组件预览数据无显示
### 优化
- 1、大屏动态数据刷新时间-默认由5秒调整为10分钟
- 2、图例名称的调整
- 3、数据集-js可以解析页面自定义数组
- 4、柱/线图--XY配置项调整
- 5、数据集测试预览后点击保存时将只会保存一条
### 其他
- 1、文档更新
- 2、移除Druid

@ -0,0 +1,32 @@
## 注意事项
- 之前版本更新至本版本时,可能会遇到图表不显示静态、动态数据,需对该图表重新配置;如果已对旧版本进行二次开发,请谨慎更新。<br>
跨版本更新可查对应版本的[releases](https://gitee.com/anji-plus/report/releases)。<br>
## 新增/优化
- 1、引入datav依赖新增样式组件装饰边框+装饰图 贡献人wenqindong@wenqindong
- 2、大屏图表-文本组件增加对多行的支持 贡献人StefanZhu@stefanZhu
- 3、Excel报表支持pdf导出 贡献人:陈旭光@chen-xuguang
- 4、大屏文本栏组件-文本、滚动文本、表格支持被联动
- 5、大屏刻度尺组件-被联动,词云组件-被联动,仪表盘被联动
## 修复
- 1、部分图表的副标题和数值设定颜色冲突
- 2、当数据集第一条数据中存在null值时被自动过滤导致未能解析
- 3、大屏图表-仪表盘的配置项冲突重复
- 4、大屏图片-饼图图例位置不正确问题
- 5、装饰饼图不显示问题
## 其他
- 1、文档更新
## 示例数据
- 从1.0版本调整了底层sql具体位置是report-core/src/main/resource/db.migration
删除了过往所有的sql现在此目录下sql仅包含aj_report基础信息库的相关sqlsql文件的命名也会和版本号保持一致
提供的示例数据aj_report_init数据库的sqlaj_report_init_example.sql 文件放置在 doc/example目录下。
- 如果需要将之前版本的示例数据删除delete_aj_report_init_example.sql 文件放置在 doc/example目录下。

@ -0,0 +1,41 @@
## 注意事项
- 本次更新bootstrap.yml相关配置文件有更新根据部署方式的不同注意不要遗漏此文件的更新
- 本次更新有新增SQLV1.2.0__update.sql没有启用flyway的情况下别忘记手动执行更新sql
- 之前版本更新至本版本时,可能会遇到图表不显示静态、动态数据,需删除该图表重新配置;如果已对旧版本进行二次开发,请谨慎更新。<br>
跨版本更新可查对应版本的[releases](https://gitee.com/anji-plus/report/releases)。<br>
## 新增
- 1、新增中国地图-柱形地图
- 2、新增样式组件-流光直线 --贡献人:陈旭光@chen-xuguang
- 3、支持URL传参(具体解释与使用请查看数据集)
- 4、支持上传SVG格式图片 --贡献人:陈旭光@chen-xuguang
## 优化
- 1、大屏-柱状图支持多柱,折线图支持多折线(柱状图-渐变色不支持多柱)
- 2、大屏-柱线堆叠图、多柱线图柱体增加堆叠样式
- 3、大屏图表配置项-数值设定,增加是否显示百分号 --贡献人Mr.Z@sillycoder
- 4、大屏-柱状图增加柱体背景等配置项(具体解释与使用请查看图表配置项)
- 5、大屏-X轴数值长度超长自动换行具体解释与使用请查看图表配置项
## 修复
- 1、样式组件保存后预览不生效问题 --贡献人luoxuancong@luoxuancong
- 2、Excel数据渲染重复查询问题
- 3、雷达图动态数据刷新后预览不自动刷新图表问题
## 其他
- 1、文档更新
- 2、增加了新中国地图解析方法V2--可显示非省市区以外的经纬度地址,需配合柱形地图使用,其他地图暂时不使用,可参考柱形地图来修改其他代码
- 3、bootstrap.yml配置文件更新
## 示例数据
- 从1.0版本调整了底层sql具体位置是report-core/src/main/resource/db.migration
删除了过往所有的sql现在此目录下sql仅包含aj_report基础信息库的相关sqlsql文件的命名也会和版本号保持一致
提供的示例数据aj_report_init数据库的sqlaj_report_init_example.sql 文件放置在 doc/example目录下。
- 如果需要将之前版本的示例数据删除delete_aj_report_init_example.sql 文件放置在 doc/example目录下。

@ -0,0 +1,4 @@
## 新增报表
![img](../picture/reportmanager/img.png) <br>
状态默认为已启用。

@ -0,0 +1,22 @@
## 简介
报表分享功能是将需要分享的报表生成一个访问链接,不等同于浏览器的链接,而是类似云盘分享链接的形式。<br>
## 功能位置
- 1、从报表管理选择要分享的大屏如图示。<br>
![img](../picture/reportShare/img.png) <br>
- 2、大屏报表 <br>
![img1](../picture/reportShare/img_1.png) <br>
- 3、表格报表 <br>
同上
## 功能
![img2](../picture/reportShare/img_2.png) <br>
## 分享总览
![img3](../picture/reportShare/img_3.png) <br>

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save