From bd5409b8d497fac9e838b795c14d96808992b66a Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 16 May 2022 13:34:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=AA=E8=A1=A8=E6=9D=BF=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=8F=91=E5=B8=83=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../panel/PanelGroupController.java | 8 ++ .../panel/PanelGroupBaseInfoRequest.java | 12 +++ .../request/panel/PanelGroupRequest.java | 2 + .../io/dataease/ext/ExtPanelGroupMapper.xml | 8 ++ .../service/panel/PanelGroupService.java | 12 +++ .../main/resources/db/migration/V35__1.11.sql | 2 + backend/src/main/resources/logback.xml | 4 + frontend/src/api/panel/panel.js | 12 ++- frontend/src/lang/en.js | 2 + frontend/src/lang/tw.js | 2 + frontend/src/lang/zh.js | 2 + frontend/src/styles/deicon/demo_index.html | 75 +++++++++++++++++- frontend/src/styles/deicon/iconfont.css | 18 ++++- frontend/src/styles/deicon/iconfont.js | 2 +- frontend/src/styles/deicon/iconfont.json | 21 +++++ frontend/src/styles/deicon/iconfont.ttf | Bin 24472 -> 25332 bytes frontend/src/styles/deicon/iconfont.woff | Bin 15216 -> 15644 bytes frontend/src/styles/deicon/iconfont.woff2 | Bin 12900 -> 13284 bytes .../src/views/panel/list/PanelViewShow.vue | 18 ++++- mobile/src/api/panel.js | 6 +- 20 files changed, 194 insertions(+), 12 deletions(-) create mode 100644 backend/src/main/java/io/dataease/controller/request/panel/PanelGroupBaseInfoRequest.java create mode 100644 backend/src/main/resources/db/migration/V35__1.11.sql diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java index fd7cae7fdd..3bd3a50be0 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java @@ -4,6 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.auth.annotation.DePermission; import io.dataease.auth.annotation.DePermissionProxy; import io.dataease.auth.annotation.DePermissions; +import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; import io.dataease.plugins.common.base.domain.PanelGroup; import io.dataease.plugins.common.base.domain.PanelGroupWithBLOBs; import io.dataease.commons.constants.DePermissionType; @@ -110,5 +111,12 @@ public class PanelGroupController { panelGroupService.exportPanelViewDetails(request,response); } + @ApiOperation("更新仪表板状态") + @PostMapping("/updatePanelStatus/{panelId}") + @I18n + @DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANNEL_LEVEL_MANAGE) + public void updatePanelStatus(@PathVariable String panelId,@RequestBody PanelGroupBaseInfoRequest request){ + panelGroupService.updatePanelStatus(panelId,request); + } } diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupBaseInfoRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupBaseInfoRequest.java new file mode 100644 index 0000000000..a342fafda9 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupBaseInfoRequest.java @@ -0,0 +1,12 @@ +package io.dataease.controller.request.panel; + +import io.dataease.plugins.common.base.domain.PanelGroup; + +/** + * Author: wangjiahao + * Date: 2022/5/16 + * Description: + */ +public class PanelGroupBaseInfoRequest extends PanelGroup { + +} diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java index 2e5e9d0955..433dfe8706 100644 --- a/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java @@ -15,6 +15,8 @@ public class PanelGroupRequest extends PanelGroupDTO { private String sort; @ApiModelProperty("用户ID") private String userId; + @ApiModelProperty("是否是超级管理员") + private Boolean isAdmin; @ApiModelProperty("操作类型") private String optType; @ApiModelProperty("新建来源") diff --git a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml index a49baabb54..ad1952a632 100644 --- a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml +++ b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml @@ -33,6 +33,7 @@ panel_group.`name` AS label, panel_group.`source`, panel_group.`panel_type`, + panel_group.`status`, sourcePanelGroup.`mobile_layout`, sourcePanelGroup.`name` as source_panel_name, authInfo.privileges as `privileges` @@ -90,6 +91,9 @@ and panel_group.level = #{level} + + and (panel_group.node_type='folder' or (panel_group.node_type='panel' and panel_group.`status`='publish') or (panel_group.node_type='panel' and panel_group.`status`='unpublished' and authInfo.privileges like '%manage%') ) + ORDER BY CONVERT(panel_group.name using gbk) @@ -107,6 +111,7 @@ panel_group.`name` AS label, panel_group.`node_type`, panel_group.`mobile_layout`, + panel_group.`status`, (case when ISNULL(defaultPanelGroup.id) then false else true end) is_default, defaultPanelGroup.id as default_panel_id, defaultPanelGroup.`name` as default_panel_name, @@ -165,6 +170,9 @@ and panel_group.level = #{level} + + and (panel_group.node_type='folder' or (panel_group.node_type='panel' and panel_group.`status`='publish') or (panel_group.node_type='panel' and panel_group.`status`='unpublished' and authInfo.privileges like '%manage%') ) + ORDER BY panel_group.node_type desc, CONVERT(panel_group.name using gbk) 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 9ddc520f9c..27479de489 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -8,6 +8,7 @@ import io.dataease.commons.utils.LogUtil; import io.dataease.commons.utils.TreeUtils; import io.dataease.controller.request.authModel.VAuthModelRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; +import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; import io.dataease.controller.request.panel.PanelGroupRequest; import io.dataease.controller.request.panel.PanelViewDetailsRequest; import io.dataease.dto.PanelGroupExtendDataDTO; @@ -101,6 +102,7 @@ public class PanelGroupService { public List tree(PanelGroupRequest panelGroupRequest) { String userId = String.valueOf(AuthUtils.getUser().getUserId()); panelGroupRequest.setUserId(userId); + panelGroupRequest.setIsAdmin(AuthUtils.getUser().getIsAdmin()); List panelGroupDTOList = extPanelGroupMapper.panelGroupList(panelGroupRequest); return TreeUtils.mergeTree(panelGroupDTOList, "panel_list"); } @@ -108,6 +110,7 @@ public class PanelGroupService { public List defaultTree(PanelGroupRequest panelGroupRequest) { String userId = String.valueOf(AuthUtils.getUser().getUserId()); panelGroupRequest.setUserId(userId); + panelGroupRequest.setIsAdmin(AuthUtils.getUser().getIsAdmin()); List panelGroupDTOList = extPanelGroupMapper.panelGroupListDefault(panelGroupRequest); return TreeUtils.mergeTree(panelGroupDTOList, "default_panel"); } @@ -527,4 +530,13 @@ public class PanelGroupService { DataEaseException.throwException(e); } } + + public void updatePanelStatus(String panelId,PanelGroupBaseInfoRequest request){ + Assert.notNull(request.getStatus(),"status can not be null"); + Assert.notNull(panelId,"panelId can not be null"); + PanelGroupWithBLOBs panelGroup = new PanelGroupWithBLOBs(); + panelGroup.setId(panelId); + panelGroup.setStatus(request.getStatus()); + panelGroupMapper.updateByPrimaryKeySelective(panelGroup); + } } diff --git a/backend/src/main/resources/db/migration/V35__1.11.sql b/backend/src/main/resources/db/migration/V35__1.11.sql new file mode 100644 index 0000000000..8be983b423 --- /dev/null +++ b/backend/src/main/resources/db/migration/V35__1.11.sql @@ -0,0 +1,2 @@ +ALTER TABLE `panel_group` +ADD COLUMN `status` varchar(255) NULL DEFAULT 'publish' COMMENT '1.publish--发布 2.unpublished--未发布' AFTER `mobile_layout`; diff --git a/backend/src/main/resources/logback.xml b/backend/src/main/resources/logback.xml index 9ee61f5052..c581df7eeb 100644 --- a/backend/src/main/resources/logback.xml +++ b/backend/src/main/resources/logback.xml @@ -157,6 +157,10 @@ + + + + diff --git a/frontend/src/api/panel/panel.js b/frontend/src/api/panel/panel.js index ef34e7fc64..34493b7803 100644 --- a/frontend/src/api/panel/panel.js +++ b/frontend/src/api/panel/panel.js @@ -143,7 +143,8 @@ export function initPanelData(panelId, callback) { id: response.data.id, name: response.data.name, privileges: response.data.privileges, - sourcePanelName: response.data.sourcePanelName + sourcePanelName: response.data.sourcePanelName, + status: response.data.status }) // 刷新联动信息 getPanelAllLinkageInfo(panelId).then(rsp => { @@ -199,3 +200,12 @@ export function exportDetails(data) { }) } +export function updatePanelStatus(panelId, param) { + return request({ + url: '/panel/group/updatePanelStatus/' + panelId, + method: 'post', + loading: false, + data: param + }) +} + diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 76691da170..ee1cec1542 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -131,6 +131,8 @@ export default { default_login: 'Normal' }, commons: { + publish: 'publish', + unpublished: 'unpublished', default_pwd: 'Default Pwd', stop: 'Stop', first_login_tips: 'Please change the initial password', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index acba9f3ab6..09da748a8a 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -131,6 +131,8 @@ export default { default_login: '普通登錄' }, commons: { + publish: '发布', + unpublished: '取消发布', default_pwd: '初始密碼', stop: '停止', first_login_tips: '您使用的是初始密碼,記得修改密碼哦', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 3dae91a45a..0ba1fa5899 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -131,6 +131,8 @@ export default { default_login: '普通登录' }, commons: { + publish: '发布', + unpublished: '取消发布', default_pwd: '初始密码', stop: '停止', first_login_tips: '您使用的是初始密码,记得修改密码哦', diff --git a/frontend/src/styles/deicon/demo_index.html b/frontend/src/styles/deicon/demo_index.html index a6b4659c4c..7b67011ac0 100644 --- a/frontend/src/styles/deicon/demo_index.html +++ b/frontend/src/styles/deicon/demo_index.html @@ -54,6 +54,24 @@