From a78fb8cf2bccb608a384f82afdd2f6a7f03b1bd8 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 27 Oct 2022 17:08:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=AE=9A=E6=97=B6=E6=8A=A5=E5=91=8A):=20?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=B7=B2=E8=A2=AB=E5=88=A0=E9=99=A4=E7=9A=84?= =?UTF-8?q?=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/sechedule/strategy/impl/EmailTaskHandler.java | 9 +++++++-- frontend/src/components/DeViewSelect/index.vue | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java b/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java index d293f49dca..965648465f 100644 --- a/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java +++ b/backend/src/main/java/io/dataease/job/sechedule/strategy/impl/EmailTaskHandler.java @@ -6,6 +6,7 @@ import io.dataease.auth.service.AuthUserService; import io.dataease.auth.service.impl.AuthUserServiceImpl; import io.dataease.auth.util.JWTUtils; import io.dataease.dto.PermissionProxy; +import io.dataease.dto.chart.ViewOption; import io.dataease.ext.ExtTaskMapper; import io.dataease.commons.utils.CommonBeanFactory; import io.dataease.commons.utils.CronUtils; @@ -29,6 +30,7 @@ import io.dataease.plugins.xpack.larksuite.dto.response.LarksuiteMsgResult; import io.dataease.plugins.xpack.larksuite.service.LarksuiteXpackService; import io.dataease.plugins.xpack.wecom.dto.entity.WecomMsgResult; import io.dataease.plugins.xpack.wecom.service.WecomXpackService; +import io.dataease.service.chart.ChartViewService; import io.dataease.service.chart.ViewExportExcel; import io.dataease.service.sys.SysUserService; import io.dataease.service.system.EmailService; @@ -199,10 +201,13 @@ public class EmailTaskHandler extends TaskHandler implements Job { List files = null; String viewIds = emailTemplateDTO.getViewIds(); - if (StringUtils.isNotBlank(viewIds)) { + ChartViewService chartViewService = SpringContextUtil.getBean(ChartViewService.class); + List viewOptions = chartViewService.viewOptions(panelId); + if (StringUtils.isNotBlank(viewIds) && CollectionUtils.isNotEmpty(viewOptions)) { + List viewOptionIdList = viewOptions.stream().map(ViewOption::getId).collect(Collectors.toList()); String viewDataRange = emailTemplateDTO.getViewDataRange(); Boolean justExportView = StringUtils.isBlank(viewDataRange) || StringUtils.equals("view", viewDataRange); - List viewIdList = Arrays.asList(viewIds.split(",")).stream().filter(StringUtils::isNotBlank).map(s -> (s.trim())).collect(Collectors.toList()); + List viewIdList = Arrays.asList(viewIds.split(",")).stream().map(s -> s.trim()).filter(viewId -> StringUtils.isNotBlank(viewId) && viewOptionIdList.contains(viewId)).collect(Collectors.toList()); PermissionProxy proxy = new PermissionProxy(); proxy.setUserId(user.getUserId()); files = viewExportExcel.export(panelId, viewIdList, proxy, justExportView); diff --git a/frontend/src/components/DeViewSelect/index.vue b/frontend/src/components/DeViewSelect/index.vue index 2995c8bec5..5a30cdcda3 100644 --- a/frontend/src/components/DeViewSelect/index.vue +++ b/frontend/src/components/DeViewSelect/index.vue @@ -157,6 +157,9 @@ export default { loadOptions() { this.panelId && viewOptions(this.panelId).then(res => { this.selectOptions = res.data + this.innerValues?.length && this.selectOptions?.length && this.innerValues.filter(viewId => !this.selectOptions.some(option => option.id === viewId)).forEach(item => { + this._selectRemoveTag(item) + }) this.init() }) }, @@ -185,7 +188,10 @@ export default { }, _selectClearFun() { this.$store.dispatch('task/delPanelViews', this.panelId) - const viewIds = JSON.parse(JSON.stringify(this.$store.getters.panelViews[this.panelId])) + let viewIds = [] + if (this.$store.getters.panelViews?.[this.panelId]) { + viewIds = JSON.parse(JSON.stringify(this.$store.getters.panelViews[this.panelId])) + } this.$emit('input', viewIds) },