From 9d553ab2c13c47b40cf00488cc2581e5525ac4ab Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Sat, 9 Dec 2023 19:09:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:2.5.0=201.=20=E4=BF=AE=E5=A4=8D=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=80=9A=E7=9F=A5=E7=B1=BB=E5=9E=8B=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=97=B6=E6=B2=A1=E6=9C=89=E6=B8=85=E9=99=A4=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=80=BC=202.=20=E4=BF=AE=E5=A4=8Dretry=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=9C=BA=E6=99=AF=E5=80=BC=E9=94=99=E8=AF=AF=203.=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=92=89=E9=92=89=E5=92=8C=E9=A3=9E=E4=B9=A6?= =?UTF-8?q?at=20all=204.=20=E4=BC=98=E5=8C=96=E9=82=AE=E7=AE=B1=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E4=B8=8D=E6=8D=A2=E8=A1=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/alarm/DingDingAttribute.java | 1 - .../common/core/alarm/LarkAttribute.java | 1 - .../core/alarm/strategy/DingdingAlarm.java | 8 +-- .../core/alarm/strategy/EmailAlarm.java | 4 +- .../common/core/alarm/strategy/LarkAlarm.java | 45 +++++++------ .../common/core/constant/SystemConstants.java | 5 ++ .../retry/common/core/util/DingDingUtils.java | 22 ++++--- .../server/common/AlarmInfoConverter.java | 10 +++ .../server/common/alarm/AbstractAlarm.java | 6 ++ .../retry/server/common/dto/AlarmInfo.java | 5 ++ .../listener/JobTaskFailAlarmListener.java | 22 ++----- .../RetryTaskFailDeadLetterAlarmListener.java | 4 +- ...tryTaskFailMoreThresholdAlarmListener.java | 4 +- frontend/src/views/job/JobNotifyList.vue | 2 +- frontend/src/views/job/form/JobNotifyForm.vue | 59 ++++++++++------- frontend/src/views/task/form/NotifyForm.vue | 64 +++++++++++-------- 16 files changed, 153 insertions(+), 109 deletions(-) diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/DingDingAttribute.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/DingDingAttribute.java index c8c3c4db..6e7740b6 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/DingDingAttribute.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/DingDingAttribute.java @@ -15,5 +15,4 @@ public class DingDingAttribute { private List ats; - private boolean isAtAll; } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/LarkAttribute.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/LarkAttribute.java index 0c19beb6..ae539fa8 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/LarkAttribute.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/LarkAttribute.java @@ -18,5 +18,4 @@ public class LarkAttribute { private List ats; - private boolean isAtAll; } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/DingdingAlarm.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/DingdingAlarm.java index 19aa62f8..aee0e161 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/DingdingAlarm.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/DingdingAlarm.java @@ -23,18 +23,14 @@ public class DingdingAlarm extends AbstractAlarm { @Override public boolean asyncSendMessage(AlarmContext context) { - - DingDingAttribute dingDingAttribute = JsonUtil.parseObject(context.getNotifyAttribute(), DingDingAttribute.class); - threadPoolExecutor.execute(() -> - DingDingUtils.sendMessage(DingDingUtils.buildSendRequest(context.getTitle(), context.getText(),dingDingAttribute.getAts(),dingDingAttribute.isAtAll()), dingDingAttribute.getWebhookUrl())); - + threadPoolExecutor.execute(() -> syncSendMessage(context)); return true; } @Override public boolean syncSendMessage(AlarmContext context) { DingDingAttribute dingDingAttribute = JsonUtil.parseObject(context.getNotifyAttribute(), DingDingAttribute.class); - return DingDingUtils.sendMessage(DingDingUtils.buildSendRequest(context.getTitle(), context.getText(),dingDingAttribute.getAts(),dingDingAttribute.isAtAll()), dingDingAttribute.getWebhookUrl()); + return DingDingUtils.sendMessage(DingDingUtils.buildSendRequest(context.getTitle(), context.getText(),dingDingAttribute.getAts()), dingDingAttribute.getWebhookUrl()); } @Override diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/EmailAlarm.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/EmailAlarm.java index f1035268..5ae3a6ec 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/EmailAlarm.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/EmailAlarm.java @@ -33,7 +33,9 @@ public class EmailAlarm extends AbstractAlarm { String notifyAttribute = alarmContext.getNotifyAttribute(); EmailAttribute emailAttribute = JsonUtil.parseObject(notifyAttribute, EmailAttribute.class); emailAttribute.setAuth(true); - MailUtil.send(emailAttribute, emailAttribute.getTos(), alarmContext.getTitle(), alarmContext.getText(), true); + String text = alarmContext.getText(); + text = text.replaceAll("\n", "
"); + MailUtil.send(emailAttribute, emailAttribute.getTos(), alarmContext.getTitle(), text, true); return true; } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/LarkAlarm.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/LarkAlarm.java index deb7fb2f..d2c094a5 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/LarkAlarm.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/alarm/strategy/LarkAlarm.java @@ -1,10 +1,13 @@ package com.aizuda.easy.retry.common.core.alarm.strategy; + +import cn.hutool.core.util.StrUtil; import cn.hutool.http.ContentType; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.aizuda.easy.retry.common.core.alarm.AlarmContext; import com.aizuda.easy.retry.common.core.alarm.LarkAttribute; +import com.aizuda.easy.retry.common.core.constant.SystemConstants; import com.aizuda.easy.retry.common.core.enums.AlarmTypeEnum; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.common.core.util.JsonUtil; @@ -14,6 +17,7 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; + import java.text.MessageFormat; import java.util.Collections; import java.util.HashMap; @@ -32,7 +36,6 @@ import java.util.Map; public class LarkAlarm extends AbstractAlarm { - public static final String atLabel = ""; @Override @@ -51,18 +54,17 @@ public class LarkAlarm extends AbstractAlarm { @Override public boolean syncSendMessage(AlarmContext context) { - - LarkAttribute larkAttribute = JsonUtil.parseObject(context.getNotifyAttribute(), LarkAttribute.class); - - Map map = new HashMap<>(); - map.put("header", buildHeader(context.getTitle())); - map.put("elements", buildElements(context.getText(),larkAttribute.getAts(),larkAttribute.isAtAll())); - - LarkMessage builder = LarkMessage.builder() - .msgType("interactive") - .card(map).build(); - try { + LarkAttribute larkAttribute = JsonUtil.parseObject(context.getNotifyAttribute(), LarkAttribute.class); + + Map map = new HashMap<>(); + map.put("header", buildHeader(context.getTitle())); + map.put("elements", buildElements(context.getText(), larkAttribute.getAts())); + + LarkMessage builder = LarkMessage.builder() + .msgType("interactive") + .card(map).build(); + HttpRequest post = HttpUtil.createPost(larkAttribute.getWebhookUrl()); HttpRequest request = post.body(JsonUtil.toJsonString(builder), ContentType.JSON.toString()); HttpResponse execute = request.execute(); @@ -75,10 +77,10 @@ public class LarkAlarm extends AbstractAlarm { return true; } - private List buildElements(String text,List ats,boolean isAtAll) { + private List buildElements(String text, List ats) { Map map = new HashMap<>(); map.put("tag", "markdown"); - map.put("content", getAtText(text,ats,isAtAll)); + map.put("content", getAtText(text, ats)); return Collections.singletonList(map); } @@ -114,14 +116,17 @@ public class LarkAlarm extends AbstractAlarm { private Map card; } - public String getAtText(String text, List ats, boolean isAtAll) { + public String getAtText(String text, List ats) { + if (CollectionUtils.isEmpty(ats)) { + return ""; + } + StringBuilder sb = new StringBuilder(text); - if (isAtAll) { - sb.append(MessageFormat.format(atLabel, "all")); + if (ats.stream().map(String::toLowerCase).anyMatch(SystemConstants.AT_ALL::equals)) { + sb.append(MessageFormat.format(atLabel, SystemConstants.AT_ALL)); } else { - if (!CollectionUtils.isEmpty(ats)) { - ats.forEach(at -> sb.append(MessageFormat.format(atLabel, at))); - } + ats.stream().filter(StrUtil::isNotBlank) + .forEach(at -> sb.append(MessageFormat.format(atLabel, at))); } return sb.toString(); } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java index dffeee19..26a7467f 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java @@ -91,4 +91,9 @@ public interface SystemConstants { * 默认名称空间 */ String DEFAULT_NAMESPACE = "764d604ec6fc45f68cd92514c40e9e1a"; + + /** + * AT 所有人 + */ + String AT_ALL = "all"; } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/util/DingDingUtils.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/util/DingDingUtils.java index be7e22e2..99bd64f6 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/util/DingDingUtils.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/util/DingDingUtils.java @@ -1,5 +1,7 @@ package com.aizuda.easy.retry.common.core.util; +import cn.hutool.core.util.StrUtil; +import com.aizuda.easy.retry.common.core.constant.SystemConstants; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; @@ -10,7 +12,9 @@ import org.springframework.util.StringUtils; import java.text.MessageFormat; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.stream.Collectors; /** * @author: www.byteblogs.com @@ -44,18 +48,20 @@ public class DingDingUtils { * @param text * @return */ - public static OapiRobotSendRequest buildSendRequest(String title, String text, List ats,boolean isAtAll) { + public static OapiRobotSendRequest buildSendRequest(String title, String text, List ats) { OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("markdown"); OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); markdown.setTitle(title); - markdown.setText(subTextLength(getAtText(ats,text))); request.setMarkdown(markdown); + markdown.setText(subTextLength(getAtText(ats, text))); OapiRobotSendRequest.At at = new OapiRobotSendRequest.At(); at.setAtMobiles(ats); - at.setIsAtAll(isAtAll); request.setAt(at); + if (!CollectionUtils.isEmpty(ats)) { + at.setIsAtAll(ats.stream().map(String::toLowerCase).anyMatch(SystemConstants.AT_ALL::equals)); + } return request; } @@ -64,18 +70,18 @@ public class DingDingUtils { return text; } StringBuilder sb = new StringBuilder(text); - ats.forEach(at -> sb.append(MessageFormat.format(atLabel, at))); + ats.stream().filter(StrUtil::isNotBlank) + .forEach(at -> sb.append(MessageFormat.format(atLabel, at))); return sb.toString(); } /** - * * @param request */ - public static boolean sendMessage(OapiRobotSendRequest request, String url){ + public static boolean sendMessage(OapiRobotSendRequest request, String url) { try { - if (StringUtils.isEmpty(url)) { + if (StrUtil.isNotBlank(url)) { return false; } DingTalkClient client = new DefaultDingTalkClient(url); @@ -83,7 +89,7 @@ public class DingDingUtils { return true; } catch (Exception e) { - LogUtils.error(log,"dingDingProcessNotify", e); + LogUtils.error(log, "dingDingProcessNotify", e); } return false; diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/AlarmInfoConverter.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/AlarmInfoConverter.java index f228d8bf..f32a987b 100644 --- a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/AlarmInfoConverter.java +++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/AlarmInfoConverter.java @@ -10,6 +10,8 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.NotifyConfig; import com.aizuda.easy.retry.template.datasource.persistence.po.RetryDeadLetter; import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import java.util.List; @@ -24,8 +26,16 @@ public interface AlarmInfoConverter { AlarmInfoConverter INSTANCE = Mappers.getMapper(AlarmInfoConverter.class); + @Mappings( + @Mapping(source = "retryCount", target = "count") + ) List retryTaskToAlarmInfo(List retryTasks); + @Mappings( + @Mapping(source = "retryCount", target = "count") + ) + RetryAlarmInfo retryTaskToAlarmInfo(RetryTask retryTask); + List deadLetterToAlarmInfo(List retryDeadLetters); List retryToNotifyConfigInfos(List notifyConfigs); diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/alarm/AbstractAlarm.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/alarm/AbstractAlarm.java index 5d129f3b..b71c6022 100644 --- a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/alarm/AbstractAlarm.java +++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/alarm/AbstractAlarm.java @@ -118,6 +118,12 @@ public abstract class AbstractAlarm alarmDTO.getCount()) { + continue; + } + } + AlarmContext context = buildAlarmContext(alarmDTO, notifyConfig); Alarm alarmType = easyRetryAlarmFactory.getAlarmType( notifyConfig.getNotifyType()); diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/AlarmInfo.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/AlarmInfo.java index 6bef2cc3..90e91c3b 100644 --- a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/AlarmInfo.java +++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/dto/AlarmInfo.java @@ -1,13 +1,18 @@ package com.aizuda.easy.retry.server.common.dto; +import lombok.Data; + /** * @author xiaowoniu * @date 2023-12-03 10:15:37 * @since 2.5.0 */ +@Data public class AlarmInfo { private String namespaceId; private String groupName; + + private Integer count; } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/listener/JobTaskFailAlarmListener.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/listener/JobTaskFailAlarmListener.java index 3c3d0171..6fa22cf3 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/listener/JobTaskFailAlarmListener.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/listener/JobTaskFailAlarmListener.java @@ -1,38 +1,25 @@ package com.aizuda.easy.retry.server.job.task.support.listener; -import com.aizuda.easy.retry.common.core.alarm.Alarm; import com.aizuda.easy.retry.common.core.alarm.AlarmContext; import com.aizuda.easy.retry.common.core.alarm.EasyRetryAlarmFactory; import com.aizuda.easy.retry.common.core.enums.JobNotifySceneEnum; -import com.aizuda.easy.retry.common.core.enums.StatusEnum; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.common.core.util.EnvironmentUtils; -import com.aizuda.easy.retry.common.core.util.HostUtils; import com.aizuda.easy.retry.server.common.AlarmInfoConverter; -import com.aizuda.easy.retry.server.common.Lifecycle; import com.aizuda.easy.retry.server.common.alarm.AbstractJobAlarm; import com.aizuda.easy.retry.server.common.dto.JobAlarmInfo; import com.aizuda.easy.retry.server.common.dto.NotifyConfigInfo; -import com.aizuda.easy.retry.server.common.triple.ImmutableTriple; -import com.aizuda.easy.retry.server.common.triple.Triple; import com.aizuda.easy.retry.server.common.util.DateUtils; import com.aizuda.easy.retry.server.job.task.support.event.JobTaskFailAlarmEvent; import com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchResponseDO; -import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobNotifyConfigMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper; -import com.aizuda.easy.retry.template.datasource.persistence.po.*; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import java.time.LocalDateTime; -import java.util.*; +import java.util.List; import java.util.concurrent.LinkedBlockingQueue; -import java.util.stream.Collectors; /** @@ -49,16 +36,14 @@ public class JobTaskFailAlarmListener extends AbstractJobAlarm queue = new LinkedBlockingQueue<>(1000); private static String jobTaskFailTextMessagesFormatter = - "{}环境 Job任务执行失败 \n" + + "{}环境 Job任务执行失败 \n" + + "> 空间ID:{} \n" + "> 组名称:{} \n" + "> 任务名称:{} \n" + "> 执行器名称:{} \n" + @@ -83,6 +68,7 @@ public class JobTaskFailAlarmListener extends AbstractJobAlarm{}环境 重试任务失败进入死信队列 \n" + + "> 空间ID:{} \n" + "> 组名称:{} \n" + "> 执行器名称:{} \n" + "> 场景名称:{} \n" + @@ -85,6 +86,7 @@ public class RetryTaskFailDeadLetterAlarmListener extends AbstractRetryAlarm queue = new LinkedBlockingQueue<>(1000); private static String retryTaskFailMoreThresholdMessagesFormatter = "{}环境 重试任务失败数量超过阈值 \n" + + "> 空间ID:{} \n" + "> 组名称:{} \n" + "> 执行器名称:{} \n" + "> 场景名称:{} \n" + @@ -82,6 +83,7 @@ public class RetryTaskFailMoreThresholdAlarmListener extends // 预警 return AlarmContext.build().text(retryTaskFailMoreThresholdMessagesFormatter, EnvironmentUtils.getActiveProfile(), + retryAlarmInfo.getNamespaceId(), retryAlarmInfo.getGroupName(), retryAlarmInfo.getExecutorName(), retryAlarmInfo.getSceneName(), @@ -100,6 +102,6 @@ public class RetryTaskFailMoreThresholdAlarmListener extends @Override protected int getNotifyScene() { - return NotifySceneEnum.MAX_RETRY_ERROR.getNotifyScene(); + return NotifySceneEnum.RETRY_TASK_REACH_THRESHOLD.getNotifyScene(); } } diff --git a/frontend/src/views/job/JobNotifyList.vue b/frontend/src/views/job/JobNotifyList.vue index 39aa60a9..616541ef 100644 --- a/frontend/src/views/job/JobNotifyList.vue +++ b/frontend/src/views/job/JobNotifyList.vue @@ -102,7 +102,7 @@ import { getAllGroupNameList } from '@/api/manage' import { STable } from '@/components' import { getJobList, jobNameList, jobNotifyConfigPageList } from '@/api/jobApi' -const enums = require('@/utils/retryEnum') +const enums = require('@/utils/jobEnum') export default { name: 'JobNotifyList', diff --git a/frontend/src/views/job/form/JobNotifyForm.vue b/frontend/src/views/job/form/JobNotifyForm.vue index 8c4fc771..a6d41ef7 100644 --- a/frontend/src/views/job/form/JobNotifyForm.vue +++ b/frontend/src/views/job/form/JobNotifyForm.vue @@ -153,7 +153,7 @@ - + 被@人手机号或钉钉号  + v-if="this.tempNotifyTypeValue === '4'"> 被@负责人用户id  - + {{ item }} - + {{ item.sceneName }} @@ -103,21 +103,21 @@ - + {{ item.name }} - - + + - + 被@人手机号或钉钉号  + v-if="this.tempNotifyTypeValue === '4'"> 被@人用户id