refactor(仪表板): 做联动配置时,同一数据集的视图首次配置默认全部选中

This commit is contained in:
Wangjiahao 2023-06-20 21:51:28 +08:00
parent 5d28902928
commit 3f902ce5ac
5 changed files with 38 additions and 27 deletions

View File

@ -18,9 +18,6 @@ public class PanelViewLinkageDTO extends PanelViewLinkage {
@ApiModelProperty("目标视图名称") @ApiModelProperty("目标视图名称")
//目标视图名称 //目标视图名称
private String targetViewName; private String targetViewName;
@ApiModelProperty("启用联动")
//关联状态
private boolean linkageActive = false;
@ApiModelProperty("联动字段") @ApiModelProperty("联动字段")
private List<PanelViewLinkageField> linkageFields = new ArrayList<>(); private List<PanelViewLinkageField> linkageFields = new ArrayList<>();
@ -60,17 +57,8 @@ public class PanelViewLinkageDTO extends PanelViewLinkage {
} }
public PanelViewLinkageDTO(boolean linkageActive) { public PanelViewLinkageDTO(boolean linkageActive) {
this.linkageActive = linkageActive; super.setLinkageActive(linkageActive);
} }
public boolean isLinkageActive() {
return linkageActive;
}
public void setLinkageActive(boolean linkageActive) {
this.linkageActive = linkageActive;
}
public List<PanelViewLinkageField> getLinkageFields() { public List<PanelViewLinkageField> getLinkageFields() {
return linkageFields; return linkageFields;
} }

View File

@ -14,6 +14,7 @@
<result column="target_view_id" jdbcType="VARCHAR" property="targetViewId"/> <result column="target_view_id" jdbcType="VARCHAR" property="targetViewId"/>
<result column="table_id" jdbcType="VARCHAR" property="tableId"/> <result column="table_id" jdbcType="VARCHAR" property="tableId"/>
<result column="targetViewName" jdbcType="VARCHAR" property="targetViewName"/> <result column="targetViewName" jdbcType="VARCHAR" property="targetViewName"/>
<result column="sourceViewId" jdbcType="VARCHAR" property="sourceViewId"/>
<result column="linkageActive" property="linkageActive"/> <result column="linkageActive" property="linkageActive"/>
<collection property="targetViewFields" ofType="io.dataease.plugins.common.base.domain.DatasetTableField" column="table_id" <collection property="targetViewFields" ofType="io.dataease.plugins.common.base.domain.DatasetTableField" column="table_id"
select="queryTableField"> select="queryTableField">
@ -37,7 +38,8 @@
chart_view.`name` as 'targetViewName', chart_view.`name` as 'targetViewName',
chart_view.id as 'target_view_id', chart_view.id as 'target_view_id',
chart_view.table_id, chart_view.table_id,
(case when panel_view_linkage.target_view_id is null then 0 else 1 end) as 'linkageActive', panel_view_linkage.source_view_id as 'sourceViewId',
(case when panel_view_linkage.target_view_id is null then 0 else panel_view_linkage.linkage_active end) as 'linkageActive',
panel_view_linkage_field.source_field, panel_view_linkage_field.source_field,
panel_view_linkage_field.target_field panel_view_linkage_field.target_field
FROM FROM
@ -109,6 +111,8 @@
LEFT JOIN panel_view_linkage_field ON panel_view_linkage.id = panel_view_linkage_field.linkage_id LEFT JOIN panel_view_linkage_field ON panel_view_linkage.id = panel_view_linkage_field.linkage_id
WHERE WHERE
panel_view_linkage.panel_id = #{panelId} panel_view_linkage.panel_id = #{panelId}
and panel_view_linkage.linkage_active=1
and panel_view_linkage_field.id is not null
</select> </select>
<insert id="copyViewLinkage"> <insert id="copyViewLinkage">

View File

@ -72,18 +72,17 @@ public class PanelViewLinkageService {
String targetViewId = entry.getKey(); String targetViewId = entry.getKey();
PanelViewLinkageDTO linkageDTO = entry.getValue(); PanelViewLinkageDTO linkageDTO = entry.getValue();
List<PanelViewLinkageField> linkageFields = linkageDTO.getLinkageFields(); List<PanelViewLinkageField> linkageFields = linkageDTO.getLinkageFields();
String linkageId = UUID.randomUUID().toString();
if (CollectionUtils.isNotEmpty(linkageFields) && linkageDTO.isLinkageActive()) { PanelViewLinkage linkage = new PanelViewLinkage();
String linkageId = UUID.randomUUID().toString(); linkage.setId(linkageId);
PanelViewLinkage linkage = new PanelViewLinkage(); linkage.setPanelId(panelId);
linkage.setId(linkageId); linkage.setSourceViewId(sourceViewId);
linkage.setPanelId(panelId); linkage.setTargetViewId(targetViewId);
linkage.setSourceViewId(sourceViewId); linkage.setUpdatePeople(AuthUtils.getUser().getUsername());
linkage.setTargetViewId(targetViewId); linkage.setUpdateTime(updateTime);
linkage.setUpdatePeople(AuthUtils.getUser().getUsername()); linkage.setLinkageActive(linkageDTO.getLinkageActive());
linkage.setUpdateTime(updateTime); panelViewLinkageMapper.insert(linkage);
panelViewLinkageMapper.insert(linkage); if (CollectionUtils.isNotEmpty(linkageFields) && linkageDTO.getLinkageActive()) {
linkageFields.forEach(linkageField -> { linkageFields.forEach(linkageField -> {
linkageField.setId(UUID.randomUUID().toString()); linkageField.setId(UUID.randomUUID().toString());
linkageField.setLinkageId(linkageId); linkageField.setLinkageId(linkageId);

View File

@ -35,4 +35,9 @@ RETURN concat(chartName,'-',chartNameCount);
END END
;; ;;
delimiter ; delimiter ;
ALTER TABLE `panel_view_linkage`
ADD COLUMN `linkage_active` tinyint(1) NULL DEFAULT 0 COMMENT '是否启用关联' AFTER `update_people`;
update panel_view_linkage set linkage_active=1;

View File

@ -371,6 +371,21 @@ export default {
'panelViewDetailsInfo' 'panelViewDetailsInfo'
]) ])
}, },
watch: {
linkageAreaShow: {
handler(val) {
console.log("linkageAreaShow、、、、")
// 1.val 2.!this.linkageInfo.linkageActive
// 3.!this.linkageInfo.sourceViewId
// 4. this.linkageInfo.tableId === this.targetLinkageInfo[this.curLinkageView.propValue.viewId].tableId)
//
if (val && !this.linkageInfo.linkageActive && !this.linkageInfo.sourceViewId && this.linkageInfo.tableId === this.targetLinkageInfo[this.curLinkageView.propValue.viewId].tableId) {
this.linkageInfo.linkageActive = true
}
},
immediate: true
}
},
mounted() { mounted() {
if (navigator.platform.indexOf('Mac') === -1) { if (navigator.platform.indexOf('Mac') === -1) {
this.systemOS = 'Other' this.systemOS = 'Other'