refactor(仪表板): 做联动配置时,同一数据集的视图首次配置默认全部选中
This commit is contained in:
parent
5d28902928
commit
3f902ce5ac
@ -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;
|
||||
}
|
||||
|
||||
@ -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">
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
@ -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'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user