Dataease2.10 二次开发详细步骤
一、DataEase简介
DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。
DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。
之前写过dataease1.17版的二开,新版本做了很大的升级,架构也不同了。很多朋友看了之前的文章,前来咨询,因此写了这篇文章。
二、基础准备
-
Java 21
-
node.js
-
maven
-
idea ≥ 2023.3
三、环境准备
3.1 下载源码
这里以最新的分支为例:
git clone -b v2.10.11 https://github.com/dataease/dataease.git
3.2 MySQL准备
为快速演示,这里使用docker。
镜像拉取
docker pull mysql:8.0.31
dataease对mysql的配置有要,新建一个 my.cnf 文件,内容如下:
注意 cnf中 NO_AUTO_CREATE_USER 已经弃用,创建镜像时会报错,可以删除。
[mysqld]
datadir=/var/lib/mysql
default-storage-engine=INNODB
character_set_server=utf8
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=64M
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
sync_binlog=0
group_concat_max_len=1024000
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-name-resolve
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
创建容器
这里要注意 -v 的参数路径,要与你的路径一致
docker run -p 3306:3306 \
--restart=always \
--name mysql8 \
--privileged=true \
-v /opt/mysql_docker/log:/var/log/mysql \
-v /opt/mysql_docker/data:/var/lib/mysql \
-v /opt/mysql_docker/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai \
mysql:8.0.31
创建库
CREATE DATABASE `dataeaseV2demo` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
修改代码中数据源连接,如下:
3.3 前端运行
进入 目录 core/core-frontend, 执行 npm run dev
如果遇到报错: 'NODE_OPTIONS' 不是内部或外部命令,也不是可运行的程序 问题
执行如下命令
npm install cross-env --save-dev
然后 在core-frontend/package.json中添加 cross-env
命令
解决后,再次运行前端
# 运行
npm run dev
如果执行还遇到问题,建议使用自修复,然后再run
npm run lint
3.4 后端运行
如果core
文件夹没有高亮显示,则说明IDEA没有将该文件夹识别为一个有效的maven子项目,此刻需要手动添加Maven Project,等待IDEA扫描完成。
然后添加后端依赖
mvn clean install
修改驱动加载目录
修改成
private final String FILE_PATH =
System.getProperty("user.dir") + File.separator + "drivers";
private final String CUSTOM_PATH =
System.getProperty("user.dir") + File.separator + "custom-drivers" + File.separator;
3.5 启动
启动application,和前端
访问 localhost:8100
账号:admin
初始密码:DataEase@123456
四、二开demo
这里举个例子,如何具体修改。比如我要屏蔽掉下面的小助手。
只要找到前端代码,如下
注释掉 下面内容
<el-tooltip effect="dark" :content="t('commons.assistant')" placement="bottom">
<el-icon
style="margin: 0 10px"
class="ai-icon"
v-if="aiBaseUrl && !showOverlay && appearanceStore.getShowAi"
>
<Icon name="dv-ai"><dvAi @click="handleAiClick" class="svg-icon" /></Icon>
</el-icon>
</el-tooltip>
再回到页面,即可完成。
五、写在最后
新版的dataease架构复杂多了,二开的难度也大幅度增加,如果没有很强的需求,建议还是二开1.17版本的。