Commit 1b890880d72616750244a5742d68eb358e374c7b

Authored by xp.Huang
2 parents 8db7b174 b721a905

Merge branch 'perf/rule-chain' into 'main_dev'

perf: 优化规则链设计器,新增提交前置钩子

See merge request yunteng/thingskit-front!1059
... ... @@ -4,12 +4,6 @@ import { CreateModalDefineExposeType, AwaitPopupWindowReturnDataType } from '../
4 4 import { EdgeData, NodeData } from '../types/node';
5 5 import { DataActionModeEnum } from '/@/enums/toolEnum';
6 6 import { ElementsTypeEnum } from '../enum';
7   -import { FilterCategoryComponentEnum } from '../enum/category';
8   -import { useMessage } from '/@/hooks/web/useMessage';
9   -import { CheckExistenceFieldsNameEnum } from '../enum/formField/filter';
10   -import { useI18n } from '/@/hooks/web/useI18n';
11   -
12   -const { t } = useI18n();
13 7
14 8 interface OptionsType {
15 9 mode: DataActionModeEnum;
... ... @@ -108,25 +102,12 @@ export function useAwaitPopupWindowBindData(
108 102 );
109 103 };
110 104
111   - const { createMessage } = useMessage();
112   -
113 105 const handleSubmit = async (extraData: Recordable = {}) => {
114 106 const { flag } = await validate();
115 107 if (!flag) return;
  108 + await unref(createComponentEl)?.beforeSubmit?.();
116 109 const value = await unref(createComponentEl)?.getFieldsValue?.();
117   - const { config } = nodeData.value || {};
118   - if (
119   - config?.key === FilterCategoryComponentEnum.CHECK_EXISTENCE_FIELDS &&
120   - !value?.messageNames &&
121   - !value?.messageNames
122   - ) {
123   - createMessage.warning(
124   - `${t(CheckExistenceFieldsNameEnum.MESSAGE_NAMES)}和${t(
125   - CheckExistenceFieldsNameEnum.METADATA_NAMES
126   - )}最少选填一个`
127   - );
128   - return true;
129   - }
  110 +
130 111 unref(resolveFn)?.({
131 112 flag: true,
132 113 data: handleSubmitData(extraData, value),
... ...
... ... @@ -3,11 +3,16 @@
3 3 import { BasicForm, useForm } from '/@/components/Form';
4 4 import { formSchemas } from './create.config';
5 5 import { NodeData } from '../../../types/node';
  6 + import { useMessage } from '/@/hooks/web/useMessage';
  7 + import { useI18n } from '/@/hooks/web/useI18n';
  8 + import { CheckExistenceFieldsNameEnum } from '../../../enum/formField/filter';
6 9
7 10 defineProps<{
8 11 config: NodeData;
9 12 }>();
10 13
  14 + const { t } = useI18n();
  15 +
11 16 const [register, { validate, getFieldsValue, setFieldsValue, resetFields }] = useForm({
12 17 schemas: formSchemas,
13 18 showActionButtonGroup: false,
... ... @@ -24,9 +29,22 @@
24 29 setFieldsValue(value);
25 30 };
26 31
  32 + const { createMessage } = useMessage();
  33 + const beforeSubmit = async () => {
  34 + const value = getFieldsValue();
  35 + if (!value?.messageNames && !value?.messageNames) {
  36 + const errorMessage = `${t(CheckExistenceFieldsNameEnum.MESSAGE_NAMES)}和${t(
  37 + CheckExistenceFieldsNameEnum.METADATA_NAMES
  38 + )}最少选填一个`;
  39 + createMessage.warning(errorMessage);
  40 + return Promise.reject(errorMessage);
  41 + }
  42 + };
  43 +
27 44 defineExpose({
28 45 setFieldsValue: setValue,
29 46 getFieldsValue: getValue,
  47 + beforeSubmit,
30 48 } as CreateModalDefineExposeType);
31 49 </script>
32 50
... ...
... ... @@ -56,8 +56,7 @@
56 56 const handleModalOk = async () => {
57 57 await validate();
58 58 const data = getFieldsValue();
59   - const flag = await handleSubmit(data);
60   - if (flag) return;
  59 + await handleSubmit(data);
61 60 resetFieldsValue();
62 61 };
63 62
... ...
... ... @@ -15,6 +15,8 @@ export interface CreateModalDefineExposeType {
15 15 validate?: () => Promise<{ flag: boolean; error?: RuleError }>;
16 16 getFieldsValue?: () => Promise<Recordable>;
17 17 setFieldsValue?: (value?: DefaultNodeConfig, nodeData?: NodeData) => void;
  18 + clearValidate?: (name?: string | string[] | undefined) => Promise<void>;
  19 + beforeSubmit?: () => Promise<any>;
18 20 }
19 21
20 22 export interface CreateModalDefineEmitType {
... ...