iot-ui-vue/src/views/rule-engine/Alarm/Config/Io/Save/input.vue

102 lines
2.8 KiB
Vue

<template>
<j-modal
:maskClosable="false"
width="45vw"
title="编辑"
@cancel="close"
@ok="save"
visible
cancelText="取消"
okText="确定"
>
<j-form layout="vertical" :model="inputData" ref="formRef">
<j-form-item
label="kafka地址"
name="address"
:rules="[
{
max: 64,
message: '最多输入64个字符',
},
]"
>
<j-input
v-model:value="inputData.address"
placeholder="请输入kafka地址"
></j-input>
</j-form-item>
<j-form-item
label="topic"
name="topic"
:rules="[
{
max: 64,
message: '最多输入64个字符',
},
]"
>
<j-input v-model:value="inputData.topic"></j-input>
</j-form-item>
<j-form-item label="状态">
<j-switch
checked-children="启用"
un-checked-children="启用"
v-model:checked="inputData.status"
></j-switch>
</j-form-item>
</j-form>
</j-modal>
</template>
<script lang="ts" setup>
import { saveOutputData } from '@/api/rule-engine/config';
import { onlyMessage } from '@/utils/comm';
import { Form } from 'jetlinks-ui-components';
const useForm = Form.useForm;
const formRef = ref();
const Myprops = defineProps({
data: {
default: '',
},
});
let inputData = reactive({
status: false,
address: '',
topic: '',
});
watchEffect(() => {
inputData.status =
Myprops.data?.data?.state?.value === 'enabled' ? true : false;
inputData.address = Myprops.data?.data?.config?.config?.address;
inputData.topic = Myprops.data?.data?.config?.config?.topic;
});
const close = () => {
emit('closeModel');
};
const save = () => {
formRef.value.validateFields().then(() => {
saveOutputData({
config: {
sourceType: 'kafka',
config: {
...inputData,
state: inputData?.status ? 'enabled' : 'disable',
},
},
state: inputData?.status ? 'enabled' : 'disable',
id: Myprops?.data?.data?.id,
sourceType: 'kafka',
exchangeType: 'consume',
}).then((res) => {
if (res.status === 200) {
onlyMessage('操作成功');
emit('saveSuc');
}
});
});
};
const emit = defineEmits(['closeModel', 'saveSuc']);
</script>
<style lang="less" scoped>
</style>