transferConfigKafka.vue
2.32 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<template>
<div class="transfer-config-mode">
<BasicForm :showSubmitButton="false" @register="register" />
</div>
</template>
<script lang="ts">
import { defineComponent, ref, reactive, nextTick } from 'vue';
import { BasicForm, useForm } from '/@/components/Form';
import { modeKafkaForm } from '../config';
import { Alert, Divider, Descriptions } from 'ant-design-vue';
export default defineComponent({
components: {
BasicForm,
[Alert.name]: Alert,
[Divider.name]: Divider,
[Descriptions.name]: Descriptions,
[Descriptions.Item.name]: Descriptions.Item,
},
emits: ['next', 'prev', 'register'],
setup(_, { emit }) {
const keyAndValueArr: any = ref<[]>([]);
const vType = ref('');
const sonValues = reactive({
configuration: {},
});
const clearName = ref('');
const [register, { validate, setFieldsValue, resetFields: defineClearFunc, clearValidate }] =
useForm({
labelWidth: 130,
schemas: modeKafkaForm,
actionColOptions: {
span: 14,
},
resetButtonOptions: {
text: '上一步',
},
resetFunc: customResetFunc,
});
const clearValidateFunc = async () => {
await clearValidate(['name']);
};
const setStepTwoFieldsValueFunc = async (v, v1, v2) => {
clearName.value = v1;
setFieldsValue(v);
vType.value = v1;
setFieldsValue({
name: v1,
description: v2,
});
};
const customClearStepTwoValueFunc = async () => {
nextTick(() => {
defineClearFunc();
});
};
async function customResetFunc() {
emit('prev');
}
const getSonValueFunc = async () => {
try {
sonValues.configuration = await validate();
Object.assign(sonValues.configuration);
return sonValues;
} catch (e) {
return e;
}
};
return {
clearValidateFunc,
getSonValueFunc,
keyAndValueArr,
register,
setStepTwoFieldsValueFunc,
customClearStepTwoValueFunc,
customResetFunc,
};
},
});
</script>
<style lang="less" scoped>
:deep(.ant-btn-default) {
color: white;
background: #377dff;
}
</style>