TriggerDurationInput.vue
1.01 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
<script setup lang="ts">
import { InputGroup, InputNumber, Select } from 'ant-design-vue';
import { TriggerUnitEnum } from '/@/enums/linkedgeEnum';
withDefaults(
defineProps<{
value?: number;
unit?: TriggerUnitEnum;
unitOptions: Record<'label' | 'value', any>[];
disabled?: boolean;
}>(),
{
value: undefined,
unit: TriggerUnitEnum.SECONDS,
unitOptions: () => [],
}
);
const emit = defineEmits(['unitChange', 'update:unit', 'update:value']);
const handleUnitChange = (value: TriggerUnitEnum) => {
emit('update:unit', value);
emit('unitChange', value);
};
</script>
<template>
<InputGroup class="!flex" compact>
<InputNumber
:disabled="disabled"
:value="value"
:min="0"
@change="$emit('update:value', $event)"
v-bind="$attrs"
/>
<Select
:disabled="disabled"
:value="unit"
:options="unitOptions"
:allow-clear="false"
@change="handleUnitChange"
/>
</InputGroup>
</template>