From 00c37f404c9ac4ad51f2279d8ffe63746160aff3 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 21 Aug 2024 14:19:55 +0800 Subject: [PATCH 01/32] =?UTF-8?q?feat(=E4=BB=AA=E8=A1=A8=E6=9D=BF=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BC=98=E5=8C=96=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=82=E6=95=B0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/MybatisPlusGenerator.java | 2 +- ...isualizationOuterParamsTargetViewInfo.java | 20 +- ...zationOuterParamsTargetViewInfoMapper.java | 2 +- .../main/resources/db/desktop/V2.10__ddl.sql | 5 + .../resources/db/migration/V2.10__ddl.sql | 4 + .../ExtVisualizationOuterParamsMapper.xml | 1 + .../visualization/OuterParamsSet.vue | 2 +- .../visualization/OuterParamsSetDS.vue | 647 ++++++++++++++++++ ...ualizationOuterParamsTargetViewInfoVO.java | 68 +- 9 files changed, 685 insertions(+), 66 deletions(-) create mode 100644 core/core-frontend/src/components/visualization/OuterParamsSetDS.vue diff --git a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java index 3e5d0ddc25..0f1a1971a2 100644 --- a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java +++ b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java @@ -25,7 +25,7 @@ public class MybatisPlusGenerator { /** * 这是要生成代码的表名称 */ - private static final String TABLE_NAME = "visualization_report_filter"; + private static final String TABLE_NAME = "visualization_outer_params_target_view_info"; /** * 下面两个配置基本上不用动 diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/entity/VisualizationOuterParamsTargetViewInfo.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/entity/VisualizationOuterParamsTargetViewInfo.java index 393127f6f2..e36f2ea50f 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/entity/VisualizationOuterParamsTargetViewInfo.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/entity/VisualizationOuterParamsTargetViewInfo.java @@ -1,5 +1,6 @@ package io.dataease.visualization.dao.auto.entity; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -9,7 +10,7 @@ import java.io.Serializable; *

* * @author fit2cloud - * @since 2024-03-08 + * @since 2024-08-21 */ @TableName("visualization_outer_params_target_view_info") public class VisualizationOuterParamsTargetViewInfo implements Serializable { @@ -19,6 +20,7 @@ public class VisualizationOuterParamsTargetViewInfo implements Serializable { /** * 主键 */ + @TableId("target_id") private String targetId; /** @@ -27,10 +29,15 @@ public class VisualizationOuterParamsTargetViewInfo implements Serializable { private String paramsInfoId; /** - * 联动视图ID + * 联动视图ID/联动过滤项ID */ private String targetViewId; + /** + * 联动数据集id/联动过滤组件id + */ + private String targetDsId; + /** * 联动字段ID */ @@ -70,6 +77,14 @@ public class VisualizationOuterParamsTargetViewInfo implements Serializable { this.targetViewId = targetViewId; } + public String getTargetDsId() { + return targetDsId; + } + + public void setTargetDsId(String targetDsId) { + this.targetDsId = targetDsId; + } + public String getTargetFieldId() { return targetFieldId; } @@ -100,6 +115,7 @@ public class VisualizationOuterParamsTargetViewInfo implements Serializable { "targetId = " + targetId + ", paramsInfoId = " + paramsInfoId + ", targetViewId = " + targetViewId + + ", targetDsId = " + targetDsId + ", targetFieldId = " + targetFieldId + ", copyFrom = " + copyFrom + ", copyId = " + copyId + diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/VisualizationOuterParamsTargetViewInfoMapper.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/VisualizationOuterParamsTargetViewInfoMapper.java index 1d4f56197a..0e6a211399 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/VisualizationOuterParamsTargetViewInfoMapper.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/VisualizationOuterParamsTargetViewInfoMapper.java @@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper; *

* * @author fit2cloud - * @since 2024-03-08 + * @since 2024-08-21 */ @Mapper public interface VisualizationOuterParamsTargetViewInfoMapper extends BaseMapper { diff --git a/core/core-backend/src/main/resources/db/desktop/V2.10__ddl.sql b/core/core-backend/src/main/resources/db/desktop/V2.10__ddl.sql index f6a904983a..902dcd020a 100644 --- a/core/core-backend/src/main/resources/db/desktop/V2.10__ddl.sql +++ b/core/core-backend/src/main/resources/db/desktop/V2.10__ddl.sql @@ -6,3 +6,8 @@ alter table `core_dataset_table_field` add params text null comment '计算字 alter table `core_datasource` add `enable_data_fill` tinyint default 0 null comment '启用数据填报功能'; + + +ALTER TABLE `visualization_outer_params_target_view_info` + MODIFY COLUMN `target_view_id` varchar(50) NULL DEFAULT NULL COMMENT '联动视图ID/联动过滤项ID' , + ADD COLUMN `target_ds_id` varchar(50) NULL COMMENT '联动数据集id/联动过滤组件id' ; diff --git a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql index 855346aeea..5f2a9c4f8b 100644 --- a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql +++ b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql @@ -57,3 +57,7 @@ CREATE TABLE `xpack_threshold_instance` ); +ALTER TABLE `visualization_outer_params_target_view_info` + MODIFY COLUMN `target_view_id` varchar(50) NULL DEFAULT NULL COMMENT '联动视图ID/联动过滤项ID' , + ADD COLUMN `target_ds_id` varchar(50) NULL COMMENT '联动数据集id/联动过滤组件id' ; + diff --git a/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml index b4c7d781f5..8f68002f96 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml @@ -49,6 +49,7 @@ popi.param_name, ifnull( popi.checked, 0 ) AS checked, poptvi.target_view_id, + poptvi.target_ds_id, poptvi.target_field_id FROM visualization_outer_params pop diff --git a/core/core-frontend/src/components/visualization/OuterParamsSet.vue b/core/core-frontend/src/components/visualization/OuterParamsSet.vue index 2298b24eb7..08cc0444ba 100644 --- a/core/core-frontend/src/components/visualization/OuterParamsSet.vue +++ b/core/core-frontend/src/components/visualization/OuterParamsSet.vue @@ -13,7 +13,7 @@ - 参数列表 + 参数列表DS diff --git a/core/core-frontend/src/components/visualization/OuterParamsSetDS.vue b/core/core-frontend/src/components/visualization/OuterParamsSetDS.vue new file mode 100644 index 0000000000..2298b24eb7 --- /dev/null +++ b/core/core-frontend/src/components/visualization/OuterParamsSetDS.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsTargetViewInfoVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsTargetViewInfoVO.java index 29555c08a4..314365a542 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsTargetViewInfoVO.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsTargetViewInfoVO.java @@ -1,6 +1,6 @@ package io.dataease.api.visualization.vo; -import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; import java.io.Serializable; @@ -12,6 +12,7 @@ import java.io.Serializable; * @author fit2cloud * @since 2024-03-08 */ +@Data public class VisualizationOuterParamsTargetViewInfoVO implements Serializable { private static final long serialVersionUID = 1L; @@ -31,6 +32,11 @@ public class VisualizationOuterParamsTargetViewInfoVO implements Serializable { */ private String targetViewId; + /** + * 联动数据集id/联动过滤组件id + */ + private String targetDsId; + /** * 联动字段ID */ @@ -45,64 +51,4 @@ public class VisualizationOuterParamsTargetViewInfoVO implements Serializable { * 复制来源ID */ private String copyId; - - public String getTargetId() { - return targetId; - } - - public void setTargetId(String targetId) { - this.targetId = targetId; - } - - public String getParamsInfoId() { - return paramsInfoId; - } - - public void setParamsInfoId(String paramsInfoId) { - this.paramsInfoId = paramsInfoId; - } - - public String getTargetViewId() { - return targetViewId; - } - - public void setTargetViewId(String targetViewId) { - this.targetViewId = targetViewId; - } - - public String getTargetFieldId() { - return targetFieldId; - } - - public void setTargetFieldId(String targetFieldId) { - this.targetFieldId = targetFieldId; - } - - public String getCopyFrom() { - return copyFrom; - } - - public void setCopyFrom(String copyFrom) { - this.copyFrom = copyFrom; - } - - public String getCopyId() { - return copyId; - } - - public void setCopyId(String copyId) { - this.copyId = copyId; - } - - @Override - public String toString() { - return "VisualizationOuterParamsTargetViewInfo{" + - "targetId = " + targetId + - ", paramsInfoId = " + paramsInfoId + - ", targetViewId = " + targetViewId + - ", targetFieldId = " + targetFieldId + - ", copyFrom = " + copyFrom + - ", copyId = " + copyId + - "}"; - } } From 262edda65214e7c56666c7e0551c1e52811ced87 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 21 Aug 2024 16:42:37 +0800 Subject: [PATCH 02/32] =?UTF-8?q?feat(=E4=BB=AA=E8=A1=A8=E6=9D=BF=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BC=98=E5=8C=96=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=82=E6=95=B0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VisualizationOuterParamsService.java | 16 ++++++++++++---- .../mybatis/ExtDataVisualizationMapper.xml | 4 +++- .../VisualizationOuterParamsApi.java | 3 +++ .../dto/VisualizationOuterParamsInfoDTO.java | 6 ++++++ .../vo/VisualizationOuterParamsDsInfoVO.java | 19 +++++++++++++++++++ .../VisualizationOuterParamsFilterInfoVO.java | 15 +++++++++++++++ 6 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsDsInfoVO.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/visualization/vo/VisualizationOuterParamsFilterInfoVO.java diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java index b252b15559..d022fe1854 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java @@ -1,26 +1,28 @@ package io.dataease.visualization.server; +import com.fasterxml.jackson.core.type.TypeReference; import io.dataease.api.visualization.VisualizationOuterParamsApi; import io.dataease.api.visualization.dto.VisualizationOuterParamsDTO; import io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO; import io.dataease.api.visualization.response.VisualizationOuterParamsBaseResponse; +import io.dataease.api.visualization.vo.DataVisualizationVO; import io.dataease.utils.BeanUtils; +import io.dataease.utils.JsonUtil; import io.dataease.visualization.dao.auto.entity.VisualizationOuterParams; import io.dataease.visualization.dao.auto.entity.VisualizationOuterParamsInfo; import io.dataease.visualization.dao.auto.entity.VisualizationOuterParamsTargetViewInfo; import io.dataease.visualization.dao.auto.mapper.VisualizationOuterParamsInfoMapper; import io.dataease.visualization.dao.auto.mapper.VisualizationOuterParamsMapper; import io.dataease.visualization.dao.auto.mapper.VisualizationOuterParamsTargetViewInfoMapper; +import io.dataease.visualization.dao.ext.mapper.ExtDataVisualizationMapper; import io.dataease.visualization.dao.ext.mapper.ExtVisualizationOuterParamsMapper; import jakarta.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -41,12 +43,18 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams @Resource private VisualizationOuterParamsTargetViewInfoMapper outerParamsTargetViewInfoMapper; + @Override public VisualizationOuterParamsDTO queryWithVisualizationId(String visualizationId) { VisualizationOuterParamsDTO visualizationOuterParamsDTO = extOuterParamsMapper.queryWithVisualizationId(visualizationId); return visualizationOuterParamsDTO; } + @Override + public VisualizationOuterParamsDTO queryWithVisualizationIdDS(String dvId) { + return null; + } + @Override public void updateOuterParamsSet(VisualizationOuterParamsDTO outerParamsDTO) { String visualizationId = outerParamsDTO.getVisualizationId(); diff --git a/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml index deee3d6678..929470701e 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml @@ -160,7 +160,9 @@ FROM data_visualization_info where data_visualization_info.delete_flag = 0 and data_visualization_info.id = #{dvId} - and data_visualization_info.type = #{dvType} + + and data_visualization_info.type = #{dvType} + + + + diff --git a/core/core-frontend/src/api/visualization/dataVisualization.ts b/core/core-frontend/src/api/visualization/dataVisualization.ts index d35c8db3ce..6df17c54a5 100644 --- a/core/core-frontend/src/api/visualization/dataVisualization.ts +++ b/core/core-frontend/src/api/visualization/dataVisualization.ts @@ -107,3 +107,11 @@ export const export2AppCheck = params => { loading: true }) } + +export const queryOuterParamsDsInfo = async dvId => { + return request.get({ + url: '/dataVisualization/queryDsWithVisualizationId/' + dvId, + method: 'get', + loading: false + }) +} diff --git a/core/core-frontend/src/components/visualization/OuterParamsSet.vue b/core/core-frontend/src/components/visualization/OuterParamsSet.vue index 08cc0444ba..42f3b43086 100644 --- a/core/core-frontend/src/components/visualization/OuterParamsSet.vue +++ b/core/core-frontend/src/components/visualization/OuterParamsSet.vue @@ -13,7 +13,7 @@ - 参数列表DS + 参数列表 @@ -182,7 +182,7 @@ import { useI18n } from '@/hooks/web/useI18n' import { deepCopy } from '@/utils/utils' import generateID from '@/utils/generateID' import { queryWithVisualizationId, updateOuterParamsSet } from '@/api/visualization/outerParams' -import { viewDetailList } from '@/api/visualization/dataVisualization' +import { queryOuterParamsDsInfo, viewDetailList } from '@/api/visualization/dataVisualization' import checkArrayRepeat from '@/utils/check' import HandleMore from '@/components/handle-more/src/HandleMore.vue' import { fieldType } from '@/utils/attr' @@ -219,6 +219,7 @@ const state = reactive({ checked: false, outerParamsInfoArray: [] }, + baseDatasetInfo: [], outerParamsInfoArray: [], mapOuterParamsInfoArray: {}, panelList: [], @@ -284,7 +285,7 @@ const getFieldArray = id => { return state.viewIdFieldArrayMap[id] } -const initParams = () => { +const initParams = async () => { // 获取当前仪表板外部跳转信息 queryWithVisualizationId(dvInfo.value.id).then(rsp => { state.outerParams = rsp.data @@ -300,6 +301,9 @@ const initParams = () => { }) } }) + await queryOuterParamsDsInfo(dvInfo.value.id).then(rsp => { + state.baseDatasetInfo = rsp.data + }) getPanelViewList(dvInfo.value.id) } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java new file mode 100644 index 0000000000..30e3abea5a --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetGroupVO.java @@ -0,0 +1,91 @@ +package io.dataease.api.dataset.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +public class CoreDatasetGroupVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 父级ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long pid; + + /** + * 当前分组处于第几级 + */ + private Integer level; + + /** + * node类型:folder or dataset + */ + private String nodeType; + + /** + * sql,union + */ + private String type; + + /** + * 连接模式:0-直连,1-同步(包括excel、api等数据存在de中的表) + */ + private Integer mode; + + /** + * 关联关系树 + */ + private String info; + + /** + * 创建人ID + */ + private String createBy; + + /** + * 创建时间 + */ + private Long createTime; + + private String qrtzInstance; + + /** + * 同步状态 + */ + private String syncStatus; + + /** + * 更新人ID + */ + private String updateBy; + + /** + * 最后同步时间 + */ + private Long lastUpdateTime; + + /** + * 关联sql + */ + private String unionSql; + + private List datasetFields = new ArrayList<>(); +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetTableFieldVO.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetTableFieldVO.java new file mode 100644 index 0000000000..f8b0f615a1 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/vo/CoreDatasetTableFieldVO.java @@ -0,0 +1,124 @@ +package io.dataease.api.dataset.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CoreDatasetTableFieldVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 数据源ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long datasourceId; + + /** + * 数据表ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long datasetTableId; + + /** + * 数据集ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long datasetGroupId; + + /** + * 图表ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long chartId; + + /** + * 原始字段名 + */ + private String originName; + + /** + * 字段名用于展示 + */ + private String name; + + /** + * 描述 + */ + private String description; + + /** + * de字段名用作唯一标识 + */ + private String dataeaseName; + + /** + * de字段别名 + */ + private String fieldShortName; + + /** + * 维度/指标标识 d:维度,q:指标 + */ + private String groupType; + + /** + * 原始字段类型 + */ + private String type; + + private Integer size; + + /** + * dataease字段类型:0-文本,1-时间,2-整型数值,3-浮点数值,4-布尔,5-地理位置,6-二进制 + */ + private Integer deType; + + /** + * de记录的原始类型 + */ + private Integer deExtractType; + + /** + * 是否扩展字段 0原始 1复制 2计算字段... + */ + private Integer extField; + + /** + * 是否选中 + */ + private Boolean checked; + + /** + * 列位置 + */ + private Integer columnIndex; + + /** + * 同步时间 + */ + private Long lastSyncTime; + + /** + * 精度 + */ + private Integer accuracy; + + private String dateFormat; + + /** + * 时间格式类型 + */ + private String dateFormatType; + + // 附加ID 兼容自定义参数ID + private String attachId; +} diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/VisualizationOuterParamsApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/VisualizationOuterParamsApi.java index 12cfaf8c0c..f16ea4e439 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/visualization/VisualizationOuterParamsApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/visualization/VisualizationOuterParamsApi.java @@ -1,16 +1,19 @@ package io.dataease.api.visualization; +import io.dataease.api.dataset.vo.CoreDatasetGroupVO; import io.dataease.api.visualization.dto.VisualizationOuterParamsDTO; import io.dataease.api.visualization.response.VisualizationOuterParamsBaseResponse; import org.springframework.web.bind.annotation.*; +import java.util.List; + public interface VisualizationOuterParamsApi { @GetMapping("/queryWithVisualizationId/{dvId}") VisualizationOuterParamsDTO queryWithVisualizationId(@PathVariable("dvId") String dvId); - @GetMapping("/queryWithVisualizationId/{dvId}") + @GetMapping("/queryWithVisualizationIdDS/{dvId}") VisualizationOuterParamsDTO queryWithVisualizationIdDS(@PathVariable("dvId") String dvId); @PostMapping("/updateOuterParamsSet") @@ -18,4 +21,7 @@ public interface VisualizationOuterParamsApi { @GetMapping("/getOuterParamsInfo/{dvId}") VisualizationOuterParamsBaseResponse getOuterParamsInfo(@PathVariable("dvId") String dvId); + + @GetMapping("/queryDsWithVisualizationId/{dvId}") + List queryDsWithVisualizationId(@PathVariable("dvId") String dvId); } From 2311f180b8876ff141e44d1e685740f603dd22c6 Mon Sep 17 00:00:00 2001 From: ulleo Date: Wed, 21 Aug 2024 18:36:30 +0800 Subject: [PATCH 05/32] =?UTF-8?q?fix(X-Pack):=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A1=AB=E6=8A=A5=E8=A1=A8=E5=8D=95=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E4=B8=AD=E5=87=BA=E7=8E=B0=E4=BA=86=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E8=A1=A8=E5=8D=95=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de-xpack | 2 +- .../io/dataease/api/xpack/dataFilling/DataFillingApi.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/de-xpack b/de-xpack index 7ebfc0b552..8bd2d1244e 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 7ebfc0b55262ee4f3bbd04defdb4e11128dc51d8 +Subproject commit 8bd2d1244e9e2a41e7e37ac2840220af70167de5 diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/DataFillingApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/DataFillingApi.java index 1b073d2744..b933cd7cf3 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/DataFillingApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/DataFillingApi.java @@ -80,8 +80,8 @@ public interface DataFillingApi { @PostMapping("/task/logMsg") String logMsg(@RequestBody ReportInstanceMsgRequest request); - @PostMapping("/task/page/{goPage}/{pageSize}") - IPage taskPager(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfTaskInfoRequest request); + @PostMapping("/form/{formId}/task/page/{goPage}/{pageSize}") + IPage taskPager(@PathVariable("formId") Long formId, @PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfTaskInfoRequest request); @PostMapping("/sub-task/page/{goPage}/{pageSize}") IPage subTaskPager(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfSubTaskInfoRequest request); From c7a2027b8902f0789255567747604f90611811ae Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 21 Aug 2024 18:57:37 +0800 Subject: [PATCH 06/32] =?UTF-8?q?perf(X-Pack):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=9C=AA=E4=BF=9D=E5=AD=98=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=E8=AE=BE=E7=BD=AE=E9=98=88=E5=80=BC=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/chart/manage/ChartViewManege.java | 1 + de-xpack | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java index fbba49ec89..fe70b75566 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java @@ -252,6 +252,7 @@ public class ChartViewManege { public ChartBaseVO chartBaseInfo(Long id) { ChartBasePO po = extChartViewMapper.queryChart(id); + if (ObjectUtils.isEmpty(po)) return null; ChartBaseVO vo = BeanUtils.copyBean(new ChartBaseVO(), po); TypeReference> tokenType = new TypeReference<>() {}; vo.setXAxis(JsonUtil.parseList(po.getXAxis(), tokenType)); diff --git a/de-xpack b/de-xpack index 7ebfc0b552..43b6ff1f0d 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 7ebfc0b55262ee4f3bbd04defdb4e11128dc51d8 +Subproject commit 43b6ff1f0d11c1920e79ce082f35182a73fa17c2 From 2c1787287aafdc47e33bba3ae1ca3c5ddf0ee149 Mon Sep 17 00:00:00 2001 From: wisonic Date: Wed, 21 Aug 2024 20:09:19 +0800 Subject: [PATCH 07/32] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6=20URL=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=AF=86=E5=88=AB=E4=B8=BA=E6=97=B6=E9=97=B4=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/custom-component/v-query/Component.vue | 4 +++- .../v-query/QueryConditionConfiguration.vue | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/custom-component/v-query/Component.vue b/core/core-frontend/src/custom-component/v-query/Component.vue index b86d8dab16..ca773ef79a 100644 --- a/core/core-frontend/src/custom-component/v-query/Component.vue +++ b/core/core-frontend/src/custom-component/v-query/Component.vue @@ -347,13 +347,15 @@ const drop = e => { checkedFieldsMap[ele.id] = componentInfo.id } }) + // URL 字段类型换成文本字段类型 + const displayType = componentInfo.deType === 7 ? 0 : componentInfo.deType list.value.push({ ...infoFormat(componentInfo), auto: true, optionValueSource: 1, checkedFields, checkedFieldsMap, - displayType: `${componentInfo.deType}` + displayType }) }) element.value.propValue = [...list.value] diff --git a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue index 456ed034ab..8e80718dc1 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -330,6 +330,9 @@ const setType = () => { if (!(field?.deType === 1 && curComponent.value.displayType === '7')) { curComponent.value.displayType = `${[3, 4].includes(field?.deType) ? 2 : field?.deType}` } + if (field?.deType === 7) { + curComponent.value.displayType = '0' + } if ( displayType !== curComponent.value.displayType && !([3, 4].includes(+displayType) && +curComponent.value.displayType === 2) @@ -1848,7 +1851,8 @@ defineExpose({ v-for="ele in curComponent.dataset.fields.filter( ele => ele.deType === +curComponent.displayType || - ([3, 4].includes(ele.deType) && +curComponent.displayType === 2) + ([3, 4].includes(ele.deType) && +curComponent.displayType === 2) || + (ele.deType === 7 && +curComponent.displayType === 0) )" :key="ele.id" :label="ele.name" @@ -1899,7 +1903,8 @@ defineExpose({ v-for="ele in curComponent.dataset.fields.filter( ele => ele.deType === +curComponent.displayType || - ([3, 4].includes(ele.deType) && +curComponent.displayType === 2) + ([3, 4].includes(ele.deType) && +curComponent.displayType === 2) || + (ele.deType === 7 && +curComponent.displayType === 0) )" :key="ele.id" :label="ele.name" From 432ebf627ae14ee5f95fb1f4725f78ebbf620c32 Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Wed, 21 Aug 2024 20:19:41 +0800 Subject: [PATCH 08/32] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=9F=A9=E9=98=B5=E7=83=AD=E5=8A=9B=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/svg/t-heatmap-dark.svg | 18 + .../src/assets/svg/t-heatmap-origin.svg | 18 + .../src/assets/svg/t-heatmap.svg | 18 + .../data-visualization/canvas/Shape.vue | 3 +- .../src/components/icon-custom/src/Icon.vue | 8 +- core/core-frontend/src/locales/zh-CN.ts | 1 + .../core-frontend/src/models/chart/chart.d.ts | 2 + .../src/models/chart/editor.d.ts | 2 +- .../editor/filter/auth-tree/RowAuth.vue | 2 +- .../views/chart/components/editor/index.vue | 85 ++++- .../chart/components/editor/util/chart.ts | 7 + .../js/panel/charts/table/t-heatmap.ts | 316 ++++++++++++++++++ .../extensions/view/dto/ChartAxis.java | 1 + .../extensions/view/dto/ChartViewBaseDTO.java | 2 + 14 files changed, 478 insertions(+), 5 deletions(-) create mode 100644 core/core-frontend/src/assets/svg/t-heatmap-dark.svg create mode 100644 core/core-frontend/src/assets/svg/t-heatmap-origin.svg create mode 100644 core/core-frontend/src/assets/svg/t-heatmap.svg create mode 100644 core/core-frontend/src/views/chart/components/js/panel/charts/table/t-heatmap.ts diff --git a/core/core-frontend/src/assets/svg/t-heatmap-dark.svg b/core/core-frontend/src/assets/svg/t-heatmap-dark.svg new file mode 100644 index 0000000000..0e550c0c4b --- /dev/null +++ b/core/core-frontend/src/assets/svg/t-heatmap-dark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/core/core-frontend/src/assets/svg/t-heatmap-origin.svg b/core/core-frontend/src/assets/svg/t-heatmap-origin.svg new file mode 100644 index 0000000000..a19b1d00ed --- /dev/null +++ b/core/core-frontend/src/assets/svg/t-heatmap-origin.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/core/core-frontend/src/assets/svg/t-heatmap.svg b/core/core-frontend/src/assets/svg/t-heatmap.svg new file mode 100644 index 0000000000..b6c865615f --- /dev/null +++ b/core/core-frontend/src/assets/svg/t-heatmap.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue index 6d41a1aa60..436510023e 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue @@ -316,7 +316,8 @@ const boardMoveActive = computed(() => { 'table-normal', 'table-pivot', 'symbolic-map', - 'heat-map' + 'heat-map', + 't-heatmap' ] return element.value.isPlugin || CHARTS.includes(element.value.innerType) }) diff --git a/core/core-frontend/src/components/icon-custom/src/Icon.vue b/core/core-frontend/src/components/icon-custom/src/Icon.vue index c476fd042e..9558839098 100644 --- a/core/core-frontend/src/components/icon-custom/src/Icon.vue +++ b/core/core-frontend/src/components/icon-custom/src/Icon.vue @@ -679,6 +679,9 @@ import icon_single_line_outlined from '@/assets/svg/icon_single-line_outlined.sv import icon_todo_outlined from '@/assets/svg/icon_todo_outlined.svg' import icon_file_doc_colorful from '@/assets/svg/icon_file-doc_colorful.svg' import icon_font from '@/assets/svg/icon_font.svg' +import tHeatmap from '@/assets/svg/t-heatmap.svg' +import tHeatmapDark from '@/assets/svg/t-heatmap-dark.svg' +import tHeatmapOrigin from '@/assets/svg/t-heatmap-origin.svg' const iconMap = { '401': _401, icon_adjustment_outlined, @@ -1356,7 +1359,10 @@ const iconMap = { calculate, 'icon_file-doc_colorful': icon_file_doc_colorful, icon_font, - clock + clock, + 't-heatmap': tHeatmap, + 't-heatmap-dark': tHeatmapDark, + 't-heatmap-origin': tHeatmapOrigin } const props = defineProps({ diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index a00d722c6a..449b1651e9 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1116,6 +1116,7 @@ export default { table_column_fixed: '固定列宽', table_column_custom: '自定义', chart_table_pivot: '透视表', + chart_table_heatmap: '热力图', table_pivot_row: '数据行', field_error_tips: '该字段所对应的数据集原始字段发生变更(包括维度、指标,字段类型,字段被删除等),建议重新编辑', diff --git a/core/core-frontend/src/models/chart/chart.d.ts b/core/core-frontend/src/models/chart/chart.d.ts index 2dff80aff4..0365d5f5f0 100644 --- a/core/core-frontend/src/models/chart/chart.d.ts +++ b/core/core-frontend/src/models/chart/chart.d.ts @@ -68,6 +68,8 @@ declare interface Chart { flowMapStartName?: Axis[] flowMapEndName?: Axis[] showPosition: string + + extColor: Axis[] } declare type CustomAttr = DeepPartial | JSONString> declare type CustomStyle = DeepPartial | JSONString> diff --git a/core/core-frontend/src/models/chart/editor.d.ts b/core/core-frontend/src/models/chart/editor.d.ts index 72186e22dc..b2e21a1170 100644 --- a/core/core-frontend/src/models/chart/editor.d.ts +++ b/core/core-frontend/src/models/chart/editor.d.ts @@ -57,7 +57,7 @@ declare type AxisType = | 'area' | 'flowMapStartName' | 'flowMapEndName' - | 'flowMapColor' + | 'extColor' /** * 轴配置 */ diff --git a/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/RowAuth.vue b/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/RowAuth.vue index d969d385d4..62b70de1f6 100644 --- a/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/RowAuth.vue +++ b/core/core-frontend/src/views/chart/components/editor/filter/auth-tree/RowAuth.vue @@ -144,7 +144,7 @@ const getTimeValue = dynamicTimeSetting => { label: '年初', value: 'yearBeginning' } - ].find(ele => ele.value === relativeToCurrent).label + ].find(ele => ele.value === relativeToCurrent)?.label return timeValue } timeValue = `${timeNum}${relativeToCurrentTypeMap[relativeToCurrentType]}${ 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 e1e958e836..b88c890b5c 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -413,6 +413,8 @@ const dimensionItemRemove = item => { view.value.flowMapStartName.splice(item.index, 1) } else if (item.removeType === 'flowMapEndName') { view.value.flowMapEndName.splice(item.index, 1) + } else if (item.removeType === 'extColor') { + view.value.extColor.splice(item.index, 1) } } @@ -524,7 +526,12 @@ const onCustomFlowMapEndNameSort = item => { customSortAxis.value = 'flowMapEndName' customSort() } - +const onCustomExtColorSort = item => { + recordSnapshotInfo('render') + state.customSortField = view.value.extColor[item.index] + customSortAxis.value = 'extColor' + customSort() +} const onMove = e => { recordSnapshotInfo('calcData') state.moveId = e.draggedContext.element.id @@ -798,6 +805,10 @@ const addFlowMapEndName = e => { addAxis(e, 'flowMapEndName') } +const addExtColor = e => { + addAxis(e, 'extColor') +} + const onAxisChange = (e, axis: AxisType) => { if (e.removed) { const { element } = e.removed @@ -1110,6 +1121,11 @@ const onChangeFlowMapPointForm = val => { renderChart(view.value) } +const onChangExtColorForm = val => { + view.value.extColor = val + renderChart(view.value) +} + const showRename = val => { recordSnapshotInfo('render') state.itemForm = JSON.parse(JSON.stringify(val)) @@ -1135,6 +1151,7 @@ const removeItems = ( | 'drillFields' | 'flowMapStartName' | 'flowMapEndName' + | 'extColor' ) => { recordSnapshotInfo('calcData') let axis = [] @@ -1170,6 +1187,9 @@ const removeItems = ( case 'flowMapEndName': axis = view.value.flowMapEndName?.splice(0) break + case 'extColor': + axis = view.value.extColor?.splice(0) + break } axis?.length && emitter.emit('removeAxis', { axisType: _type, axis, editType: 'remove' }) } @@ -1223,6 +1243,11 @@ const saveRename = ref => { axis = view.value.flowMapEndName[index] view.value.flowMapEndName[index].chartShowName = chartShowName break + case 'extColor': + axisType = 'extColor' + axis = view.value.extColor[index] + view.value.extColor[index].chartShowName = chartShowName + break default: break } @@ -2131,6 +2156,64 @@ const deleteChartFieldItem = id => { + +
+ + {{ chartViewInstance.axisConfig.extColor.name }} + + + + + + +
+
+ + + + +
+
+