useSceneLinkedgeData.ts
2.35 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
import { Ref, unref } from 'vue';
import { ExecutionAction } from '../ExecutionAction';
import { FlipFlop } from '../FlipFlop';
import { DefineComponentsBasicExpose } from '/#/utils';
import { SceneLinkageDataType, SceneLinkageFormRecordType } from './type';
import { FormActionType } from '/@/components/Form';
interface UseSceneLinkageDataParamsType {
flipFlopElRef: Ref<InstanceType<typeof FlipFlop> | undefined>;
executionConditionElRef: Ref<InstanceType<typeof FlipFlop> | undefined>;
executionActionElRef: Ref<InstanceType<typeof ExecutionAction> | undefined>;
basicFormActionType: FormActionType;
}
export function useSceneLinkageData({
flipFlopElRef,
executionActionElRef,
executionConditionElRef,
basicFormActionType,
}: UseSceneLinkageDataParamsType): DefineComponentsBasicExpose<SceneLinkageDataType> {
const getFieldsValue = () => {
const doActions = unref(executionActionElRef)?.getFieldsValue() || [];
const doConditions = unref(executionConditionElRef)?.getFieldsValue() || [];
const triggers = unref(flipFlopElRef)?.getFieldsValue() || [];
const { name, description, organizationId, ruleChainId } =
basicFormActionType.getFieldsValue() as SceneLinkageFormRecordType;
return {
name,
description,
organizationId,
ruleChainId,
doActions,
doConditions,
triggers,
};
};
const setFieldsValue = (record: SceneLinkageDataType) => {
const { doActions, doConditions, triggers, name, description, organizationId, ruleChainId } =
record;
basicFormActionType.setFieldsValue({ name, description, organizationId, ruleChainId });
unref(flipFlopElRef)?.setFieldsValue(triggers);
unref(executionConditionElRef)?.setFieldsValue(doConditions);
unref(executionActionElRef)?.setFieldsValue(doActions);
};
const validate = async () => {
await basicFormActionType.validate?.();
await unref(flipFlopElRef)?.validate?.();
await unref(executionConditionElRef)?.validate?.();
await unref(executionActionElRef)?.validate?.();
};
const resetFieldsValue = () => {
basicFormActionType.resetFields();
unref(flipFlopElRef)?.resetFieldsValue?.();
unref(executionConditionElRef)?.resetFieldsValue?.(true);
unref(executionActionElRef)?.resetFieldsValue?.();
};
return {
getFieldsValue,
setFieldsValue,
validate,
resetFieldsValue,
};
}