create.config.ts 1.29 KB
import { FormSchema, useComponentRegister } from '/@/components/Form';
import ApiComplete from './ApiComplete.vue';
import { getQueue } from '/@/api/ruleChainDesigner';

import { useRuleChainI18n } from '../../../hook/useRuleChainI18n';

const { tLabel, tPlaceholder, t } = useRuleChainI18n('flow', 'checkpoint');

export enum CheckPointFieldsEnum {
  QUEUE_NAME = 'queueName',
}

useComponentRegister('ApiComplete', ApiComplete);

export const formSchemas: FormSchema[] = [
  {
    field: CheckPointFieldsEnum.QUEUE_NAME,
    label: tLabel(CheckPointFieldsEnum.QUEUE_NAME),
    component: 'ApiComplete',
    required: true,
    helpMessage: t('rule.chain.flow.checkpoint.fields.queueNameHelp'),
    valueField: 'value',
    changeEvent: 'update:value',
    componentProps: () => {
      return {
        placeholder: tPlaceholder(CheckPointFieldsEnum.QUEUE_NAME, 'choose'),
        getPopupContainer: () => document.body,
        api: async (params: Recordable) => {
          const options = await getQueue(params);
          return options.data.map((value) => ({ label: value.name, value: value.name }));
        },
        params: {
          serviceType: 'TB_RULE_ENGINE',
          page: 0,
          pageSize: 10,
          sortProperty: 'name',
          sortOrder: 'ASC',
        },
      };
    },
  },
];