config.ts 2.27 KB
import { screenLinkOrganizationGetApi } from '/@/api/ruleengine/ruleengineApi';
import { FormSchema } from '/@/components/Form';
import { useI18n } from '/@/hooks/web/useI18n';
import { copyTransFun } from '/@/utils/fnUtils';
import { useComponentRegister } from '/@/components/Form';
import { OrgTreeSelect } from '/@/views/common/OrgTreeSelect';

useComponentRegister('OrgTreeSelect', OrgTreeSelect);

export enum FormFieldsEnum {
  NAME = 'name',
  ORGANIZATION_ID = 'organizationId',
  KEY = 'key',
  SECRET = 'secret',
  MENU = 'menu',
}

const { t } = useI18n();

export const formSchema: FormSchema[] = [
  {
    field: FormFieldsEnum.NAME,
    label: t('application.config.search.name'),
    component: 'Input',
    required: true,
    componentProps: {
      maxLength: 255,
      placeholder: t('application.config.search.applicationNamePlaceholder'),
    },
  },
  {
    field: FormFieldsEnum.ORGANIZATION_ID,
    label: t('application.config.text.organizationName'),
    colProps: { span: 24 },
    required: true,
    component: 'OrgTreeSelect',
  },
  {
    field: FormFieldsEnum.KEY,
    label: t('application.config.text.key'),
    component: 'Input',
    slot: 'key',
    componentProps: {
      disabled: true,
      maxLength: 255,
    },
  },
  {
    field: FormFieldsEnum.SECRET,
    label: t('application.config.text.secret'),
    component: 'Input',
    slot: 'secret',
    componentProps: {
      disabled: true,
      maxLength: 255,
    },
  },
  {
    label: ' ',
    field: FormFieldsEnum.MENU,
    slot: 'menu',
    component: 'Input',
    componentProps: {
      maxLength: 255,
    },
  },
];

export const searchFormSchema: FormSchema[] = [
  {
    field: FormFieldsEnum.NAME,
    label: t('application.config.search.name'),
    component: 'Input',
    componentProps: {
      maxLength: 255,
      placeholder: t('application.config.search.applicationNamePlaceholder'),
    },
  },
  {
    field: FormFieldsEnum.ORGANIZATION_ID,
    label: t('application.config.text.organizationName'),
    component: 'ApiTreeSelect',
    componentProps: {
      placeholder: t('application.config.search.organizationPlaceholder'),
      api: async () => {
        const data = await screenLinkOrganizationGetApi();
        copyTransFun(data as any as any[]);
        return data;
      },
    },
  },
];