index.ts 2.91 KB
import { FormSchema } from '/@/components/Form';
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicColumn } from '/@/components/Table';
import moment from 'moment/moment';
const { t } = useI18n();

const statusOptions = [
  { label: t('repair.order.SCHEDULING'), value: 'SCHEDULING' },
  { label: t('repair.order.REPAIRFINISH'), value: 'REPAIRFINISH' },
  { label: t('repair.order.ACCEPTANCEPASSED'), value: 'ACCEPTANCEPASSED' },
];
const typeOptions = [
  { label: t('repair.order.inspectionText'), value: 'INSPECTION' },
  { label: t('repair.order.maintenanceText'), value: 'MAINTENANCE' },
];

export const columns: BasicColumn[] = [
  {
    title: t('repair.order.nameCode'),
    dataIndex: 'orderCode',
  },
  {
    title: t('repair.order.deviceNameText'),
    dataIndex: 'deviceId',
    slots: { customRender: 'deviceId' },
  },
  {
    title: t('repair.order.reportDateText'),
    dataIndex: 'reportDate',
  },
  {
    title: t('repair.order.reportByName'),
    dataIndex: 'reportByName',
  },
  {
    title: t('repair.order.description'),
    dataIndex: 'description',
  },
  {
    title: t('repair.order.statusText'),
    dataIndex: 'status',
    slots: { customRender: 'status' },
  },
  {
    title: t('repair.order.emergencyText'),
    dataIndex: 'emergency',
    slots: { customRender: 'emergency' },
  },
];

export const searchFormSchema: FormSchema[] = [
  {
    field: 'deviceId',
    label: t('repair.order.deviceNameText'),
    component: 'Select',
    colProps: { span: 6 },
  },
  {
    field: 'status',
    label: t('repair.order.statusText'),
    component: 'Select',
    colProps: { span: 6 },
    componentProps: {
      options: statusOptions,
    },
  },
  {
    field: 'startDate',
    label: t('repair.order.time'),
    component: 'RangePicker',
    componentProps: {
      showTime: {
        defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
      },
    },
    colProps: { span: 6 },
  },
];

export const schemas: FormSchema[] = [
  {
    field: 'code',
    label: t('repair.order.nameCode'),
    component: 'Input',
    colProps: { span: 21 },
    required: true,
    componentProps: {
      maxLength: 20,
    },
  },
  {
    field: 'name',
    label: t('repair.order.nameText'),
    component: 'Input',
    colProps: { span: 21 },
    required: true,
    componentProps: {
      maxLength: 20,
    },
  },
  {
    field: 'type',
    label: t('repair.order.typeText'),
    component: 'RadioButtonGroup',
    defaultValue: 'INSPECTION',
    componentProps: {
      options: typeOptions,
    },
  },
  {
    field: 'status',
    label: t('repair.order.statusText'),
    component: 'RadioButtonGroup',
    defaultValue: 'ENABLE',
    componentProps: {
      options: statusOptions,
    },
  },
  {
    field: 'planDetails',
    label: t('repair.order.nameDetail'),
    component: 'InputTextArea',
    colProps: { span: 21 },
    required: true,
    componentProps: {
      maxLength: 200,
    },
  },
];