diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml index a345bfc4b0..8285cd02a4 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml @@ -6,6 +6,10 @@ extends="io.dataease.base.mapper.PanelGroupMapper.BaseResultMap"> + + + + SELECT - id, - `name`, - pid, - `level`, - node_type, - create_by, - create_time, - panel_type, - `name` AS label - from panel_group - where panel_group.panel_type=#{panelType} + panel_group.id, + panel_group.`name`, + panel_group.pid, + panel_group.`level`, + panel_group.node_type, + panel_group.create_by, + panel_group.create_time, + panel_group.panel_type, + panel_group.`name` AS label, + panel_group.`source`, + panel_group.`panel_type`, + sourcePanelGroup.`name` as source_panel_name, + get_auths(panel_group.id,'panel',#{userId}) as `privileges` + from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'panel') cids) t,panel_group + LEFT JOIN (select id,`name` from panel_group) sourcePanelGroup + on sourcePanelGroup.id=panel_group.source + + FIND_IN_SET(panel_group.id,cids) + + and panel_group.name like CONCAT('%', #{name},'%') + + + and panel_group.node_type = #{nodeType} + + + and panel_group.panel_type = #{panelType} + + + and panel_group.id = #{id} + + + and panel_group.pid = #{pid} + + + and panel_group.level = #{level} + + + + order by ${sort} + + + order by panel_group.create_time desc + - delete from panel_group where FIND_IN_SET(panel_group.id,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) + delete from panel_group where FIND_IN_SET(panel_group.id,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) or FIND_IN_SET(panel_group.source,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) + diff --git a/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java b/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java index ea0037b069..de6e95210f 100644 --- a/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java +++ b/backend/src/main/java/io/dataease/dto/panel/PanelGroupDTO.java @@ -21,6 +21,14 @@ public class PanelGroupDTO extends PanelGroupWithBLOBs implements ITreeBase children = new ArrayList<>(); diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index f7767b3f5c..845ec708b1 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -69,7 +69,7 @@ public class PanelGroupService { public List defaultTree(PanelGroupRequest panelGroupRequest) { String userId = String.valueOf(AuthUtils.getUser().getUserId()); panelGroupRequest.setUserId(userId); - List panelGroupDTOList = extPanelGroupMapper.panelGroupList(panelGroupRequest); + List panelGroupDTOList = extPanelGroupMapper.panelGroupListDefault(panelGroupRequest); List result = TreeUtils.mergeTree(panelGroupDTOList,"default_panel"); return result; } @@ -132,6 +132,7 @@ public class PanelGroupService { public void deleteCircle(String id) { Assert.notNull(id, "id cannot be null"); + // 同时会删除对应默认仪表盘 extPanelGroupMapper.deleteCircle(id); storeService.removeByPanelId(id); shareService.delete(id, null); diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 62d53745bb..953538d307 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -989,7 +989,9 @@ export default { border_style_dashed: 'Dashed', select_component: 'Check Component', other_module: 'Other', - content: 'Content' + content: 'Content', + default_panel_name: 'Default Dashboard Name', + source_panel_name: 'Source Dashboard Name' }, plugin: { local_install: 'Local installation', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index f037155335..c7cce7822f 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -989,7 +989,9 @@ export default { border_style_dashed: '虚线', select_component: '请选择组件', other_module: '其他', - content: '内容' + content: '内容', + default_panel_name: '默认仪表板名称', + source_panel_name: '原仪表板名称' }, plugin: { local_install: '本地安裝', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 5e94313781..c9c23722be 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -989,7 +989,9 @@ export default { border_style_dashed: '虚线', select_component: '请选择组件', other_module: '其他', - content: '内容' + content: '内容', + default_panel_name: '默认仪表板名称', + source_panel_name: '原仪表板名称' }, plugin: { local_install: '本地安装', diff --git a/frontend/src/views/panel/list/PanelList.vue b/frontend/src/views/panel/list/PanelList.vue index 4eb8ae887d..cc2a2ac2f4 100644 --- a/frontend/src/views/panel/list/PanelList.vue +++ b/frontend/src/views/panel/list/PanelList.vue @@ -115,7 +115,7 @@ {{ $t('panel.create_public_links') }} - + {{ $t('panel.to_default_panel') }} @@ -575,7 +575,9 @@ export default { this.activeTree = data.panelType if (data.nodeType === 'panel') { // 加载视图数据 - findOne(data.id).then(response => { + // 如果是默认仪表盘 需要查询原仪表板的详细数据 + const queryPanelId = data.panelType === 'system' ? data.source : data.id + findOne(queryPanelId).then(response => { const componentDatas = JSON.parse(response.data.panelData) componentDatas.forEach(item => { item.filters = (item.filters || []) diff --git a/frontend/src/views/panel/list/PanelViewShow.vue b/frontend/src/views/panel/list/PanelViewShow.vue index 86dd1a4d30..88fb4c3d02 100644 --- a/frontend/src/views/panel/list/PanelViewShow.vue +++ b/frontend/src/views/panel/list/PanelViewShow.vue @@ -6,6 +6,9 @@
{{ panelInfo.name || '测试仪表板' }} +   + ({{ $t('panel.default_panel_name') }}:{{ panelInfo.defaultPanelName }}) + ({{ $t('panel.source_panel_name') }}:{{ panelInfo.sourcePanelName }})