Attribute.vue
1.61 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
<template>
<BasicForm @register="register" />
</template>
<script lang="ts" setup>
import { BasicForm, useForm } from '/@/components/Form';
import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
import { formSchemas } from '/@/components/Form/src/externalCompns/components/StructForm/config';
import { transformFormValue } from '/@/components/Form/src/externalCompns/components/StructForm/util';
import {
StructFormValue,
StructRecord,
} from '/@/components/Form/src/externalCompns/components/StructForm/type';
import { isObject } from 'lodash';
const [register, { validate, resetFields, setFieldsValue }] = useForm({
labelWidth: 100,
schemas: formSchemas,
actionColOptions: {
span: 14,
},
showResetButton: false,
submitOnReset: false,
showActionButtonGroup: false,
});
async function getFormData(): Promise<Partial<ModelOfMatterParams>> {
const _values = (await validate()) as StructFormValue;
if (!_values) return {};
let value = transformFormValue(_values);
return value;
}
const resetFormData = () => {
resetFields();
};
const setFormData = (record: StructRecord) => {
const { functionJson } = record as StructRecord;
const { specs = {} } = functionJson || ({} as StructRecord['functionJson']);
const value = {
...record,
...functionJson,
...(isObject(specs) ? specs : {}),
};
setFieldsValue(value);
};
defineExpose({
resetFormData,
getFormData,
setFormData,
});
</script>
<style lang="less" scoped>
.add-style {
color: #0170cc;
cursor: pointer;
}
</style>