AlarmProfileSelect.vue
1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script setup lang="ts">
import { ApiSelect } from '/@/components/Form';
import { Divider } from 'ant-design-vue';
import { Icon } from '/@/components/Icon';
import { VNode } from 'vue';
import AlarmConfigDrawer from '/@/views/alarm/config/ContactDrawer.vue';
import { useDrawer } from '/@/components/Drawer';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n(); // 加载国际化
const [registerAlarmContactDrawer, { openDrawer }] = useDrawer();
const Options = (props: { menuNode: VNode }) => {
return props.menuNode;
};
const handleOpenAlarmConfig = () => {
openDrawer();
};
const handleSuccess = () => {};
</script>
<template>
<section>
<ApiSelect class="!w-56" v-bind="$attrs">
<template #dropdownRender="{ menuNode }">
<Options :menuNode="menuNode" />
<Divider class="!my-2" />
<div class="cursor-pointer text-gray-500" @click="handleOpenAlarmConfig">
<Icon icon="ant-design:plus-outlined" class="mx-2" />
<span>{{ t('rule.linkedge.index.addAlarmConfiguration') }}</span>
</div>
</template>
</ApiSelect>
<AlarmConfigDrawer
@register="registerAlarmContactDrawer"
default-enable
:defaultOperateIsAdd="false"
@success="handleSuccess"
/>
</section>
</template>