|
|
@@ -9,6 +9,7 @@
|
|
|
<div class="alarm-config-content">
|
|
|
<div class="alarm-config-form">
|
|
|
<el-form
|
|
|
+ class="alarm-config-form-content"
|
|
|
ref="formRef"
|
|
|
:model="alarmConfigForm"
|
|
|
:rules="rules"
|
|
|
@@ -53,13 +54,12 @@
|
|
|
</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="推送阶段:" prop="pushOccasions">
|
|
|
- <div class="alarm-config-checkbox-group">
|
|
|
- <!-- v-model="alarmConfigForm.pushOccasions" -->
|
|
|
+ <el-form-item ref="pushOccasionsRef" label="推送阶段:" prop="pushOccasions">
|
|
|
+ <div>
|
|
|
<div v-for="phase in ALARMPHASE_LIST" :key="phase.value">
|
|
|
<div
|
|
|
v-if="
|
|
|
- !(phase.value === AlarmPhase.effects && isDevMode) &&
|
|
|
+ (phase.value !== AlarmPhase.effects || isDevMode) &&
|
|
|
alarmConfigForm.pushOccasions
|
|
|
"
|
|
|
>
|
|
|
@@ -70,6 +70,11 @@
|
|
|
@change="handlePhaseChange(phase.value, $event)"
|
|
|
>
|
|
|
</el-checkbox>
|
|
|
+ <div style="display: inline-block; margin-left: 5px; color: #8c8c8c">
|
|
|
+ <el-tooltip :content="ALARMPHASE_TIPS[phase.value - 1]" placement="top-start">
|
|
|
+ <el-icon size="16px"><InfoFilled /></el-icon>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
<div
|
|
|
v-if="
|
|
|
alarmConfigForm.pushPhaseVOList.some((it) => it.pushPhase === phase.value)
|
|
|
@@ -96,9 +101,9 @@
|
|
|
<el-form-item label="自定义内容:">
|
|
|
<el-input
|
|
|
v-model="
|
|
|
- alarmConfigForm.pushPhaseVOList.find((it) => it.pushPhase === phase.value)!
|
|
|
- .content
|
|
|
- "
|
|
|
+ alarmConfigForm.pushPhaseVOList.find((it) => it.pushPhase === phase.value)!
|
|
|
+ .content
|
|
|
+ "
|
|
|
maxlength="200"
|
|
|
resize="none"
|
|
|
style="width: 357px"
|
|
|
@@ -142,10 +147,13 @@
|
|
|
ElCheckboxGroup,
|
|
|
ElCheckbox,
|
|
|
ElInput,
|
|
|
+ ElTooltip,
|
|
|
+ ElIcon,
|
|
|
ElMessage,
|
|
|
FormInstance,
|
|
|
FormRules,
|
|
|
} from 'element-plus';
|
|
|
+ import { InfoFilled } from '@element-plus/icons-vue';
|
|
|
import { ref, watch, onMounted, computed } from 'vue';
|
|
|
import { useUserStore } from '@/store/modules/user';
|
|
|
import { useRouter, useRoute } from 'vue-router';
|
|
|
@@ -168,6 +176,7 @@
|
|
|
ALARMCHANNEL_LIST,
|
|
|
AlarmPhase,
|
|
|
ALARMPHASE_LIST,
|
|
|
+ ALARMPHASE_TIPS,
|
|
|
} from './types';
|
|
|
import { type userGroupVOList, type customUserList } from '../components/PushObject.vue';
|
|
|
import _ from 'lodash-es';
|
|
|
@@ -226,7 +235,7 @@
|
|
|
const formType = ref('');
|
|
|
const disableType = ref(false);
|
|
|
const disableAll = ref(false);
|
|
|
- const isDevMode = ref(false);
|
|
|
+ const isDevMode = ref();
|
|
|
|
|
|
onMounted(() => {
|
|
|
getDevMode().then((res) => {
|
|
|
@@ -294,13 +303,14 @@
|
|
|
);
|
|
|
|
|
|
const formRef = ref<FormInstance>();
|
|
|
+ const pushOccasionsRef = ref();
|
|
|
|
|
|
const rules = ref<FormRules<AlarmConfigForm>>({
|
|
|
- violationType: [{ required: true, message: '请选择违规类型', trigger: 'blur' }],
|
|
|
- violationLevel: [{ required: true, message: '请选择违规等级', trigger: 'blur' }],
|
|
|
+ violationType: [{ required: true, message: '请选择违规类型', trigger: 'change' }],
|
|
|
+ violationLevel: [{ required: true, message: '请选择违规等级', trigger: 'change' }],
|
|
|
pushChannel: [{ required: true, message: '请选择推送渠道', trigger: 'change' }],
|
|
|
pushOccasions: [{ required: true, message: '请选择推送阶段', trigger: 'change' }],
|
|
|
- pushPhaseVOList: [{ required: true, message: '请选择推送人员', trigger: 'change' }],
|
|
|
+ // pushPhaseVOList: [{ required: true, message: '请选择推送人员', trigger: 'change' }],
|
|
|
});
|
|
|
|
|
|
const handlePhaseChange = (occasion: number, e) => {
|
|
|
@@ -318,6 +328,7 @@
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
+ pushOccasionsRef.value?.validate();
|
|
|
};
|
|
|
|
|
|
const handlePhaseSubmit = (phaseForm: PushPhaseVOList, childValue) => {
|
|
|
@@ -423,13 +434,12 @@
|
|
|
border-right: 1px solid rgba(0, 0, 0, 0.06);
|
|
|
overflow-y: auto;
|
|
|
|
|
|
- .alarm-config-input {
|
|
|
- max-width: 446px;
|
|
|
- }
|
|
|
-
|
|
|
- .alarm-config-checkbox-group {
|
|
|
- max-height: 556px;
|
|
|
+ .alarm-config-form-content {
|
|
|
+ max-height: calc(100vh - 297px);
|
|
|
overflow: auto;
|
|
|
+ .alarm-config-input {
|
|
|
+ max-width: 446px;
|
|
|
+ }
|
|
|
|
|
|
.push-occasions-card {
|
|
|
padding: 10px 20px;
|