index.ts 2.32 KB
import { FormSchema } from '/@/components/Form';
import { useI18n } from '/@/hooks/web/useI18n';
import { BasicColumn } from '/@/components/Table';
import {getRepairOrderList} from "../../../api/repair/order";
import { useUserStore } from '/@/store/modules/user';
const { t } = useI18n();

export function getColumns() {
  const userStore = useUserStore();
  const cols: BasicColumn[] = [
    {
      title: t('repair.history.photo'),
      dataIndex: 'situationImg',
      slots: { customRender: 'situationImg' },
    },
    {
      title: t('repair.history.orderCode'),
      dataIndex: 'code',
    },
    {
      title: t('repair.history.orderText'),
      dataIndex: 'orderCode',
      format: (text, record) => {
        return record.tkRepairOrderDTO?.orderCode || '-' || text;
      },
    },
    {
      title: t('repair.history.deviceNameText'),
      dataIndex: 'deviceAccountName',
    },
    {
      title: t('repair.history.time'),
      dataIndex: 'reportDate',
      format: (text, record) => {
        return record.tkRepairOrderDTO?.reportDate || '-' || text;
      },
    },
    {
      title: t('repair.history.reportByName'),
      dataIndex: 'tkRepairOrderDTO',
      format: (text, record) => {
        return record.tkRepairOrderDTO?.reportByName || '-' || text;
      },
    },
    {
      title: t('repair.history.description'),
      dataIndex: 'description',
    },
    {
      title: t('repair.history.repairTime'),
      dataIndex: 'repairDate',
    },
    {
      title: t('repair.history.repairByName'),
      dataIndex: 'repairName',
    },
    {
      title: t('repair.history.repairReason'),
      dataIndex: 'malfunctionReasonName',
    },
  ];

  if (userStore.isTargetTenant) {
    const deviceNameIndex = cols.findIndex((c) => c.dataIndex === 'deviceAccountName');
    if (deviceNameIndex !== -1) {
      cols.splice(deviceNameIndex, 0, {
        title: '设备位号',
        dataIndex: 'deviceAccountCode',
      });
    }
  }

  return cols;
}

export const searchFormSchema: FormSchema[] = [
  {
    field: 'orderId',
    label: t('repair.history.orderText'),
    component: 'ApiSelect',
    colProps: { span: 6 },
    componentProps: {
      api: getRepairOrderList,
      params: {
        page: 1,
        pageSize: 999,
      },
      resultField: 'items',
      labelField: 'orderCode',
      valueField: 'id',
    },
  },
];