packageDrawer.config.ts 2.86 KB
import { ALG, PackageField, PackageType } from './packageDetail.config';
import { FormSchema } from '/@/components/Form';
import { useI18n } from '/@/hooks/web/useI18n';

const { t } = useI18n();
export const formSchema: FormSchema[] = [
  {
    field: PackageField.TITLE,
    label: t('monitor.ota.title'),
    component: 'Input',
    colProps: { span: 12 },
  },
  {
    field: PackageField.VERSION,
    label: t('monitor.ota.version'),
    component: 'Input',
    colProps: { span: 12 },
  },
  {
    field: PackageField.VERSION_TAG,
    label: t('monitor.ota.versionLabel'),
    component: 'Input',
  },
  {
    field: PackageField.DEVICE_PROFILE_INFO,
    label: t('business.affiliatedProductText'),
    component: 'Input',
  },
  {
    field: PackageField.PACKAGE_TYPE,
    label: t('monitor.ota.packageType'),
    component: 'Select',
    rules: [{ required: true }],
    componentProps: () => {
      return {
        options: [
          { label: t('monitor.ota.firm'), value: PackageType.FIRMWARE },
          { label: t('monitor.ota.soft'), value: PackageType.SOFTWARE },
        ],
      };
    },
  },
  {
    field: PackageField.URL,
    label: t('monitor.ota.direct'),
    component: 'Input',
    ifShow: ({ model }) => {
      return model[PackageField.URL];
    },
    componentProps: {
      maxLength: 255,
    },
  },
  {
    field: PackageField.CHECK_SUM_ALG,
    label: t('monitor.ota.modal.checksum'),
    component: 'Select',
    colProps: { span: 12 },
    ifShow: ({ model }) => {
      return !model[PackageField.URL];
    },
    componentProps: {
      options: Object.keys(ALG).map((key) => {
        return {
          label: String(ALG[key]).toUpperCase(),
          value: ALG[key],
        };
      }),
    },
  },
  {
    field: PackageField.CHECK_SUM,
    label: t('monitor.ota.checksum'),
    component: 'Input',
    ifShow: ({ model }) => {
      return !model[PackageField.URL];
    },
    colProps: { span: 12 },
  },
  {
    field: PackageField.FILE_NAME,
    label: t('monitor.ota.fileName'),
    component: 'Input',
    ifShow: ({ model }) => {
      return !model[PackageField.URL];
    },
    colProps: { span: 8 },
  },
  {
    field: PackageField.FILE_SIZE,
    label: t('monitor.ota.fileSize') + t('monitor.ota.inBytes'),
    component: 'Input',
    ifShow: ({ model }) => {
      return !model[PackageField.URL];
    },
    colProps: { span: 8 },
  },
  // {
  //   field: PackageField.FILE_NAME,
  //   label: t('monitor.ota.fileName'),
  //   component: 'Input',
  //   ifShow: ({ model }) => {
  //     return !model[PackageField.URL];
  //   },
  //   colProps: { span: 8 },
  // },
  {
    field: PackageField.FILE_TYPE,
    label: t('monitor.ota.contentType'),
    ifShow: ({ model }) => {
      return !model[PackageField.URL];
    },
    component: 'Input',
  },
  {
    field: PackageField.DESCRIPTION,
    label: t('common.remarkText'),
    component: 'Input',
  },
];