From a3e51bce302c5a2f49cb2a82c7403c40834bff2e Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Tue, 31 Oct 2023 22:16:09 +0800 Subject: [PATCH 01/29] =?UTF-8?q?fix:=20=E5=8D=95=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=9D=A1=E5=BD=A2=E5=9B=BE=E5=92=8C=E6=9F=B1=E7=8A=B6=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E9=A2=9C=E8=89=B2=E4=BF=AE=E6=94=B9=E6=97=A0?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/chart/components/js/panel/charts/bar/bar.ts | 2 ++ .../chart/components/js/panel/charts/bar/horizontal-bar.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts index 817ab36a17..ead63e3e82 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts @@ -116,6 +116,7 @@ export class Bar extends G2PlotChartView { pre[next.id] = next return pre }, {}) + // 默认是灰色 tmpOptions.label.style.fill = DEFAULT_LABEL.color const label = { fields: [], @@ -242,6 +243,7 @@ export class StackBar extends Bar { return baseOptions } const { label: labelAttr } = parseJson(chart.customAttr) + baseOptions.label.style.fill = labelAttr.color const label = { ...baseOptions.label, formatter: function (param: Datum) { diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/horizontal-bar.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/horizontal-bar.ts index 2d7e5b9f3c..1ddc990762 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/horizontal-bar.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/horizontal-bar.ts @@ -164,11 +164,12 @@ export class HorizontalBar extends G2PlotChartView { } setupDefaultOptions(chart: ChartObj): ChartObj { - const { customAttr } = chart + const { customAttr, senior } = chart const { label } = customAttr if (!['left', 'middle', 'right'].includes(label.position)) { label.position = 'middle' } + senior.functionCfg.emptyDataStrategy = 'ignoreData' return chart } @@ -185,6 +186,7 @@ export class HorizontalBar extends G2PlotChartView { pre[next.id] = next return pre }, {}) + // 默认灰色 tmpOptions.label.style.fill = DEFAULT_LABEL.color const label = { fields: [], @@ -272,6 +274,7 @@ export class HorizontalStackBar extends HorizontalBar { return baseOptions } const { label: labelAttr } = parseJson(chart.customAttr) + baseOptions.label.style.fill = labelAttr.color const label = { ...baseOptions.label, formatter: function (param: Datum) { From c36c3639a348cadcc0c92211fd7bde359259bdee Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Tue, 31 Oct 2023 22:38:22 +0800 Subject: [PATCH 02/29] =?UTF-8?q?fix:=20=E8=AF=8D=E4=BA=91=E5=9B=BE?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6=E4=BD=8D=E7=BD=AE=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/chart/components/js/panel/charts/others/word-cloud.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/word-cloud.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/word-cloud.ts index e9acde25b3..0fdfb9cce3 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/others/word-cloud.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/others/word-cloud.ts @@ -78,7 +78,7 @@ export class WordCloud extends G2PlotChartView { const options = this.setupOptions(chart, initOptions) const newChart = new G2WordCloud(container, options) newChart.on('point:click', param => { - action({ data: { data: param.data.data.datum } }) + action({ x: param.x, y: param.y, data: { data: param.data.data.datum } }) }) return newChart } From ad571de58123175d8a7250ee6d6adee47f3d569b Mon Sep 17 00:00:00 2001 From: xuwei-fit2cloud Date: Wed, 1 Nov 2023 10:11:37 +0800 Subject: [PATCH 03/29] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/dataease/docker-compose-apisix.yml | 6 +++--- installer/dataease/docker-compose-mysql.yml | 2 +- installer/dataease/docker-compose.yml | 2 +- installer/dectl | 2 +- installer/install.sh | 1 - 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/installer/dataease/docker-compose-apisix.yml b/installer/dataease/docker-compose-apisix.yml index e7e60626d7..231c894670 100644 --- a/installer/dataease/docker-compose-apisix.yml +++ b/installer/dataease/docker-compose-apisix.yml @@ -2,7 +2,7 @@ version: "3" services: apisix-dashboard: - image: apache/apisix-dashboard:3.0.1-alpine + image: registry.cn-qingdao.aliyuncs.com/dataease/apisix-dashboard:3.0.1-alpine container_name: apisix-dashboard restart: always volumes: @@ -13,7 +13,7 @@ services: dataease-network: apisix: - image: apache/apisix:3.4.1-debian + image: registry.cn-qingdao.aliyuncs.com/dataease/apisix:3.6.0-debian container_name: apisix environment: - TZ=Asia/Shanghai @@ -33,7 +33,7 @@ services: dataease-network: etcd: - image: bitnami/etcd:3.4.15 + image: registry.cn-qingdao.aliyuncs.com/dataease/etcd:3.5.10 container_name: apisix-etcd restart: always volumes: diff --git a/installer/dataease/docker-compose-mysql.yml b/installer/dataease/docker-compose-mysql.yml index 4813503de7..e0de6c26ce 100644 --- a/installer/dataease/docker-compose-mysql.yml +++ b/installer/dataease/docker-compose-mysql.yml @@ -2,7 +2,7 @@ version: '2.1' services: DE_MYSQL_HOST: - image: mysql:8.1.0 + image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.1.0 container_name: ${DE_MYSQL_HOST} healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u${DE_MYSQL_USER}", "-p${DE_MYSQL_PASSWORD}", "--protocol","tcp"] diff --git a/installer/dataease/docker-compose.yml b/installer/dataease/docker-compose.yml index 0793ad9c54..6ce1b2f606 100644 --- a/installer/dataease/docker-compose.yml +++ b/installer/dataease/docker-compose.yml @@ -2,7 +2,7 @@ version: '2.1' services: dataease: - image: registry.cn-qingdao.aliyuncs.com/dataease/dataease2.0:DE_TAG + image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:DE_TAG container_name: dataease ports: - ${DE_PORT}:8100 diff --git a/installer/dectl b/installer/dectl index 16d269957e..4bb1dfaacc 100644 --- a/installer/dectl +++ b/installer/dectl @@ -83,7 +83,7 @@ function _healthcheck() { echo } function _get_current_version() { - de_current_version=$(grep "^ image:.*dataease2.0:" ${DE_RUNNING_BASE}/docker-compose.yml | awk -F'dataease2.0:' '{print $2}') + de_current_version=$(grep "^ image:.*dataease:" ${DE_RUNNING_BASE}/docker-compose.yml | awk -F'dataease:' '{print $2}') echo $de_current_version } function status() { diff --git a/installer/install.sh b/installer/install.sh index 398f25a972..38271eecbc 100644 --- a/installer/install.sh +++ b/installer/install.sh @@ -258,5 +258,4 @@ if [[ $http_code != 200 ]];then fi echo -e "======================= 安装完成 =======================\n" 2>&1 | tee -a ${CURRENT_DIR}/install.log -echo -e "请通过以下方式访问:\n URL: http://\$LOCAL_IP:$DE_PORT\n 用户名: admin\n 初始密码: dataease" 2>&1 | tee -a ${CURRENT_DIR}/install.log From a4fd42f58650da53bce36fbc102a5b2bbd7a0979 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 10:13:41 +0800 Subject: [PATCH 04/29] =?UTF-8?q?perf:=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 ++-- .../java/io/dataease/datasource/provider/CalciteProvider.java | 4 ++-- .../main/java/io/dataease/datasource/provider/ExcelUtils.java | 2 +- .../io/dataease/datasource/server/DatasourceDriverServer.java | 2 +- core/core-frontend/src/locales/zh-CN.ts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5e7123a861..f5118e68fd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,9 @@ FROM registry.cn-qingdao.aliyuncs.com/dataease/alpine-openjdk17-jre ARG IMAGE_TAG -RUN mkdir -p /opt/apps/config /opt/dataease/drivers/ /opt/dataease2.0/cache/ /opt/dataease2.0/data/map /opt/dataease2.0/data/static-resource/ +RUN mkdir -p /opt/apps/config /opt/dataease2.0/drivers/ /opt/dataease2.0/cache/ /opt/dataease2.0/data/map /opt/dataease2.0/data/static-resource/ -ADD drivers/* /opt/dataease/drivers/ +ADD drivers/* /opt/dataease2.0/drivers/ ADD mapFiles/ /opt/dataease2.0/data/map/ ADD staticResource/ /opt/dataease2.0/data/static-resource/ diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java index a6a421b4a3..15c1e4a30d 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java @@ -53,8 +53,8 @@ public class CalciteProvider { private EngineServer engineServer; protected ExtendedJdbcClassLoader extendedJdbcClassLoader; private Map customJdbcClassLoaders = new HashMap<>(); - private final String FILE_PATH = "/opt/dataease/drivers"; - private final String CUSTOM_PATH = "/opt/dataease/custom-drivers/"; + private final String FILE_PATH = "/opt/dataease2.0/drivers"; + private final String CUSTOM_PATH = "/opt/dataease2.0/custom-drivers/"; private static String split = "DE"; @Resource diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java index b4c3059602..9fa6b85ca0 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java @@ -35,7 +35,7 @@ import java.util.stream.Collectors; public class ExcelUtils { public static final String UFEFF = "\uFEFF"; - private static String path = "/opt/dataease/data/excel/"; + private static String path = "/opt/dataease2.0/data/excel/"; private static ObjectMapper objectMapper = new ObjectMapper(); private static TypeReference> TableFieldListTypeReference = new TypeReference>() { diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceDriverServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceDriverServer.java index 52e6f48ae1..8e8cc6499d 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceDriverServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceDriverServer.java @@ -31,7 +31,7 @@ import java.util.*; @RequestMapping("/datasourceDriver") public class DatasourceDriverServer implements DatasourceDriverApi { - private final static String DRIVER_PATH = "/opt/dataease/custom-drivers/"; + private final static String DRIVER_PATH = "/opt/dataease2.0/custom-drivers/"; @Resource private CoreDriverMapper coreDriverMapper; diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 65515fa7a5..84f59fd58d 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -264,7 +264,7 @@ export default { data_source_table: '数据源表', auth_method: '认证方式', passwd: '用户名密码', - kerbers_info: '请确保 krb5.Conf、Keytab Key,已经添加到路径:/opt/dataease/conf', + kerbers_info: '请确保 krb5.Conf、Keytab Key,已经添加到路径:/opt/dataease2.0/conf', client_principal: 'Client Principal', keytab_Key_path: 'Keytab Key Path', please_select_left: '请从左侧选择', From ddc33390b838edb214b42ac6ec7e8eead5d9839e Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 10:52:51 +0800 Subject: [PATCH 05/29] =?UTF-8?q?perf:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/dataease/apisix/apisix_conf/config.yaml | 2 +- installer/dataease/templates/application.yml | 2 +- installer/dectl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/installer/dataease/apisix/apisix_conf/config.yaml b/installer/dataease/apisix/apisix_conf/config.yaml index 3febcbe10a..1b4a894470 100644 --- a/installer/dataease/apisix/apisix_conf/config.yaml +++ b/installer/dataease/apisix/apisix_conf/config.yaml @@ -1,4 +1,4 @@ -pisix: +apisix: node_listen: 9080 # APISIX listening port enable_ipv6: false diff --git a/installer/dataease/templates/application.yml b/installer/dataease/templates/application.yml index 39ccec0edf..df7293079e 100644 --- a/installer/dataease/templates/application.yml +++ b/installer/dataease/templates/application.yml @@ -14,4 +14,4 @@ dataease: origin-list: localhost:8080,localhost:8100,localhost:9080 apisix-api: domain: http://apisix:9180 - key: edd1c9f034335f136f87ad84b625c8f1 \ No newline at end of file + key: DE_APISIX_KEY \ No newline at end of file diff --git a/installer/dectl b/installer/dectl index 4bb1dfaacc..a05fdb5a03 100644 --- a/installer/dectl +++ b/installer/dectl @@ -56,7 +56,7 @@ function _prepare_apisix() { cd $DE_RUNNING_BASE env | grep DE_ >.env sed -i -e "s/DE_APISIX_KEY/${DE_APISIX_KEY}/g" $DE_RUNNING_BASE/apisix/apisix_conf/config.yaml - sed -i -e "s/key:.*/key: ${DE_APISIX_KEY}/g" $DE_RUNNING_BASE/conf/application.yml + sed -i -e "s/DE_APISIX_KEY/${DE_APISIX_KEY}/g" $DE_RUNNING_BASE/conf/application.yml fi compose_files="${compose_files} -f docker-compose-apisix.yml" } From efc0d24b6c3213c6319468303d53efe7cbd56d9a Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 11:58:00 +0800 Subject: [PATCH 06/29] =?UTF-8?q?perf:=20=E7=A4=BE=E5=8C=BA=E7=89=88?= =?UTF-8?q?=E5=85=B3=E4=BA=8E=E9=A1=B5=E9=9D=A2=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/views/about/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/core-frontend/src/views/about/index.vue b/core/core-frontend/src/views/about/index.vue index abb872e2ca..2cb88be0b9 100644 --- a/core/core-frontend/src/views/about/index.vue +++ b/core/core-frontend/src/views/about/index.vue @@ -150,7 +150,7 @@ const update = (licKey: string) => {
{{ $t('about.version') }}
- {{ license.edition === 'Standard' ? $t('about.standard') : $t('about.enterprise') }} + {{ !license?.edition ? $t('about.standard') : $t('about.enterprise') }}
From 3af1fcd2a5633d5045afb5109483d322fe4ee31b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 12:35:58 +0800 Subject: [PATCH 07/29] =?UTF-8?q?perf:=20core=E6=A8=A1=E5=9D=97=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetGroupManage.java | 16 +++++++---- .../datasource/server/DatasourceServer.java | 28 ++++++++----------- .../system/manage/CoreUserManage.java | 14 ++++++++++ de-xpack | 2 +- 4 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 core/core-backend/src/main/java/io/dataease/system/manage/CoreUserManage.java diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java index 6be80e7fa5..85fb492f54 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java @@ -31,6 +31,7 @@ import io.dataease.license.config.XpackInteract; import io.dataease.model.BusiNodeRequest; import io.dataease.model.BusiNodeVO; import io.dataease.operation.manage.CoreOptRecentManage; +import io.dataease.system.manage.CoreUserManage; import io.dataease.utils.*; import jakarta.annotation.Resource; import org.apache.commons.lang3.ObjectUtils; @@ -71,6 +72,9 @@ public class DatasetGroupManage { @Autowired(required = false) private UserApi userApi; + @Resource + private CoreUserManage coreUserManage; + @Resource private CoreOptRecentManage coreOptRecentManage; @@ -232,13 +236,13 @@ public class DatasetGroupManage { DataSetBarVO dataSetBarVO = coreDataSetExtMapper.queryBarInfo(id); // get creator if (userApi != null) { - UserFormVO userFormVO = userApi.queryById(Long.valueOf(dataSetBarVO.getCreateBy())); - if (userFormVO != null) { - dataSetBarVO.setCreator(userFormVO.getName()); + String userName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getCreateBy())); + if (StringUtils.isNotBlank(userName)) { + dataSetBarVO.setCreator(userName); } - UserFormVO userFormVOUpdateBy = userApi.queryById(Long.valueOf(dataSetBarVO.getUpdateBy())); - if (userFormVOUpdateBy != null) { - dataSetBarVO.setUpdater(userFormVOUpdateBy.getName()); + String updateUserName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getUpdateBy())); + if (StringUtils.isNotBlank(updateUserName)) { + dataSetBarVO.setUpdater(updateUserName); } } dataSetBarVO.setDatasourceDTOList(getDatasource(id)); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 91a8a00ab3..0419d7a4d1 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -14,8 +14,6 @@ import io.dataease.api.ds.DatasourceApi; import io.dataease.api.ds.vo.*; import io.dataease.api.permissions.auth.api.InteractiveAuthApi; import io.dataease.api.permissions.auth.dto.BusiResourceEditor; -import io.dataease.api.permissions.user.api.UserApi; -import io.dataease.api.permissions.user.vo.UserFormVO; import io.dataease.commons.constants.TaskStatus; import io.dataease.commons.utils.CommonThreadPool; import io.dataease.constant.DataSourceType; @@ -34,13 +32,13 @@ import io.dataease.datasource.provider.ApiUtils; import io.dataease.datasource.provider.CalciteProvider; import io.dataease.datasource.provider.ExcelUtils; import io.dataease.datasource.request.DatasourceRequest; -import io.dataease.datasource.type.Pg; import io.dataease.engine.constant.SQLConstants; import io.dataease.exception.DEException; import io.dataease.i18n.Translator; import io.dataease.license.config.XpackInteract; import io.dataease.model.BusiNodeRequest; import io.dataease.model.BusiNodeVO; +import io.dataease.system.manage.CoreUserManage; import io.dataease.utils.*; import jakarta.annotation.Resource; import org.apache.commons.lang3.ObjectUtils; @@ -89,11 +87,13 @@ public class DatasourceServer implements DatasourceApi { private CoreDsFinishPageMapper coreDsFinishPageMapper; @Resource private DatasetDataManage datasetDataManage; - @Autowired(required = false) - private UserApi userApi; + @Autowired(required = false) private InteractiveAuthApi interactiveAuthApi; + @Resource + private CoreUserManage coreUserManage; + @Override public List query(String keyWord) { return null; @@ -311,16 +311,16 @@ public class DatasourceServer implements DatasourceApi { private static void checkParams(String configurationStr) { DatasourceConfiguration configuration = JsonUtil.parseObject(configurationStr, DatasourceConfiguration.class); - if(configuration.getInitialPoolSize() < configuration.getMinPoolSize()){ + if (configuration.getInitialPoolSize() < configuration.getMinPoolSize()) { DEException.throwException("初始连接数不能小于最小连接数!"); } - if(configuration.getInitialPoolSize() > configuration.getMaxPoolSize()){ + if (configuration.getInitialPoolSize() > configuration.getMaxPoolSize()) { DEException.throwException("初始连接数不能大于最大连接数!"); } - if(configuration.getMaxPoolSize() < configuration.getMinPoolSize()){ + if (configuration.getMaxPoolSize() < configuration.getMinPoolSize()) { DEException.throwException("最大连接数不能小于最小连接数!"); } - if(configuration.getQueryTimeout() < 0){ + if (configuration.getQueryTimeout() < 0) { DEException.throwException("查询超时不能小于0!"); } } @@ -540,12 +540,8 @@ public class DatasourceServer implements DatasourceApi { } datasourceDTO.setConfiguration(new String(Base64.getEncoder().encode(datasourceDTO.getConfiguration().getBytes()))); - if (userApi != null) { - UserFormVO userFormVO = userApi.queryById(Long.valueOf(datasourceDTO.getCreateBy())); - if (userFormVO != null) { - datasourceDTO.setCreator(userFormVO.getName()); - } - } + datasourceDTO.setCreator(coreUserManage.getUserName(Long.valueOf(datasourceDTO.getCreateBy()))); + return datasourceDTO; } @@ -882,7 +878,7 @@ public class DatasourceServer implements DatasourceApi { List datasetTableDTOS = ApiUtils.getTables(datasourceRequest); for (int i = 0; i < pager.getRecords().size(); i++) { for (int i1 = 0; i1 < datasetTableDTOS.size(); i1++) { - if(pager.getRecords().get(i).getTableName().equalsIgnoreCase(datasetTableDTOS.get(i1).getTableName())){ + if (pager.getRecords().get(i).getTableName().equalsIgnoreCase(datasetTableDTOS.get(i1).getTableName())) { pager.getRecords().get(i).setName(datasetTableDTOS.get(i1).getName()); } } diff --git a/core/core-backend/src/main/java/io/dataease/system/manage/CoreUserManage.java b/core/core-backend/src/main/java/io/dataease/system/manage/CoreUserManage.java new file mode 100644 index 0000000000..1c4e7273d1 --- /dev/null +++ b/core/core-backend/src/main/java/io/dataease/system/manage/CoreUserManage.java @@ -0,0 +1,14 @@ +package io.dataease.system.manage; + +import io.dataease.license.config.XpackInteract; +import org.springframework.stereotype.Component; + +@Component +public class CoreUserManage { + + + @XpackInteract(value = "coreUserManage", replace = true) + public String getUserName(Long uid) { + return "管理员"; + } +} diff --git a/de-xpack b/de-xpack index c2c4436bac..7a4f9a2de6 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit c2c4436bac4d300e5297ff1854fd6d45e01435ad +Subproject commit 7a4f9a2de62a8ff0b544f2660bef3838cc09d6de From a9234ab77e97bc669a73ce20f2534049a9d95fa1 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 14:24:56 +0800 Subject: [PATCH 08/29] =?UTF-8?q?perf:=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E9=89=B4=E6=9D=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetGroupManage.java | 78 +++++++------------ .../dataset/manage/DatasetSQLManage.java | 30 +++---- .../system/manage/CorePermissionManage.java | 14 ++++ de-xpack | 2 +- 4 files changed, 57 insertions(+), 67 deletions(-) create mode 100644 core/core-backend/src/main/java/io/dataease/system/manage/CorePermissionManage.java diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java index 85fb492f54..ae5d7e6628 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetGroupManage.java @@ -9,8 +9,6 @@ import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.api.dataset.union.UnionDTO; import io.dataease.api.dataset.vo.DataSetBarVO; import io.dataease.api.ds.vo.DatasourceDTO; -import io.dataease.api.permissions.user.api.UserApi; -import io.dataease.api.permissions.user.vo.UserFormVO; import io.dataease.commons.constants.OptConstants; import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup; import io.dataease.dataset.dao.auto.entity.CoreDatasetTable; @@ -36,7 +34,6 @@ import io.dataease.utils.*; import jakarta.annotation.Resource; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -69,8 +66,7 @@ public class DatasetGroupManage { private CoreDatasetTableMapper coreDatasetTableMapper; @Resource private CoreDatasourceMapper coreDatasourceMapper; - @Autowired(required = false) - private UserApi userApi; + @Resource private CoreUserManage coreUserManage; @@ -92,13 +88,9 @@ public class DatasetGroupManage { CoreDatasetGroup coreDatasetGroup = coreDatasetGroupMapper.selectById(datasetGroupInfoDTO.getId()); datasetGroupInfoDTO.setPid(coreDatasetGroup.getPid()); } - if (userApi == null) { - checkName(datasetGroupInfoDTO); - } - if (userApi != null) { - datasetGroupInfoDTO.setUpdateBy(userApi.info().getId() + ""); - datasetGroupInfoDTO.setLastUpdateTime(System.currentTimeMillis()); - } + checkName(datasetGroupInfoDTO); + datasetGroupInfoDTO.setUpdateBy(AuthUtils.getUser().getUserId() + ""); + datasetGroupInfoDTO.setLastUpdateTime(System.currentTimeMillis()); if (StringUtils.equalsIgnoreCase(datasetGroupInfoDTO.getNodeType(), leafType)) { if (!rename && ObjectUtils.isEmpty(datasetGroupInfoDTO.getAllFields())) { DEException.throwException(Translator.get("i18n_no_fields")); @@ -116,10 +108,8 @@ public class DatasetGroupManage { if (ObjectUtils.isEmpty(datasetGroupInfoDTO.getId())) { isCreate = true; datasetGroupInfoDTO.setId(IDUtils.snowID()); - if (userApi != null) { - datasetGroupInfoDTO.setCreateBy(userApi.info().getId() + ""); - datasetGroupInfoDTO.setUpdateBy(userApi.info().getId() + ""); - } + datasetGroupInfoDTO.setCreateBy(AuthUtils.getUser().getUserId() + ""); + datasetGroupInfoDTO.setUpdateBy(AuthUtils.getUser().getUserId() + ""); datasetGroupInfoDTO.setCreateTime(time); datasetGroupInfoDTO.setLastUpdateTime(time); datasetGroupInfoDTO.setPid(datasetGroupInfoDTO.getPid() == null ? 0L : datasetGroupInfoDTO.getPid()); @@ -156,21 +146,19 @@ public class DatasetGroupManage { CoreDatasetGroup coreDatasetGroup = BeanUtils.copyBean(new CoreDatasetGroup(), datasetGroupInfoDTO); coreDatasetGroup.setLastUpdateTime(System.currentTimeMillis()); coreDatasetGroupMapper.updateById(coreDatasetGroup); - coreOptRecentManage.saveOpt(datasetGroupInfoDTO.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET,OptConstants.OPT_TYPE.UPDATE); + coreOptRecentManage.saveOpt(datasetGroupInfoDTO.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET, OptConstants.OPT_TYPE.UPDATE); } @XpackInteract(value = "authResourceTree", before = false) public void innerSave(DatasetGroupInfoDTO datasetGroupInfoDTO) { CoreDatasetGroup coreDatasetGroup = BeanUtils.copyBean(new CoreDatasetGroup(), datasetGroupInfoDTO); coreDatasetGroupMapper.insert(coreDatasetGroup); - coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET,OptConstants.OPT_TYPE.NEW); + coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET, OptConstants.OPT_TYPE.NEW); } @XpackInteract(value = "authResourceTree", before = false) public DatasetGroupInfoDTO move(DatasetGroupInfoDTO datasetGroupInfoDTO) { - if (userApi == null) { - checkName(datasetGroupInfoDTO); - } + checkName(datasetGroupInfoDTO); if (datasetGroupInfoDTO.getPid() != 0) { checkMove(datasetGroupInfoDTO); } @@ -178,12 +166,10 @@ public class DatasetGroupManage { long time = System.currentTimeMillis(); CoreDatasetGroup coreDatasetGroup = new CoreDatasetGroup(); BeanUtils.copyBean(coreDatasetGroup, datasetGroupInfoDTO); - if (userApi != null) { - datasetGroupInfoDTO.setUpdateBy(userApi.info().getId() + ""); - } + datasetGroupInfoDTO.setUpdateBy(AuthUtils.getUser().getUserId() + ""); coreDatasetGroup.setLastUpdateTime(time); coreDatasetGroupMapper.updateById(coreDatasetGroup); - coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET,OptConstants.OPT_TYPE.UPDATE); + coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET, OptConstants.OPT_TYPE.UPDATE); return datasetGroupInfoDTO; } @@ -194,7 +180,7 @@ public class DatasetGroupManage { DEException.throwException("resource not exist"); } Objects.requireNonNull(CommonBeanFactory.getBean(this.getClass())).recursionDel(id); - coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET,OptConstants.OPT_TYPE.DELETE); + coreOptRecentManage.saveOpt(coreDatasetGroup.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASET, OptConstants.OPT_TYPE.DELETE); } public void recursionDel(Long id) { @@ -235,15 +221,13 @@ public class DatasetGroupManage { public DataSetBarVO queryBarInfo(Long id) { DataSetBarVO dataSetBarVO = coreDataSetExtMapper.queryBarInfo(id); // get creator - if (userApi != null) { - String userName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getCreateBy())); - if (StringUtils.isNotBlank(userName)) { - dataSetBarVO.setCreator(userName); - } - String updateUserName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getUpdateBy())); - if (StringUtils.isNotBlank(updateUserName)) { - dataSetBarVO.setUpdater(updateUserName); - } + String userName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getCreateBy())); + if (StringUtils.isNotBlank(userName)) { + dataSetBarVO.setCreator(userName); + } + String updateUserName = coreUserManage.getUserName(Long.valueOf(dataSetBarVO.getUpdateBy())); + if (StringUtils.isNotBlank(updateUserName)) { + dataSetBarVO.setUpdater(updateUserName); } dataSetBarVO.setDatasourceDTOList(getDatasource(id)); return dataSetBarVO; @@ -258,13 +242,13 @@ public class DatasetGroupManage { QueryWrapper datasourceQueryWrapper = new QueryWrapper<>(); datasourceQueryWrapper.in("id", ids); - List datasourceDTOList = coreDatasourceMapper.selectList(datasourceQueryWrapper).stream().map(ele -> { + List datasourceDTOList = coreDatasourceMapper.selectList(datasourceQueryWrapper).stream().map(ele -> { DatasourceDTO dto = new DatasourceDTO(); BeanUtils.copyBean(dto, ele); dto.setConfiguration(null); return dto; }).collect(Collectors.toList()); - if(ids.size() != datasourceDTOList.size()){ + if (ids.size() != datasourceDTOList.size()) { DEException.throwException("由于数据集所用的数据源已被删除,无法显示数据集"); } return datasourceDTOList; @@ -370,15 +354,13 @@ public class DatasetGroupManage { DatasetGroupInfoDTO dto = new DatasetGroupInfoDTO(); BeanUtils.copyBean(dto, coreDatasetGroup); // get creator - if (userApi != null) { - UserFormVO userFormVO = userApi.queryById(Long.valueOf(dto.getCreateBy())); - if (userFormVO != null) { - dto.setCreator(userFormVO.getName()); - } - UserFormVO userFormVOUpdateBy = userApi.queryById(Long.valueOf(dto.getUpdateBy())); - if (userFormVOUpdateBy != null) { - dto.setUpdater(userFormVOUpdateBy.getName()); - } + String userName = coreUserManage.getUserName(Long.valueOf(dto.getCreateBy())); + if (StringUtils.isNotBlank(userName)) { + dto.setCreator(userName); + } + String updateUserName = coreUserManage.getUserName(Long.valueOf(dto.getUpdateBy())); + if (StringUtils.isNotBlank(updateUserName)) { + dto.setUpdater(updateUserName); } dto.setUnionSql(null); if (StringUtils.equalsIgnoreCase(dto.getNodeType(), "dataset")) { @@ -444,8 +426,8 @@ public class DatasetGroupManage { for (CoreDatasetTable datasetTable : datasetTables) { if (StringUtils.isNotEmpty(datasetTable.getSqlVariableDetails())) { List defaultsSqlVariableDetails = JsonUtil.parseList(datasetTable.getSqlVariableDetails(), listTypeReference); - if(CollectionUtil.isNotEmpty(defaultsSqlVariableDetails)){ - List fullName = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(defaultsSqlVariableDetails)) { + List fullName = new ArrayList<>(); geFullName(id, fullName); List finalFullName = CollectionUtil.reverse(fullName); defaultsSqlVariableDetails.forEach(sqlVariableDetails -> { diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java index 9b892bc21a..67762b324c 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java @@ -6,12 +6,10 @@ import io.dataease.api.dataset.dto.DatasetTableDTO; import io.dataease.api.dataset.dto.SqlVariableDetails; import io.dataease.api.dataset.union.*; import io.dataease.api.dataset.union.model.SQLObj; -import io.dataease.api.permissions.auth.api.InteractiveAuthApi; import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO; import io.dataease.commons.utils.SqlparserUtils; import io.dataease.constant.AuthEnum; import io.dataease.dataset.constant.DatasetTableType; -import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableMapper; import io.dataease.dataset.dto.DatasourceSchemaDTO; import io.dataease.dataset.utils.DatasetTableTypeConstants; import io.dataease.dataset.utils.SqlUtils; @@ -24,6 +22,7 @@ import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.constant.SQLConstants; import io.dataease.exception.DEException; import io.dataease.i18n.Translator; +import io.dataease.system.manage.CorePermissionManage; import io.dataease.utils.BeanUtils; import io.dataease.utils.JsonUtil; import jakarta.annotation.Resource; @@ -31,7 +30,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -44,16 +42,14 @@ import java.util.stream.Collectors; */ @Component public class DatasetSQLManage { - @Resource - private CoreDatasetTableMapper coreDatasetTableMapper; - @Resource - private DatasetTableFieldManage datasetTableFieldManage; + @Resource private CoreDatasourceMapper coreDatasourceMapper; @Resource private EngineServer engineServer; - @Autowired(required = false) - private InteractiveAuthApi interactiveAuthApi; + + @Resource + private CorePermissionManage corePermissionManage; private static Logger logger = LoggerFactory.getLogger(DatasetSQLManage.class); @@ -328,17 +324,15 @@ public class DatasetSQLManage { private String putObj2Map(Map dsMap, DatasetTableDTO ds) throws Exception { // 通过datasource id校验数据源权限 - if (interactiveAuthApi != null) { - BusiPerCheckDTO dto = new BusiPerCheckDTO(); - dto.setId(ds.getDatasourceId()); - dto.setAuthEnum(AuthEnum.READ); - try { - interactiveAuthApi.checkAuth(dto); - } catch (Exception e) { - DEException.throwException(Translator.get("i18n_no_datasource_permission")); - } + BusiPerCheckDTO dto = new BusiPerCheckDTO(); + dto.setId(ds.getDatasourceId()); + dto.setAuthEnum(AuthEnum.READ); + boolean checked = corePermissionManage.checkAuth(dto); + if (!checked) { + DEException.throwException(Translator.get("i18n_no_datasource_permission")); } + String schemaAlias; if (StringUtils.equalsIgnoreCase(ds.getType(), DatasetTableType.DB) || StringUtils.equalsIgnoreCase(ds.getType(), DatasetTableType.SQL)) { CoreDatasource coreDatasource = coreDatasourceMapper.selectById(ds.getDatasourceId()); diff --git a/core/core-backend/src/main/java/io/dataease/system/manage/CorePermissionManage.java b/core/core-backend/src/main/java/io/dataease/system/manage/CorePermissionManage.java new file mode 100644 index 0000000000..e01e24a0d5 --- /dev/null +++ b/core/core-backend/src/main/java/io/dataease/system/manage/CorePermissionManage.java @@ -0,0 +1,14 @@ +package io.dataease.system.manage; + +import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO; +import io.dataease.license.config.XpackInteract; +import org.springframework.stereotype.Component; + +@Component +public class CorePermissionManage { + + @XpackInteract(value = "corePermissionManage", replace = true) + public boolean checkAuth(BusiPerCheckDTO dto) { + return true; + } +} diff --git a/de-xpack b/de-xpack index 7a4f9a2de6..91f3ae7939 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 7a4f9a2de62a8ff0b544f2660bef3838cc09d6de +Subproject commit 91f3ae793906139d6d761704b95c162de7d26a3d From 5d455e18596e92cda509279505c86e39ef64a87e Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 14:37:14 +0800 Subject: [PATCH 09/29] =?UTF-8?q?perf:=20=E7=89=88=E6=9C=AC=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/utils/VersionUtil.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sdk/common/src/main/java/io/dataease/utils/VersionUtil.java b/sdk/common/src/main/java/io/dataease/utils/VersionUtil.java index 35355c705c..396e83b2f5 100644 --- a/sdk/common/src/main/java/io/dataease/utils/VersionUtil.java +++ b/sdk/common/src/main/java/io/dataease/utils/VersionUtil.java @@ -1,11 +1,14 @@ package io.dataease.utils; +import org.springframework.core.env.Environment; + public class VersionUtil { - private static final String randomId = IDUtils.randomID(16); public static String getRandomVersion() { - return randomId; + Environment environment = CommonBeanFactory.getBean(Environment.class); + assert environment != null; + return environment.getProperty("dataease.version", "2.0.0"); } } From b4d0596949c7c1a6f07c8c3809e7e016efc01f5e Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 14:50:38 +0800 Subject: [PATCH 10/29] =?UTF-8?q?perf:=20=E8=AE=B8=E5=8F=AF=E8=AF=81?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/locales/zh-CN.ts | 3 ++- core/core-frontend/src/views/about/index.vue | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 84f59fd58d..94e6e7ca47 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1430,8 +1430,9 @@ export default { auth_num: '授权数量', version: '版本', version_num: '版本号', - standard: '标准版', + standard: '社区版', enterprise: '企业版', + Embeded: '嵌入式版', support: '获取技术支持', update_success: '更新成功', serial_no: '序列号', diff --git a/core/core-frontend/src/views/about/index.vue b/core/core-frontend/src/views/about/index.vue index 2cb88be0b9..9c8912403b 100644 --- a/core/core-frontend/src/views/about/index.vue +++ b/core/core-frontend/src/views/about/index.vue @@ -150,7 +150,13 @@ const update = (licKey: string) => {
{{ $t('about.version') }}
- {{ !license?.edition ? $t('about.standard') : $t('about.enterprise') }} + {{ + !license?.edition + ? $t('about.standard') + : license.edition === 'Embeded' + ? $t('about.Embeded') + : $t('about.enterprise') + }}
From 57e4e7a4af97bd1853cfdf510ca2fe2280751b6b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 14:52:00 +0800 Subject: [PATCH 11/29] =?UTF-8?q?perf:=20=E8=AE=B8=E5=8F=AF=E8=AF=81?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=96=87=E6=A1=88=E6=8B=BC=E5=86=99=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/locales/zh-CN.ts | 2 +- core/core-frontend/src/views/about/index.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 94e6e7ca47..793f7cd533 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1432,7 +1432,7 @@ export default { version_num: '版本号', standard: '社区版', enterprise: '企业版', - Embeded: '嵌入式版', + Embedded: '嵌入式版', support: '获取技术支持', update_success: '更新成功', serial_no: '序列号', diff --git a/core/core-frontend/src/views/about/index.vue b/core/core-frontend/src/views/about/index.vue index 9c8912403b..5f1f65041c 100644 --- a/core/core-frontend/src/views/about/index.vue +++ b/core/core-frontend/src/views/about/index.vue @@ -153,8 +153,8 @@ const update = (licKey: string) => { {{ !license?.edition ? $t('about.standard') - : license.edition === 'Embeded' - ? $t('about.Embeded') + : license.edition === 'Embedded' + ? $t('about.Embedded') : $t('about.enterprise') }}
From f7dfccc6f4e8ffa8ac706365fa7ea39f13008fdc Mon Sep 17 00:00:00 2001 From: xuwei-fit2cloud Date: Wed, 1 Nov 2023 14:59:43 +0800 Subject: [PATCH 12/29] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/dectl | 2 +- installer/install.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installer/dectl b/installer/dectl index a05fdb5a03..2898f9976a 100644 --- a/installer/dectl +++ b/installer/dectl @@ -44,7 +44,7 @@ function usage() { echo " version 查看 DATAEASE 版本" } function _check_apisix_init() { - if [[ $DE_INSTALL_MODE = "enterprise" ]];then + if [[ $DE_INSTALL_MODE != "community" ]];then _prepare_apisix fi } diff --git a/installer/install.conf b/installer/install.conf index 1e632d3f1b..5048bc44b4 100644 --- a/installer/install.conf +++ b/installer/install.conf @@ -6,7 +6,7 @@ DE_PORT=8100 ## 登录超时时间,单位min。如果不设置则默认8小时,也就是480 DE_LOGIN_TIMEOUT=480 ## 安装模式 -DE_INSTALL_MODE=enterprise +DE_INSTALL_MODE=community # 数据库配置 ## 是否使用外部数据库 From ee3698ad1822db251cb2cb2a2cacbbbb1f1e5643 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 15:12:47 +0800 Subject: [PATCH 13/29] =?UTF-8?q?perf:=20=E8=A7=86=E5=9B=BE=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E6=95=B0=E6=8D=AE=E9=9B=86=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/manage/ChartDataManage.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java index d74064398a..a99cde6dcf 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java @@ -1,14 +1,12 @@ package io.dataease.chart.manage; import cn.hutool.core.collection.CollectionUtil; -import com.fasterxml.jackson.core.type.TypeReference; import io.dataease.api.chart.dto.*; import io.dataease.api.chart.request.ChartDrillRequest; import io.dataease.api.chart.request.ChartExtRequest; import io.dataease.api.dataset.dto.SqlVariableDetails; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.api.dataset.union.model.SQLMeta; -import io.dataease.api.permissions.auth.api.InteractiveAuthApi; import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO; import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO; import io.dataease.chart.constant.ChartConstants; @@ -30,6 +28,7 @@ import io.dataease.engine.utils.Utils; import io.dataease.exception.DEException; import io.dataease.i18n.Translator; import io.dataease.result.ResultCode; +import io.dataease.system.manage.CorePermissionManage; import io.dataease.utils.BeanUtils; import io.dataease.utils.JsonUtil; import jakarta.annotation.Resource; @@ -37,7 +36,6 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -65,8 +63,9 @@ public class ChartDataManage { private ChartViewManege chartViewManege; @Resource private PermissionManage permissionManage; - @Autowired(required = false) - private InteractiveAuthApi interactiveAuthApi; + + @Resource + private CorePermissionManage corePermissionManage; private static Logger logger = LoggerFactory.getLogger(ChartDataManage.class); @@ -140,11 +139,12 @@ public class ChartDataManage { DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds")); } // check permission - if (interactiveAuthApi != null) { - BusiPerCheckDTO dto = new BusiPerCheckDTO(); - dto.setId(table.getId()); - dto.setAuthEnum(AuthEnum.READ); - interactiveAuthApi.checkAuth(dto); + BusiPerCheckDTO dto = new BusiPerCheckDTO(); + dto.setId(table.getId()); + dto.setAuthEnum(AuthEnum.READ); + boolean checked = corePermissionManage.checkAuth(dto); + if (!checked) { + DEException.throwException(Translator.get("i18n_no_datasource_permission")); } // column permission From 0d140ed37e9f88cb5a755f9420b59b551c61e5a5 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 1 Nov 2023 15:27:24 +0800 Subject: [PATCH 14/29] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96Tab?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=93=8D=E4=BD=9C=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E5=8F=AF=E8=83=BD=E8=A2=AB=E9=81=AE=E6=8C=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualization/ComponentEditBar.vue | 2 +- .../src/views/canvas/DeCanvas.vue | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/core/core-frontend/src/components/visualization/ComponentEditBar.vue b/core/core-frontend/src/components/visualization/ComponentEditBar.vue index 81ced527a5..7dc1584f4c 100644 --- a/core/core-frontend/src/components/visualization/ComponentEditBar.vue +++ b/core/core-frontend/src/components/visualization/ComponentEditBar.vue @@ -287,7 +287,7 @@ const showEditPosition = computed(() => { if (showPosition.value === 'canvas') { const baseLeft = element.value.x - 1 const baseRight = pcMatrixCount.value.x - (element.value.x + element.value.sizeX - 1) - if (baseLeft === 0 && baseRight === 0) { + if ((baseLeft === 0 && baseRight === 0) || baseRight < 0) { return 'bar-main-right-inner' } else if (baseRight === 0) { return 'bar-main-left-outer' diff --git a/core/core-frontend/src/views/canvas/DeCanvas.vue b/core/core-frontend/src/views/canvas/DeCanvas.vue index 6d72595834..02b101b8b0 100644 --- a/core/core-frontend/src/views/canvas/DeCanvas.vue +++ b/core/core-frontend/src/views/canvas/DeCanvas.vue @@ -175,14 +175,16 @@ const addItemBox = component => { } const moveOutFromTab = component => { - component.canvasId = canvasId.value - dvMainStore.addComponent({ - component, - index: undefined, - isFromGroup: true, - componentData: componentData.value - }) - addItemBox(component) + setTimeout(() => { + component.canvasId = canvasId.value + dvMainStore.addComponent({ + component, + index: undefined, + isFromGroup: true, + componentData: componentData.value + }) + addItemBox(component) + }, 500) } // 全局监听按键事件 From f39ab20bfbe9a97c26524c87b8f64ecd78b2e0d8 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 15:37:07 +0800 Subject: [PATCH 15/29] =?UTF-8?q?perf:=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/manage/DataSourceManage.java | 7 +++++++ .../datasource/server/DatasourceServer.java | 17 +++++------------ de-xpack | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java index 6ebd3a95d7..a26fe93b95 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java @@ -87,6 +87,13 @@ public class DataSourceManage { coreOptRecentManage.saveOpt(coreDatasource.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE,OptConstants.OPT_TYPE.UPDATE); } + @XpackInteract(value = "datasourceResourceTree", before = false) + public void innerEditStatus(CoreDatasource coreDatasource) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", coreDatasource.getId()); + coreDatasourceMapper.update(coreDatasource, updateWrapper); + } + @XpackInteract(value = "datasourceResourceTree", before = false) public void move(DatasourceDTO dataSourceDTO) { Long id = dataSourceDTO.getId(); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 0419d7a4d1..d6550acdba 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -12,8 +12,6 @@ import io.dataease.api.dataset.dto.DatasetTableDTO; import io.dataease.api.dataset.dto.PreviewSqlDTO; import io.dataease.api.ds.DatasourceApi; import io.dataease.api.ds.vo.*; -import io.dataease.api.permissions.auth.api.InteractiveAuthApi; -import io.dataease.api.permissions.auth.dto.BusiResourceEditor; import io.dataease.commons.constants.TaskStatus; import io.dataease.commons.utils.CommonThreadPool; import io.dataease.constant.DataSourceType; @@ -43,7 +41,6 @@ import io.dataease.utils.*; import jakarta.annotation.Resource; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestBody; @@ -88,8 +85,6 @@ public class DatasourceServer implements DatasourceApi { @Resource private DatasetDataManage datasetDataManage; - @Autowired(required = false) - private InteractiveAuthApi interactiveAuthApi; @Resource private CoreUserManage coreUserManage; @@ -618,14 +613,12 @@ public class DatasourceServer implements DatasourceApi { record.setStatus(coreDatasource.getStatus()); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("id", coreDatasource.getId()); - datasourceMapper.update(record, wrapper); - if (interactiveAuthApi != null) { - BusiResourceEditor editor = new BusiResourceEditor(); - editor.setId((long) coreDatasource.getId()); - editor.setName(coreDatasource.getName()); - editor.setExtraFlag(getExtraFlag(coreDatasource.getType(), coreDatasource.getStatus())); - interactiveAuthApi.editResource(editor); + CoreDatasource originData = datasourceMapper.selectById(coreDatasource.getId()); + String originStatus = originData.getStatus(); + if (StringUtils.equals(coreDatasource.getStatus(), originStatus)) { + return datasourceDTO; } + dataSourceManage.innerEditStatus(coreDatasource); return datasourceDTO; } diff --git a/de-xpack b/de-xpack index 91f3ae7939..bd2abefb4c 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 91f3ae793906139d6d761704b95c162de7d26a3d +Subproject commit bd2abefb4c91e6399a7de3a6f4dcbadb5633163b From 88416917f397d825dee43f653838a366c92f9916 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 15:59:32 +0800 Subject: [PATCH 16/29] =?UTF-8?q?perf:=20=E8=AE=A4=E8=AF=81=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=90=8C=E6=AD=A5=E5=A4=B1=E8=B4=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de-xpack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/de-xpack b/de-xpack index bd2abefb4c..912a648808 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit bd2abefb4c91e6399a7de3a6f4dcbadb5633163b +Subproject commit 912a648808e87bdf1e5a11f7cdc6467b89fd9347 From 9b7e21303db28aacfa3d60840b12f27749f6740e Mon Sep 17 00:00:00 2001 From: xuwei-fit2cloud Date: Wed, 1 Nov 2023 16:40:32 +0800 Subject: [PATCH 17/29] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- installer/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/install.sh b/installer/install.sh index 38271eecbc..5debe525d7 100644 --- a/installer/install.sh +++ b/installer/install.sh @@ -183,7 +183,7 @@ else cd ${DE_RUN_BASE} && docker-compose $compose_files pull 2>&1 DEVERSION=$(cat ${CURRENT_DIR}/dataease/templates/version) - #curl -sfL https://resource.fit2cloud.com/installation-log.sh | sh -s de ${INSTALL_TYPE} ${DEVERSION} + curl -sfL https://resource.fit2cloud.com/installation-log.sh | sh -s de ${INSTALL_TYPE} ${DEVERSION} cd - fi From 5746a1e6aa4fdf4783ee68cbdefdae76928fea09 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 1 Nov 2023 16:54:36 +0800 Subject: [PATCH 18/29] =?UTF-8?q?perf:=20=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/views/workbranch/ShortcutTable.vue | 5 +++-- core/core-frontend/src/views/workbranch/index.vue | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/views/workbranch/ShortcutTable.vue b/core/core-frontend/src/views/workbranch/ShortcutTable.vue index 9b06f13573..a20d9345a9 100644 --- a/core/core-frontend/src/views/workbranch/ShortcutTable.vue +++ b/core/core-frontend/src/views/workbranch/ShortcutTable.vue @@ -336,8 +336,9 @@ const getEmptyDesc = (): string => { padding: 8px 24px 0 24px; background: #fff; border-radius: 4px; - height: calc(100% - 280px); - margin-top: 16px; + // height: calc(100% - 280px); + // margin-top: 16px; + height: 100%; .select-type-list { width: 104px; diff --git a/core/core-frontend/src/views/workbranch/index.vue b/core/core-frontend/src/views/workbranch/index.vue index 934ae3b1c7..500185b0d0 100644 --- a/core/core-frontend/src/views/workbranch/index.vue +++ b/core/core-frontend/src/views/workbranch/index.vue @@ -17,6 +17,8 @@ const { t } = useI18n() const busiDataMap = computed(() => interactiveStore.getData) const busiCountCardList = ref([]) +const showTemplate = ref(false) + const router = useRouter() const quickCreationList = shallowRef([ @@ -159,7 +161,7 @@ fillCardInfo()
-
+
模版市场
From 669e800fa3540f547bf2a3a5fc1b320724c0d304 Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Wed, 1 Nov 2023 17:02:20 +0800 Subject: [PATCH 19/29] =?UTF-8?q?fix:=20=E6=8F=90=E7=A4=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/TooltipSelector.vue | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue index 2b74219b3b..a515875ab4 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue @@ -69,7 +69,7 @@ const initSeriesTooltip = () => { ...next, seriesId: next.seriesId ?? next.id, show: index <= quotaAxis.value.length - 1, - summary: 'sum' + summary: COUNT_DE_TYPE.includes(next.deType) ? 'count' : 'sum' } as SeriesFormatter if (seriesAxisMap[tmp.seriesId]) { tmp = { @@ -136,6 +136,18 @@ const AGGREGATION_TYPE = [ { name: t('chart.count'), value: 'count' }, { name: t('chart.count_distinct'), value: 'count_distinct' } ] +const COUNT_AGGREGATION_TYPE = [ + { name: t('chart.count'), value: 'count' }, + { name: t('chart.count_distinct'), value: 'count_distinct' } +] +const COUNT_DE_TYPE = [0, 1, 5] + +const aggregationList = computed(() => { + if (COUNT_DE_TYPE.includes(curSeriesFormatter.value?.deType)) { + return COUNT_AGGREGATION_TYPE + } + return AGGREGATION_TYPE +}) watch( [() => props.chart.customAttr.tooltip, () => props.chart.customAttr.tooltip.show], () => { @@ -188,10 +200,8 @@ const init = () => { formatterSelector.value?.blur() // 新增视图 const formatter = state.tooltipForm.seriesTooltipFormatter - if (!quotaAxis.value?.length) { - if (!formatter.length) { - quotaData.value?.forEach(i => formatter.push({ ...i, seriesId: i.id, show: false })) - } + if (!formatter.length) { + quotaData.value?.forEach(i => formatter.push({ ...i, seriesId: i.id, show: false })) curSeriesFormatter.value = {} return } @@ -209,7 +219,13 @@ const init = () => { } } -const showProperty = prop => props.propertyInner?.includes(prop) +const showProperty = prop => { + const instance = chartViewManager.getChartView(props.chart.render, props.chart.type) + if (instance) { + return instance.propertyInner['tooltip-selector'].includes(prop) + } + return props.propertyInner?.includes(prop) +} const updateSeriesTooltipFormatter = (form: AxisEditForm) => { const { axisType, editType } = form if ( @@ -575,7 +591,7 @@ onMounted(() => { @change="changeTooltipAttr('seriesTooltipFormatter', true)" > Date: Wed, 1 Nov 2023 17:03:02 +0800 Subject: [PATCH 20/29] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E6=97=B6=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/dataset-select/DatasetSelect.vue | 23 ----------------- .../views/chart/components/editor/index.vue | 25 ++++++++++++++++++- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue b/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue index 1cfc8131a2..379f34814f 100644 --- a/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue +++ b/core/core-frontend/src/views/chart/components/editor/dataset-select/DatasetSelect.vue @@ -173,33 +173,10 @@ const dsClick = (data: Tree) => { } //选中赋值 _modelValue.value = data.id - getFields(data.id, props.viewId) //关闭弹窗 datasetSelectorPopover.value?.hide() } } -const getFields = (id, chartId) => { - if (id && chartId) { - getFieldByDQ(id, chartId) - .then(res => { - state.value.dimension = (res.dimensionList as unknown as Field[]) || [] - state.value.quota = (res.quotaList as unknown as Field[]) || [] - state.value.dimensionData = JSON.parse(JSON.stringify(state.value.dimension)) - state.value.quotaData = JSON.parse(JSON.stringify(state.value.quota)) - }) - .catch(() => { - state.value.dimension = [] - state.value.quota = [] - state.value.dimensionData = [] - state.value.quotaData = [] - }) - } else { - state.value.dimension = [] - state.value.quota = [] - state.value.dimensionData = [] - state.value.quotaData = [] - } -} const _popoverShow = ref(false) function onPopoverShow() { _popoverShow.value = true diff --git a/core/core-frontend/src/views/chart/components/editor/index.vue b/core/core-frontend/src/views/chart/components/editor/index.vue index f578dc4317..693f9c8c09 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -49,6 +49,7 @@ import chartViewManager from '@/views/chart/components/js/panel' import DatasetSelect from '@/views/chart/components/editor/dataset-select/DatasetSelect.vue' import { useDraggable } from '@vueuse/core' import { set, concat, keys } from 'lodash-es' +import { Field, getFieldByDQ } from '@/api/chart' const snapshotStore = snapshotStoreWithOut() const dvMainStore = dvMainStoreWithOut() @@ -146,6 +147,7 @@ const state = reactive({ watch( [() => view.value['tableId']], () => { + getFields(props.view.tableId, props.view.id) const nodeId = view.value['tableId'] if (!!nodeId) { cacheId = nodeId as unknown as string @@ -157,7 +159,28 @@ watch( }, { deep: true } ) - +const getFields = (id, chartId) => { + if (id && chartId) { + getFieldByDQ(id, chartId) + .then(res => { + state.dimension = (res.dimensionList as unknown as Field[]) || [] + state.quota = (res.quotaList as unknown as Field[]) || [] + state.dimensionData = JSON.parse(JSON.stringify(state.dimension)) + state.quotaData = JSON.parse(JSON.stringify(state.quota)) + }) + .catch(() => { + state.dimension = [] + state.quota = [] + state.dimensionData = [] + state.quotaData = [] + }) + } else { + state.dimension = [] + state.quota = [] + state.dimensionData = [] + state.quotaData = [] + } +} watch( [() => state.searchField], newVal => { From 6285f0bebac9f50b07cb2b1af59a545b4eead934 Mon Sep 17 00:00:00 2001 From: maninhill <41712985+maninhill@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:27:14 +0800 Subject: [PATCH 21/29] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fa9021e03..f0eeee422c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。 -![DataEase 概览图](https://github.com/dataease/dataease/assets/41712985/ef020c86-68e0-43a3-8054-f51463eae361) +![DataEase 概览图](https://github.com/dataease/dataease/assets/41712985/e3e53e3e-f0bb-4ff3-9ae8-e8273663e0cf) + **DataEase 的优势:** From d6c5cb797fa6c5dd3bea5b98bdab11c76dd32c14 Mon Sep 17 00:00:00 2001 From: maninhill <41712985+maninhill@users.noreply.github.com> Date: Thu, 2 Nov 2023 08:57:56 +0800 Subject: [PATCH 22/29] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f0eeee422c..ef11f34f4f 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分享。 -![DataEase 概览图](https://github.com/dataease/dataease/assets/41712985/e3e53e3e-f0bb-4ff3-9ae8-e8273663e0cf) +![DataEase 概览图](https://github.com/dataease/dataease/assets/41712985/52ca92d0-955c-42f1-bb79-d9bb19913649) + **DataEase 的优势:** From 45ffb348a5e2651037fe5e0d280c36e6885849ca Mon Sep 17 00:00:00 2001 From: maninhill <41712985+maninhill@users.noreply.github.com> Date: Thu, 2 Nov 2023 10:40:38 +0800 Subject: [PATCH 23/29] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ef11f34f4f..26307e9f7b 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,8 @@ DataEase 是开源的数据可视化分析工具,帮助用户快速分析数 ## DataEase 快速入门 -- [安装部署教程](https://dataease.io/docs/installation/installation_mode/) -- [快速入门视频](https://www.bilibili.com/video/BV1qG4y1F7uc/) -- [完整在线文档](https://dataease.io/docs/) -- [中文社区论坛](https://bbs.fit2cloud.com/c/de/6) -- [模板应用市场](https://dataease.io/templates/) +- [在线文档](https://dataease.io/docs/) +- [社区论坛](https://bbs.fit2cloud.com/c/de/6) ## License From 5fff25b29125529e5689360d4af164f1fb2db1b6 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 2 Nov 2023 11:00:30 +0800 Subject: [PATCH 24/29] =?UTF-8?q?refactor:=20=E7=A4=BE=E5=8C=BA=E7=89=88?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E6=9D=BF=E6=97=A0=E9=9C=80=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=80=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/views/common/DvDetailInfo.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/core-frontend/src/views/common/DvDetailInfo.vue b/core/core-frontend/src/views/common/DvDetailInfo.vue index 062d601253..6c8e70b4b0 100644 --- a/core/core-frontend/src/views/common/DvDetailInfo.vue +++ b/core/core-frontend/src/views/common/DvDetailInfo.vue @@ -1,11 +1,11 @@