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("目标视图名称")
//目标视图名称
private String targetViewName;
@ApiModelProperty("启用联动")
//关联状态
private boolean linkageActive = false;
@ApiModelProperty("联动字段")
private List<PanelViewLinkageField> linkageFields = new ArrayList<>();
@ -60,17 +57,8 @@ public class PanelViewLinkageDTO extends PanelViewLinkage {
}
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() {
return linkageFields;
}

View File

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

View File

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

View File

@ -35,4 +35,9 @@ RETURN concat(chartName,'-',chartNameCount);
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'
])
},
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() {
if (navigator.platform.indexOf('Mac') === -1) {
this.systemOS = 'Other'